
/* snotling */
/* Vaktoth & Czucz 1998 */

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 ({({"dziecinny", "dziecinni"}), ({"siakajacy", "siakajacy"}), \
        ({"czarnooki", "czarnoocy"}), ({"bezzebny", "bezzebni"}), \
        ({"glupkowaty", "glupkowaci"}), ({"zwinny", "zwinni"}), ({"usmiechniety", "usmiechniety"})})

#define IZBROJE ({"koszulka.c","kamizela.c","helmik.c"})
#define IBRONIE ({"zardzewialy_noz.c","noga_stolowa.c","kuchenny_noz.c","drewniana_palka.c"})
#define LICZBA_KOMBINACJI_ZBROI 3
#define LICZBA_KOMBINACJI_BRONI 4
#define LICZBA_PRZYMIOTNIKOW 7

#define PEN_SPECJALA 1*random(query_stat(SS_STR))
#include "/d/Imperium/funkcje/specjal1.c"

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);
     
     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_random_move(25);

         set_long("Przed toba stoi " + opis1 + " " + opis2 + " snotling." +
                  " Stworki te zazwyczaj sluza swym wiekszym kuzynom - orkom i" +
                      " goblinom. Zielona skora, niewielki wzrost, rozbiegane oczy" +
                      " i niepowstrzymany entuzjazm - oto cechy charakteryzujace te" +
              " bestyjki. Snotlingi zazwyczaj chodza w parach ale poniewaz" +
              " niezbyt dobrze licza pary te czesto licza kilkanascie sztuk." +
              " Pojedynczy snotling nie stanowi wiekszego zagrozenia dla nikogo" +
              ", jednak w 'parach' potrafia byc wyzwaniem nawet dla najbardziej" +
              " doswiadczonych podroznikow.\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, 60);
     set_skill(W_KNIFE, 70);    
     set_skill(W_CLUB, 70);
     set_skill(SS_PARRY, 70);
         
     set_all_hitloc_unarmed(2); /* skora */     
     set_alignment(-10);    
     add_prop(CONT_I_HEIGHT, 50 + random(30));
     add_prop(CONT_I_WEIGHT, 5000 + random(1000));
     add_prop(LIVE_I_NEVERKNOWN,1);
     
     add_armour(zbroja);
     add_weapon(bron);    
     
      set_default_answer(VBFC_ME("odpowiedz_zazwyczaj"));
      add_prop(LIVE_I_NEVERKNOWN, 1);   

    set_stats(({100 + random(55), 100 + random(20), 100 + random(50), 250, 250, 20 }));
        
        set_chat_time(30 + random(15));
        set_act_time(20 + random(10));
        set_cchat_time(6);
        

        add_chat("Ty, duzy!! Masz moze cos jesc?");
        add_chat("Co masz w plecak??");
        add_chat("Takie trzy jak nas dwa to nie ma ani jeden!");
        add_chat("Ty lubic zdechle szczury? Mniam, mniam.");

        
        add_act("emote imituje przez moment twoje ruchy z wielka dokladnoscia.");
        add_act("emote stara sie zajrzec do twoich kieszeni.");
        add_act("emote uczepil sie paska w twoich spodniach i wisial na nim przez chwile.");
        add_act("emote przyglada ci sie z nieukrywanym zachwytem.");
        add_act("emote placze ci sie pod nogami, starajac sie wywrocic cie za wszelka cene.");
        add_act("emote dlubie sobie w nosie, starajac sie cos z niego wydobyc. Pomaga w tym sobie " +
              "sporej wielkosci drewniana lyzka.");

        add_cchat("Wheeeee! Czy ty jestes jadalny czy nie?");
        add_cchat("Bo zaraz zawolam moich " + bracia + " braci!!!");
        add_cchat("Ty byc zly! Ja i inni bic zlych! Czyli ja bic ciebie!");
        add_cchat("Moj kumpel byc tu szef i on ci pokazac, ty paskudny!");

    ustaw_whimpy(50, random(3));
set_aggressive(1);
}

/* ta funkcja zostanie przebudowana i bedzie oddawac charakter snotlinga */

string
odpowiedz_zazwyczaj()
   {
   command("'Ja nic o tym nie wiedziec i moi bracia tez nie!");
   return"";
   }

int
czy_ork(object ob)
{
  return  (ob->query_rasa()=="snotling");
}


object*
query_orki()
{
  object ob=environment(this_object());
  object *lista;
  
  if (!ob)
    return 0;
  lista = all_inventory(ob);
  lista -= ({this_object()});
  lista = filter(lista, czy_ork);
  return lista;
}

void
rob(object ob, string co)
{
  ob->command(co);
}

public void
wesprzyj(object ob)
{
    if (query_attack())
    {
/*
        switch(random(3))
        {
            case 0: command("krzyknij Ojojoj!"); break;
            case 1: command("krzyknij Rany!"); break;
            case 2: command("krzyknij Yyyyyyy!"); break;
        }
*/        
        return ;
    }
    
    command("wesprzyj " + OB_NAME(ob));
    
    if (query_attack())
    {
        switch(random(5))
        {
            case 0: command("krzyknij Do boju!"); break;
            case 1: command("krzyknij Waaaaaa!"); break;
            case 2: command("krzyknij Iiiiiiiii!"); break;
            case 3: command("krzyknij Hurrrrrra!"); break;
            case 4: command("krzyknij Lubu dubu!!"); break;
        }
        return ;
    }

    switch(random(5))
    {
        case 0: command("powiedz do "+OB_NAME(ob)+" Ze niby ja??"); break;
        case 1: command("powiedz do "+OB_NAME(ob)+" A kto ty byc dla mnie?."); break;
        case 2: command("powiedz do "+OB_NAME(ob)+" No no no!"); break;
        case 3: command("powiedz do "+OB_NAME(ob)+" Ja? Nie, ja nie!");
                                        break;
        case 4: command("powiedz do "+OB_NAME(ob)+" Ratunku!");
    }
}

public void
pomocy()
{
    (all_inventory(environment(this_object())) - ({ this_object() }))->wesprzyj(this_object());
}

void
attacked_by(object wrog)
{
    command("krzyknij Pomocy, Bija!!");
    set_alarm(0.1, 0.0, "pomocy");
    return ::attacked_by(wrog);
}

    
