/* Gory Czarne # # Wysoko # # 
 * <czarne17.c>
 * Karraluch           12-97
 * 
 */

#include "darkmts.h"
inherit PATH + "pogoda.c";

#define GRACZ_I_SPADA_Z_GORY "_gracz_i_spada_z_gory"

varargs string no_to_ladnie(object kto,int faza);
int i;

void
create_gory_czarne()
{
 add_prop(ROOM_I_LIGHT, 1);
 
 add_prop(ROOM_I_INSIDE, 0);
 
 set_short("Nad przepascia");
 set_long("@@opisik"); 
 
 add_exit(PATH + "czarne14.c","polnoc","@@danger",15);
 add_exit(PATH + "czarne18.c","poludnie","@@danger",15);
} 
string opisik()
{
return "  Dotarles na skraj glebokiej przepasci. Waskie przejscie wydaje "
    +  "sie bardzo niebezpieczne. Zawroc, lub stapaj ostroznie, gdyz "
    +  "dno wydaje sie bardzo odlegle. " + opis_przyrody() + "\n";
}

int 
danger(object kto)
{
 i=random(100);
 kto = this_player();
 if(kto->query_prop(GRACZ_I_SPADA_Z_GORY))
 {
     write("Nie jestes w stanie utrzymac rownowagi.\n");
     return 1;
 }    
 if (i>10)
     {
     write ("Udalo sie! Bezpiecznie pokonal" +
     	kto->koncowka("es","as") + " przepasc.\n");
     say (QCIMIE(kto,PL_MIA) + " bezpiecznie pokonal"+
         kto->koncowka("","a")+" przepasc.\n");
     return 0;
    }
 else 
    {
     write ("Niestety. Pokonujac waskie przejscie zle postawil"+
         kto->koncowka("es","as")+" stope. "
          + "Nie zdolasz utrzymac rownowagi!\n");
     say(QCIMIE(kto,PL_MIA) + " nie zdolal"+
         kto->koncowka("","a")+" utrzymac rownowagi i run"+kto->koncowka("al","ela")+
         " w przepasc!\n");
     kto->add_prop(GRACZ_I_SPADA_Z_GORY,1);
     no_to_ladnie(kto);
    
     return 1;
    }
}                        
    
varargs 
string no_to_ladnie(object kto, int faza = 0)
{
 switch (faza)
 {
  case 0:
  write ("Z przerazeniem obsuwasz sie na skraj przepasci...\n");
  set_alarm (3.0, 0.0, &no_to_ladnie(kto,faza + 1));
  break;
  case 1:
  write ("Razem z setka malych kamieni spadasz w dol...\n");
  set_alarm (5.0, 0.0, &no_to_ladnie(kto,faza + 1));
  break;
  case 2:
  tell_room(PATH + "czarne19.c","Nagle, jakas postac, "
   + "wymachujac rekoma, spada z gory uderzajac o ziemie.\n");
  kto->move_living("M",PATH + "czarne19.c",1);
  kto->heal_hp(-200);
  if(!(kto->query_hp())) { kto->do_die(this_object()); return "";}
  write ("Uhhh... Uderzyl"+kto->koncowka("es","as")+" w ziemie stanowczo za wczesnie, aby to bylo dno "
       + "tej przepasci!\n");
  set_alarm (6.0, 0.0, &no_to_ladnie(kto,faza + 1));
  break;
  case 3:
  
  
  write ("Otwierasz powoli oczy. Twoje plecy porzadnie ucierpialy... Lecz chyba "
       + "zyjesz?\n");
  break;
  }
  return "";
}

void
leave_inv(object ob, object to)
{
    ob->remove_prop(GRACZ_I_SPADA_Z_GORY);
    ::leave_inv(ob,to);
}    
