final_realms_fluffos_v1/
final_realms_fluffos_v1/bin/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/ChangeLog.old/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/Win32/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/compat/simuls/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/clone/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/command/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/data/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/etc/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/include/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/inherit/master/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/log/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/compiler/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/efuns/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/single/tests/operators/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/testsuite/u/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/tmp/
final_realms_fluffos_v1/fluffos-2.9-ds2.11/windows/
final_realms_fluffos_v1/lib/baseobs/guilds/
final_realms_fluffos_v1/lib/baseobs/misc/
final_realms_fluffos_v1/lib/baseobs/races/shadows/
final_realms_fluffos_v1/lib/cmds/god/
final_realms_fluffos_v1/lib/cmds/handlers/
final_realms_fluffos_v1/lib/cmds/handlers/cmds/
final_realms_fluffos_v1/lib/d/heaven/
final_realms_fluffos_v1/lib/d/heaven/heaven/ave/
final_realms_fluffos_v1/lib/d/mudlib/
final_realms_fluffos_v1/lib/d/newbie/
final_realms_fluffos_v1/lib/d/newbie/docs/
final_realms_fluffos_v1/lib/d/newbie/drow/armour/
final_realms_fluffos_v1/lib/d/newbie/drow/items/
final_realms_fluffos_v1/lib/d/newbie/drow/mobs/
final_realms_fluffos_v1/lib/d/newbie/drow/oldmobs/
final_realms_fluffos_v1/lib/d/newbie/drow/weapons/
final_realms_fluffos_v1/lib/d/newbie/duergar/weapons/
final_realms_fluffos_v1/lib/d/newbie/dwarf/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/cafe/
final_realms_fluffos_v1/lib/d/newbie/elf/chars/equip/
final_realms_fluffos_v1/lib/d/newbie/elf/items/armours/
final_realms_fluffos_v1/lib/d/newbie/elf/items/obj/
final_realms_fluffos_v1/lib/d/newbie/elf/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/elf/quick_fix/
final_realms_fluffos_v1/lib/d/newbie/gnome/armour/
final_realms_fluffos_v1/lib/d/newbie/gnome/buildings/
final_realms_fluffos_v1/lib/d/newbie/gnome/items/
final_realms_fluffos_v1/lib/d/newbie/gnome/npcs/clones/
final_realms_fluffos_v1/lib/d/newbie/gnome/rooms/northrooms/
final_realms_fluffos_v1/lib/d/newbie/gnome/weapons/
final_realms_fluffos_v1/lib/d/newbie/goblin/armour/
final_realms_fluffos_v1/lib/d/newbie/goblin/items/
final_realms_fluffos_v1/lib/d/newbie/grads/log/
final_realms_fluffos_v1/lib/d/newbie/grads/npcs/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/
final_realms_fluffos_v1/lib/d/newbie/grads/rooms/cave1/
final_realms_fluffos_v1/lib/d/newbie/grads/temp/
final_realms_fluffos_v1/lib/d/newbie/guests/weapons/
final_realms_fluffos_v1/lib/d/newbie/half-elf/items/
final_realms_fluffos_v1/lib/d/newbie/half-elf/newroomss/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/castle/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/drows/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/savannah/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/secret/
final_realms_fluffos_v1/lib/d/newbie/half-elf/rooms/town/
final_realms_fluffos_v1/lib/d/newbie/halfling/
final_realms_fluffos_v1/lib/d/newbie/halfling/misc/
final_realms_fluffos_v1/lib/d/newbie/halfling/rooms/cave/
final_realms_fluffos_v1/lib/d/newbie/human/
final_realms_fluffos_v1/lib/d/newbie/human/armour/
final_realms_fluffos_v1/lib/d/newbie/human/monsters/
final_realms_fluffos_v1/lib/d/newbie/human/obj/
final_realms_fluffos_v1/lib/d/newbie/human/weapons/
final_realms_fluffos_v1/lib/d/newbie/lizard/armour/
final_realms_fluffos_v1/lib/d/newbie/lizard/items/
final_realms_fluffos_v1/lib/d/newbie/lizard/underwater/
final_realms_fluffos_v1/lib/d/newbie/lizard/weapons/
final_realms_fluffos_v1/lib/d/newbie/logs/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/
final_realms_fluffos_v1/lib/d/newbie/new_halfelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/npcs/
final_realms_fluffos_v1/lib/d/newbie/newdrow/rooms/
final_realms_fluffos_v1/lib/d/newbie/newelf/
final_realms_fluffos_v1/lib/d/newbie/newelf/chars/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/
final_realms_fluffos_v1/lib/d/newbie/newelf/npcs/recopied/
final_realms_fluffos_v1/lib/d/newbie/newelf/obj/
final_realms_fluffos_v1/lib/d/newbie/newelf/quest_docs./
final_realms_fluffos_v1/lib/d/newbie/newken/
final_realms_fluffos_v1/lib/d/newbie/newken/chars/
final_realms_fluffos_v1/lib/d/newbie/newken/misc/
final_realms_fluffos_v1/lib/d/newbie/newken/npcs/
final_realms_fluffos_v1/lib/d/newbie/newken/obj/
final_realms_fluffos_v1/lib/d/newbie/newliz/
final_realms_fluffos_v1/lib/d/newbie/newliz/cave/
final_realms_fluffos_v1/lib/d/newbie/newliz/npcs/
final_realms_fluffos_v1/lib/d/newbie/orc/items/misc/
final_realms_fluffos_v1/lib/d/newbie/orc/items/weapons/
final_realms_fluffos_v1/lib/d/newbie/orc/tower/
final_realms_fluffos_v1/lib/d/vehicle/
final_realms_fluffos_v1/lib/doc/
final_realms_fluffos_v1/lib/doc/driver/
final_realms_fluffos_v1/lib/doc/driver/concepts/
final_realms_fluffos_v1/lib/doc/driver/driver/
final_realms_fluffos_v1/lib/doc/driver/efuns/arrays/
final_realms_fluffos_v1/lib/doc/driver/efuns/bitstrings/
final_realms_fluffos_v1/lib/doc/driver/efuns/communication/
final_realms_fluffos_v1/lib/doc/driver/efuns/core/
final_realms_fluffos_v1/lib/doc/driver/efuns/debugging/
final_realms_fluffos_v1/lib/doc/driver/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/driver/efuns/interactive/
final_realms_fluffos_v1/lib/doc/driver/efuns/mappings/
final_realms_fluffos_v1/lib/doc/driver/efuns/objects/
final_realms_fluffos_v1/lib/doc/driver/efuns/security/
final_realms_fluffos_v1/lib/doc/driver/efuns/strings/
final_realms_fluffos_v1/lib/doc/driver/efuns/system/
final_realms_fluffos_v1/lib/doc/driver/efuns/types/
final_realms_fluffos_v1/lib/doc/driver/lpc/constructs/
final_realms_fluffos_v1/lib/doc/driver/lpc/types/
final_realms_fluffos_v1/lib/doc/driver/platforms/
final_realms_fluffos_v1/lib/doc/lpc/
final_realms_fluffos_v1/lib/doc/mail/
final_realms_fluffos_v1/lib/doc/man/
final_realms_fluffos_v1/lib/doc/man/html/
final_realms_fluffos_v1/lib/doc/man/html/applies/
final_realms_fluffos_v1/lib/doc/man/html/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/html/driver/
final_realms_fluffos_v1/lib/doc/man/html/efuns/
final_realms_fluffos_v1/lib/doc/man/html/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/html/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/html/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/html/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/html/efuns/general/
final_realms_fluffos_v1/lib/doc/man/html/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/html/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/
final_realms_fluffos_v1/lib/doc/man/local/applies/
final_realms_fluffos_v1/lib/doc/man/local/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/local/applies/master/
final_realms_fluffos_v1/lib/doc/man/local/concepts/
final_realms_fluffos_v1/lib/doc/man/local/defines/
final_realms_fluffos_v1/lib/doc/man/local/driver/
final_realms_fluffos_v1/lib/doc/man/local/efuns/
final_realms_fluffos_v1/lib/doc/man/local/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/local/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/local/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/local/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/local/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/local/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/local/efuns/general/
final_realms_fluffos_v1/lib/doc/man/local/efuns/interactive/
final_realms_fluffos_v1/lib/doc/man/local/efuns/internals/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/local/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/local/efuns/objects/
final_realms_fluffos_v1/lib/doc/man/local/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/local/efuns/sockets/
final_realms_fluffos_v1/lib/doc/man/local/efuns/strings/
final_realms_fluffos_v1/lib/doc/man/local/efuns/system/
final_realms_fluffos_v1/lib/doc/man/local/historical/
final_realms_fluffos_v1/lib/doc/man/local/lfun/QC/
final_realms_fluffos_v1/lib/doc/man/local/lfun/events/
final_realms_fluffos_v1/lib/doc/man/local/lfun/monster/
final_realms_fluffos_v1/lib/doc/man/local/lfun/properties/
final_realms_fluffos_v1/lib/doc/man/local/lpc/
final_realms_fluffos_v1/lib/doc/man/local/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/local/lpc/types/
final_realms_fluffos_v1/lib/doc/man/local/standards/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/basic/
final_realms_fluffos_v1/lib/doc/man/local/tutorials/intermediate/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/interactive/
final_realms_fluffos_v1/lib/doc/man/mudos/applies/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/concepts/
final_realms_fluffos_v1/lib/doc/man/mudos/driver/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/arrays/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/buffers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/calls/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/compile/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/filesystem/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/floats/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/functions/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/general/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mappings/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mixed/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/mudlib/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/numbers/
final_realms_fluffos_v1/lib/doc/man/mudos/efuns/parsing/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/constructs/
final_realms_fluffos_v1/lib/doc/man/mudos/lpc/types/
final_realms_fluffos_v1/lib/doc/races/
final_realms_fluffos_v1/lib/doc/races/old_race/
final_realms_fluffos_v1/lib/global/virtual/
final_realms_fluffos_v1/lib/global/wiz_backup/
final_realms_fluffos_v1/lib/net/config/
final_realms_fluffos_v1/lib/net/daemon/chars/
final_realms_fluffos_v1/lib/net/inherit/
final_realms_fluffos_v1/lib/net/intermud3/
final_realms_fluffos_v1/lib/net/intermud3/cmds/
final_realms_fluffos_v1/lib/net/intermud3/save/
final_realms_fluffos_v1/lib/net/intermud3/services/
final_realms_fluffos_v1/lib/net/obj/
final_realms_fluffos_v1/lib/net/old/
final_realms_fluffos_v1/lib/net/old/intermud/
final_realms_fluffos_v1/lib/net/old/intermud/adm/
final_realms_fluffos_v1/lib/net/old/intermud/services/
final_realms_fluffos_v1/lib/net/old/intermud/udp/
final_realms_fluffos_v1/lib/net/virtual/
final_realms_fluffos_v1/lib/obj/b_day/
final_realms_fluffos_v1/lib/obj/chars/
final_realms_fluffos_v1/lib/obj/handlers/lists/
final_realms_fluffos_v1/lib/obj/handlers/useless/
final_realms_fluffos_v1/lib/obj/monsters/
final_realms_fluffos_v1/lib/obj/roomgen/
final_realms_fluffos_v1/lib/obj/soul/
final_realms_fluffos_v1/lib/obj/vegetation/
final_realms_fluffos_v1/lib/obj/weapons/oldsys/
final_realms_fluffos_v1/lib/open/
final_realms_fluffos_v1/lib/players/g/
final_realms_fluffos_v1/lib/releasefiles/d/heaven/
final_realms_fluffos_v1/lib/releasefiles/d/mudlib/
final_realms_fluffos_v1/lib/releasefiles/d/newbie/
final_realms_fluffos_v1/lib/releasefiles/doc/
final_realms_fluffos_v1/lib/releasefiles/players/g/
final_realms_fluffos_v1/lib/releasefiles/save/
final_realms_fluffos_v1/lib/releasefiles/save/environ/
final_realms_fluffos_v1/lib/releasefiles/save/roomgen/
final_realms_fluffos_v1/lib/releasefiles/secure/
final_realms_fluffos_v1/lib/releasefiles/w/
final_realms_fluffos_v1/lib/releasefiles/w/god/
final_realms_fluffos_v1/lib/room/
final_realms_fluffos_v1/lib/save/
final_realms_fluffos_v1/lib/save/environ/
final_realms_fluffos_v1/lib/save/roomgen/
final_realms_fluffos_v1/lib/scripts/
final_realms_fluffos_v1/lib/secure/crerem/
final_realms_fluffos_v1/lib/secure/dom/
final_realms_fluffos_v1/lib/secure/log/
final_realms_fluffos_v1/lib/secure/misc/
final_realms_fluffos_v1/lib/std/adnd/
final_realms_fluffos_v1/lib/std/commands/shadows/
final_realms_fluffos_v1/lib/std/creator/
final_realms_fluffos_v1/lib/std/curses/
final_realms_fluffos_v1/lib/std/curses/old_sys/
final_realms_fluffos_v1/lib/std/curses/shadows/
final_realms_fluffos_v1/lib/std/dom/
final_realms_fluffos_v1/lib/std/effects/
final_realms_fluffos_v1/lib/std/effects/healing/
final_realms_fluffos_v1/lib/std/effects/other/
final_realms_fluffos_v1/lib/std/effects/poisons/
final_realms_fluffos_v1/lib/std/environ/
final_realms_fluffos_v1/lib/std/guilds/
final_realms_fluffos_v1/lib/std/guilds/priests/samples/
final_realms_fluffos_v1/lib/std/guilds/wizards/
final_realms_fluffos_v1/lib/std/living/baldy/
final_realms_fluffos_v1/lib/std/living/divstuff/
final_realms_fluffos_v1/lib/std/paran/
final_realms_fluffos_v1/lib/std/poisons/
final_realms_fluffos_v1/lib/std/poisons/shadows/
final_realms_fluffos_v1/lib/std/poisons/weapons/
final_realms_fluffos_v1/lib/std/race_groups/
final_realms_fluffos_v1/lib/std/room/
final_realms_fluffos_v1/lib/std/room/old/
final_realms_fluffos_v1/lib/std/rooms/
final_realms_fluffos_v1/lib/std/shadows/
final_realms_fluffos_v1/lib/std/shadows/test_shad/
final_realms_fluffos_v1/lib/std/socket/
final_realms_fluffos_v1/lib/std/spells/
final_realms_fluffos_v1/lib/std/vaults/
final_realms_fluffos_v1/lib/tmp/
final_realms_fluffos_v1/lib/w/
final_realms_fluffos_v1/lib/w/god/
final_realms_fluffos_v1/old/
final_realms_fluffos_v1/win32/
#define MONSTER "obj/monster"
#define ARMOURY "obj/handlers/armoury"
#define HOSPITAL "/d/fr/wm_forest"

