! Torre11
! Programados todos los puzzles:
!  Cuchillo en esqueleto
!  Carbón en chimenea
!  Funda en cama que no se puede coger
!  Correas que se pueden cortar para coger funda
!  Ventana en calabozo con barrote flojo y funda que se ata para salir

Constant Story "La Torre^";
Constant Headline "(c) 2000 Zak y Carlos^";
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.";
	    if (funda has general)
		"La funda está atada a los barrotes.";
!	 Desatar:
!	    if (funda hasnt general)
!		"La funda no está atada a ningún sitio.";
!	    give funda ~general;
!	    "Desatas la funda de los barrotes.";
	 Tie:
	    if (second==0)
		"No tiene sentido hacer un nudo en la funda.";
	    if (second==correas or catre or esqueleto or cuchillo)
		"No tiene sentido atar la funda ahí.";
	    if (second==carbon or antorcha)
		"¿Estás loco?";
	    if (second==barrote_flojo)
		"Mejor atarla a un barrote sólido.";
	    if (second==barrotes or ventanuco) 
	    {
		give funda general;
		move funda to location;
		"Atas la funda a uno de los barrotes más sólidos y 
		la dejas colgando por la ventana.";
	    }
	],
	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,
	out_to [;
	    if (barrote_flojo hasnt moved)
		"No puedes salir por el ventanuco, los barrotes no
		dejan suficiente hueco.";
	    if (funda hasnt general)
		"No te atreves a saltar desde esta altura. Necesitas
		algún tipo de cuerda para descolgarte.";
	    print "Contorsionándote, logras hacer pasar tu cuerpo por
		la estrecha abertura que dejó el barrote, y te
		descuelgas con cuidado usando la funda a modo de
		cuerda.^^";
	    deadflag=2;
	    return ventanuco;
	],
 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 ventanuco "ventanuco" Mazmorra
 with	name 'ventanuco' 'ventana' 'tragaluz',
	description "A través de los barrotes de este ventanuco 
	    puedes ver el exterior de la torre, iluminado por una 
	    increíble luna llena.",
	door_to ExteriorTorre,
	door_dir out_to,
 has 	door open scenery;

Object barrotes "barrotes sólidos" Mazmorra
 with 	name 'barrotes' 'barrote' 'solido' 'barra' 'barras'
	    'solidos' 'fijo' 'fijos',
	description [;
	    if (barrotes hasnt general) 
	    {
		move barrote_flojo to Mazmorra;
		give barrotes general;
		"Al examinar de cerca los barrotes de la ventana,
		descubres uno que parece estar más flojo.";
	    }
	    if (barrote_flojo has moved) 
		"En la ventana falta un barrote. Parece que podrías
		pasar por el hueco.";
	    "Entre los barrotes hay uno que parece más flojo.";
	],
 has 	pluralname scenery;

Object barrote_flojo "barra" Limbo
 with 	name 'barrote' 'flojo' 'barra' 'floja',
	description [;
	    if (barrote_flojo has moved)
		"Es el barrote que quitaste del ventanuco de la 
		mazmorra.";
	    "Parece que este barrote podría quitarse con un poco de
	    esfuerzo.";
	],
	before [;
	 Push, Pull, Turn: "Aflojas el barrote.";
	],
	after [;
	 Take: "Con esfuerzo, consigues arrancar el barrote de su
	    sitio.";
	],
 has 	female concealed;


Object ExteriorTorre "Exterior de la Torre"
with description "¡Al fin libre de esta prisión! ¿Qué nuevas aventuras
	    te aguardan ahora?",
 has 	light;

	    

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.