#include "mith.h"
#include "ryc_zak.h"

inherit "/std/container";

create_container()
{
    object szata;
    ustaw_nazwe( ({ "szafa", "szafy", "szafie", "szafe", "szafa",
        "szafie", }), ({ "szafy", "szaf", "szafom", "szafy",
        "szafami", "szafach" }), PL_ZENSKI);
        
    dodaj_przym("drewniany","drewniani");
    
    set_long("Przy drzwiach stoi duza, drewniana szafa, sluzaca do "
    	+"przechowywania ubran Braci Sluzebnych.\n");
     
    add_prop(CONT_I_RIGID, 1); /* Skrzynia jest sztywna, tzn jej objetosc */
    			       /* nie zmienia sie wraz z objetoscia zawartosci*/
    			       /* tak, jak by to bylo w przypadku np torby */

    add_prop(CONT_I_MAX_VOLUME, 250000); /* moze miec maksymalnie objetosc.
    					    Poniewaz ma propa CONT_I_RIGID
    					    zawsze zajmuje tyle miejsca */
    					 
    add_prop(CONT_I_MAX_WEIGHT, 500000); /* mozna wladowac do niej do pol
    					    tony */
    					 
	add_prop(OBJ_M_NO_GET,"Nie jestes w stanie podniesc szafy. Prawdopodobnie przymocowano ja do podlogi.\n");


    add_prop(CONT_I_VOLUME, 100000); /* pusta skrzynia zajmowala by 100 litrow, 
    				       gdyby nie miala propa CONT_I_RIGID. */
    				       
    add_prop(CONT_I_WEIGHT, 20000); /* pusta skrzynia wazy 20 kilo */

    setuid();
    seteuid(getuid()); 
    szata=clone_object(ENGINE+"bs_szata");
    szata->move(this_object());             
}


init()
{
	::init();
	add_action("wez","wez");
	add_action("odwies","odwies");
}

int 
wez(string str)
{
	object *rzeczy, szata;
	int i;
	if (str!="szate z szafy") return 0;
	rzeczy=deep_inventory(TP);
	if (member_array(1,rzeczy->id("szata"))!=-1) 
	{
		write("Juz masz jedna szate.\n");
		return 1;
	}
	if (!PRAWA->sprawdz_prawa(PRAWA_BRATA, TP)) 
	{
		write("Nie jestes czlonkiem Zakonu!\n");
		return 1;
	}
	rzeczy=all_inventory(this_object());
	i=member_array(1,rzeczy->id("szata"));
	if (i==-1)
	{
	  	write("W szafie nie ma szaty. Powiadom Kapitule.\n");
	  	return 1;
	}
	szata=rzeczy[i];
	szata->usun_propy();
	szata->move(TP);
	szata->dodaj_propy();
	write("Wyjmujesz z szafy zgrzebna szate.\n");
	say(QCIMIE(TP,PL_MIA)+" wyjmuje z szafy zgrzebna szate.\n");
	clone_object(SZATA)->move(this_object());
	return 1;
}

int
czy_szata(object ob)
{
   return ob->id("szata");
}

int
odwies(string str)
{
   object *rzeczy;
   int i;
   
   if (str!="szate do szafy")
      return notify_fail("Odwies <co> <gdzie> ?\n");
   
   rzeczy = all_inventory(TP);
   if (PRAWA->sprawdz_prawa(PRAWA_RYCERZA, TP))
      {
         if ((i=member_array(1,rzeczy->id("szata")))>-1)
            {
               write("Odwieszasz " + rzeczy[i]->short(TP,PL_BIE) + " do szafy.\n");
               say(QCIMIE(TP,PL_MIA) + " odwiesza " + rzeczy[i]->short(PL_BIE) +
               		" do szafy.\n");
               rzeczy[i]->remove_object(); 
               return 1;
            }
         return notify_fail("Przeciez nie masz szaty!\n");
      }
   if (PRAWA->sprawdz_prawa(PRAWA_BRATA, TP))
      {
         if (sizeof(filter(rzeczy,czy_szata))>1)
            {
               i=member_array(1,rzeczy->id("szata"));
               write("Odwieszasz " + rzeczy[i]->short(TP,PL_BIE) + " do szafy.\n");
               say(QCIMIE(TP,PL_MIA) + " odwiesza " + rzeczy[i]->short(PL_BIE) +
               		" do szafy.\n");
               rzeczy[i]->remove_object(); 
               return 1;
            }
         if (sizeof(filter(rzeczy,czy_szata))==1)
             return notify_fail("Nie mozesz odwiesic swej szaty!\n");
         return notify_fail("Przeciez nie masz szaty!\n");
      }
    return 0;
}
	
int
prevent_enter(object ob)
{
  if(ob->query_nazwa() == "szata") return 0;
 
  write("Szafa sluzy tylko do przechowywania ubran.\n");
  return 1;
}