inherit "/std/object.c";
inherit "/cmd/std/command_driver";
#include <cmdparse.h>
#include <macros.h>
#include <stdproperties.h>
#include <wa_types.h>
#include <pl.h>
#include "halfy.h"
int ile_ziela=0;
object ziele;
#define ON environment(this_object())
create_object()
{
	ustaw_nazwe (
		({"kapciuch","kapciucha","kapciuchowi","kapciuch","kapciuchem","kapciuchu"}),
		({"kapciuchy","kapciuchow","kapciuchom","kapciuchy","kapciuchami","kapciuchach"}),
		PL_ZENSKI);
	set_long("@@long");
	ustaw_shorty(({"kapciuch na ziele fajkowe","kapciucha na ziele fajkowe","kapciuchowi na ziele fajkowe","kapciuch na ziele fajkowe","kapciuchem na ziele fajkowe","kapciuchu na ziele fajkowe"}),
		({"kapciuchy na ziele fajkowe","kapciuchow na ziele fajkowe","kapciuchom na ziele fajkowe","kapciuchy na ziele fajkowe","kapciuchami na ziele fajkowe","kapciuchach na ziele fajkowe"}),
		PL_ZENSKI);
	
	add_prop (OBJ_I_WEIGHT, 150);
	add_prop (OBJ_I_VALUE, 100);
    add_prop(OBJ_M_NO_DROP,1);
    add_prop(OBJ_M_NO_STEAL,1);
    add_prop(OBJ_M_NO_SELL,1);
    add_prop(OBJ_M_NO_GIVE,1);
}
string
long()
{
	string str="Jest to kapciuch na ziele fajkowe z charakterystycznymi "+
		"dla Zgromadzenia Halflindzkiego ozdobami. Kapciuch jest ";
	string nazwa_ziela=ziele->query_short();
	string pelnosc;
	if (ile_ziela==0) return str+"pusty.\n";
	switch(ile_ziela)
	{
		case 0: break;
		case 1..25: str+="prawie pusty, ale zajduje sie w nim jeszcze"+
			" troche "+ziele->query_short(PL_DOP);
			break;
		case 26..49: str+="prawie do polowy wypelniony "+
			ziele->query_short(PL_NAR);
			break;
		case 50..80: str+="w duzej czesci napelniony "+ziele->query_short(PL_NAR);
			break;
		case 81..99: str+="prawie pelen "+ziele->query_short(PL_DOP);
			break;
		case 100: str+="pelen "+ziele->query_short(PL_DOP);
			break;
	}
	str+=".\n";
	return str;
}
			
void
set_ziele(object nowe_ziele)
{
	ziele=nowe_ziele;
}
object
query_ziele()
{
	return (ile_ziela)?ziele:0;
}
int
query_max()
{
	return ile_ziela;
}
int
odejmij(int ile)
{
	ile_ziela-=ile;
	if (ile_ziela==0)
	{
		ON->remove_prop(CZESTUJE);
		ON->catch_msg("Skonczylo ci sie ziele w kapciuchu.\n");
	}
	return ile_ziela;
		
}
int 
dodaj(int ile)
{
	return ile_ziela+=ile;
}
string 
query_auto_load ()
{
        return MASTER_OB(this_object());
}
int
poczestuj(string str)
{
	object *kogo;
	if (ile_ziela==0)
		return notify_fail("Kapciuch jest pusty!\n");
	if (str="wszystkich")
	{
		TP->add_prop(CZESTUJE, ({"wszystkich", this_object()}));
		TP->add_prop(LIVE_S_SOULEXTRA, "Czestuje wszystkich zielem ze swojego kapciucha.\n");
	}
	if (!str)
		return notify_fail("Kogo chcesz poczestowac zielem ze swojego "+
			"kapciucha?\n");
	kogo=parse_this(str,"%l:"+PL_BIE);
	if (sizeof(kogo)!=1) 
		return notify_fail("Czestowac mozesz wszystkich, albo tylko "+
			"jedna osobe.\n");
	TP->add_prop(CZESTUJE, kogo + ({this_object()}));
	TP->add_prop(LIVE_S_SOULEXTRA, "Czestuje "+str+" zielem ze swojego kapciucha.\n");
	return 1;
}
int
oproznij(string str)
{
	if (str!="kapciuch")
		 return notify_fail("Co chcesz oproznic?\n");
	if (ile_ziela==0)
		return notify_fail("Kapciuch juz jest pusty!\n");
	all("oproznia swoj kapciuch, wysypujac resztki ziela fajkowego na ziemie.");
	write("Oprozniasz swoj kapciuch, wysypujac resztki ziela fajkowego na ziemie.\n");
	ile_ziela=0;
	ziele=0;
	return 1;
}
init()
{
	add_action(poczestuj,"poczestuj");
	add_action(oproznij, "oproznij");
}
