mud/lib/domains/learning/room/death.c
2020-09-06 05:43:07 -07:00

74 lines
1.8 KiB
C

#include <lib.h>
#include <dirs.h>
#include ROOMS_H
inherit LIB_ROOM;
string FunkyPic();
int CheckChat();
int StartHeart(object ob);
static void create() {
room::create();
SetClimate("indoors");
SetAmbientLight(30);
SetShort("off the mortal coil");
SetLong( (:FunkyPic:) );
SetObviousExits("no exit");
set_heart_beat(10);
SetNoModify(1);
}
void init(){
::init();
add_action("regenerate","regenerate");
add_action("regenerate","choose");
add_action("wander","wander");
this_object()->CheckChat();
}
string FunkyPic(){
return "YOU ARE DEAD!!!";
}
int regenerate(){
write("With a great rush of matter and energy, you rematerialize "+
"into a corporeal state, and find yourself in a familiar place...");
this_player()->eventRevive();
this_player()->eventMoveLiving(ROOM_START);
return 1;
}
int wander(){
write("There is a strange, hollow vibration all around you, and you "+
"realize that some force is compelling your ethereal form elsewhere..."+
"you find yourself in a place that is known to you, yet oddly new.");
this_player()->eventMoveLiving(ROOM_START);
return 1;
}
void heart_beat(){
tell_room(this_object(), "A voice whispers: \" You may choose to "+
"regenerate into a new body here.\"");
return;
}
int CanRelease(object ob){
if(userp(ob) && ob->GetGhost() && environment(ob) == this_object()) {
tell_player(ob,"\n%^RED%^Your undead spirit is recalled and as you leave "+
"the underworld a new body regenerates around you. "+
"You live again!%^RESET%^\n");
ob->eventRevive();
}
return 1;
}
int CanReceive(object ob){
if(!living(ob)){
return 0;
}
return ::CanReceive(ob);
}