/*
 * trener.c - trenuje czlonkow ogrow z gor szarych
 */
 
inherit "/std/monster";
inherit "/std/act/add_things";
inherit "/lib/skill_raise.c";

#include "ogry.h"
#include "ogry_npc.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);
    
    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(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]=({50,70,90});
  skille[SS_UNARM_COMBAT]=({55,70,95});

  skille[SS_LOC_SENSE]=({50,70,90});
  skille[SS_CLIMB]=({55,75,90});
  skille[SS_SWIM]=({50,75,90});
  skille[SS_TRACKING]=({50,70,90});
  skille[SS_AWARENESS]=({50,70,90});
  skille[SS_WEP_CLUB]=({70,70,70});
  skille[SS_PARRY]=({60,90,90});
  skille[SS_DEFENCE]=({60,90,90});

  sk_add_train(SS_WEP_CLUB,90);   
  sk_add_train(SS_CLIMB,90);
  sk_add_train(SS_UNARM_COMBAT,95);
  sk_add_train(SS_LOC_SENSE,90);   
  sk_add_train(SS_SWIM,90);
  sk_add_train(SS_TRACKING,90);
  sk_add_train(SS_AWARENESS,90);
  sk_add_train(SS_PARRY,90);
  sk_add_train(SS_DEFENCE,90);

}

public varargs int
sk_query_max(int snum)
{
  int statg,zm;

  if (!skille)
    set_up_skills();

  if (TP->query_herszt()==TP->query_real_name())
     zm = 2;
  else
     {
       statg=this_player()->query_stat(SS_OCCUP);
       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);
}
