/*** Light object ***/ #include "/std/include/std.h" #include "defines.h" inherit "std/object"; int level; create() { add_property("magic"); } set_level(l) { level = l; if(level < 0) { set_id("darkness"); set_long(0); } else if (level > 0) { set_id("light"); set_long("You have to look away from it, it's too bright!\n"); } set_short(0); } set_duration(d) { int i, j; write("Dispel in: "+d+" seconds.\n"); call_out("dispel",d); i = set_light(0); j = set_light(level); write(EN(TP)->short()+"\n"); if (i <= 0 && j > 0) tell_room(EN(TP), "A glowing ball lights up the room.\n"); else if (i > 1 && j <= 0) tell_room(EN(TP), "A cloak of darkness falls upon you.\n"); return level; } dispel() { int i, j; i = set_light(0); j = set_light(-level); if (i <= 0 && j > 0) tell_room(EN(TP), "The darkness dissolves. You can see again.\n"); else if (i > 1 && j <= 0) tell_room(EN(TP), "The light from the globe fades away, leaving you in the darkness.\n"); destruct(this_object()); } extra_look() { if(level < 1) return; return CAP(ENV->QPRO) + " has a glowing sphere of light at " + ENV->QPOS + " side"; }