//Autor: Dalador
// Opis: Golemik - BARDZO silny , BARDZO wytrzymaly i malo zwinny .



inherit "/d/Imperium/std/undead";
inherit "/std/combat/unarmed";


#include <wa_types.h>
#include <stdproperties.h>
#include <macros.h>
#include <formulas.h>
#include <wa_types.h>
#include <ss_types.h>
#include <filter_funs.h>
#include <options.h>

#include "dhor.h"
#include <money.h>


#define LIVE_I_NO_FLESH	"_live_i_no_flesh"

#define A_LAPA 0
#define H_GLOWA 0
#define H_CIALO 1



void
create_undead()

{

        dodaj_przym("potezny","potezni");
        dodaj_przym("ponury","ponurzy");


    ustaw_nazwe(({"golem", "golema", "golemowi", "golema", "golemem",
        "golemie"}), ({"golemy", "golemow", "golemom",
        "golemy", "golemami", "golemach"}), PL_MESKI_NZYW);
    ustaw_odmiane_rasy(({"golem", "golema", "golemowi", "golema", "golemem",
        "golemie"}), ({"golemy", "golemow", "golemom",
        "golemy", "golemami", "golemach"}), PL_MESKI_NZYW);
   

    set_gender(G_MALE);

    set_alignment(-400);

    set_long("Masz przed soba ogromnych rozmiarow kreature o "+
    "ponurym wygladzie. Istoty te zwane golemami, sa bardzo silne "+
    "i wytrzymale, a cala sylwetka tego stwora zbudowana jest z "+
    "szaro-brazowej gliny. Oczy postaci blyskaja nieziemskim blaskiem, az "+
    "strach pomyslec jak potezna moca dysponuje to okropne stworzenie!\n");



    set_stats(({ 120, 55, 120, 10, 80, 100 }));

    set_skill(SS_DEFENCE, 60);
    set_skill(SS_UNARM_COMBAT, 90);
    
    set_skill(SS_BLIND_COMBAT, 100);

    set_cact_time(10);

    add_cact("emote patrzy na ciebie strasznymi slepiami.");
    add_cact("emote wydaje przerazliwe dzwieki");
    
    
    set_attack_unarmed(A_LAPA,35,39,W_BLUDGEON,90, "potezna lapa");
 
    set_hitloc_unarmed(H_GLOWA,25,20, "glowe");
   
    set_hitloc_unarmed(H_CIALO,20,80, "korpus");
    
    
                    

    set_aggressive(1);

    add_prop(LIVE_I_UNDEAD, 25);
    add_prop(LIVE_I_NO_CORPSE, 1);
    add_prop(LIVE_I_NO_FLESH, 1);
    add_prop(NPC_I_NO_FEAR, 1);
    add_prop(LIVE_I_NEVERKNOWN,1);

 jak_pojawiac_sie(" wylania sie ze skaly!");
 jak_znikac(" wtapia sie w skalna sciane!");
 jak_znikac_podczas_walki(" zapada sie w ziemie!");
    

}

do_die(object killer)
{
        tell_room(environment(killer), "Golem rozpada sie na kawalki!\n");
        ::do_die(killer);
}

static void
tell_watcher(string str, object enemy)
{
     object *ob;
     int i;

       me = this_object();
       ob = FILTER_LIVE(all_inventory(environment(me))) - ({ me });
       ob -= ({ enemy });
       for (i = 0; i < sizeof(ob); i++)
       if (ob[i]->query_see_blood())
       ob[i]->catch_msg(str);
}


int
special_attack(object enemy)
{
    object me;
    mixed* hitresult;
    string how;

    me = this_object();
    if(random(10))
	return 1;                    

    hitresult = enemy->hit_me(30+random(30), W_BLUDGEON, me, -1);
    how = "bez rezultatu...";
    if (hitresult[0] > 0)     
	how == "raniac lekko.";
    if (hitresult[0] > 10)
	how = "raniac ciezko!";
    if (hitresult[0] > 20)
	how = "raniac bardzo ciezko!";
    
  
    TP->catch_msg(QCIMIE(me,PL_MIA) + " poteznym zamachem trafia cie \n"+
		     " " + how + ".\n");
    tell_watcher(QCIMIE(me,PL_MIA) + " wykonuje potezny zamach piescia w "+QCIMIE(me,PL_BIE)+ how +"\n", enemy);


    if(enemy->query_hp() <= 0)
	enemy->do_die(me);
    
    return 1;
}
