/* 
 * Kompania Krogulca
 *
 * Copyright(C):    Khazzar (jedrekz@pascom.pl)
 * Data:            26.08.2003
 * 
 */

#define MAX_LICZBA_RAN     6

#define GDZIE_RANA         9
#define STAN_BUTELKI       7
#define LECZ_LEKKA_RANE    4
#define LECZ_CIEZKA_RANE   1


string
stan_butelki( int opcja )
{
    switch(opcja)
    {
        case  0 : return "pelna";                       break;
        case  1 : return "niemal w pelni wypelniona";   break;
        case  2 : return "prawie pelna";                break;
        case  3 : return "wypelniona do polowy";        break;
        case  4 : return "wypelniona niemal do polowy"; break;
        case  5 : return "prawie pusta";                break;
        case  6 : return "niemal pusta";                break;
        case  7 : return "zapelnie pusta";              break;
    }
}
string
gdzie_rana( int opcja)
{
    switch(opcja)
    {
        case  0 : return "lewej nodze";              break;
        case  1 : return "prawej nodze";             break;
        case  2 : return "lewej rece";               break;
        case  3 : return "prawej rece";              break;
        case  4 : return "szyji";                    break;
        case  5 : return "lewym przedramieniu";      break;
        case  6 : return "prawym przedramieniu";     break;
        case  7 : return "brzuchu";                  break;
        case  8 : return "plecach";                  break;
    }
}

void
lecz_lekka_rane_zacznij()
{
    int opcja   = random(LECZ_LEKKA_RANE);
    int rana    = random(GDZIE_RANA);
    int butelka = random(STAN_BUTELKI);

    switch(opcja)
    {
        case  0 : TP->catch_msg(QCIMIE(TO,PL_MIA) + " podchodzi do srodkowej " +
                                "szafki i wyjmuje z niej " +
                                stan_butelki(butelka) + " butelke mocnego " +
                                "alkocholu, oraz niewielka, biala, " +
                                "bawelniana chustke. Szybko zdejmuje " +
                                "nakretke i ostroznie, ale z wprawa, wylewa " +
                                "nieco plynu na miekki material. Nastepnie " +
                                "nachyla sie nad Toba i szybkimi, acz " +
                                "dokladnymi ruchami zaczyna oczyszczac Twa " +
                                "rane na "  + gdzie_rana(rana) + ".\n\n");
                  tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " podchodzi " +
                            "do srodkowej szafki i wyjmuje z niej " +
                            stan_butelki(butelka) + " butelke mocnego " +
                            "alkocholu, oraz niewielka, biala, bawelniana " +
                            "chustke. Szybko zdejmuje nakretke i ostroznie, " +
                            "ale z wprawa, wylewa nieco plynu na miekki " +
                            "material. Nastepnie nachyla sie nad " +
                            QCIMIE(TP,PL_NAR) + " i szybkimi, acz dokladnymi " +                             "ruchami zaczyna oczyszczac " + QCIMIE(TP,PL_CEL) +
                            " rane na "  + gdzie_rana(rana) + ".\n\n", ({TP})); 
                  break;

        case  1 : TP->catch_msg(QCIMIE(TO,PL_MIA) + " siega do solidnego, " +
                                "debowego kufra stojacego obok stolu po " +
                                "rolke bialego, lnianego bandarza. Wstaje, " +
                                "podchodzi do srodkowej szafki i wyciaga z " +
                                "niej niewielka, " + stan_butelki(butelka) + 
                                " buteleczke z zoltawym plynem. Zdejmuje " +
                                "nakretke i szybko przelewa nieznaczna jej " +
                                "zawartosc na bandarz. Plyn szybko wsiaka w " +
                                "material zabarwiajac go na kolor cimnej " +
                                "zolci. " + QCIMIE(TO,PL_MIA) + " odklada " +
                                "buteleczke na stol i poczyna starannie " +
                                "owijac Twa rane na " + gdzie_rana(rana) +
                                " tak przygotowanym bandarzem.\n\n");
                  tell_room(environment(TP), QCIMIE(TO,PL_MIA) + " siega do " +
                            "solidnego, debowego kufra stojacego obok stolu " +
                            "po rolke bialego, lnianego bandarza. Wstaje, " +
                            "podchodzi do srodkowej szafki i wyciaga z niej " +
                            "niewielka, " + stan_butelki(butelka) + 
                            " buteleczke z zoltawym plynem. Zdejmuje " +
                            "nakretke i szybko przelewa nieznaczna jej " +
                            "zawartosc na bandarz. Plyn szybko wsiaka w " +
                            "material zabarwiajac go na kolor cimnej zolci. " +
                            QCIMIE(TO,PL_MIA) + " odklada buteleczke na " +
                            "stol i poczyna starannie owijac " +
                            QCIMIE(TP,PL_CEL) + " rane na " + gdzie_rana(rana) +
                            " tak przygotowanym bandarzem.\n\n", ({TP}));
                  break;

        case  2 : tell_room(environment(TP), QCIMIE(TO,PL_MIA) + " podchodzi " +
                            "do prawej szafki, otwiera ja i wyciaga z niej " +
                            "maly, ciemny woreczek. Nastepnie podchodzi do " +
                            "stolika i odklada go na nim. Otwiera tym razem " +
                            "lewa szafke i wyciaga zen niewielki mosiezny " +
                            "mozdzierz. Podobnie jak woreczek, kladzie go na " +
                            "stoliku. Siega reka do woreczka i wyjmuje z " +
                            "niego garsc jakichs ciemnozielonych ziol. " +
                            "Wsypuje wszystko do mozdzierza i zaczyna " +
                            "energicznie ubijac.\n\n");
                  break;

        case  3 : tell_room(environment(TP), QCIMIE(TO,PL_MIA) + " otwiera " +
                            "prawa szafke i wyciaga zen szklany, przydymiony " +
                            "sloik. Podchodzi do stolika, odklada nan sloik, " +
                            "chwyta noz i odkraja pajde chleba. Otwiera " +
                            "ostroznie sloik i wyciaga zen delikatna, biala " +
                            "pajeczyne. Odgryza solidny kes chleba, wklada " +
                            "pajeczyne do ust i zaczyna energicznie zuc.\n\n");
                  break;

        default : TP->catch_msg(QCIMIE(TO,PL_MIA) + " zaczyna leczyc lekka " +
                                "rane na " + gdzie_rana(rana) + ".\n");
                  tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " zaczyna " +
                            "leczyc lekka rane na " + gdzie_rana(rana) + 
                            ".\n\n", ({TP})); 
    }
    set_alarm(10.0,0.0,"lecz_lekka_rane_zakoncz", opcja, rana, butelka);
}

