/*
 *  Shadow "Zgromadzenia Halflindzkiego"
 *  Mithandir
 *  27.01.1999r
*/

inherit "/std/guild/guild_race_sh";

#include "halfy.h"
#include <stdproperties.h>
#include <formulas.h>
#include <ss_types.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 TRENER;
}

string
query_guild_title_race()
{
   if (GILDIA->query_radny(shadow_who))
    return M_LUB_K(shadow_who,"Wielki Niesyty","Wielka Niesyta");

}

int
query_guild_keep_player(object player)
{
/*  if (!CZY_HALF(player))
    {
     write("Nie jestes juz "+player->koncowka("halflingiem", "halflinka")+", wiec jestes "+
        "zmuszon"+player->koncowka("y","a")+"opuscic zgromadzenie...\n");
    set_alarm(1.0,0.0, &wywalenie_z_halfow(player));
    return 0;
    }
*/
  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();
}

int wywalenie_z_halfow(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]->obiekt_halfow())
   tab[i]->remove_object();

   if(kogo->query_default_start_location()==HALFY_SYP)
   {
     if(!kogo->set_default_start_location("/d/Imperium/Nuln/sklepy/karczma1"))
   {
     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 ze Zgromadzenia. "+
         "Skontaktuj sie z kims z czarodziei.\n");
   str=sprintf("%-16s:%s blad remove_guild_race \n");
   write_file(BUGS,str);
   return 0;
}
