/* /lib/std/limb.c * From the Dead Souls Object Library * Standard limb object for severed limbs * Created by Descartes of Borg 950329 * Version: @(#) limb.c 1.5@(#) * Last Modified: 96/12/31 */ #include <lib.h> inherit LIB_SURFACE; int Count = 0; int DecayLife = 500; string Limb = 0; string Owner = 0; string Race = 0; int CallOut = -1; int eventDecay(); int GetDecayLife() { return DecayLife; } int SetDecayLife(int x) { return (DecayLife = x); } string GetLimb() { return Limb; } string GetItemCondition(){ return ""; } void create(){ surface::create(); } void init(){ surface::init(); } void SetLimb(string limb, string owner, string race) { SetKeyName(limb); SetId( ({ "flesh","pile", "limb", Limb = limb }) ); Owner = owner; Race = race; Count = 1; SetShort("a rotting " + possessive_noun(Race) + " " + Limb); SetLong("This limb has a horrible stench as it rots to nothing."); //CallOut = call_out((: eventDecay :), DecayLife/3); } string GetOwner() { return Owner; } string GetRace() { return Race; } int GetSaveString() { return 0; } string GetShort() { string str = surface::GetShort(); if( !str ) { str = "a limb"; } return str; } int CanReceive(object ob) { return 1; } int Destruct() { //if( CallOut > -1 ) { //remove_call_out(CallOut); //} return surface::Destruct(); } int eventDecay() { if( !environment() ) { //CallOut = -1; Destruct(); return 0; } switch(Count) { case 10: message("smell", "The "+Limb+" really stinks.", environment()); SetShort("the stinky remains of a rotting " + Limb); break; case 20: message("smell", "A rotting stench fills the entire area.", environment()); SetShort("a pile of rotting flesh"); break; case 30: //CallOut = -1; Destruct(); return 0; } Count++; //CallOut = call_out((: eventDecay :), DecayLife/3); return Count; }