//Autor: Dhor
// Opis: licz - pierwsze podejscie

inherit "/d/Imperium/std/undead";
inherit "/std/combat/humunarmed";

#include <dhor.h>

#define PRZYMIOTNIKI ({({"grozny","grozni"}), ({"potworny","potworni"}),({"czerwonooki","czerwonoocy"}), \
                        ({"zwinny","zwinni"}), ({"gnijacy","gnijacy"}), \
                        ({"ponury","ponurzy"}),({"wysoki","wysocy"})})
#define LICZBA_PRZYMIOTNIKOW 7

#define LIVE_I_NO_FLESH	"_live_i_no_flesh"

mixed BRON2 = ({ BRONIE + "korseka.c",
                BRONIE + "szabla1.c",
                BRONIE + "miecz1.c" });

mixed BRON1 = ({ BRONIE + "miecz4.c",
                 BRONIE + "mlot.c" });
                                    
mixed ZBROJA = ({ ZBROJE + "napiersnik3.c",
		  ZBROJE + "kirys2.c",
		  ZBROJE + "kirys5.c",
		  ZBROJE + "kirys7.c" });

mixed HELMY = ({ ZBROJE + "w_helm.c",
		 ZBROJE + "w_helm3.c" });

mixed TARCZA = ({ ZBROJE + "tarcza4.c"
					});
					
mixed INNE = ({ ZBROJE + "plaszcz2.c",
		ZBROJE + "lewy_nar3.c",
       		ZBROJE + "lewy_nar4.c",
       		ZBROJE + "prawy_nar3.c",
       		ZBROJE + "prawy_nar4.c",
       		ZBROJE + "reka1.c"
                });


mixed szkielet=({"0","0","0","0"});

int zaatakowany, tmp;

void
create_undead()
{
        int i, j;
        i = random(LICZBA_PRZYMIOTNIKOW);
        j = random(LICZBA_PRZYMIOTNIKOW - 1);

        if(j >= i)
           ++j;
        dodaj_przym(PRZYMIOTNIKI[i][0], PRZYMIOTNIKI[i][1]);
        dodaj_przym(PRZYMIOTNIKI[j][0], PRZYMIOTNIKI[j][1]);
    
    ustaw_nazwe(({"licz", "licza", "liczowi", "licza", "liczem",
        "liczu"}), ({"licze", "liczow", "liczom",
        "licze", "liczami", "liczach"}), PL_MESKI_NOS_ZYW);

    ustaw_odmiane_rasy(({"licz", "licza", "liczowi", "licza", "liczem",
        "liczu"}), ({"licze", "liczow", "liczom",
        "licze", "liczami", "liczach"}), PL_MESKI_NOS_ZYW);

    set_gender(0);

    set_alignment(-350);

    set_long("Postac przed toba to rozkladajace sie zwloki, ktore "+
    "przed calkowitym rozkladem chroni magia ktora powolala je do zycia. "+
    "Jego glowa pozbawiona jest juz owlosienia, a skora przechodzi w "+
    "lejaca sie maz. Dlonie z zarysowanymi sciegnami i pozbawione "+
    "niemalze tkanki oraz wydluzone palce tworza upiorny widok. "+
    "Jedynie oczy tej postaci swieca tajemniczym blaskiem i sa "+
    "chyba najbardziej zywe w tym ozywiencu. \n");
    
    set_stats(({ 80, 65, 85, 10, 10, 90 }));

    set_skill(SS_DEFENCE, 50);
    set_skill(SS_PARRY, 55);
    set_skill(SS_WEP_SWORD, 55);
    set_skill(SS_2H_COMBAT, 70);
    set_skill(SS_WEP_POLEARM, 55);
    set_skill(SS_WEP_AXE, 60);
    set_skill(SS_SHIELD_PARRY, 80);
    set_skill(SS_BLIND_COMBAT, 90); // przeciez nie ma oczu ...

               
    set_aggressive(0);

    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(" wychodzi z ziemi tuz przed toba !");
    jak_znikac(" jeknal przeszywajaca pod wplywem pierwszych promieni slonca, po czym uczynil nieznaczny ruch reka i zniknal !");
    jak_znikac_podczas_walki(" jeknal przeszywajaca pod wplywem pierwszych promieni slonca, po czym uczynil nieznaczny ruch reka i zniknal !");

    set_act_time(20 + random(10));
    
    add_act("emote burczy cos niezrozumiale.");
    add_act("emote wpatruje sie w ciebie przenikliwie, jakby chcial wzrokiem wyssac z ciebie cale zycie.");
    add_act("emote rozglada sie czujnie.");
    add_act("emote kresli w powietrzy reka jakies znaki. Czujesz sie nieswojo.");

    
    
    set_cact_time(10);

    add_cact("emote mruzy groznie oczy.");
    add_cact("emote wolnym ruchem reki rozswietla kilka blekitnych blyskow na swej broni.");
        
                    
// najpierw zbroja

	tmp = random(sizeof(ZBROJA));
	add_armour(ZBROJA[tmp]);

        
// a teraz helmik

	tmp = random(sizeof(HELMY));
	add_armour(HELMY[tmp]);
// tu beda inne gadzety 
	

// no i w koncu bron

	if (random(2))
	{
	tmp = random(sizeof(BRON2));
	add_weapon(BRON2[tmp]);
        }
        else
        {
        tmp = random(sizeof(BRON1));
	add_weapon(BRON1[tmp]);
	tmp = random(sizeof(TARCZA));
	add_armour(TARCZA[tmp]);
	}
        
}

hit_me(wcpen,dt,hitsuc,attacker,attack_id,target_hitlock)
{

  if ((szkielet[0] || szkielet[1] || szkielet[2]))
  {
  TP->heal_hp(TP->query_max_hp());
  return ::hit_me();
  }
  else
  {
  
  ::hit_me(wcpen,dt,hitsuc,attacker,attack_id,target_hitlock);
  return ::hit_me();
  }
}

attacked_by(object attacker)
{
  if (!zaatakowany)
  {
 
  write("Licz zasmial sie szalenczo i cofajac sie o krok "+
  "wyciaga przed siebie reke rozcapierzajac upiorne palce, jakby sila swej magii wyciagal cos z ziemi. \n");
 
  say("Licz zasmial sie szalenczo i cofajac sie o krok "+
  "wyciaga przed siebie reke rozcapierzajac upiorne palce, jakby sila swej magii wyciagal cos z ziemi. \n");
  szkielet[0]=clone_object(NPC + "szkielet.c");
  szkielet[1]=clone_object(NPC + "szkielet.c");
  szkielet[2]=clone_object(NPC + "szkielet.c");
  
  szkielet[0]->move(environment());
  szkielet[1]->move(environment());
  szkielet[2]->move(environment());
  
  zaatakowany = 1;
  }
  //  clone_object(NPC + "szkielet.c")->move(environment());
  
  ::attacked_by(attacker);
}


do_die(object killer)
{
        tell_room(environment(killer), "Licz rozsypuje sie w proch w naglym blysku swiatla.\n");
        ::do_die(killer);
}

void
notify_you_killed_me()
{
    set_alarm(0.2,0.0,"hiena");  
}    

void
hiena()
{
    command("wez wszystko z ciala");
}
