#pragma strict_types
#pragma no_clone

#include "zol_naj.h"
#include <macros.h>

inherit STD_PATH + "war_out.c";

void
create_imperium_room()
{
    set_short ("Brama warowni");
    set_long ("@@opis");
    
    add_exit (WPATH + "przed_br.c", ({"poludnie", "przez brame na poludnie"}),
	      "@@brama_oz", 1, "@@q_brama");
    add_exit (WPATH + "dziedz3.c", "polnocny-zachod");
    add_exit (WPATH + "dziedz4.c", "polnocny-wschod");

    add_item (({"flage", "maszt", "slup"}), "Who nows now? :>\n");
    add_item (({"wrota", "brame"}), "zara\n");
}

string
opis()
{
    return "Stoisz tuz za brama warowni Wolnej Kompanii Stirlandu. Na polnocy " +
	"znajduje sie niewielki dziedziniec, otoczony ze wszystkich stron " +
	"niewielkimi zabudowaniami, wspartymi o dosyc potezne mury. Na dziedzincu " +
	"panuje calkiem spory ruch - co chwila przechodzi ktos zalatwiajac jakies " +
	"sprawy, a w samym centrum placyku pod masztem z flaga jednostki trenuje " +
	"liczna grupa wojakow. Na poludnie znajduje sie solidna brama odgradzajaca " +
	"Komapnie od swiata zewnetrznego. Pilnuje jej dwoch roslych straznikow, " +
	"majacych za zadanie niewpuszczanie niepowolanych osob. " +
	opis_pory_roku() + "\n";
}

void
init()
{
    add_action ("zapukaj", "zapukaj");
    ::init();
}

int
q_brama()
{
    return call_other (WPATH + "przed_br.c", "query_brama");
}

int
brama_oz()
{
    if (call_other (WPATH + "przed_br.c", "query_brama") )
    {
	write ("Ciekawe... Przechodzic przez zamkniete wrota?\n");
	say (QCIMIE (this_player(), PL_MIA) + " inteligentnie usiluje przejsc " +
	     "przez zamkniete wrota.\n");
	return 1;
    }
    return 0;
}

int
zapukaj(string str)
{
    if (!stringp (str) && str != "we wrota")
    {
	notify_fail ("Zapukaj w co?\n");
	return 0;
    }

    if (!call_other (WPATH + "przed_br.c", "query_brama") )
    {
	write ("Ojoj... cos niedobrze z nami? Pukac w otwarte wrota?\n");
	say ("Bardzo roztropnie puka w otwarte wrota.\n");
	return 1;
    }

    write ("Energicznie pukasz we wrota i prawie natychmiast straznicy otwieraja " +
	   "brame do srodka.\n");
    say (QCIMIE (this_player(), PL_MIA) + " energicznie puka we wrota i prawie " +
	 "natychmiast straznicy otwieraja brame do srodka.\n");
    
    call_other (WPATH + "przed_br.c", "set_brama", 0);
    
    call_other (WPATH + "przed_br.c", "zamknij_co");
    tell_room (WPATH + "przed_br.c", "Ktos od wewnatrz glosno puka w brame, po czym " +
	       "prawie natychmiast wrota otwieraja sie do srodka.\n");
    return 1;
}
    
   
int
prevent_enter(object ob)
{
    if (!ENGINE->query_member(ob) )
    {
	ob->catch_msg ("Kiedy probujesz wejsc do srodka dwoch straznikow z groznymi " +
		       "minami zastawia ci droge i wypycha na zewnatrz.\n");
	tell_room(WPATH + "przed_br.c", "Jednak niemalze natychmiast dwoch straznikow " +
		  "zastawia " + ob->koncowka("mu", "jej") + " droge i wypycha na " +
		  "zewnatrz.\n", ob);
	return 1;
    }
}
