#include <mudlib.h> inherit ROOM; static object monster, apprentice, wand; static int i; void reset(status arg) { reset_doors(arg); load_door(({ "file", "room/city/garden/garden2", "direction", "north", "long", "A large pair of double iron doors, made from a strange black wood.\n", "key id", "city key", })); if(!present("apprentice")) { for(i=0; i<4; i++) { apprentice = clone_object(MONSTER); apprentice -> set_name("apprentice"); apprentice -> set_al(200); apprentice -> set_level(10); apprentice -> set_short("A young apprentice"); apprentice -> set_gender(random(2) + 1); apprentice -> set_race("human"); apprentice -> set_long( "This young apprentice is trying to learn the complexities \n"+ "of magic and so has journeyed here to learn from the masters.\n"); apprentice -> set_wc(14); apprentice -> set_ac(9); apprentice -> add_money(200 + random(300)); apprentice -> load_chat(10,({ "Apprentice says: Hullo there.\n", "Apprentice asks: Can you help me?\n", "Apprentice asks: I am trying to learn some magic here.\n", "Apprentice tries to learn a complex magical formula.\n", "Apprentice says: I just don't think I can learn this one.\n", })); apprentice -> load_a_chat(10,({ "Apprentice screams for help!\n", "Apprentice exclaims: Mordenkainen will not like this!\n", "Apprentice exclaims: Stop it, please!\n", "Apprentice bursts into tears.\n", "Apprentice sobs sadly.\n", })); apprentice -> load_spells(40,({ "burning hands", "monster summon 1", "shadow door", })); apprentice -> set_magic_resist(10); move_object(apprentice,this_object()); } } if(!find_living("rary")) { monster = clone_object(MONSTER); monster -> set_name("rary"); monster -> set_alias("archmage"); monster -> set_wander(50, 120); monster -> set_race("human"); monster -> add_class("mage"); monster -> add_class("cleric"); monster -> set_gender(1); monster -> set_short("Archmage Rary"); monster -> set_al(500); monster -> set_long( "One of the ancient mages of the council, Rary is the traditional \n"+ "archmage, carefully studying tomes almost as old as he is. Rary \n"+ "is a dithering old wizard, probably currently searching for his \n"+ "spectacles.\n"); monster -> set_level(45); monster -> set_ac(38); monster -> set_wc(30); monster -> load_chat(10,({ "Rary looks around the room.\n", "Rary asks: Have you seen my glasses?\n", "Rary says: I seem to have misplaced my spectacles.\n", "Rary says: What did you say?\n", "Rary says: Sorry, I'm a little hard of hearing.\n", "Rary wanders around the room.\n", "Rary scratches his head.\n", "Rary ponders the situation.\n", "Rary thinks carefully.\n", "Rary asks: Will you help me find my glasses?\n", })); monster -> load_a_chat(10,({ "Rary says: Have respect for your elders.\n", "Rary says: Be kind to your elders.\n", "Rary says: Leave my alone, you big bully.\n", "Rary asks: Have you no pitty for the elderly?\n", "Rary exclaims: Mordenkaine will hear about this!\n", "Rary bursts into tears.\n", })); monster -> add_spell_immunity("death"); monster -> add_spell_immunity("poison"); monster -> add_spell_immunity("cold"); monster -> add_spell_immunity("fire"); monster -> add_spell_immunity("lightning"); monster -> set_magic_resist(55); monster -> load_spells(30, ({ "fire ball", "fire shield", "lightning bolt", "chain lightning", "curse", "bless", "monster summon 2", "burning hands", "stone skin", "cone of cold", "ice storm", " monster summon 3", "disintegrate", "pwk", "pws", "comet", "death spell", "energy drain", "chill touch", "heal", "cure light wounds", "hold person", "hold monster", "phantom armour", })); monster -> set_dead_ob(this_object()); move_object(monster,this_object()); } if(arg) return; set_short("the tower of high magic"); set_long( "The grand hall of the Council of Magic is a great sight to \n"+ "behold. Tall pillars of blue-write marble stretch to the \n"+ "high vaulted ceiling above, painted with ornate frescoes. \n"); set_items(({ "columns#column#pillar#pillars#marble", "Marble columns which stretch toward the ceiling", "frescoe#frescoes", "The frescoes depict the titanic struggle of mankind against \n"+ "the terrors and evil of the dark-ones. Both seem locked in a tie", "ceiling#vaulted ceiling", "The ceiling is far above you", })); set_weather(2,4,0); set_exits(({ "room/city/mage/gfloor1", "south", })); } void monster_died() { object corpse; tell_room(environment(), "Rary exclaims: Lucky I have that contingency spell!\n"+ "Rary vanishes in a puff of smoke!\n\n"); corpse = present("corpse",this_object()); if(corpse) destruct(corpse); }