/* /lib/poison.c * from the Dead Souls Library * Poisoning functions to be inherited *with* other objects that * are meant to poison things. * created by Blitz@Dead Souls 951120 */ #include "include/poison.h" private int PoisonUses, PoisonStrength; static void create(){ PoisonStrength = 0; PoisonUses = 0; this_object()->AddSave( ({ "PoisonUses" }) ); } mixed indirect_poison_obj_with_obj(){ if( environment() != this_player() ) return 0; if( PoisonStrength < 1 ) return "The poison is all used up."; return 1; } mixed eventSpreadPoison(object who, object target){ if( !who || !target || !PoisonUses ) return 0; PoisonUses--; if( random(50) > (int)who->GetStatLevel("coordination") ){ this_player()->eventPrint("You fumble around with the poison, " "spilling it on yourself."); environment(this_player())->eventPrint((string)who->GetName() + " fumbles around with some " "poison, spilling it on " + reflexive(who) + ".", this_player()); who->AddPoison(random(10)); return 1; } target->eventPoison(who, this_object(), PoisonStrength); return 1; } int SetPoisonStrength(int x){ return (PoisonStrength = x); } mixed GetPoisonStrength(){ return PoisonStrength; } int SetPoisonUses(int x){ return (PoisonUses = x); } int GetPoisonUses(){ return PoisonUses; }