/*
 * Nazwa pliku: albrecht.c
 * Autor:	Kylo
 * Data:	14.11.97
 * Last Update:	14.11.97
 * Opis:	Albrecht - walsciciel zajazdu Czarny Kon
 */

#include "local.h"

// Dziedziczenie standartowego ncpa Imperium
inherit "/d/Imperium/std/monster.c"; 

// Dziedziczenie pliku do questa
inherit LPATH + "monster_quest.c";

// Dolaczenie pliku naglowkowego
#include "albrecht.h"

/*
 * Nazwa funkcji: create_monster()
 * Opis:	  Inicjalizacja glownej funkcji ncp'a
 * Argumenty:	  Brak
 * Zwraca:	  Nic nie zwraca
 */

void  
create_monster()
{
    // Ustalenie odmiany imienia
    ustaw_nazwe(({"albrecht", "albrechta", "albrechtowi", "albrechta",
	"albrechtem", "albrechcie" }),
	({"albrechci", "albrechtow", "albrechtom", "albrechtow",
	"albrechtami", "albrechtach"}), PL_MESKI_OS);
    /* ustaw_imie(({"albrecht", "albrechta", "albrechtowi", "albrechta",
	"albrechtem", "albrechcie" }),PL_MESKI_OS); */
    // Dodanie przymiotnika
    dodaj_przym("ponury","ponurzy");
    dodaj_przym("czarnowlosy","czarnowlosi");
    
    // Ustalenie dlugiego opisu
    set_long("Sadzac po wygladzie, ubiorze i zachowaniu widzisz wlasciciela " +
	"zajazdu w ktorym wlasnie przebywasz. W kazdym razie jest to " +
        "okolo 35-letni czlowiek, a na jego ponurej twarzy dostrzegasz " +
	"kilka blizn. Bujne krucze wlosy dziwnie kontrastuja " +
	"z blada cera." +
	"\n");
	
    // Ustalenie odmiany rasy
    ustaw_odmiane_rasy(PL_CZLOWIEK);

    // Ustalenie rasy			                                                           
    set_gender(G_MALE); 
    
    // Ustalenie podstawowych cech i wspolczynnikow
    set_stats(({40,27,40,26,26,52}));
    
    // Ustalenie rozmiarow Albrechta
    add_prop(CONT_I_WEIGHT,81500);
    add_prop(CONT_I_HEIGHT,180);
    
    // Ustalenie umiejetnosci
    set_skill(SS_DEFENCE, 46);
    set_skill(SS_PARRY,28);
    set_skill(SS_WEP_KNIFE,40); 
    
    set_act_time(20);
    set_cact_time(7);
    set_chat_time(15);
    
    // Ustalenie wykonywanych akcji
    add_act("emote patrzy na ciebie spod oka. ");
    add_act("emote wyciera kufel scierka. ");
    add_act("emote przelicza zarobione pieniadze. ");
    add_act("emote usmiecha sie cierpko. ");
    add_act("emote spoglada na ciebie ponuro. ");
    add_act("emote podrapal sie po glowie. ");
    add_act("powiedz Nie dostaniesz kolejnej butelki na kredyt, napierw zaplac.");
    add_act("powiedz Ruszaj sie leniwa dziewczyno!");
    add_act("powiedz Predzej, predzej, nie widzisz ze goscie czekaja!");
    add_act("powiedz Przynies szybko dwie pieczenie. ");
    
    // Ustalenie wypowiedzi podczas walki
    add_cact("krzyknij Ratunku!");
    add_cact("krzyknij RAAAATUNKUUU!!");
    add_cact("krzyknij Za co?");
    add_cact("krzyknij POMOCY!!! MORDUJA!!!");
    add_cact("krzyknij Pomocy! Pomocy!");
    
    // NIE WIEM
    set_alignment(150);
    
    // Do Questa
    add_act("emote wykonal ruch reka, jakby szukal czegos na piersi.");
    
    add_chat("Gdzie do licha to sie podzialo.");
    add_chat("Jak moglem to zgubic.");
    add_chat("Ach, gdyby mi ktos pomogl.");
    
//    add_ask(({"medalion"}),VBFC_ME("odpowiedz_medalion"));
    
    remove_prop("_npc_m_no_accept_give");
    
    set_default_answer("Nie znam sie na tym, ale zapraszam do skosztowania " +
        "naszego jadla i napitkow." );
    
    add_give( ({"zgube","pomoc"}),
        ({ 0.5,"emote przerywa wycierac kufel. ",
        1.5,"emote przyglada ci sie uwaznie.",
        1.0,"'Hmmmm..... Wlasciwie to nic takiego, zginal mi medalionik. ",
        1.5,"'Nic wartosciowego, tylko ze to stara pamiatka rodzinna. ",
        2.4,"'Ale jesli go znajdziesz bede wdzieczny za jego zwrot. ",
        1.0,"emote wzdycha smutno.",
        3.0,"'Bardzo sie do niego przywiazalem i jest mi go brak. ",
        4.0,"emote ponownie zaczyna wycierac kufel. "}),
        0,5,"_kylo_i_quest_zajazd","_kylo_i_oddal_medalion" );

    add_reakcja( ({"medalion","medalionik" }),
        ({ 1.0,"emote wzrusza ramionami. ",
        2.0,"'To zwykly miedziany medalion na lancuszku, z podobizna Sigmara. ",
        3.0,"'Jest w mojej rodzinie od bardzo dawna. ",
        4.5,"'Podobno poblogoslawil go Wielki Teogonista. ",
        3.0,"'Ale dla mnie to tylko pamiatka rodzinna. Wierze ze przynosi mi szczescie. ",
        4.0,"emote wzdycha smutno" }),
        "_kylo_i_pytal_o_medalion");
    
    add_reakcja( ({""}),({
        1.2,"usmiechnij sie promiennie",
        1.0,"Moj medalion ! ",
        1.4,"Tyle go szukalem. Ale skad wiedzales ze mi to zginelo ? ",
        0.9,"Zreszta niewazne, dobrze ze mi go oddales. ",
        1.5,"emote usmiecha sie ponownie. " }) ),
        
    add_reakcja( ({""}), ({
        1.5,"emote patrzy na ciebie zdziwiony. ",
        1.0,"A po co mi to ? ",
        2.0,"Nie potrzebuje tego. " }) ),

    add_reakcja( ({ "konia", "czarnego konia" }), ({
        0.6,"emote rozmarza sie. ",
        0.9,"Jest piekny, prawda. ",
        1.5,"Mam go od wielu lat. Kupilem go gdy byl jeszcze zrebieciem. ",
        1.7,"Nie raz uratowal mi zycie. ",
        1.9,"Gdy sie juz ustatkowalem i kupilem te karczme, to zmienilem jej " +
            "nazwe na Czarny Kon. ",
        1.4,"emote wraca do rzeczywistosci.",
        1.9,"Moze cos podac ? " }) );
            
    add_done( ({""}), ({
        0.8,"usmiechnij sie promiennie",
        1.5,"Udalo ci sie go znalesc ! ",
        1.3,"To wspaniale." }),
        0,5,"/d/Imperium/private/questlog/0_5.log",
        "_kylo_i_oddal_medalion" );

    dodaj_srebro(22+random(6));
    dodaj_miedz(78+random(21));
}

