/* Plik:        emocje.h
 * Autor:       Khazzar (jedrekz@pascom.pl)
 * Data:        16.04.2003
 * Last Update: ----------
 * Opis:        Emocje dostepne dla czlonkow Kompanii Krogulca.
 * Uwagi:       
 */

int
emocje()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    write("Wraz z przystapieniem do Kompani Krogulca uzyskales dostep do " +
          "ponizszych emocji.\n" +
          "\n" +
          "    nbacznosc    -\n" +
          "    nemocje      -\n" +
          "    nlicz        -\n" +
          "    nlustruj     -\n" +
          "    nmachnij     -\n" +
          "    nnienawisc   -\n" +
          "    noczysc      -\n" +
          "    nodpocznij   -\n" +
          "    nodwaga      -\n" +
          "    nokrzyk      -\n" +
          "    nostrosc     -\n" +
          "    npiesn       -\n" +
          "    npot         -\n" +
          "    npotrzyj     -\n" +
          "    npowitaj     -\n" +
          "    npozegnaj    -\n" +
          "    nsalutuj     -\n" +
          "    nskin        -\n" +
          "    nsmiech      -\n" +
          "    nsmutek      -\n" +
          "    nsplun       -\n" +
          "    nsprawdz     -\n" +
          "    ntwarz       -\n" +
          "    nzamysl      -\n" +
          "    nzasep       -\n" +
          "    nzlosc       -\n");
    return 1;
}

int
nbacznosc(string kim)
{
    object *cel = parse_this(kim,"%l:"+PL_NAR);

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    if (!strlen(kim))
    {
        TP->catch_msg("Wyprostowujesz sie stajac na bacznosc.\n");
        tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " wyprostowuje " +
                  "sie po czym szybko staje na bacznosc.\n",({TP}));
        return 1;
    }

    notify_fail("Nbacznosc przed kim?\n");
    if (!sizeof(cel)) return 0;

    TP->catch_msg("Wyprostowujesz sie stajac na bacznosc przed " +
                  QCIMIE(cel[0],PL_NAR) + ".\n");
    cel[0]->catch_msg(QCIMIE(TP,PL_MIA) + " wyprostowuje sie po " +
                      "czym szybko staje na bacznosc przed toba.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " wyprostowuje sie " +
              "po czym szybko staje na bacznosc przed " +
              QCIMIE(cel[0],PL_NAR) + ".\n",({TP,cel[0]}));
    return 1;
}

int
nlicz()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Probujac uspokoic swoje nerwy zaczynasz powoli " +
                  "liczyc do dziesieciu.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " probujac opanowac " +
              "swoje nerwy zaczyna powoli liczyc do dziesieciu. Gdy " +
              "konczy, " + TP->koncowka("jego","jej") + " twarz staje " +
              "sie oaza spokoju.\n",({TP}));
    return 1;
}

int
nlustruj()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Zamierajac w bezruchu rozlgadasz sie uwaznie po " +
                  "okolicy szukajac sladow niebezpieczenstwa.\n");
    tell_room(environment(TP),"Nagle " + QCIMIE(TP,PL_MIA) + " zamiera " +
              "w bezruchu lustrujac dokladnie okolice szukajac czegos " +
              "wzrokiem.\n",({TP}));
    return 1;
}

int
nmachnij(string str)
{
    string opis;
    mixed *oblist;
    object bron;

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    if (str==0)
    {
        notify_fail("Czym chcesz machnac?\n");
        return 0;
    }

    parse_command(str,TP,"%i:"+PL_NAR,oblist);
    oblist=NORMAL_ACCESS(oblist,0,0);

    if (!sizeof(oblist))
    {
        notify_fail("Czym chcesz machnac?\n");
        return 0;
    }

    if (sizeof(oblist) > 1)

    {
        write("Mozesz nmachnac tylk jedna brona naraz.\n");
        return 1;
    }

    bron = oblist[0];

    TP->set_obiekty_zaimkow(({bron}));
    if (!bron)
    {
        notify_fail("Czym chcesz machnac?\n");
        return 0;
    }

    if (bron->query_wielded() != TP)
    {
        notify_fail("Nie powinienes najpierw dobyc tej broni?\n");
        return 0;
    }

    TP->catch_msg("Mocno chwytasz za " + bron->query_short(PL_BIE) +
                  " i wykonujesz w powietrzu kilka zgrabnych ciec " +
                  "sprawdzajac, czy bron jest odpowiednio wywazona.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " zdecydowanie chwyta " +
              "za " + bron->query_short(PL_BIE) + " i wykonuje w powietrzu " +
               "kilka mocnych i szybkich machniec.\n",({TP}));
    return 1;
}

