inherit "/d/Imperium/std/room";
#include "defs.h"
mapping czlonkowie=([]);
mapping do_wyjebania=([]);
create_imperium_room()
{
	set_short("Centrum Dowodzenia");
	set_long("Centrum Dowodzenia Gildia Najemnikow.\n");
	restore_object(NAJEMNICY);
}
void
nagraj()
{
	save_object(NAJEMNICY);
}
void
nowy_czlonek(mixed kto)
{
	kto=IMIE(kto);
	czlonkowie[kto]=1; //rekrut
	nagraj();
}
int wyjeb(mixed kogo)
{
	kogo=IMIE(kogo);
	if(!czlonkowie[kogo]) return 0;
	czlonkowie=m_delete(czlonkowie, kogo);
	do_wyjebania=m_delete(do_wyjebania, kogo);
	nagraj();
	return 1;
}
int
query_szef(mixed kto)
{
   kto=IMIE(kto);
   if (!czlonkowie[kto]) return 0;
   if (czlonkowie[kto] == 3)  return 1;
   else return 0;
}
int
query_czlonek(mixed kto)
{
	kto=IMIE(kto);
	if (!czlonkowie[kto]) return 0;
	return 1;
}
int
query_ranga(mixed kto)
{
	kto=IMIE(kto);
	if (!czlonkowie[kto]) return 0;
	if (czlonkowie[kto] == 1) return 1;
	if (czlonkowie[kto] == 2) return 2;
	if (czlonkowie[kto] == 3) return 3;
}
int
dodaj_do_wyjebania(mixed kto)
{
	kto = IMIE(kto);
	if(!query_ranga(kto))
	return 0;
	do_wyjebania[kto] = 1;
	nagraj();
	return 1;
}
int
query_wypierdol(mixed kto)
{
	kto=IMIE(kto);
	if(do_wyjebania[kto]) return 1;
	return 0;
}
string
czlonkowie_gildii()
{
  string s;
  string *men=({});
  int i,a,b;
  mixed ind;
  ind = m_indices(czlonkowie);
  b = m_sizeof(czlonkowie);
   for(a=0;a<b;a++)
      men+=({ind[a]});
  i=sizeof(men);
  s="Aktualni czlonkowie gildii to :\n";
  if(i==0) s="W tej chwili nie ma zadnych Najemnikow!\n";
  for(a=1;a<i;a++)
   {
	   s+="[" + a + "] " + capitalize(men[a]);
	   if(query_szef(men[a])) s+= " (Kapitan)";
	   s+="\n";
   }
  s+="\n";
  return s;
}
void
logowanie(object kto)
{
	string imie=kto->query_real_name();
	object *guilditem;
	int i;
    if(query_wypierdol(imie))
       {
          if (!kto->clear_guild_stat(SS_OCCUP))
           {
		   }
	      if (kto->remove_guild_occ())
	       {
		           kto->remove_cmdsoul(NAJEMNICY_SOUL);
		           kto->update_hooks();
		           wyjeb(kto);
		           kto->catch_msg("Zostales wyjebany z Najemnikow.\n");
		           nagraj();
           }
    	   guilditem = deep_inventory(kto);
	       for (i= 0; i < sizeof(guilditem); i++)
		   	if (guilditem[i]->czy_bandana_mercow())
		        guilditem[i]->remove_object();
		   return;
	   }
	if(!czlonkowie[imie]) 
       {
          if (!kto->clear_guild_stat(SS_OCCUP))
           {
		   }
	      if (kto->remove_guild_occ())
	       {
		           kto->remove_cmdsoul(NAJEMNICY_SOUL);
		           kto->update_hooks();
		           wyjeb(kto);
	               tell_object(kto, "Cos sie spierdolilo i wyjebalo cie z Najemnikow.\n");
		           nagraj();
           }
    	   guilditem = deep_inventory(kto);
	       for (i= 0; i < sizeof(guilditem); i++)
		   	if (guilditem[i]->czy_bandana_mercow())
		        guilditem[i]->remove_object();
		   return;
	   }
	
	set_alarm(1.0, 0.0, "powitanie", kto);
}
void
powitanie(object kto)
{
	kto->catch_msg("Witaj dzielny wojowniku Najenikow. Przynies slawe swej kompanii.\n");
}
int
promote(mixed kogo)
{
	kogo=IMIE(kogo);
	if(!query_czlonek(kogo)) return 0;
	if(czlonkowie[kogo] == 1)
	{
		czlonkowie[kogo] = 2;
		nagraj();
		return 1;
	}
	if(czlonkowie[kogo] == 2)
	return 0;
}
int
demote(mixed kogo)
{
	kogo=IMIE(kogo);
    if(!query_czlonek(kogo)) return 0;
	if(czlonkowie[kogo] == 2)
	{
		czlonkowie[kogo] = 1;
		nagraj();
		return 1;
	}
	if(czlonkowie[kogo] == 1)
	return 0;
}
string
znajdz_szefa()
{
  string s;
  string *men=({});
  int i,a,b;
  mixed ind;
  ind = m_indices(czlonkowie);
  b = m_sizeof(czlonkowie);
   for(a=0;a<b;a++)
      men+=({ind[a]});
  i=sizeof(men);
  for(a=0;a<i;a++) if(query_szef(men[a])) return men[a];
}
int
set_szef(mixed kto)
{
    mixed ind;
    int i;
    string old_szef;
    kto=IMIE(kto);
    ind = m_indices(czlonkowie);
    if(!query_czlonek(kto)) return 0;
    if(query_szef(kto)) return 1;
    old_szef=znajdz_szefa();
    czlonkowie[old_szef] = 2;
    czlonkowie[kto] = 3;
    nagraj();
    return 2;
}
