/* kaplan Slanesha
  * napisane przez Alfena
  */
#include "local.h"
#include <pl.h>
#include <macros.h>
inherit TPATH + "std/mutant";
void
create_mutant()
{
	int i, *tmp;
	
	tmp  =  allocate(6);
	for (i=0; i<6; i++)
		tmp[i]=query_stat(i)+10+i*10;
	set_stats(tmp);
	for (i=0; i<100; i++)
		if (tmp[0]=query_skill(i))
			set_skill(i, tmp[0]+30+random(40));
	set_alignment(-600-random(200));
	
	ustaw_nazwe(({ "kaplan", "kaplana", "kaplanowi", "kaplana",
            "kaplanem", "kaplanie" }), ({ "kaplani", "kaplanow",
            "kaplanom", "kaplanow", "kaplanami", "kaplanach" }),
            PL_MESKI_OS);
	dodaj_przym("stary","starzy");
	dodaj_przym("przebiegly","przebiegli");
	
	ustaw_krotki_opis();
	
	add_armour(TPATH + "zbroje/szata");
	add_armour(TPATH + "obj/pier_ognia");
	set_alarm(5.0, 0.0, "command","zaloz kaptur");
	
	set_alarm(6.0, 0.0, "sklonuj");
}
int
special_attack(object wr)
{
	object *ob = query_enemy(-1);
	if (ob && sizeof(ob)>1)
		command("skieruj pierscien w strone "+
			query_attack()->query_nazwa(PL_DOP));
	set_alarm(1.0, 0.0, "oslon");
	return 0;
}
int
jest_akolita(object ob)
{
	return (ob->query_nazwa(PL_MIA)=="akolita");
}
void
sklonuj()
{
	int i;
	object *ob, pom;
	
	if (!environment(this_object()))
		return ;
	ob = all_inventory(environment(this_object()));
	setuid();
	seteuid(getuid());
	if ((i = sizeof(ob = filter(ob, &jest_akolita()))))
		while (--i>=0)
		{
			command("powiedz do "+ob[i]->query_nazwa(PL_DOP)+
				" Dolacz do mnie moje dziecko.");
			command("wskaz na "+ob[i]->query_nazwa(PL_BIE));
			if (team_join(ob[i]))
			{
				ob[i]->command("powiedz Tak o panie !");
				ob[i]->command("emote uklakl i pocalowal "+
					"dlon "+
					check_call(QIMIE(this_object(),PL_DOP)));
			}
		}
	i = sizeof(ob);
	i = 2 - i;
	while (--i>=0)
	{
		pom = clone_object(LPATH + "akolita");
		team_join(pom);
		pom->move_living("M",environment(this_object()));
	} 
}
void
oslon(object wr=0)
{
	object *ob = query_team();
	int j,i = sizeof(ob);
	object *tmp = query_enemy(-1);
	
	if (i)
	{
		if (!wr)
		{
			if (j = sizeof(tmp))
			{
				while (--j>=0 && !wr)
				if (tmp[j]->query_attack()==this_object())
					wr = tmp[j];
			}
		}
		if (!wr)
			return ;
		j = random(i);
		command("powiedz do "+ob[j]->query_nazwa(PL_DOP)+" Oslon mnie "+
			"moje dziecko !");
		ob[j]->command("emote zaslania wlasnym cialem "+
			check_call(QIMIE(this_object(), PL_BIE)));
		wr->attack_object(ob[j]);
		ob->attack_object(wr);
	}
}
#if 0
void
attacked_by(object *wr)
{
	::attacked_by(wr);
	
	set_alarm(3.0, 0.0, "oslon", wr);
	
}
#endif
