/* Dziura do otchlani
 * napisane przez Alfena
 */

#include "local.h"
#include <pl.h>
#include <stdproperties.h>
#include <macros.h>

#define VOID LPATH + "otchlan"

inherit TPATH + "std/twierdza";


void
create_twierdza()
{
	set_short("Brama Piekiel");
	set_long("Znajdujesz sie w owalnej komnacie, ktorej sciany "+
		"zostaly pokryte dziwnymi, jarzacymi sie freskami. "+
		"Posadzka komnaty skalda sie z dwukolorowych kamieni, na "+
		"ktorych wyryto symbole Bogow wyznawanych w Imperium. "+
		query_long()+" Osiem filarow zakrzywiajacych sie w luki "+
		"podtrzymuje sklepienie. Po srodku komnaty, dokladnie w "+
		"centrum, znajduje sie ocembrowana studnia o "+
		"brzegach idealnie przylegajacych od podloza.\n");
		
	add_item(({"posadzke","symbole","kamienie"}),
		"Symbole wyryte na kamieniach przynaleza do "+
		"Sigmara, Vereny, Mora, Shali, "+
		"Kronosa lub Liadriel. Dziwnie sie czujesz stapajac po nich.\n");
	add_item("filary","Filary zostaly wykonane z kamieni o tej samej "+
		"barwie. Pierwszy filar - zlota, drugi - zieleni, trzeci - "+
		"czerwieni, czwarty - fioletu, piaty - niebieskiego, "+
		"szosty - srebra, siodmy - pomaranczu i osmy - czerni.\n");
	add_item("studnie","Gdy zagladasz do wnetrza studni, twym oczom "+
		"ukazuje sie widok przepastnej glebi i krwisto czerwonych "+
		"plomieni szalejacych w dole.\n");
	add_item("freski","Freski zostaly narysowane weglem. Przedstawiaja "+
		"postaci ubrane w czarne szaty i plamy czarni wynurzajace sie "+
		"ze studni.\n");
		
	add_exit(LPATH + "wn6", "zachod");
	add_exit(LPATH + "wn7", "wschod");
	add_exit(LPATH + "wn2", "poludnie");
	add_exit(LPATH + "oltarz", "polnoc");
	
	reset_twierdza();
}


int
prevent_enter(object ob)
{
	if (interactive(ob))
		write("Do twych uszu dotarl odglos jeku, gdy "+
			"postawil"+ob->koncowka("e","a")+"s stope "+
			(CAN_SEE_IN_ROOM(ob)?
			"posadzce.\n":
			"czyms.\n"));
	return ::prevent_enter(ob);
}


int
prevent_leave(object ob)
{
	if (interactive(ob))
		write("Do twych uszu dotarl odglos westchnienia, gdy "+
			ob->koncowka("zszdle","zeszla")+"s z "+
			(CAN_SEE_IN_ROOM(ob)?
			"posadzki.\n":
			"czegos.\n"));
	return ::prevent_leave(ob);
}


void
init()
{
	::init();
	add_action("do_wskocz","wskocz");
	add_action("do_wskocz","skocz");
}


int
do_wskocz(string s)
{
	object tp = this_player();
	notify_fail("Slucham?\n");
	if (s!="do studni" || !CAN_SEE_IN_ROOM(this_player()))
		return 0;
	
	setuid();
	seteuid(getuid());
	say(QCIMIE(tp, PL_MIA)+" skoczyl"+tp->koncowka("","a")+
		" do studni w nieprzeniknio"+
		"na, czarna czelusc.\n");
	write("Skoczyl"+tp->koncowka("es","as")+
		" do studni w nieprzenikniona, czarna czelusc.\n");
	tp->move(VOID);
//	tp->set_hp(0);
//	tp->heal_hp(-100);
//	tp->do_die(tp);
	
	return 1;
}

void
reset_twierdza()
{
	object ob;
	if (!present("kaplan"))
	{
		ob = clone_object(TPATH + "npc/kaplan");
		ob->szykuj();
		ob->move_living("Ms", this_object());
	}
}
