/* Slow Poison. */
status slow(string targ, mixed alt_type) {
int i;
string file;
if(!targ || !(targ == "poison" || sscanf(targ,"poison %s",targ))) {
notify_fail("slow poison?\n");
return 0;
}
if(targ == "poison") targ = 0;
if(!alt_type) alt_type = "necromancy_sphere";
file = file_name(this_object());
sscanf(file,"%s#%d",file,i);
this_player()->load_spell(({
"target", targ,
"name", "Slow Poison",
"sphere", alt_type,
"cost", 3,
"level", 3,
"spell object", file,
"cast time", 1,
"passive",
}));
return 1;
}
/***********************************************************************/
/* when cloned */
status cast_spell(object caster,object target,object prev,int dmg) {
object poison;
poison = present("Poison", target);
if(poison) {
tell_object(target,"You feel the poison slow in your body.\n");
if(target == caster) {
say(caster->query_name() +" slows the poison in "+
caster->query_objective() +"self.\n");
}
else {
write("You slow the poison in "+ target->query_name() +"'s system.\n");
say(caster +" slows the poison in "+
target->query_name()+".\n",target);
}
poison->set_poison_rate((int)poison->query_poison_rate()/2);
}
else {
if(target != caster)
write((string)target->query_name() +" is not poisoned.\n");
else
write("You are not poisoned.\n");
}
destruct(this_object());
return 1;
}
/* Native Mode Move */
#include <move.h>