/*
 *  Shadow gildii Tropicieli z Averlandu
 *  Siro
*/
inherit "/std/guild/guild_race_sh";

#include "tropiciele.h"

int
query_guild_tax_race()
{
  return TAX;
}

string
query_guild_style_race()
{
  return GUILD_STYLE;
}

string
query_guild_name_race()
{
  return GUILD_NAME;
}

string
query_guild_trainer_race()
{
  return "/d/Imperium/Aver/Tropiciele/npc/trener";
}

string
query_guild_title_race()
{
    string *meskie= ({"Poczatkujacy Tropiciel",
            "Wprawny Tropiciel",
            "Doswiadczony Tropiciel",
            "Nieomylny Tropiciel",
            "Tropiciel",
            "Znany Tropiciel",
            "Przykladny Tropiciel",
            "Oslawiony Tropiciel",
            "Zyjacy w zgodzie z Matka Ziemia - Legenda Tropicieli"
            });
    string *zenskie= ({"Poczatkujaca Tropicielka",
            "Wprawna Tropicielka",
            "Doswiadczona Tropicielka",
            "Nieomylna Tropicielka",
            "Tropicielka",
            "Znana Tropicielka",
            "Przykladna Tropicielka",
            "Oslawiona Tropicielka",
            "Zyjaca w zgodzie z Matka Ziemia - Legenda Tropicieli"
            });
    int ile=sizeof(meskie)-1;
    int zakres=65/ile;
    object kto=query_shadow_who();
    string *tytuly=(kto->query_gender()) ? zenskie:meskie;
    int numer= min (kto->query_stat(SS_RACE)/zakres-1, ile-1);
        if(kto->query_real_name()==GILDIA->query_przywodca())
        {
           if(kto->query_gender()) return "Szanowana Przywodczyni Tropicieli z Averlandu";
           return "Reka Taala, Legendarny Przywodca Nieustraszonych Tropicieli z Averlandu";
        }
    if (numer<0) numer = 0;

    return tytuly[numer]+" z Averlandu";
}

int
query_guild_keep_player(object player)
{
  set_alarm(1.0,0.0,"dodaj_soula",player);
  setuid();
  seteuid(getuid());

  return 1;
}

void dodaj_soula(object komu)
{
  komu->add_cmdsoul(SOUL);
  komu->update_hooks();
  komu->update_cmdsoul_list();
}

void
remove_soula(object komu)
{
  komu->remove_cmdsoul(SOUL);
  komu->update_hooks();
}

string
query_przywodca()
{
    return GILDIA->query_przywodca();
}

set_przywodca(object ob)
{
    GILDIA->set_przywodca(ob->query_real_name());
}

int
nie_wsio(object ob)
{
  return (living(ob)) && (member_array(SOUL,ob->query_cmdsoul_list())!=-1);
}

object * czlonkowie()
{
  object *tab;
  tab=all_inventory(environment(shadow_who));
  tab=filter(tab,nie_wsio);
  return tab;
}

int wywalenie_z_trop(object kogo)
{
  int i;
  object *tab;
  string str;
  string name=kogo->query_real_name();
 tab=deep_inventory(kogo);
 for (i=0; i<sizeof(tab); i++)
   if(tab[i]->_klamra_tropicieli_())
   tab[i]->remove_object();

   if(kogo->query_default_start_location()==TROP_SYP)
   {
     if(!kogo->set_default_start_location(IMPERIUM_STANDARD))
   {
     write("Wystapil blad zwiazany z przydzieleniem nowej lokacji startowej. "+
           "Zglos to komenda <zglos blad>.\n");
     str=sprintf("%-16s:%s blad set_default_location\n",name,ctime(time()));
     write_file(BUGS,str);
   }
   }
   else write(kogo->query_default_start_location());

   if(!kogo->clear_guild_stat(SS_RACE))
   {
     str=sprintf("%-16s:%s blad clear_guild_stat\n",name,ctime(time()));
     write_file(BUGS,str);
   }
   if(remove_guild_race())
    {
     remove_soula(kogo);
     return 1;
    }
   write("Niestety wystapil jakis blad przy wystepowaniu z Gildii. "+
         "Skontaktuj sie z kims z czarodziei.\n");
   str=sprintf("%-16s:%s blad remove_guild_race \n");
   write_file(BUGS,str);
   return 0;
}

int
query_guild_leader()
{
   if (shadow_who->query_guild_leader()) return 1;

   return (shadow_who->query_real_name()==GILDIA->query_przywodca());
}
