/* 
 * Kompania Krogulca
 *
 * Copyright(C):    Khazzar (jedrekz@pascom.pl)
 * Data:            26.08.2003
 * 
 */

inherit "/std/paralyze";
#include "def.h"

#define ALLOWED ({"zglos", "przyzwij", "odpowiedz", \
                  "blagaj", "jeknij", "kichnij", "kiwnij", \
                  "jezyk", "machnij", "mrugnij", "odetchnij", \
                  "opluj", "otrzasnij", "parsknij", "podziekuj", \
                  "pierdnij", "potrzasnij", "przelknij", "przepros", \
                  "potwierdz", "pokiwaj", "przewroc", "przymruz", \
                  "prychnij", "pomachaj", "przebacz", "popatrz", \
                  "rozejrzyj", "rozplacz", "sapnij", "skrzyw", \
                  "splun", "skin", "spanikuj", "spojrzyj", \
                  "usmiechnij", "warknij", "wskaz", "wybalusz", \
                  "wyplacz", "wzdrygnij", "westchnij", "wybacz", \
                  "wykrzyw", "wytrzeszcz", "wzrusz", "zachichocz", \
                  "zagwizdz", "zamrucz", "zdziw", "zachlip", \
                  "zajecz", "zaprzecz", "ziewnij", "zachrumkaj", \
                  "zakrztus", "zarechocz", "zazgrzytaj", "zignoruj", \
                  "zaczerwien", "zalam", "zarumien", \
                  "k", "stan", \
                  "krzyknij", "powiedz", "'", "sp", "szepnij"})

/*
 * Function name: stop
 * Description  : Here all commands the player gives comes.
 * Argument     : string str - The command line argument.
 * Returns      : int 1/0    - success/failure.
 */
int
stop(string str)
{
    /* Only paralyze our environment */
    if (environment() != TP)
    {
        return 0;
    }

    /* Some commands may always be issued. */
    if (member_array(query_verb(), ALLOWED) != -1 || query_verb()[0] == '?')
    {
        return 0;
    }

    /* If there is a verb stopping the paralyze, check it. */
    if (query_verb() == "wstan")
    {
        if ( (N_NPC + "konowal")->wstan() )
        {
            return 1;
        }

        set_alarm(0.3, 0.0, remove_object);
        return 1;
    }

    /* We allow VBFC, so here we may use catch_msg(). */
    if (stringp(fail_message))
    {
        this_player()->catch_msg("Przecierz lezysz na stole operacyjnym!\n");
    }

    /* Only paralyze mortals. */
    if (!this_player()->query_wiz_level())
    {
        return 1;
    }

    write("Since you are a wizard this paralyze won't affect you.\n");
    return 0;
}

int
query_paraliz_leczenie()
{
    return 1;
}
