/* /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; }