/* a: Mezon */
/* polana przy wodospadzie (Kraina Wodospadu) */
/* plik:  polana2.c   */

inherit "/d/Imperium/std/laka";
inherit "/lib/drink_water.c";
#include "mezon.h"
#define W_WODZIE "mezon_czy_gracz_w_wodzie"
#define JUZ_MOZE "mezon_gracz_juz_moze_"

int nurek(string str);
int jezioro(string str);
int wodospad(string str);
int wyszedl(string str);
int schlap(string str);
int babelki(string str);
int plusnij(string str);

init()
{
   add_action(nurek,"zanurkuj");
   add_action(nurek,"nurkuj");
   add_action(jezioro,"wejdz");
   add_action(wodospad,"przejdz");
   add_action(wyszedl,"wyjdz");
   add_action(babelki,"pusc");
   add_action(schlap,"schlap");
   add_action(schlap,"pochlap");
   add_action(plusnij,"plusnij");
   
   ::init();
   
   init_drink_water();
}

create_laka_room()
{
        set_short("Duza polana");
        set_long("Znalazles sie na duzej polanie, gdzie zauwazasz wodospad "+
                 "zwany przez niektorych 'Trollim Jeziorem'. Spada on z wysokiej "+
                 "grani pionowo w dol, a rozpryskujac sie tworzy wielobarwne "+
                 "luny swiatla. Jest to przepiekny widok, szczegolnie, ze woda "+
                 "tworzy na dole male jeziorko. Czujesz chlod bijacy od wody"+
                 ". Zauwazasz tez, "+
                 "iz teren ten jest skalisty, byc moze znajdujesz sie "+
                 "na przedgorzu jednego z masywow Gor Czarnych.\n");
                 
        add_item("wodospad",
                 "Wysoki, piekny wodospad zwany przez niektorych "+
                 "'Trolim Jezorem', Hmmm.. ciekawe czemu ...\n");
                 
        add_item(({"granie","gory","masyw"}),
                 "Wysoka gran, z ktorej spada dosc duzy wodospad. "+
                 "Obecnosc skal swiadczy o tym, ze znajdujesz sie na "+
                 "przedgorzu jakiegos tutejszego masywu, prawdopodobnie "+
                 "Gor Czarnych.\n");

        add_item(({"jeziorko","jezioro"}),
                 ("Niewielkie jeziorko, ktore zostalo utworzone przez "+
                 "wode splywajaca z grani. Jest krystalicznie czyste, "+
                 "ze az masz ochote wejsc do niego, lub napic sie tej "+
                 "kuszacej wody.\n"));

        add_exit(NPATH + "trakt/koniec.c", "wschod","@@go",1,0);
        add_exit(NPATH + "trakt/kraina8.c", "zachod","@@go",1,0);


        set_event_time(120.0, 280.0);
        add_event("Od strony wodospadu slychac dziwne dzwieki "+
                  "wydawane przez jakies zywe istoty...\n");
        set_events_on(1);

        set_drink_places("z jeziorka");
}

int
wodospad(string str)
{
   mixed przez_co=({"przez wodospad","przez lustro wodospadu"});
   
   if (member_array(str,przez_co)==-1) 
      return notify_fail("Przejdz przez co?\n");
   
   if (TP->query_prop(JUZ_MOZE))
      {
        if (TP->query_prop(W_WODZIE))
           {
             write("Wychodzisz z wody.\n");
             say(QCIMIE(TP,PL_MIA)+" wychodzi z wody.\n");
             TP->add_prop(LIVE_S_SOULEXTRA,"Ocieka woda");
             TP->remove_prop(W_WODZIE);
           }
        
        write("Przechodzisz przez iluzje lustra wodospadu.\n");
        TP->move_living("w kierunku wodospadu", NPATH + "jaskinie/jask1.c",1,0);

   seteuid("silvy");
   write_file("/d/Imperium/private/wodospad.log",
              ctime(time()) + ": " + TP->query_name() + "\n");

        TP->remove_prop(JUZ_MOZE);
        return 1;
      }
   else
      {
        write("Woda wydaje Ci sie tak zimna, ze jednak decydujesz sie "+
           "nie przeskakiwac przez sciane wody. Moze lepiej najpierw "+
           "oswoic sie z chlodna woda...\n");
        say(QCIMIE(TP,PL_MIA) + " zamierza sie do skoku przez sciane "+
           "wody spadajaca z grani, lecz w ostatniej chwili powstrzymuje "+
           "sie od tego czynu.\n");
        return 1;
       }

}

