/* snotling */
/* Vaktoth & Czucz 1998 */

/*
 * Generalny 'remont' dla Pustkowi by Tanis
 *  grudzien '98
 *  To jest dodatkowo rodzaj oficera...
 */

inherit "/d/Imperium/std/monster";

#include "defs.h"
#include <stdproperties.h>
#include <macros.h>
#include <ss_types.h>
#include <wa_types.h>

#define PRZYMIOTNIKI ({ ({"krepy","krepi"}), ({"duzy","duzi"}), \
           ({"zielony","zieloni"}), ({"ciemnozielony","ciemnozieloni"}) })
#define PRZYMIOTNIKI2 ({ ({"wyniosly","wyniosli"}), ({"smierdzacy","smierdzacy"}), \
           ({"dumny","dumni"}), ({"dlugowlosy","dlugowlosi"}) })

#define IZBROJE ({"s_koszulka1.c","s_kamizela1.c","s_helm1.c"})
#define IBRONIE ({"s_noz1.c","s_miecz1.c","s_nozyk1.c","s_palka1.c"})
#define LICZBA_KOMBINACJI_ZBROI 3
#define LICZBA_KOMBINACJI_BRONI 4
#define LICZBA_PRZYMIOTNIKOW 4

#define PEN_SPECJALA 1*random(query_stat(SS_STR)+5)
#include "/d/Imperium/funkcje/specjal1.c"

int charakter=0; // Taki fajny bajer - charakter snotlinga
                 // Jeszcze nie wiem do czego, ale moze sie przyda ;-)))

public void pomocy();

void
create_monster()
{
     int i, j, x, y;
     string opis1, opis2, bron, zbroja;

     string *zbr = IZBROJE;
     string *bro = IBRONIE;
     
         i = random(LICZBA_PRZYMIOTNIKOW);
         j = random(LICZBA_PRZYMIOTNIKOW);
         y = random(LICZBA_KOMBINACJI_ZBROI);
         x = random(LICZBA_KOMBINACJI_BRONI);

     charakter= random(100);
     
     bron = BRONIE + bro[x];
     zbroja = ZBROJE + zbr[y];
     
     opis1 = PRZYMIOTNIKI2[i][0];
     opis2 = PRZYMIOTNIKI[j][0];

         dodaj_przym(PRZYMIOTNIKI2[i][0], PRZYMIOTNIKI2[i][1]);
         dodaj_przym(PRZYMIOTNIKI[j][0], PRZYMIOTNIKI[j][1]);

         set_long("Oto " + opis1 + " " + opis2 + " snotling." +
              " Wyglada nieco lepiej niz cala reszta tej zielonoskorej zgrai." +
              " Sprawia wrazenie, jakby byl jakims dowodca czy oficerem," +
              " a w kazdym razie sam tak sadzi. Wyglada na to, ze moze byc calkiem"+
              " silnym przeciwnikiem, nawet w pojedynke. Dla mniej doswiadczonych podroznikow"+
              " potyczka z nim moglaby sie niezbyt szczesliwie skonczyc.\n");

         ustaw_odmiane_rasy(({"snotling", "snotlinga", "snotlingowi", "snotlinga",
                "snotlingiem", "snotlingu"}), ({"snotlingi", "snotlingow",
                "snotlingom", "snotlingi", "snotlingami", "snotlingach"}), PL_MESKI_NOS_ZYW); 
         set_gender(G_MALE);
          
     set_skill(SS_DEFENCE, 20+random(5));
     set_skill(W_CLUB, 80+random(5));    
     set_skill(W_SWORD, 80+random(5));
     set_skill(W_KNIFE, 80+random(5));
     set_skill(SS_AWARENESS, 30+random(5));
     set_skill(SS_PARRY, 20+random(5));
     set_skill(SS_BLIND_COMBAT, 5+random(5));
         
     set_all_hitloc_unarmed(3); /* skora */     
     set_alignment(-10);    
     add_prop(CONT_I_HEIGHT, 70);
     add_prop(CONT_I_WEIGHT, 38000);
     
     set_stats(({40+random(5), 30+random(5), 30+random(5), 15, 15, 50+random(5) }));
     
     add_armour(zbroja);
     add_weapon(bron);    
     
     set_default_answer(VBFC_ME("odpowiedz_zazwyczaj"));
     add_prop(LIVE_I_NEVERKNOWN, 1);   
     add_prop(IMPERIUM_I_STWOR_CHAOSU, 1);
     

     set_act_time(10 + random(10));
     set_cchat_time(6);
        
     add_act("krzyknij E ty! Chciec sie bic?");
     add_act("powiedz Ty, twoja okazywac mi szacunek bo ja cie zniszczyc!");
     add_act("emote drapie sie po nosie.");
     add_act("emote niezdarnie wymachuje bronia tak, jakby wlasnie posylal oddzialy do bitwy.");
     add_act("emote warczy groznie.");
     add_act("krzyknij Ha ! Ha ! Do walki ! Bum bum!");
     add_act("powiedz Ja tu byc wodz. Ja miec wladza, a twoja byc nikt!");
     add_act("powiedz Twoja uwazac. Twoja musiec okazac mi szacunek!");
     
     add_cchat("Ty mnie atakowac! Ty zaraz zobaczyc!");
     add_cchat("Twoja zaraz zginac, bo ja miec kunszt wojskowa!");
     add_cchat("Gin gin gin gin! Hahaha!");
     add_cchat("Sluchaj, ja dzis nie czuc sie najlepiej... Moze ty szukac i atakowac kto inny?");
     add_cchat("Ty sluchac! Ja wiedziec o ukryta skarb! Jak ty mnie bic, to ze skarba nici!");
     add_cchat("Twoja bronic sie! Moja zaraz pokazac, kto tu rzadzic!");


    ustaw_whimpy(30, random(3), 1);
}

