/*
 * trener.c - trenuje czlonkow Tropicieli z Averlandu
 */

inherit "/std/monster";
inherit "/std/act/add_things";
inherit "/lib/skill_raise.c";

#include "tropiciele.h"
#include "tropiciele_npc.h"

void set_up_skills();
mapping skille;


void
create_monster()
{
    ustaw_imie(({"oris","orisa","orisowi","orisa","orisem","orisie"}),
                PL_MESKI_OS);

    ustaw_odmiane_rasy(PL_CZLOWIEK);
    dodaj_przym("nerwowy","nerwowi");
    dodaj_przym("wysoki","wysocy");

    set_long("Wysoki, postawny czlowiek, przestepuje nerwowo z nogi na noge. "+
      "Na jego poteznym ciele widzisz liczne blizny, slady po stoczonych "+
      "walkach. Najwieksza szrama biegnie przez lewa czesc jego twarzy, "+
      "dochodzac az do warg i powodujac ich dziwne wykrzywienie. Pomimo "+
      "tak dziwnego wygladu, czujesz, ze zna sie na rzeczy i napewno jest "+
      "dobrym nauczycielem.\n");

    set_gender(G_MALE);

    add_prop(CONT_I_HEIGHT,235);
    add_prop(CONT_I_WEIGHT,180000);
    add_prop(NPC_M_NO_ACCEPT_GIVE,1);

    ustaw_znajomosc();

    set_skill(SS_UNARM_COMBAT, 80);
    set_skill(SS_DEFENCE, 40);
    set_skill(SS_PARRY, 60);
    set_skill(SS_BLIND_COMBAT, 40);
    set_skill(SS_WEP_CLUB, 80);

    set_stats(({96, 65, 66, 60, 50, 75, 60}));
    set_up_skills();
    add_armour(KLAMRA);
}

void
add_introduced(string kto)
{
     set_alarm (2.0,0.0,"intro",find_player(kto));
}

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())+" Odejdz! Nie mozesz tu "+
         "cwiczyc!");
    return 1;
}


void
set_up_skills()
{
  skille = ([]);
  skille[SS_WEP_POLEARM]=({30,40,80});
  skille[SS_UNARM_COMBAT]=({25,30,35});

  skille[SS_LOC_SENSE]=({20,30,40});
  skille[SS_CLIMB]=({35,45,60});
  skille[SS_SWIM]=({30,45,60});
  skille[SS_TRACKING]=({20,30,40});
  skille[SS_AWARENESS]=({30,40,100});

  sk_add_train(SS_WEP_POLEARM,50);
  sk_add_train(SS_CLIMB,45);
  sk_add_train(SS_HERBALISM,50);
  sk_add_train(SS_LOC_SENSE,50);
  sk_add_train(SS_SWIM,55);
  sk_add_train(SS_TRACKING,75);
  sk_add_train(SS_AWARENESS,100);

}

public varargs int
sk_query_max(int snum)
{
  int statg,zm;

  if (!skille)
    set_up_skills();

  if (TP->query_przywodca()==TP->query_real_name())
     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);
}
