
/*            
 *  PSHODDY PROUDLY PRESENTS:
 *  barylke
 *  do ktorej mozna nalewac wino, 
 *  napisana do questa
 *
 */

inherit "/std/object.c";

#include <stdproperties.h>
#include <macros.h>

int wino;                   // ilosc wina w barylce

 create_object()
     {
         set_long("@@dlugi_opis");

         ustaw_nazwe( ({"barylka", "barylki", "barylce", "barylke", "barylka",
                        "barylce"}), ({"barylki", "barylek", "barylkom", 
                        "barylki", "barylkami", "barylkach"}), PL_ZENSKI );
    
         dodaj_przym("pekaty", "pekaci");  
     
         wino = 0;         // ustawiamy poczatkowa ilosc wina na 0 litr.
             
         add_prop(CONT_I_MAX_WEIGHT, 8000);
         add_prop(CONT_I_MAX_VOLUME, 8000);
         add_prop(OBJ_M_NO_GET, "Rudolf napewno obrazilby sie, gdyby "+
             "ktos przemeblowal mu piwnice bez jego zgody. Jesli chcesz "+
             "wziac wino, po prostu przelej je do jakiegos pojemnika.\n");
  

    add_prop(OBJ_I_WEIGHT,                5000);
    add_prop(OBJ_I_VOLUME,                8000);
    add_prop(OBJ_I_VALUE,                 200);
// Ustalamy wage, objetosc i wartosc przedmiotu.    
     }    


 string
 dlugi_opis()
     {
         if ( wino > 1 )
         return "Barylka zawiera okolo " + LANG_SNUM(wino, PL_DOP, 
             PL_MESKI_NZYW) + " litrow wina.\n";
    
         if ( wino == 1 )
         return "Na dnie jest tylko jeden litr wina.\n";
         
         return "Barylka jest pusciutka.\n";               
     }


 int
 ile_wina()             // zwraca ile wina jest w barylce
     {
         return wino;
     }    

 void
 dodaj_wino( int ile)   // dodaje wino 
     {
         wino = wino + ile;
     } 

 init()
     {
         ::init();
         add_action("lanie_wina", "przelej");
     }


 int
 lanie_wina(string str)
    {
      string *tablica;
      object garniec;
      object dzban;
      int pomoc;
          
      garniec = present("garniec", ({this_player(),
         environment(this_player()) }) );
     
      dzban = present("dzban", ({this_player(),
         environment(this_player()) }) );
    
           
      if ( !stringp(str) )
      { 
          notify_fail("Przelej wino z <czego> do <czego>.\n");
          return 0;
      }
 
      tablica = explode(str, " ");
     
      if ( sizeof(tablica) != 5) 
          { notify_fail("Przelej wino z <czego> do <czego>.\n");
            return 0; 
          }
    
      if ( tablica[1] != "z") 
          { notify_fail("Przelej wino z <czego> do <czego>.\n");
            return 0; 
          }
    
      if ( tablica[0] != "wino") 
          { notify_fail("Przelej wino z <czego> do <czego>.\n");
            return 0; 
          } 
     
      if ( tablica[3] != "do") 
      {   notify_fail("Przelej wino z <czego> do <czego>.\n");
          return 0; 
      }
    
      if ( tablica[2] != "barylki")
      {        
          notify_fail("Skad chcesz przelac wino?\n");
          return 0;
      }         
               
          if ( tablica[4] == "garnca" )
          {
               if ( garniec == 0 ) 
               {   
                   write("Nie widzisz tu zadnego garnca.\n");
                   return 1;
               }  
                
               if ( wino == 0 )
               {   
                    write("Na dnie barylki nie zostala ani "+
                                "kropla wina!\n");
                    return 1;             
               }
                 
              if ( garniec->ile_wina() == 3 )
              {    
                    write("Garniec nie pomiesci ani odrobiny "+
                                "wina wiecej.\n");
                    return 1;
              }                            
                     
              pomoc = ( 3 - garniec->ile_wina() );
                     
              if ( wino > pomoc )
              {
                    garniec->dodaj_wino(pomoc);
                    wino = wino - pomoc;
                    write("Napelniasz garniec winem.\n");
                    return 1;
              }
              else
              {
                    garniec->dodaj_wino(wino);
                    wino = 0;
                    write("Przelales cale wino z barylki do garnca.\n");
                    return 1;
              }  
          }
                               
          if ( tablica[4] == "dzbana" )
          {
              if ( dzban == 0 )
              {
                   write("Nie widzisz tu zadnego dzbana.\n");
                   return 1;
              }  
            
              if ( wino == 0 )
              {
                   write("Na dnie barylki nie zostala ani "+
                               "kropla wina!\n");
                   return 1;             
              }
              
              if ( dzban->ile_wina() == 5 )
              { 
                   write("Dzban nie pomiesci ani odrobiny "+
                                "wina wiecej.\n");
                   return 1;
              }                            
              
              pomoc = ( 5 - dzban->ile_wina() );
              
              if ( wino > pomoc )
              {
                   dzban->dodaj_wino(pomoc);
                   wino = wino - pomoc;
                   write("Napelniasz dzban winem.\n");
                   return 1;
              }
              else
              {
                   dzban->dodaj_wino(wino);
                   wino = 0;
                   write("Przelewasz cale wino z barylki do dzbana.\n");
                   return 1;
               }                    
          }

          write("Gdzie chcesz przelac wino?\n");
          return 1;

 }         
     
     
void
reset_questa()
{
    tell_room(environment(this_object()),"Chudy sluzacy wtacza do piwnicy nowa "+
        "beczulke z winem, zabierajac stara na gore.\n");
    wino = 8;
}    