    ! 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.