
#include <stdproperties.h>
#include <ss_types.h>
#include <macros.h>
#include <money.h>

#include "tanis.h"

inherit "/d/Imperium/std/monster";

void oddaj_rzecz(object ob, object from);
void oddal_medalion(object from);

object gracz;
int zajety=0;

void
create_monster()
{
    ustaw_imie(({"nikolaus","nikolausa","nikolausowi","nikolausa",
      "nikolausem","nikolausie"}),PL_MESKI_OS);

    set_long("Masz przed soba postawnego mezczyzne, lat okolo trzydziestu. "+
      "Ubrany jest w przybrudzony, roboczy stroj. Zauwazasz geste owlosienie "+
      "zarowno na glowie, ramionach, jak i na rekach tego jegomoscia.\n");
                        
        ustaw_odmiane_rasy(PL_CZLOWIEK);
        
        dodaj_przym("brazowooki","brazowoocy");
        dodaj_przym("barczysty","barczysci");
        
        set_stats(({120, 54, 100, 35, 35, 70}));
        
        set_skill(SS_DEFENCE, 20 + random(5));
        set_skill(SS_UNARM_COMBAT, 30 + random(5));
        set_skill(SS_PARRY, 15 + random(4));
        set_skill(SS_WEP_CLUB, 20 + random (8));

        add_prop(IMPERIUM_LIVE_I_KREUTZ_CITIZEN, 1);

        set_gender(G_MALE);
        add_prop(CONT_I_WEIGHT, 95000);
        add_prop(CONT_I_HEIGHT, 185);
        
        
        set_default_answer(QCIMIE(TO,PL_MIA) + " odpowiada: Niestety " +
        "nie jestem w stanie ci w tym pomoc.\n");
        
        
    add_ask(({"zarobek","drewno","pomoc","zadanie","prace"}), VBFC_ME("quest_hint"));

    set_act_time(15);
    add_act("powiedz Potrzebuje drewna. Drewno to moja praca."); 
    add_act("powiedz Jestem ciesla. Zajmuje sie praca w drewnie. A ty?");
    add_act("powiedz Moze mozesz mi pomoc?");
    add_act("emote przenosi bale drewna do warsztatu.");
    add_act("emote pracuje heblem.");
    add_act("emote czysci bal drzewny z kory.");
    add_act("emote zabiera sie do pracy.");

    remove_prop(NPC_M_NO_ACCEPT_GIVE);
    seteuid(getuid());

}       

void
add_introduced(string imie)
{
    set_alarm(2.0,0.0,"return_intro", imie);
}

varargs void 
return_intro(string kto)
{
    /* Przedstawia sie tylko graczom - w ten sposob unikamy zapetlenia. */

    command("przedstaw sie " + find_player(kto)->query_real_name(PL_CEL));
}

varargs string          /* varags oznacza, ze nie trzeba podawac wszystkich */
quest_hint(int faza)    /* argumentow. Jesli nie poda sie, to faza = 0 */
{

/* Wpierw zapamietujemy gracza w zmiennej, bo w alarmach this_player()
 * nie dziala
 */

    
/* Za kazdym razem, gdy ma powiedziec jakas kwestie, sprawdzamy, czy gracz
 * jeszcze go slucha ... :-)
 */
    if (faza)
    if (!present(gracz, environment(this_object())))
    {
        command("powiedz Posz"+gracz->koncowka("edl","la")+" sobie!");
        command("westchnij");
        zajety=0;
        return "";
    }

    switch(faza)
    {
        case 0: /* Zaczyna gadac. Sprawdzamy, czy gracz zrobil questa, itd. */
            
            if (zajety) return "";
            zajety=1;
            gracz = this_player();
            command("emote usmiecha sie szeroko.");
            command("emote taksuje cie wzrokiem.");

            set_alarm(4.0, 0.0, "quest_hint", (faza + 1));
            break;
        case 1: /* kontunacja gadki */
            command("emote mowi: Potrzebuje drewna. Drewna do obrobki.");
            set_alarm(4.0, 0.0, "quest_hint", (faza + 1));
            break;
        case 2:
            command("emote mowi: Idz do lasu i przynies mi troche bali.");
            set_alarm(7.0, 0.0, "quest_hint", (faza + 1));
            break;
        case 3:
            command("emote mowi: Za kazdy bal jaki przyniesiesz zaplace ci "+
              "5 srebrnych monet. Dodatkowo na pewno wiele sie nauczysz, a i "+
              "tezyzne fizyczna pocwiczysz.");
            zajety=0;
            break;
    }
    return "";
}

void
enter_inv(object ob, object from)
{ 
    ::enter_inv(ob, from); 
    
    if(function_exists("create_heap",ob))
    {
      command("usmiechnij sie rados");
      return; 
    }

   if(!from) return;
   
   if(ob->id("_bal_")) 
   {
        set_alarm(1.0, 0.0, &oddal_medalion(from));
        ob->remove_object();
        return;
   }
   
   set_alarm(1.0, 0.0, &oddaj_rzecz(ob, from)); 
   return;
 }

void
oddaj_rzecz(object ob, object from)
{
   string what,
   who;
   
   what = lower_case(ob->query_ustaw_nazwe());
   who = from->query_real_name();
   
   command("powiedz Po co mi to dajesz?");
   command("emote mowi: Wez to z powrotem.");
   command("daj " + ob->query_nazwa(3) + " " + from->query_nazwa(2));
}

void
oddal_medalion(object from)
{
   command("krzyknij Piekny kawalek drewna! Brawo! Przynies wiecej takich!");
   command("powiedz Oto twoje pieniadze.");
   write(query_Imie(this_object(),PL_MIA) + " daje ci 5 srebrnych monet.\n");
   MONEY_MAKE_SC(5)->move(from);
   
//   from->add_exp(200, 1);
   
//   write("Czujesz sie troszke bardziej doswiadczony.\n");
   command("emote kladzie bal na stojaku.");

   seteuid("silvy");
   write_file("/d/Imperium/private/ciesla.log",
              ctime(time()) + ": " + from->query_name() + ".\n");
}

string
query_presentation()
{
    return"Nikolaus Schmidt, Mistrz Ciesielski, czlowiek";
}    