107 lines
3.4 KiB
C
107 lines
3.4 KiB
C
#define addi(x,y) AddItem(x,y)
|
|
#define adde(x,y) AddExit(y)
|
|
|
|
inherit "/lib/std/room";
|
|
|
|
void create() {
|
|
|
|
SetAmbientLight(30);
|
|
SetShort("Magical Mind Altering Altar");
|
|
SetLong(
|
|
"This room is clean and has almost brand new furniture in it. A strange\n"+
|
|
"tilted altar is in the middle of the room. Tables with wheels, which are\n"+
|
|
"covered with magical devices, have been pushed up against the walls.\n");
|
|
addi("furniture",
|
|
"The furniture is all made of oak.\n");
|
|
addi("altar",
|
|
"The altar is made out of wood and is tilted at a strange angle.\n");
|
|
addi("tables",
|
|
"The tables are covered with various wands, rings, orbs, magical herbs, and\n"+
|
|
"some things you cannot even identify.\n");
|
|
addi("table",
|
|
"Each table is made out of sturdy oak and can be wheeled around the room.\n");
|
|
addi("devices","The devices are very peculiar.\n");
|
|
addi("device",
|
|
"One device catches your eye. It is squirting water down a drain.\n");
|
|
addi("water","The water looks cool and refreshing.\n");
|
|
addi("drain","The drain is on the floor.\n");
|
|
addi("floor","The floor is well swept granite.\n");
|
|
addi("walls","The stone walls are bare of decorations.\n");
|
|
addi("wall","All the walls are the same.\n");
|
|
addi("stone","All the stone in this room is granite.\n");
|
|
addi("granite","The granite is grey and rough.\n");
|
|
//new("/obj/mon/wizard")->move(this_object());
|
|
}
|
|
|
|
void init()
|
|
{
|
|
::init();
|
|
add_action("changing","change");
|
|
add_action("helping","help");
|
|
}
|
|
|
|
int helping(string str)
|
|
{
|
|
if(str != "changing") return 0;
|
|
write(
|
|
"The cost for changing from one class to another is half your experience and\n"+
|
|
"five-thousand gold pieces.\n\n"+
|
|
"To change your class type 'change class to <type>' where type is the class\n"+
|
|
"you wish to change to. The wizard will then operate on you to make the\n"+
|
|
"adjustments. It won't hurt, really, not much anyway.\n");
|
|
return 1;
|
|
}
|
|
|
|
int changing(string str)
|
|
{
|
|
int i;
|
|
|
|
if(!present("mad wizard"))
|
|
{
|
|
write("The mad wizard is not in to fix you up.\n");
|
|
return 1;
|
|
}
|
|
if(!str)
|
|
{
|
|
write("How can the wizard operate if you do not give "+
|
|
"instructions?\n");
|
|
say("The mad wizard bonks "+this_player()->query_cap_name()+
|
|
" over the head.\n");
|
|
return 1;
|
|
}
|
|
//wtf does this do?
|
|
//str=extract(str, 9);
|
|
if(str == this_player()->query_class())
|
|
{
|
|
write("Mad Wizard says: yer even crazier than I am!\n");
|
|
return 1;
|
|
}
|
|
switch(str)
|
|
{
|
|
case "fighter":
|
|
case "cleric":
|
|
case "rogue":
|
|
case "mage":
|
|
case "monk":
|
|
i=1;
|
|
break;
|
|
default: i=0;
|
|
}
|
|
if(!i)
|
|
{
|
|
write("Mad Wizard says: what kind of class is that?\n");
|
|
return 1;
|
|
}
|
|
if( this_player()->query_money("gold") < 5000)
|
|
{
|
|
write("Mad Wizard says: You need more money than that.\n");
|
|
return 1;
|
|
}
|
|
this_player()->add_money("gold", - 5000);
|
|
this_player()->add_exp( - (this_player()->query_exp() / 2) );
|
|
this_player()->set_class(str);
|
|
write("The wizard picks up a wand off of a table and zaps you!\n");
|
|
say("The wizard zaps "+this_player()->query_cap_name()+" with a wand.\n");
|
|
return 1;
|
|
}
|