/*
 * Dziewczynka z Athel Loren by Tanis
 */

#include "ogolne.h"

inherit "d/Imperium/std/monster.c";

#include "lelf.h"

#define PRZYMIOTNIKI ({ ({"blady","bladzi"}), ({"opalony","opaleni"}), ({"opalony","opaleni"}), \
                        ({"piekny","piekni"}), ({"przepiekny","przepiekni"}), ({"urodziwy","urodziwi"}), \
                        ({"jasnowlosy","jasnowlosi"}), ({"ciemnowlosy","ciemnowlosi"}), ({"dlugowlosy","dlugowlosi"}), \
                        ({"smutny","smutni"}), ({"wesoly","weseli"}), ({"rozbawiony","rozbawieni"}) })

#define LICZBA_PRZYMIOTNIKOW 12

#define WIELKOSCI ({ ({"maly","mali"}), ({"duzy","duzi"}) })

#define LICZBA_WIELKOSCI 2

int wielkosc=0;

void
zapisz(string co, object wrog)
{
  string str;

  str = "Npc: Dziewczynka, Wrog: " + capitalize(wrog->query_real_name()) + ". " + co + " " + ctime(time()) + "\n";

  write_file(PATH + "npc/walka.log",str);
}

string
dlugi_opis()
{
    string s;

    switch(wielkosc)
      {
          case 0 : s = "Jest to mala, elfia dziewczynka. Ubrana jest w lekka, kolorowa sukieneczke, "
                     + "a na glowie ma wianek z kwiatow. Nosi tez miniaturke korali, jakie z pewnoscia "
                     + "nosi jej mama. Jest sama, lecz z pewnoscia gdzies w poblizu jest jeden z rodzicow, "
                     + "w kazdej chwili mogacy przyjsc jej z pomoca. Zreszta co mogloby spotkac elfie dziecko w elfim miescie ? "
                     + "Dziewczynka wyglada na zadbana i dobrze odzywiona.\n";
                   break;

          default : s = "Jest to duza, elfia dziewczyna. Wlasciwie prawie dorosla elfka. Jest mloda, ale "
                      + "jej ksztalty sa juz dosc bujne, co sprawia ze zaczynaja sie juz za nia ogladac inne elfy. "
                      + "Nosi proste, skorzane ubranie, bardziej pasujace do mlodego mysliwego niz dziewczyny. "
                      + "Sprawia wrazenie, ze wie, do czego sluzy miecz i luk, i ze nie obce jej sa polowania "
                      + "na lesna zwierzyne. Za to we wlosy ma wplecione lese kwiaty, nieco psujace obraz mlodego "
                      + "lesniczego, za to dodajace jej uroku jako dziewczynie.\n";
                   break;
      }

    return s;
}

void
create_monster()
{
    int i,j;
    
    jak_pojawiac_sie(" nadchodzi.");
    jak_znikac(" odchodzi niespiesznie.");
    jak_znikac_podczas_walki(" ucieka przerazona.");

        ustaw_nazwe(({"dziewczynka", "dziewczynki", "dziewczynce", "dziewczynke", "dziewczynka", "dziewczynce"}),
                       ({"dziewczynki", "dziewczynek", "dziewczynkom", "dziewczynki", "dziewczynkami",
                       "dziewczynkach"}), PL_ZENSKI);

    set_gender(G_FEMALE);

    ustaw_odmiane_rasy(({"elfia dziewczynka", "elfiej dziewczynki", "elfiej dziewczynce", "elfia dziewczynke", "elfia dziewczynka", "elfiej dziewczynce"}),
                       ({"elfie dziewczynki", "elfich dziewczynek", "elfim dziewczynkom", "elfie dziewczynki", "elfimi dziewczynkami",
                       "elfich dziewczynkach"}), PL_ZENSKI);

    set_race_name("");

    wielkosc=random(LICZBA_WIELKOSCI);

    add_prop(LIVE_I_NEVERKNOWN,1);

    i = random(LICZBA_PRZYMIOTNIKOW);
    j = random(LICZBA_PRZYMIOTNIKOW);
    while(!(j>(i+2) || j<(i-2)) ) j = random(LICZBA_PRZYMIOTNIKOW);
   
    dodaj_przym(PRZYMIOTNIKI[i][0], PRZYMIOTNIKI[i][1]);
    
    if(random(1))
      {
        dodaj_przym(PRZYMIOTNIKI[j][0], PRZYMIOTNIKI[j][1]);
      }
    else
      {
        dodaj_przym(WIELKOSCI[wielkosc][0], WIELKOSCI[wielkosc][1]);
      }
    
    set_random_move(23,0); 

    set_long("@@dlugi_opis");

    switch(wielkosc)
        {
           case 0 : set_stats(({15,15,15,15,15,15}));
                      set_skill(SS_PARRY,2);
                      set_skill(SS_DEFENCE, 10 + random(5));

                    add_prop(CONT_I_WEIGHT, 27000);
                    add_prop(CONT_I_HEIGHT, 100);
        
                    set_cact_time(4);
                    add_cact("krzyknij Aaaaaa !");
                    add_cact("emote krzyczy przerazliwie !");
                    add_cact("krzyknij Mamo !!!");
                    add_cact("emote krzyczy piskliwie !");

                    set_act_time(10 + random(20));
                    add_act("emote oglada drzewa.");
                    add_act("emote rozglada sie ciekawsko wokolo.");
                    add_act("emote przyglada ci sie.");

                    set_whimpy(100); 
                    dodaj_miedz(5+random(5));

                      break;

           default : set_stats(({30,55,25,50,50,20}));
                    set_skill(SS_PARRY,10);
                    set_skill(SS_WEP_KNIFE, 15 + random(15));
                    set_skill(SS_DEFENCE, 15 + random(10));

                    add_prop(CONT_I_WEIGHT, 56000);
                    add_prop(CONT_I_HEIGHT, 180);
        
                    set_cact_time(4);
                    add_cact("krzyknij Pomocy !!");
                    add_cact("emote wola: Niech ktos mi pomoze !");
                    add_cact("krzyknij Straz ! Straz !");
                    add_cact("krzyknij Pomocy !");

                    set_act_time(10 + random(20));
                    add_act("emote spoglada na drzewa, a w jej oczach dostrzegasz milosc...");
                    add_act("emote rozglada sie wokolo.");        
                    add_act("emote przyglada ci sie z milym usmiechem.");
                    add_act("emote z roztargnieniem spoglada wokolo.");
                    add_act("emote podnosi glowe i przez chwile podziwia niebo.");
                    set_whimpy(90); 
                    dodaj_miedz(30+random(25));

                      break;
        }

        add_prop(IMPERIUM_LIVE_I_ATHEL_CITIZEN, 1);

    set_alignment(450);

}

