/* snotling */
/* Vaktoth & Czucz 1998 */

/*
 * Generalny 'remont' dla Pustkowi by Tanis
 *  grudzien '98
 */

inherit "/d/Imperium/std/monster";

#include "defs.h"
#include <stdproperties.h>
#include <macros.h>
#include <ss_types.h>
#include <wa_types.h>

#define PRZYMIOTNIKI ({({"maly", "mali"}), ({"niski", "niscy"}), \
            ({"chudy", "chudzi"}), ({"krepy", "krepi"}), \
        ({"ciemnozielony", "ciemnozeleni"}), ({"kedzierzawowlosy", "kedzierzawowlosi"}), ({"dlugonosy", "dlugonosi"})})
#define PRZYMIOTNIKI2 ({({"glupawy", "glupawi"}), ({"obsliniony", "obslinieni"}), \
        ({"zoltooki", "zoltoocy"}), ({"spocony", "spoceni"}), \
        ({"smierdzacy", "smierdzacy"}), ({"cuchnacy", "cuchnacy"}), ({"brudny", "brudni"})})

#define IZBROJE ({"s_koszulka.c","s_kamizela.c","s_helm.c"})
#define IBRONIE ({"s_noz.c","s_miecz.c","s_nozyk.c","s_palka.c"})

#define LICZBA_KOMBINACJI_ZBROI 3
#define LICZBA_KOMBINACJI_BRONI 4
#define LICZBA_PRZYMIOTNIKOW 7

#define PEN_SPECJALA 50
#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, bracia;
     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);

     bracia = 100 + random(100);
     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("Przed toba stoi " + opis1 + " " + opis2 + " snotling." +
              " Widok ten nie nalezy do najprzyjemniejszych, gdyz choc snotlingi" +
              " do najczystszych nie naleza, ten tutaj wydaje sie byc jakims rekordzista." +
              " Samo przebywanie w jego okolicy wywoluje w tobie obrzydzenie," +
              " a co dopiero mozliwosc dotkniecia takiego stwora. Wyglada dosc niepozornie" +
              " i choc sprawia wrazenie, jakby przywykl do tych niezwykle trudnych warunkow," +
              " to pojedynczo nie jest prawdziwym wyzwaniem. Co innego z kilkoma kumplami, zdolni" +
              " sa wtedy do najbardziej nawet bezczelnych przedsiewziec, wlacznie z zaatakowaniem ciebie !\n");

         ustaw_odmiane_rasy(({"snotling", "snotlinga", "snotlingowi", "snotlinga",
                "snotlingiem", "snotlingu"}), ({"snotlingi", "snotlingow",
                "snotlingom", "snotlingi", "snotlingami", "snotlingach"}), PL_MESKI_NOS_ZYW); 
         set_gender(G_MALE);
          
          // W porownaniu do Kreutzhofenskich zwiekszylem kazda wartosc base o 5 i random o 5
          
     set_skill(SS_DEFENCE, 5 + random(25));
     set_skill(W_KNIFE, 25 + random(15));    
     set_skill(W_CLUB, 25 + random(15));
     set_skill(W_KNIFE, 25 + random(15));
     set_skill(SS_PARRY, 5 + random(20));
         
     set_all_hitloc_unarmed(2); /* skora */     
     set_alignment(-20);    
     add_prop(CONT_I_HEIGHT, 50 + random(30));
     add_prop(CONT_I_WEIGHT, 5000 + random(1000));
     add_prop(LIVE_I_NEVERKNOWN,1);
     add_prop(IMPERIUM_I_STWOR_CHAOSU, 1);
     
     add_armour(zbroja);
     add_weapon(bron);    
     
      set_default_answer(VBFC_ME("odpowiedz_zazwyczaj"));

     // Tutaj kazdego randoma powiekszylem o 5. Base zostawilem w spokoju ;-)

      set_stats(({10 + random(10), 30 + random(25), 10 + random(15), 20, 15, 45 }));
        
        set_chat_time(40 + random(15));
        set_act_time(30 + random(10));
        set_cchat_time(12);
        
        add_chat("Ty, duzy!! Czego tu szukac!?");
        add_chat("Ty spadac, bo ja cie nie lubic!");
        add_chat("Takie trzy jak nas dwa to nie ma ani jeden!"); // To jest takie fajne, ze nie bede cial ;-)
        add_chat("Ja miec kawalek szczura! Ale sie nie podzielic! Ty szukac sobie swojego!");

        add_cchat("Ty sie dac zjesc, ty zalowac jak ja z toba skonczyc!");
        add_cchat("Ja zaraz isc po moich " + bracia + " braci i ty wtedy zobaczyc!!!");
        add_cchat("Ty zginac jak ja zawolac braci! Ty miec duzy problem!");
        add_cchat("Ja znac szef, on duzy brat i on ci pokazac!");

    ustaw_whimpy(50, 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 Ty nie zadawac glupich pytan!!");
                 pomocy(); // Tak swoja droga, to niezle chamstwo ;-))
                 return "";
           }
       if(charakter<20)
          {
              command("krzyknij Bueblebleudublekf !");
              command("emote usmiecha sie wyjatkowo glupawo.");
              return "";
          }
   
        command("'Ja nie wiedziec... moi bracie nie wiedziec tez ! Ty nie zawracac moja glowa, bo ty pozalowac !");
        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 Pozalujesz!"); break;
            case 1: command("krzyknij Waaaaa!"); break;
            case 2: command("krzyknij Bum bum bum!"); break;
            case 3: command("krzyknij A masz a masz a masz!!"); break;
            case 4: command("krzyknij Rympf!"); break;
        }
        return ;
    }

    switch(random(5))
    {
        case 0: command("powiedz do "+OB_NAME(ob)+" Eeeeee??"); break;
        case 1: command("powiedz do "+OB_NAME(ob)+" Ty chyba sobie zartowac!"); break;
        case 2: command("powiedz do "+OB_NAME(ob)+" Nie, on, ja nie, on!"); break;
        case 3: command("powiedz do "+OB_NAME(ob)+" Ty byc glupi, bo ja miec wiecej szczura!");
                                        break;
        case 4: command("powiedz do "+OB_NAME(ob)+" Pomocy!");
    }
}

public void
pomocy()
{
    (all_inventory(environment(this_object())) - ({ this_object() }))->wesprzyj_snotlinga(this_object());
}

void
attacked_by(object wrog)
{
    command("krzyknij Pomocy, Bija!!");
    set_alarm(0.1, 0.0, "pomocy");
    return ::attacked_by(wrog);
}