void
lecz_lekka_rane_zakoncz( int opcja, int rana, int butelka )
{
    switch(opcja)
    {
        case  0 : tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " konczy " +
                            "przemywac rane na " + gdzie_rana(rana) + ". " +
                            "Wstaje, szybko zakreca nakretke, podchodzi do " +
                            "srodkowej szafki i wklada do niej " +
                            stan_butelki(butelka+1) + " butelke z alkocholem" +
                            ".\n\n"); 
                  break;

        case  1 : tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " konczy " +
                            "owijac rane na " + gdzie_rana(rana) + " lnianym " +
                            "bandarzem. Zawija koniec materialu, tak, aby " +
                            "nie mogl rozwinac sie sam. Po czym wstaje, " +
                            "podnosci niewielka, " + stan_butelki(butelka+1) +
                            " buteleczke ze stolu, dokladnie ja zakreca i " +
                            "odklada do srodkowej szafki.\n\n");
                   break;

        case  2 : TP->catch_msg(QCIMIE(TO,PL_MIA) + " przestaje ubijac " +
                                "ziola. Pokoj wypelnia ziemisty aromat. " +
                                QCIMIE(TO,PL_MIA) + " przesypuje zawartosc " +
                                "mozdzierza na otwarta dlon i wklada do ust. " +
                                "Zuje przez chwile, po czym podchodzi do " +
                                "ciebie, wypluwa zawartosc i dokladnie " +
                                "obklada twa rane na " + gdzie_rana(rana) +
                                " ciemnozielona papka. Gdy konczy, wraca do " +
                                "stolika, starannie zawiazuje woreczek i " +
                                "odklada go do prawej szafki, po czym bierze " +
                                "mozdzierz i wklada go do lewej szafki.\n\n");

                  tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " przestaje " +
                            "ubijac ziola. Pokoj wypelnia ziemisty aromat. " +
                            QCIMIE(TO,PL_MIA) + " przesypuje zawartosc " +
                            "mozdzierza na otwarta dlon i wklada do ust. " +
                            "Zuje przez chwile, po czym podchodzi do " +
                            QCIMIE(TP,PL_BIE) + " wypluwa zawartosc i " +
                            "dokladnie obklada " + TP->koncowka("jego","jej") +
                            " rane na " + gdzie_rana(rana) + " ciemnozielona " +
                            "papka. Gdy konczy, wraca do stolika, starannie " +
                            "zawiazuje woreczek i odklada go do prawej " +
                            "szafki, po czym bierze mozdzierz i wklada go " +
                            "do lewej szafki.\n\n", ({TP}));
                   break;

        case  3 : TP->catch_msg(QCIMIE(TO,PL_MIA) + " przestaje zuc i " +
                                "wypluwa zawartosc na otwarta dlon. Gniecie " +
                                "ja w niej przez chwile, po czym podchodzi " +
                                "do ciebie, rozplaszcza otrzymana papke i " +
                                "przyklada powstaly niewielki placek do " +
                                "twej rany na " + gdzie_rana(rana) +
                                " Nastepnie podchodzi do stolika, dokladnie " +
                                "zakreca sloik i odklada go do prawej szafki" +
                                ".\n\n");
                  tell_room(environment(TP), QCIMIE(TO,PL_MIA) + " przestaje " +
                            "zuc i wypluwa zawartosc na otwarta dlon. " +
                            "Gniecie ja w niej przez chwile, po czym " +
                            "podchodzi do " + QCIMIE(TP,PL_DOP) +
                            " rozplaszcza otrzymana papke i przyklada " +
                            "powstaly niewielki placek do " +
                            TP->koncowka("jego","jej") + " rany na " +
                            gdzie_rana(rana) + ". Nastepnie podchodzi do " +
                            "stolika, dokladnie zakreca sloik i odklada go " +
                            "do prawej szafki.\n\n", ({TP}));
                  break;

        default : TP->catch_msg(QCIMIE(TO,PL_MIA) + " konczy leczyc lekka " +
                                "rane na " + gdzie_rana(rana) + ".\n");
                  tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " konczy " +
                            "leczyc lekka rane na " + gdzie_rana(rana) + 
                            ".\n\n", ({TP})); 
    }

    TP->heal_hp(TP->query_max_hp() / MAX_LICZBA_RAN );
    set_alarm(5.0,0.0,"leczenie");
}