void
init_living()
{
    object *tablica;
    int a, czy_wezwal=0;
    object kto_mnie_bije;

    ::init_living();

    if(!query_attack()) return;

    kto_mnie_bije=query_attack();
    
    tablica=all_inventory(environment(this_object()));
    tablica=tablica-({this_object()});

    for(a=0;a<sizeof(tablica);a++)
       {
          if(function_exists("create_elfa", tablica[a]) && !tablica[a]->query_prop(OBJ_M_NO_ATTACK))
            {
               tablica[a]->pobij_go(kto_mnie_bije);
               czy_wezwal=1;
               zapisz("Wezwalem pomoc (" + tablica[a]->query_real_name()+ ").",kto_mnie_bije);
            }
       }
    if(czy_wezwal)
       command("emote wola: Pomocy !!");

    return;
}

void
attacked_by(object ob)
{
    object lucznicy;
    object *tablica;
    int czy_wezwal=0;
    int i,a,czy_byli;

    i=random(6);

    switch(i)
     {
       case 0:
                command("krzyknij Pomocy !");
                break;
       case 1:
                command("krzyknij Ratujcie !");
                break;
       case 2:
                command("krzyknij Ratunku !");
                break;
       case 3:
                command("krzyknij Aaaaaa ! Morduja !");
                break;
       case 4:
                command("krzyknij Aaa ! Bija !");
                break;
       case 5:
                command("krzyknij Na pomoc !");
                break;
      default:
                command("krzyknij Pomocy !");
                break;
     }

 czy_byli=0;

 tablica=deep_inventory(ob);

 for(a=0;a<sizeof(tablica);a++)
    {
       if(tablica[a]->id("lucznicy"))
          {
            czy_byli=1;
          }
    }

   if(!czy_byli)
     {
       lucznicy = clone_object(PATH + "obiekty/lucznicy.c");
       lucznicy->move(ob);
       lucznicy->zacznij_strzelac();
       zapisz("Wlaczono lucznikow.",ob);
     }

     this_player()->add_prop(PLAYER_JEST_OSTRZELIWANY_W_ATHEL,1);

    tablica=all_inventory(environment(this_object()));
    tablica=tablica-({this_object()});

    for(a=0;a<sizeof(tablica);a++)
       {
          if(function_exists("create_elfa", tablica[a]) && !tablica[a]->query_prop(OBJ_M_NO_ATTACK))
            {
               tablica[a]->pobij_go(ob);
               czy_wezwal=1;
               zapisz("Wezwalem pomoc (" + tablica[a]->query_name()+ ").",ob);
            }
       }
    if(czy_wezwal)
       command("emote wola: Ratujcie mnie !!");

    ::attacked_by(ob);
}

void
do_die(object ob)
{
  if(this_object()->query_hp()==0)
  {
    if ((GILDIA)->query_prawa(ob->query_real_name())>=LEV_CZLONEK)
    {
        (GILDIA)->wyrzuc_z_gildii(ob,ZABIL_NPCA);
    }
    zapisz("Zginalem.",ob);
  }
    ::do_die(ob);
}

void
notify_you_killed_me(object kogo_zabilem)
{
    //::notify_you_killed_me(kogo_zabilem);
	
	zapisz("Zabilem lobuza!",kogo_zabilem);
	
}