inherit "/std/monster";
inherit "/lib/skill_raise.c";
inherit "/lib/guild_support";
#include <../imirilla.h>


void set_up_skills();
mapping skille;


void
create_monster()
{
    ustaw_imie(({"thram","thrama","thramowi","thrama","thramem","thramie"}),
                PL_MESKI_OS);

    ustaw_odmiane_rasy(PL_KRASNOLUD);
    dodaj_przym("muskularny","muskularni");
    dodaj_przym("wytatuowany","wytatuowani");

    set_long("Po posturze i pewnym usmiechu stwierdzasz, ze musi byc to "+
"nauczyciel walki w twierdzy Gura-Thorgh. Zapewne widzial on niejednego "+
"zoltodzioba i zastanawia sie, czy nie widzi nastepnego.\n");
    set_gender(G_MALE);

    add_prop(CONT_I_HEIGHT,165);
    add_prop(CONT_I_WEIGHT,90000);
    add_prop(NPC_M_NO_ACCEPT_GIVE,1);

    set_skill(SS_DEFENCE, 100);
    set_skill(SS_AWARENESS, 80);
    set_skill(SS_BLIND_COMBAT, 70);
    set_skill(SS_UNARM_COMBAT, 100);

    set_stats(({120, 90, 140, 6, 5, 100, 60}));
    set_up_skills();

    set_act_time(16);
    add_act("emote pokazuje kilka ruchow jednemu z podopiecznych.");
    add_act("emote pomaga jakiemus berserkerowi zalozyc zbroje.");
    add_act("emote pociaga lyk wody z buklaka dla orzezwienia.");

    set_chat_time(13);
    add_chat("Troche techniki i mlodziak sie gubi.");
    add_chat("Nie tak! Z lewej go, z lewej!");
    add_chat("Za stary juz na to jestem.");
}

void
add_introduced(string kto)
{
     set_alarm (2.0,0.0,"intro",find_player(kto));
}

string
query_presentation()
{
    return "Thram Mistrz Pola Walki, krasnolud";
}
void
intro(object ob)
{
    if (objectp(ob))
        command ("przedstaw sie "+OB_NAME(ob));
}

void
init_living()
{
    init_skill_raise();
    ::init_living();
}

int
non_member_train(string str)
{
    command("powiedz do "+OB_NAME(this_player())+" Nie zasluzyles, by "+
         "moc trenowac u mojego boku.");
    return 1;
}

void
set_up_skills()
{
  skille = ([]);

  skille[SS_WEP_AXE]=({50,70,90});
  skille[SS_AWARENESS]=({30,45,60});
  skille[SS_DEFENCE]=({50,70,90});
  skille[SS_PARRY]=({30,50,70});
  skille[SS_TRACKING]=({30,45,60});
  skille[SS_2H_COMBAT]=({50,70,90});
  skille[SS_LOC_SENSE]=({40,55,70});
  skille[SS_BLIND_COMBAT]=({40,55,70});
  skille[SS_WEP_WARHAMMER]=({50,70,90});
  skille[SS_SHIELD_PARRY]=({50,70,90});

  sk_add_train(SS_WEP_AXE,99);
  sk_add_train(SS_AWARENESS,60);
  sk_add_train(SS_DEFENCE,99);
  sk_add_train(SS_PARRY,70);  
  sk_add_train(SS_TRACKING,70);
  sk_add_train(SS_2H_COMBAT,99);
  sk_add_train(SS_LOC_SENSE,70);
  sk_add_train(SS_BLIND_COMBAT,70);
  sk_add_train(SS_WEP_WARHAMMER,99);
  sk_add_train(SS_SHIELD_PARRY, 85);
}

public varargs int
sk_query_max(int snum)
{
  int statg,zm;

  if (!skille)
    set_up_skills();
  if (TP->query_prop("juz_dupa"))
	return 0;
  if (!TP->query_prop("norsman"))
	{
	non_member_train(TP->query_real_name());
	TP->add_prop("juz_dupa",1);
	return 0;
	}
  if (TP->query_prop()==TP->szef_norski())
     zm = 2;
  else
     {
       statg=this_player()->query_stat(SS_RACE);
       if (statg>=50)
        zm=2;
       else if (statg>=30)
        zm=1;
       else zm=0;
     }
  if(skille[snum]) return skille[snum][zm];
  else ::sk_query_max(snum);
}