#include <lib.h>
#include <rooms.h>
inherit LIB_ROOM;
int initialized = 0;
void create() {
room::create();
SetAmbientLight(5);
SetShort("A Dark Cave");
SetLong("This is a small cave at the base of a cliff. A stone door is set into the north wall.");
SetExits( ([
"out" : "/domains/town/virtual/forest/24,25",
"north" : "/domains/town/room/cave1.c",
]) );
SetDoor("north", "/domains/town/doors/stone.c");
}
void init(){
::init();
if(!initialized){
object door = present("stone door",this_object());
if(!door) return;
door->SetItems( ([
({"inscription"}) : "Words in the language of the elves.",
]) );
SetClimate("indoors");
door->SetRead( ([
({"inscription"}) : "Speak, friend, and enter.",
"default" : "Try: read inscription on door"
]) );
door->SetLanguage("Edhellen");
initialized = 1;
}
}
varargs mixed eventHearTalk(object who, object target, int cls, string verb,
string msg, string lang) {
int decoded = 0;
object door = present("stone door",this_object());
if(door) door = door->GetDoor();
if(door && door->GetClosed() && lower_case(lang) == "edhellen"
&& who->GetLanguageLevel(lang) > 50 &&
grepp(lower_case(msg),"friend"))
decoded = 1;
room::eventHearTalk(who,target,cls,verb,msg,lang);
if(decoded){
eventPrint("With a great roar, the stone door rumbles open!");
door->SetClosed(0);
}
return 1;
}