/*
 * "Kierownik" zawodow strzeleckich w Athel Loren
 */


#include "ogolne.h"

inherit PATH + "npc/npcathel.c";

#include <money.h>

void
create_elfa()
{ 
    ustaw_imie(({"Mealiel","Mealiela","Mealielowi","Mealiela","Mealielem","Mealielu"}));
    dodaj_nazwy(({"mealiel","mealiela","mealielowi","mealiela","mealielem","mealielu"}),
                ({"mealiel","mealiela","mealielowi","mealiela","mealielem","mealielu"}), PL_MESKI_OS);
    dodaj_nazwy(({"strzelec", "strzelca","strzelcowi", "strzelca",
    		  "strzelcem", "strzelcu"}), 
    		({"strzelcy", "strzelcow","strzelcom", "strzelcow",
    		  "strzelcami", "strzelcach"}), PL_MESKI_OS);
    	
    dodaj_przym("wysoki","wysocy");
    dodaj_przym("silny","silni");
    
    set_long("Wysoki, silny elf. Jego bystre oczy i zreczne reczne sprawiaja wrazenie, jakby byly "
       + "stworzone do uzywania luku. Wyglada na bardzo zrecznego i szybkiego, "
       + "jest tez na pewno bardzo silny.\n");

    set_gender(G_MALE);
        
    add_prop(CONT_I_WEIGHT, 60000);
    add_prop(CONT_I_HEIGHT, 195);
    add_prop(IMPERIUM_LIVE_I_ATHEL_CITIZEN,1);

    add_prop(OBJ_M_NO_ATTACK, "Gruba, wytrzymala lada chroni elfa przed agresjami takich jak ty !\n");

    remove_prop(NPC_M_NO_ACCEPT_GIVE);
    
    set_skill(SS_DEFENCE, 35);
    set_skill(SS_WEP_SWORD, 55);
    set_skill(SS_UNARM_COMBAT, 80);
    set_skill(SS_PARRY, 45);
    
    set_stats(({55, 45, 55, 40, 40, 40}));
    
    set_chat_time(25);
    add_chat("Na pewno chcesz wziac udzial w konkursie strzeleckim !");
    add_chat("Zapraszam ! W konkursie strzeleckim mozecie pomnozyc swe oszczednosci ! ");
    add_chat("Wygladasz mi na niezlego strzelca !");
    
    set_act_time(11);
    add_act("emote rozglada sie dookola.");
    add_act("emote rozglada sie, szukajac wzrokiem kogos chetnego do udzialu w konkursie."); 

    set_alignment(150);

    add_ask(({"zawody","konkurs"}),VBFC_ME("pyta_o_konkurs"));
    add_ask("nagrode",VBFC_ME("pyta_o_nagrode"));
    add_ask(({"luk","luki"}),VBFC_ME("pyta_o_luk"));
}

string
pyta_o_konkurs()
{
  command("powiedz Jesli chcesz wystartowac w konkursie, daj mi dowolna sume pieniedzy.");
  command("powiedz Otrzymasz luk, a jesli trafisz do tarczy, dostaniesz z powrotem swe pieniadze wraz z "
      + "premia.");
  command("powiedz Jesli jednak chybisz, tracisz wszystko.");
  return "";
}

string
pyta_o_nagrode()
{
  command("powiedz Nagrode otrzymujesz po celnym strzale.");
  command("powiedz Aby ja otrzymac, przynies mi z powrotem luk.");
  return "";
}

string
pyta_o_luk()
{
  command("powiedz Moje luki w reku dobrego strzelca nigdy nie zawodza.");
  command("powiedz Sa produkowane w Athel Loren z tylko z drewna o najwyzszej jakosci.");
  return "";
}

void
oddaj_graczowi(object ob, object from)
{
     command("daj " + OB_NAME(ob) + " " + from->query_real_name(PL_CEL));
     command("powiedz U mnie zastawiac mozna tylko pieniadze !");    
}

void
daj_luk(int ilosc, object komu)
{
    object obj;
 
 if (!present("luk_elfi", komu))
    {
      if((obj = clone_object(PATH + "obiekty/luk.c")) != 0)
          {
         command("powiedz Dobrze, oto luk. Teraz idz, i strzel do tarczy. Pozniej mozesz sie zglosic po nagrode, wystarczy, ze oddasz mi luk.");
         command("powiedz Ale oczywiscie tylko w wypadku celnego strzalu !");

             obj->move(komu);
             write(query_imie(komu,PL_MIA)+" daje ci dlugi, elfi luk.\n");
             tell_room(environment(komu),QCIMIE(this_object(),PL_MIA)+" daje "+QCIMIE(this_player(),PL_CEL)
                 + " dlugi, elfi luk.\n",komu);
             komu->add_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL,ilosc);
          }
    }
 else
    {
      write(query_imie(komu,PL_MIA)+ " mowi: Ale ty masz juz luk ! Jesli chcesz dostac nagrode, musisz strzelic, a potem przyjsc i oddac mi luk. Wtedy otrzymasz nagrode. "+
        "A tych pare groszy zachowam na nagrody dla mistrzow celnosci.\n");
    }
}