int
czy_mozna()
{
    if ((!this_player()->query_prop("_kylo_i_quest_zajazd")) &&
        (Reakcja_Nr==1) && (Reakcja_Typ==2))
    {
        command_say("A co was to tak interesuje ?",this_player());
        return 0;
    }
    return 1;
}
// koniec funkcji create_monster()

/*
 * Nazwa funkcji: add_introduced()
 * Opis:	  Funkcja wywolywana gdy ktos w pomiszczeniu sie przedstawi
 * Argumenty:	  Imie gracza ktory sie przedstawil
 * Zwraca:	  Nic nie zwraca
 */
  
void 
add_introduced(string imie)
{
    set_alarm(2.0, 0.0, "zapoznanie", find_player(imie));
}
// koniec funkcji add_introduced

/*
 * Nazwa funkcji: zapoznanie()
 * Opis:	  Reakcja Albrechta na przedstawienie sie
 * Argumenty:	  gracz ktory sie przedstawil
 * Zwraca:	  Nic nie zwraca
 */
 
void
zapoznanie(object gracz)
{
    command("powiedz Witaj, szanown"+gracz->koncowka("y","a")+" " + gracz->query_wolacz()+".");
    command("uklon sie " + gracz->query_real_name(PL_CEL)); 
    command("przedstaw sie " + gracz->query_real_name(PL_CEL));
}
// koniec funkcji zapoznanie()
  