int
jezioro(string str)
{       
  mixed do_czego=({"do jeziorka","do jeziora","do wody"});
  
  if (member_array(str,do_czego)==-1) 
     return notify_fail("Gdzie chcesz wejsc?\n");
  
  if (!(TP->query_prop(W_WODZIE)))
     {
       write("Wchodzisz do chlodnej wody malego jeziorka, ach jakie wspaniale " +
       	   "uczucie! Czujesz sie duzo lepiej...\n");
       say(QCIMIE(this_player(),PL_MIA) + " wchodzi do chlodnej wody " +
           "jeziorka, orzezwiajac sie znacznie.\n");
        
        TP->add_prop(LIVE_S_SOULEXTRA,"kapie sie w jeziorku");
        TP->add_prop(W_WODZIE,1);
        TP->add_prop(JUZ_MOZE,1);
        
        return 1;
     }
  else
     {
        return notify_fail("Juz w" +TP->koncowka("szedles","eszlas")+
                    " do jeziorka!\n");
     }
}

int
wyszedl(string str)
{
   mixed skad=({"z jeziorka","z jeziora","z wody"});
   
   if (member_array(str,skad)==-1) 
      return notify_fail("Skad chcesz wyjsc?\n");

   if (TP->query_prop(W_WODZIE))
      {
          write("Rezygnujesz z dalszej kapieli, no nareszcie, bo woda jest " +
             "bardzo zimna.\n");
          say(QCIMIE(TP,PL_MIA) + " ociekajac woda wychodzi z jeziorka, " +
             "rezygnujac z dalszej kapieli.\n");
          
          TP->add_prop(LIVE_S_SOULEXTRA, "Ocieka woda");
          TP->remove_prop(W_WODZIE);
          
          return 1;
      }
   else
      {
        return notify_fail("Jak chcesz wyjsc z jeziorka, jesli tam nie " +
             TP->koncowka("wszedles","weszlas") + "?\n");
      }
}


int
schlap(string str)
{
   if (str!="sie woda") return notify_fail("Czym chcesz sie schlapac?\n");
   
   if (TP->query_prop(W_WODZIE))
      {
         write("Nabierasz wody w dlonie i chlapiesz naokolo. Ale fajna " +
            "zabawa!\n");
         say(QCIMIE(TP,PL_MIA) + " nabiera wody w dlonie i chlapie dookola. " +
            "Zachowuje sie jak male dziecko!\n");
         return 1;
      }
   else
      {
         return notify_fail("Moze najpierw wejdziesz do wody?\n");
      }
}
int
plusnij(string str)
{
   if (str!="woda") return notify_fail("Czym chcesz plusnac?\n");
   
   if (TP->query_prop(W_WODZIE))
      {
         write("Nabierasz wody w dlonie i chlapiesz naokolo. Ale fajna " +
            "zabawa!\n");
         say(QCIMIE(TP,PL_MIA) + " nabiera wody w dlonie i chlapie dookola. " +
            "Zachowuje sie jak male dziecko!\n");
         return 1;
      }
   else
      {
         return notify_fail("Moze najpierw wejdziesz do wody?\n");
      }
}

int
nurek(string str)
{
   mixed dokad=({"pod wode","w wode"});
   
   if (member_array(str,dokad)==-1) 
      return notify_fail("Zanurkuj gdzie?\n");
   
   if (TP->query_prop(W_WODZIE))
     {
       write("Nurkujesz na chwilke, chowajac sie pod wode. Zaraz jednak "+
           "wyplywasz, a z Twych uszu wylewa sie woda. Jakie to zabawne!!!\n");
     
       say(QCIMIE(TP,PL_MIA) + " nurkuje na chwilke pod wode, a gdy "+
           "sie wynurza z je" + TP->koncowka("go","j") + " uszu wylewa sie woda. "+
           "Jak to zabawnie wyglada!\n");
       return 1;
     }
   else
     {
       return notify_fail("Moze najpierw wejdziesz do wody?\n");
     }
}

int
babelki(string str)
{
   if (str!="babelki") return notify_fail("Co chcesz puscic?\n");
   
   if (TP->query_prop(W_WODZIE))
      {
        write("Zanurzasz swe usta w wodzie i dmuchasz z calych sil. Na "+
          "powierzchni wody pojawiaja sie smieszne babelki. " +
          "Ale frajda!\n");
        say(QCIMIE(TP,PL_MIA) + " zanurza swe usta w wodzie i dmucha z "+
          "calych sil. Na powierzchni wody pojawiaja sie smieszne babelki.\n");
        return 1;
      }
    else
      {
        return notify_fail("Moze najpierw wejdziesz do wody?\n");
      }
}

int
go()
{
   if (TP->query_prop(W_WODZIE))
      {
        TP->add_prop(LIVE_S_SOULEXTRA,"Ocieka woda");
        TP->remove_prop(W_WODZIE);
        write("Wychodzisz z wody.\n");
        say(QCIMIE(TP,PL_MIA) + " wychodzi z jeziorka.\n");
      }
   if (TP->query_prop(JUZ_MOZE))
      {
         TP-> remove_prop(JUZ_MOZE);
      }
   return 0;
}