mud/lib/obj/friend.c
2020-09-06 05:43:07 -07:00

76 lines
1.9 KiB
C

#include <lib.h>
#include <damage_types.h>
inherit LIB_NPC;
void SetStuff(int level);
void SetType(string what);
int count;
static void create(int level) {
string type;
npc::create();
SetId(({"blob"}));
if(level < 40) type = "rodent";
if(level > 39 && level < 50) type = "bear";
if(level > 49 && level < 70) type = "golem";
if(level > 69 && level < 90) type = "unicorn";
else type = "dragon";
count = level;
SetType(type);
}
void SetType(string what) {
SetRace(what);
if(!SetClass("monk")) SetClass("fighter");
SetLevel(to_int(count/12));
SetGender(({"female","male"})[random(2)]);
switch(what) {
case "rodent":
SetLong("A cute little chipmunk.");
SetShort("a chipmunk");
SetKeyName("chipmunk");
SetId(({"chipmunk"}));
break;
case "bear":
SetLong("A big black bear.");
SetShort("a bear");
SetId(({"bear"}));
SetKeyName("bear");
break;
case "golem":
SetLong("A threatening looking golem.");
SetShort("a golem");
SetId(({"golem"}));
SetKeyName("golem");
break;
case "unicorn":
SetLong("A noble unicorn.");
SetShort("a unicorn");
SetId(({"unicorn"}));
SetKeyName("unicorn");
break;
case "dragon":
SetLong("A huge dragon with a threatening visage.");
SetShort("a dragon");
SetId(({"dragon"}));
SetKeyName("dragon");
break;
}
}
void heart_beat() {
::heart_beat();
count--;
if(count <= 10) send_messages("flicker","$agent_name $agent_verb.",
this_object(),0,environment());
if(count <= 0) {
send_messages("flicker","$agent_name slowly $agent_verb out"
" of existence...",this_object(),0,environment());
eventDestruct();
}
}