int
nnienawisc(string str)
{
    object *cel = parse_this(str,"%l:"+PL_CEL);

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    notify_fail("Nnienawisc komu?\n");
    if (!sizeof(cel)) return 0;

    TP->catch_msg("Zwezajac oczy wpatrujesz sie w " + QCIMIE(cel[0],PL_BIE) +
                  " wyrazajac swoja nienawisc.\n");
    cel[0]->catch_msg(QCIMIE(TP,PL_MIA) + " zweza oczy wpatrujac sie " +
                  "w ciebie, przez plecy przechodza cie nagle ciarki " +
                  "gdy dostrzegasz w jego spojrzeniu bezgraniczna " +
                  "nienawisc.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " zweza oczy wpatrujac " +
              "sie w " + QCIMIE(cel[0],PL_BIE) + ", dostrzegasz w tym " +
              "spojrzeniu bezgraniczna nienawisc.\n",({TP,cel[0]}));  
    return 1;
}

int
noczysc(string str)
{
    string opis;
    mixed *oblist;
    object bron;

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    if (str==0)
    {
        notify_fail("Co chcesz oczyscic?\n");
        return 0;
    }

    parse_command(str,TP,"%i:"+PL_BIE,oblist);
    oblist=NORMAL_ACCESS(oblist,0,0);

    if (!sizeof(oblist))
    {
        notify_fail("Co chcesz oczyscic?\n");
        return 0;
    }

    if (sizeof(oblist) > 1)

    {
        write("Mozesz oczyscic tylko jedna rzecz naraz.\n");
        return 1;
    }

    bron = oblist[0];

    TP->set_obiekty_zaimkow(({bron}));
    if (!bron)
    {
        notify_fail("Co chcesz oczyscic?\n");
        return 0;
    }

    TP->catch_msg("Szybkim ruchem ocierasz " + bron->query_short(PL_BIE) +
                  " ze sladow krwi.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " szybkim ruchem ociera " +
              bron->query_short(PL_BIE) + " ze sladow krwi.\n",({TP}));
    return 1;
}

int
nodpocznij()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Rozgladasz sie za jakims miejscem na odpoczynek " +
                  "po czym siadasz na ziemi dajac odpoczac kosciom.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " rozlgada sie " +
              "pospiesznie po czym rozsiada sie na ziemi z wyrazna " +
              "ulga.\n",({TP}));
    return 1;
}

int
nodwaga()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Stajesz na szeroko rozstawionych nogach gotow " +
                  "na wszystko co przyniesie ci los.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " staje na szeroko " +
              "rozstawionych nogach, w " + TP->koncowka("jego","jej") + 
              " oczach widzisz niezlomnosc i odwage godna prawdziwego " +
              "zolnierza.\n",({TP}));
    return 1;
}

int
nokrzyk()
{
    object env;
    object *lokacje;
    int ile;

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    if (env = environment(TP))
        lokacje = find_neighbour(({env}), ({env}), 3);
    else
        lokacje = ({});

    ile = sizeof(lokacje);
    while(ile--)
    {
        if (lokacje[ile] == environment(TP))
            tell_room(lokacje[ile],QCIMIE(TP,PL_MIA) + " wydaje z siebie " +
                      "przerazajacy, niemal nieludzki okrzyk zwiastujacy " +
                      "zwyciestwo.\n",({TP}));
        else
            tell_room(lokacje[ile],"Z oddali slyszysz jakis przerazajacy, " +
                      "wrecz nieludzki okrzyk.\n",({TP}));
    }

    TP->catch_msg("Wydajesz z siebie przerazajacy, niemal nieludzki " +
                  "okrzyk zwiastujacy twoje zwyciestwo.\n");
    return 1;
}

int
nostrosc(string str)
{
    string opis;
    mixed *oblist;
    object bron;

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    if (str==0)
    {
        notify_fail("Ostrosc czego chcesz spawdzic?\n");
        return 0;
    }

    parse_command(str,TP,"%i:"+PL_DOP,oblist);
    oblist=NORMAL_ACCESS(oblist,0,0);

    if (!sizeof(oblist))
    {
        notify_fail("Ostrosc czego chcesz spawdzic?\n");
        return 0;
    }

    if (sizeof(oblist) > 1)

    {
        write("Mozesz sprawdzic ostrosc jedynie jednej broni naraz.\n");
        return 1;
    }

    bron = oblist[0];

    TP->set_obiekty_zaimkow(({bron}));
    if (!bron)
    {
        notify_fail("Ostrosc czego chcesz spawdzic?\n");
        return 0;
    }

    if (bron->query_wielded() != TP)
    {
        notify_fail("Dobadz wpierw broni, zanim sprawdzisz jej ostrosc.\n");
        return 0;
    }

    TP->catch_msg("Przejezdzasz kciukiem po ostrzu " 
                  + bron->query_short(PL_DOP) + " sprawdzajac, czy nie " +
                  "stepialo po ostatniej walce.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " przejezdza kciukiem " +
              "po ostrzu swego " + bron->query_short(PL_DOP) + 
              " sprawdzajac, czy nie stepialo po ostatniej walce.\n",({TP}));
    return 1;
}

