// /std/obj/undead.c
// Decaying corpses brought back to life
// Created by Manny@Nightmare 940921
#include <std.h>
inherit MONSTER;
void remove_me();
void set_master(object who);
string query_master();
int decay_rate;
object master;
create() {
monster::create();
decay_rate = 100;
}
void set_zombie_name(string name, int time_left) {
set_name(name);
set_short("the undead remains of "+name);
set_long("The animated remains of "+name);
set_id( ({ "undead", "undead remains", "remains", "remains of "+name,
name, "corpse" }));
call_out("decay", decay_rate, time_left);
}
void decay(int time_left) {
if(--time_left <= 0) remove_me();
else call_out("decay", decay_rate, time_left);
}
void remove_me() {
message("say", "The zombie's body decays into a pile of dust.",
environment(this_object()));
this_object()->remove();
}
void set_decay_rate(int num) { decay_rate = num; }
void set_master(object who) { master = who; }
mixed query_master() { return master; }