#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",
                "south" : "/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;
}