void
lecz_ciezka_rane_zacznij()
{
    int opcja = random(LECZ_CIEZKA_RANE);
    int rana  = random(GDZIE_RANA);

    switch(opcja)
    {
        default : TP->catch_msg(QCIMIE(TO,PL_MIA) + " zaczyna leczyc ciezka " +
                                "rane na " + gdzie_rana(rana) + ".\n");
                  tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " zaczyna " +
                            "leczyc ciezka rane na " + gdzie_rana(rana) + 
                            ".\n\n", ({TP})); 
    }

    set_alarm(20.0,0.0,"lecz_ciezka_rane_zakoncz", opcja, rana);
}

void
lecz_ciezka_rane_zakoncz( int opcja, int rana )
{
    switch(opcja)
    {
        default : TP->catch_msg(QCIMIE(TO,PL_MIA) + " konczy leczyc ciezka " +
                                "rane na " + gdzie_rana(rana) + ".\n");
                  tell_room(environment(TP),QCIMIE(TO,PL_MIA) + " konczy " +
                            "leczyc ciezka rane na " + gdzie_rana(rana) + 
                            ".\n\n", ({TP})); 
    }

    TP->heal_hp(TP->query_max_hp() / MAX_LICZBA_RAN );
    set_alarm(5.0,0.0,"leczenie");
}

void
opis_wstan( int sukces )
{
    int opcja = random(5);

    TP->catch_msg("Probujesz sie podniesc, jednak jestes zbyt slaby.\n");

    switch(opcja)
    {
        case 0 : tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " wierci " +
                           "sie na stole.\n", ({TP})); 
                 break;
        case 1 : tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " nagle " +
                           "napina wszystkie miesnie, a jego twarz " +
                           "tezeje w grymasie wielkiego wysilku. Po " + 
                           "chwili jednak rozluznia sie.\n", ({TP}));
                 break;
        case 2 : tell_room(environment(TP),QCIMIE(TP,PL_NAR) + " wzdryga " +
                           "nagly dreszcz.\n", ({TP}));
                 break;
        case 3 : tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " probuje " +
                           "sie podniesc, jednak po chwili z cichym " +
                           "westchnieniem opada na stol.\n", ({TP}));
                 break;
        case 4 : TP->command("jeknij bolesnie");
                 break;
    }
}
