/* Wielki szczur by Silvy na podstawie tiger.c z docs'ow */

inherit "/std/monster";
inherit "/std/combat/unarmed";

inherit "/std/act/domove";
inherit "/std/act/action";

#include <wa_types.h>
#include <ss_types.h>
#include <stdproperties.h>
#include <macros.h>
#include <filter_funs.h>
#include "silvy.h"
#include <pl.h>

#define A_BITE  0
#define A_LCLAW 1
#define A_RCLAW 2

#define H_HEAD 0
#define H_BODY 1

create_monster()
{

    set_long("Ten monstrualnej wielkosci szczur ma prawie dwa metry "+
        "dlugosci i musi wazyc ponad sto kilo. Jego czerwone " +
        "oczy jarza sie w ciemnosci. Dlugie, ostre zeby oraz " +
        "brudne, ale nie mniej ostre pazury wygladaja na " +
        "zdolne rozerwac kazdego przeciwnika.");

    ustaw_odmiane_rasy(({"szczur","szczura","szczurowi","szczura","szczurem",
      "szczurze"}),({"szczury","szczurow","szczurom","szczury", 
      "szczurami","szczurach"}),PL_MESKI_NOS_ZYW);  

    ustaw_shorty(({"monstrualny szczur","monstrualnego szczura",
      "monstrualnemu szczurowi","monstrualnego szczura",
      "monstrualnym szczurem","monstrualnym szczurze"}),
      ({"monstrualne szczury","monstrualnych szczurow","monstrualnym"+
      "szczurom","monstrualne szczury","monstrualnymi szczurami",
      "monstrualnych szczurach"}));

    set_stats(({ 30, 30, 30, 5, 5, 50}));

    set_gender(G_MALE);

    set_alignment(-100);
    set_aggressive(1);

    add_prop(LIVE_I_NEVERKNOWN, 1);

    set_hp(query_max_hp());

    set_skill(SS_DEFENCE, 30);

    set_attack_unarmed(A_BITE,  10, 20, W_IMPALE, 40, "ostrymi zebami");
    set_attack_unarmed(A_LCLAW, 20, 10, W_SLASH,  30, "lewa lapa");
    set_attack_unarmed(A_RCLAW, 20, 10, W_SLASH,  30, "prawa lapa");

    set_hitloc_unarmed(H_HEAD, ({ 15, 25, 20, 20 }), 20, "glowe");
    set_hitloc_unarmed(H_BODY, ({ 10, 15, 30, 20 }), 80, "tors");
}

static void
tell_watcher(string str, object enemy)
{
    object me,*ob;
    int i;

    me = this_object();
    ob = FILTER_LIVE(all_inventory(environment(me))) - ({ me });
    ob -= ({ enemy });
    for (i = 0; i < sizeof(ob); i++)
        if (ob[i]->query_see_blood())
            ob[i]->catch_msg(str);
}

int
special_attack(object enemy)
{
    object me;
    mixed* hitresult;
    string how;

    me = this_object();
    if(random(10))
        return 0;

    hitresult = enemy->hit_me(10+random(20), W_IMPALE, 60, me, -1);
    how = " bez powodzenia";
    if (hitresult[0] > 0)
        how = " lekko";
    if (hitresult[0] > 10)
        how = " dosc mocno";
    if (hitresult[0] > 20)
        how = " z potezna sila";

    enemy->catch_msg(QCTNAME(me) + " skoczyl z zadziwiajaca zrecznoscia na ciebie.\n"+
                     "Jego kly uderzyly cie" + how + ".\n");
    tell_watcher(QCTNAME(me)+" szczerzac kly skoczyl na "+QTNAME(enemy)+".\n"+
                 capitalize(enemy->query_pronoun()) + " zostal uderzony" +
                 how + ".\n", enemy);
    if(enemy->query_hp() <= 0)
        enemy->do_die(me);

    return 1;
}









