/* /lib/light.c * from the Dead Souls LPC Library * a standard lighting object * created by Descartes of Borg 960512 * Version: @(#) light.c 1.2@(#) * Last modified: 96/11/03 */ #include <vendor_types.h> private int Lit = 0; // abstract methods string GetKeyName(); // end abstract methods static void create(){ this_object()->AddSave(({ "Lit" })); this_object()->SetVendorType(VT_LIGHT); } int GetLit(){ return Lit; } static int SetLit(int x){ return (Lit = x); } string GetShort(){ /* string str; if(!(str = item::GetShort()) || str == "") return str; return sprintf("%s%s", str, (GetLit() ? " (lit)" : "")); */ if( GetLit() && query_verb() != "light" && query_verb() != "strike") return " (%^BOLD%^YELLOW%^lit%^RESET%^)"; else return ""; } mixed CanLight(object who){ if( GetLit() ){ return "#It is already lit."; } return 1; } mixed direct_light_obj(){ return CanLight(this_player()); } mixed eventDarken(){ object env; if( env = environment() ){ env->eventPrint("The " + GetKeyName() + " goes dark."); if( living(env) ){ environment(env)->eventPrint(possessive_noun(env) + " " + GetKeyName() + " goes dark.", env); } } SetLit(0); return 1; } varargs mixed eventLight(object who, object tool){ SetLit(1); return 1; }