/*
 * trener.c - trenuje czlonkow Tropicieli z Averlandu
 */

inherit "/std/monster";
inherit "/std/act/add_things";
inherit "/lib/skill_raise.c";

#include "ranger.h"


void set_up_skills();
mapping skille;


void
create_monster()
{
    ustaw_imie(({"amaron","amarona","amaronowi","amarona","amaronem","amaronie"}),
                PL_MESKI_OS);

    ustaw_odmiane_rasy(PL_CZLOWIEK);
    dodaj_przym("zwinny","zwinni");

    set_long("Zwinny i zarazem silny mezczyzna jest doskonalym nauczycielem "+
	"sztuk walki.\n");

    set_gender(G_MALE);

    add_prop(CONT_I_HEIGHT,175);
    add_prop(CONT_I_WEIGHT,80000);
    add_prop(NPC_M_NO_ACCEPT_GIVE,1);


    set_skill(SS_UNARM_COMBAT, 80);
    set_skill(SS_DEFENCE, 70);
    set_skill(SS_PARRY, 70);
    set_skill(SS_BLIND_COMBAT, 70);
    set_skill(SS_WEP_CLUB, 80);

    set_stats(({136, 65, 96, 60, 50, 75, 60}));
    set_up_skills();
    
}

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_SWORD]=({60,70,90});
  skille[SS_UNARM_COMBAT]=({45,50,65});

  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]=({100,100,100});
  skille[SS_DEFENCE]=({55,65,75});
  skille[SS_PARRY]=({55,65,75});
  skille[SS_2H_COMBAT]=({70,85,100});
 skille[SS_SPELLCRAFT]=({100,100,100});
 skille[SS_HERBALISM]=({100,100,100});

  sk_add_train(SS_WEP_SWORD,90);
  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,55);
  sk_add_train(SS_AWARENESS,100);
  sk_add_train(SS_DEFENCE,75);
  sk_add_train(SS_PARRY,75);
  sk_add_train(SS_2H_COMBAT,100);
  sk_add_train(SS_SPELLCRAFT, 100);
  sk_add_train(SS_HERBALISM, 100);
  
}

public varargs int
sk_query_max(int snum)
{
  int statg,zm;

  if (!skille)
    set_up_skills();

  if (TP->query_prop("szef_rangerow"))
     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);
}
