#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();
  }
}
  

 
