/* Vaktoth 1997 */


#pragma no_clone
inherit "/d/Imperium/std/room";
#include "/sys/stdproperties.h"
#include "/sys/macros.h"
#include "defs.h"
#include <poison_types.h>
#include <ss_types.h>
#include <pl.h>
#include <language.h>

object door, oltarz, oltarz1, ob1, ob2, ob3, ob4, ob5, ob6;
object gracz;

void zemsta_skavenow(object gracz);

#define PLAYER_I_ZNISZCZYL_OLTARZ "_player_i_zniszczyl_oltarz"

create_imperium_room()
{
   
  
  set_long("@@long_desc");
  set_short("Swiatynia Rogatego Szczura");

    
  door = clone_object(OBJECTS + "drzwi1.c");
  door->move(TO);
  door->set_key(STALOWY_KLUCZ); 
  oltarz = clone_object(OBJECTS + "oltarz.c");
  oltarz->move(TO);
 
  INSIDE;

  set_alarm(60.0, 180.0, "talk");

}
 string
 long_desc()
{
 return("Znalazl" + TP->koncowka("es", "as") + " sie w niewielkiej komnacie o ksztalcie" +
    " oktogramu. Powietrze ma tu ciezki, kwaskowaty zapach, zas sciany wydaja ci sie" +
    " nierzeczywiste, jakby znajdowaly sie w innym wymiarze, w ktorym panuja zupelnie inne" +
    " reguly geometrii przestrzennej. Wyczuwasz niewyobrazalne zlo czajace sie w zakamarkach" +
    " pomieszczenia - twoj szosty zmysl mowi ci o niebezpieczenstwie - straszliwym i" +
    " niewyobrazalnym. Wewnetrzny glos mowi ci tylko: UCIEKAJ!\n");
} 

void 
talk()
{
         tell_room(this_object(), 
           "Twoj ciezki oddech roznosi sie echem po pomieszczeniu.\n");
}


void init() 
{
  ::init();
  add_action("do_destroy_altar", "zniszcz");
}

int
do_destroy_altar(string str)
{
  notify_fail("Zniszcz co?\n");

  if(!str)
  return 0;

  if(str == "oltarz")
  {
      
      if(!oltarz)
         {
          write("Nie ma tu zadnego oltarza, ktory nadawalby sie do zniszczenia!");
          return 0;
         }
      write("Koncentrujesz sie tylko i wylacznie na znienawidzonym oltarzu. ");
      write("Powoli wzi" + TP->koncowka("ales", "elas") + " potezny zamach i uderzy" +
      TP->koncowka("les", "las") + " piescia w oltarz, ktory rozsypal sie na kawalki!!\n"); 
      say(QCTNAME(TP) + " wzi" + TP->koncowka("al", "ela") + " potezny zamach i uderz" +
      TP->koncowka("yl", "yla") +" piescia w oltarz, ktory, ku twemu zdziwieniu rozsypal sie na kawalki!!.\n");
      oltarz->remove_object(oltarz);
      oltarz1 = clone_object(OBJECTS + "oltarz1.c");
      oltarz1->move(TO);
      
      gracz = this_player();
      gracz->add_prop(PLAYER_I_ZNISZCZYL_OLTARZ,1);
      set_alarm(0.1,0.0,&zemsta_skavenow(gracz));

      return 1;
   } 
}

void
zemsta_skavenow(object gracz)
{
  ob1 = clone_object( NPCS + "stormvrm.c");
        tell_room(TO,"Do pomieszczenia wbiega skaven, glosno przeklinajac!\n");
        ob1->move(TO);
        ob1->command("zabij " + gracz->query_real_name(PL_BIE));
        ob1->set_follow(gracz,0.5);
  ob2 = clone_object( NPCS + "stormvrm.c");
        tell_room(TO,"Do pomieszczenia wbiega skaven, glosno przeklinajac!\n");
        ob2->move(TO);
        ob2->command("zabij " + gracz->query_real_name(PL_BIE));
        ob2->set_follow(gracz,0.5);
  ob3 = clone_object( NPCS + "stormvrm.c");
        tell_room(TO,"Do pomieszczenia wbiega skaven, glosno przeklinajac!\n");
        ob3->move(TO);
        ob3->command("zabij " + gracz->query_real_name(PL_BIE));
        ob3->set_follow(gracz,0.5);
}

void
reset_imperium_room()
{
     if(!oltarz)
     {
      tell_room(TO,"Czujesz w powietrzu jakas zlowroga sile. Robi ci sie " +
          "goraco, nieznosnie goraco. Wszystko zaczyna drzec, widzisz, ze " +
          "zniszczony oltarz przechodzi niezwykla metamorfoze.\n"); 
      oltarz1->remove_object(oltarz1);
      oltarz = clone_object(OBJECTS + "oltarz.c");
      oltarz->move(TO);
      if(ob1||ob2||ob3)
      {
          if(ob1)
          {
              ob1->command("emote wybiega z pomieszczenia.");
              ob1->remove_object(ob1);
          }    
          if(ob2) 
          {
              ob2->command("emote wybiega z pomieszczenia.");
              ob2->remove_object(ob2);
          }
          if(ob3)
          {
              ob3->command("emote wybiega z pomieszczenia.");
              ob3->remove_object(ob3);
          }
      }
     }  
}

