/* 
 * Kompania Krogulca
 *
 * Copyright(C):    Khazzar (jedrekz@pascom.pl)
 * Data:            26.08.2003
 * 
 */

#include "def.h"
#include "../balans.h"

void
reatak()
{
    TP->remove_prop("nuderz");
    write("Mozesz ponownie zaatakowac.\n");
}

int
uderz(string kogo)
{
    object bron;
    object *cel;
    mixed *result;
    int pen, hit;

    if ( !ENGINE->query_member(TP) ) return 0;

    if ( !(bron = TP->query_weapon(W_RIGHT)) )
        if ( !(bron = TP->query_weapon(W_LEFT)) )
        {
            notify_fail("Musisz miec dobyta bron aby uderzyc.\n");
            return 0;
        }

    if ( !kogo )
    {
        if ( TP->query_attack()) cel = ({TP->query_attack()});
    }
    else cel = parse_this(kogo,"%l:"+PL_BIE);

    if ( !sizeof(cel) )
    {
        notify_fail("Kogo chcesz zaatakowac?\n");
        return 0;
    }

    if ( TP->query_prop("nuderz") )
    {
        notify_fail("Musisz odpoczac po porzednim ataku.\n");
        return 0;
    }

    pen = query_pen(TP, cel[0]);
    hit = query_hit(TP, cel[0]);
    result = cel[0]->hit_me(pen, W_SLASH, hit, TP, -1);

    set_alarm(15.0, 0.0, "reatak");
    TP->add_prop("nuderz", 1);
    TP->reveal_me(1);

    switch(result[0])
    {
        case -1..0:
        {
            TP->catch_msg("Bierzesz szeroki zamach " + 
                bron->query_short(PL_NAR) + " mierzac w " +
                QIMIE(cel[0], PL_BIE) + " lecz nie udaje ci sie przebic " +
                "przez je" + cel[0]->koncowka("go", "j") + " obrone.\n");

            cel[0]->catch_msg(QCIMIE(TP, PL_MIA) + " bierze szeroki zamach " +                    
                bron->query_short(PL_NAR) + " lecz nie udaje " +
                TP->koncowka("mu", "jej") + " sie przebic przez Twoja " +
                "obrone.\n");

            tell_room(environment(TP),QCIMIE(TP, PL_MIA) + " bierze szeroki " +
                "zamach " + bron->query_short(PL_NAR) + " mierzac w " +
                QIMIE(cel[0], PL_BIE) + " lecz nie udaje " + 
                TP->koncowka("mu", "jej") + " sie przebic je" +
                cel[0]->koncowka("go", "j") + "obrony.\n", ({TP,cel[0]}));

            break;
        }

        case 1..25:
        {
            TP->catch_msg("Wykorzystujac nieuwage przeciwnika wykonujesz " +
                "szeroki zamach " + bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + ". Twoj cios uderza w " + 
                QIMIE(cel[0], PL_BIE) + " przebijajac sie przez je" +
                cel[0]->koncowka("go", "j") + " obrone i zaglebiajac sie " +
                "w ciele pozostawia plytka rane.\n");

           cel[0]->catch_msg(QCIMIE(TP, PL_MIA) + " uderza cie " + 
                bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + " pozostawiajac " +
                "plytka rane.\n");

           tell_room(environment(TP),QCIMIE(TP, PL_MIA) + " uderza " + 
                QIMIE(cel[0], PL_BIE) + " " + 
                bron->koncowka("swym", "swoja") + " " + 
                bron->query_short(PL_NAR) + " pozostawiajac " + 
                cel[0]->koncowka("mu","jej") + " plytka rane.\n",
                ({TP,cel[0]}));

            break;
        }

        case 26..50:
        {
            TP->catch_msg("Wykorzystujac nieuwage przeciwnika wykonujesz " +
                "szeroki zamach " + bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + ". Twoj cios uderza w " + 
                QIMIE(cel[0], PL_BIE) + " przebijajac sie przez je" +
                cel[0]->koncowka("go", "j") + " obrone i zaglebiajac sie " +
                "w ciele pozostawia srednia rane.\n");

           cel[0]->catch_msg(QCIMIE(TP, PL_MIA) + " uderza cie " + 
                bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + " pozostawiajac " +
                "srednia rane.\n");

           tell_room(environment(TP),QCIMIE(TP, PL_MIA) + " uderza " + 
                QIMIE(cel[0], PL_BIE) + " " + 
                bron->koncowka("swym", "swoja") + " " + 
                bron->query_short(PL_NAR) + " pozostawiajac " + 
                cel[0]->koncowka("mu","jej") + " srednia rane.\n",
                ({TP,cel[0]}));

            break;
        }

        case 51..75:
        {
            TP->catch_msg("Wykorzystujac nieuwage przeciwnika wykonujesz " +
                "szeroki zamach " + bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + ". Twoj cios uderza w " + 
                QIMIE(cel[0], PL_BIE) + " przebijajac sie przez je" +
                cel[0]->koncowka("go", "j") + " obrone i zaglebiajac sie " +
                "w ciele pozostawia powazna rane.\n");

           cel[0]->catch_msg(QCIMIE(TP, PL_MIA) + " uderza cie " + 
                bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + " pozostawiajac " +
                "powazna rane.\n");

           tell_room(environment(TP),QCIMIE(TP, PL_MIA) + " uderza " + 
                QIMIE(cel[0], PL_BIE) + " " + 
                bron->koncowka("swym", "swoja") + " " + 
                bron->query_short(PL_NAR) + " pozostawiajac " + 
                cel[0]->koncowka("mu","jej") + " powazna rane.\n",
                ({TP,cel[0]}));

            break;
        }

        case 76..99:
        {
            TP->catch_msg("Wykorzystujac nieuwage przeciwnika wykonujesz " +
                "szeroki zamach " + bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + ". Twoj cios uderza w " + 
                QIMIE(cel[0], PL_BIE) + " przebijajac sie przez je" +
                cel[0]->koncowka("go", "j") + " obrone i zaglebiajac sie " +
                "w ciele pozostawia bardzo ciezka rane.\n");

           cel[0]->catch_msg(QCIMIE(TP, PL_MIA) + " uderza cie " + 
                bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + " pozostawiajac " +
                "bardzo ciezka rane.\n");

           tell_room(environment(TP),QCIMIE(TP, PL_MIA) + " uderza " + 
                QIMIE(cel[0], PL_BIE) + " " + 
                bron->koncowka("swym", "swoja") + " " + 
                bron->query_short(PL_NAR) + " pozostawiajac " + 
                cel[0]->koncowka("mu","jej") + " bardzo ciezka rane.\n",
                ({TP,cel[0]}));

            break;
        }

        default:
        {
            TP->catch_msg("Wykorzystujac nieuwage przeciwnika wykonujesz " +
                "szeroki zamach " + bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + ". Twoj potezny cios uderza w " + 
                QIMIE(cel[0], PL_BIE) + " tnac " +
                cel[0]->koncowka("jego", "jej") + " miesnie i gruchoczac " +
                "koscii. " + QIMIE(cel[0], PL_MIA) + " spoglada tepo na " +
                "swoja rane, po czym pada w rosnaca kaluze wlasnej krwii.\n");

           cel[0]->catch_msg(QCIMIE(TP, PL_MIA) + " uderza cie " + 
                bron->koncowka("swym", "swoja") + " " +
                bron->query_short(PL_NAR) + " rozrywajac miesnie i " +
                "miazdzac kosci. Przez chwile jeszcze stoisz tepo gapiac " +
                "sie na swoja rane, po czym padasz w rosnaca kaluze " + 
                "wlasnej krwii.\n");

           tell_room(environment(TP),QCIMIE(TP, PL_MIA) + " uderza " + 
                QIMIE(cel[0], PL_BIE) + " " + 
                bron->koncowka("swym", "swoja") + " " + 
                bron->query_short(PL_NAR) + " rozrywajac miesnie i " +
                "miazdzac kosci. " + QCIMIE(cel[0], PL_MIA) + " spoglada " +
                "tepo na swoja rane, po czym pada w rosnaca kaluze " +
                "wlasnej krwii.\n", ({TP,cel[0]}));
            cel[0]->do_die(TP);
            break;            
        }
    }
    return 1;
}
