inherit "/std/guild/guild_occ_sh";
#include "../mafia.h"


/* w Mafii czyli rodzinie Ragazzi beda 3 rangi
   - 1 sza = najnizsza zwykli chlopacy na posylki
   - 2 ga  = ochroniarze papy
   - 3 cia = grupa jednosobowa - ojciec chrzestny
   - 4 ta  = grupa jednosobowa - GLOWA RODZINY
   
 */
#define TYTUL ({"Giovane di Ragazzi Familia",\
        "Saperen di Ragazzi Familia",\
        "Avanzato di Ragazzi Familia",\
        "Soldato di Ragazzi Familia",\
        "Esperto di Ragazzi Familia",\
        "Veterano di Ragazzi Familia",\
        "Campione di Ragazzi Familia",\
        "Elite Campione di Ragazzi Familia"})

#define GWARDIA      ({ "Guardio di Papa di Ragazzi Familia",\
        "Capitano Guardia di Papa Ragazzi Familia"})
// SPECE ( tutaj znajduje sie wartosci odnosnie specy
private int seria_sztyletem;


//TAX GILDII
public int
query_guild_tax_occ()
{
return 25; // nie zbalansowane
}

//NAZWA GILDII
public string
query_guild_name_occ()
{
return GUILD_NAME;
}

//TRENER GILDII
public mixed
query_guild_trainer_occ()
{
    return "/d/Imperium/Mafia/npc/gerrzo";
}



//FUNKCJA ZWRACAJACA TYTULY
public string
query_guild_title_occ()
{
int przed;
int imie=shadow_who->query_real_name();

if ( RAGAZZI->query_ranga(imie)==4 )
    return "Papa di Ragazzi Familia";


    if ( RAGAZZI->query_ranga(imie)==3 )
    return "Padrino di Ragazzi Familia";

    if ( RAGAZZI->query_ranga(imie)==2 )
    {
       switch(shadow_who->query_stat(7))
       {
     case 0..200: return GWARDIA[0];
		break;
	default:
		return GWARDIA[1];
	}
	}


    if ( RAGAZZI->query_ranga(imie)==1 )
    {
      switch(shadow_who->query_stat(7))
      {
         case 1..25:
       return TYTUL[0];
  case 26..50:
       return TYTUL[1];
  case 51..75:
       return TYTUL[2];
  case 76..100:
       return TYTUL[3];
  case 101..125:
       return TYTUL[4];
  case 126..150:
       return TYTUL[5];
  case 151..175:
       return TYTUL[6];
  default:
       return TYTUL[7];
    }
}
    if ( RAGAZZI->query_ranga(imie)==10 ) return "Oczekujacy Smierci";
   return  "BUG zlos blad";

}

//FUNKCJA STARTOWA ODPALANA
void
start_function()
{
    RAGAZZI->logowanie(shadow_who);
}

//FUNKCJA DODAJACA SOULA
void
add_soul()
{
    setuid();
    seteuid(getuid());

    shadow_who->add_cmdsoul(SOUL);
    shadow_who->update_hooks();
}


//FUNKCJA KTORA ROBI TO ZE GRACZ PO ZALOGOWANIU MA NADAL SOUL
int
query_guild_keep_player(object player)
{
    set_alarm(0.1, 0.0, start_function);
    return 1;
}




//FUNKCJA MOWIACA OSOBOM NA LOKACJII GDZIE ZNAJDUJE SIE shadow_who, oraz jego przeciwnikowi
static void
tell_watcher(string str, object enemy)
{
   object me,*ob;
   int i;

   me = shadow_who;
   ob = FILTER_LIVE(all_inventory(environment(me))) - ({ me });
   ob -= ({ enemy });
   for (i = 0; i < sizeof(ob); i++)
   if (!ob[i]->query_option(OPT_BLOOD) && CAN_SEE_IN_ROOM(ob[i]))
      {
      if (CAN_SEE(ob[i], me))
         ob[i]->catch_msg(str);
      else
         tell_object(ob[i], "Ktos trafil kogos.\n");
   }
}

//FUNKCJA DODAJACA OPISY DO SPECOW
public mixed
query_guild_skill_name(int type)
{
  if (type == SS_MAFIA_SERIA) return "seria sztyletami";

}

//FUNKCJE ODNOSNIE SPECY

void
set_cios(int ile)
{
    seria_sztyletem=ile;
}

int
query_cios()
{
    return seria_sztyletem;
}

//FUNKCJA USUWAJACA

public void
usun_gildia_occ()
{
	object *itemy;
	int i;
	itemy = deep_inventory(shadow_who);
	for(i=0; i<sizeof(itemy); i++)
	{
	   if(MASTER_OB(itemy[i]) == GUILD_ITEM)
	     itemy[i]->remove_object();
	}
	RAGAZZI->remove_member(shadow_who->query_real_name());
	shadow_who->remove_guild_occ();
	shadow_who->clear_guild_stat(SS_OCCUP);
	shadow_who->set_guild_pref(SS_OCCUP, 0);
	shadow_who->remove_autoshadow(SHADOW);
	shadow_who->remove_cmdsoul(SOUL);
	shadow_who->update_hooks();
	remove_shadow();
}
