
/*            
 *  PSHODDY PROUDLY PRESENTS:
 *  garniec
 *  do ktorego mozna nalewac wino, 
 *  napisany do questa
 *
 */

inherit "/std/object.c";

#include <stdproperties.h>
#include <macros.h>

int wino;                   // ilosc wina w garncu

 create_object()
     {
         set_long("@@dlugi_opis");

         ustaw_nazwe( ({"garniec", "garnca", "garncowi", "garniec", "garncem",
                        "garncu"}), ({"garnce", "garncow", "garncom", 
                        "garnce", "garncami", "garncach"}), PL_MESKI_NZYW );
    
         dodaj_przym("czysty", "czysci");  
     
         wino = 0;         // ustawiamy poczatkowa ilosc wina na 0 litr.
             
         add_prop(CONT_I_MAX_WEIGHT, 3000);
         add_prop(CONT_I_MAX_VOLUME, 3000);

    add_prop(OBJ_I_WEIGHT,                300);
    add_prop(OBJ_I_VOLUME,                4000);
    add_prop(OBJ_I_VALUE,                 20);

    add_cmd_item("sie z garnca","napij","To chyba nie jest najlepszy pomysl.\n");
   
     }    


 string
 dlugi_opis()
     {
         if ( wino > 1 )
         return "Garniec 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 "Garniec jest pusciutki.\n";               
     }


 int
 ile_wina()             // zwraca ile wina jest w garncu
     {
         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 barylka;
      object dzban;
      int pomoc;
          
        barylka = present("barylka", ({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] != "garnca")
      {
           notify_fail("Skad, skad? Zlociutki?\n");
           return 0;
      }     
     
          if ( tablica[4] == "barylki" )
          {
                 if ( barylka == 0 )
                 {
                     write("Nie widzisz tu zadnej barylki.\n");
                     return 1;
                 }
                        
                 if ( wino == 0 )
                 {
                     write("Na dnie garnca nie zostala ani "+
                                 "kropla wina!\n");
                     return 1;             
                 }
                 
                 if ( barylka->ile_wina() == 8 )
                 {
                      write("Barylka nie pomiesci ani odrobiny "+
                                  "wina wiecej.\n");
                      return 1;
                 }                            
                 
                 pomoc = ( 8 - barylka->ile_wina() );
                 
                 if ( wino > pomoc )
                 {
                      barylka->dodaj_wino(pomoc);
                      wino = wino - pomoc;
                      write("Napelniasz barylke winem.\n");
                      return 1;
                 }
                 else
                 {
                      barylka->dodaj_wino(wino);
                      wino = 0;
                      write("Przelales cale wino z garnca do barylki.\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 garnca 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("Przelales cale wino z garnca do dzbana.\n");
                      return 1;
                  
               }                    
         }

               write("Gdzie chcesz przelac wino?\n");
               return 1;    

    }         
     