inherit "/std/beczulka";
#include "ogry.h"

#define VOID "/d/Imperium/obj/void"
#define ENTO environment(TO)
#define ENTP environment(TP)

#define OGRY_I_WYPIL_SIKI "_ogry_i_wypil_siki"
#define OGRY_I_WIE_ZE_WYPIL_SIKI "_ogry_i_wie_ze_wypil_siki"

object popr_bukl=0;

create_beczulka()
{

}

int
konfiguruj_z(object becz)
{
   mixed pom1,pom2;
   int i;
   
   if (!function_exists("create_beczulka",becz)||MASTER==MASTER_OB(becz)) return 0;
   
   ustaw_nazwe( ({becz->query_nazwa(PL_MIA),
   		  becz->query_nazwa(PL_DOP),
   		  becz->query_nazwa(PL_CEL),
   		  becz->query_nazwa(PL_BIE),
   		  becz->query_nazwa(PL_NAR),
   		  becz->query_nazwa(PL_MIE)}),
   		({becz->query_pnazwa(PL_MIA),
   		  becz->query_pnazwa(PL_DOP),
   		  becz->query_pnazwa(PL_CEL),
   		  becz->query_pnazwa(PL_BIE),
   		  becz->query_pnazwa(PL_NAR),
   		  becz->query_pnazwa(PL_MIE)}),
   		  becz->query_rodzaj_nazwy(becz->query_nazwa(PL_MIA)));
   
   pom1=becz->query_przym(-1);
   pom2=becz->query_pprzym(-1);
   
   for (i=0;i<sizeof(pom1);i++) dodaj_przym(pom1[i],pom2[i]);
   
   set_dlugi_opis(becz->query_dlugi_opis());
   
   set_pojemnosc(becz->query_pojemnosc());
   
   add_prop(OBJ_I_VALUE, becz->query_prop(OBJ_I_VALUE));
   add_prop(OBJ_I_VOLUME, becz->query_prop(OBJ_I_VOLUME));
   add_prop(OBJ_I_WEIGHT, becz->query_prop(OBJ_I_WEIGHT));
   
   popr_bukl=becz;
   
   move(environment(becz), 1);
   becz->move(VOID, 1);
   
   return 1;
}

string long()
{
   return ::long() + (query_ilosc_plynu()?"Wyglada troche podejrzanie.\n":"");
}

zamien_mnie()
{
   if (!popr_bukl) return;
   
   popr_bukl->move(ENTO, 1);
   move(VOID, 1);
   remove_object();
}

o_shit(object kto)
{
   if (!objectp(kto)) return;
   
   if (!query_ilosc_plynu()) zamien_mnie();
   
   write("Przez chwile smakujesz ciecz, ktora trafila w twe usta, "+
   	"by po chwili wyplunac ja z obrzydzeniem. To cos smakowalo jak " +
   	"ogrze siki!\n");
   say("Na twarzy " +QIMIE(kto,PL_DOP) + " pojawia sie nagle strazliwy " +
   	"grymas obrzydzenia, gdy wypluwa na prawo i na lewo to, co przez " +
   	"chwila wypil"+kto->koncowka("","a") + ".\n");
   
   if (kto->query_stat(SS_DIS)<50)
      {
         if (query_ilosc_plynu())
            {
               write("Z obrzydzeniem odrzucasz precz " + TO->short(kto,PL_BIE) +
               	", rozlewajac reszte plynu.\n");
               say(QCIMIE(kto,PL_MIA) + " odrzuca od siebie " + QSHORT(TO,PL_BIE) + 
               	", z ktor" + TO->koncowka("ego","ej","ego") + 
               	" wylewa sie cala zawartosc.\n");
               	zamien_mnie();
            }
         else
            {
               write("Z obrzydzeniem odrzucasz precz pust" + TO->koncowka("y","a","e") +
                " " + TO->short(kto,PL_BIE) + ".\n");
               say(QCIMIE(kto,PL_MIA) + " odrzuca od siebie pust" + TO->koncowka("y","a","e") +
                " " + QSHORT(TO,PL_BIE) + ".\n");
            }
         move(environment(kto), 1);
      }
   
   kto->remove_prop(OGRY_I_WYPIL_SIKI);
   kto->add_prop(OGRY_I_WIE_ZE_WYPIL_SIKI, 1);
   kto->add_prop(LIVE_S_SOULEXTRA, "Jego twarz jest wykrzywiona w grymasie obrzydzenia.\n");
}

int
drink_from_it()
{
   int il=query_ilosc_plynu(),pom;
   
   if (TP->query_prop(OGRY_I_WIE_ZE_WYPIL_SIKI))
      {
         write("Chcesz raz jeszcze poczuc ten obrzydliwy smak? " +
         	"Jestes masochist" + TP->koncowka("a","ka") + "?\n");
         return 1;
      }
   
   if (TP->query_prop(OGRY_I_WYPIL_SIKI))
      {
         write("Nie rozsmakowal" + TP->koncowka("es","as") + " sie jeszcze " +
         	"w poprzednio wypitej porcji.\n");
         return 1;
      }
   
   pom=::drink_from_it();
   
   if (il==query_ilosc_plynu()) return pom;
   
   TP->add_prop(OGRY_I_WYPIL_SIKI, 1);
 
   set_alarm(1.0,0.0,&o_shit(TP));
   
   return pom;
}

int
wylej_from_it()
{
   int pom=::wylej_from_it();
   zamien_mnie();
   return pom;
}