inherit "std/room";

int *forest_chance, forest_tot_chance;
string *forest_monsters;


object get_monster(string type)
{
   object ob, ob2;
   int temp, rand, loop;
   
   if(!forest_monsters)
      {
      forest_monsters =
      ({
            "badger", "hornet", "kenku", "snake", "owlbear",
            "bugbear", "beetle", "hunter", "centipede", "bear",
            "kobold", "animal", "hermit", "spider","stirge"
       });
   }
   if(!forest_chance)
      {
      forest_chance =
      ({
            10, 5, 10, 10, 5,
            5, 5, 5, 10, 5,
            10, 10, 5, 2, 3
       });
      forest_tot_chance = 100;
   }
   switch(type)
   {
      case "forest":
      rand = random(forest_tot_chance - forest_chance[sizeof(forest_chance) - 1]);
      temp = 0;
      loop = 0;
      while(rand > temp)
      temp += forest_chance[loop++];
      ob2 = get_monster(forest_monsters[loop]);
      ob2->add_move_zone("forest");
      ob2->add_property("monster_type", type);
      return ob2;
     case "beetle":
      ob = clone_object(MONSTER);
      ob->set_name("beetle");
      ob->add_alias("beetle");
      ob->add_adjective("stag");
      ob->add_adjective("large");
      ob->add_property("no_undead",1); set_short("a large stag beetle");
      ob->set_main_plural("stag beetles");
      ob->set_race("beetle");
      ob->set_level(10+random(10));
      ob->set_wimpy(0);
      ob->set_long("This is a large stag beetle.\n");
      ob->load_chat(2,
         ({
               1, ":crawls away from you.\n",
               1, ":lowers its horn and crawls fast towards you.\n",
               1, ":moves a boulder twice its size.\n",
          }));
      ob->add_triggered_action("bing2", "event_death", HOSPITAL, "death");
      ob->add_property("monster_type", type);
      return ob;
     case "centipede":
      ob = clone_object(MONSTER);
      ob->set_name("centipede");
      ob->add_property("no_undead",1); set_short("giant centipede");
      ob->add_adjective("giant");
      ob->add_adjective("black");
      ob->set_main_plural("centipedes");
      ob->add_move_zone("swamp");
      ob->set_long("A giant black centipede.\n");
      ob->set_aggressive(1);
      ob->join_fights("A centipede gleefully crawls into combat.\n");
      ob->add_triggered_action("bing2", "event_death", HOSPITAL, "death");
      ob->set_race("snake");
      ob->set_level(5+random(10));
      ob->set_wimpy(0);
      ob->add_property("monster_type", type);
      return ob;
     case "bear":
      ob = clone_object(MONSTER);
      ob->set_name("bear");
      ob->set_al(-30);
      ob->add_property("no_undead",1); set_short("black bear");
      ob->add_alias("bear");
      ob->add_adjective("black");
      ob->set_main_plural("black bears");
      ob->set_long("It's one of those black bears that are so common.\n");
      ob->join_fights("A bear bounces into the combat fray.\n");
      ob->add_triggered_action("bing2", "event_death", HOSPITAL, "death");
      ob->set_race("bear");
      ob->set_level(10+random(5));
      ob->set_wimpy(0);
      ob->add_property("monster_type", type);
      return ob;
     case "badger":
      ob = clone_object(MONSTER);
      ob->set_name("badger");
      ob->add_property("no_undead",1); set_short("badger");
      ob->set_race("badger");
      ob->set_class("badger");
      ob->set_level(4);
      ob->add_alias("kenku");
      ob->set_long("A badger is a canivorous burrowing animal.\n");
      ob->add_property("monster_type", type);
      return ob;
     case "kobold":
      ob = clone_object(MONSTER);
      ob->set_name("kobold");
      ob->add_adjective("ugly");
      ob->set_race("kobold");
      ob->set_al(-60);
      ob->set_aggressive(1);
      ob->set_level(random(4));
      ob->set_wimpy(0);
      ob->add_property("no_undead",1); set_short("ugly kobold");
      ob->set_main_plural("ugly kobolds");
      ob->add_plural("ugly kobolds");
      ob->join_fights("An ugly kobold joins the fight.\n");
      ob->add_triggered_action("bing2", "event_death", HOSPITAL, "death");
      ob->set_long("The kobold is a cowardly, sadistic and ugly dog-like humanoid.\n");
      ob->load_a_chat(10,
         ({
               1, "@kick $hcname$"
          }));
      ob->add_property("monster_type", type);
      return ob;
     case "hornet":
      ob = clone_object(MONSTER);
      ob->set_name("hornet");
      ob->add_adjective("black");
      ob->set_race("monster");
      ob->add_property("no_undead",1); set_short("black hornet");
      ob->set_level(16+random(10));
      ob->set_long("The black hornet is a fantastically large wasp.\n");
      ob->add_property("monster_type", type);
      return ob;
     case "kenku":
      ob = clone_object(MONSTER);
      ob->set_name("kenku");
      ob->add_property("no_undead",1); set_short("kenku");
      ob->set_race("kenku");
      ob->set_level(10+random(10));
      ob->set_wimpy(0);
      ob->add_attack("beak", 0, 20, 90, 0, 0, "magic");
      ob->add_attack("beak", 0, 30, 90, 0, 0, "sharp-beak");
      ob->set_long("The kenku is a bipedal, humanoid bird.\n");
      ob->load_chat(5,({1, ":looks eagerly at your purse.\n"}));
      ob->add_property("monster_type", type);
      return ob;
     case "snake":
      ob = clone_object(MONSTER);
      ob->set_name("snake");
      ob->add_property("no_undead",1); set_short("snake");
      ob->set_al(-30);
      ob->set_main_plural("snakes");
      ob->add_alias("worm");
      ob->set_race("snake");
      ob->set_level(5+random(3));
      ob->set_wimpy(0);
      set_long("This is an agressive large snake.\n");
      ob->set_aggressive(1);
      ob->join_fights("A snake slithers into the fight.\n");
      ob->add_triggered_action("bing2", "event_death", HOSPITAL, "death");
      ob->add_triggered_action("regen", "death", HOSPITAL, "regen_after_death");
      ob->add_property("monster_type", type);
      return ob;
     case "owlbear":
      ob = clone_object(MONSTER);
      ob->set_name("owlbear");
      ob->add_alias("owl");
      ob->add_adjective("feroscious");
      ob->set_al(-80);
      ob->set_race("monster");
      ob->set_level(20+random(11));
      ob->set_wimpy(0);
      ob->add_property("no_undead",1); set_short("owlbear");
      ob->set_plural("owlbears");
      ob->add_attack("beak", 0, 30, 160, 0, 0, "sharp-beak");
      set_long("This is ferocious owlbear. It seems to be a crossbreed "
         "between an owl and a bear.\n");
      ob->load_a_chat(20,
         ({
               1, ":roars loudly.",
               1, ":tries to bite you with its beak.",
          }));
      ob->add_property("monster_type", type);
      return ob;
     case "bugbear":
      ob = clone_object(MONSTER);
      ob->set_name("bugbear");
      ob->add_adjective("large");
      ob->set_race("bugbear");
      ob->set_level(8+random(4));
      ob->set_wimpy(0);
      ob->set_al(-50);
      ob->set_aggressive(1);
      ob->set_long("The bugbear is a large muscular humanoid.\n");
      ob->set_main_plural("bugbears");
      ob->add_property("no_undead",1); set_short("bugbear");
      ob->load_a_chat(20,
         ({
               1, "'Grrrk ackrrr!\n",
               1, "'Grrrckkarr!\n",
               1, "@growl menacingly $hcname$",
          }));
      ob->add_move_zone("barracks");
      ob->add_property("monster_type", type);
      ARMOURY->request_weapon("axe",50+random(70))->move(ob);
      ob->join_fights("A bugbear exclaims: Rakk!.\n");
      ob->add_triggered_action("bing2", "event_death", HOSPITAL, "death");
      ob->init_equip();
      return ob;
     case "hunter":
      ob = clone_object(MONSTER);
      ob->set_name("hunter");
      ob->add_property("no_undead",1); set_short("hunter");
      ob->add_adjective("forest");
      ob->set_main_plural("hunters");
      ob->set_long("Just a forest hunter.\n");
      ob->set_race("half-orc");
      ob->set_class("fighter");
      ob->set_level(random(30));
      ob->set_wimpy(0);
      ob->set_al(-100+random(201));
      ob->adjust_money(random(70), "copper");
      ob->load_chat(5,
         ({
               1, "@search",
               1, "@grunt",
               1, "'These forests are MY hunting grounds!",
               1, "'I hope you haven't come for a deer-hunt.",
               1, "'What are you doing here ?"
          }));
      ob->load_a_chat(30,
         ({
               1, "'Get outta here!",
               1, "@spit $lname$",
               1, "'Ughh!",
               1, "@drool"
          }));
      if(random(2))
         ARMOURY->request_armour("leather",40+random(40))->move(ob);
      if(random(4))
         ARMOURY->request_armour("soft leather cap", 70+random(30))->move(ob);
      if(random(2))
         ARMOURY->request_weapon("short sword", 70+random(30))->move(ob);
      ob->add_property("monster_type", type);
      ob->init_equip();
      return ob;
     case "animal":
      ob = clone_object(MONSTER);
      ob->set_race("monster");
      ob->set_long("It's just an animal.\n");
      switch(random(6))
      {
        case 0:
         ob->set_name("dog");
         ob->add_property("no_undead",1); set_short("forest dog");
         ob->add_adjective("forest");
         ob->set_main_plural("dogs");
         ob->set_gender(0);
         ob->set_level(-1+random(5));
         break;
        case 1:
         ob->set_name("boar");
         ob->add_property("no_undead",1); set_short("wild boar");
         ob->add_adjective("wild");
         ob->set_main_plural("boars");
         ob->set_gender(0);
         ob->set_level(3+random(6));
         break;
        case 2:
         ob->set_name("deer");
         ob->add_property("no_undead",1); set_short("deer");
         ob->set_main_plural("deer");
         ob->set_gender(0);
         ob->set_level(-1+random(3));
         break;
        case 3:
         ob->set_name("crawler");
         ob->add_property("no_undead",1); set_short("carrion crawler");
         ob->add_adjective("carrion");
         ob->set_main_plural("carrion crawlers");
         ob->set_gender(0);
         ob->set_level(random(7));
         break;
        case 4:
         ob->set_name("skunk");
         ob->add_property("no_undead",1); set_short("skunk");
         ob->set_long("It looks very cute with its black'n white pelt.\n");
         ob->add_adjective("cute");
         ob->set_main_plural("skunks");
         ob->set_gender(0);
         ob->set_level(3);
         break;
        case 5:
         ob->set_name("stag");
         ob->add_property("no_undead",1); set_short("mighty stag");
         ob->add_adjective("mighty");
         ob->set_main_plural("mighty stags");
         ob->set_gender(1);
         ob->set_level(10+random(10));
         break;
         }
      ob->add_property("monster_type", type);
      ob->set_wimpy(0);
      return ob;
     case "hermit":
      ob = clone_object(MONSTER);
      ob->set_name("hermit");
      ob->set_race("human");
      ob->set_level(1+random(22));
      ob->add_alias("man");
      ob->set_al(10);
      ob->set_wimpy(10);
      ob->adjust_money(random(100),"copper");
      ob->add_property("no_undead",1); set_short("hermit");
      ob->set_long("This is one of the loners who wander the forests of the "
         "Forgotten Realms.\n");
      ob->add_property("monster_type", type);
      return ob;
     case "spider":
      ob = clone_object(MONSTER);
      ob->set_name("spider");
      ob->add_adjective("huge");
      ob->set_race("spider");
      ob->set_level(5+random(5));
      ob->add_property("no_undead",1); set_short("a huge spider");
      ob->set_main_plural("spiders");
      ob->add_triggered_action("bing2", "event_death", HOSPITAL, "death");
      ob->set_long("This is a huge spider. Wonder if it's poisonous.\n");
      ob->add_property("monster_type", type);
      return ob;
     case "stirge":
      ob = clone_object(MONSTER);
      ob->set_name("stirge");
      ob->add_adjective("fast");
      ob->set_race("stirge");
      ob->set_al(-20);
      ob->add_property("no_undead",1); set_short("a stirge");
      ob->set_level(2);
      ob->set_long("The stirge is a mosquito-like bird.\n");
      ob->add_property("monster_type", type);
      return ob;
      default:
      ob = clone_object(MONSTER);
      ob->set_name("failure");
      ob->add_property("no_undead",1); set_short("failure");
      ob->set_long(file_name(previous_object()));
      ob->set_level(1);
      return ob;
   }
}

void regen_after_death()
{
   object ob, dest;
   string nam;
   
   nam = (string)previous_object()->query_property("monster_type");
   dest = (object)previous_object()->query_property("start location");
   if (!dest)
      return ;
   ob = get_monster(nam);
   dest->add_monster(previous_object(), ob);
   call_out("do_move", 10, ({ ob, dest }) );
}

void do_move(mixed *junk)
{
   if(junk[0])
      junk[0]->move(junk[1]);
}

void death()
{
   call_out("do_pick_up", 0, previous_object());
}

void do_pick_up(object ob)
{
   ob->init_command(":loots the corpse.\n");
   ob->init_command("get all from corpses");
   ob->run_away();
}