/*
 * trener.c - trenuje czlonkow Tropicieli z Averlandu
 */

inherit "/std/monster";
inherit "/std/act/add_things";
inherit "/lib/skill_raise.c";
inherit "/lib/guild_support";
#include "../moria.h"


void set_up_skills();
mapping skille;


void
create_monster()
{
    ustaw_imie(({"felix","felixa","felixowi","felixa","felixem","felixie"}),
                PL_MESKI_OS);

    ustaw_odmiane_rasy(PL_KRASNOLUD);
    dodaj_przym("muskularny","muskularni");
    dodaj_przym("wysoki","wysocy");

    set_long("Felix Jagger, Zastanowmy sie, gdzie moze byc Gotrek? ... "+
	"Zapewne w poblizu.\n");
    set_gender(G_MALE);

    add_prop(CONT_I_HEIGHT,185);
    add_prop(CONT_I_WEIGHT,90000);
    add_prop(NPC_M_NO_ACCEPT_GIVE,1);


    set_skill(SS_UNARM_COMBAT, 100);
    set_skill(SS_DEFENCE, 100);
    set_skill(SS_PARRY, 100);
    set_skill(SS_BLIND_COMBAT, 70);
    set_skill(SS_WEP_SWORD, 100);

    set_stats(({116, 125, 110, 6, 5, 7, 60}));
    set_up_skills();
    
}

void
add_introduced(string kto)
{
     set_alarm (2.0,0.0,"intro",find_player(kto));
}

string
query_presentation()
{
    return "Felix Jagger, krasnolud";
}

void
intro(object ob)
{
    if (objectp(ob))
        command ("przedstaw sie "+OB_NAME(ob));
	
	if ( !TP->query_prop("dostal_topor") )
	    {
	setuid();
	seteuid(getuid());
	    command ("'Ojej, widze ze nie masz siekierki! Masz!\n");
	    clone_object(OBJ+"axe")->move(TO);
	    command("daj topor "+TP->query_real_name(PL_CEL)+"");
	
	    TP->add_prop("dostal_topor",1);
	    }	
	
	
	
}

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 = ([]);
/*
  dodaj_terning(SS_WEP_AXE, ({40,60,80}));
  dodaj_trening(SS_AWARENESS, ({50,79,90}));
  dodaj_trening(SS_DEFENCE, ({65,74,85}));
  dodaj_trening(SS_PARRY, ({65,74,85}));
  dodaj_trening(RABANIE, ({50,85,100}));
*/
  sk_add_skills(GUILD_SKILLS);
  skille[SS_WEP_AXE]=({80,80,93});
  skille[SS_AWARENESS]=({90,90,90});
  skille[SS_DEFENCE]=({35,45,55});
  skille[SS_PARRY]=({85,85,85});
  skille[RABANIE]=({100,100,100});
  sk_add_train(SS_WEP_AXE,93);
  sk_add_train(SS_AWARENESS,90);
  sk_add_train(SS_DEFENCE,85);
  sk_add_train(SS_PARRY,85);
  sk_add_train(RABANIE, 100);
  
}

public varargs int
sk_query_max(int snum)
{
  int statg,zm;

  if (!skille)
    set_up_skills();

  if (TP->query_prop("szef_zabojcow"))
     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);
}
