
inherit "/d/Imperium/std/monster.c";
#include "../def.h"

#include <stdproperties.h>
#include <ss_types.h>
#include <macros.h>
#include <wa_types.h>
#include <filter_funs.h>


create_monster()
{

    dodaj_przym("muskularny","muskularni");
    dodaj_przym("czarny","czarni");
    
    set_long("Masz przed soba wielkiego, muskularnego orka. Po uzbrojeniu i ubraniu "+
      "wiesz juz, ze nie jest on zwyczajnym mieszkancem tego obozu. To "+
      "bandyta z elitarnego oddzialu Czarnych Orkow. Szczerzy przegnile zeby w "+
      "zlosliwym usmieszku, pewny swej sily i wyszkolenia.\n");
             
    ustaw_odmiane_rasy(PL_ORK);
                            
    set_gender(G_MALE);
      
    add_prop(LIVE_I_NEVERKNOWN, 1);
    add_prop(IMPERIUM_I_STWOR_CHAOSU, 1);

    set_stats(({200 + random(50) , 180 + random(70), 220 + random(30),
                 60              ,  60             , 200              }));

    set_skill(SS_DEFENCE,      75 + random(25));
    set_skill(SS_PARRY,        75 + random(25));
    set_skill(SS_WEP_SWORD,    75 + random(25));
    set_skill(SS_AWARENESS,    100            );    
    set_skill(SS_SHIELD_PARRY, 75 + random(25));

    set_combat_speed(40);
    set_exp_factor(200);        
        
    set_chat_time(45+random(10));
    set_act_time(100);
    
    add_act("emote podejrzliwie sie rozglada.");
    add_act("emote leniwie sie przeciaga.");
    add_act("emote podspiewuje sobie frywolna piosenke o elfkach.");
    add_act("emote pluje na ziemie.");
    
    add_act("emote mowi: Co tu robisz, robaku!");
    
    add_cchat("Zabije cie jak psa!");
    add_cchat("ZABIJE CIE!!");
    add_cchat("ALARM! INTRUZI W OBOZIE!!");
    
    set_random_move(25);
    set_alignment(-500);
    set_aggressive(1);
    
    add_weapon(PATH + "items/szabla2.c");
    add_armour(PATH + "items/napiersnik.c");
    add_armour(PATH + "items/tarcza.c");
    add_armour(PATH + "items/helm.c");
       
    return;
}

public void
wesprzyj(object ob)
{
    if (query_attack())
    {
        return ;
    }
    
    command("wesprzyj " + OB_NAME(ob));
    
    if (query_attack())
    {
        switch(random(5))
        {
            case 0: command("krzyknij Do boju!"); break;
            case 1: command("krzyknij Waaaaaagh!"); break;
            case 3: command("krzyknij Krwiiiii!"); break;
            case 4: command("krzyknij Smierci!!"); break;
        }
        return ;
    }

    switch(random(5))
    {
        case 0: command("powiedz do "+OB_NAME(ob)+" O Mamo !!!"); break;
        case 1: command("powiedz do "+OB_NAME(ob)+" Sam se radz."); break;
        case 2: command("powiedz do "+OB_NAME(ob)+" Chyba zartujesz ?!"); break;
        case 3: command("powiedz do "+OB_NAME(ob)+" He, he. Ja Ci nie pomoge...");
        				break;
        case 4: command("powiedz Ratunku!");
    }
}

public void
pomocy()
{
    (all_inventory(environment(this_object())) - ({ this_object() }))->wesprzyj(this_object());
}

void
attacked_by(object wrog)
{
    command("krzyknij Pomocy !!");
    set_alarm(0.1, 0.0, "pomocy");
    return ::attacked_by(wrog);
}

public int
special_attack(object kto)
{
    mixed hit_res;
    int pen, hit;

    if (random(100) > 50)
    {
        pen = (1000 + random(2)*350);
        hit = 40 + random(20)
	    
        hit_res = kto-> hit_me(ftoi(pen), W_SLASH, hit, this_object(), -1);
        switch (hit_res[0])
        {
            case 0..5: 
                kto->catch_msg(QCIMIE(this_object(), PL_MIA) + " naglym " +
                "ruchem skreca sie i wyprowadza potezny cios z polobrotu, " +
                "ale ty szybko uskakujesz.\n");
        	    
		        say(QCIMIE(this_object(), PL_MIA) + " naglym ruchem skreca sie " +
		        "i wyprowadza potezny ciosz polobrotu, ale " + QIMIE(kto, PL_MIA) + 
		        " szybko uskakuje.\n", kto);
                break;
                
	        case 6..25:
		         kto-> catch_msg(QCIMIE(this_object(), PL_MIA) + " gwaltownie " +
		         "obraca sie, a jego potezny cios trafia cie w " + hit_res[1] +
		         " nie wyrzadzajac jednak wiekszej szkody.\n");
		         
		         say(QCIMIE(this_object(), PL_MIA) + " gwaltownie obraca sie, a " +
		         "jego potezny cios trafia " + QIMIE(kto, PL_DOP) + " w " +
		         hit_res[1] + " nie wyrzadzajac jednak wiekszej szkody.\n", kto);
		         break;
		         
            case 26..50:
		         kto-> catch_msg(QCIMIE(this_object(), PL_MIA) +
		         " niewiarygodnie szybkim ruchem obraca sie i tnie cie " +
		         "silnie w " + hit_res[1] + ".\n");
    		     say(QCIMIE(this_object(), PL_MIA) + " niewiarygodnie szybkim " +
		         "ruchem obraca sie i tnie silnie " + QIMIE(kto, PL_DOP) +
		         " w " + hit_res[1] + ".\n", kto);
                break;
                
	        case 51..75:
		         kto-> catch_msg(QCIMIE(this_object(), PL_MIA) + " zwija sie " +
		         "nagle w polobrocie i ciezko rani cie w " + hit_res[1] +
		         " swym poteznym ciosem.\n");
		         say(QCIMIE(this_object(), PL_MIA) + " zwija sie nagle w " +
		         "polobrocie i ciezko rani " + QIMIE(kto, PL_DOP) + " w " +
		         + hit_res[1] + " swym poteznym ciosem.\n", kto);
                break;
	    
            default:
		         kto-> catch_msg(QCIMIE(this_object(), PL_MIA) + " zwija sie " +
		         "niespodziewanie w polobrocie, a jego potezny cios z " +
		         "przerazliwym swistem masakruje cie trafiajac w " + hit_res[1] +
		         ".\n");
        	     say(QCIMIE(this_object(), PL_MIA) + " zwija sie " +
		         "niespodziewanie w polobrocie, a jego potezny cios z " +
		         "przerazliwym swistem masakruje " + hit_res[1] + " " +
		         QIMIE(kto, PL_DOP) + ".\n", kto);
        }
    }
    return 0;
} 