/*
 * Glowny obiekt pustkowi chaosu
 * by Tanis - sierpien 1998
 *
 * Uwaga ! Wszelkie opisy nie moga konczyc sie \n, zamiast tego musza konczyc sie spacja !
 */
 
#include <pl.h>
#include <stdproperties.h>
#include <macros.h>
#include <ss_types.h>

inherit "/d/Imperium/Pustkowia/std/pogoda.c";
inherit "/d/Imperium/std/room.c";
inherit "/d/Imperium/std/maper/m_lokacja.c";

inherit "/lib/drink_water";     /* Funkcje obslugujace picie wody. */

#include "local.h"

int
query_typ_terenu()
{
  return ((MAPER)->query_dane(1,zwroc_numer_lokacji()))[1];
}

void
dodaj_stworki(int typ_terenu)
{

  if(!random(50)) dodaj_npca(NPATH + "troll.c");
 
  if(typ_terenu==1)
    {
    if(!random(20))
      {
      // Banda snotlingow
        dodaj_npca(NPATH + "snotwodz.c");
        dodaj_npca(NPATH + "snotling.c");   
        dodaj_npca(NPATH + "snotling.c");   
        if(!random(2)) dodaj_npca(NPATH + "snotling.c");   
        if(!random(2)) dodaj_npca(NPATH + "snotling.c");   
        if(!random(2)) dodaj_npca(NPATH + "snotling.c");   
        if(!random(2)) dodaj_npca(NPATH + "snotling.c");   
        if(!random(2)) dodaj_npca(NPATH + "snotling.c");   
        if(!random(2)) dodaj_npca(NPATH + "snotling.c");   
      }
    }         
    else
    {
      switch(random(200))
      {
        case 0:
        dodaj_npca(NPATH + "zwczlek1.c");
        case 1:
        dodaj_npca(NPATH + "zwczlek2.c");
        case 2:
        dodaj_npca(NPATH + "zwczlek3.c");
        case 3:
        dodaj_npca(NPATH + "zwczlek4.c");
        case 4:
        dodaj_npca(NPATH + "zwczlek5.c");
        case 5:
        dodaj_npca(NPATH + "zwczlek6.c");
        case 6:
        dodaj_npca(NPATH + "zwczlek7.c");
        case 7:
        dodaj_npca(NPATH + "zwczlek8.c");
        case 8:
        dodaj_npca(NPATH + "zwczlek9.c");
        case 9:
        dodaj_npca(NPATH + "zwczlek10.c");
        case 10:
        dodaj_npca(NPATH + "zwczlek_gig.c");
      }      
    }  
         
  return;

}

/* Opis towarzyszacy piciu wody. */

void
drink_effect(string str)
{
    write("Podchodzisz do samego brzegu rzeki, przyklekasz i pijesz z niej odrobine wody.\n");
    say(QCIMIE(this_player(), PL_MIA) + " podchodzi do samego brzegu rzeki, przykleka i pije z niej lyk wody.\n");
}
                              
