/*
 *  Shadow gildii ogrow szarych
 * Kaes, Karraluch
*/
inherit "/std/guild/guild_race_sh";

#include "ogry.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/Szare/Ogry/npc/trener";
}

string
f_pomocn(object kto)
{
    int gstat=kto->query_stat(6);
    int plec=kto->query_gender();
    string str = "";
    
    if(gstat >= 120) // To NIE jest pomylka!!! ma byc 120, a nie 102!!!
    {
    	str += "Lesna Legenda";
        return str;
    }    
    if(gstat >= 100)
    {
    	str += "Dziecko Puszczy";
        return str;
    }    
    if(gstat >= 95)
    {
    	if(plec)
    		str += "Siostra Puszczy";
    else 	str += "Brat Puszczy";
    return str;
    }
    if(gstat >= 90)
    {
    	if(plec)
    		str += "Przyjaciolka Puszczy";
    	else str += "Przyjaciel Puszczy";
    return str;
    }
    if(gstat >= 85)
    {
    	if(plec)
    		str += "Tanczaca w Gestwinach Puszczy";
    	else str += "Tanczacy w Gestwinach Puszczy";
        return str;
    }
    if(gstat >= 80)
    {
    	if(plec)
    		str += "Sluchajaca Glosu Puszczy";
    	else str += "Sluchajacy Glosu Puszczy";
        return str;

    }
    if(gstat >= 75)
    {
    	if(plec)
    		str += "Kroczaca w Gestwinach Puszczy";
    	else str += "Kroczacy w Gestwinach Puszczy";
        return str;

    }
    if(gstat >= 70)
    {
    	if(plec)
    		str += "Szukajaca Puszczy";
    else 	str += "Szukajacy Puszczy";
        return str;

    }
    if(gstat >= 65)
    {
    	str += "Dziecko Gwiazd";
        return str;

    }
    if(gstat >= 60)
    {
    	if(plec)
    		str += "Przyjaciolka Gwiazd";
    	else str += "Przyjaciel Gwiazd";
        return str;

    }
    if(gstat >= 55)
    {
    	if(plec)
    		str += "Tanczaca w Blasku Gwiazd";
    	else str += "Tanczacy w Blasku Gwiazd";
        return str;

    }
    if(gstat >= 50)
    {
    	if(plec)
    		str += "Rozmawiajaca z Gwiazdami";
    	else str += "Rozmawiajacy z Gwiazdami";
        return str;

    }
    if(gstat >= 45)
    {
    	if(plec)
    		str += "Kroczaca w Blasku Gwiazd";
    	else str += "Kroczacy w Blasku Gwiazd";
        return str;

    }
    if(gstat >= 40)
    {
        if(plec)
                str += "Patrzaca w Gwiazdy";
    	else str += "Patrzacy w Gwiazdy";
        return str;

    }
    if(gstat >= 35)
    {
        if(plec)
    	        str += "Szukajaca Gwiazd";
    	else str += "Szukajacy Gwiazd";
        return str;

    }
    if(gstat >= 30)
    {
    	str += "Dziecko Drzew";
        return str;

    }
    if(gstat >= 25)
    {
    	if(plec)
    		str += "Przyjaciolka Drzew";
    	else str += "Przyjaciel Drzew";
        return str;

    }
    if(gstat >= 20)
    {
    	if(plec)
    		str += "Tanczaca w Cieniu Drzew";
    else 	str += "Tanczacy w Cieniu Drzew";
        return str;

    }
    if(gstat >= 15)
    {
    	if(plec)
    		str += "Rozmawiajaca z Drzewami";
    	else str += "Rozmawiajacy z Drzewami";
        return str;

    }
    if(gstat >= 10)
    {
        if(plec)
                str += "Patrzaca na Korony Drzew";
    	else str += "Patrzacy na Korony Drzew";
        return str;

    }
    if(gstat >= 5)
    {
    	if(plec) str += "Idaca w Cieniu Drzew";
        else str += "Idacy w Cieniu Drzew";
        return str;

    }

    if(plec)
            str += "Szukajaca Drzew";
    else str += "Szukajacy Drzew";
    return str;
}

string
query_guild_title_race()
{
   string str=f_pomocn(shadow_who);
   
   if (shadow_who->query_real_name()==GILDIA->query_herszt())
      {
         str+=", Tkajacy Nic Prawdy Starszy Rady Lesnych Ogrow";
      }
   
   return str;
}
		
int
query_guild_keep_player(object player)
{
  if (!CZY_OGR(player))
    {
     write("Nie jestes juz "+player->koncowka("ogrem", "ogrzyca")+", wiec jestes "+
        "zmuszon"+player->koncowka("y","a")+"opuscic gildie...\n");
    set_alarm(1.0,0.0,"wywalenie_z_ogra",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();
}

string
query_herszt()
{
	return GILDIA->query_herszt();
}

set_herszt(object ob)
{
	GILDIA->set_herszt(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_ogra(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]->obrecz_ogrow())
   tab[i]->remove_object();
   
   if(kogo->query_default_start_location()==OGR_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;
}

/*public string
query_ksywa()
{
  int gstat=shdw_ogr->query_stat(SS_RACE) ;
  if(gstat>=65) return " Weteran. Wyglada na takiego, co gdy nie moze obejsc przeszkody przechodzi prosto przez nia";
  if(gstat>=57) return " Rozlupywacz kamieni. Wyglada na takiego, co nie ma z tym wiekszych problemow";
  if(gstat>=50) return " Wyrwidab. Wyglada na takiego, co potrafi wyrwac najstarsze drzewo";
  if(gstat>=45) return " Lodolamacz. Lod i zimno nie sa dla niego zadna przeszkoda";
  if(gstat>=37) return " Rozlupywacz czaszek. Wyglada na takiego, ktory wiele juz lbow w zyciu rozbil";
  if(gstat>=31) return " Grzmociciel. Jest w tym bardzo dobry";
  if(gstat>=25) return " Mlocarz. Wylada na takiego, co czesto mloci tych ktorych nie lubi";
  if(gstat>=20) return " Zabijaka. Gdzie dwoch sie bije, tam on sie bije";
  if(gstat>=16) return " Drab. Wielu woli mu zejsc z drogi";
  if(gstat>=11) return " Dryblas. Swoim wygladem moze niektorych zbic z tropu";
  return " Mlodzik. Jest w jego wygladzie cos takiego...";
}*/
     
int
query_guild_leader()
{
   if (shadow_who->query_guild_leader()) return 1;
   
   return (shadow_who->query_real_name()==GILDIA->query_herszt());
}