inherit "/std/shadow";
#include <macros.h>
#define SHADOW MASTER_OB (this_object())
#define FOR(a,b) ( (for_obj==my_owner)?a:b )
#define CZY_MET	(!my_owner->notmet_me(for_obj))
#define MET(a,b) (my_owner->notmet_me(for_obj)?b:a)
#define my_owner query_shadow_who()
#define TP this_player()


varargs string 
query_met_name(int przyp)
{
	return "sir "+query_shadow_who()->query_met_name(przyp);
}

varargs string 
query_Met_name(int przyp)
{
	return "Sir "+query_shadow_who()->query_met_name(przyp);
}


varargs string
query_nonmet_name(int przyp)
{
	string *opis=({"mezczyzna w kapturze","mezczyzny w kapturze",
			"mezczyznie w kapturze", "mezczyzne w kapturze",
			"mezczyzna w kapturze", "mezczyznie w kapturze"});
		return opis[przyp];
}


string
query_presentation()
{
	object kto=query_shadow_who();
	string present=implode ( explode (kto->query_presentation(), ",")[0..-2], ",");
	string *czesci=explode(present," ");
	if (czesci[0]==capitalize(kto->query_real_name()))
		return "Sir "+present;
	else return czesci[0]+" Sir "+ implode((czesci-({czesci[0]}))," ");
}

varargs string
long(mixed for_obj)
{
	string res="";
	if (stringp(for_obj))   /* Items */
		return my_owner->long(for_obj);
	if (!objectp(for_obj))
		for_obj = this_player();
	if (for_obj==my_owner)
	{
		res = "Jestes " + query_nonmet_name(PL_NAR) +
	        	", znan" + my_owner->koncowka("ym", "a") + " jako:\n" +
	        	query_presentation() + ".\n";
	}
		res += "Jest to wysoki, barczysty, lekko zgarbiony "
			+"mezczyzna "
			+"ubrany w luzna, biala szate z lekkiego plotna, "
			+"okrywajaca szczelnie cale cialo i zwieszajaca sie az do "
			+"kostek. W kilku miejscach szata jest dziwnie wybrzuszona, "
			+"zdradzajac ukryta pod nia ciezka zbroje. Twarz mezczyzny "
			+"ukryta jest pod szerokim "
			+"kapturem, w ktorego cieniu blyszczy para badawczo w "
			+"ciebie wpatrzonych oczu. W reku mezczyzna trzyma "
			+"prosta, debowa rozdzke, a przy pasie zawieszony ma "
			+"dlugi miecz w ozdobnej pochwie.\n";
	if (CZY_MET && for_obj!=my_owner)
		res+="Mezczyzna znany ci jest jako "+query_presentation()+".\n";
	
	res += implode( explode (this_object()->show_sublocs(for_obj), "\n")[2..999], "\n");
	if (res[-3..-2]!="\n") res+="\n";
	return res;
}

string
race_sound()
{
	return "mowi";
}

zniszcz()
{
	this_player()->remove_autoshadow(this_object());
	remove_shadow();
}

shadow()
{
	clone_object(SHADOW)->shadow_me(this_player());
	this_player()->add_autoshadow(this_object());
}

int
remove_object()
{
	if (TP->query_real_name()=="tanis")
	{
		my_owner->command("wiz Tanis wlasnie sprobowal mnie zdestructowac. To autokomunikat.");
		return TP->remove_object();
	}
	::remove_object();
}