//  /domains/Praxis/obj/mon/spider.c
//  Semi-Random spiders for the Pit of Spiders
//  Part of the Mortal Law system at Nightmare
//  Created by Manny@Nightmare 940831
 
#include <std.h>
 
inherit MONSTER;
 
create() {
  ::create();
  set_name("spider");
  switch(random(5)) {
    case 0:
      set_id( ({ "spider", "leaper", "black leaper" }) );
      set_short("Black Leaper");
      set_long("There are few spiders larger and more greusome than "
          "the infamous Black Leaper..");
      set_level(20);
      set_spell_chance(50);
      break;
    case 1:
    case 2:
      set_id( ({ "spider", "timber spider", "giant timber spider" }) );
      set_short("Giant Timber Spider");
      set_long("A very large and ugly grey spider.  It looks quite "
          "hungry.");
      set_level(random(3)+12);
      set_spell_chance(20);
      break;
    default:
      set_id( ({ "spider", "cave spider" }) );
      set_short("Praxis cave spider");
      set_long("A medium-sized black spider with a cresent-shaped "
          "moon on its tail end.");
      set_level(random(3)+8);
      break;
  }
  set_race("insect");
  set_gender("male");
  set_body_type("insectoid");
  set_spells( ({"poison"}) );
  set_aggressive(999999);
  set_die( (:"death_func":) );
}
int death_func() {
  message("say", "%^RED%^"+this_object()->query_name()+" squeals out "
      "a loud shreak, then falls dead.", environment(this_object()));
  if(!present("spider", environment(this_object()))) {
    int x;
    
    message("say", "%^RED%^You notice additional spiders "
        "creeping in from cracks at the base of the pit!", 
        environment(this_object()));
    for(x=0; x<10; ++x) {
      new("/"+__DIR__+"obj/mon/spider")->move(environment(this_object()));
    }
  }
  return 1;
}