/* Zejscie wglab */

inherit "/d/Imperium/std/room.c";

#include "darkmts.h"

int przywiazana,proby;
int lina_jest, gobel;

#define PLAYER_I_WZIAL_LINE "_player_i_wzial_line"
#define GRACZ_I_QUEST_W_CZARNYCH "_gracz_i_quest_w_czarnych_"
#define PLAYER_I_WZIAL_GOBELIN "_player_i_wzial_gobelin"

void init()
{
 ::init();

 add_action("wiaz","przywiaz");
 add_action("wiaz","dowiaz");
 add_action("odw","odwiaz");
 add_action("ligob","zdejmij");
 add_action("ligob","urwij");
 add_action("ligob","odczep");
}

int ligob(string co)
{
 object gob,lin;

 if (co == "gobelin")
 {
  if (this_player()->query_prop(PLAYER_I_WZIAL_GOBELIN))
  {
   write ("Strach przed klatwa odpedza twoja zachlannosc.\n");
   return 1;
  }
  else 
  {
   say(QCIMIE(this_player(),PL_MIA) + " zdejmuje gobelin ze sciany.\n");
   write ("Zdejmujesz ze sciany jeden z gobelinow.\n");
   gob = clone_object (OPATH + "gobelin.c");
   gob->move(this_player());
   this_player()->add_prop(PLAYER_I_WZIAL_GOBELIN,1);
   gobel = 0;
   return 1;
  }
 }

 if (co == "line" || co == "ozdobna line" || co == "line ze sciany")
 {
   if(!lina_jest)
   {
       notify_fail("Lina juz jest zdjeta. To co zostalo nie nadaje sie "+
          "do niczego.\n");
       return 0;
   }    
   say(QCIMIE(this_player(),PL_MIA) + " zdejmuje line ze sciany.\n");
   write ("Zdejmujesz ze sciany ozdobna line.\n");
   lin = clone_object (OPATH + "lina.c");
   lin->move(this_player());
   this_player()->add_prop(PLAYER_I_WZIAL_LINE,1);
   lina_jest = 0;
   return 1;
 }

return 0;
}
  
int wiaz(string co)
{
 object lin;

 if ((co == "line do belki" || co == "line do konstrukcji" || 
      co == "ozdobna line do belki") && (present("lina",this_player())))
 {
  przywiazana = 1;
  lin = present("lina",this_player());
  
  lin->remove_object();
  say(QCIMIE(this_player(),PL_MIA) + " przywiazuje line do belki.\n");

  write("Przywiazujesz line do belki. Lina spada w dol z cichym szelestem.\n");
  return 1;
}
 notify_fail("Co chcesz przywiazac i do czego?\n");

 return 0;

}

int odw(string co)
{
 object lin;
 
 if (co == "line" && przywiazana == 1) 
 {
  przywiazana = 0; 
 
  lin = clone_object(OPATH + "lina.c");

  lin->move(this_player());
  say(QCIMIE(this_player(),PL_MIA) + " odwiazuje line od belki.\n");

  write("Odwiazujesz line od belki.\n");
  return 1;
 }


 notify_fail("Co chcesz odwiazac?\n");

 return 0;
}

string linac()
{

 if (przywiazana == 1) return " ozdobna lina ze sciany oraz ";
 if (przywiazana == 0) return " ";

}

int lina()
{
 int proby;
 proby = this_player()->query_prop(GRACZ_I_QUEST_W_CZARNYCH);
 if (przywiazana == 1) return 0;
 
 if (przywiazana == 0) 
 {
  if (proby < 3) 
  {
   write ("Chcesz tam skoczyc? Jesli tak to probuj...\n");
   proby += 1;
   this_player()->add_prop(GRACZ_I_QUEST_W_CZARNYCH,proby);
   return 1;
  }

  if (proby == 3)
  {
   write ("Przed toba dlugi lot w dol.\n");
   this_player()->remove_prop(GRACZ_I_QUEST_W_CZARNYCH);
   this_player()->move_living("dol",PATH + "wnetrze2.c",1);
   this_player()->set_hp(0);
   this_player()->do_die(this_object());
   return 1;
  }
 }
return 0;
}

void reset_imperium_room()
{
 lina_jest = 1;
 gobel = 1;
 proby = 0;
 przywiazana = 0;
}
void
create_imperium_room()
{
 add_prop(ROOM_I_LIGHT,0);
 
 add_prop(ROOM_S_DARK_LONG, "  Znalazles sie w niewielkim pomieszczeniu. "
			  + "Jest tu sucho i cicho, ale brak jakiegokolwiek "
			  + "zrodla swiatla.\n");
 
 add_prop(ROOM_I_INSIDE,1);
 
 set_short("W malym pomieszczeniu");

 set_long("@@dlugi");

 add_exit(PATH+"wnetrze2.c", "dol", "@@lina");

 add_item(({"sciany","sciane","gobelin","gobeliny"}),"@@opis_scian");
 add_item("line","@@opis_liny"); 
 
 add_item(({"dziure","podloge"}),
            "Na srodku podlogi znajduje sie gleboki otwor. "
          + "Niewatpliwie zostal zrobiony celowo, lecz w jakim celu "
          + "- ciezko odgadnac.\n");

 add_item(({"belki","konstrukcje"}),"Drewniana konstrukcja stoi tu "+
     "niewiadomo po co.\n");

 lina_jest = 1;
 gobel = 1;
 przywiazana = 0;
 proby = 0;
 reset_imperium_room();
}

string
opis_scian()
{
    string op;
    
    op = "Na scianach wisza cenne gobeliny. Szlachetny material wyszywany "
        + "jest zlotem i srebrem, a kolory sa swieze i starannie dobrane. ";
    if(lina_jest)
        op += "Ponad nimi wisi blekitna, ozdobna lina, przeplatana zlotymi nicmi."; 
    op += "\n";
    
    return op;
}

string
opis_liny()
{
     if(lina_jest) return"Przy samym suficie wisi ozdobna lina, "+
         "przeplatana zlotymi nicmi.\n";
     if(przywiazana) return"Do belki przywiazana jest ozdobna lina.\n";
     return"Nie zauwazasz niczego takiego.\n";
}          

string
dlugi()
{
    string str;
    str = " Jest to pomieszczenie majace jakies siedem krokow na siedem. "
	+ "Sklepienie ma ksztalt wysokiej kopuly. Sciany sa ozdobione "
	+ "gobelinami wykonanymi z wielkim przepychem. W podlodze "
	+ "znajduje sie dziura o srednicy okolo metra, z jej wnetrza "
	+ "zionie mrocznym chlodem. Nad nia stoi drewniana konstrukcja "
	+ "skladajaca sie z kilku grubych belek.";
    if(lina_jest||przywiazana)	
      str += " Do jednej z nich przywiazana jest ozdobna lina.\n";
    else
      str += "\n";
      
    return str;    
}    
 