! Torre10
! Programados cuatro puzzles:
!  Cuchillo en esqueleto
!  Carbón en chimenea
!  Funda en cama que no se puede coger
!  Correas que se pueden cortar para coger la funda

Constant Story "La Torre^";
Constant Headline "(c) 2000 Zak y Carlos^";
Constant MANUAL_PRONOUNS;
Include "Parser";
! Aqui iría la definición de mensajes de librería.
Include "Verblib";
! Aqui irian las definiciones de las localidades
! y los objetos del juego

! El limbo es el lugar donde están los objetos que no
! están en el juego
Object Limbo "Limbo"
with description "Eh. ¿cómo has llegado aquí? Malditos
  betatesters...",
has light;



Object 	PuertaPrincipal "Puerta Principal"
 with   description "Estás junto a la puerta principal. 
            A su lado puedes una mesa de guardia y en la pared 
            norte hay una chimenea.",
       	e_to Dormitorio,
 has 	light;


Object carbon "trozo de carbón" Limbo
with name 'trozo' 'carbon',
     description "Un trozo de negro carbón que parece haber
                  sobrevivido al fuego."; Object chimenea "chimenea" PuertaPrincipal
with name 'chimenea' 'hogar',
     description [;
          print "Hace mucho tiempo que no arde fuego alguno
              en esta vieja chimenea";
          if (chimenea hasnt general) {
             move carbon to PuertaPrincipal;
             print ". Un trozo de carbón es todo lo que queda
                 del antiguo hogar";
             give chimenea general;
          }
          ".";
     ],
has female scenery;

Object 	Dormitorio "Dormitorio"
 with   description "Varios maltrechos catres se amontonan en esta 
	    habitación.",
	w_to PuertaPrincipal,
	e_to EscaleraCaracol1,
 has 	light;

Object catres "catres" Dormitorio
 with 	name 'catres' 'camas' 'camastros',
	description "Todos los catres han sido reducidos a una masa
	    informe de madera, excepto uno que aún está bien
	    conservado.",
	before [;
	 Search, LookUnder: <<Examine catre>>;
	],
 has 	scenery pluralname;

Object catre "catre" Dormitorio
 with	name 'catre' 'cama' 'camastro' 'bien' 'conservado' 'buen'
	    'estado' 'entero',
	description [;
	    if (catre hasnt general) 
	    {
		move funda to Dormitorio;
		move correas to Dormitorio;
		give catre general;
	    }
	    if (funda has moved)
		"Sólo restos de paja cubren la cama.";
	    "Una funda de tela cubre la cama.";
	],
	before [;
	 Search: <<Examine catre>>;
	 LookUnder: "No hay nada debajo del catre.";
	],
 has 	scenery;


Object funda "funda" Limbo
 with 	name 'funda',
	description "La funda parece bastante resistente.",
	before [;
	 Take: if (correas hasnt general)
	     "La funda está sujeta a la cama por unas correas.";
	],
	after [;
	 Take:
	    if (funda hasnt moved) 
	    {
	    	move paja to Dormitorio;
		"Con las correas cortadas logras coger la funda.";
	    }
	],
 has 	female;

Object correas "correas" Limbo
 with 	name 'correas' 'correa' 'cuero',
	description [;
	    print "Son unas correas de cuero que ";
	    if (correas has general) "cuelgan de la cama.";
	    "sujetan la funda a la cama.";
	],
	before [;
	 Take:
	    "Las correas forman parte de la cama. No puedes 
	    llevártelas.";
	 Cut:
	    if (correas has general) "Ya las has cortado.";
	    if (second~=0 or cuchillo) "Eso no corta.";
	    if ((second==0) && (cuchillo notin player))
		"Necesitas tener algo cortante.";
	    give correas general;
	    "Cortas las correas con el cuchillo.";
	],
 has 	female pluralname scenery;
	    

Object paja "paja" Limbo
 with	name 'paja',
	description "Paja húmeda e inutil.",
	before [;
	 Take: "No necesitas eso.";
	],
 has 	female scenery;

