#include <ss_types.h>
#include <stdproperties.h>
#include <pl.h>
#include <wa_types.h>
#include <macros.h>
#include "morley.h"
inherit "/d/Imperium/std/undead.c";
mixed przymiotniki1 = ({ ({"smierdzacy", "smierdzacy"}), ({"cuchnacy", "cuchnacy"}),
			  ({"obrzydliwy", "obrzydliwi"}), ({"okropny", "okropni"}),
			  ({"paskudny", "paskudni"}), ({"okrutny", "okrutni"}) });
mixed przymiotniki2 = ({ ({"powolny", "powolni"}), ({"wysoki", "wysocy"}),
			 ({"halasliwy", "halasliwi"}), ({"niski", "niscy"}),
			 ({"przegnily", "przegnili"}), ({"agresywny", "agresywni"}) });
int q_att();
void
create_undead()
{
    int tmp;
    ustaw_odmiane_rasy(({"zombi", "zombiego", "zombiemu", "zombiego", "zombim", "zombim"}),
		       ({"zombi", "zombich", "zombim", "zombich", "zombimi", "zombich"}),
		       PL_MESKI_OS);
    set_long("To co masz przed oczami przypomina ci nadjedzone juz przez czas zwloki, " +
	     "ktore niewiadomym sposobem wstaly i na powrot zaczely chodzic po ziemi. " +
	     "Cialo niewatpliwie jest juz w zaawansowanym stadium rozkladu, juz z " +
	     "daleka czuc przyprawiajacy o mdlosci odor gnijacego miesa, a wyglad " +
	     "czyni wszystko jeszcze gorszym. Ochydnie zmasakrowane cielsko sprawia " +
	     "wrazenie jakby mialo sie rozpasc - tu i uwdzie odstaja, odpadajace juz, " +
	     "kawaly niegdys ludzkiego ciala.\n");
    tmp = random(sizeof(przymiotniki1));
    dodaj_przym(przymiotniki1[tmp][0], przymiotniki1[tmp][1]);
    tmp = random(sizeof(przymiotniki2));
    dodaj_przym(przymiotniki2[tmp][0], przymiotniki2[tmp][1]);
    
    set_gender(G_MALE);
    set_stats(({55 + random(10), 25, 70 + random(20), 10, 10, 45 + random(10)}));
    set_alignment(-500);
    set_skill(SS_UNARM_COMBAT, 60);
    set_skill(SS_AWARENESS, 40);
    set_skill(SS_DEFENCE, 30);
    set_skill(SS_PARRY, 40);
    
    add_prop(CONT_I_HEIGHT, 160 + random(40));
    add_prop(CONT_I_WEIGHT, 60 + random(40));
    add_prop(LIVE_I_SEE_DARK, 2);
    add_prop(LIVE_I_UNDEAD, 1);
    add_prop(NPC_M_NO_ACCEPT_GIVE, " tylko usmiecha sie glupio, ale nie chce nieczego " +
	     "wziac od ciebie.\n");
    add_prop(NPC_I_NO_FEAR, 1);
    add_prop(OBJ_S_WIZINFO, "by Morley '99\n");
    set_aggressive(q_att);
    set_act_time(25 + random(15));
    add_act("jeknij glucho");
    add_act("emote gubi pare kawalkow nadgnilego miesa.");
    add_act("emote roztacza wokol siebie okropny smrod.");
    add_act("emote obrzydliwie sie slini przez niemalze odpadajace wargi.");
    add_act("emote wyje potepienczo.");
    set_cact_time(5);
    add_cact("emote lypie na ciebie prawie wypadajacym z przegnilego ciala okiem.");
    add_cact("emote zapluwa sobie brode w nieudanej probie oplucia ciebie.");
    add_cact("emote ryczy jak zazynana swinia.");
    add_cact("emote rozrzuca liczne kawalki wlasnego ciala zamaszystym machnieciem reki.");
    add_cact("emote mruczy cos niezrozumiale pod nosem, ale z wyrazu jego twarzy " +
	     "odczytujesz, ze to jakies grozby i obelgi.");
    set_random_move(20);
}
mixed
hit_me(int wcpen, int dt, int tohit, object attacker, int attack_id, int target_hitloc = -1)
{
    if (dt == W_SLASH)
	return ::hit_me(wcpen, dt, tohit, attacker, attack_id, target_hitloc);
    wcpen /= 3;
    
    if (dt == W_CLUB && !attacker->query_prop("_uderzylem_zombiego") )
    {
	attacker->catch_msg("Ze zdziwieniem stwierdzasz, ze twoje uderzenie w nadgnile " +
			    "cialo zombiego nie zadaje takich obrazen jak powinno.\n");
	attacker->add_prop("_uderzylem_zombiego", 1);
    }
    if (dt == W_IMPALE && !attacker->query_prop("_pchnalem_zombiego") )
    {
	attacker->catch_msg("Ze zdziwieniem stwierdzasz, ze twoje pchniecie w nadgnile " +
			    "cialo zombiego nie zadaje takich obrazen jak powinno.\n");
	attacker->add_prop("_pchnalem_zombiego", 1);
    }
    return ::hit_me(wcpen, dt, tohit, attacker, attack_id, target_hitloc);
}
int
q_att()
{
    if (this_player()->query_prop(IMPERIUM_STWOR_CHAOSU) == 1)
	return 0;
    return 1;
}
