/*
 *  Plik:         gwardzis.c
 *  Autor:        Aleksy
 *  Data:         06.12.1998
 *  Last Update:  07.12.1998
 *  Opis:         Gwardzista.
 */

#pragma strict_types
inherit "/d/Imperium/std/monster.c";
#include "zamek.h"
#include <pl.h>
#include <ss_types.h>
#include <stdproperties.h>
#define PRZYMIOTNIKI ({ ({"duzy", "duzi"}), \
	({"gromadny", "gromadni"}), ({"muskularny", "muskularni"}), \
	({"grozny", "grozni"}), ({"barczysty", "barczysci"}) })
#define G ({ ({"gwardzista", "gwardzisty", "gwardziscie", \
		  "gwardziste", "gwardzista", "gwardziscie"}), \
	        ({"gwardzisci", "gwardzistow", "gwardzistom", \
		  "gwardzistow", "gwardzistami", "gwardzistach"}) })

void
create_monster()
{
	int i;
	i = random(4);

	ustaw_nazwe(G[0], G[1], PL_MESKI_OS);

	ustaw_odmiane_rasy(G[0], G[1], PL_MESKI_OS);

	dodaj_nazwy(({"czlowiek", "czlowieka", "czlowiekowi",
		"czlowieka", "czlowiekiem", "czlowieku"}),
		allocate(6), PL_MESKI_OS);

    set_gender(G_MALE);

	dodaj_przym("czarny", "czarni");
    dodaj_przym(PRZYMIOTNIKI[i][0], PRZYMIOTNIKI[i][1]);

    set_long("Gwardzisci zamkowi byli kiedys ludzmi, jednak staly kontakt ze spaczeniem "
	   + "zmienil ich w mutantow. Nosza helmy z opuszczonymi przylbicami, "
	   + "wiec z wygladu przypominaja zwyczajnych zolnierzy, jednak ukryte pod zbroja "
	   + "owrzodzone ciala powoli gnija, a sami gwardzisci cuchna padlina.\n");

    set_stats(({45, 45, 45, 10, 10, 40}));
    add_prop(LIVE_I_NEVERKNOWN, 1);

	set_skill(SS_SHIELD_PARRY, 20);
    set_skill(SS_DEFENCE, 30);
    set_skill(SS_WEP_SWORD, 50);
    set_skill(SS_PARRY, 20);

    set_act_time(12 + random(20));
    add_act("emote mowi: Czego tu szukasz? Smierci?\n");
    add_act("emote krzyczy: Idz stad, tylko mi przeszkadzasz!\n");
    add_act("emote mowi: Odejdz, i tak tu malo miejsca!\n");
    add_act(({"przestap", "usmiech bojowo", "wzdrygnij sie"}));

    set_cact_time(2 + random(3));
    add_cact("emote mowi: Bedziesz cierpial ty i cala twoja rodzina!\n");
    add_cact("emote krzyczy: Zaatakowales mnie ... nawet "
	+ "sobie nie wyobrazasz jaki to blad!\n");
    add_cact("emote krzyczy: Nie odejdziesz stad zywy ...\n");
    add_cact("emote mowi: Jak smiales ty paskudo mnie zaatakowac? "
	+ "Zginiesz wiec za to!\n");
    add_cact("emote mowi: Juz po tobie!\n");

    add_weapon(BRONIE + "miecz_m.c");
    add_armour(ZBROJE + "kolcz_m.c");
	add_armour(ZBROJE + "helm_m.c");
	add_armour(ZBROJE + "tarcza_m.c");

    dodaj_srebro(5 + random(5));
}

public void
wesprzyj_gw(object ob)
{
    if (query_attack())
    {
        return ;
    }
    command("wesprzyj " + OB_NAME(ob));
    if (query_attack())
    {
        switch(random(3))
        {
            case 0: command("krzyknij Napssszod!"); break;
            case 1: command("krzyknij Do broni!"); break;
            case 2: command("krzyknij Na smierc!"); break;
        }
        return ;
    }
}

public void
pomocy()
{
    (all_inventory(environment(this_object())) - ({ this_object() }))->wesprzyj_gw(this_object());
}

void
attacked_by(object wrog)
{
	command("krzyknij Na pomoc!");
    set_alarm(0.1, 0.0, "pomocy");
    return ::attacked_by(wrog);
}