Object 	EscaleraCaracol1 "Escalera de caracol"
 with 	description "El viento ulula a través de la empinada 
	    escalera de caracol, una vieja armadura parece vigilar 
	    la escalera.",
	u_to EscaleraCaracol2,
	w_to Dormitorio,
 has 	light;

Object 	Mazmorra "Mazmorra"
 with 	description "Una silenciosa estancia débilmente alumbrada 
	    por los rayos de luna que se filtran a través de un 
	    pequeño ventanuco. El suelo está lleno de paja, colgando 
	    de unos grilletes en la pared observas un esqueleto 
	    humano.",
	e_to EscaleraCaracol2,
 has 	light;

Object Esqueleto "esqueleto" Mazmorra
 with	name 'esqueleto' 'humano' 'muerto' 'cadaver',
	description [;
	    print "Los huesos amarillentos, las cuencas vacías";
	    if (Esqueleto hasnt general) 
	    {
		move cuchillo to Mazmorra;
		print ". Junto a él ves un pequeño cuchillo";
		give Esqueleto general;
	    }
	    ".";
	],
  	before [;
    	 Search, LookUnder: if (Esqueleto hasnt general)
	 {
	     move cuchillo to Mazmorra;
	     give Esqueleto general;
	     "Al acercarte al esqueleto ves a su lado un pequeño
	     cuchillo.";
	 }
	 else "Este desgraciado no llevaba nada más.";
   	],
 has 	scenery;

Object 	EscaleraCaracol2 "Escalera de caracol"
 with 	description [;
            print "Los desgastados peldaños de piedra resbalan en 
 	      	ocasiones. A mitad de la escalera una antorcha en la 
	      	pared impide que la oscuridad sea completa.^";
            if (EscaleraCaracol2.w_to==Mazmorra)
               	print "^Parte de la pared oeste ha deslizado 
		    mostrando una entrada.^";
        ],
   	d_to EscaleraCaracol1,
	w_to 0,
	u_to AltoTorre,
 has 	light;


Object antorcha "antorcha" EscaleraCaracol2
with   name 'antorcha',
       before [;
         Take, Turn:  "La antorcha está incrustada en la pared.";
         Blow:  "Iluso, el fuego que arde en esta antorcha no
                 es de esde mundo.";
         Push: if (EscaleraCaracol2.w_to==0) {
                     EscaleraCaracol2.w_to = Mazmorra;
                     "Al empujar la antorcha una porción de pared se
                     abre al oeste dando acceso a una estancia.";
                 }
                 else "La antorcha no cede más.";
         Pull: if (EscaleraCaracol2.w_to == Mazmorra) {
                    EscaleraCaracol2.w_to = 0;
                    "Al tirar la antorcha, la puerta secreta se cierra 
                    de nuevo.";
                 }
                 else "La antorcha no cede más.";
              ],
has female concealed;     

Object AltoTorre "Alto de la torre"
 with 	description "Una gran cama preside la estancia, los gruesos 
	    barrotes no permiten la salida por la ventana, aunque de 
	    todos modos estaría demasiado alta.",
	d_to EscaleraCaracol2,
 has 	light;


Object cuchillo "pequeño cuchillo" Limbo
with name 'pequeno' 'cuchillo' 'punal' 'hoja' 'cuchilla',
     description "Un pequeño cuchillo, cubierto de herrumbre. No 
	    parece haberle servido de mucho a su malogrado poseedor.";


[ Initialise ;
    ! Lugar de comienzo: la puerta principal
    location=PuertaPrincipal;
    
    ! Activamos esta variable para que la descripción de los lugares
    ! se repita siempre, incluso si el jugador ya ha estado allí
    lookmode=2;

    ! Mensaje de bienvenida
    "¡¡Bienvenido a mi primer juego!!^";
];
Include "SpanishG";
! Aqui irían los verbos y acciones específicas de nuestro juego.