#include "std.h"
int lamp_is_lit;
object leo;
init() {
add_action("west"); add_verb("west");
add_action("open"); add_verb("open");
add_action("close"); add_verb("close");
add_action("push"); add_verb("push");
}
short() {
return "wizards hall";
}
long() {
write("You are in the hall of the wizards.\n" +
"There is a door to the west.\n");
if (lamp_is_lit)
write("There is a lit lamp beside the elevator.\n");
}
open(str)
{
if (str != "door")
return 0;
if (call_other("room/elevator", "query_level", 0) != 1) {
write("You can't when the elevator isn't here.\n");
return 1;
}
call_other("room/elevator", "open_door", "door");
return 1;
}
close(str)
{
if (str != "door")
return 0;
call_other("room/elevator", "close_door", "door");
return 1;
}
west() {
if (call_other("room/elevator", "query_door", 0) ||
call_other("room/elevator", "query_level", 0) != 1) {
write("The door is closed.\n");
return 1;
}
call_other(this_player(), "move_player", "west#room/elevator");
}
reset(arg) {
if (!arg)
set_light(1);
if (!leo || !living(leo)) {
leo = clone_object("obj/leo");
move_object(leo, this_object());
}
}
push(str)
{
if (str && str != "button")
return 0;
if (call_other("room/elevator", "call_elevator", 1))
lamp_is_lit = 1;
return 1;
}
elevator_arrives()
{
say("The lamp on the button beside the elevator goes out.\n");
lamp_is_lit = 0;
}