
inherit "/std/guild/guild_occ_sh";

#include <ss_types.h>
#include <norska.h>

#define SZEF "edd"

#define TYTULY ({"Mlody Wojownik Norski",\
		 "Doswiadczony Wojownik Norski",\
		 "Okrutny Wojownik z Polnocy",\
		 "Nieustraszony Wojownik Polnocy",\
		 "Berserker z Norski",\
		 "Szalony Berserker z Norski",\
		 "Krwawy Berserker z Mroznej Norski",\
		 "Burza Norski, Cien Polnocnych Szczytow",\
		 "Syn Burzy, Wybrany Przez Bogow Valhalli",\
		 "Huragan Polnocy, Wyslannik Bogow Valhalli",\
                 "Szalejace Ostrze Valhalli, Bialy Wilk Polnocnych Szczytow",\
		 })



query_guild_tax_occ()
{
    return 30;
}


string
query_szef()
{
    return SZEF;
}

public string
query_guild_name_occ()
{
return GUILD_NAME;
}

public mixed
query_guild_trainer_occ()
{
    return "/d/Imperium/Norska/npc/mistrz.c";
}

public string
query_guild_title_occ()
{
if ( shadow_who->query_prop("szef_norski") )
    return "Legendarny Wodz Berserkerow z Norski, Krwawe Ostrze Bogow Valhalli";

switch( shadow_who->query_stat(7) )
{

  case 0..30:
       return TYTULY[0];
  case 31..45:
       return TYTULY[1];
   case 46..60:
	return TYTULY[2];
   case 61..65:
       return TYTULY[3];
   case 66..80:
       return TYTULY[4];
   case 81..100:
       return TYTULY[5];
   case 101..120:
       return TYTULY[6];
   case 121..140:
       return TYTULY[7];
   case 141..175:
       return TYTULY[8];
   case 176..200:
        return TYTULY[9];
            
       
       default:
         return TYTULY[10];

    }

}






void
special( object enemy )
{
object bron;
if(shadow_who->query_weapon(W_BOTH))
bron = shadow_who->query_weapon(W_BOTH);
else if(shadow_who->query_weapon(W_LEFT))
bron = shadow_who->query_weapon(W_LEFT);
else if(shadow_who->query_weapon(W_RIGHT))
bron = shadow_who->query_weapon(W_RIGHT);
    else
	return ;

    if (bron->query_wt() != W_AXE && bron->query_wt() != W_WARHAMMER)
	return ;

    if (enemy->query_prop("norsman"))
	return ;

    if (!present(enemy,environment(shadow_who)))
	return ;

    shadow_who->catch_msg("Gwaltownie wykonujesz krok do przodu "+
	"i uderzajac z polobrotu rabiesz "+QIMIE(enemy,PL_DOP)+""+
	""+bron->short(shadow_who,PL_NAR)+" pozostawiajac rozlegla bruzde.\n");
    tell_room(environment(enemy),""+QCIMIE(shadow_who,PL_MIA)+" "+
	"gwaltownie doskakuje do "+QIMIE(enemy,PL_DOP)+" rabiac go z polobrotu "+
        "swoim "+bron->short(shadow_who,PL_NAR)+" z calej sily pozostawiajac "+
	"rozlegla bruzde.\n",({enemy,shadow_who}));
    enemy->catch_msg(""+QCIMIE(shadow_who,PL_MIA)+" gwaltownie "+
	"do ciebie doskakuje rabiac "+bron->short(shadow_who,PL_NAR)+""+
	"w ciebie z calej sily! Czujesz, ze impet uderzenia "+
	"jest niewiarygodnie silny i niemal tracisz przytomnosc!\n");

    enemy->hit_me(1000+random(200),W_SLASH,90,shadow_who,-1,A_BODY);
}

void
punch( object ob )
{
shadow_who->catch_msg("Czujesz bol, lecz ignorujesz go.\n");
ob->catch_msg("Zauwazasz, ze "+QIMIE(shadow_who,PL_MIA)+" ignoruje "+
	"zadane mu rany.\n");
}


void
uniknij( object at, object en )
{
at->catch_msg("Widzac zblizajacy sie cios bez zastanowienia odskakujesz "+
	    "w bok unikajac go.\n");
en->catch_msg("Wyprowadzasz cios w "+QIMIE(at,PL_BIE)+", lecz "+
	""+at->koncowka("ten","ta")+" niezwykle szybkim uskokiem "+
	"unika twojego ataku.\n");
tell_room(environment(at),""+QCIMIE(en,PL_MIA)+" probuje trafic "+
	""+QIMIE(at,PL_BIE)+", lecz "+at->koncowka("ten","ta")+" "+
	"niezwykle szybkim uskokiem unika "+en->koncowka("jego","jej")+" "+
	"ataku.\n",({en,at}));

}

varargs public mixed
hit_me(int wcpen, int dt, int hitsuc, object attacker, int attack_id,
    int target_hitloc = -1)
{
int rand;
int chance=60;
mixed hug = ({-1,-1,-1,-1});
rand = random(100);
    if (!interactive(attacker))
	chance=60;


    if ( attack_id != -1 )
	{
	if ( rand <= chance )
	    {
	    uniknij(shadow_who,attacker);	
	    return hug;
	    }
	}


    if ( attack_id == -1 )
	{
	set_alarm(3.0,0.0,"punch",attacker);
	if ( rand < 60 )
	    set_alarm(7.0,0.0,"special",attacker);
	return hug;
	}


return ::shadow_who->hit_me(wcpen,dt,hitsuc,attacker,attack_id,target_hitloc);
}







