inherit "std/room";
#define PATH "/doc/races/"
void setup()
{
string human, halfelf, elf, halfling, orc, halforc, lizardman;
string gnome, dwarf, goblin, drow,duergar;
// added by Radix for "no new" players from the site.
// REAL ugly but works (: 2-20-95
//clone_object("/room/start/nonew")->move(this_object());
// following added by Radix the ra//ceroom fixer
// disallow all combat in here, should anyhow 4-7-95
add_property("no_undead",1);
set_light(75);
set_short("The Hall of Creation");
set_long(
"Your immaterial form has found it's way to the Hall of Creation. Here, you "
"will determine in part what you will become by selecting your race. You "
"immediately notice several large statues supporting the high-arched ceiling "
"here. Depicted herein are all the races: Drow, Duergar, Dwarf, Elf, Half-Elf, Gnome, "
"Goblin, Halfling, Human, Lizard-Man, Orc, and Half-Orc.\n\n"
"You think that if you examined a statue, you might find out more about what "
"that Race represents.\n\n"
"When you have chosen your race after careful research (For you will only be "
"allowed to choose -once-!) you must type:\n"
"\n"
"become <race> For Example: become human\n\n");
add_item("statue","The statues are beautifully carved of solid granite, each "
"one respresenting a race that you might choose to become. If you would like "
"to learn more about a particular race, you must examine one specifically, "
"For example: exa human -or- exa drow.\n");
add_item("hall","The Hall of Creation is where all new mortals begin the "
"shaping of their lives.\n");
add_item("ceiling","The arched ceiling is painted with portraits of all the "
"ruling dieties and Gods.\n");
human = read_file(PATH+"human");
halfelf = read_file(PATH+"half-elf");
elf = read_file(PATH+"elf");
drow = read_file(PATH+"drow");
dwarf = read_file(PATH+"dwarf");
gnome = read_file(PATH+"gnome");
halfling = read_file(PATH+"halfling");
halforc= read_file(PATH+"half-orc");
orc= read_file(PATH+"orc");
goblin = read_file(PATH+"goblin");
lizardman = read_file(PATH+"lizard-man");
duergar = read_file(PATH+"duergar");
add_item("human", human);
add_item("half-elf", halfelf);
add_item("elf", elf);
add_item("drow", drow);
add_item("dwarf", dwarf);
add_item("gnome", gnome);
add_item("halfling", halfling);
add_item("half-orc", halforc);
add_item("orc", orc);
add_item("goblin", goblin);
add_item("lizard-man", lizardman);
add_item("duergar",duergar);
}
int no_kill(string str) { return 1; }
void init()
{
::init();
add_action("do_become", "become");
add_property("nocast",1);
add_property("noguild",1);
/* Mask the action rearrange */
add_action("do_rearrange", "rearrange");
add_action("no_kill","attack");
add_action("no_kill","kill");
}
int do_rearrange()
{
tell_object(this_player(),"Not allowed here, select a race and leave first.\n");
return 1;
} /* do rearrange */
int do_become(string str)
{
object me;
string race;
string robj;
string startplace;
int i;
me = this_player();
str = lower_case(str);
/* The players should be able to pick a race only once.
* Fixed by Baldrick, dec '94
*/
/* Just for betatesting, you have to be "registrated" to be able to get
* out of this room.
* Baldrick, sept '95
*/
/*
if (!me->query_registrated())
{
notify_fail("You have to be registrated, ask a Thane or higher for it.\n");
return 0;
}
*/
robj = (string)me->query_race_ob();
if( !( robj == "/std/races/unknown" || robj == "std/races/unknown" ) )
if ((string)me->query_race_ob() != "std/races/unknown")
{
/* Commenting out level dependency --Benedick
if(me->query_level() < 5)
*/
startplace = "/room/entryroom.c";
/*
else startplace = "/d/ss/swamp/sw2.c"; // Taniwha 1995, higher level players NOT to newbie zones
*/
notify_fail("Your race has not been altered.\n");
me->move(startplace);
this_player()->do_cmd("look");
return 0;
} /* in (me */
switch(str)
{
case "human":
case "half-orc":
case "half-elf":
case "halfling":
case "dwarf":
case "drow":
case "duergar":
case "elf":
case "orc":
case "lizard-man":
case "gnome":
case "goblin":
race = str;
break;
default:
return 0;
break;
}
if(race)
{
say(this_player()->query_cap_name()+" enters the "+race+" statue and "
"disappears.\nA new "+race+" statue suddenly appears.\n", this_player());
me->set_race_ob("/std/races/"+race);
write("\nMoving you to the Entry Hall...\n\n");
startplace = "/room/entryroom.c";
// me->move("/room/start/"+race);
me->move(startplace);
this_player()->do_cmd("look");
startplace->add_equipment();
switch(race)
{
case "half-elf":
me->add_language("human");
me->add_language("elf");
break;
case "half-orc":
me->add_language("human");
me->add_language("orc");
break;
default:
me->add_language(race);
break;
}
return 1;
}
notify_fail("No such race, try again.\n");
return 0;
}