inherit "/d/Imperium/std/undead";
inherit "/std/combat/humunarmed";

#include <mag.h>

#define PRZYMIOTNIKI ({({"potezny","potezni"}), ({"ohydny","ohydni"}),({"pozolkly","pozolkli"}), \
                        ({"zabandazowana","zabandazowani"}), ({"szalony","szaleni"}), \
                        ({"majaczacy","majaczacy"}),({"powyginany","powyginani"})})
#define LICZBA_PRZYMIOTNIKOW 7

#define LIVE_I_NO_FLESH	"_live_i_no_flesh"


object masta;

void
set_master( object ob )
{
masta=ob;
set_follow(masta,0.1,1);
}


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_odmiane_rasy(({"mumia", "mumii", "mumii", "mumie", "mumia",
        "mumii"}), ({"mumie", "mumii", "mumiom",
        "mumie", "mumiami", "mumiach"}), PL_ZENSKI);

    set_gender(1);

    set_alignment(-590);

    set_long("Wielka, owinieta w bandaze mumia wydaje sie byc iscie "+
	"potwornym przeciwnikiem.\n");
    
    set_stats(({ 90, 115, 150, 5, 5, 100 }));

    set_skill(SS_DEFENCE, 40);
    set_skill(SS_WEP_CLUB, 65);
    set_skill(SS_BLIND_COMBAT, 50); // i tak nie uzywa wzroku

    set_cact_time(10);
    
    add_weapon(OBJ+"bulawa");

    add_prop(LIVE_I_UNDEAD, 100);
    add_prop(LIVE_I_NO_CORPSE, 1);
    add_prop(NPC_I_NO_FEAR, 1);
    add_prop(LIVE_I_NEVERKNOWN,1);

    jak_pojawiac_sie(" pojawia sie znikad.");
    jak_znikac(" rozpada sie w pyl pod wplywem pierwszych promieni slonca.");
    jak_znikac_podczas_walki(" rozpada sie w pyl pod wplywem pierwszych promieni slonca.");

    set_living_name("created_by_nekro");
    
}

do_die(object killer)
{
        tell_room(environment(killer), "Mumia rozpada sie.\n");
        ::do_die(killer);
}


void
special_attack( object wrog )
{
int i;
object paral;

object *enemy = masta->query_enemy(-1);

	for ( i = 0; i < sizeof(enemy); i++ )
	    {
	    if (enemy[i]->query_attack() != this_object() )
	    enemy[i]->attack_object(this_object());
	    }
this_object()->set_follow(masta,0.1,1);	    

    i = random(100);
    
    
}




public int
block_exit()
{
int r;
    string  action = query_verb();
    
    if (!sizeof(({ this_player() }) & query_enemy(-1)))
    {
    return 0; // this_player() isnt fignting us
    }

    r = random(100);
    
    if ( r <= 30 )
	{    
	TP->catch_msg(""+QCIMIE(TO,PL_MIA)+" blokuje ci droge ucieczki.\n");    
	tell_room(environment(TO),""+QCIMIE(TO,PL_MIA)+" blokuje "+
	""+QIMIE(TP,PL_CEL)+" droge ucieczki.\n",({TP}));
	         return 1;
	}
return 0; 
}
				 
    
public void
init_living()
{
string *exit;
int size;
    ::init_living();

    if (environment(this_object()))
    {
        exit = environment(this_object())->query_exit_cmds();
        size = sizeof(exit);
            while (--size >= 0)
            {
	    add_action(block_exit, exit[size]);
    }
  }
}
				    




    
