/* Obiekt reakcji na atak na Zamek
 * Silvy 3.10.98
 */
 
inherit "/d/Imperium/std/room";
#include "lakshmi.h"

int trwa_walka;
object *ochrona;

void na_stanowiska();

void
create_imperium_room()
{
  set_short("Atak na Zamek");
  set_long("To jest atak na Zamek Rycerzy Sigmara.\n");
  set_alarm(0.1, 60.0, "mniej_walki");
}

public
void
zostalem_zaatakowany(object kto)
{
  if(!trwa_walka)
  {
    kto->command("krzyknij Do broni! Wrogowie w zamku!");
    na_stanowiska();
  }
  trwa_walka += 1;
}
    
void
na_stanowiska()
{
  int i;

  ochrona = allocate(9);

  for(i=0;i<6;i++)
    if(!ochrona[i])
      ochrona[i] = clone_object(PATH + "npc/zam_gwar");

  set_alarm(0.1, 0.0, "na_stanowiska2");
}

void
na_stanowiska2()
{
  int i;
  for(i=6;i<9;i++)
    if(!ochrona[i])
      ochrona[i] = clone_object(PATH + "npc/zam_oficer");

  ochrona[0]->move(PATH + "zamek/przed_brama");
  ochrona[1]->move(PATH + "zamek/przed_brama");
  ochrona[6]->move(PATH + "zamek/przed_brama");
  ochrona[2]->move(PATH + "zamek/droga8");
  ochrona[3]->move(PATH + "zamek/droga8");
  ochrona[7]->move(PATH + "zamek/droga8");
  ochrona[4]->move(PATH + "zamek/hall2");
  ochrona[5]->move(PATH + "zamek/hall2");
  ochrona[8]->move(PATH + "zamek/hall2");
  
  for(i=0;i<9;i++)
    ochrona[i]->command("emote przybywa."); 
  for(i=6;i<9;i++)
    ochrona[i]->command("krzyknij Wszyscy do broni! Nie brac jencow!");
}   

void
rozejsc_sie()
{
   int i;
   for(i=0;i<9;i++)
   {
      if(ochrona[i])
      {
        if(i > 6) ochrona[i]->command("krzyknij Alarm odwolany!");
        ochrona[i]->command("emote oddala sie w strone zamkowych koszar.");
        ochrona[i]->remove_object();
      }
   }
}        
    
void
mniej_walki()
{
  if(!trwa_walka) return;
  trwa_walka -= 1;
  if(!trwa_walka) rozejsc_sie();
}

int
query_walka()
{
  return trwa_walka;
}