/*
 * trener.c - trenuje czlonkow ogrow z gor szarych
 */
 
inherit "/std/monster";
inherit "/std/act/add_things";
inherit "/lib/skill_raise.c";

#include "ogry.h"

void set_up_skills();
mapping skille;


void
create_monster()
{
    ustaw_imie(({"uharg","uharga","uhargowi","uharga","uhargiem","uhargu"}),
                PL_MESKI_OS);

    ustaw_odmiane_rasy(PL_OGR);
    dodaj_przym("nerwowy","nerwowi");
    dodaj_przym("wysoki","wysocy");
	
    set_long("Wysoki, postawny ogr, 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);
	
    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}));
    set_up_skills();
    add_armour(OBRECZ);
}

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_CLUB]=({30,40,50});
  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,50});

  sk_add_train(SS_WEP_CLUB,50);   
  sk_add_train(SS_CLIMB,60);
  sk_add_train(SS_UNARM_COMBAT,35);
  sk_add_train(SS_LOC_SENSE,40);   
  sk_add_train(SS_SWIM,60);
  sk_add_train(SS_TRACKING,40);
  sk_add_train(SS_AWARENESS,50);

}

public varargs int
sk_query_max(int snum)
{
  int statg,zm;

  if (!skille)
    set_up_skills();

  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);
}