int
npiesn()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Nabierasz tchu i zaczynasz nucic zolnierska piesn " +
                  "slyszana zazwyczaj przy obozowych ogniskach.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " nabiera tchu i " +
              "zaczyna nucic zolnierska piesn opowiadajaca o wojnie, " +
              "gdy konczy dostrzegasz pojedyncza lze splywajaca po " +
              "jego policzku.\n",({TP}));
    return 1;
}

int
npot()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Ocierasz wierzchem dloni pot splywajacy z czola " +
                  "jednoczesnie uspokajajac swoj oddech.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " ociera wierzchem " +
              "dloni pot splywajacy " + TP->koncowka("mu","jej") + 
              " z czola, jednoczesnie " + TP->koncowka("jego","jej") + 
              " oddech staje sie wyraznie spokojniejszy.\n",({TP}));
    return 1;
}

int
npotrzyj()
{
    int rand;
    string blizna;

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    rand = random(5);
    switch(rand)
    {
        case 0 : blizna = "policzku"; break;
        case 1 : blizna = "szyi"; break;
        case 2 : blizna = "karku"; break;
        case 3 : blizna = "ramieniu"; break;
        case 4 : blizna = "barku"; break;
    }
    
    TP->catch_msg("W zamysleniu pocierasz dlonia blizne na " + blizna +
                  " przypominajac sobie stoczone walki.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " w zamysleniu " +
              "pociera dlonia blizne na " + blizna + " wspominajac " +
              "boje stoczone w przeszlosci.\n",({TP}));
    return 1;
}

int
npowiedz(string text)
{

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    notify_fail("Slucham?\n");
    if ( ENGINE->query_data(TP, RANGA) <= SIERZANT) return 0;

    if (!strlen(text)) 
    {
        TP->catch_msg("Robisz sroga mine chcac wydac rozkaz, ale " +
                      "w ostatniej chwili rezygnujesz.\n");
        tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " robi sroga mine. " +
                  "\n",({TP}));
        return 1;
    }

    if (strlen(text)>120)
    {
        notify_fail("To ma byc rozkaz, nie przemowienie...\n"); 
        return 0;
    }

    TP->catch_msg("Mowisz stanowczym nie znoszacym sprzeciwu " +
                  "glosem: " + text + "\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " mowi stanowczym " +
              "nie znoszacym sprzeciwu glosem: " + text + "\n",({TP}));
    return 1;
}

int
npowitaj()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Unosisz dlon w gore w zwyczajowym gescie zolnierskiego " +
                  "powitania.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " unosi w gore dlon " +
              "w zwyczajowym gescie zolnierskiego powitania\n",({TP}));
    return 1;
} 

int
npozegnaj()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Nie tracac czasu na zbedne formalnosci unosisz dlon " +
                  "w gescie pozegnania.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " unosi dlon w gore " +
              "zegnajac sie pospiesznie.\n",({TP}));
    return 1;
}

int
nsalutuj(string str)
{
    object *cel = parse_this(str,"%l:"+PL_CEL);

    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    if (!strlen(str))
    {
        TP->catch_msg("Szybko unosisz dlon do czola salutujac.\n");
        tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " szybko unosi " +
                  "dlon do czola salutujac.\n",({TP}));
        return 1;
    }

    notify_fail("Nsalutuj komu?\n");
    if (!sizeof(cel)) return 0;

    TP->catch_msg("Szybko unosisz dlon do czola salutujac " +
                  QCIMIE(cel[0],PL_CEL) + ".\n");
    cel[0]->catch_msg(QCIMIE(TP,PL_MIA) + " unosi szybko dlon do " +
                      "czola salutujac ci.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " szybko unosi dlon " +
              "do czola salutujac " + QCIMIE(cel[0],PL_CEL) + ".\n"
              ,({TP,cel[0]}));
    return 1;
}

int
nskin()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Kiwasz glowa dajac wszystkim do zrozumienia ze " +
                  "czas ruszac.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " kiwa glowa dajac " +
              "wszystkim do zrozumienia ze czas ruszac.\n",({TP}));
    return 1;
}