/*
 * Nazwa funkcji: query_presentation()
 * Opis:	  Przedstawienie sie
 * Argumenty:	  brak
 * Zwraca:	  Tekst jaki albrecht sie przedstawia
 */

string
query_presentation()
{
// Na koncu bez kropki i \n
return "Albrecht, Wlasciciel Zajazdu, czlowiek";
}

// koniec funkcji query_presentation()
  
/*
 * Nazwa funkcji: odpowiedz_medalion()
 * Opis:	  Odpowiedz na pytanie o medalion
 * Argumenty:	  brak
 * Zwraca:	  pusty string dla VBFC
 */

string
odpowiedz_medalion()
{
//    odpowiedz(1);
    return "";
}

void 
zakonczenie_questa()
{
    tell_object(Aplikant,"Promien swialta odbity od medalionu blyska ci w " +
        "oczy, masz dziwne wrazenie ze podobizna Sigmara usmiecha " +
        "sie do ciebe. Twoj umysl rozjasnia sie, to co bylo skomplikowane " +
        "staje sie proste, to co bylo odlegle staje sie bliskie. " +
        "Nagle to wszystko mija, wydaje ci sie ze bylo to tylko zludne "+
        "odbicie swiatla. Masz jednak wrazenie cos sie w tobie zmienilo." +
        "\n");
}

int
calc_exp()
{
    return (1000 +
        Aplikant->query_prop("_kylo_i_quest_zajazd")*800 +
        Aplikant->query_prop("_kylo_i_pytal_dziewke_o_sol")*800 +
        Aplikant->query_prop("_kylo_i_pytal_stajennego_o_siano")*200 +
        Aplikant->query_prop("_kylo_i_wzial_klucz")*800 +
        Aplikant->query_prop("_kylo_i_wzial_sol")*800 +
        Aplikant->query_prop("_kylo_i_dal_sol_koniowi")*800 +
        Aplikant->query_prop("_kylo_i_wzial_medalion")*800 );
}
void
enter_inv(object rzecz, object gracz)
{
    ::enter_inv(rzecz,gracz);
    
    if (rzecz->id("moneta"))
	return;
    
    if (rzecz->id("_kylo_medalion_Albrechta"))
        if (gracz->query_prop("_kylo_i_quest_zajazd"))
        {
            gracz->add_prop("_kylo_i_oddal_medalion",1);
            set_alarm(0.5, 0.0, &reakcja("done","1"));
            rzecz->remove_object();
        }
        else
        {
            set_alarm(0.5, 0.0, &reakcja("reaguj","2"));
            rzecz->remove_object();
        }
    else 
    {
        set_alarm(0.5, 0.0, &reakcja("reaguj","3"));
        set_alarm(4.0, 0.0, &command("daj " + OB_NAME(rzecz) + " " +
            OB_NAME(gracz)));
    }
    return;
}
