// File : /d/Fooland/hall.c
//
// The basic start room. Players begin here, and this is where they can find
// out what quests they haven't yet done. Also, people will probably get
// into the habit of hanging out here. Lord knows all the TMI wizards do.
// Created by Mobydick, September 1992.
// Updated by Watcher and Mobydick (04/93) for formal mudlib release.
#include <mudlib.h>
inherit ROOM ;
inherit DOORS ;
void create() {
object *obs ;
object ob ;
::create();
seteuid(getuid(this_object()));
call_other("/d/Fooland/mainboard","foo");
set("short", "Adventurer's Hall");
set("long",
"You are in the Adventurer's Hall of Footown. This is where players\n" +
"come to find out which quests remain unsolved. There is a large book\n"+
"entitled \"Quests\" lying on a nearby table which attracts your notice."+
"\nEast will take you out onto the fable streets of Footown, while a \n"+
"spiral staircase leads upwards and a door leads west. There is a very\n"+
"interesting painting of a grey-bearded wizard hanging on the wall.\n"+
"There is also a large sign on another wall; you feel strangely\n"+
"compelled to look at it.\n") ;
set("exit_msg", ([
"up" : "$N climbs the spiral staircase to the upper floor.\n",
"east" : "$N heads out into the world of adventure.\n"
]) ) ;
set("item_desc", ([
"sign" :
"Footown is the basic town here. There is a shop, a bank, a money\n"+
"exchange, and a pub here, plus this hall and some local scenery.\n"+
"On the north road outside town, there's a hill, and from the top\n"+
"of the hill you can get a pretty good look at the countryside.\n",
"table" :
"It is a large, round, oak table. Many generations of adventurers\n"+
"have pored over it as they tried to figure out the solutions to\n"+
"their quests.\n",
"book" :
"This is the Great Book of Quests. You can \"read\" it.\n"
]) ) ;
set ("item_func", ([ "painting" : "eyes" ]) ) ;
set("light", 1);
set("exits", ([
"east" : "/d/Fooland/smain",
"up" : "/d/TMI/rooms/quad",
"west" : "/d/Fooland/hall2",
]) ) ;
create_door("east", "west", "A sturdy oak door with a scratch on its side",
"closed");
// We clone up Googol the dwarf if either no copy exists, or if only
// the master copy (which is in the void) exists.
obs = children("/obj/googol") ;
if (sizeof(obs)==0 || ( sizeof(obs)==1 && !environment(obs[0]) ) ) {
ob = clone_object("/obj/googol") ;
ob -> move(this_object()) ;
}
set("objects", ([
"/obj/orc" : 1,
"axe" : "/obj/axe",
]) ) ;
reset();
}
void init() {
add_action ("read_book", "read") ;
}
int read_book (string str) {
if (str!="book" && str!="quests" && str!="book of quests") {
notify_fail ("What do you want to read?\n") ;
return 0 ;
}
write ("You open the Book of Quests and read:\n"+
" First Quest. The janitor of the Footown bank desperately wants a nice\n"+
"shrubbery for his bank. Go out into the mountain valley, where shrubs can\n"+
"be found, and bring one back for him.\n"+
"<apologies to Monty Python>\n") ;
say (this_player()->query("cap_name")+" reads the Book of Quests.\n") ;
return 1 ;
}
int eyes() {
write ("The eyes of the old wizard look back at you! Suddenly, you\n"+
"feel a tremendous force pulling you into the picture..\n") ;
this_player()->move_player("/d/Fooland/tower1",
this_player()->query("cap_name")+" vanishes into the painting!\n") ;
return 1 ;
}