
/*            
 *  PSHODDY PROUDLY PRESENTS:
 *  dzban
 *  do ktorego mozna nalewac wino, 
 *  napisany do questa
 *
 */

inherit "/std/object.c";

#include <stdproperties.h>
#include <macros.h>

int wino;                   // ilosc wina w dzbanie

create_object()
     {
         set_long("@@dlugi_opis");

         ustaw_nazwe( ({"dzban", "dzbana", "dzbanowi", "dzban", "dzbanem",
                        "dzbanie"}), ({"dzbany", "dzbanow", "dzbanom", 
                        "dzbany", "dzbanami", "dzbanach"}), PL_MESKI_NZYW );
    
         dodaj_przym("gliniany", "gliniani");  
     
         wino = 0;         // ustawiamy poczatkowa ilosc wina na 0 litr.

    add_prop(OBJ_I_WEIGHT,                300);
    add_prop(OBJ_I_VOLUME,                3000);
    add_prop(OBJ_I_VALUE,                 20);
             
         add_prop(CONT_I_MAX_WEIGHT, 5000);
         add_prop(CONT_I_MAX_VOLUME, 5000);
     }    


 string
 dlugi_opis()
     {
         string czesc_stala = "Lekko brudny dzban, zazwyczaj wypelniony "+
                "trunkami serwowanymi gosciom.\n";
         
         if ( wino > 1 )
         return czesc_stala+"Dzban zawiera okolo " + LANG_SNUM(wino, PL_DOP, 
             PL_MESKI_NZYW) + " litrow wina.\n";
    
         if ( wino == 1 )
         return czesc_stala+"Na dnie jest tylko jeden litr wina.\n";
         
         return czesc_stala+"Dzban jest pusciutki.\n";               
     }


 int
 ile_wina()             // zwraca ile wina jest w dzbanie
     {
         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 garniec;
      int pomoc;
          
      barylka = present("barylka", ({this_player(),
         environment(this_player()) }) );
     
      garniec = present("garniec", ({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] != "dzbana")
      {
           notify_fail("Skad chcesz przelac wino?\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 dzbana 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 dzbana do barylki\n");
                   return 1;
                }  
           }
            
      if ( tablica[4] == "garnca" )
      {
            if ( garniec == 0 )
               { write("Nie widzisz tu zadnego garnca.\n");
                 return 1;
               }  
          
            if ( wino == 0 )
                { write("Na dnie dzbana 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 dzbana do garnca.\n");
                return 1;
            }                    
      }

      write("Gdzie chcesz przelac wino?\n");
      return 1;
}     