inherit "/d/Imperium/std/monster.c";
#include <stdproperties.h>
#include <ss_types.h>
#include <macros.h>
#include "local.h"
#include <wa_types.h>
#include <filter_funs.h>
create_monster()
#define TO this_object()
#define TP this_player()
{
int a;
    set_long("Jest to legendarny impreator imperium. Przez wiekszosc ludzi uwazany " +
             "za najpotezniejszego i najbardziej wplywowego czlowieka na swiecie. " +
             "Powszechnie uwaza sie, ze ma za soba poparcie wszystkich dobrych bogow. " +
             "Odziany jest w jasniejaca, niesamowita zbroje, jego twarz ma wyraz " +
             "kompletnego, niczym nie zmaconego spokoju. Dlugie wasiska lacza sie " +
             "z broda na niezwykle szlachetnej i nobliwej twarzy. Nie mozesz z niej " +
             "wyczytac kompletnie nic. Jakby to byla jakiegos rodzaju maska.\n");
             
    ustaw_nazwe(({"karl","karla","karlowi","karla","karlem","karlu"}),
                ({"","","","","",""}),PL_MESKI_NZYW);
    ustaw_odmiane_rasy(PL_CZLOWIEK);
    
    dodaj_przym("swiety","swieci");  
    dodaj_przym("szlachetny","szlachetni");
    set_gender(G_MALE);
      
    set_stats(({250,380,350,100,100,100}));
    set_skill(SS_DEFENCE, random(150)+300);
    set_skill(SS_PARRY, random(150)+300);
    set_skill(SS_WEP_WARHAMMER,random(150)+400);
    set_skill(SS_WEP_SWORD,random(150)+400);
    set_skill(SS_AWARENESS, 100);
    set_skill(SS_LANGUAGE, 100);
    set_skill(SS_2H_COMBAT, 100);
    set_skill(SS_BLIND_COMBAT, 100);
    set_skill(SS_SHIELD_PARRY,150);
    add_prop(LIVE_I_SEE_INVIS, 20);
    add_prop(LIVE_I_SEE_DARK, 20);
    set_chat_time(2+random(10));
    set_act_time(5+random(10));
    
    add_act("emote stoi jak slup soli.");
    add_act("emote przypatruje ci sie uwaznie dziwnymi, pustymi oczami.");
    add_act("emote przyglada sie z duma swej tarczy.");
    add_act("emote mowi: Chwala Sigmarowi.");
    add_act("emote mowi: Gdybym tylko mogl, ruszyl bym tepic chaos ale mam " +
            "tyle innych obowiazkow.");
    add_cact("emote krzyczy: Ku chwale Sigmara!!!");
    add_cact("emote mowi: Juz nie zyjesz.");
    add_cact("emote mowi: Ostatni blad w twym zyciu.");
    add_cact("emote mowi: Bedziesz gnil w palacowej fosie.");
    add_cact("emote krzyczy: Straaaz!!! Straaaz!!!");
    add_cact("emote usmiecha sie pod nosem.");
    add_cact("emote gladzi swa zbroje.");
    set_alignment(1200);
    a=random(10);
        switch(a)
            {
            case 0:
            add_weapon("/d/Imperium/Altdorf/bronie/fraflam");
            break;
            
            case 1:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 2:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 3:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 4:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 5:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 6:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 7:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 8:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;
            
            case 9:
            add_weapon("/d/Imperium/Altdorf/bronie/framlot");
            break;            
            
            }
    add_armour("/d/Imperium/Altdorf/zbroje/frabuty");
    add_armour("/d/Imperium/Altdorf/zbroje/framaska");
    add_armour("/d/Imperium/Altdorf/zbroje/fraplyt");
    add_armour("/d/Imperium/Altdorf/zbroje/frarekaw");
    add_armour("/d/Imperium/Altdorf/zbroje/fraszata");
    add_armour("/d/Imperium/Altdorf/zbroje/fratarcz");
}
void
special_attack( object enemy )
{
object para;
int r = random(50);
    if ( r < 15 )
        {
        say("Nagle na "+QIMIE(TO,PL_DOP)+" splywa jasne swiatlo, ktore " +
            "wydaje sie go leczyc.\n");
        TO->heal_hp(300)+random(600);
        }
    if ( r < 7 )
        {
        enemy->catch_msg("Nagle jakby znikad pojawia sie wielka postac, " +
                         "dzierzaca ogromny mlot. W pewnym momecie osoba " +
                         "ta wykrzykuje glosno: SIGMAAAR!!! i miazdzy cie " +
                         "potwornie swa ogromna bronia.\n");
        say("Nagle jakby znikad pojawia sie wielka postac, dzierzaca ogromny " +
            "mlot. W pewnym momecie rusza z impetem na "+QIMIE(enemy,PL_DOP)+" i " +
            "miarzdzy go swa potezna bronia.\n");    
        enemy->reduce_hit_point(600)+random(1600);
        }
    if ( r < 5 )
        {
        enemy->write("Nagle czujesz jakas swieta odecnosc wokol ciebie," + 
                     "lapie ona twe rece i nogi. Nie mozesz sie poruszyc.\n");
        para = clone_object("/std/paralyze");
        para->set_fail_message("Nadal nie mozesz sie uwolnic.\n");
        para->set_stop_message("Czujesz jak uscisk slabnie.\n");
        para->set_remove_time(10)+random(10);
        para->move(enemy);
        }
}
void
add_introduced(string imie)
{
    set_alarm(2.0,0.0,"return_intro",imie);
}
varargs void
return_intro(string kto)
{
    command("przedstaw sie " + find_player(kto)->query_real_name(PL_CEL));
}
string
query_presentation()
{
    return"Karl Franz Swiety Imperator Imperium, Koronowany Wladca Starego Swiata, " +
          "Krol Swiatla, Mlot Sprawiedliwosci, Ramie Sigmara, czlowiek";
}
                                          
public void
pomocy()
{
    (all_inventory(environment(this_object())) - ({ this_object() }))->wesprzyj(this_object());
}
void
attacked_by(object wrog)
{
    command("emote wybucha smiechem.");
    set_alarm(2.0, 0.0, "pomocy");
    return ::attacked_by(wrog);
}
public int
block_exit()
{
int r;
    string  action = query_verb();
    
    r = random(100);
    
      if ( r <= 95 )
        {    
        TP->catch_msg(""+QCIMIE(TO,PL_MIA)+" blokuje ci droge ucieczki.\n");   
        tell_room(environment(TO),""+QCIMIE(TO,PL_MIA)+" blokuje "+
        ""+QIMIE(TP,PL_CEL)+" droge ucieczki.\n",({TP}));
        return 1;
        }
        return 0; 
}
public void
init_living()
{
string *exit;
int size;
    ::init_living();
    if (environment(this_object()))
    {
        exit = environment(this_object())->query_exit_cmds();
        size = sizeof(exit);
            while (--size >= 0)
            {
            add_action(block_exit, exit[size]);
    }
  }
}
