mud/lib/domains/Praxis/attic/class_change.c
2020-09-06 05:43:07 -07:00

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;
}