int
nsmiech()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Nie mogac powstrzymac rozbawienia wybuchasz nagle " +
                  "gromkim smiechem.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " nie mogac powstrzymac "+
              "rozbawiena wybucha nagle gromkim smiechem.\n",({TP}));
    return 1;
}

int
nsmutek()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Pochylasz glowe wspominajac poleglych towarzyszy, " +
                  "na krotka chwile twoje oblicze lagodnieje.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " pochyla glowe " +
              "wspominajac swych poleglych w bojach towarzyszy broni, " +
              "dostrzegasz smutek i wspolczucie w " +
              TP->koncowka("jego","jej") + " srogim zazwyczaj obliczu.\n"
              ,({TP}));
    return 1;
}

int
nsplun()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Spluwasz w dlonie rozcierajac je powoli, jednoczesnie " +
                  "rozlgadajac sie spokojnie po okolicy.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " spluwa w dlonie " +
              "rozcierajac je powoli, " + TP->koncowka("jego","jej") + 
              " wzrok kieruje sie na najblizsza okolice badajac ja " + 
              "dokladnie.\n",({TP}));
    return 1;
}

int
nsprawdz()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Dokonujesz szybkiego przegladu swego ekwipunku " +
                  "sprawdzajac czy aby na pewno wszystko ze soba zabral" +
                  TP->koncowka("es","as") + ".\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " dokonuje szybkiego " +
              "przegladu swego ekwipunku upewniajac czy aby na pewno ma " +
              "przy sobie niezbedny sprzet.\n",({TP}));
    return 1;
}

int
ntwarz()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Twoja twarz nagle kamienieje stajac sie maska bez " +
                  "wyrazu.\n");
    tell_room(environment(TP),"Twarz " + QCIMIE(TP,PL_DOP) + " nagle " +
              "kamienieje stajac sie maska bez wyrazu.\n",({TP}));
    return 1;
}

int
nzamysl()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Spogladasz gdzies nieobecnym wzrokiem pocierajac " +
                  "w zamysleniu brode.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " spoglada w jakis " +
              "odlegly punkt pocierajac w zamysleniu brode.\n",({TP}));
    return 1;
}

int
nzasep()
{    
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Zasepiasz sie na mysl o czekajacej sie walce i " +
                  "przelewie krwi.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " zasepia sie, a w " +
              TP->koncowka("jego","jej") + " oczach dostrzegasz " +
              "zacietosc i nieustepliwosc godna prawdziwego " +
              "zolnierza.\n",({TP}));
    return 1;
}

int
nzlosc()
{
    notify_fail("Slucham?\n");
    if ( !ENGINE->query_member(TP) ) return 0;

    TP->catch_msg("Zaczynasz szpetnie klac uzywajac najwymyslniejszych " +
                  "ludzkich i krasnoludzkich przeklenstw, dajac upust " +
                  "swojej zlosci.\n");
    tell_room(environment(TP),QCIMIE(TP,PL_MIA) + " czerwienieje na " +
              "twarzy gdy zaczyna szpetnie klac uzywajac do tego " +
              "najwymyslniejszych przeklenstw we wszystkich znanych " +
              TP->koncowka("mu","jej") + " jezykach.\n",({TP}));
    return 1;
}

int
nznaki(string text)
{
    object *oblist;
    int a;

    notify_fail("Nie potrafisz jeszcze tego zrobic.\n");
    if ( ENGINE->query_data(TP, RANGA) == REKRUT ) return 0;

    if(!text)
    {
        notify_fail("Co chcesz przekazac jezykiem znakow?\n");
        return 0;
    }
   
    if(!environment(TP))
    {
        notify_fail("Blad zwiazany z otoczeniem!\n");
        return 0;
    }

    oblist = (all_inventory(environment(TP))-({TP})); 
    write("Przekazujesz w jezyku gestow: " + text + "\n");
    
    for(a=0;a<sizeof(oblist);a++)
    {
        if (ENGINE->query_member(oblist[a]))
            oblist[a]->catch_msg(QCIMIE(TP,PL_MIA) + " wykonuje kilka " +
                       "gestow rekoma, przekazujac wiadomosc: " + text + 
                       "\n");
        else
            if (TP->query_stat(3)<=oblist[a]->query_skill(SS_AWARENESS)*2)
                oblist[a]->catch_msg("Widzisz jak " + QCIMIE(TP,PL_MIA) + 
                                     " zaczyna wykonywac rekoma jakies " +
                                     "niezrozumiale dla ciebie gesty i " +
                                     "znaki.\n");
    }        
    return 1;   
}
