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