
#include "local.h"

inherit STD_HALFLING; 

#include <stdproperties.h>
#include <money.h>
#include <ss_types.h>
#include <macros.h>

#define   PLAYER_I_DOSTAL_ZADANIE3_NULN  "_player_i_dostal_zadanie3_nuln"

void oddaj_rzecz(object ob, object from);
void oddal_list(object from);
void ile_doswiadczenia(object who);

create_halfling()
{
    ustaw_nazwe(({"mortimer","mortimera","mortimerowi","mortimera","mortimerem","mortimerze"}),
        ({"","","","","",""}),PL_MESKI_OS);
    set_long("To slawny w calej okolicy Mortimer Blatterbur, wlasciciel"+
             "doskonale prosperujacego zajazdu 'Pod Wrzesniowym Piwem'. Ma juz swoje lata, " +
             "siwizna przykryla jego przezedzona czupryne. Ubrany jest bardzo gustownie, "+
             "jesli nie liczyc krzykliwych kolorow marynarki i spodni.\n");

    dodaj_przym("bogaty","bogaci");
    dodaj_przym("lysawy","lysawi");
        
    set_gender(G_MALE);

    set_skill(SS_DEFENCE, 46);
    set_skill(SS_PARRY,28);
    set_skill(SS_WEP_KNIFE,40);    

    remove_prop(NPC_M_NO_ACCEPT_GIVE);


    set_act_time(12+random(7));    
    
    add_act("emote patrzy na ciebie spod oka.");
    add_act("emote sprawdza godzine na ozdobnym czasomierzu.");
    add_act("emote przelicza dochod.");
    add_act("emote usmiecha sie z zadowoleniem.");
    add_act("emote przeglada zapiski wyjete z szuflad sekretarzyka.");
    add_act("emote mowi: Mam nadzieje ze piwo sie nie skonczy przed jutrzejsza dostawa...");
    add_act("emote pyta: Czy uwazasz ze powinnismy dodawac wiecej owocow do wypiekow?");
    add_act("emote zauwaza: Tylko Hortensja Clovebridge robi lepsze ciasteczka niz moje.");
    add_act("emote mowi: Ach, czegoz bym nie dal za przepis Hortensji...");
    
    add_cchat("Ratunku!");
    add_cchat("RAAAATUNKUUU!!");
    add_cchat("Straaaaze!");
    add_cchat("STRAZEEEE!!!! MORDUJA!!!!");
    add_cchat("Zaraz inaczej porozmawiamy, niech tylko przybedzie straz!");
    add_cchat("Pomocy! Pomocy!");

    add_weapon(WEP_DIR + "noz.c");

}


string
query_presentation()
{
    return"Mortimer Blatterburn, Wlasciciel Gospody 'Pod Wrzesniowym Piwem', halfling";
}


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));
}

void
enter_inv(object ob, object from)
{
    ::enter_inv(ob, from);

    if(!from) return;    

    if(function_exists("create_heap",ob))
    {
      command("usmiechnij sie przebie");
      return; 
    }

    if(ob->id("_list_do_mortimera_"))
    {
       set_alarm(1.0, 0.0, &oddal_list(from));
       return; 
    } 
    if(ob->query_coin_type() == "zloto") return; 
    set_alarm(1.0, 0.0, &oddaj_rzecz(ob, from));
    return;
}

void
oddaj_rzecz(object ob, object from)
{

    command("emote kreci glowa zdziwiony.");
    command("emote mowi: Co to jest ? Po co mi to dajesz ?.");
    command("emote dodaje: Zabierz to! ");
    command("daj " + ob->query_nazwa(3) + " " + from->query_nazwa(2));

} 

void
oddal_list(object from)
{
   string who,
   what;
   
   who = from->query_real_name();
   
   if (!from->query_prop(PLAYER_I_DOSTAL_ZADANIE3_NULN))
   {
      command("emote mowi: O, moj list. Musialem go zgubic."); 
      return;
   }
   command("emote mowi: List do mnie? Dziekuje ci serdecznie.");
   ile_doswiadczenia(from); 
   return;
}

void
ile_doswiadczenia(object who)
{

   int xp_base = 300;
 
   if (who->test_bit("imperium", 0, 15))
   { 
      who->catch_msg("To znowu ty? Nie nauczysz sie zbyt wiele robiac w kolko to samo.\n");
      return;
   }
   command("emote mowi: Masz tu pare groszy.");
   MONEY_MAKE_GC(1)->move(TO);
   command("daj 1 zlota monete " + who->query_real_name(2));

   who->catch_msg("Czujesz sie troszke bardziej doswiadczon"+
     who->koncowka("y","a")+".\n");
   who->add_exp(xp_base, 0); 
   who->set_bit(0, 15);

   seteuid("silvy");
   write_file("/d/Imperium/private/questlog/0_15.log",
              ctime(time()) + ": " + who->query_name() + ", " + xp_base
            + " xp\n");
   return;
}
