/*
 * Standardowe zwierze z Lasu Loren by Tanis
 */

inherit "/d/Imperium/std/zwierze.c";

#include "ogolne.h"
#include "lelf.h"

int czy_karana_gildia=0;
int czy_karani_inni=0;
int czy_ploszy=0;

void
create_lesne_zwierze()
{       
}

void
create_zwierze()
{
 add_prop(ZWIERZE_Z_LOREN,1);

     setuid();
    seteuid(getuid());
 
  create_lesne_zwierze();
  
  add_leftover(PATH+"zwierzeta/skora.c",({"skora","skory","skorze","skore","skora","skorze"}),
               ({"skory","skor","skorom","skory","skorami","skorach"}),
               PL_ZENSKI,1,0,1,1);

//  add_leftover(PATH+"zwierzeta/mieso.c",({"mieso","miesa","miesu","mieso","miesem","miesie"}),
//               ({"miesa","mies","miesom","miesa","miesami","miesach"}),
//               PL_NIJAKI_NOS,1,0,1,1);
}

string
przerob(mixed co)
{
if(stringp(co)) return co;
else return co[0];
}

void
uciekaj()
{
    mixed *exits;
    int ktore;

    if (!environment(this_object()))
	return;

    exits = filter_exits(environment(this_object())->query_exit());

    ktore=random(sizeof(exits) / 3);
   
   ktore=(ktore*3)+1;

   if(!(this_object()->query_attack()))
     {
       command("emote ploszy sie!");
       command(przerob(exits[ktore]));
     }
}

void
emote_hook(string emote, object wykonujacy, string przyslowek)
{
 if(czy_ploszy) uciekaj();
}

void
wlacz_karanie_gildii()
{
  czy_karana_gildia=1;
}

void
wlacz_karanie_innych()
{
  czy_karani_inni=1;
}

void
wlacz_ploszenie()
{
  czy_ploszy=1;
}

/*
 * void
 * reaguj_gildia(object ob)
 * {
 *     if(!czy_karana_gildia) return;
 * 
 *     if (!present(ob, environment(this_object())))
 * 	return;
 * 
 *     ob->add_prop(LESNY_ELF_ZABIL_ZWIERZE_Z_LOREN,ob->query_prop(LESNY_ELF_ZABIL_ZWIERZE_Z_LOREN) + 1);
 * 
 *     ob->catch_msg("Temu zwierzeciu, jako czlonek gildii Lesnych Elfow, " + ob->koncowka("winny","winna") + " jestes szacunek ! Spotka cie za to kara !\n");
 * }
 *
 */

void
reaguj_gildia(object ob)
{
    object *tab;
    int i;
    string str;

    if(!czy_karana_gildia) return;
    if (!present(ob, environment(this_object()))) return;

    ob->add_prop(PLAYER_I_ZABIL_ZWIERZE_Z_LOREN,ob->query_prop(PLAYER_I_ZABIL_ZWIERZE_Z_LOREN) + 1);

    (GILDIA)->wyrzuc_z_gildii(ob,ZABIL_ZWIERZE);
}


void
reaguj_inni(object ob)
{
    if(!czy_karani_inni) return;

 if (!present(ob, environment(this_object())))
	return;

    ob->add_prop(PLAYER_I_ZABIL_ZWIERZE_Z_LOREN,ob->query_prop(PLAYER_I_ZABIL_ZWIERZE_Z_LOREN) + 1);

}

void
do_die(object killer)
{
  if((GILDIA)->query_prawa(killer->query_real_name())>=LEV_CZLONEK) reaguj_gildia(killer);
  else reaguj_inni(killer);

  ::do_die(killer);
}