LPMUD/
LPMUD/BIN/
LPMUD/DOC/
LPMUD/MUDLIB/
LPMUD/MUDLIB/BANISH/
LPMUD/MUDLIB/D/
LPMUD/MUDLIB/DOC/
LPMUD/MUDLIB/DOC/DOMAINS/
LPMUD/MUDLIB/DOC/EFUN/
LPMUD/MUDLIB/DOC/EXAMPLES/
LPMUD/MUDLIB/DOC/EXAMPLES/ARMOUR/
LPMUD/MUDLIB/DOC/EXAMPLES/CONTAIN/
LPMUD/MUDLIB/DOC/EXAMPLES/FOOD/
LPMUD/MUDLIB/DOC/EXAMPLES/MAGIC/
LPMUD/MUDLIB/DOC/EXAMPLES/MONSTER/
LPMUD/MUDLIB/DOC/EXAMPLES/ROOM/
LPMUD/MUDLIB/DOC/EXAMPLES/WEAPONS/
LPMUD/MUDLIB/FUNCTION/
LPMUD/MUDLIB/INCLUDE/
LPMUD/MUDLIB/INCLUDE/FN_SPECS/
LPMUD/MUDLIB/INCLUDE/SKILLS/
LPMUD/MUDLIB/INFO/
LPMUD/MUDLIB/INHERIT/BASE/
LPMUD/MUDLIB/LOG/
LPMUD/MUDLIB/MANUALS/312/
LPMUD/MUDLIB/NEWS/
LPMUD/MUDLIB/OBJ/PARTY/
LPMUD/MUDLIB/OBJ/SHADOWS/
LPMUD/MUDLIB/OBJECTS/COMPONEN/
LPMUD/MUDLIB/OPEN/
LPMUD/MUDLIB/OPEN/LIBRARY/
LPMUD/MUDLIB/OPEN/PARTY/
LPMUD/MUDLIB/PLAYERS/
LPMUD/MUDLIB/PLAYERS/ZIL/
LPMUD/MUDLIB/ROOM/
LPMUD/MUDLIB/ROOM/CITY/ARENA/
LPMUD/MUDLIB/ROOM/CITY/CREATOR/
LPMUD/MUDLIB/ROOM/CITY/GARDEN/MONST/
LPMUD/MUDLIB/ROOM/CITY/OBJ/
LPMUD/MUDLIB/ROOM/CITY/PUB/
LPMUD/MUDLIB/ROOM/CITY/SHOP/
LPMUD/MUDLIB/ROOM/DEATH/
LPMUD/MUDLIB/ROOM/REGISTRY/
LPMUD/MUDLIB/SECURE/
LPMUD/MUDLIB/SECURE/UDP_CMD_/
LPMUD/MUDLIB/SKILLS/
LPMUD/MUDLIB/SKILLS/FIGHTER/
LPMUD/MUDLIB/SKILLS/THIEF/
LPMUD/MUDLIB/USR/
LPMUD/MUDLIB/USR/CREATORS/
LPMUD/MUDLIB/USR/PLAYERS/
#include <mudlib.h>
inherit ROOM;

static object elemental, apprentice;
void reset(status arg) {

  if(!present("elemental")) {
    elemental = clone_object(MONSTER);
    elemental -> set_name("fire elemental");
    elemental -> set_alias("elemental");
    elemental -> set_race("elemental");
    elemental -> set_short("A huge fire elemental");
    elemental -> set_long(
     "A large column of flame with almost human-like features, this \n"+
     "powerful being has been summoned by powersful magics. He does \n"+
     "not appear pleased to be here.\n");
    elemental -> set_gender(1);
    elemental -> set_level(15);
    elemental -> add_spell_immunity("fire");
    elemental -> add_class("fighter");
    elemental -> add_class("mage");
    elemental -> load_spells(40, ({ "fire ball", "bbb", }));
    elemental -> load_chat(10, ({ "Elemental says: Free me mortal.\n",
          "Elemental moves around the circle of protection.\n",
          "Elemental glares at you menacingly.\n",
          "Elemental makes the room seem very warm.\n",
    }));
    elemental -> load_a_chat(10, ({ "Elemental says: I will burn you.\n",
          "Elemental says: I will burn you to a crisp.\n",
          "Elemental says: You will soon be ash under my feet.\n",
          "Elemental says: I will boil your blood.\n",
    }));
    elemental -> set_wc(20);
    elemental -> set_ac(12);
    elemental -> add_money(200 + random(100));
    elemental -> set_dead_ob(this_object());
    move_object(elemental, this_object());
  }

  if(!present("apprentice")) {
    apprentice = clone_object(MONSTER);
    apprentice -> set_name("apprentice");
    apprentice -> set_race("half elf");
    apprentice -> set_gender(2);
    apprentice -> set_short("An apprentice");
    apprentice -> set_level(10);
    apprentice -> set_long(
          "This little apprentice is fearful and frightened! The look \n"+
          "on her face is one of dread. \n");
    apprentice -> load_chat(20,({ "Apprentice asks: Please help me?\n",
          "Apprentice exclaims: Please help me!\n",
          "Apprentice says: I've summoned this elemental by mistake.\n",
          "Apprentice says: Do you know what to do?\n",
          "Apprentice says: Can you make the elemental go away?\n",
          "Apprentice says: Please make the elemental go away.\n",
    }));
    apprentice -> add_class("mage");
    apprentice -> load_spells(15,({
          "burning hands", "web", "monster summon 1", "rope trick",
          "chill touch", "stone skin", "fire shield",
    }));
    apprentice -> set_heart_ob(this_object());
    move_object(apprentice,this_object());
    move_object(clone_object("room/city/obj/s_book"),apprentice);
  }

  if(arg) return;
  set_short("the basement of the council of high magic");
  set_long(
     "A large circle of white marble lined with white candles sits in \n"+
     "the middle of the room. The walls are scortched and marked with \n"+
     "blood. Apparently something terrible has happened here. A cold  \n"+
     "iron staircase winds its way upward into the darkness.\n");

  set_items(({
     "stairs#staircase",
          "A stairwell of cold black iron, descending downward",
     "walls#wall",
          "The walls are of a cold grey stone, possibly made by magical \n"+
          "magical means. They are covered with spots of blood and burn \n"+
          "marks from some intense fire or explosion",
     "candle#candle",
          "They surround the circle in the center of the room",
     "circle#marble",
          "A marble circle has been placed in the centre of the room.\n"+
          "Your knowledge of magic tells you it is a circle of protection",
     "stone",
          "No dwarf chiselled this stone",
  }));
  set_listen("You hear the crackling of fire...somewhere close by.\n");
  set_smell("The air here smells of burnt flesh.\n");
  set_exits(({
     "room/city/mage/bfloor1", "up",
     "room/city/mage/bfloor3", "east",
  }));
  set_weather(2,1,0);    
}

void monster_died() {
  object corpse;
  corpse = present("corpse", this_object());
  tell_room(this_object(), "Elemental explodes....then vanishes...\n");
  if(corpse) destruct(corpse);
}

void monster_heart_beat() {
  if(present("rope", this_object())) {
    if(apprentice)
      command("climb rope", apprentice);
  }
}