void
ustaw_itemy_standardowe(int typ)
{
    switch(typ)
     {
        case  1 : add_item("ziemie","Pod nogami masz szary piasek, a wlasciwie pyl. Kroczac po nim wzbijasz chmury kurzu, osiadajacego na wszystkim wokol.\n");
                  break;
        case  2 : add_item("ziemie","Ziemia pod twymi stopami jest prawie gola, gdzieniegdzie tylko porosnieta malymi, zasuszonymi kepkami trawy.\n");
                  add_item(({"wzgorza","wzniesienia"}),"Otaczajace cie wzgorza wygladaja jak ziemia pod twoimi nogami - sa szare i smutne.\n");
                  break;
        case  3 : add_item("ziemie","Ziemia pod twymi stopami jest prawie gola, gdzieniegdzie tylko porosnieta malymi, zasuszonymi kepkami trawy.\n");
                  break;
                  add_item(({"wzgorza","wzniesienia"}),"Otaczajace cie wzgorza wygladaja jak ziemia pod twoimi nogami - sa szare i smutne.\n");                  
        case  4 : add_item("ziemie","Stoisz na twardym, skalistym gruncie. Lezy tu mnostwo roznej wielkosci kamieni, o ktore potknac sie nie trudno.\n");
                  add_item(({"skaly","kamienie"}),"Otaczajace cie skaly maja tak ostre krawedzie, ze moga bez trudu rozciac skorzana kurtke, a tym bardziej twoja skore.\n");
                  break;
        case  5 : add_item("ziemie","Stoisz na twardym, skalistym gruncie. Lezy tu mnostwo roznej wielkosci kamieni, o ktore potknac sie nie trudno.\n");
                  add_item(({"skaly","kamienie"}),"Otaczajace cie skaly maja tak ostre krawedzie, ze moga bez trudu rozciac skorzana kurtke, a tym bardziej twoja skore.\n");        
                  break;
        case  6 : add_item("ziemie","Pod stopami masz szary, sypki piasek. Wlasciwie niczym nie rozni sie od pylu pokrywajacego rownine poza tym, ze kilka krokow stad jest regularnie moczony przez morskie fale.\n");
                  add_item(({"morze","ocean"}),"Spogladajac na morze masz wrazenie, ze ciagnie sie ono bez konca. Az po horyzont nie udaje ci si dostrzec ani sladu jakiegos ladu.\n");
                  break;
        case  7 : add_item("ziemie","Grunt pod twymi nogami jest skalisty, jakby tylko czekal, az z urwiska na gorze spadnie ktos nierozsadny i roztrzaska sie tu na miazge.\n");
                  add_item("urwisko","Aby spojrzec na urwisko musisz zadrzec glowe. Ciagnie sie ono pionowo w gore na kilkanascie metrow.\n");
                  break;
        case  8 : add_item("ziemie","Stoisz na skalach, ktore nieco dalej koncza sie, jakby uciete nozem. Jeden nieostrozny krok i roztrzaskasz sie na skalach na dole...\n");
                  add_item("urwisko","Aby zerknac na urwisko trzeba by wychylic sie znad krawedzi, a na to sie nie odwazysz...\n");
                  break;
        case  9 : add_item("ziemie","Stoisz na trwawie. Nie jest moze specjalnie zielona ani bujna, ale po wielu, wielu godzinach na suchej rowninie wydawac by sie moglo, ze stoisz na zielonej lace.\n");
                  add_item("rzeke","Rzeka jest kilka krokow stad. Wydaje ci sie, ze ozesz sie z niej napic.\n");
                  break;
        case 10 : add_item("ziemie","Pod nogami masz brudne, smierdzace bloto. Ugina sie pod toba tak, ze masz nieprzyjemne wrazenie, ze za ktoryms krokiem trzesawisko cie pochlonie.\n");
                  break;
        case 11 : add_item("ziemie","Grunt wokol jest taki jak na rowninie - suchy i piaszczysty. Jedynym urozmaiceniem sa lezace tu i owdzie niewielkie kamienie o ostrych krawedziach.\n");
                  add_item("kamienie","Kamienie zupelnie tutaj nie pasuja, jakby ktos umyslnie je tu porozrzucal, ale urozmaicaja nieco krajobraz.\n");
                  add_item("gory","Otaczajace cie gory wygladaja, jakby pastwily sie nad ta dolinka samym swym wygladem. Cujesz, ze przytlaczaja cie swym ogromem.\n");
                  break;
        case 12 : add_item("ziemie","Stoisz na piachu, prawie takim jak wszedzie wokol. Jednya roznica jest fakt, ze tutaj z poludniowego zachodu na polnocny wschod biegnie jakis trakt.\n");
                  add_item(({"trakt","droge"}),"Droga biegnaca z poludniowego zachodu na polnocny wschod wydaje sie nie miec konca.\n");
                  break;
        case 13 : add_item("ziemie","Pod nogami masz sucha, szara ziemie, przypominajaca ta na rownine otaczajacej las. Jedyna roznica jest fakt, iz tutaj walaja sie zasuszone galezie drzew i stare, karlowate liscie.\n");
                  add_item(({"las","drzewa","drzewo","pnie","pnie"}),"Otaczaja cie male, karlowate drzewa. Sa tak poskrecane, ze ydaje ci sie, ze to jakas potezna sila powyginala je swa magia.\n");
                  break;
      }
}

void
wlacz_dodatki()
{
    ustaw_itemy_standardowe(query_typ_terenu()); 
    dodaj_stworki(query_typ_terenu());
}

void
create_rownina()
{
} 

string
dlugi_opis()
{
  return (opis_pogody() + " " + long_opis()); 
}

void
create_imperium_room()
{   
    wlacz_mapera(MAPER);

    add_prop(ROOM_I_INSIDE, 0); 
    add_prop(ROOM_I_LIGHT, 1); 
 
    set_event_time(50.0, 200.0); 

    add_event("Z ciemnosci dobiega cie cichy szelest.\n",2);
     
    set_events_on(1);

    create_rownina();

    reset_imperium_room();
} 

int
init()
{
  ::init();
 
  init_zglos();
  init_mapa();
  
  if(query_typ_terenu()==9) init_drink_water();                 /* Dodaje komende 'napij sie'. */
}

void leave_inv(object ob, object to)
{
    ::leave_inv(ob,to);
    opuszcza_inv(ob,to);
}