void
usun_luk(object obj)
{
  obj->remove_object();
}

void
enter_inv(object ob, object from)
{
    int wartosc, ilosc_monet;
    object kasa;

    ::enter_inv(ob, from);
    
    if(!from) return;

    if(MASTER_OB(ob) == "/std/coins")
    {
	 ilosc_monet = ob->query_prop(OBJ_I_VALUE);        
     
         if(ilosc_monet < 10)
         {
           command("powiedz To zdecydowanie za malo. Minimalna "+
             "stawka wynosi 10 miedziakow.");
           return;
         }           

	 command("powiedz A wiec chciales startowac w zawodach ... ");
         daj_luk(ilosc_monet,from);
         return;
    }  
    else if(MASTER_OB(ob) == PATH + "obiekty/luk")
    {
         wartosc=from->query_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL);
         
         if(!wartosc)
         {
              command("powiedz Jesli chcesz startowac w zawodach, musisz cos postawic....");
               from->remove_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL);
               from->remove_prop(PLAYER_I_STRZELAL_W_ATHEL);
               from->remove_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL);
               set_alarm(1.0, 0.0, "usun_luk",ob);
               return;
         }
    
         if(!from->query_prop(PLAYER_I_STRZELAL_W_ATHEL))
           {
              command("powiedz Przeciez jeszcze nie strzeliles ! Ale dobrze, oddam ci twe pieniadze...");
              kasa = MONEY_MAKE_CC(wartosc);
              kasa -> move(from);
               write(query_imie(from,PL_MIA) + " daje ci " + MONEY_TEXT(({wartosc,0,0,0}),PL_BIE) + ".\n");
               from->remove_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL);
               from->remove_prop(PLAYER_I_STRZELAL_W_ATHEL);
               from->remove_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL);
               set_alarm(1.0, 0.0, "usun_luk",ob);
               return;
           }
         else if(from->query_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL) == 4)
           {
               command("powiedz Przykro mi, ale nie trafiles ... moze nastepnym razem ci sie poszczesci.");
               from->remove_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL);
               from->remove_prop(PLAYER_I_STRZELAL_W_ATHEL);
               from->remove_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL);
               set_alarm(1.0, 0.0, "usun_luk",ob);               
               return;
           }
         else if(from->query_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL) == 3)           
           {
              command("powiedz Hmm.... Nie strzelasz moze najlepiej, ale zwroce ci czesc postawionej sumy.");
              wartosc=ftoi(itof(wartosc)*0.5);
              kasa = MONEY_MAKE_CC(wartosc);
              kasa -> move(from);
               write(query_imie(from,PL_MIA) + " daje ci " + MONEY_TEXT(({wartosc,0,0,0}),PL_BIE) + ".\n");
               from->remove_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL);
               from->remove_prop(PLAYER_I_STRZELAL_W_ATHEL);
               from->remove_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL);
               set_alarm(1.0, 0.0, "usun_luk",ob);
               return;
           }   
         else if(from->query_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL) == 2)           
           {
              command("powiedz Niezle strzelasz. Cwicz, a zostaniesz kiedys mistrzem. Oto twa wygrana.");
              wartosc=ftoi(itof(wartosc)*1.5);
              kasa = MONEY_MAKE_CC(wartosc);
              kasa -> move(from);
               write(query_imie(from,PL_MIA) + " daje ci " + MONEY_TEXT(({wartosc,0,0,0}),PL_BIE) + ".\n");
               from->remove_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL);
               from->remove_prop(PLAYER_I_STRZELAL_W_ATHEL);
               from->remove_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL);              
               set_alarm(1.0, 0.0, "usun_luk",ob);
               return;
           }
         else if(from->query_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL) == 1)           
           {
              command("powiedz Brawo ! Jestem pelen podziwu dla twego kunsztu ! Oto obiecana nagroda !");
              wartosc=wartosc*2;
              kasa = MONEY_MAKE_CC(wartosc);
              kasa -> move(from);
               write(query_imie(from,PL_MIA) + " daje ci " + MONEY_TEXT(({wartosc,0,0,0}),PL_BIE) + ".\n");
               from->remove_prop(PLAYER_I_W_CO_TRAFIL_W_ATHEL);
               from->remove_prop(PLAYER_I_STRZELAL_W_ATHEL);
               from->remove_prop(PLAYER_I_ILE_ZASTAWIL_W_ATHEL);              
               set_alarm(1.0, 0.0, "usun_luk",ob);
               return;
           }          
    }
    else 
        {
    set_alarm(1.0,0.0,&oddaj_graczowi(ob,from));
        }
                    
    return;
}

string
query_presentation()
{
    return "Mealiel Mistrz Strzelcow, elf";
}

void
return_introduce(string kto) 
{
    command("przedstaw sie " + OB_NAME(find_living(kto, 0)));
}

void
add_introduced(string imie)
{
    set_alarm(2.0, 0.0, "return_introduce", imie);
}