/* pracownia - prawie koncowa wersja :)*/
/* autor : Quad */

#pragma stric_types
inherit "/d/Imperium/std/room";
#include </sys/stdproperties.h>
#include <macros.h>


#define OTOPOR "/d/Imperium/quad/topor.c"

int czy_topor=1; /* definuje zmienna, w ktorej bedzie przechowywana informacja
                  czy topor jest czy go nie ma :
                  1 - jest
                  0 - nie ma */

void
create_imperium_room()
{

        add_prop (ROOM_I_INSIDE, 1);
        add_prop (ROOM_I_LIGHT, 1);
        

        set_short("Obszerna, ponura jaskinia.");


        /* VBFC - zamiast opisu wstawiana nazwa funkcji 
          Funkcja zwraca stringa -opis lokacji... */
        
        set_long("@@dlugi_opis");        


       add_item
     ( ({"ogien","ognisko"}),
       "Nieduze ognisko, ktore plonie rownomiernym malym ogniem napelniajac jaskinie "+
       "przyjemnym cieplem i delikatnym zapachem dymu brzozowego. Jego ogien zdaje "+ 
       "sie tanczyc rzucajac na sciany cienie lezacych przedmiotow. \n");

        add_item (({"sciane","haki"}),"@@sp_topor");
           
        add_item (
      ({"barylke","beke"}),
        "Obszerna barylka nie ma w niej niczego. "+
        "kolumny pokryte precyzyjnie rzezbionymi runami. \n");



       add_item (
     ("otwor"),
       "Sredniej wielkosci otwor w kamiennej scianie sluzacy "+
       "jako wejscie do tego siedliska. Przez jego gorna czesc "+
       "wylatuje dym z ogniska od czasu do czasu wwiewany spowrotem "+ 
       "do wnetrza przez lekki wiatr. \n");       

       add_item (
     ("skory"),
       "Jest to sterta skor polozonch jedna na drugiej tworzac swoiste legowisko. \n");
       
       add_item (
     ({"butelki","puszki"}),
       "Walajace sie gdzieniegdzie butelki i puszki. W puszkach "+ 
       "dostrzegasz resztki zwierzecego tluszczu sluzacego zapewne "+ 
       "do stawiania wlosow w sztorc na czubku glowy. "+ 
       "W niektorych butelkach znajduje sie jeszcze jakis plyn..... \n");
 
              
    add_exit("/d/Arkadia/wiz/wizroom", ({"wyjscie", "do wyjscia"}), 0, 0);
    add_exit("/d/Imperium/quad/w_dol", ({"tunel", "do tunelu"}), 0, 0);
    set_event_time(10.0, 70.0);
    
    add_event("Trzask plonacego drewna, odbija sie echem od scian. \n");
    add_event("Wpadajace przez otwor swiatlo tworzy smugi przedzierajac sie przez rzadki dym. \n");
    add_event("Ogien odbija sie w lsniacym ostrzu topora. \n");
    add_event("Dym wpedzony spowrotem z podmuchem witru, mocno zaszczypal cie w oczy. \n");
    add_event("Kopnieta przez ciebie butelka przewrocila sie z brzekiem. \n");

    set_events_on(1);
}      


int
get_axe(string str)
{
object topor;

   /* ok to jest wypisywane jak nie jest spelniony warunek ponizej */
   notify_fail("Odczep co? Moze topor ze sciany?\n");
   if(!str && str != "topor ze sciany") 
      return 0;
  
   /* sprawdza czy topor jest na scianie [czyli czy zmienna <czy_topor> jest
      rowna 1. Jezeli jest rozna od 1 to zwraca 0 i wyswietlany jest komunikat : 
    */
   notify_fail("Na scianie nie ma topora!\n");
   if(czy_topor != 1)
      return 0;
   
   topor = clone_object(OTOPOR); 
   topor->move(this_player(),1);
   
   write("Bierzesz topor ze sciany. \n");
   say(QCIMIE(this_player(),PL_MIA) + " zdejmuje topor ze sciany.\n");
   czy_topor=0;
   return 1;
  
   }   
   
/* dodaje komende 'odczep' sluzaca do zdjecia topora */
void
init()
{ 
   ::init();
   add_action("get_axe","odczep"); 
}


/* funkcja zwracajaca dlugi opis lokacji */
string
dlugi_opis()
{
    string str;

    /* najpierw standardowy opis */
     str = "Znajdujesz sie w obszernej jaskini, "+
           "nie dostrzegasz zbyt wielu rzeczy gdyz panuje tu swoisty polmrok. "+
           "Przez otwor w scianie wpadaja nieliczne smuzki swiatla. "+
           "Na srodku pali sie ognisko, plomienie rozswietlaja lekkko jaskinie "+
           "a trzaski palacego sie drewna czynia dosyc przyjazna atmosfere. "+
           "Dym unosi sie w powietrzu lekko szczypiac w oczy o drazniac twoj wech. "+
           "W nieladzie lezy pod sciana sterta skor sluzaca zapewne za poslanie. "+
           "Pod sciana dostrzegasz mase roznyech przedmiotow - porozrzucane w "+ 
           "nieladzie butelki, puszki. Twoj wzrok przyciaga ogromna barylka "+ 
           "stojaca w kacie."; 

    /* a teraz dodajemy dodatkowy opis jezeli topor jest na scianie, czyli 
       zmienna czy_topor jest rowna 1 */

    if(czy_topor == 1)
       str += " Na scianie wisi poteznych rozmiarow runiczny topor "+
               "o dwoch lsniacych ostrzach, odbijajac blask plomieni.";
 
    /* dodaje znak przejscia do nastepnej linii */
    str += "\n";
  

    /* zwraca dlugi opis zmodyfikowany w zaleznosci od tego czy topor jest
       czy go nie ma */
    return str;
}
    /* funkcja zwraca opisy itema po i przed sciagnieciem topora ze sciany */
string
sp_topor()
{
    string str;

    /* najpierw standardowy opis */
     str = "Na skalnej scianie znajduja sie male wglebienia z ktorych "+
       "wystaja haki przystosowane do wieszania topora. "; 

    /* a teraz dodajemy dodatkowy opis jezeli topor jest na scianie, czyli 
       zmienna czy_topor jest rowna 1 */

    if(czy_topor == 1)
      str += "Obecnie na hakach zawieszony jest oblrzymi obosieczny "+
        "topor o lsniacych ostrzach, odbijajac blask plomieni. "+
	"Runy na toporze migocza, swoistym czerwonym swiatlem. ";
 
    /* dodaje znak przejscia do nastepnej linii */
    str += "\n";
        

    /* zwraca dlugi opis zmodyfikowany w zaleznosci od tego czy topor jest
       czy go nie ma */
    return str;
}