/* ta funkcja zostanie przebudowana i bedzie oddawac charakter snotlinga */

/* Hmm... jak na pol roku dzialania, to duzo zmian tutaj nie widze... Tanis ;-) */

string
odpowiedz_zazwyczaj() // Ja zmienie tyle, ze bedzie uwzglednia charakter
                      // snotlinga
   {
   object kto=this_player();
   
       if(charakter>80)
          {
                 command("zabij " + OB_NAME(kto));   
                 command("krzyknij Twoja byc zbyt ciekawa!!");
                 pomocy(); // Tak swoja droga, to niezle chamstwo ;-))
                 return "";
           }
       if(charakter<20)
          {
              command("krzyknij Abulbaganburubrum!");
              command("emote usmiecha sie idiotycznie.");
              return "";
          }
   
        command("'Moja nie byc pewna... Ty lepiej spytac kogos mniej zajety...");
        command("emote warczy groznie");
        return"";
   }
   
void
rob(object ob, string co)
{
  ob->command(co);
}

public void
wesprzyj_snotlinga(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 Rympf rympf!"); break;
            case 2: command("krzyknij Hahahahahahaiiii!"); break;
            case 3: command("krzyknij Paf paf!"); break;
            case 4: command("emote warczy z wsciekloscia."); break;
        }
        return ;
    }

    switch(random(5))
    {
        case 0: command("powiedz do "+OB_NAME(ob)+" Iiiii!"); break;
        case 1: command("powiedz do "+OB_NAME(ob)+" Co? Moja nie znizac sie do twoja poziom!"); break;
        case 2: command("powiedz do "+OB_NAME(ob)+" Hehehehehe...."); break;
        case 3: command("powiedz do "+OB_NAME(ob)+" Ty spadac! Ja planowac strategia!");
                                        break;
        case 4: command("powiedz do "+OB_NAME(ob)+" Moja nie miec dla ty czas!");
    }
}

public void
pomocy()
{
    (all_inventory(environment(this_object())) - ({ this_object() }))->wesprzyj_snotlinga(this_object());
}

void
attacked_by(object wrog)
{
    command("krzyknij Atakuja! Bic bic bic!!");
    set_alarm(0.1, 0.0, "pomocy");
    return ::attacked_by(wrog);
}