/* szata kaplanow Slanesha
 * napisane przez Alfena
 */

#include "local.h"
#include <pl.h>
#include <macros.h>
#include <stdproperties.h>
#include <wa_types.h>

inherit "/std/armour";
int kap = 0;


void
create_armour()
{
	setuid();
	seteuid(getuid());
	
	ustaw_nazwe(({ "szata", "szaty", "szacie", "szate", "szata",
            "szacie" }), ({ "szaty", "szat", "szatom", "szaty", "szatami",
            "szatach" }), PL_ZENSKI);
	dodaj_przym("dlugi","dludzy");
	dodaj_przym("czarny","czarni");
	
	set_long("Jest to "+short(PL_MIA)+", zrobiony z dziwnego, miekkiego "+
		"materialu, przywodzacego na mysl kobiece wlosy. "+
		"Uklada sie on idealnie, scisle przylegajac do figury. "+
		"Niesamowite wzory, pokrywajace szate rozmywaja sie, gdy "+
		"na nie spogladasz. "+"@@kaptur@@"+"\n");
		
	set_ac( A_BODY, 1, 1, 1,
		A_ARMS, 1, 1, 1,
		A_LEGS, 1, 1, 1,
		A_HEAD, 1, 1, 1);
	
	set_slots(A_ROBE);
	add_cmd_item(({"szate","czarna szate","dluga szate",
		"czarna dluga szate","dluga czarna szate"}),
		({"wygladz","wyczysc"}),({"@@wygladz@@","@@wyczysc@@"}));
	add_cmd_item("kaptur",({"zaloz","naciagnij", "zdejmij"}),
		({"@@zaloz|1@@", 
		"@@zaloz|1@@", "@@zaloz|0@@"}));
}


string
kaptur()
{
	return (kap?"Naciagniety na glowe kaptur calkowicie zaslania "+
		"twarz postaci odzianej w "+short(PL_BIE)+".":
		"Bogato zdobiony kaptur swobodnie opada na tyl szaty.");  
}


string
zaloz(string s)
{
	int i = atoi(s);
	if (kap!=i)
	{
		kap = i;
		if (!this_player()->query_prop(OBJ_I_INVIS) && 
			!this_player()->query_prop(OBJ_I_HIDE))
		(i?say(QCIMIE(this_player(), PL_MIA)+ " naciagn"+
		this_player()->koncowka("al","ela")+
		" kaptur na glowe.\n"):
		say(QCIMIE(this_player(), PL_MIA)+ " zdj"+
		this_player()->koncowka("al","ela")+
		" kaptur z glowy.\n"));
		this_player()->sh_kaptur(i);
		return (i?
			"Naciagn"+this_player()->koncowka("ales","elas")+
			" kaptur na glowe.\n":
			"Zdj"+this_player()->koncowka("ales","elas")+
			" kaptur z glowy.\n");
	}
	return (i?"Masz juz naciagniety kaptur na glowe.\n":
		"Nie masz kaptura zalozonego na glowe.\n");
}


string
wygladz()
{
	if (this_player()!=environment(this_object()))
	{
		if (!this_player()->query_prop(OBJ_I_INVIS) && 
			!this_player()->query_prop(OBJ_I_HIDE))
		say(QCIMIE(this_player(),PL_MIA)+" delikatnie dotyka "+
			short(PL_DOP) +".\n");
		return "Delikatnie dotykasz "+short(PL_DOP)+
			"pieszczotliwie przebiegajac placami po splotach "+
			"wzorow.\n";
	}
	say(QCIMIE(this_player(),PL_MIA)+ " wygladza "+short(PL_DOP)+".\n");
	return "Pieszczotliwie gladzisz swoja "+short(PL_BIE)+".\n";
}



string
wyczysc()
{
	if (this_player()!=environment(this_object()))
	{
		if (!this_player()->query_prop(OBJ_I_INVIS) && 
			!this_player()->query_prop(OBJ_I_HIDE))
		say(QCIMIE(this_player(),PL_MIA)+" delikatnie dotyka "+
			short(PL_DOP) +".\n");
		return "Delikatnie dotykasz "+short(PL_DOP)+
			"pieszczotliwie przebiegajac placami po splotach "+
			"wzorow.\n";
	}
	say(QCIMIE(this_player(),PL_MIA)+ " czysci "+short(PL_DOP)+".\n");
	return "Dokladnie czyscisz swoja "+short(PL_BIE)+".\n";
}


mixed
wear_me(int i=0)
{
	mixed tmp = ::wear_me(i);
	object ob, tp = this_player();
	int align, r_hp;
	
	if (intp(tmp) && tmp)
	{
		if (-500<(align = tp->query_alignment()))
			align += 500;
		if (align > 0 && interactive(tp))
		{
			if ((r_hp=tp->query_mana()-align)<0)
			{
				write("Poczul"+tp->koncowka("es","as")+
				" jak tajemnicza moc wysysa twoje sily "+
				"zyciowe.\n");
				say(capitalize(short(PL_MIA))+" rozjarzyla sie "+
				"na zielono, po czym przygasla.\n");
				tp->heal_hp(r_hp);
				if (!tp->query_hp())
				{
					tp->do_die(this_object());
				}
			}	
			write("Poczul"+tp->koncowka("es","as")+
				" jak tajemnicza moc oslabia"+
				" twoje mysli.\n");
			say(capitalize(short(PL_MIA))+
				" rozjarzyla sie na czerwono, po czym przy"+
				"gasla.\n");
			tp->add_mana((-1)*align);
		}
		if (ob = clone_object(TPATH + "obj/sh_szaty"))
			ob->shadow_me(this_player());
		write("Dziwna energia przeniknela do twojego ciala.\n");
	}
	return tmp;
}


int
remove_arm(string s)
{
	int tmp;
	string st;
	
	tmp = ::remove_arm(s);
	
	if (tmp && this_player()->query_shadow_szaty())
	{
		if (kap)
			write(zaloz("0"));
		this_player()->remove_shadow_szaty();
		write("Ciemna poswiata opuscila twoje cialo, wsiakajac w "+
		short(PL_BIE)+".\n");
	}
	return tmp;
}



void
leave_env(object o1, object o2)
{
	if (kap)
		o1->catch_msg(zaloz("0"));
	::leave_env(o1, o2);
	if (o1->query_shadow_szaty())
		o1->remove_shadow_szaty();
}
