inherit "/d/Imperium/std/zol_imp";

#include "std_imp.h"
#include <pl.h>
#include <macros.h>

object patrol_leader;

public void
create_czlonek_patrolu()
{
   ustaw_nazwe(({ "gwardzista", "gwardzisty", "gwardziscie", "gwardziste",
       "gwardzista", "gwardziscie" }), ({ "gwardzisci", "gwardzistow",
       "gwardzistom", "gwardzistow", "gwardzistami", "gwardzistach" }),
       PL_MESKI_OS);
   set_stats(({80,80,80,80,80,80}));
   
   ustaw_shorty(({ "gwardzista", "gwardzisty", "gwardziscie",
       "gwardziste", "gwardzista", "gwardziscie" }), ({ "gwardzisci",
       "gwardzistow", "gwardzistom", "gwardzistow", "gwardzistami",
       "gwardzistach" }), PL_MESKI_OS);
   
   ustaw_odmiane_rasy(PL_CZLOWIEK);
}

nomask void
create_zolnierz()
{
    set_random_adj(1);
    
    create_czlonek_patrolu();
    
    set_follow_enemy(); /* Nie powinien gonic samodzielnie, 
    			   tylko razem z dowodca */
    set_aggressive_mil(0); /* Tak samo atkowac. */
    
    set_whimpy(60); /* Wymiana przy 60% hp */
}

public void
run_away()
{
   patrol_leader->rozkaz_zaslonic(TO);
}

nomask void
set_my_leader(object leader)
{
   patrol_leader=leader;
}

nomask object
query_my_leader()
{
   return patrol_leader;
}

/* Przy przedefiniowaniu tej f-cji trzeba na koncu wywolac ta wersje. */

public void
patrol_hook_attacks(object kogo)
{
   kogo->catch_msg(capitalize(TO->short(kogo,PL_MIA)) + " atakuje cie!\n");
   tell_room(ENTO, QCIMIE(TO,PL_MIA) + " atakuje " + QIMIE(kogo, PL_BIE) + 
    ".\n", kogo);
}

public void
notify_you_killed_me(object dead)
{
   if (patrol_leader->return_to_patrol(dead))
      {
         if (!dead->query_prop(IMPERIUM_I_STWOR_CHAOSU))
          patrol_leader->command("emote oglasza: Przestepca zostal ukarany!");
         else
          patrol_leader->command("emote oglasza: Kolejny pomiot chaosu dostal za swoje!");
      }
      
   patrol_leader->loguj_zabicie(dead);
      
   ::notify_you_killed_me(dead);
}

public void
notify_enemy_gone(object enemy)
{
   patrol_leader->notify_enemy_gone(enemy);
}

public void
attacked_by(object wrog)
{
   ::attacked_by(wrog);
   patrol_leader->follow_enemy(wrog);
   patrol_leader->patrol_assist(TO);
}

public int
query_have_random_adj()
{
   return 1;
}