!% -~D !% -~S !% +include_path=..\lib\base,..\lib\contrib,..\games\Encierro !% +language_name=Spanish !Poner "% -~S" (sin las ") permite compilar para generar archivo Encierro.z5 (máquina Z versión 5) !Poner "!% -~D" al principio del archivo (sin las ") permite compilar en modo Release (No Debug) ! "Encierro" ! ! REALIZADO POR: Sebastián Armas ! ! Copyright (C) 2021 ! ! v01.01.01 ! ! SECCION CONSTANTES Y VARIABLES GLOBALES ! Constant Story "~Encierro~^ La mente no siempre puede confinarse^"; Constant Headline "^Realizado por: Sebastián Armas (Incanus)^ (C) Año 2021^^ Ingresa AYUDA para indicaciones generales y otros comandos.^ Ingresa PISTAS para resolver problemas o salir de atascos.^ Ingresa ANIMAR para alternar entre texto animado y texto normal.^^"; Serial "010101"; Release 1; Constant MANUAL_PRONOUNS; ! No queremos usar los comandos 'Lugares' y 'Objetos' Constant NO_PLACES; ! No queremos los mensajes estándar ! de la librería INFSP para usar SpanishLM Constant SIN_MENSAJES; Constant ADMITIR_COMANDO_SALIDAS; ! Tenemos Curiosidades Constant AMUSING_PROVIDED; ! Definiciones para curiosidades [amusing; ZIPI_RunMenuT(ZIPI_Menu9); ]; ! Velocidad de Texto Animado para los cortos Constant vel_texto_animado 20; ! Puntuación con sistema de tareas Constant MAX_SCORE 12; Constant TASKS_PROVIDED; Constant NUMBER_TASKS = 12; ! Variable para lectura de nota Global nota_leida=0; ! Variable para incendio en el apartamento Global quema_apto=0; ! Variable para resolución de puzzles Global mundos_visitados=0; ! Variables para usar SpanishLM Global FORMER__TX = "tu antiguo ~yo~"; Global YOURSELF__TX = "ti mismo"; Global CANTGO__TX = "No puedo ir por ahí."; Global IS__TX = " veo"; Global ARE__TX = " veo"; Global IS2__TX = "veo "; Global ARE2__TX = "veo "; Global YOU__TX = "Tú"; Global PARTICULA_TE = "te"; ! Reemplazo de la rutina 'Changeplayer' ! definida en 'parserm.h' ! con implementación de SpanishLM Replace Changeplayer; ! El array que contiene los puntos por cada tarea realizada... ! 0 1 2 3 4 5 6 7 8 91011 (en total son 12 tareas) Array task_scores -> 1 1 1 1 1 1 1 1 1 1 1 1; ! (de 1 punto cada una) ! Codigo para Puntuacion por Tareas ! Imprimir el nombre de cada tarea dada [ PrintTaskName task; print "por "; switch(task) { 0: "nadar en el mar de la playa"; 1: "recoger conchitas en la playa"; 2: "recoger conchitas del fondo del mar"; 3: "agitar las flores para atraer insectos"; 4: "irrigar el árbol desde la laguna"; 5: "abrazar al árbol"; 6: "enderezar la estatua sobre el pedestal"; 7: "trasplantar la planta al erial"; 8: "pescar en la tundra"; 9: "reparar la grieta en el iglú"; 10: "limpiar el monolito del templo"; 11: "ordenar jergón y utensilios en caverna"; } ]; ! ! SECCION LIBRERIAS ! ! Librerías base de Inform 6 Include "Parser"; Include "Verblib"; ! Librería de cortos animados ! modificado para poner texto de corrido ! si velocidad_texto vale 0 (cero) Include "Cortos_mod"; ! Librería de decorados Include "Decorado"; ! Librería INFSP Include "SpanishG"; ! Librería para respuestas en diferentes conjugaciones ! en version modificada que invoca los .h escenciales ! para usar sólo la primera persona presente Include "SpanishLM_sp1p"; ! Librería para menus Include "zipi.inf"; ! Menu Ayuda Include "Menu_Ayuda.inf"; ! ! SECCION CLASES GENERICAS ! ! Meta clase para Localidades Class Localidad with description [; if ( (action == ##Look) || (self hasnt visited) ) self.descripcion_larga(); else self.descripcion_corta(); ], descripcion_larga "descripción larga de la habitación", descripcion_corta "descripción corta de la habitación", before [; Dig: if (noun == nothing or player) "¿Dónde voy a cavar?"; Fill: if (noun hasnt container) print_ret "No puedo poner cosas en ", (the) noun, "."; else if (second == nothing) print_ret "¿Con qué lleno ", (the) noun, "?"; ! En general <> es <> else <>; Swim: if (noun == nothing) "No estoy cerca del agua..."; Wake : "Más despierto, imposible."; Listen: if (noun == nothing) "Todo esta en silencio"; ], has light; ! Clases por de localidades por 'Mundo' ! Meta clase para Objetos del escenario manipulables por el jugador y que ! pueden ser parte de algún puzzle Class Objeto_Escenario class object with description[; if (self hasnt general) { give self general; self.descripcion_larga(); } else { give self ~general; self.descripcion_corta(); } rtrue; ], descripcion_larga "descripción larga del objeto", descripcion_corta "descripción corta del objeto", before [; Search: if (self hasnt container) <>; Consult: <>; Examine: rfalse; Rub: ! Ajustar para Objeto_Localidad "No voy a estar limpiándolo todo, tengo otras cosas que hacer."; Burn: "Mejor que no: los incendios siempre terminan en tragedia."; ! Take, Push, Pull: ! "No voy a empezar a desordenarlo todo..."; Smell: "No parece que huela a nada especial."; Listen: "No produce ningún sonido."; ], after [; Examine: if (self hasnt visited) give self visited; ] has scenery; ! Meta clase para Objetos de Localidad Class Objeto_Localidad class Objeto_Escenario with ! Un objeto_localidad que representan una sola localidad ! implementa found_in con la localidad a la que ! representa el objeto como primera localidad listada description [; ! Si estamos en la localidad que ! representa el objeto_localidad ! <> es <> if (location == (self.&found_in)-->0) <>; else { print "Tendría que "; if ((self.&found_in)-->0 == Bano or CuartoDucto or Caverna or Templo or Iglu) print "entrar en ", (the) noun; else print "ir ", (al) noun; print " para mirar"; if (self has female) print "la"; else print "lo"; if (self has pluralname) print "s"; "."; } ], before [; ! <> ! desplaza al jugador a la localidad ! que representa el objeto_localidad GoIn, Enter: if (location == (self.&found_in)-->0) print_ret "Ya estoy en ", (the) noun, "."; else { if ( (location == Sala) && (Pasillo == (self.&found_in)-->0) ) <>; if ( (location == Pasillo) && (Sala == (self.&found_in)-->0) ) <>; else { PlayerTo(((self.&found_in)-->0),2); rtrue; } } ! <> ! implementa <> GetOff: if (location == (self.&found_in)-->0) <>; else print_ret "No estoy en ", (the) noun, "."; Receive: ! Si estamos en la localidad que ! representa el objeto_localidad ! <> es <> if (location == (self.&found_in)-->0) <>; else { print "Tendría que "; if ((self.&found_in)-->0 == Bano or CuartoDucto or Caverna or Templo or Iglu) print "entrar en ", (the) second; else print "ir ", (al) second; " para eso."; } Smell: <>; Dig: <>; Listen: <>; Push, Pull, Take: print_ret "No creo poder con ", (the) noun, "..."; Swim: print_ret "No puedo nadar en ", (the) noun, "..."; ] has enterable supporter; ! Objeto para que reaccione a <> Objeto_Localidad Objeto_Localidad_Lugar "lugar" with name_m 'lugar' 'sitio' 'entorno', ! 'espacio', name_f 'localidad', description [; <>; ], before [; GoIn, Enter: "¿A dónde, en particular?"; GetOff: <>; Receive: <>; ], found_in [; rtrue; ], has male; ! Objeto para que reaccione a <> Objeto_Localidad Objeto_Localidad_Habitacion "habitación" with name_f 'habitacion' 'pieza', name_m 'cuarto', description [; <>; ], before [; GoIn, Enter: "¿A dónde, en particular?"; GetOff: <>; Receive: <>; ], found_in Sala Balcon Dormitorio Bano Cocina Iglu Caverna Templo, ! No se incluye CuartoDucto para evitar ambiguedad ! con Objeto_Localidad_CuartoDucto has female; ! Clases para objetos de decorados de Luz, Sombra, Aire, Temperatura Class Objeto_Luz class Objeto_Escenario with name 'luz', description "El nivel de luz es el normal.", before [; if (action ~= ##Examine) "No creo que pueda hacer eso con la luz..."; ], has female; Class Objeto_Sombra class Objeto_Escenario with name_f 'semi' 'penumbra' 'sombra' 'oscuridad', name_fp 'penumbras' 'sombras', description "Las sombras nos rodean.", before [; if (action ~= ##Examine) "No creo que pueda hacer eso con la sombra..."; ], has female; Class Objeto_Aire class Objeto_Escenario with name_m 'aire' 'viento', name_f 'brisa', description "El aire que respiro.", before [; if ( (action ~= ##Examine) && (action ~= ##Smell) ) "No creo que pueda hacer eso con el aire..."; ], has male; Class Objeto_Temperatura class Objeto_Escenario with name_f 'temperatura', name_m 'calor' 'frio', adjectives 'ambiente', description "La temperatura ambiente.", before [; if (action ~= ##Examine) "No creo que pueda hacer eso con la temperatura..."; ], has female; ! Meta clase para Objetos que el jugador puede coger y manipular ! y que son parte de algún puzzle Class Objeto_Puzzle class object with description [; if (self hasnt general) { give self general; if (self.descripcion_larga ofclass string) self.descripcion_larga(); else indirect(self.descripcion_larga); } else { give self ~general; if (self.descripcion_corta ofclass string) self.descripcion_corta(); else indirect(self.descripcion_corta); } rtrue; ], descripcion_larga "descripción larga del objeto", descripcion_corta "descripción corta del objeto", before [; Consult: <>; Search: if (self hasnt container) <>; Smell: "No parece que huela a nada especial."; Listen: "No produce ningún sonido."; ], after [; Examine: if (self hasnt visited) give self visited; ] has ~general; ! Clase para el personaje del jugador Class Objeto_Jugador_Personaje with name_m 'jugador' 'yo' 'cuerpo' 'ti' 'tu' 'mismo' 'brazo' 'antebrazo' 'dedo' 'pulgar' 'codo' 'talon' 'pecho' 'torso' 'cuello', name_mp 'brazos' 'antebrazos' 'dedos' 'pulgares' 'codos' 'talones', name_f 'piel' 'persona' 'mano' 'pierna' 'espalda' 'oreja' 'rodilla' 'cadera', name_fp 'manos' 'piernas' 'orejas' 'rodillas' 'caderas', before [; Search, Consult: <>; ], has animate male; ! Clase para Objetos de ropa del jugador ! cuando la ropa no es parte de un puzzle Class Objeto_Ropa_Jugador class Objeto_Puzzle with name_f 'ropa', has clothing worn scenery; ! Se agrega scenery para que no tome "CAVA" "SIENTATE" "ENTRA" ! El Limbo para objetos que no están disponibles ! al entrar en una localidad Localidad Limbo "El Limbo" with description "¡Eh! ¿Cómo has llegado aquí? Estos Testers..."; ! ! SECCION LOCALIDADES, PERSONAJES Y OBJETOS ! ! * Mundo El Apartamento * Class Localidad_El_Apartamento class Localidad with before [; Dig: if (noun == nothing or d_obj or u_obj) { if (location == Pasillo or CuartoDucto) "No creo que la administración del edificio les gustaría si empezara una remodelación sin avisarles."; else "No creo que a mis vecinos de abajo les gustaría si empezara una remodelación sin avisarles, para no hablar de la administración del edificio."; } Go: if (player in Sofa or Silla or Cama) "Tendré que levantarme para eso."; Search, Touch: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (second == nothing) { if (location == Pasillo or CuartoDucto) <>; else <>; } else { if (location == Pasillo or CuartoDucto) <>; else <>; } } Examine: if (noun == u_obj) { if (location == Pasillo or CuartoDucto) <>; else if (location == Balcon) <>; else <>; } else if (noun == d_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } Rub: if (noun == u_obj) { if (location == Pasillo or CuartoDucto) <>; else if (location == Balcon) "No alcanzo..."; else <>; } else if (noun == d_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } Enter, Acostar: if (noun == u_obj) { if (location == Pasillo or CuartoDucto) <>; else if (location == Balcon) "Sería lindo poder hacerlo, pero no alcanzo..."; else <>; } else if (noun == d_obj) "Por muy limpio que esté, no creo que el piso sea cómodo para descansar."; Climb: if (noun == u_obj) { if (location == Pasillo or CuartoDucto) <>; else if (location == Balcon) "Sería lindo poder hacerlo, pero no alcanzo..."; else <>; } else if (noun == Apto_Techo or Apto_Paredes) "A veces creo que he llegado a ese punto de desesperación... pero todavía no.^ La semana próxima, ya veremos."; else if (noun == Edif_Techo or Edif_Paredes) { print "Cuando me toque limpiar las áreas comunes, puede que no me quede más remedio que conseguir una escala para limpiar "; if (noun == Edif_Paredes) print "la parte de arriba de "; print (the) noun; "... pero esta semana no es mi turno.^ Paso."; } Pray: "Mi vida espiritual está en pausa, estos días."; Sleep: "Qué más quisiera, pero, bueno, aun no es la hora..."; Blow, WaveHands, Jump: "Me pongo a hacer morisquetas y meneo los brazos y piernas. De vez en cuando hay que hacer locuras para no desquiciarse."; Strong: "Mierda, mierda y más mierda. El encierro me tiene harto..."; Smell: if (noun == nothing) switch (location) { Balcon: <>; Pasillo: <>; ! CuartoDucto tiene respuesta específica. default: <>; } else if (noun == d_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } else if (noun == u_obj) switch (location) { Pasillo: <>; CuartoDucto: <>; Balcon: <>; default: <>; } Listen: if (noun == nothing) switch (location) { Balcon: <>; Pasillo: <>; CuartoDucto: <>; default: <>; } else if (noun == d_obj or u_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } Reparar, Take: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } Push: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } Pull: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } Burn: if (noun == u_obj) { if (location == Pasillo or CuartoDucto) <>; else if (location == Balcon) { if (quema_apto == 0) print "No alcanzo... pero, puestos a ello, podría intentar con el balcón. "; <>; } else <>; } else if (noun == d_obj) { if (location == Pasillo or CuartoDucto) <>; else <>; } else if ( (noun ~= Estufa) && (noun ~= Jugador_Apto) && (noun ~= Balcon_Decorado_Plural) && (noun ~= Balcon_Decorado) && (noun ~= Armario_Decorado) && (noun ~= Armario_Decorado_Plural) && (noun ~= Botiquin_Decorado)) { if (quema_apto == 0) { quema_apto = 1; print_ret "La verdad es que hay días en que amanezco bastante cabreado, pero todavía no he llegado al punto de ponerme a buscar con qué quemar ", (the) noun,"... y encima, si la cosa prendiera de veras, luego habría rollo con la administración del edificio...^ los bomberos...^ la policía...^ la aseguradora...^ el banco...^ los abogados...^^ ...no, qué lío.^^ Paso."; } else if (location == Pasillo or CuartoDucto) "Nada de incendios en el edificio: mucho lío..."; else "Nada de incendios en el apartamento: mucho lío..."; } Recordar: if (mundos_visitados == 0) { if (nota_leida == 0) "No tengo nada pendiente para hoy. Ese es parte del problema de los fines de semana en confinamiento: nada para hacer y demasiado tiempo libre..."; else "De momento no me ha pasado nada que pueda asociar al tratamiento: sin novedad..."; } else switch (mundos_visitados) { 1: "Todo está difuso, como un sueño vago y sin detalles que pueda retener. Al menos, no me ha pasado nada malo..."; 2: "Creo que lo que pasó recién fue interesante... pero, aunque no retengo gran cosa, no estoy del todo seguro de si quiero o no contarle algo de esto a mi terapeuta."; 3: "Ya no tengo demasiada claridad de lo que pasó... y si pudiera recordarlo, casi me siento tentado a escribir algo de esto y publicarlo como ficción literaria."; 4: "Es raro: aunque no recuerdo exactamente qué pasó, ya no me siento cómodo con todo esto, la verdad. Las primeras veces era hasta divertido, pero ya no sé si quiero seguir con el tratamiento."; } ]; ! Escenario de El Apartamento Class Objeto_Escenario_Apto class Objeto_Escenario with before [; Take: print_ret "No veo para que estar moviendo ", (the) self,": ya hice el aseo ayer."; Pull: if (self has openable) <>; else print_ret "No veo para que estar moviendo ", (the) self,": ya hice el aseo ayer."; Push: if (self has openable) <>; else print_ret "No veo para que estar moviendo ", (the) self,": ya hice el aseo ayer."; Search: if ( (self has container) && (self has openable) && (self hasnt open) ) { print "Para mirar dentro de ", (the) self; print ", tendría que abrir"; if (self has male) print "lo "; else print "la "; "primero..."; } Rub: if (self has pluralname) print (The) noun," están impecables"; else print (The) noun," está impecable"; ": día por medio me lo paso en esto del aseo del apartamento."; Smell: if (self has pluralname) print (The) noun," huelen"; else print (The) noun," huele"; " a limpio: tanto aseo frecuente ha terminado por uniformar el olor de todo en el apartamento."; ]; ! Escenario del resto del edificio Class Objeto_Escenario_Edif class Objeto_Escenario with before [; Rub: print_ret "No me voy a poner a limpiar ", (the) noun,": esta semana no es mi turno."; Smell: if (self has pluralname) print (The) noun," huelen"; else print (The) noun," huele"; " a limpio: tanto aseo frecuente ha terminado por uniformar el olor de todo en el edificio."; ]; ! Objetos de localidad para el apartamento Class Objeto_Localidad_Apto class Objeto_Localidad with before [; GoIn, Enter: if ( (noun ~= Objeto_Localidad_Sala) && (Mi_Puerta has open) ) "Debiera dejar cerrada la puerta de mi apartamento antes de salir de la sala."; Rub: print_ret (The) noun," está impecable: día por medio me lo paso en esto del aseo del apartamento."; Smell: print_ret (The) noun," huele a limpio: tanto aseo frecuente ha terminado por uniformar el olor de todo en el apartamento."; ]; ! Objetos de localidad para el resto del edificio Class Objeto_Localidad_Edif class Objeto_Localidad with before [; Dig: "No creo que sea buena idea empezar a cavar en las áreas comunes del edificio..."; GoIn, Enter: if ( (noun == Objeto_Localidad_CuartoDucto) && (Mi_Puerta has open) ) <>; Rub: print_ret "No me voy a poner a limpiar ", (the) noun,": esta semana no es mi turno."; Smell: print_ret (The) noun," huele a limpio: tanto aseo frecuente ha terminado por uniformar el olor de todo en el edificio."; ]; ! Objetos de puzzle de El Apartamento Class Objeto_Puzzle_Apto class Objeto_Puzzle; Class Objeto_Nota_Apto class Objeto_Escenario_Apto with name_f 'nota' 'indicacion', name_m 'papel' 'escrito' 'texto', adjectives 'explicativa' 'terapeuta' 'pegada' 'pegado' 'adhesiva' 'adhesivo', descripcion_larga "Es una indicación que me dejó el terapeuta, para que la lea si de pronto me siento desorientado debido a los efectos de la hipnoterapia. Dejé copias en varias partes de la casa, como precaución.", descripcion_corta "Es una nota que me dejó el terapeuta. Dejé varias copias, por si acaso.", before [; Consult: if (nota_leida == 0) { nota_leida = 1; CortoLeeNota.proyeccion(1); ! Sin borrar pantalla rtrue; } else "La nota dice así: ~Recuerda que la hipnoterapia que estamos llevando es sólamente paliativa para tus problemas de ajuste al encierro. Si tuvieras ensoñaciones, desconcentración o incluso sueños lúcidos no debes preocuparte: intenta recordar lo que puedas y lo comentaremos en nuestra siguiente sesión.~"; Take: "Debo dejarla en su sitio: el terapeuta me recomendó no moverla en caso que de pronto me sienta desorientado."; Rub: "Es sólo una nota, no hace falta que la limpie."; Touch: "Es papel adhesivo para... bueno, notas."; Attack: "Mejor que no: si la rompo corro el riesgo de desorientarme y no tener a mano algo que me recuerde en qué estoy."; ] has female; Objeto_Escenario_Apto Apto_Piso "piso" with name 'piso' 'suelo', adjectives 'limpio', descripcion_larga "El suelo del apartamento es apenas mejor que el de las áreas comunes del edificio, pero al menos cuando está limpio no es feo. Es lo que piso todos los días así que me he acostumbrado a él, supongo.", descripcion_corta "El suelo que piso todos los días.", before [; Reparar, Take, Pull, Push, Dig: <>; ], found_in Sala Cocina Dormitorio Bano Balcon, has male; Objeto_Escenario_Apto Apto_Techo "techo" with name 'techo' 'cielo', adjectives 'blanco' 'sencillo' 'liso', descripcion_larga "El techo de mi apartamento es de un color banco liso, sin textura y muy sencillo. No es ninguna maravilla, pero no me paso el día mirándolo así que tanto da...", descripcion_corta "El techo que me cubre.", before [; Enter, Acostar, Touch, Take: "No alcanzo..."; ], found_in Sala Cocina Dormitorio Bano, has male; Objeto_Escenario_Apto Apto_Paredes "paredes" with name_fp 'paredes', name_f 'pared', name_mp 'muros', name_m 'muro', descripcion_larga "Las paredes del apartamento no son distintas a las de las áreas comunes del edificio, pero como las suelo mantener limpias no se ven tan mal. Creo que de tanto verlas ya no las noto... aunque a veces me den una cierta sensación de encierro.", descripcion_corta "No son más que las paredes del apartamento.", before [; Reparar, Take, Push, Pull, Dig: <>; ], found_in Sala Cocina Dormitorio Bano Balcon, has female pluralname; ! Objeto para que reaccione a ! <> ! <> ! <> Objeto_Localidad_Apto Objeto_Localidad_Apartamento "apartamento" with name 'apartamento' 'departamento' 'condo' 'apto' 'depto' 'dpto' 'interior', description [; <>; ], before [; Rub: if (location ~= Pasillo) print_ret (The) noun," está impecable: día por medio me lo paso en esto del aseo del apartamento."; else print_ret "Tendría que entrar en ", (the) noun, " para eso."; Examine, Search: if (location == Pasillo) print_ret "Tendría que entrar en ", (the) noun, " para mirarlo."; else <>; GoIn, Enter: if (location == Pasillo) <>; else print_ret "Ya estoy en ", (the) noun, "."; Open: if (location == Sala or Pasillo) <>; else "Para eso debo ir a la sala."; Close: if (location == Sala or Pasillo) <>; else "Para eso debo ir a la sala."; GetOff: if (location == Sala) <>; if (location == Pasillo) print_ret "No estoy en ", (the) noun, "."; else "Para salir del apartamento tengo que ir a la sala."; Receive: if (location ~= Pasillo) <>; else print_ret "Tendría que entrar en ", (the) second, " para eso."; ], found_in Sala Balcon Dormitorio Bano Cocina Pasillo, has male; Objeto_Luz Apto_Luz "luz" with description "El nivel de luz en el apartamento es normal. Suelo usar iluminación eléctrica más tarde: de momento, no hace falta.", found_in Sala Dormitorio Bano Cocina ; Objeto_Aire Apto_Aire "aire" with name 'silencio', description "El aire al interior del apartamento está razonablmente fresco. Siempre puedo salir al balcón, si quiero cambiar de aire...", before [; Smell: "El aire huele a limpio: no me sorprende, ya que día por medio me lo paso en esto del aseo del apartamento."; Listen: "Como no estoy haciendo aseo ni trabajando, la verdad es que hay mucho silencio en el apartamento."; ], found_in Sala Dormitorio Bano Cocina ; Objeto_Temperatura Apto_Temperatura "temperatura" with description "La temperatura dentro del departamento es bastante agradable: ni frio, ni calor. Siempre puedo salir al balcón, si quiero cambiar de ambiente...", found_in Sala Dormitorio Bano Cocina ; ! La sala Objeto_Localidad_Apto Objeto_Localidad_Sala "sala" with name_f 'sala', name_m 'estar' 'living', ! Un objeto_localidad que representa una localidad individual ! implementa found_in con la localidad a la que ! representa el objeto como primera localidad listada found_in Sala Balcon Dormitorio Cocina Pasillo, has female; Objeto_Escenario_Apto Mi_Puerta "puerta" with name 'puerta', adjectives 'simple' 'mi', descripcion_larga [; print "La puerta de mi apartamento es exactamente igual a la de mis vecinos, simple y sin decorados. Está "; if (self has open) "abierta."; else "cerrada."; ], descripcion_corta [; print "La puerta de mi apartamento está "; if (self has open) "abierta."; else "cerrada."; ], before [; Pull: if (location == Sala) <>; else <>; Push: if (location == Sala) <>; else <>; Take, Touch: if (self has open) <>; else <>; ], door_to [; if (location == Sala) return Pasillo; else return Sala; ], door_dir [; if (location == Sala) return s_to; else return n_to; ], found_in Pasillo Sala, has female door openable ~open; Localidad_El_Apartamento Sala "La sala" with descripcion_larga "La sala del apartamento es donde paso la mayor parte del tiempo, día tras día, desde que comenzó esto del confinamiento sanitario obligatorio. Según la hora o el día, es mi lugar de trabajo y de descanso.^ Siendo la habitación más grande del apartamento, el lugar no es especialmente amplio y eso hace que los pocos muebles que tengo ocupen su lugar necesario... y poco más: no es que ande tropezando con ellos, pero tampoco hay mucho espacio libre.^ Desde la sala puedo llegar a la cocina, al balcón y al dormitorio. También puedo salir del apartamento para llegar al pasillo de servicio.", descripcion_corta "La sala del apartamento es donde paso la mayor parte del tiempo, ya sea que esté en mi escritorio de trabajo o descansando. Hay pocos muebles, pero no se nota ya que el lugar no es especialmente amplio.^ Desde la sala puedo llegar a la cocina, al balcón y al dormitorio. También puedo salir del apartamento para llegar al pasillo de servicio.", ! descripcion_corta ! "La sala del apartamento donde está mi escritorio de trabajo y algunos pocos muebles más. ! De aquí puedo llegar a la cocina, al balcón y al dormitorio. También puedo salir del ! apartamento.", before [; Go: if ( (noun ~= s_obj) && (noun ~= out_obj) && (Mi_Puerta has open) ) "Debiera dejar cerrada la puerta de mi apartamento antes de salir de la sala."; SientaSolo: if ( (player in Silla) || (player in Sofa) ) "Ya estás sentado."; else <>; Exit: if ( (noun == nothing) && (player in Silla) ) <>; else if ( (noun == nothing) && (player in Sofa) ) <>; GetOff: if ( (noun == nothing) && (player in Silla) ) <>; else if ( (noun == nothing) && (player in Sofa) ) <>; Salidas: "Desde la sala puedo llegar a la cocina al este, al balcón al norte y al dormitorio por el oeste. También puedo salir del apartamento para llegar al pasillo de servicio."; Acostar: if (noun == nothing) { if (Sofa in Limbo) "¿Dónde voy a tenderme?"; <>; } ], n_to Balcon, e_to Cocina, in_to Dormitorio, w_to Dormitorio, out_to [; <>; ], s_to Mi_Puerta ; ! Objeto para el personaje del Jugador en El Apartamento Objeto_Jugador_Personaje Jugador_Apto Sala with description "Soy una persona normal, adulto de... digamos que algunos años. Estoy en razonable estado físico, especialmente después de tanto encierro.", before [; Listen, Tell, Search: "Mi terapeuta insiste en esto de la 'introspección saludable' pero hoy no tengo ganas..."; Touch: "Tengo la piel tersa: no salgo mucho al sol, es verdad."; Rub: "No hace falta: ya me bañé en la mañana."; Smell: "Huelo a... nada. Estoy aseado, eso no lo he descuidado, encierro o no."; Burn, Cut, Attack, Push, Pull, Open, ThrowAt: "El encierro no me ha desperado tanto."; ]; ! La ropa del Jugador Objeto_Ropa_Jugador Apto_Ropa_Jugador "ropa" Jugador_Apto with name_f 'camiseta' 'zapatilla', name_fp 'zapatillas', name_m 'pantalon', name_mp 'pantalones', adjectives 'comoda' 'comodas' 'comodo' 'comodos' 'suave', invent "mi ropa", descripcion_larga "Son una camiseta, unos pantalones y un par de zapatillas. Ropa cómoda para el encierro...", descripcion_corta "No es más que algo de ropa cómoda para el encierro.", before [; Rub: "Está bien limpia y bastante trabajo da mantenerla así."; Drop, Disrobe : "¿Y andar desnudo? Si se me ocurre salir del apartamento o si alguien toma fotos... demasiadas explicaciones."; Smell: "Está limpia y no tiene olor alguno."; Search, Touch: "Es muy suave."; ], has female; Objeto_Nota_Apto Nota_Sala "nota explicativa" Limbo; Objeto_Escenario_Apto Muebles "muebles" Sala with name_m 'mueble' 'amoblado' 'mobiliario', name_mp 'muebles', adjectives 'espartano', descripcion_larga "El amoblado de mi sala es más bien espartano: un escritorio con su silla, un sofá y un hermoso armario que uso como bar. Cada uno ocupa un lugar necesario... y poco más: no es que ande tropezando con ellos, pero tampoco hay mucho espacio libre en la sala.", descripcion_corta "El amoblado de mi sala es más bien espartano: un escritorio con su silla, un sofá y un hermoso armario que uso como bar.", before [; Enter, GoIn, Open, Close, Search, Rub: if (Armario in Limbo) move Armario to Sala; if (Sofa in Limbo) move Sofa to Sala; if (Silla in Limbo) move Silla to Sala; "Hay varios muebles para hacer eso..."; ], after [; if (Armario in Limbo) move Armario to Sala; if (Sofa in Limbo) move Sofa to Sala; if (Silla in Limbo) move Silla to Sala; ], has male pluralname; Objeto_Escenario_Apto Escritorio "escritorio" Sala with name_m 'escritorio' 'trabajo', name_f 'mesa', descripcion_larga "Mi escritorio de trabajo no es más que una mesa simple, sin cajones ni otras florituras. Se complementa con una silla ergonómica y en conjunto me permiten trabajar por largas horas sin mayores molestias.", descripcion_corta "Mi escritorio de trabajo, con su mesa y una silla ergonómica, para esas largas horas sentado.", before [; Enter, GoIn: if (Silla in Limbo) move Silla to Sala; <>; ], after [; if (Silla in Limbo) move Silla to Sala; ], has male supporter; Objeto_Escenario_Apto Silla "silla" Limbo with name 'silla', adjectives 'ergomomica' 'comoda' 'flexible' 'adaptable', look_clarification ", sentado en la silla", descripcion_larga "Una silla ergonómica de muy buena calidad: es flexible, adaptable y en definitiva muy cómoda. Me paso varias horas al día sentado en ella por temas de trabajo y nunca he notado ni la más mínima molestia por ello.", descripcion_corta "Una silla ergonómica, muy cómoda, para esas largas horas de trabajo sentado.", before [; Enter, GoIn: if (player in self) "Ya estoy sentado en la silla."; PlayerTo(self,1); ! Sin <> "Quedo cómodamente sentado en la silla del escritorio."; ], after [; Exit, GetOff: "Como si nada, me levanto de la silla."; ], has female supporter; Objeto_Escenario_Apto Sofa "sofá" Limbo with name 'sofa', adjectives 'comodo', look_clarification ", ~sentado~ en el sofa", descripcion_larga "Un sofá, muy cómodo, que ocupo según si quiero descansar o cuando algún asunto del trabajo me provoca suficiente hastío como para no querer seguir usando la silla.", descripcion_corta "Un sofá, muy cómodo, para el descanso o el hastío, según.", before [; Acostar, Enter, GoIn: if (player in self) "Ya estoy sentado en el sofá."; PlayerTo(self,1); ! Sin <> "Quedo cómodamente sentado... y algo tendido... en el sofá."; ], after [; Exit, GetOff: "Me levanto del sofá. Se estaba bien..."; ], has male supporter; Objeto_Escenario_Apto Armario "armario" Limbo with name 'armario' 'bar', adjectives 'hermoso' 'alto' 'ancho', descripcion_larga "El armario es muy hermoso: casi tan alto como el techo y más bien ancho. Lo uso como bar y también para guardar recuerdos de mis viajes y otras cosas que estarían de más en las otras habitaciones del apartamento.", descripcion_corta "El armario es muy hermoso. Sirve de bar y para guardar cosas que están de más en las otras habitaciones.", before [; if (player in Sofa or Silla) "Tendré que dejar de estar sentado para eso."; Search: if (self has open) "Dentro del armario hay unos vasos, unas conchitas y una bolsita."; Open: if (nota_leida == 0) { move Nota_Sala to Sala; print "Estoy a punto de abrir el armario cuando veo una nota pegada. "; Nota_Sala.descripcion_larga(); <>; } if (self hasnt on) { give self on; give self open; ! Al abrir el armario por primera vez ! movemos el jugador a la Playa CortoAbreArmario.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); CortoInicioPlaya.proyeccion(); ChangePlayer(Jugador_Playa); <>; } ], after [; Examine: if (Nota_Sala in Limbo) move Nota_Sala to Sala; print "Hay una nota pegada en el armario"; if (nota_leida == 0) { print ". "; Nota_Sala.descripcion_larga(); <>; } else "."; ], has male openable container ~open; Decorado Armario_Decorado Armario with describe 'vaso' "Un surtido de vasos para cóctel. Lástima que hace tiempo que ya no tengo licor..." G_MASCULINO 'recuerdo' "Son varias conchitas que recogí hace tiempo en la playa." G_MASCULINO 'bolsa' "Es la bolsita que usé para recolectar las conchitas. Tiene mucho uso pero está en buen estado." G_FEMENINO 'bolsita' "Es la bolsita que usé para recolectar las conchitas. Tiene mucho uso pero está en buen estado." G_FEMENINO 'concha' "Son varias conchitas que recogí hace tiempo en la playa." G_FEMENINO 'conchita' "Son varias conchitas que recogí hace tiempo en la playa." G_FEMENINO, before [; Reparar: "Todo está en buen estado de uso, no hace falta arreglar nada..."; Smell, Rub, Touch: "Todo está impecable: día por medio me lo paso en esto del aseo del apartamento."; Take, Push, Pull, Dig, Search: "Mantengo estas cosas en el bar, no veo para qué sacarlas de aquí..."; Listen: <>; Burn: if (quema_apto == 0) print "No quiero deshacerme de estas cosas aún... pero, puestos a ello, podría intentar con la sala. "; <>; ] ; Decorado Armario_Decorado_Plural Armario with describe 'vasos' "Un surtido de vasos para cóctel. Lástima que hace tiempo que ya no tengo licor..." G_MASCULINO 'recuerdos' "Son varias conchitas que recogí hace tiempo en la playa." G_MASCULINO 'conchas' "Son varias conchitas que recogí hace tiempo en la playa." G_FEMENINO 'conchitas' "Son varias conchitas que recogí hace tiempo en la playa." G_FEMENINO 'cosas' "Aparte de unos vasos, tengo en el armario una bolsita y varias conchitas que traje de un viaje a la playa." G_FEMENINO, before [; Reparar: "Todo está en buen estado de uso, no hace falta arreglar nada..."; Smell, Rub, Touch: "Todo está impecable: día por medio me lo paso en esto del aseo del apartamento."; Take, Push, Pull, Dig, Search: "Mantengo estas cosas en el bar, no veo para qué sacarlas de aquí..."; Listen: <>; Burn: <>; ] has pluralname; ! El balcón Objeto_Localidad_Apto Objeto_Localidad_Balcon "balcón" with name_f 'terraza', name_m 'balcon', found_in Balcon Sala Dormitorio, has male; Localidad_El_Apartamento Balcon "El balcón" with descripcion_larga "El balcón va a todo lo ancho de la sala y es la mitad de profundo, haciendo las veces de una terraza no demasiado grande. Sin embargo, permite salir al 'aire libre' sin romper el confinamiento del edificio, lo que no es poca cosa en estos tiempos.^ El paisaje lo conozco ya de memoria, pero igualmente cuando salgo me distraigo mirando mi barrio y algunos edificios de la ciudad que se ven a la distancia.^ Desde el balcón puedo entrar de nuevo a la sala al sur o bien llegar al dormitorio.", descripcion_corta "El balcón es tan ancho como la sala y la mitad de profundo... o sea que es una terraza no demasiado grande, pero sirve para salir al 'aire libre', ver mi barrio y más allá la ciudad.^ Desde el balcón puedo entrar de nuevo a la sala al sur o bien llegar al dormitorio.", ! descripcion_corta ! "Desde el balcón se ve mi barrio y más allá la ciudad.^ ! Puedo volver a la sala o ir al dormitorio.", before [; Jump: "El encierro me tiene harto, pero no he llegado a ese punto... todavía."; Salidas: "Desde el balcón puedo entrar de nuevo a la sala al sur o bien llegar al dormitorio por el oeste."; ], s_to Sala, w_to Dormitorio, in_to Sala, out_to Sala, ; Decorado Balcon_Decorado Balcon with describe 'horizonte' "El paisaje lo conozco ya de memoria: mi barrio y algunos edificios de la ciudad que se ven a la distancia." G_MASCULINO 'paisaje' "El paisaje lo conozco ya de memoria: mi barrio y algunos edificios de la ciudad que se ven a la distancia." G_MASCULINO 'barrio' "Desde aquí se ven un par de calles que se cruzan, un edificio al frente y un parque aquí al lado." G_MASCULINO 'cruce' "El cruce de las calles está vacío. Ya no recuerdo la última vez que vi alguien usarlo, como no fuera un repartidor: nunca ví a más de uno al mismo tiempo.^ El transporte público es apenas un recuerdo." G_MASCULINO 'edificio' "El edificio de al frente es igual al mío. No se ve un alma, pero la situación es muy semejante de este lado, pues mucha gente prefiere quedarse encerrada a darse el trabajo que requiere adecentarse para estar visible.^ A todo se acostumbra el ser humano, ya se ve..." G_MASCULINO 'parque' "El parque de mi barrio, al igual que sus calles, está muy limpio... y totalmente vacío. Ya ni pájaros se ven, pues nadie hay que venga a darles de comer.^ Al medio se ve una estatua." G_MASCULINO 'ciudad' "La ciudad parece un paisaje de quietud casi fantasmal. Apenas se escucha el ruido lejano de... supongo que alguna ambulancia o parecido, porque desde aquí no se ve nada." G_FEMENINO 'calle' "Las calles están limpias y desiertas a esta hora del día; ni siquiera se ven repartidores, que entiendo que salen a trabajar más tarde.^ De noche... es más o menos lo mismo, vaya" G_FEMENINO 'estatua' "La estatua es de forma abstracta y está pintada de cualquier manera. Desde acá no parece gran cosa, pero ya me gustaría estar ahí: no digo para contemplarla, sino para poder pasear por el parque." G_FEMENINO, before [; Rub, Dig, Reparar: "Los puestos de mantenimiento de la municipalidad ya están copados, que si no estaría allá afuera, poniéndole el hombro... y fuera del edificio, que no sería malo."; GoIn, Enter: "Ya me gustaría poder salir del edificio para intentarlo, pero esto del confinamiento no tiene para cuando resolverse... y de ignorarlo puedo terminar hospitalizado, o acaso preso."; Listen: "Salvo algún vehículo de emergencia a lo lejos, no se oye nada..."; Smell, Search, Take, Touch, Push, Pull: "Nada de eso puede hacerse desde aquí."; Burn: if (quema_apto == 0) print "No alcanzo... pero, puestos a ello, podría intentar con el balcón. "; <>; ] ; Decorado Balcon_Decorado_Plural Balcon with describe 'edificios' "Los edificios de la ciudad se ven borrosos a la distancia, como si estuvieran dibujados con un lápiz quebrado. De día parecen estar vacíos aunque de noche se ve alguna luz aquí o allá: no me he puesto a contarlas, pero tengo la vaga impresión que la cantidad de luces ha ido disminuyendo conforme se alarga el confinamiento.^ No es demasiado tranquilizador..." G_MASCULINO 'calles' "Las calles están limpias y desiertas a esta hora del día; ni siquiera se ven repartidores, que entiendo que salen a trabajar más tarde.^ De noche... es más o menos lo mismo, vaya" G_FEMENINO, before [; Rub, Dig, Reparar: "Los puestos de mantenimiento de la municipalidad ya están copados, que si no estaría allá afuera, poniéndole el hombro... y fuera del edificio, que no sería malo."; GoIn, Enter: "Ya me gustaría poder salir del edificio para intentarlo, pero esto del confinamiento no tiene para cuando resolverse... y de ignorarlo puedo terminar hospitalizado, o acaso preso."; Listen: "Salvo algún vehículo de emergencia a lo lejos, no se oye nada..."; Smell, Search, Take, Touch, Push, Pull: "Nada de eso puede hacerse desde aquí."; Burn: if (quema_apto == 0) print "No alcanzo... pero, puestos a ello, podría intentar con el balcón. "; <>; ] has pluralname; Objeto_Luz Balcon_Luz "luz" Balcon with description "Hay algo más de luz en el balcón que en el apartamento... por ahora. De noche, la cosa cambia bastante y se vuelve hasta interesante.", ; Objeto_Aire Balcon_Aire "aire" Balcon with description "El aire del balcón es algo más fresco que el del apartamento y a veces se me olvida que estamos en la ciudad. Antes del confinamiento no se me habría ocurrido salir al balcón por el cambio de aire, precisamemte.", before [; Smell: "El aire desde el balcón huele a limpio: una de las pocas cosas que ha mejorado con el confinamiento."; Listen: <>; ] ; Objeto_Temperatura Balcon_Temperatura "temperatura" Balcon with description "La temperatura en el balcón es ligeramente mayor que en el apartamento, pero no llega a ser una molestia." ; Objeto_Escenario_Apto Cielo "cielo" Balcon with name 'cielo', adjectives 'gris' 'desabrido' 'gracia', descripcion_larga "El cielo de la ciudad hoy está despejado y sin nubes, pese a lo cual se me antoja algo gris, desabrido y sin gracia.", descripcion_corta "El cielo de la ciudad, despejado aunque algo gris.", has male; ! La cocina Objeto_Localidad_Apto Objeto_Localidad_Cocina "cocina" with name 'cocina', found_in Cocina Sala, has female; Localidad_El_Apartamento Cocina "La cocina" with descripcion_larga [; print "La cocina de mi apartamento es larga, angosta y un tanto estrecha, pero la verdad es que ya me he acostumbrado y no me incomoda en lo más mínimo.^ Ya no recuerdo la última vez que preparé aquí algo para comer: llevo meses pidiendo comida a domicilio en las cantidades justas para que no queden apenas restos, salvo los inevitables envases de cartón u aluminio.^ El pricipal mueble es un mesón más bien largo y que distribuye los electrodomésticos. Hay también una alacena por encima del mesón."; if ( (Restos in Basura) && (Basura in Basurero) ) { if (Basura has open) "^Los restos en el basurero despiden un olor desagradable. Debiera deshacerme de ellos."; else "^Debiera sacar la bolsa de basura del apartamento."; } ""; ], descripcion_corta [; print "La cocina del apartamento es larga y angosta, pero no me molesta lo estrecho del lugar: suelo pedir comida a domicilio, así que no la uso a menudo para preparar comida. Tiene un mesón que distribuye los electrodomésticos y una alacena por encima del mesón."; if ( (Restos in Basura) && (Basura in Basurero) ) { if (Basura has open) "^Los restos en el basurero despiden un olor desagradable. Debiera deshacerme de ellos."; else "^Debiera sacar la bolsa de basura del apartamento."; } ""; ], ! descripcion_corta [; ! print "La pequeña cocina del apartamento, con un mesón, una alacena y algunos ! electrodomésticos."; ! if ( (Restos in Basura) && (Basura in Basurero) ) ! { ! if (Basura has open) ! "^Los restos en el basurero despiden un olor desagradable. ! Debiera deshacerme de ellos."; ! else ! "^Debiera sacar la bolsa de basura del apartamento."; ! } ! ""; ! ], before [; Go: if (Refrigerador has open) "No puedo salir de la cocina y dejar el refrigerador con la puerta abierta.^ Los tiempos no están para desperdiciar energía."; else if (Restos in player) "Mala idea. En vez de sacar a pasear los restos, debiera disponer de ellos de un modo higiénico..."; Salidas: "Desde la cocina sólo puedo salir a la sala por el oeste."; ], w_to Sala, out_to Sala, ; Objeto_Escenario_Apto Meson "mesón" Cocina with name_m 'meson' 'mueble', name_f 'mesa', adjectives 'largo' 'largo' 'angosto' 'angosta', descripcion_larga "El mesón es el principal mueble de la cocina. Es largo aunque más bien angosto. En su extremo izquierdo está la estufa encimera y hay un refrigerador en el extremo derecho. La alacena está por encima del mesón y debajo está el basurero.", descripcion_corta "El mesón de la cocina es largo, angosto y distribuye los electrodomésticos. Hay una alacena encima del mesón y un basurero por debajo.", after [; Examine: if (Basurero in Limbo) move Basurero to Cocina; if ( (Restos in Basura) && (Basura in Basurero) ) { if (Basura has open) "Los restos en el basurero despiden un olor desagradable. Debiera deshacerme de ellos."; else "Debiera sacar la bolsa de basura del apartamento."; } ], has supporter; Objeto_Escenario_Apto Basurero "basurero" Limbo with name 'basurero', descripcion_larga "Ultimamente, con esto de la comida a domicilio, sólo uso el basurero de la cocina para poner los restos de lo que no me como: ya no me acuerdo cuándo fue la última vez que puse aquí algo que yo haya usado para preparar algo.", descripcion_corta "El basurero de la cocina, que uso para restos y así.", after [; PutOn, Insert: if (noun == Restos) { if (Basura in Limbo) move Basura to self; <>; } else if (noun ~= Miel) "No puedo poner ", (the) noun, " en el basurero, no es lugar para eso."; Examine: if ( (Basura in Limbo) && (self hasnt on) ) { move Basura to self; "Hay una bolsa de basura vacía instalada en el basurero."; } if (Basura in self) { print "Hay una bolsa de basura instalada en el basurero"; if ( (Restos in Basura) && (Basura has open) ) ", con unos restos de comida que apestan lo suyo."; else "."; } ], has male container open; Objeto_Puzzle_Apto Basura "bolsa de basura" Limbo with name 'bolsa' 'basura', descripcion_larga [; if (self notin player) "La bolsa de basura, bien instalada en el basurero, sirve para no andar echando cosas por el resto de la cocina."; else "La bolsa lleva dentro los restos de comida que tenía en el refrigerador."; ], descripcion_corta [; if (self notin player) "La bolsa de basura está instalada en el basurero."; else "La bolsa tiene dentro los restos."; ], before [; Take: if (Restos notin self) "¿Para qué? Está vacía..."; if (self has open) "Debiera cerrarla antes de sacarla del basurero."; Close: if (Restos notin self) "¿Para qué? Está vacía..."; Open: if (Restos in self) "Mejor que no. Hay unos restos dentro de la bolsa... y apestan."; Drop: if (location == Cocina) <>; else if (location ~= CuartoDucto) "No puedo dejar la basura aquí."; else "No puedo dejar la basura aquí: para eso está el ducto de basura."; PutOn, Insert: if (second == Basurero) { move self to Basurero; "Pongo la bolsa de vuelta en el basurero... aunque debiera sacarla del apartamento."; } if (second ~= DuctoBasura) "No puedo poner la basura en ", (the) second, ", no es lugar para eso."; else { ! Al abrir el frasco por primera vez ! movemos el jugador al Árbol move self to Limbo; CortoPonerBasuraEnDucto.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); CortoInicioRuinas.proyeccion(); ChangePlayer(Jugador_Ruinas); <>; } ], after [; Examine: if (self hasnt open) "La bolsa está cerrada. Debiera sacarla del apartamento."; if (Restos in self) "Hay unos restos dentro de la bolsa... y apestan."; ], has female container open openable; Objeto_Escenario_Apto Refrigerador "refrigerador" Cocina with name_m 'refrigerador' 'frigorifico' 'refri' 'electrodoméstico', name_f 'heladera' 'puerta' 'nevera' 'hielera', descripcion_larga "El refrigerador de la cocina apenas tiene más uso que la estufa, ya que salvo algún resto de lo que pido a domicilio y no me he comido, suele estar más bien vacío. Ni siquiera tiene una hielera.", descripcion_corta "El refrigerador de la cocina, donde conservo la comida que no me he comido aun.", before [; Rub: if (Restos in self) "Por fuera está limpio y debiera estarlo también por dentro... salvo que se me haya olvidado algo, claro está."; SwitchOn: "Ya está encencido: aunque no estoy guardando gran cosa, quiero que esté disponible cuando quiera usarlo... por infrecuente que eso sea."; SwitchOff: "Aunque no estoy guardando gran cosa, no quiero apagar el refrigerador. Quiero que esté disponible cuando quiera usarlo... por infrecuente que eso sea."; ], has male container openable ~open switchable on; Objeto_Puzzle_Apto Restos "restos de comida" Refrigerador with name_m 'resto' 'pote' 'carton', name_mp 'restos', name_f 'sobra' 'comida' 'apariencia', name_fp 'sobras', descripcion_larga "Es un pote de cartón con restos de comida a domicilio. La verdad, ya ni recuerdo cuándo lo pedí... y por la apariencia, no estoy muy seguro de qué es.", descripcion_corta "Son restos de comida que he pedido a domicilio.", before [; Eat, Smell: if (self hasnt on) { give self on; "Me lo acerco a la cara y pierdo rápidamente el apetito. Huele muy mal... sea lo que sea."; } else "No gracias, qué peste: paso."; Drop: "Mala idea. Mejor los pongo en la basura que es donde deben estar."; PutOn, Insert: if (second == Basurero) { if (Basura in Limbo) move Basura to Basurero; <>; } if (second ~= Basura) { print "¿Dejar estos restos en ", (the) second, "? "; <>; } Take: if (self notin Refrigerador) "Mala idea. Lo mejor será deshacerme de estos restos cuanto antes."; ], after [; Examine, Search: if (self notin Refrigerador) "Los restos despiden un olor desagradable. Debiera deshacerme de ellos."; ], has pluralname edible; Objeto_Escenario_Apto Estufa "estufa encimera" Cocina with name_f 'estufa' 'encimera' 'cocinilla' 'llave', name_fp 'llaves', name_m 'quemador' 'fuego' 'electrodoméstico', name_mp 'quemadores' 'fuegos', adjectives 'electrico' 'electricos' 'plastico' 'plasticos', descripcion_larga "La estufa encimera no tiene apenas uso: suelo pedir comida a domicilio, así que no la uso para preparar comida. Tiene dos quemadores eléctricos y un par de llaves de plástico para accionarlos.", descripcion_corta "La estufa encimera no tiene apenas uso: suelo pedir comida a domicilio, así que no la uso para preparar comida.", before [; Enter, GoIn, SwitchOn, Turn, Burn: "No tengo nada para ponerme a cocinar."; SwitchOff: "Ya está apagada... hace un buen tiempo, por cierto."; ], has female supporter; Objeto_Nota_Apto Nota_Cocina "nota explicativa" Limbo; Objeto_Escenario_Apto Alacena "alacena" Cocina with name_f 'alacena' 'despensa' 'puerta', name_fp 'puertas', descripcion_larga "La alacena de la cocina está encima del mesón y es casi igual de ancha. Tiene bastante espacio para platos y alimentos no perecibles... pero permanece vacía. Con esto de la comida a domicilio ya ni siquiera tengo cubiertos ni loza y apenas la uso para guardar alguna cosa que se me antoja comprar.", descripcion_corta "La alacena de la cocina está encima del mesón. Con esto de la comida a domicilio la uso para guardar apenas nada.", before [; Open: if (nota_leida == 0) { move Nota_Cocina to Cocina; print "Estoy a punto de abrir la alacena cuando veo una nota pegada en su puerta. "; Nota_Cocina.descripcion_larga(); <>; } ], after [; Examine: if (Nota_Cocina in Limbo) move Nota_Cocina to Cocina; print "Hay una nota pegada en la puerta de la alacena"; if (nota_leida == 0) { print ". "; Nota_Cocina.descripcion_larga(); <>; } else "."; ], has female container openable ~open; Objeto_Puzzle_Apto Miel "frasco de miel" Alacena with name_m 'frasco' 'tarro', name_f 'miel' 'tapa', descripcion_larga "Compré este frasco de miel por capricho: preferiría salir a ver las abejas en las flores o acaso ir al campo a ver panales y comer miel fresca... pero salir de la ciudad no tiene para cuándo. No es exactamente un sustituto al original, pero sirve para darme un gusto de vez en cuando.", descripcion_corta "Un frasco de miel que compré por capricho y para darme un gusto de vez en cuando.", before [; Empty: if (self hasnt open) "Hay que abrirlo primero para eso."; else "No es cuestión de andar desperdiciando la miel..."; Smell, Eat: if (self hasnt open) "Hay que abrirlo primero para eso."; else if (self hasnt on) { give self on; ! Al abrir el frasco por primera vez ! movemos el jugador al Árbol ! move self to Alacena; ! give self ~open; ! give Alacena ~open; CortoAbreFrascoMiel.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); CortoInicioArbol.proyeccion(); ChangePlayer(Jugador_Arbol); <>; } "El aroma de la miel me satisface, sin siquera necesitar probarla."; PutOn, Insert: if (second == DuctoBasura or Basura or Basurero ) "La miel no es basura."; ], has male openable ~open edible; ! El dormitorio Objeto_Localidad_Apto Objeto_Localidad_Dormitorio "dormitorio" with name_m 'dormitorio', name_f 'alcoba', found_in Dormitorio Sala Bano Balcon, has male; Localidad_El_Apartamento Dormitorio "El dormitorio" with descripcion_larga "El dormitorio es, después de la sala, la habitación más grande del apartamento... lo que no es mucho decir: el espacio lo domina una cama con un ropero no muy grande al costado.^ No tengo televisor, pues cuando me acuesto a dormir suelo sentirme muy cansado, haya hecho mucho o poco durante el día.^ Hay un baño en suite... que por otra parte es el único del apartamento: cuando llegué al edificio pensé que sería una problema, pero con el confinamiento las cosas se han simplificado.^ Desde aquí puedo salir al balcón o bien volver a la sala.", descripcion_corta "El dormitorio del apartamento, con una cama y un ropero no muy grande al costado. Tiene un baño en suite lo que no es mala cosa. Desde aquí puedo salir al balcón o bien volver a la sala.", ! descripcion_corta ! "El dormitorio del apartamento, con su baño en suite. Puedo salir al balcón o bien ! volver a la sala.", before [; Sleep: "Aun no, más tarde quizás. En una de ésas, quién sabe, podría hasta descansar un poco con el sueño."; SientaSolo: <>; Acostar: if (noun == nothing) <>; Exit: if ( (noun == nothing) && (player in Cama) ) <>; GetOff: if ( (noun == nothing) && (player in Cama) ) <>; Salidas: "Desde el dormitorio puedo entrar al baño por el oeste, salir al balcón o bien regresar a la sala por el este."; ], e_to Sala, w_to Bano, in_to Bano, out_to Balcon, ; Objeto_Escenario_Apto Cama "cama" Dormitorio with name_f 'cama', name_m 'lecho', adjectives 'comoda' 'comodo', look_clarification ", tendido en la cama", descripcion_larga "Mi cama es muy cómoda: tengo espacio para voltearme sin caerme y cuando me tiendo los pies no me cuelgan fuera. Duermo en ella cuando el trabajo lo permite y cuando me tomo alguna siesta los fines de semana.^ Ultimamente no descanso bien, no importa cuanto tiempo duerma.", descripcion_corta "Mi cama es muy cómoda, y duermo en ella cuando puedo. Ultimamente no descanso bien, no importa cuanto tiempo duerma.", before [; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en la cama."; PlayerTo(self,1); ! Sin <> "Quedo cómodamente tendido en la cama."; ], after [; Exit, GetOff: "Me levanto de la cama. Se estaba bien... casi dan ganas de volver a ella."; ], has female supporter; Objeto_Nota_Apto Nota_Dormitorio "nota explicativa" Limbo; Objeto_Escenario_Apto Ropero "ropero" Dormitorio with name 'ropero' 'closet' 'armario' 'placard', adjectives 'ancho' 'profundo', descripcion_larga "El ropero está a tono con la mayoría de los espacios del apartamento: resulta bastante ancho aunque no es muy profundo. No es que esto sea un problema, ya que de hecho no tengo demasiada ropa para guardar.", descripcion_corta "El ropero es bastante ancho pero poco profundo. No guardo demasiada ropa por lo que de momento no ha sido problema.", before [; if (player in Cama) "Tendré que dejar de estar tendido para eso."; Search: if (self has open) "Dentro del ropero está mi ropa."; Take, Open: if (nota_leida == 0) { move Nota_Dormitorio to Dormitorio; print "Estoy a punto de abrir el ropero cuando veo una nota pegada. "; Nota_Dormitorio.descripcion_larga(); <>; } if (self hasnt on) { give self on; give self open; ! Al abrir el ropero por primera vez ! movemos el jugador al Templo CortoAbreRopero.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); CortoInicioTemplo.proyeccion(); ChangePlayer(Jugador_Templo); PlayerTo(Jergon); rtrue; } ], after [; Examine: if (Nota_Dormitorio in Limbo) move Nota_Dormitorio to Dormitorio; print "Hay una nota pegada en el ropero"; if (nota_leida == 0) { print ". "; Nota_Dormitorio.descripcion_larga(); <>; } else "."; ], has male container openable ~open; Objeto_Escenario_Apto Ropa_Ropero "ropa" Ropero with name_m 'pantalon' 'caletin' 'poleron' 'zapato', name_mp 'pantalones' 'caletines' 'polerones' 'zapatos', name_f 'ropa' 'camisa' 'chaqueta' 'poleras' 'zapatilla', name_fp 'ropas' 'camisas' 'chaquetas' 'poleras' 'zapatillas', adjectives 'limpio' 'limpios' 'limpia' 'limpias' 'colgado' 'colgados' 'colgada' 'colgadas', descripcion_larga "Es mi ropa, toda colgada correctamente y ordenada por tipo de prenda y por la estación.^ No es que haya mucho para escoger ni que esté a la moda, pero en conjunto lo que tengo cumple su función^. La verdad, creo que podría ir desnudo si se me antojara, pero no me termina de gustar la idea, por muy a solas que esté.", descripcion_corta "Es mi ropa, toda colgada y en orden. No es mucho ni está a la moda, pero cumple su función: no me gusta ir desnudo, por muy a solas que esté.", before [; Rub, Take, Pull: "Está todo limpio: hay un servicio de lavandería cerca del apartamento... y cobran por recoger y repartir, era que no."; Take: "Ya voy vestido, no hace falta."; ], has male pluralname; ! El baño Objeto_Localidad_Apto Objeto_Localidad_Bano "baño" with name 'bano' 'baño', found_in Bano Dormitorio, has male; Localidad_El_Apartamento Bano "El cuarto de baño" with descripcion_larga "El cuarto de baño del apartamento tiene un equipamiento bastante completo, aunque no es especialmente espacioso por lo que resulta algo estrecho.^ Cuenta con una ducha, un sanitario, un lavamanos y un pequeño botiquín.^ Me consta que el lugar está bien aislado para la humedad y la temperatura, pero siempre he sentido una suerte de frío al entrar al lugar: serán ideas mías, supongo.^ Desde aquí solo es posible salir de vuelta al dormitorio.", descripcion_corta "El cuarto de baño del apartamento está razonablemente equipado, aunque resulta algo estrecho. Una ducha, un sanitario, un lavamanos y poco más. Siempre he sentido frío al entrar a este cuarto, aunque deben ser ideas mías porque no está mal aislado. Desde aquí solo es posible salir de vuelta al dormitorio.", ! descripcion_corta ! "El baño del apartamento, funcional aunque algo estrecho. Como suele, hace frío aquí. ! Puedo salir de regreso al dormitorio.", before [; SientaSolo: <>; Salidas: "Desde el cuarto de baño sólo puedo salir al dormitorio por el este."; ], e_to Dormitorio, out_to Dormitorio, ; Objeto_Escenario_Apto Ducha "ducha" Bano with name_f 'ducha' 'regadera' 'puerta', name_m 'sumidero' 'equipamiento', adjectives 'estrecha' 'corredera' 'aspera' 'lisa' 'fria', descripcion_larga [; print "La ducha del baño es reducida aunque suele funcionar bien. Está separada del baño con una puerta corredera, que está "; if (self has open) "abierta."; else "cerrada."; ], descripcion_corta [; print "La ducha del baño es reducida aunque suele funcionar bien. La puerta corredera "; if (self has open) "está abierta."; else "está cerrada."; ], before [; Take: <>; Touch: "La puerta de corredera es áspera, lisa... y está bien fría."; Enter: if (self hasnt open) "La puerta de corredera está cerrada."; "No es momento de tomar una ducha: ya me bañé en la mañana."; ], after [; Open: "Abro la puerta corredera de la ducha."; Close: "Cierro la puerta corredera de la ducha."; ], has female enterable openable ~open; Objeto_Escenario_Apto Sanitario "sanitario" Bano with name_m 'retrete' 'trono' 'sanitario' 'vater' 'wc' 'w.c.' 'equipamiento', name_f 'tapa', adjectives 'comodo' 'blanco' 'blanca' 'plastica' 'impecable' 'suave' 'liso' 'frio', descripcion_larga [; print "Un sanitario blanco y cómodo, sin estanque a la vista. Tiene su tapa plástica impecable. La tapa está "; if (self has open) "abierta."; else "cerrada."; ], descripcion_corta [; print "Un sanitario blanco y cómodo, con su tapa "; if (self has open) "abierta."; else "cerrada."; ], before [; Take: <>; Touch: "El sanitario es suave, liso... y está bien frío."; Enter, GoIn: if (self hasnt open) "La tapa del sanitario está cerrada."; "En este momento, no tengo ganas de usar el sanitario para... ejem, no tengo ganas de usarlo para nada, vaya."; ], after [; Open: "Abro la tapa del sanitario."; Close: "Cierro la tapa del sanitario."; ], has male supporter openable ~open; Objeto_Escenario_Apto Lavamanos "lavamanos" Bano with name 'lavatorio' 'lavabo' 'lavamanos' 'enlozado' 'equipamiento', adjectives 'limpio' 'blanco' 'suave' 'liso' 'frio', descripcion_larga "El lavamanos está debajo del botiquín. Es de enlozado blanco, con grifería de metal y está todo limpio.", descripcion_corta "El lavamanos de enlozado está limpio.", before [; Take, Touch: "El enlozado del lavamanos es suave, liso... y está bien frío."; ], after [; Examine: ! if (Botiquin in Limbo) ! move Botiquin to Bano; if (Griferia in Limbo) move Griferia to Bano; ], has male; Objeto_Escenario_Apto Griferia "grifería" Limbo with name_f 'griferia' 'llave', name_fp 'llaves', name_m 'grifo', adjectives 'metalica' 'metalicas' 'metalico' 'limpia' 'limpias' 'limpio' 'brillante' 'brillantes' 'suave' 'lisa' 'liso' 'fria' 'frio', descripcion_larga "La grifería del lavamanos es metálica. Sus llaves y grifo están bien limpios y brillantes.", descripcion_corta "La grifería del lavamanos es metálica y está bien limpia.", before [; Take, Touch: "La grifería es suave, lisa... y está bien fría."; SwitchOn, Turn, Open: "No tengo sed y tengo las manos limpias."; ], has female openable ~open; Objeto_Nota_Apto Nota_Bano "nota explicativa" Limbo; Objeto_Escenario_Apto Botiquin "botiquin" Bano with name_m 'botiquin' 'gabinete' 'espejo' 'equipamiento' 'mueble', name_f 'puerta', descripcion_larga "El botiquín sobre el lavamanos es un gabinete con un espejo que sirve de puerta. Lo uso solo en la mañana durante mi aseo diario. El resto del tiempo lo dejo en paz... no me queda vanidad ni ganas para otra cosa.^ Adentro guardo algunos utensilios de aseo.", descripcion_corta "Es el botiquín de utensilios está sobre el lavamanos, con su espejo en la puerta.", before [; Search: if (self has open) "Dentro del botiquín están mis utensilios de aseo diario."; Take, Open: if (nota_leida == 0) { move Nota_Bano to Bano; print "Estoy a punto de abrir el botiquín cuando veo una nota pegada en su puerta. "; Nota_Bano.descripcion_larga(); <>; } if (self hasnt on) { give self on; give self open; ! Al abrir el botiquin por primera vez ! movemos el jugador a el Hielo CortoAbreBotiquin.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); CortoInicioHielo.proyeccion(); ChangePlayer(Jugador_Hielo); ! FALLIDO Intento resolver XLO y XLA ! SetPronoun('-lo',player); ! SetPronoun('-la',Objeto_Localidad_Iglu); <>; } ], after [; Examine: if (Nota_Bano in Limbo) move Nota_Bano to Bano; print "Hay una nota pegada en la puerta del botiquín"; if (nota_leida == 0) { print ". "; Nota_Bano.descripcion_larga(); <>; } else "."; ], has male openable container ~open; Objeto_Escenario_Apto Utensilios "utensilios" Botiquin with name_m 'utensilio', name_mp 'utensilios', adjectives 'limpio' 'limpios', descripcion_larga "Son mis utensilios de aseo diario: un peine, una afeitadora, cepillo e hilo dental; pasta dental no uso.", descripcion_corta "Son mis utensilios de aseo diario.", before [; Dig: "Curiosa idea, cavar en los utensilios de aseo..."; Reparar: "Todos mis utensilios están practicamente nuevos, no hace falta arreglar nada."; Smell, Rub, Touch: "Está todo limpio: lo dejé así esta mañana, después del aseo."; Take, Push, Pull: "Ya me he aseado esta mañana. No hace falta usar de nuevo ninguno de mis utensilios."; ], has male pluralname; Decorado Botiquin_Decorado Botiquin with describe 'peine' "Es un peine para intentar mantener en orden mi pelo. No siempre funciona..." G_MASCULINO 'cepillo' "Un cepillo dental para el aseo bucal. Un imprescindible." G_MASCULINO 'hilo' "El hilo dental es un complemento al cepillo. Desde que lo uso habitualmente han disminuido mis visitas la dentista... y no estoy seguro de si eso es buena cosa o no." G_MASCULINO 'seda' "El hilo dental es un complemento al cepillo. Desde que lo uso habitualmente han disminuido mis visitas la dentista... y no estoy seguro de si eso es buena cosa o no." G_FEMENINO 'rasuradora' "Mi fiel rasuradora eléctrica. No me gusta la barba, así que la uso diariamente." G_FEMENINO 'afeitadora' "Mi fiel rasuradora eléctrica. No me gusta la barba, así que la uso diariamente." G_FEMENINO, before [; Dig: <>; Reparar: <>; Smell, Rub, Touch: <>; Take, Push, Pull: <>; Listen: <>; Burn: <>; ] ; Objeto_Localidad_Edif Objeto_Localidad_Pasillo "pasillo" with name_m 'pasillo' 'exterior', name_f 'planta', adjectives 'servicio', found_in Pasillo CuartoDucto Sala, has male; Objeto_Escenario_Edif Edif_Piso "piso" with name 'piso' 'suelo', adjectives 'limpio', descripcion_larga "El el piso de las áreas comunes del edificio. Está razonablemente limpio, resultado del trabajo de la administración del edificio y la colaboración de los vecinos, claro está.", descripcion_corta "El el piso de las áreas comunes del edificio.", before [; Reparar, Take, Push, Pull, Dig: <>; ], found_in Pasillo CuartoDucto, has male; Objeto_Escenario_Edif Edif_Techo "techo" with name 'techo' 'cielo', adjectives 'blanco' 'sencillo', descripcion_larga "El techo de las áreas comunes del edificio, todo blanco y muy sencillo. No demasiado distinto del de mi apartamento, ya que estamos.", descripcion_corta "El techo de las áreas comunes del edificio.", before [; Enter, Acostar, Touch, Take: "No alcanzo..."; ], found_in Pasillo CuartoDucto, has male; Objeto_Escenario_Edif Edif_Paredes "paredes" with name_fp 'paredes', name_f 'pared', name_mp 'muros', name_m 'muro', adjectives 'ajada' 'ajadas' 'ajado' 'ajados', descripcion_larga "Las paredes de las áreas comunes del edificio no son distintas a las del apartamento, pero su aseo podría ser más prolijo. No es que estén sucias, pero se las nota... algo ajadas.", descripcion_corta "No son más que las paredes del edificio.", before [; Reparar, Take, Push, Pull, Dig: <>; ], found_in Pasillo CuartoDucto, has female pluralname; Objeto_Luz Edif_Luz "luz" with description "El nivel de luz de las áreas comunes del edificio es un poco menor que el del apartamento. No llega a ser un problema, pero no es un poco funcional y fría.", found_in Pasillo CuartoDucto ; Objeto_Aire Edif_Aire "aire" with description "El aire de las áreas comunes del edificio está razonablmente fresco, aunque no es exactamente fragante.", before [; Smell: if ( (location == CuartoDucto) && (DuctoBasura has open) ) <>; else "El aire huele a limpio: no me sorprende, ya que todos los vecinos nos turnamos para asear estos espacios."; Listen: "En el edificio suele haber bastante silencio. El confinamiento no ha cambiado eso."; ], found_in Pasillo CuartoDucto ; Objeto_Temperatura Edif_Temperatura "temperatura" with description "La temperatura de las áreas comunes del edificio es algo más fresca que la del departamento.", found_in Pasillo CuartoDucto ; Localidad_El_Apartamento Pasillo "El pasillo" with descripcion_larga "El pasillo da acceso a los apartamentos del piso, por lo que es bastante largo aunque un poco angosto para mi gusto. Está bien diseñado, en todo caso, pues el espacio nunca llegó a ser un problema para las mudanzas... cuando las hubo: creo que va más de un año sin que alguien haya dejado el edificio, para no hablar de la llegada de nuevos vecinos.^ A los costados del pasillo están la puerta de mi apartamento y las de mis vecinos. Es un edificio sin demasiadas plantas, así que no hay ascensores: las escalas están en los extremos del pasillo y en medio hay una salida que llega al cuarto del ducto de basura.", descripcion_corta "El pasillo de acceso del piso es bastante largo y un tanto angosto, aunque no llega a ser un problema para las mudanzas... cuando las hay. A cada costado del pasillo están la puerta de mi apartamento y las de mis vecinos, mientras que en los extremos están las escalas y una salida que llega al cuarto del ducto de basura.", ! descripcion_corta ! "El pasillo de acceso del piso da a las puertas de los apartamentos, las escalas y ! a una salida al cuarto del ducto de basura.", before [; Go: if ( (noun == out_obj) && (Mi_Puerta has open) ) "Debiera dejar cerrada la puerta de mi apartamento antes de salir del pasillo."; Salidas: "Desde el pasillo puedo entrar a mi apartamento o bien usar la salida al cuarto del ducto de basura."; ], in_to [; <>; ], n_to Mi_Puerta, out_to CuartoDucto, u_to [; if (Escalas_Edificio hasnt visited) <>; else "Ahora mismo no tengo que hacer nada en los pisos superiores."; ], d_to [; if (Escalas_Edificio hasnt visited) <>; else "Ahora mismo no tengo que hacer nada en los pisos inferiores."; ] ; Objeto_Escenario_Edif Escalas_Edificio "escalas" Pasillo with name_f 'escala', name_fp 'escalas', name_m 'extremo', name_mp 'extremos', adjectives 'acceso' 'edificio', descripcion_larga "Las escalas de acceso permiten ir a los pisos inferiores o superiores: no hay elevadores en este edificio. Ahora mismo no estoy recorriendo el edificio, en todo caso.", descripcion_corta "Las escalas de acceso dan a los pisos inferiores o superiores, pero ahora mismo no voy a usarlas.", before [; Climb, Take, Enter: <>; Bajar: <>; Reparar, Push, Pull, Dig: <>; ! GoIn: ! "Ahora mismo no tengo que hacer nada en los pisos superiores."; ! GetOff: ! "Ahora mismo no tengo que hacer nada en los pisos inferiores."; ], has female pluralname; Objeto_Escenario_Edif Puertas_Vecinos "puertas de mis vecinos" Pasillo with name 'puertas', adjectives 'vecino' 'vecinos', descripcion_larga "A lo largo del pasillo están las puertas de los vecinos, similares a la mía. No están particularmente decoradas para diferenciarlas, pero ni a oscuras alguien se confundiría de apartamento o de puerta. Cosas de la convivencia, supongo.", descripcion_corta "A lo largo del pasillo están las puertas de los vecinos, similares a la mía.", before [; Reparar, Touch, Push, Pull, Open, Close, Attack: "Mejor dejo a mis vecinos en paz y así ellos pueden hacer lo mismo."; Rub: "Aquí cada uno limpia su propia puerta: bastante trabajo tenemos ya."; ], has female pluralname; Objeto_Escenario_Edif Salida "salida" with name 'salida', description [; if (location == Pasillo) print "Ubicada en medio del pasillo, l"; else print "L"; "a salida comunica el pasillo con el cuarto del ducto de basura."; ], before [; Take, GoIn, Enter: <>; ], found_in CuartoDucto Pasillo, has female; ! El cuarto del ducto de basura Objeto_Localidad_Edif Objeto_Localidad_CuartoDucto "cuarto del ducto de la basura" with name_m 'cuarto', name_f 'habitacion' 'pieza', adjectives 'ducto' 'basura', before [; Smell: <>; ], found_in CuartoDucto Pasillo, has male; Localidad_El_Apartamento CuartoDucto "El cuarto del ducto de basura" with descripcion_larga "El cuarto del ducto de eliminación de basura es bastante espartano. Aparte del ducto no hay nada más; ni siquiera tiene una puerta en la salida al pasillo, así hay que poner atención con el ducto si se quiere mantener la higiene, ejem, olfatoria del piso... y del edificio, a la larga.", descripcion_corta "Estoy en el cuarto del ducto de eliminación de basura. La única salida es al pasillo.", before [; Smell: if (noun == nothing) { if ( (location == CuartoDucto) && (DuctoBasura has open) ) <>; else "Mantenemos en forma comunitaria el aseo de las areas comunes. Ponemos especial atención con este cuarto para mantener la higiene, ejem, olfatoria del piso... y del edificio, a la larga."; } Go: if ( (noun == out_obj) && (DuctoBasura has open) ) "Debiera dejar cerrado el ducto de basura o empezará a apestar el pasillo... si es que antes no recibimos 'sorpresas' desde algún piso más arriba."; Salidas: "Desde el cuarto del ducto de basura sólo puedo salir al pasillo."; ], out_to Pasillo; Objeto_Escenario_Edif DuctoBasura "ducto de basura" CuartoDucto with name_m 'ducto' 'olor', name_f 'puerta', adjectives 'basura', descripcion_larga [; print "El ducto de basura da acceso al depósito principal de desechos para el edificio. Por fuera está tan limpio como el resto del cuarto, lo que permite que, en general, su olor sea neutro y semejante al del resto de las áreas comunes.^ La puerta del ducto está "; if (self has open) "abierta."; else "cerrada."; ], descripcion_corta [; print "El ducto de basura da acceso al depósito principal de desechos para el edificio. La puerta del ducto está "; if (self has open) "abierta."; else "cerrada."; ], ! descripcion_corta [; ! print "La puerta del ducto de basura está "; ! if (self has open) ! "abierta."; ! else ! "cerrada."; ! ], before [; Smell: if (self hasnt open) "El ducto está, al menos por fuera, tan limpio como el resto del cuarto, lo que permite que su olor sea neutro y semejante al del resto de las áreas comunes.^ Abierto ya es otra historia."; else "Huele a basura, un olor más bien repelente.^ Debiera dejar cerrado el ducto de basura al salir o empezará a apestar el pasillo..."; Take, Touch, Push, Pull: if (self has open) <>; else <>; ], has male container openable ~open; ! * Mundo La Playa * Class Localidad_La_Playa class Localidad with before [; Go: if (player in Playa_Piso) "Tendré que dejar de estar tendido para hacerlo..."; Enter: if (noun == d_obj) { if (location == Mar) <>; else <>; } else if (noun == u_obj) "Sería lindo poder hacerlo, pero no alcanzo..."; SientaSolo: if (location == Mar) <>; else <>; Acostar: if (noun == nothing) { if (location == Mar) <>; else <>; } else if (noun == u_obj) "Sería lindo poder hacerlo, pero no alcanzo..."; else if (noun == d_obj) <>; Exit: if ( (noun == nothing) && (player in Playa_Piso) ) <>; Swim: if (player in Playa_Piso) "Tendré que dejar de estar tendido para hacerlo..."; if ( (noun ~= 0) && (noun ~= Objeto_Localidad_Mar) ) print_ret "No puedo nadar en ", (the) noun, "..."; if ( (Conchitas_Redondas in player) || (Conchitas_Puntiagudas in player) || (Conchitas_Alargadas in player) || (Conchitas_Coloridas in player) ) "No puedo nadar con conchitas en la mano, se me perderían..."; if ( ( (Conchitas_Redondas in Bolsita) || (Conchitas_Puntiagudas in Bolsita) || (Conchitas_Alargadas in Bolsita) || (Conchitas_Coloridas in Bolsita) ) && (Bolsita has open) ) "Si me pongo a nadar con la bolsita abierta se saldrán las conchitas..."; if (Bolsita has open) "Si me pongo a nadar con la bolsita abierta se la llevará el mar..."; if (Mar hasnt general) { give Mar general; ! +1 punto por nadar en el mar de la playa Achieved(0); } ! Si ya recolectamos las conchitas ! volvemos al Apartamento if (Bolsita has on) { CortoNadarEnElMar.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } ! Si no, sigue el relato else if (location == Mar) "Sigo nadando..."; else { print "Me adentro en el mar y empiezo a nadar...^"; PlayerTo(Mar); rtrue; } Search: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == Mar) <>; else <>; } Touch: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == Mar) <>; else <>; } Dig: if ( (Conchitas_Redondas in player) || (Conchitas_Puntiagudas in player) || (Conchitas_Alargadas in player) || (Conchitas_Coloridas in player) ) "No puedo cavar con las conchitas en las manos."; else if (noun == nothing or player or d_obj) { if (location == Mar) <>; else <>; } Examine: if (noun == u_obj) <>; else if (noun == d_obj) { if (location == Mar) <>; else <>; } Rub: if (noun ofclass Objeto_Localidad) { print (The) noun, " se ve"; if (noun has pluralname) print "n"; print " razonablemente limpi"; if (noun has female) print "a"; else print "o"; if (noun has pluralname) print "s"; ". Los turistas hemos sido responsables y cuidadosos en esto de mantener el entorno.^ Para variar..."; } else if (noun ~= player) print_ret "Estoy de vacaciones. No quiero ponerme a limpiar ", (the) noun, "."; Take: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == Mar) <>; else <>; } else if ( (noun notin player) && ( (Conchitas_Redondas in player) || (Conchitas_Puntiagudas in player) || (Conchitas_Alargadas in player) || (Conchitas_Coloridas in player) ) ) "No me caben más conchitas en las manos."; Pray: "Mi vida espiritual está en descanso, estos días."; Sleep: "Todavía quedan muchas horas de luz. Disfrutemos el día."; Blow, WaveHands, Jump: if (location == Mar) "Me pongo a chapotear y salpicar a todas partes, riendo."; else "De puro contento, hago tonterías y morisquetas, saltando como un loco en la arena."; Strong: "Estoy demasiado contento para andar soltando groserías."; Smell: if (noun == nothing) <>; Listen: if (noun == nothing) <>; Recordar: "Al revés: estoy intentando no recordar demasiado lo que pasó en los últimos días. La idea es no agobiarme con lo que hice o dejé de hacer..."; Cazar, Pescar: "No lo haría ni aunque se me llegaran a agotar las provisiones del campamento: preferiría regresar a tener que cobrar presas para comer."; Burn: if (noun == d_obj) { if (location == Mar) "Vandalismo aparte ¿en el agua?^ Vaya pérdida de tiempo..."; else <>; } else if (noun == u_obj) "Sería horrible poder hacerlo, pero por suerte no alcanzo..."; ], after[; Insert: if ( (second == Bolsita) && (Conchitas_Redondas in Bolsita) && (Conchitas_Puntiagudas in Bolsita) && (Conchitas_Alargadas in Bolsita) && (Bolsita hasnt on) ) { give Bolsita on; ! +1 punto por recoger conchitas en la playa Achieved(1); ! Si ya nadamos en el mar ! volvemos al Apartamento if (Mar has general) { CortoRecogerConchitas.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } ! Si no, sigue el relato else "Hecho.^^He reunido una bonita colección de conchitas."; } ]; ! Escenario de la Playa Class Objeto_Escenario_Playa class Objeto_Escenario with before [; Burn, SwitchOn: "No traje combustible y la verdad no me gusta el vandalismo."; ]; ! Objetos de localidad para la playa Class Objeto_Localidad_Playa class Objeto_Localidad with before [; GoIn, Enter: if (Mar == (self.&found_in)-->0) <>; Burn, SwitchOn: if (location ~= (self.&found_in)-->0) print_ret "Tendría que ir a ", (the) noun, " para eso..."; else "No traje combustible y la verdad no me gusta el vandalismo."; ]; ! Objetos de puzzle de La Playa Class Objeto_Puzzle_Playa class Objeto_Puzzle; ! Clase para las Conchitas Class Conchitas_Puzzle_Playa class Objeto_Puzzle_Playa with name_fp 'conchitas' 'conchas', name_f 'conchita' 'concha', before [; Touch: "Son muy suaves y lisas."; Smell: "Tienen un olor fresco y húmedo."; Listen: "Las acerco al oído, pero son muy pequeñas para que se pueda escuchar alguna cosa."; Drop: "Me ha costado lo suyo encontrarlas, no pienso dejarlas por ahí..."; Burn: "¿Para qué quemarlas? Me gustan como están..."; ], has female pluralname; Objeto_Escenario_Playa Playa_Piso "arena" with name_f 'arena' 'sabana' 'arruga', name_fp 'arenas' 'arrugas', name_m 'grano' 'suelo' 'destello', name_mp 'granos' 'destellos', adjectives 'suave' 'suaves' 'tibia' 'tibias' 'brillante' 'brillantes' 'blanco', descripcion_larga "La arena se extiende por la playa como una sábana, con arrugas aquí y allá. Es de un color muy suave, casi blanco con leves destellos brillantes.^ Al contemplarla la mente descansa.", descripcion_corta "La arena de la playa invita al descanso y a la contemplación.", ! descripcion_corta ! "La arena de la playa es suave y tibia.", look_clarification ", tendido en la arena", before [; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en la arena."; PlayerTo(self,1); ! Sin <> "Me tiendo en la arena. Qué agradable..."; Touch: "Es suave y tibia."; Take, Dig: <>; Search: if (player in self) "Tendré que dejar de estar tendido para hacerlo..."; else if ( (Conchitas_Redondas in player) || (Conchitas_Puntiagudas in player) || (Conchitas_Alargadas in player) || (Conchitas_Coloridas in player) ) "No puedo registrar la arena con las conchitas en las manos."; else if ( (location == Playa) && (Conchitas_Redondas in Limbo) ) { move Conchitas_Redondas to Playa; "Buscando en la arena encuentro unas conchitas de formas redondeadas."; } else if ( (location == Jungla) && (Conchitas_Puntiagudas in Limbo) ) { move Conchitas_Puntiagudas to Jungla; "Buscando en la arena encuentro unas conchitas puntiagudas."; } else if ( (location == Rocas) && (Conchitas_Alargadas in Limbo) ) { move Conchitas_Alargadas to Rocas; "Buscando en la arena encuentro unas conchitas alargadas."; } else "Busco y registro en la arena pero no encuentro nada más."; ], after [; Examine: if ( (player notin self) && ( ( (location == Playa) && (Conchitas_Redondas in Limbo) ) || ( (location == Jungla) && (Conchitas_Puntiagudas in Limbo) ) || ( (location == Rocas) && (Conchitas_Alargadas in Limbo) ) ) ) <>; Exit, GetOff: "Me levanto de la arena. Se estaba tan bien que no me molestaría volver a tenderme..."; ], found_in Playa Jungla Rocas, has female supporter; Objeto_Escenario_Playa Playa_Cielo "cielo" with name_m 'cielo' 'color', adjectives 'limpio' 'despejado' 'azul' 'intenso', descripcion_larga "El cielo de la playa está limpio y despejado, sin nubes a la vista ni en el horizonte. Hacía tiempo que no veía un color azul tan puro e intenso, que tras un rato de contemplarlo hace que uno se restriegue los ojos, casi como si dolieran.", descripcion_corta "El cielo de la playa está limpio y despejado. Es de un color azul tan intenso que casi duele mirarlo.", ! descripcion_corta ! "El cielo de la playa, limpio y despejado.", before [; Enter, Acostar, Touch, Take, Climb: "Sería lindo poder hacerlo, pero no alcanzo..."; ], found_in Playa Jungla Rocas Mar, has male; Decorado Playa_Decorado with describe 'horizonte' "La vista se pierde contemplando el mar, que a la distancia se difumina hasta fundirse con el cielo.^ Uno de estos días me quedaré aquí hasta ver el ocaso." G_MASCULINO 'sol' "El sol es una bola dorada, iluminándolo todo con una nitidez casi irreal." G_MASCULINO, before [; Enter, Acostar, Smell, Rub, Touch, Take, Climb, Dig, Swim, Search: "Sería lindo poder hacerlo, pero no alcanzo..."; Burn: "Sería horrible poder hacerlo, pero por suerte no alcanzo..."; Listen: <>; ], found_in Playa Jungla Rocas Mar ; Objeto_Luz Playa_Luz "luz" with description "La luz del sol, brillante y dorada, cae sin sombra alguna. Todo se ve con una nitidez casi irreal.", found_in Playa Jungla Rocas Mar ; Objeto_Aire Playa_Aire "aire" with name 'aroma' 'olor', description "El aire marino es fresco y salado. A ratos se siente una brisa leve, suave como una caricia.", before [; Listen: <>; Smell: <>; ], found_in Playa Jungla Rocas Mar ; Objeto_Temperatura Playa_Temperatura "temperatura" with description "La temperatura en la playa es cálida sin llegar a ser agobiante.", found_in Playa Jungla Rocas Mar ; ! La playa Objeto_Localidad_Playa Objeto_Localidad_La_Playa "playa" with name_f 'playa' 'orilla', name_fp 'orillas', before [; Smell: <>; Listen: <>; ], found_in Playa Jungla Mar Rocas, has female; Localidad_La_Playa Playa "La playa" with descripcion_larga "La playa a orillas del mar es muy hermosa: arena suave, mar sereno, cielo limpio y despejado... es un remanso de paz que invita al descanso, la contemplación y el relajo.^ Llevo poco tiempo aquí y siento que aunque estuviera un mes completo podré seguir viniendo desde el campamento tierra adentro a recrearme en esta maravilla de paisaje, sin cansarme de contemplarlo, embelesado.^ No se ve a nadie a la vista, pero me viene bien: vine aquí precisamente por la falta de compañía.^ La playa se extiende al este hasta el borde una jungla y todo alrededor está protegida por un escarpado roquerío.", descripcion_corta "La playa a orillas del mar es muy hermosa. La arena, el mar, el cielo... todo está en paz e invita al descanso y a la contemplación: podría estar aquí días sin cansarme de contemplar el paisaje.^ Por el este se llega al borde una jungla y todo alrededor es un escarpado roquerío.", ! descripcion_corta ! "Una hermosa playa a orillas del mar. Por el este se llega al borde de una jungla ! y todo alrededor es un escarpado roquerío.", before [; Salidas: "En la playa puedo ir al norte para nadar en el mar. Por el oeste se llega al borde de una jungla. Al sur y al este me rodea un escarpado roquerío."; ], out_to Rocas, s_to Rocas, e_to Rocas, w_to Jungla, n_to [; <>;], in_to [; <>;], ; ! Objeto para el personaje del Jugador en La Playa Objeto_Jugador_Personaje Jugador_Playa Playa with description "Soy una persona normal, adulto de... no importa cuántos años. Estoy en muy buen estado físico: la vida al aire libre me ha sentado muy bien.", before [; Listen, Tell: "Si encuentro a alguien más, puede. Mientras tanto, no quiero complicar mi mente hoy..."; Touch: "Tengo la piel suave y bronceada."; Rub: "No hace falta: con nadar en el mar basta."; Smell: "No ando muy aseado, pero en este lugar da un poco lo mismo."; Burn, Cut, Attack, Push, Pull, Open, ThrowAt: "No me gusta eso del masoquismo. Paso."; ]; ! La ropa del Jugador Objeto_Ropa_Jugador Playa_Ropa_Jugador "bañador" Jugador_Playa with name_f 'malla', name_m 'bañador' ' trajebaño' 'traje', adjectives 'baño' 'colorido' 'simple', invent "mi bañador", descripcion_larga "Un simple y colorido bañador para la playa, que hacía mucho tiempo que no usaba. De camino del campamento pensé que me haría falta algo más para venir aquí, pero descubro que no necesito nada más.", descripcion_corto "Un simple y colorido bañador para la playa. No hace falta nada más.", ! descripcion_corta ! "Un simple y colorido bañador.", before [; Burn: print "Si lo hiciera, me quedaría sin nada puesto...^"; <>; Drop, Disrobe : "¿Andar desnudo? Es tentador pero ¿si alguien toma fotos...? Demasiadas explicaciones."; ], has male; Objeto_Puzzle_Playa Bolsita "bolsita de tela" Jugador_Playa with name_f 'bolsa' 'bolsita' 'tela', name_m 'coleccion' 'recoleccion', invent "mi bolsita de tela", descripcion_larga "Mi bolsa de recolección para mi colección de conchitas. Está muy usada, pero la conservo en buen estado. Le tengo mucho aprecio, pues está conmigo desde antes de que llegara a estas costas.", descripcion_corta "Mi bolsa de recolección para mi colección de conchitas. Tiene mucho uso pero está en buen estado.", before [; LetGo: if ( (Conchitas_Redondas in player) || (Conchitas_Puntiagudas in player) || (Conchitas_Alargadas in player) || (Conchitas_Coloridas in player) ) "No me caben más conchitas en las manos."; Open: if (location == Mar) { if ( (Conchitas_Redondas in Limbo) && (Conchitas_Puntiagudas in Limbo) && (Conchitas_Alargadas in Limbo) ) "Si me pongo a nadar con la bolsita abierta se la llevará el mar..."; else "Si me pongo a nadar con la bolsita abierta se saldrán las conchitas..."; } Touch: print "Es bien áspera"; if (Mar has visited) " y está empapada."; else "."; Smell: "Tiene una mezla de olores por el uso que le he dado."; Drop: "No me puedo separar de ella y arriesgarme a perderla."; Burn: "Vaya tontería. Si la quemo ¿con qué puedo hacer mi recolección?"; ] has female container openable scenery; Conchitas_Puzzle_Playa Conchitas_Redondas "conchitas redondas" Limbo with adjectives 'redonda' 'redondas' 'redondeada' 'redondeadas', describe "En la arena de la orilla hay desperdigadas unas conchitas redondas.", descripcion_larga "Son conchitas de formas redondeadas, con curvas que van y vienen sin fin ni principio.", descripcion_corta "Son conchitas de formas redondeadas."; ! La jungla Objeto_Localidad_Playa Objeto_Localidad_Jungla "jungla" with name 'jungla' 'selva', before [; Climb: if (location ~= Jungla) "Tendría que ir a la jungla para eso..."; else "Habría que pasar primero por los matorrales... y no me gustaría averiguar por las malas si tienen espinas."; Smell: if (location ~= Jungla) "Tendría que ir a la jungla para eso..."; else "El olor de la jungla es fresco e intenso. Cuesta distinguir aromas individuales y cada planta aporta lo suyo."; Dig, Take, Cut, Rub: if (location ~= Jungla) "Tendría que ir a la jungla para eso..."; else "Demasiada planta para improvisar paisajismo, caramba..."; Listen: if (location ~= Jungla) "Tendría que ir a la jungla para eso..."; else "No se escucha nada salvo el rumor del aire entre ramas y hojas."; ], found_in Jungla Playa, has female; Localidad_La_Playa Jungla "La jungla" with descripcion_larga "Al final de la playa se llega al borde una jungla densa y tupida: detrás de los matorrales se alzan varios árboles que compiten entre sí por llegar al cielo.^ La arena no consigue penetrar más allá del borde de los matorrales, entre los que no se distingue ningún sendero o huella para avanzar selva adentro.^ No se escucha nada salvo el rumor del aire entre ramas y hojas.^ Puedo regresar la playa caminando por la arena o bien nadando en el mar.", descripcion_corta "Al final de la playa se llega a una jungla densa y tupida. La arena llega al borde de los matorrales y no se distingue sendero alguno.^ Todo está en paz.^ Puedo regresar a pie o nadando.", ! descripcion_corta ! "Estoy al borde de una jungla muy densa al final de la playa. Puedo regresar a pie ! o nadando.", before [; Salidas: "Desde el borde de la jungla puedo ir al norte para nadar en el mar. Por el este se regresa a la playa, mientras que al sur se llega a un escarpado roquerío."; ], out_to Rocas, s_to Rocas, e_to Playa, n_to [; <>;], in_to [; <>;], ; Decorado Jungla_Decorado Jungla with describe 'matorral' "Los matorrales son bajos pero se ven densos. No me gustaría averiguar por las malas si tienen espinas." G_MASCULINO 'arbol' "Los árboles se alzan orgullosos, intentando ganar al vecino en esto de llegar primero al cielo." G_MASCULINO 'tronco' "Los troncos parecen verdaderas torres y crecen rectos o retorcidos, pero siempre hacia arriba." G_MASCULINO 'rama' "Las ramas se cruzan entre sí y apenas dejan pasar la luz del sol. Se ven algunas lianas colgando aquí y allá." G_FEMENINO 'liana' "Las lianas parecen serpientes, enroscándose ente las ramas y pasando de un árbol al otro." G_FEMENINO 'hoja' "Las hojas son grandes y reflejan las luz en miles de variaciones del verde y el amarillo." G_FEMENINO, before [; Climb: <>; Smell: <>; Burn, SwitchOn: <>; Dig, Take, Cut, Rub: <>; GoIn, Enter, Push, Pull, Acostar: "No se distingue ningún sendero o huella para avanzar selva adentro."; Listen: <>; ] ; Decorado Jungla_Decorado_Plural Jungla with describe 'matorrales' "Los matorrales son bajos pero se ven densos. No me gustaría averiguar por las malas si tienen espinas." G_MASCULINO 'arboles' "Los árboles se alzan orgullosos, intentando ganar al vecino en esto de llegar primero al cielo." G_MASCULINO 'troncos' "Los troncos parecen verdaderas torres y crecen rectos o retorcidos, pero siempre hacia arriba." G_MASCULINO 'ramas' "Las ramas se cruzan entre sí y apenas dejan pasar la luz del sol. Se ven algunas lianas colgando aquí y allá." G_FEMENINO 'lianas' "Las lianas parecen serpientes, enroscándose ente las ramas y pasando de un árbol al otro." G_FEMENINO 'hojas' "Las hojas son grandes y reflejan las luz en miles de variaciones del verde y el amarillo." G_FEMENINO, before [; Climb: <>; Smell: <>; Burn, SwitchOn: <>; Dig, Take, Cut, Rub: <>; GoIn, Enter, Push, Pull, Acostar: "No se distingue ningún sendero o huella para avanzar selva adentro."; Listen: <>; ] has pluralname; Conchitas_Puzzle_Playa Conchitas_Puntiagudas "conchitas puntiagudas" Limbo with name_fp 'puntas', name_f 'punta', adjectives 'puntiaguda' 'puntiagudas' 'puntuda' 'puntudas' 'erizada' 'erizadas' 'rugosa' 'rugosas', describe "En la arena de la orilla hay desperdigadas unas conchitas puntiagudas.", descripcion_larga "Son conchitas de formas puntigudas, erizadas de puntas y puas.", descripcion_corta "Son conchitas de formas puntiagudas."; ! El mar Objeto_Localidad_Playa Objeto_Localidad_Mar "mar" with name_m 'mar' 'oceano' 'oleaje' 'rumor', name_f 'agua' 'ola' 'musica', name_fp 'olas', description [; print "El mar se ve tranquilo: un horizonte azul de paz apenas interrumpido por el suave oleaje, cuyo dulce vaivén es un verdadero arrullo"; if (location == Mar) print ". El agua es tan clara y limpia que puedo distinguir la arena del fondo a mis pies"; ".^ Parece como si mis preocupaciones se las llevara el oceano, mientras dejo pasar el tiempo mirándolo, sin pensar en nada."; ], before [; Take, Drink: "Mejor que no: el agua de mar ha de estar terriblemente salada..."; Touch: "El agua está fresca pero no fría."; Listen: "Escucho el suave rumor de las olas, una música que nunca se repite, como un arrullo infinito..."; Smell: "El mar llena el aire con un aroma salado, fresco y vibrante."; Swim: <>; ], found_in Mar Playa Rocas Jungla, has male; Localidad_La_Playa Mar "El mar" with descripcion_larga "El mar se ve tranquilo: un horizonte azul de paz apenas interrumpido por el suave oleaje, cuyo dulce vaivén es un verdadero arrullo.^ El agua está fresca pero no fría y da gusto estar en ella. De vez en cuando atino a mover un poco los brazos o sacudo las piernas, pero puedo estarme quieto y floto sin problemas.^ Parece como si mis preocupaciones se las llevara el oceano, mientras dejo pasar el tiempo sin pensar en nada.^ El agua es de una claridad y limpieza tales que puedo ver con todo detalle la arena del fondo.", descripcion_corta "El suave vaivén de las olas me arrulla y el agua me refresca. A veces me acuerdo de mover los brazos o las piernas, pero quedándome quieto floto sin problema y el tiempo pasa dulcemente.^ El agua es tan clara y limpia que puedo distinguir la arena del fondo.", ! descripcion_corta ! "El suave vaivén de las olas me arrulla y el agua, tan limpia que veo el fondo, me ! refresca.", before [; Swim: if (verb_word == 'bucea') { if (noun == Mar_Fondo) <>; else if (Conchitas_Coloridas in Limbo) <>; else if ( (Conchitas_Coloridas notin player) && (Conchitas_Coloridas notin Bolsita) ) <>; } Salidas: "Puedo salir del mar para volver a la playa."; ], s_to Playa, out_to Playa, ; Conchitas_Puzzle_Playa Conchitas_Coloridas "conchitas coloridas" Limbo with adjectives 'colorida' 'coloridas' 'color' 'coloridas' 'muy' 'extraña' 'extrañas', describe "En la arena del fondo a mis pies se ven desperdigadas unas conchitas de colores.", descripcion_larga "Son conchitas de formas muy extrañas, con muchos colores.", descripcion_corta "Son conchitas de muchos colores.", before [; Take: if (self in Mar) { move self to Player; ! +1 punto por recoger conchitas del fondo del mar Achieved(2); "Me sumerjo y recojo las conchitas coloridas. Son tan hermosas..."; } ]; Objeto_Escenario_Playa Mar_Fondo "arena del fondo" Mar with name_f 'arena', name_m 'fondo', descripcion_larga [; print "El agua es tan clara y limpia que puedo distinguir la arena del fondo"; if (Conchitas_Coloridas in Mar) ", con unas conchitas de colores desperdigadas."; else "."; ], descripcion_corta [; print "Veo la arena del fondo"; if (Conchitas_Coloridas in Mar) ", con unas conchitas de colores desperdigadas."; else "."; ], before [; Enter, GoIn, Acostar: "Es inútil que lo intente, siempre termino saliendo a flote..."; Touch: "Es suave y fresca."; Take, Dig: <>; Search: if (Conchitas_Coloridas in Limbo) { move Conchitas_Coloridas to Mar; "Removiendo la arena encuentro unas conchitas coloridas en la arena del fondo."; } else if (Conchitas_Coloridas in player) "No puedo cavar con las conchitas en las manos."; else "Busco y registro en la arena del fondo pero no encuentro nada más."; ], after [; Examine: if (Conchitas_Coloridas in Limbo) <>; ], has female; ! Las rocas Objeto_Localidad_Playa Objeto_Localidad_Rocas "rocas" with name_m 'rededor' 'alrededor' 'derredor' 'muro' 'roquerio', name_f 'roca', name_fp 'rocas', before [; Attack, Cut, Dig: "Vine a descansar, no pienso ponerme a trabajar para habilitar una bajada peatonal..."; Climb: if (location ~= Rocas) "Tendría que ir al roquerío para eso..."; else "No fue fácil bajar por las rocas, escarpadas y muy altas, por lo que no me seduce la idea de treparlas: lo haré cuando decida regresar al campamento."; Smell: <>; Listen: <>; ], found_in Rocas Playa Jungla, has female pluralname; Localidad_La_Playa Rocas "Las rocas" with descripcion_larga "El roquerío rodea por completo la playa, protegiéndola del viento y de miradas indiscretas.^ No fue fácil bajar por las rocas, escarpadas y muy altas, por lo que no me seduce la idea de treparlas: lo haré cuando decida regresar al campamento y no antes de haber disfrutado plenamente de este lugar, que se siente como un verdadero refugio de paz.^ Puedo regresar la playa caminando por la arena o bien nadando en el mar.", descripcion_corta "Unas rocas escarpadas y altas rodean por completo la playa, protegiéndola del viento. No se sienten como un muro sino más bien como una cortina sólida, que brinda privacidad y refugio.^ Puedo regresar a pie o nadando.", ! descripcion_corta ! "Es un roquerío muy escarpado que rodea la playa. Puedo regresar a pie o nadando.", before [; Salidas: "Desde las rocas puedo ir a nadar en el mar. Por norte o el oeste se regresa a la playa."; ], w_to Playa, n_to Playa, out_to Playa, in_to [; <>;], ; Conchitas_Puzzle_Playa Conchitas_Alargadas "conchitas alargadas" Limbo with adjectives 'alargada' 'alargadas' 'larga' 'largas' 'plana' 'planas' 'lisa' 'lisas' 'suave' 'suaves', describe "En la arena de la orilla hay desperdigadas unas conchitas alargadas.", descripcion_larga "Son conchitas de formas alargadas, planas y lisas.", descripcion_corta "Son conchitas de formas alargadas."; ! * Mundo el Árbol * Class Localidad_El_Arbol class Localidad with before [; Go: if (player in Arbol_Piso_Seco_Arbol or Arbol_Piso_Humedo_Arbol or Arbol_Piso_Flores or Arbol_Piso_Laguna) "Tendré que dejar de estar tendido para hacerlo..."; Enter: if (noun == d_obj) { switch(location) { ClaroArbol: if (Arbol_Piso_Humedo_Arbol in Limbo) <>; else <>; CampoFlores: <>; Laguna: <>; } } else if (noun == u_obj) "Sería lindo poder hacerlo, pero no alcanzo..."; SientaSolo: <>; Acostar: if (noun == nothing or d_obj) <>; else if (noun == u_obj) "Sería lindo poder hacerlo, pero no alcanzo..."; Exit: if (noun == nothing) { if (player in Arbol_Piso_Seco_Arbol) <>; else if (player in Arbol_Piso_Humedo_Arbol) <>; else if (player in Arbol_Piso_Flores) <>; else if (player in Arbol_Piso_Laguna) <>; } Take, Touch: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == ClaroArbol) { if (Arbol_Piso_Seco_Arbol in ClaroArbol) <>; else <>; } else if (location == CampoFlores) <>; else <>; } Search, Examine: if (noun == u_obj) <>; else if (noun == d_obj) { if (location == ClaroArbol) { if (Arbol_Piso_Seco_Arbol in ClaroArbol) <>; else <>; } else if (location == CampoFlores) <>; else <>; } Rub: if ( (noun ~= Jugador_Arbol) && (noun ~= Arbol_Ropa_Jugador) ) "La naturaleza es pura. Nada hay que yo deba limpiar..."; Dig: if (noun == nothing or player) <>; else if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) { if (location == ClaroArbol) { if (Arbol_Piso_Seco_Arbol in ClaroArbol) <>; else <>; } else if (location == CampoFlores) <>; else <>; } Pray: "La naturaleza no necesita que la adore: basta con cuidarla y disfrutarla."; Sleep: "Aun no es hora de dormir y no estoy cansado. Disfrutemos el día."; Blow, WaveHands, Jump: "De puro contento, hago tonterías y morisquetas."; Strong: "La naturaleza no merece que la insulte."; Burn, SwitchOn: "Aun no estoy tan molesto con la vida como para arrasarlo todo..."; Recordar: "No tengo nada del pasado para recordar: todo lo que es importante está ahora frente a mí, para verlo y sentirlo..."; Reparar: "La naturaleza no necesita que la arregle: basta con cuidarla y disfrutarla."; ]; ! Escenario del Árbol Class Objeto_Escenario_Arbol class Objeto_Escenario; ! Objetos de localidad para el árbol Class Objeto_Localidad_Arbol class Objeto_Localidad with name_f 'naturaleza'; Decorado Arbol_Decorado with describe 'horizonte' "La vista se pierde contemplando la distancia, que se difumina en multiples colores hasta fundirse con el cielo." G_MASCULINO 'sol' "El sol es una bola dorada, iluminándolo todo con una luz suave." G_MASCULINO, before [; Enter, Acostar, Smell, Touch, Take, Climb, Push, Pull: "Sería lindo poder hacerlo, pero no alcanzo..."; Listen: <>; ], found_in ClaroArbol CampoFlores Laguna ; Objeto_Escenario_Arbol Arbol_Cielo "cielo" with name_m 'cielo' 'color', name_f 'nube', name_fp 'nubes', adjectives 'limpio' 'despejado' 'azul' 'suave', descripcion_larga "El cielo está limpio y despejado, sin nubes hasta donde la vista alcanza.^ Su color azul tan puro y suave, que tras un rato de mirarlo uno siente que los ojos se cierran, como si hubieran recibido una gentil caricia.", descripcion_corta "El cielo está limpio y despejado. No se ven nubes y es de un color azul suave, una caricia para la vista.", ! descripcion_corta ! "El cielo, limpio y despejado.", before [; Enter, Acostar: "Sería lindo poder hacerlo, pero no alcanzo..."; ], found_in ClaroArbol CampoFlores Laguna, has male; Objeto_Luz Arbol_Luz "luz" with description "La luz del sol, suave y dorada, cae pintando todo en tonos delicados.", found_in ClaroArbol CampoFlores Laguna ; Objeto_Aire Arbol_Aire "aire" with description "El aire es fresco y se respira paz. A ratos se siente una brisa leve, suave como una caricia.", before [; Listen: <>; Smell: <>; ], found_in ClaroArbol CampoFlores Laguna ; Objeto_Temperatura Arbol_Temperatura "temperatura" with description [; if (location == CampoFlores) "La temperatura es cálida sin llegar a ser agobiante."; else "La temperatura es fresca sin llegar a ser fría."; ], found_in ClaroArbol CampoFlores Laguna ; ! El claro del árbol Objeto_Localidad_Arbol Objeto_Localidad_ClaroArbol "claro del árbol" with name 'claro', adjectives 'arbol', before [; Listen: if (location ~= ClaroArbol) "Tendría que ir al claro del árbol para eso..."; else <>; Smell: if (location ~= ClaroArbol) "Tendría que ir al claro del árbol para eso..."; else <>; ], found_in ClaroArbol CampoFlores Laguna, has male; Localidad_El_Arbol ClaroArbol "El claro del árbol" with descripcion_larga "El árbol está en medio del claro, dominando el lugar.^ Su tronco, grueso y robusto, se eleva al cielo como un monumento a la naturaleza, casi como una torre que ha cobrado vida.^ Todo alrededor puedo sentir el pulso de la naturaleza fluyendo como un río, yendo y viniendo en un curso que no cesa, cálido y algo adormecedor.^ Por el oeste me llega el perfume de un campo de flores, mientras que al este se siente el aire fresco de una laguna cercana.", descripcion_corta "El árbol se eleva en medio del claro, como una torre viviente. Todo alrededor puedo sentir como la vida fluye, yendo y viniendo en un flujo que no cesa, cálido y adormecedor.^ Desde el oeste siento el perfume de un campo de flores y al este se adivina el frescor de una laguna.", ! descripcion_corta ! "Estoy en el claro junto al árbol. Al este puedo ver una laguna y se ve ! un campo de flores al oeste.", before [; Listen: if (noun == nothing) <>; Smell: if (noun == nothing) <>; Salidas: "Desde el claro del árbol puedo ir al campo de flores por el oeste o llegar a la laguna al este."; ], after [; Look: if (Arbol_Piso_Laguna has on) { if (Arbol_Piso_Humedo_Arbol hasnt on) "Por donde he cavado, el agua ya está fluyendo de la laguna al borde del claro."; else "Por donde he cavado, el agua ya está fluyendo de la laguna a las raíces del árbol."; } ], out_to Laguna, e_to Laguna, w_to CampoFlores, ; ! Objeto para el personaje del Jugador en el árbol Objeto_Jugador_Personaje Jugador_Arbol ClaroArbol with description "Soy una persona viviendo de manera natural, libre de toda atadura. Estoy en muy buen estado físico: la vida al aire libre es para lo que he nacido.", before [; Listen, Tell: "Si encuentro a alguien más, puede. Mientras tanto, bastará con la naturaleza..."; Touch: "Tengo la piel suave y bronceada."; Rub: "No hace falta: mi olor no efende a nadie."; Smell: "No ando muy aseado, pero en este lugar da un poco lo mismo."; Burn, Cut, Attack, Push, Pull, Open, ThrowAt: "¿Para qué? Hacerme daño no le sirve a la naturaleza y ciertamente a mí no."; ]; ! La ropa del Jugador Objeto_Ropa_Jugador Arbol_Ropa_Jugador "taparrabos" Jugador_Arbol with name_m 'taparrabos' 'taparrabo', invent "mi taparrabos", descripcion_larga "Un simple y opaco taparrabo, que uso más por cuidarme de algún roce molesto que por frío. No hace falta nada más.", descripcion_corta "Un taparrabos simple y más bien opaco.", before [; Drop, Disrobe : "¿Y andar desnudo? Es tentador pero ¿y si me hago daño? No, qué dolor, hay que cuidarse."; Rub: "No vale la pena, viejo y gastado como está."; Smell: "Huele a tierra, a hierba... y a mí."; Search, Touch: "Es muy áspero."; ], has male; Objeto_Escenario_Arbol Arbol "árbol" ClaroArbol with name_m 'arbol' 'tronco', name_f 'torre' 'raiz', name_fp 'raices', adjectives 'verde' 'gruesa' 'gruesas', descripcion_larga [; print "El árbol está en medio del claro, dominando el lugar.^ Su tronco, grueso y robusto, se eleva al cielo como un monumento a la naturaleza, casi como una torre que ha cobrado vida.^ Muy por encima mío, las ramas entrelazadas y sus hojas conforman un amplio follaje, tan extenso que cubre el claro casi por completo, creando una sombra muy fresca.^ A nivel del suelo, las raices, muy gruesas y largas, se hunden en la tierra"; if (Arbol_Piso_Seco_Arbol in ClaroArbol) ", que se ve algo seca."; else { if (Arbol_Piso_Humedo_Arbol hasnt on) " húmeda."; else " regada desde la laguna."; } ], descripcion_corta [; print "El árbol está en medio del claro, elevando su tronco al cielo como una torre viva. Su follaje cubre casi todo el claro, dando una sombra fresca, mientras que sus gruesas raices se hunden en la tierra"; if (Arbol_Piso_Seco_Arbol in ClaroArbol) ", algo seca."; else { if (Arbol_Piso_Humedo_Arbol hasnt on) " húmeda."; else " regada desde la laguna."; } ], ! descripcion_corta [; ! print "El árbol está en medio del claro, todo alto y verde. Sus raices se hunden en ! la tierra"; ! if (Arbol_Piso_Seco_Arbol in ClaroArbol) ! ", algo seca."; ! else ! { ! if (Arbol_Piso_Humedo_Arbol hasnt on) ! " húmeda."; ! else ! " regada desde la laguna."; ! } ! ], before [; Push, Touch, Search, Take: "Siento la solidez del tronco, inmóvil bajo mi mano."; Smell: "El olor del árbol es fresco y vigorizante."; Listen: <>; Dig, Burn, Cut, Attack: print "Jamás me atrevería a hacerle eso al árbol. Merece todo mi respeto"; if (Arbol_Piso_Humedo_Arbol hasnt on) "... y cuidado, si fuera necesario."; "."; Enter, GoIn, Climb, Kiss: if (Arbol_Piso_Humedo_Arbol hasnt on) "No creo que el árbol me acepte esas confianzas... menos si no he hecho nada por él."; else if (self hasnt on) { give self on; ! +1 por abrazar al árbol Achieved(5); if (velocidad_texto == vel_texto_animado) { velocidad_texto=0; CortoAbrazarArbol.proyeccion(1); ! Sin borrar pantalla velocidad_texto = vel_texto_animado; } else CortoAbrazarArbol.proyeccion(1); ! Sin borrar pantalla rtrue; } else "No hace falta, el árbol ya sabe lo que siento."; ], has male animate; Objeto_Escenario_Arbol Follaje "follaje" ClaroArbol with name_m 'follaje' 'zumbido', adjectives 'fresco' 'fresca' 'apagado' 'intenso', descripcion_larga [; print "El follaje del árbol cubre casi todo el claro. Miles de hojas cuelgan de sus ramas, largas y gruesas, dando una fresca sombra todo alrededor.^ Desde muy arriba, desde un panal oculto, llega el zumbido "; if (Flores_Cerradas in CampoFlores) print "apagado "; else print "intenso "; "de unos insectos."; ], descripcion_corta [; print "El follaje del árbol cubre casi todo el claro. Desde muy arriba llega el zumbido "; if (Flores_Cerradas in CampoFlores) print "apagado "; else print "intenso "; "de unos insectos en su panal."; ], before [; Dig, Touch, Search, Take, Rub: "No llego tan alto..."; Smell: <>; Listen: if (Panal in Limbo) { move Panal to ClaroArbol; move Claro_Insectos to ClaroArbol; "Desde muy arriba, de un panal oculto en el follaje, llega el zumbido apagado de unos insectos."; } else <>; ], after [; Examine: if (Panal in Limbo) { move Panal to ClaroArbol; move Claro_Insectos to ClaroArbol; } ], has male; Decorado Follaje_Decorado ClaroArbol with describe 'rama' "Las ramas, largas y gruesas, se cruzan entre sí y apenas dejan pasar la luz del sol. Miles de hojas cuelgan de ellas, dando una fresca sombra todo alrededor." G_FEMENINO 'hoja' "Las hojas son grandes y reflejan las luz en miles de variaciones del verde y el amarillo." G_FEMENINO, before [; Acostar, Touch, Search, Take, Rub, GoIn, Enter, Push, Pull: "No llego tan alto..."; Smell: <>; Climb: "Para eso, tendría que trepar por el tronco, primero."; Cut, Attack, Dig, Burn, SwitchOn: <>; Listen: <>; ], after [; Examine: if (Panal in Limbo) { move Panal to ClaroArbol; move Claro_Insectos to ClaroArbol; "Desde muy arriba, de un panal oculto en el follaje, llega el zumbido apagado de unos insectos."; } ] ; Decorado Follaje_Decorado_Plural ClaroArbol with describe 'ramas' "Las ramas, largas y gruesas, se cruzan entre sí y apenas dejan pasar la luz del sol. Miles de hojas cuelgan de ellas, dando una fresca sombra todo alrededor." G_FEMENINO 'hojas' "Las hojas son grandes y reflejan las luz en miles de variaciones del verde y el amarillo." G_FEMENINO, before [; Acostar, Touch, Search, Take, Rub, GoIn, Enter, Push, Pull: "No llego tan alto..."; Smell: <>; Climb: "Para eso, tendría que trepar por el tronco, primero."; Cut, Attack, Dig, Burn, SwitchOn: <>; Listen: <>; ], after [; Examine: if (Panal in Limbo) { move Panal to ClaroArbol; move Claro_Insectos to ClaroArbol; "Desde muy arriba, de un panal oculto en el follaje, llega el zumbido apagado de unos insectos."; } ] has pluralname; Objeto_Sombra Follaje_Sombra "sombra" ClaroArbol with description "La sombra fresca del arbol cubre casi todo el lugar. Se está a gusto bajo el follaje...", before [; Enter, GoIn, Acostar: if (player in Arbol_Piso_Seco_Arbol or Arbol_Piso_Humedo_Arbol) "Ya estoy tendido en la tierra."; if (Arbol_Piso_Humedo_Arbol in Limbo) <>; else <>; ] ; Objeto_Escenario_Arbol Panal "panal" Limbo with name_m 'panal', name_f 'forma', adjectives 'redonda' 'redondo' 'opaca' 'opaco' 'oculto', descripcion_larga [; print "El panal se divisa oculto entre las ramas, insinuado apenas como una forma opaca y redonda. Hay "; if (Flores_Cerradas in CampoFlores) "algunos pocos insectos revoloteando alrededor, pero son muy escasos y vuelan lentamente, como adormecidos."; else "muchos insectos revoloteando alrededor, en un incesante ir y venir desde el panal al campo de flores."; ], descripcion_corta [; print "El panal se divisa oculto entre las ramas, con "; if (Flores_Cerradas in CampoFlores) "algunos pocos insectos revoloteando lentamente alrededor."; else "muchos insectos yendo y viniendo desde el panal al campo de flores."; ], before [; Burn, Cut, Attack, Touch, Search, Smell, Take, Rub: "No llego tan alto..."; Listen: if (Flores_Cerradas in CampoFlores) "Unos pocos insectos zumban suavemente alrededor del panal."; else "Muchos insectos zumban intensamente alrededor del panal."; ], has male; Objeto_Escenario_Arbol Claro_Insectos "insectos" Limbo with name_m 'insecto', name_mp 'insectos', adjectives 'gordo' 'gordos' 'oscuro' 'oscuros', descripcion_larga [; print "Los insectos son gordos como mi dedo pulgar. "; if (Flores_Cerradas in CampoFlores) "Se ve uno que otro revoloteando alrededor del panal, volando lentamente... como adormecidos."; else "Se ven muchos de ellos revoloteando alrededor del panal, en un incesante ir y venir desde el panal al campo de flores."; ], descripcion_corta [; print "Los insectos, gordos como mi dedo pulgar, "; if (Flores_Cerradas in CampoFlores) "revolotean lentamente alrededor del panal."; else "van y vienen en grandes cantidades desde el panal al campo de flores."; ], before [; Touch, Search, Smell, Take, Rub, Cut, Attack: "No llego tan alto..."; Listen: print "Los insectos, en "; if (Flores_Cerradas in CampoFlores) print "escazo numero, zumban suavemente"; else print "grandes cantidades, zumban intensamente"; " alrededor del panal."; ], has male pluralname; Objeto_Escenario_Arbol Arbol_Piso_Seco_Arbol "tierra" ClaroArbol with name_m 'suelo' 'piso', name_f 'tierra', adjectives 'duro' 'dura' 'seco' 'seca', descripcion_larga "La tierra alrededor del árbol está algo seca y dura. Esto no puede ser bueno para el árbol: por profundas que sean sus raíces, a la larga la falta de agua empezará a afectarlo.", descripcion_corta "La tierra alrededor del árbol está algo seca y dura.^ El árbol necesita mi ayuda o pronto empezará a sufrir por falta de agua.", look_clarification ", tendido en la tierra seca", before [; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en la tierra."; PlayerTo(self,1); ! Sin <> "Me tiendo en la tierra. Está algo seca..."; Take, Touch: <>; Dig: if (player in self) "Tendré que dejar de estar tendido para hacerlo..."; else { print "Mis manos apenas consiguen rasgar el suelo. "; if (self hasnt visited) <>; else "La tierra alrededor del árbol está algo seca y dura."; } ], after [; Exit, GetOff: "Me levanto de la tierra. Se estaba tan bien que no me molestaría volver a tenderme..."; ], has female supporter; Objeto_Escenario_Arbol Arbol_Piso_Humedo_Arbol "tierra húmeda" Limbo with name_m 'suelo' 'piso', name_f 'tierra', adjectives 'blando' 'blanda' 'suave' 'humedo' 'humeda', descripcion_larga [; print "La tierra alrededor del árbol ahora está húmeda, "; if (self has on) "irrigada con agua fresca desde la laguna.^ El árbol está ahora a salvo de la sed y la sequedad."; else "pero esta humedad incipiente no es suficiente para mantener sano al árbol: aún tengo trabajo por hacer..."; ], descripcion_corta [; print "La tierra alrededor del árbol ahora está húmeda, "; if (self has on) "regada desde la laguna."; else "pero esto no es suficiente: aún tengo trabajo por hacer..."; ], look_clarification ", tendido en la tierra húmeda", before [; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en la tierra."; PlayerTo(self,1); ! Sin <> "Me tiendo en la tierra. Está humeda..."; Take, Touch: "La tierra está húmeda, blanda y suave. Apenas un esfuerzo y mi mano puede hundirse en el suelo."; Dig: if (player in self) "Tendré que dejar de estar tendido para hacerlo..."; if (self hasnt on) { give self on; ! +1 por irrigar el árbol desde la laguna Achieved(4); ! Si ya agitamos las flores para atraer insectos ! volvemos al Apartamento if (Flores_Abiertas in CampoFlores) { CortoCavarPisoHumedoArbol.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } ! Si no, sigue el relato else if (velocidad_texto == vel_texto_animado) { velocidad_texto = 0; CortoCavarPisoHumedoArbol.proyeccion(1); ! Sin borrar pantalla velocidad_texto = vel_texto_animado; } else CortoCavarPisoHumedoArbol.proyeccion(1); ! Sin borrar pantalla rtrue; } else "No hace falta, el agua ya fluye hacia el árbol."; ], after [; Exit, GetOff: "Me levanto de la tierra. Se estaba tan bien que no me molestaría volver a tenderme..."; ], has female supporter; ! Las flores Objeto_Localidad_Arbol Objeto_Localidad_CampoFlores "campo de flores" with name 'campo' 'perfume' 'aroma' 'olor', adjectives 'flores', before [; Smell: if (Flores_Abiertas in Limbo) { if (location == CampoFlores) <>; else "Es un aroma relajante."; } else { if (location == CampoFlores) <>; else "Es un aroma embriagador."; } Listen: if (location == CampoFlores) <>; else "Sólo escucho algo muy leve. Tendría que ir donde las flores para apreciarlo plenamente..."; ], found_in CampoFlores ClaroArbol, has male; Localidad_El_Arbol CampoFlores "El campo de flores" with descripcion_larga "El campo de flores que está al lado del claro del árbol es un sitio espectacular, muy colorido y alegre, aunque en el lugar se respira mucha tranquilidad.^ Unos tallos enormes se elevan altos entre la hierba, coronados al final por unas impresionantes flores que parecen buscar la luz del sol, como si quisieran alcanzar el cielo.^ Si quiero volver al claro donde está el árbol basta con ir al este.", descripcion_corta "El campo de flores está junto al árbol y resulta una vista a la vez alegre y tranquilizadora. Los tallos de las flores se elevan entre la hierba, como queriendo alcanzar el cielo, buscando la luz.^ Si quiero, puedo regresar por el este al claro donde está el árbol.", ! descripcion_corta ! "Un hermoso campo de flores. Puedo volver por el este al claro.", before [; Listen: if (noun == nothing) <>; Smell: if (noun == nothing) { if (Flores_Cerradas in self) <>; else <>; } Salidas: "Puedo regresar por el este al claro donde está el árbol."; ], e_to ClaroArbol, out_to ClaroArbol, ; Objeto_Escenario_Arbol Arbol_Piso_Flores "hierba" CampoFlores with name_m 'suelo' 'piso' 'brote', name_mp 'brotes', name_f 'hierba', adjectives 'suave' 'suaves' 'verde' 'verdes' 'bajo' 'bajos' 'baja' 'bajas' 'corto' 'cortos' 'corta' 'cortas' 'fresco' 'frescos' 'fresca' 'frescas', descripcion_larga "La hierba entre los tallos de las flores es verde. Aunque se ven brotes frescos y sanos, la hierba es más bien baja y corta. Se nota que las flores, mucho más grandes, dominan este lugar.", descripcion_corta "La hierba entre los tallos de las flores es verde y más bien baja. Se nota que las flores dominan este lugar.", ! descripcion_corta ! "La hierba entre los tallos de las flores es verde y baja", look_clarification ", tendido en la hierba", before [; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en la hierba."; PlayerTo(self,1); ! Sin <> "Me tiendo en la hierba. Está fresca..."; Take: "¿Para qué? Están mejor así..."; Dig, Cut, Attack: if (player in self) "Tendré que dejar de estar tendido para hacerlo..."; else "Mejor que no: podría dañar las flores."; Touch: "La hierba es muy suave..."; Smell: "El olor de la hierba es fresco y suave."; Listen: <>; ], after [; Exit, GetOff: "Me levanto de la hierba. Se estaba tan bien que no me molestaría volver a tenderme..."; ], has female supporter; Objeto_Escenario_Arbol Flores_Cerradas "flores" CampoFlores with name_f 'flor' 'corona', name_fp 'flores' 'coronas', name_m 'capullo', name_mp 'capullos', adjectives 'cerrada' 'cerrado' 'cerradas' 'cerrados' 'amarillo' 'amarillos' 'amarilla' 'amarillas' 'hermosa' 'hermoso' 'hermosas' 'hermosos' 'grande' 'grandes', descripcion_larga [; print "Las flores, de hermosos capullos amarillos, se elevan entre la hierba sobre sus tallos verdes, como queriendo alcanzar el cielo, buscando la luz. Los capullos están ahora cerrados"; if (Panal has visited) ", pero si estuvieran abiertos atraerían los insectos y el panal despertaría."; else "."; ], descripcion_corta [; print "Las flores se elevan entre la hierba, buscando la luz. Los capullos están cerrados"; if (Panal has visited) " y no atraerán a los insectos del panal."; else "."; ], before [; Enter, GoIn, Climb: "Tendría que intentarlo por los tallos..."; Dig, Touch, Push, Search, Take, Rub, Open, Cut, Attack: "No llego tan alto..."; Smell: "Aun cerradas, las flores emanan un suave perfume.^ Es relajante..."; Listen: <>; ], has female pluralname; Objeto_Escenario_Arbol Flores_Abiertas "flores" Limbo with name_f 'flor' 'corona', name_fp 'flores' 'coronas', name_m 'capullo' 'petalo', name_mp 'capullos' 'petalos', adjectives 'abierta' 'abiertas' 'amarillo' 'amarillos' 'amarilla' 'amarillas' 'hermosa' 'hermoso' 'hermosas' 'hermosos', descripcion_larga "Las flores, de hermosos capullos amarillos, se elevan entre la hierba sobre sus tallos verdes, como queriendo alcanzar el cielo, buscando la luz. Los capullos están ahora abiertos y rodeados de insectos, que danzan sin cesar en un continuo ir y venir desde las flores al árbol allá en el claro.", descripcion_corta "Las flores se elevan entre la hierba, buscando la luz. Los capullos están abiertos y los insectos no cesan de ir y venir desde las flores al árbol allá en el claro.", before [; Enter, GoIn, Climb: "Tendría que intentarlo por los tallos..."; Dig, Touch, Push, Search, Take, Rub, Open, Cut, Attack: "No llego tan alto..."; Smell: "De las flores abiertas emana un perfume intenso.^ Es embriagador..."; Listen: <>; ], has female pluralname; Objeto_Escenario_Arbol Flores_Insectos "insectos" Limbo with name_m 'insecto', name_mp 'insectos', name_f 'danza', adjectives 'gordo' 'gordos' 'oscuro' 'oscuros', descripcion_larga "Los insectos son gordos como mi dedo pulgar. Se ven muchos de ellos revoloteando alrededor de las flores, en un incesante ir y venir desde el panal al campo de flores.", descripcion_corta "Los insectos, gordos como mi dedo pulgar, van y vienen en grandes cantidades desde el panal al campo de flores.", before [; Touch, Search, Smell, Take, Rub, Cut, Attack: "No llego tan alto..."; Listen: "Los insectos, en grandes cantidades, zumban intensamente alrededor de las flores."; ], has male pluralname; Objeto_Escenario_Arbol Tallos_Flores "tallos de las flores" CampoFlores with name_m 'tallo', name_mp 'tallos', adjectives 'verde' 'verdes' 'tenue' 'claros' 'alto' 'altos' 'grueso' 'gruesos' 'enorme' 'enormes', descripcion_larga "Los tallos se elevan altos y gruesos, tan enormes que hacen parecer poca cosa la hierba de la que brotan. Son de un color verde tenue y se angostan apenas al llegar a las flores que los coronan.", descripcion_corta "Los tallos se elevan altos entre la hierba, coronados al final por las flores. Son muy gruesos y de un color verde tenue.", ! descripcion_corta ! "Los tallos se elevan entre la hierba, coronados por las flores.", before [; Enter, GoIn, Climb, Dig, Take, Cut, Attack: if (player in Arbol_Piso_Flores) "Tendré que dejar de estar tendido para hacerlo..."; else "Mejor que no: podría dañar las flores."; Touch: if (player in Arbol_Piso_Flores) "Tendré que dejar de estar tendido para hacerlo..."; if (Panal in Limbo) <>; else if (self hasnt on) "Los tallos no se mueven apenas. Tendré que intentar algo más drástico."; else <>; Push, Attack: if (player in Arbol_Piso_Flores) "Tendré que dejar de estar tendido para hacerlo..."; if (Panal in Limbo) <>; else if (self hasnt on) { give self on; ! +1 por agitar las flores para atraer insectos Achieved(3); ! Si ya irrigamos el árbol desde la laguna ! volvemos al Apartamento if (Arbol_Piso_Humedo_Arbol has on) { CortoEmpujarTallosFlores.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } ! Si no, sigue el relato else if (velocidad_texto == vel_texto_animado) { velocidad_texto = 0; CortoEmpujarTallosFlores.proyeccion(1); ! Sin borrar pantalla velocidad_texto = vel_texto_animado; } else CortoEmpujarTallosFlores.proyeccion(1); ! Sin borrar pantalla move Flores_Cerradas to Limbo; move Flores_Abiertas to CampoFlores; move Flores_Insectos to CampoFlores; rtrue; } else "No hace falta, el panal ya ha despertado."; Smell: "El olor de los tallos es fresco e intenso."; Listen: if (self hasnt on) "Solo escucho el suave murmullo de los tallos al moverse."; else "Muchos insectos zumban intensamente alrededor de las flores."; ], has male pluralname; ! La laguna Objeto_Localidad_Arbol Objeto_Localidad_Laguna "laguna" with name_m 'frescor' 'murmullo', name_f 'laguna', adjectives 'azul', before [; Drink: if (location == Laguna) <>; else "Tendría que ir a la laguna para beber su agua..."; Cazar: "No tengo hambre, así que no hace falta pertubar el lugar..."; Pescar: if (location == Laguna) <>; else "Tendría que ir a la laguna para pescar..."; Dig: if (location == Laguna) <>; else "Tendría que ir a la laguna para eso..."; Swim: if (location == Laguna) <>; else "Tendría que ir a la laguna para nadar..."; Smell: if (location == Laguna) <>; else "Sólo siento algo muy leve. Tendría que ir a la laguna para apreciarlo plenamente..."; Listen: if (location == Laguna) <>; else "Sólo escucho algo muy leve. Tendría que ir a la laguna para apreciarlo plenamente..."; ], found_in Laguna ClaroArbol, has female; Localidad_El_Arbol Laguna "La laguna" with descripcion_larga "La laguna junto al claro del árbol promete descanso, silencio y aire muy fresco.^ La tierra de la orilla está convertida en fango, de tanto estar en contacto con la laguna. Sus aguas, muy limpias y claras, reflejan el cielo como si fueran un espejo, una superficie azul rozada apenas por una leve brisa.^ Nada perturba la calma y la paz del lugar.^ Puedo regresar cuando quiera al claro al oeste .", descripcion_corta "La laguna promete descanso y frescor. Sus aguas, limpias y cristalinas, reflejan el cielo como un espejo. La superficie es apenas perturbada por la brisa, que no hace más que acentuar la calma y la paz del lugar. Si quiero, puedo regresar por el oeste al claro donde está el árbol.", ! descripcion_corta ! "La laguna es de aguas limpias y cristalinas. Veo el claro al oeste.", before [; Cazar: if (player in Arbol_Piso_Laguna) "Tendré que dejar de estar tendido para hacerlo..."; else "No tengo hambre, así que no hace falta pertubar el lugar..."; Pescar: if (player in Arbol_Piso_Laguna) "Tendré que dejar de estar tendido para hacerlo..."; else "No tengo hambre, así que no hace falta pertubar el agua..."; Listen: if (noun == nothing) "Solo escucho el suave murmullo del aire sobre la laguna."; Smell: if (noun == nothing) "El aire de la laguna es fresco y vigorizante."; Swim: if (player in Arbol_Piso_Laguna) "Tendré que dejar de estar tendido para hacerlo..."; else "No quiero pertubar el agua y no hace tanto calor..."; Salidas: "Puedo regresar por el oeste al claro donde está el árbol."; ], after [; Look: if (Arbol_Piso_Laguna has on) "Por donde he cavado, el agua ya está fluyendo de la laguna al claro."; ], w_to ClaroArbol, out_to ClaroArbol, ; Objeto_Escenario_Arbol Arbol_Piso_Laguna "fango" Laguna with name_m 'suelo' 'piso' 'fango' 'barro', name_f 'tierra' 'orilla', adjectives 'humedo' 'humeda' 'fresco' 'fresca' 'suave', descripcion_larga [; print "La tierra de la orilla está convertida en fango, de tanto estar en contacto con la laguna"; if (self has on) ". Por donde he cavado, el agua ya está fluyendo de la laguna al claro."; else "."; ], descripcion_corta [; print "La tierra alrededor de la laguna está convertida en fango"; if (self has on) ". Por donde he cavado, el agua ya está fluyendo de la laguna al claro."; else "."; ], look_clarification ", tendido en el fango", before [; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en el fango."; PlayerTo(self,1); ! Sin <> "Me tiendo en el fango. Está humedo..."; Dig: if (player in self) "Tendré que dejar de estar tendido para hacerlo..."; if (Arbol_Piso_Seco_Arbol hasnt visited) "No hay porque perturbar el suelo en torno a la laguna."; else if (self hasnt on) { give self on; move Arbol_Piso_Seco_Arbol to Limbo; move Arbol_Piso_Humedo_Arbol to ClaroArbol; "Con cuidado, voy cavando desde la orilla hacia el claro y así logro que llegue el agua al claro del árbol, que falta le hace."; } else "No hace falta, ya he cavado y el agua fluye hacia el claro."; Take, Touch: "El fango está fresco y suave. Apenas un esfuerzo y mi mano puede hundirse en el suelo."; Smell: "El fango tiene el olor de la laguna, fresco y chispeante."; ], after [; Exit, GetOff: "Me levanto del fango. Un poco húmedo como para volver a tenderme..."; ], has male supporter; Objeto_Escenario_Arbol Agua "agua" Laguna with name_f 'agua' 'superficie', name_fp 'aguas', name_m 'espejo', adjectives 'azul' 'limpio' 'limpia' 'limpias' 'claro' 'clara' 'claras', descripcion_larga "El agua de la laguna, muy limpia y clara, refleja el cielo como si fueran un espejo, una superficie azul rozada apenas por una leve brisa.", descripcion_corta "El agua de la laguna es muy limpia y clara.", before [; Cazar, Pescar: <>; Enter, GoIn, Acostar,Swim: <>; Listen: "Escucho el suave murmullo del aire sobre la laguna."; Smell: "El agua tiene un holor fresco y chispeante."; Touch, Push, Pull: "El agua está muy fresca."; Take, Drink: if (self hasnt on) { give self on; "El agua está muy fresca y me ha sentado muy bien."; } else "Ya he bebido lo suficiente, no necesito más."; ], has female; ! * Mundo Las Ruinas * Class Localidad_Las_Ruinas class Localidad with before [; Enter: if (noun == d_obj) "En este lugar y tiempo, no es seguro ponerme a descansar."; else if (noun == u_obj) "Mi misión no requiere unidad anti gravedad, así que no me es posible."; SientaSolo: "En este lugar y tiempo, no es seguro ponerme a descansar."; Acostar: if (noun == nothing or d_obj) "En este lugar y tiempo, no es seguro ponerme a descansar."; else if (noun == u_obj) "Mi misión no requiere unidad anti gravedad, así que no me es posible."; Rub: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) switch (location) { Ruinas: <>; Crater: <>; Camino: <>; Erial: <>; } else if (noun ofclass Objeto_Localidad) print_ret "El daño ya está hecho. Aunque pasara mi vida limpiando ", (the) noun," no lograría arreglar ni mejorar nada..."; Take, Touch: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) switch (location) { Ruinas: <>; Crater: <>; Camino: <>; Erial: <>; } Search, Examine: if (noun == u_obj) <>; else if (noun == d_obj) switch (location) { Ruinas: <>; Crater: <>; Camino: <>; Erial: <>; } Dig: if (noun == u_obj) "No alcanzo..."; else if (noun == nothing) <>; else if (noun == d_obj) switch (location) { Camino: <>; Erial: <>; default: "No creo que pueda crear un marcador temporal eficaz cavando aquí."; } Attack: if (noun == d_obj) <>; else if ( (noun ~= Tarro) && (noun ~= Estatua) && (noun ~= Planta) && (noun ~= player) ) "El daño ya está hecho. No hace falta que yo haga más..."; Pray: "Ya no creo en nada en que rezar."; Wake, Sleep: "No hace falta: el traje me mantiene fresco y descansado."; Blow, WaveHands, Jump: "El traje me impide hacer movimientos bruscos."; Strong: "Tengo demasiado que hacer para gastar aliento en eso."; Smell: if (noun == nothing) <>; Listen: if (noun == nothing) <>; Burn: "El daño ya está hecho. No hace falta que yo haga más..."; Recordar: "Es mejor no intentar preocuparme demasiado por lo que ha ocurrido. No hay demasiada felicidad en nuestro presente, para no hablar de nuestro pasado: lo mejor es concentrarse en la misión e intentar construir un buen futuro."; Cazar, Pescar: "Ni aunque quisiera hacerlo encontraría aquí una presa viva..."; Reparar: if (noun ~= Estatua) print_ret "Reparar ", (the) noun, " está más allá de mis posibilidades: si pudiera hacerlo, no haría falta emprender esta misión."; ]; ! Escenario de las Ruinas Class Objeto_Escenario_Ruinas class Objeto_Escenario with before [; Take: "Hacer eso crearía un marcador temporal muy pobre."; ]; ! Objetos de localidad para las ruinas Class Objeto_Localidad_Ruinas class Objeto_Localidad with before [; Dig: <>; Listen: <>; Smell: <>; ]; ! Objetos de puzzle de Las Ruinas Class Objeto_Puzzle_Ruinas class Objeto_Puzzle; Objeto_Escenario_Ruinas Ruinas_Cielo "cielo" with name_m 'cielo' 'sol', name_f 'nube', name_fp 'nubes', adjectives 'gris' 'palido' 'deslavado' 'borroso', descripcion_larga "Aparte del paisaje de ruina y destrucción, no hay nada más característico de este tiempo que el cielo. Se ve deslavado, borroso y pálido. Si hay o no nubes es difícil de distinguir, pues todo tiene la misma apariencia gris.", descripcion_corta "El cielo es pálido. No sé si hay o no nubes, todo se ve igual... y gris.", ! descripcion_corta ! "El cielo es gris y pálido.", found_in Ruinas Camino Crater Erial, has male; Objeto_Luz Ruinas_Luz "luz" with description "La luz es pálida y da a todo una apariencia gris. En algunos casos, el traje tiene que preprocesar lo que veo para darle más nitidez.", found_in Ruinas Camino Crater Erial ; Objeto_Aire Ruinas_Aire "aire" with name 'aroma' 'olor' 'silencio', description "El traje me impide saber cómo es el aire, pero no ha de ser muy sano.", before [; Listen: "No se escuha nada: el silencio es tan completo que resulta inquietante."; Smell: "El traje me impide saber a qué huele el aire, pero no ha de ser muy fragante."; ], found_in Ruinas Camino Crater Erial ; Objeto_Temperatura Ruinas_Temperatura "temperatura" with description "El traje mantiene mi temperatura estable, pero no me gustaría sacármelo para saber cómo se siente el ambiente en este lugar.", found_in Ruinas Camino Crater Erial ; ! Las ruinas Objeto_Localidad_Ruinas Objeto_Localidad_Las_Ruinas "ruinas" with name_f 'ruina', name_fp 'ruinas', name_m 'asentamiento', adjectives 'construida' 'construidas', found_in Ruinas Camino Crater Erial, has female pluralname; Localidad_Las_Ruinas Ruinas "Las ruinas" with descripcion_larga [; print "Todo alrededor mío puedo ver restos de un asentamiento construido, ahora en ruinas: en el futuro no serán más que polvo y algunos pocos fragmentos. Hay varios edificios que alguna vez se elevaron orgullosos al cielo, pero que ahora yacen semidestruidos y agrupados en torno a un área central más o menos despejada"; if (Estatua has on) print ", donde se yergue una estatua"; ".^ Los edificios son más escasos hacia el norte, al tiempo que el terreno se vuelve más fragmentado. Hacia el oeste se ven los restos de un camino que llega hasta las ruinas. Hacia el este las estructuras desaparecen y se divisa una zona árida."; ], descripcion_corta [; print "Estoy rodeado de ruinas de algo que pudo haber sido un grupo de edificios con un área despejada al centro"; if (Estatua has on) print ", con la estatua ahora erguida"; ". Hacia el norte el terreno se vuelve quebradizo, hacia el oeste se ve el final de un camino mientras que al este se ve una zona árida."; ], before [; Salidas: "Los edificios se vuelven más escasos hacia el norte, mientras que al oeste se ven los restos de un camino. Hacia el este las estructuras desaparecen y se divisa una zona árida."; ], in_to [; <>; ], out_to Camino, n_to Crater, e_to Erial, w_to Camino, s_to [; "No conviene adentrarse demasiado en las ruinas. Podría perderme o sufrir un accidente entre los restos."; ], u_to [; <>; ], d_to [; "Los accesos a nivel de suelo están derrumbados y no se ve forma alguna de bajar a los niveles subterráneos de los edificios."; ] ; ! Objeto para el personaje del Jugador en Las Ruinas Objeto_Jugador_Personaje Jugador_Ruinas Ruinas with description "Soy uno de los viajeros temporales, en misión de mapeo del pasado para asegurar el futuro.", before [; Listen, Tell: "La comunicación está restringida mientras estamos en misión."; Touch, Smell: "El traje impide todo contacto."; Rub: "No hace falta. El traje se encarga del aseo personal."; Cut, Attack, Push, Pull, Open, ThrowAt: "Es inútil. El traje impide hacerse daño salvo accidente catastrófico... o autodestrucción para preservación histórica."; ]; ! La ropa del Jugador Objeto_Ropa_Jugador Ruinas_Ropa_Jugador "traje temporal" Jugador_Ruinas with name_m 'traje', adjectives 'temporal' 'liso' 'suave', invent "mi traje temporal", descripcion_larga "El traje permite el viaje en el tiempo y protege contra daños salvo accidente catastrófico. Es cómodo, como una segunda piel.", descripcion_corta "El traje permite el viaje en el tiempo.", before [; SwitchOn: "El traje ya está funcionando, que si no estaría allá/entonces... en vez de aquí/ahora.^ Creo.^ La verdad, nunca entendí del todo la explicación..."; SwitchOff: "Lo desconectaré cuando hay creado uno o más marcadores temporales. Una vez de regreso en mi tiempo no está muy claro cuándo o cómo volvería a este.^ O así me pareció entenderlo.^ Cuando me enseñaron a usar el traje, algunas preguntas tuvieron respuestas algo vagas..."; Rub: "Está limpio y repele la suciedad"; Touch: "Es suave y liso."; Smell: "No puedo sentir su olor."; Disrobe, Drop: "Sólo puedo hacerlo cuando no está encendido y funcionando."; ], has male switchable on; Objeto_Escenario_Ruinas Ruinas_Suelo_Ruinas "suelo" Ruinas with name_m 'suelo' 'terreno' 'pavimento', name_f 'grieta', name_fp 'grietas', adjectives 'resquebrajado' 'agrietado' 'uniforme' 'liso' 'suave', descripcion_larga "El suelo es alguna forma de pavimento más o menos uniforme, aunque bastante resquebrajado. Se observan grietas por todas partes, especialmente donde se acumulan restos de los edificios.", descripcion_corta "El suelo es un pavimento resquebrajado y agrietado.", before [; Enter, Acostar: "En este lugar y tiempo, no es seguro ponerme a descansar."; Attack, Dig: "No creo que pueda crear un marcador temporal eficaz cavando aquí."; Rub: "Salvo cerca de los edificios, el suelo está bastante limpio."; Take, Touch: "El suelo es liso y suave."; ] has male; Objeto_Escenario_Ruinas Edificios "edificios" Ruinas with name_m 'edificio' 'acceso' 'amasijo' 'escombro' 'resto', name_mp 'edificios' 'accesos' 'amasijos' 'escombros' 'restos', name_f 'estructura' 'entrada' 'forma', name_fp 'estructuras' 'entradas' 'formas', adjectives 'derrumbado' 'derrumbados' 'derrumbada' 'derrumbadas' 'apilado' 'apilados' 'destruido' 'destruidos' 'semidestruido' 'semidestruidos', descripcion_larga "Alguna vez estas estructuras se elevaban orgullosas al cielo, pero ahora sólo son amasijos derrumbados en los que no se distingue forma o detalle alguno. Donde habrían estado los accesos a nivel de suelo sólo hay escombros apilados y no se ve manera alguna de bajar a los niveles subterráneos o acaso subir los pisos superiores.", descripcion_corta "Los edificios están derrumbados y no se distingue forma o detalle alguno. En los accesos a nivel de suelo sólo hay escombros apilados.", before [; Rub: "Necesitaría maquinaría pesada para despejar esto."; Enter: "Los accesos a nivel de suelo están derrumbados y no se ve forma alguna de entrar en los edificios."; Climb: "Los accesos a nivel de suelo están derrumbados y no se ve forma alguna de subir a las partes más elevadas de los edificios."; ], after [; Examine: if (Tarro in Limbo) { move Tarro to Ruinas; "Hay un tarro entre los escombros."; } ], has male pluralname enterable; Objeto_Puzzle_Ruinas Tarro "tarro de lata" Limbo with name_m 'tarro' 'envase' 'contenedor', name_f 'lata', adjectives 'metal' 'metalico' 'oxidado' 'oxidada' 'rugoso', describe [; if (Planta notin Erial) "Hay un tarro entre los escombros."; else "Hay un tarro en el suelo."; ], descripcion_larga "Es un tarro metálico, un envase hecho de lata de un solo uso. Entiendo que en tiempos antiguos era habitual guardar alimentos procesados en este tipo de contenedor.^ Se ve bastante oxidado y no tiene ninguna etiqueta, tapa o indicación impresa que permita saber que contenía originalmente.", descripcion_corta "Es un tarro de lata, de los que se usaban antaño para guardar alimentos. Ya no tiene etiqueta o tapa que permita saber que contenía. Está bastante oxidado.", ! descripcion_corta ! "Es un tarro de lata de conservas.", before [; Receive: if (Planta in self) "La planta ocupa completamente el contenido del tarro."; if (noun ~= Planta) print_ret "Meter ", (the) noun," en el tarro crearía un marcador temporal algo pobre."; Take: if (Planta hasnt visited) "Como marcador temporal es un poco pobre. Mejor lo dejo donde está."; Drop: if ( (Planta has visited) && (Planta notin Erial) ) { if (Planta notin self) "Como marcador temporal es un poco pobre."; else <>; } Attack: if (Planta hasnt visited) "El daño ya está hecho. No hace falta que yo haga más..."; else if (second == Barra) "Acabaré destruyendo el tarro si lo golpeo con la barra..."; else "Mejor no golpear el tarro, no sea que lo destruya..."; Dig: if (location == Camino) <>; else "El tarro no me sirve para cavar aquí."; Touch: "Oxidado como está, se siente rugoso al tacto."; Close: "No tengo la tapa del tarro, así que no puedo cerrarlo."; ], after [; Examine: if (Planta in self) "Dentro del tarro, la planta está acunada con algo de tierra."; ], has male container openable open; Objeto_Escenario_Ruinas Pedestal "pedestal" Ruinas with name_m 'pedestal' 'espacio' 'centro', name_f 'area', adjectives 'central' 'despejado' 'limpio' 'elevado', descripcion_larga [; print "El espacio central está despejado y bastante limpio de escombros. No es enteramente plano y se eleva suavemente hasta formar un pedestal, "; if (Estatua hasnt on) "junto al cual hay una estatua caída."; else "sobre el que ahora se llergue una estatua."; ], descripcion_corta[; print "En el espacio central hay un pedestal "; if (Estatua hasnt on) "con una estatua caida al lado."; else "sobre el que ahora se yergue una estatua."; ], before [; Rub: "No hay escombros para despejar, el espacio está limpio y despejado."; ], after [; Examine: move Estatua to Ruinas; ], has male; Objeto_Escenario_Ruinas Estatua "estatua" Limbo with name_f 'estatua' 'huella', name_fp 'huellas', name_m 'monumento' 'material', adjectives 'abstracto' 'abstracta' 'gris' 'erguida' 'caida', descripcion_larga [; print "La estatua es aparentemente un monumento de forma abstracta. Alguna vez pudo haber estado pintada, pero ahora sólo se ve el color gris del material con que fue tallada. "; if (self hasnt on) "Se ven huellas de los golpes que se ha dado cuando cayó junto al pedestal sobre el que probablemente se erguía."; else "Se yergue nuevamente sobre el pedestal, pero conserva huellas de su caida."; ], descripcion_corta [; print "La estatua es un monumento abstracto y gris. Está "; if (self hasnt on) "caida junto al pedestal."; else "erguida sobre el pedestal."; ], before [; Climb: if (self hasnt on) "Está en el suelo, tendría que levantarla primero."; else <>; Rub: if (self hasnt on) "Si intento limpiar las huellas de los golpes podría hacerle más daño aun."; else "Parece estar estable, pero es mejor no arriesgarse a botarla de nuevo."; Reparar, Push, Take: if (self hasnt on) { if (self hasnt visited) give self visited; if (second == nothing) "Es demasiado pesada para mí. Necesito algo que me ayude a levantarla si quiero crear un marcador temporal eficaz."; else if (second ~= Barra) print_ret (The) second, " no me sirve para levantarla."; else { give self on; ! +1 punto por enderezar la estatua sobre el pedestal Achieved(6); ! Si ya trasplantamos la planta al Erial ! volvemos al Ducto if (Planta in Erial) { if (Tarro in player) move Tarro to location; CortoEnderezarEstatua.proyeccion(1); ! Sin borrar pantalla CortoFinRuinas.proyeccion(1); PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } ! Si no, sigue el relato else if (velocidad_texto == vel_texto_animado) { velocidad_texto = 0; CortoEnderezarEstatua.proyeccion(1); ! Sin borrar pantalla velocidad_texto = vel_texto_animado; } else CortoEnderezarEstatua.proyeccion(1); ! Sin borrar pantalla rtrue; } } else <>; Pull: if (self hasnt on) { if (self hasnt visited) give self visited; if (second == nothing) "Es demasiado pesada para mí. Necesito algo que me ayude a levantarla si quiero crear un marcador temporal eficaz."; else print_ret (The) second, " no me sirve para tirar de la estatua."; } else <>; Attack: if (self hasnt on) "El daño ya está hecho. No hace falta que yo haga más..."; else <>; Dig: if (self hasnt on) "Cavar no servirá de mucho. Necesito algo que me ayude a levantarla si quiero crear un marcador temporal eficaz."; else <>; ], has female; ! El camino Objeto_Localidad_Ruinas Objeto_Localidad_Camino "camino" with name_m 'camino', name_f 'carretera' 'via', adjectives 'principal', found_in Camino Ruinas, has male; Localidad_Las_Ruinas Camino "El camino" with descripcion_larga "Estoy al final de lo que en el pasado debió ser una vía principal o una carretera de cierta importancia, puesto que daba un acceso directo a los edificios, ahora en ruinas, ubicados al este.^ Del pavimento, que alguna vez fue muy ancho, ahora sólo quedan algunos trozos rotos, apenas conectados entre sí. Lo que queda del camino continúa alejándose de las ruinas en dirección recta al oeste: una larga huella resquebrajada hasta donde la vista alcanza.", descripcion_corta "Alguna vez esto fue una vía principal o una carretera de cierta importancia, considerando su ubicación respecto de las ruinas hacia el este. Ahora sólo quedan trozos rotos con escasa continuidad, alejándose hacia el oeste hasta donde la vista alcanza.", ! descripcion_corta ! "Estoy en una carretera resquebrajada que se pierde en la distancia al oeste. ! Puedo regresar a las ruinas al este.", before [; Salidas: "Puedo regresar a las ruinas al este."; ], out_to Ruinas, in_to [; <>;], w_to [; "Vaya a uno a saber a dónde conduce este camino, si es que llega a alguna parte: sólo se ve terreno árido alrededor y en la distancia. Mejor me concentro en las ruinas a mi alcance."; ], e_to Ruinas, s_to [; <>;], n_to [; <>;], ; Objeto_Escenario_Ruinas Ruinas_Suelo_Camino "suelo" Camino with name_m 'suelo' 'terreno' 'pavimento' 'trozo' 'resto', name_mp 'trozos' 'restos', name_f 'grieta', name_fp 'grietas', adjectives 'grueso' 'gruesos' 'uniforme' 'uniformes' 'grande' 'grandes' 'aspero' 'asperos' 'rugoso' 'rugosos' 'arido' 'aridos', descripcion_larga "Alguna vez esto fue una vía principal o una carretera de cierta importancia, construida con alguna forma de pavimento más bien grueso y uniforme. Ahora no hay forma de caminar aquí sin tropezar con las grietas que conectan los grandes trozos de restos, todo lo que queda de lo que alguna vez debió ser un hermoso camino.", descripcion_corta "El suelo del camino es alguna forma de pavimento más bien grueso y uniforme, aunque ahora sólo quedan algunos trozos grandes.", ! descripcion_corta ! "El suelo del camino no es más que trozos gruesos de pavimento.", before [; Enter, Acostar: "En este lugar y tiempo, no es seguro ponerme a descansar."; Attack, Dig: if (Planta in Limbo) "No creo que pueda crear un marcador temporal eficaz cavando aquí."; else if ( (Planta in Tarro) || (Planta in Erial) ) "Ya saqué la planta, no hace falta cavar más."; else <>; Take, Rub: "Necesitaría maquinaría pesada para despejar esto."; Touch: "El pavimento es aspero y rugoso."; ], after [; Examine: if (Planta in Limbo) { move Planta to Camino; "Hay una planta creciendo entre las grietas del pavimento."; } ] has male; Objeto_Puzzle_Ruinas Planta "planta pequeña" Limbo with name_f 'suculenta' 'planta' 'hoja' 'tierra', name_fp 'hojas', adjectives 'pequena' 'pequenas' 'verde' 'verdes' 'redondeada' 'redondeadas' 'gruesa' 'gruesas', describe [; if (self notin Erial) print "Entre las grietas del pavimento, "; else print "En el suelo del erial, "; "se asoma una planta."; ], descripcion_larga [; print "Es una planta pequeña y verde, de hojas redondeadas y gruesas: seguramente algún tipo de suculenta. "; if (self notin Erial) { if (self notin Tarro) "De alguna manera ha brotado en medio del pavimento, pujando entre las grietas."; else "Dentro del tarro no parece gran cosa."; } else "Plantada en el suelo del erial, parece estar desafiando la aridez que la rodea."; ], descripcion_corta [; print "Es una planta pequeña y verde, "; if (self notin Erial) { if (self notin Tarro) "un milagro brotado de las grietas del pavimento."; else "acunada con algo de tierra dentro del tarro."; } else "desafiando la aridez del erial."; ], before [; Insert: if (Planta in Tarro) "Ya llevo la planta en el tarro."; else if (second == Tarro) <>; else print_ret "No puedo meter la planta en ", (the) second ,"."; Dig, Take, Pull: if (self in Erial) "Costó lo suyo crear el marcador. Mejor la dejo donde está."; if (self in Tarro) <>; if ( (second == nothing or player) || (second ~= Tarro) ) { give self visited; "La planta podría servir como un marcador temporal eficaz, pero necesitaría llevarla con algo de la tierra en la que ha crecido... y mis manos no sirven de mucho para eso."; } else { move self to Tarro; "Con cuidado, cojo la planta con algo de la tierra alrededor y la pongo dentro del tarro de lata."; } Drop: if (self in Camino) "Tendré que coger la planta primero."; if (player in Camino) "No tiene sentido volver a dejar la planta de donde la saqué."; else if (player notin Erial) "El suelo de este sitio no es apropiado para dejar la planta."; else if (Ruinas_Suelo_Erial hasnt on) "Éste sería un buen sitio para el marcador, pero el suelo es muy duro para dejar la planta encima."; else if (self has on) <>; else { give self on; move self to Erial; ! +1 punto por trasplantar la planta al Erial Achieved(7); ! Si ya levantamos la estatua ! volvemos al Ducto if (Estatua has on) { CortoTrasplantar.proyeccion(1); ! Sin borrar pantalla CortoFinRuinas.proyeccion(1); PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } ! Si no, sigue el relato else if (velocidad_texto == vel_texto_animado) { velocidad_texto = 0; CortoTrasplantar.proyeccion(1); ! Sin borrar pantalla velocidad_texto = vel_texto_animado; } else CortoTrasplantar.proyeccion(1); ! Sin borrar pantalla rtrue; } ], has female; ! El cráter Objeto_Localidad_Ruinas Objeto_Localidad_Crater "cráter" with name_m 'crater' 'hueco', name_f 'depresion', adjectives 'inmenso', before [; Climb: <>; ], found_in Crater Ruinas, has male; Localidad_Las_Ruinas Crater "El cráter" with descripcion_larga "Estoy contemplando un cráter inmenso donde alguna vez estuvo el resto de la ciudad.^ En nuestros viajes hemos visto cientos de cráteres como éste, aunque habitualmente en torno a ellos sólo hay desierto y fragmentos minúsculos. Precisamente escogimos este lugar para estudio porque aquí, al menos, quedaron algunas ruinas escasas al sur.^ Lo que fuera que generó este hueco inmenso aplanó todo hasta formar una depresión que se extiende hasta donde la vista alcanza.^ Junto a mí puedo ver unos bordes escarpados formados por restos fundidos, una horrible cicatriz curvándose en la distancia al este y el oeste.", descripcion_corta "Estoy contemplando un cráter inmenso donde alguna vez estuvo el resto de la ciudad, cuyas ruinas escasas quedan ahora al sur. La depresión se extiende hasta donde la vista alcanza y puedo ver junto a mí los bordes escarpados de restos fundidos curvándose en la distancia al este y el oeste.", ! descripcion_corta ! "Estoy al borde de un cráter que se extiende hasta donde la vista alcanza. ! Puedo volver a las ruinas al sur.", before [; Salidas: "Puedo volver a las ruinas al sur."; ], out_to Ruinas, u_to [; <>;], d_to [; <>;], in_to [; "Los bordes se ven difíciles de trepar y cualquier descuido sería fatal. Por otra parte, el interior del cráter es un espacio plano, vacío y desolado. No hay nada de interés ahí."; ], s_to Ruinas, n_to [; <>;], w_to [; <>;], e_to [; "Podría pasar el día intentando rodear el cráter en cualquier dirección y no vería nada distinto. Mejor no alejarme de las ruinas que tengo a mano."; ], ; Objeto_Escenario_Ruinas Ruinas_Suelo_Crater "suelo" Crater with name_m 'suelo' 'terreno' 'borde' 'resto', name_mp 'bordes' 'restos', name_f 'masa' 'cicatriz', adjectives 'fundido' 'fundida' 'rugoso' 'opaca' 'opaco' 'arrugada' 'arrugado' 'levantado' 'levantada' 'horrible', descripcion_larga "Doquiera que se encuentran estos cráteres, el suelo siempre es lo mismo: una horrible masa fundida, opaca y arrugada, hecha a partir de restos.^ Como una cicatriz, el borde se va levantando hasta dar forma al borde del cráter.", descripcion_corta "El suelo se ha fundido en una masa de restos opaca y arrugada, levantándose hasta formar el borde del cráter.", ! descripcion_corta ! "El suelo se levanta hasta formar el borde del cráter.", before [; Climb: <>; Enter, Acostar: "En este lugar y tiempo, no es seguro ponerme a descansar."; Attack, Dig: "No creo que pueda crear un marcador temporal eficaz cavando aquí."; Take, Rub: "Nada ha quedado sobre el suelo, todo está fundido."; Touch: "El suelo es liso y suave al pie del cráter. Los bordes se ven difíciles de trepar como para ver cómo son al tacto."; ], after [; Examine: if (Barra in Limbo) { move Barra to Crater; "En el suelo cerca del borde del cráter sobresale una barra gruesa."; } ] has male; Objeto_Puzzle_Ruinas Barra "barra gruesa" Limbo with name 'barra', adjectives 'gruesa' 'ceramica' 'rugosa' 'aspera' 'corta', describe [; if (self hasnt on) "En el suelo cerca del borde del cráter sobresale una barra gruesa."; else "En el suelo hay una barra gruesa."; ], descripcion_larga [; if (self hasnt on) "Es una barra gruesa que sobresale del suelo en la parte que se levanta al borde del cráter. De alguna manera ha sobrevivido a lo que causó el cráter y ha quedado mezclada con el suelo."; else "Es una barra gruesa y corta, posiblemente parte de alguna estructura. Si fuera de metal o plástico se habría fundido al suelo del cráter, así que estará hecha de cerámica o algún material semejante"; ], descripcion_corta [; if (self hasnt on) "Es una barra gruesa que sobresale del suelo en la parte que se levanta al borde del cráter."; else "Es una barra gruesa y corta, posiblemente parte de alguna estructura."; ], before [; Take: if ( (Estatua hasnt visited) && (Planta hasnt visited) ) "Como marcador temporal es un poco pobre. Mejor la dejo donde está."; else if (self hasnt on) "Está enterrada en el suelo. Necesitaré esforzarme más para cogerla."; Touch: "La barra es rugosa y áspera."; Pull: if ( (Estatua hasnt visited) && (Planta hasnt visited) ) "Como marcador temporal es un poco pobre. Mejor la dejo donde está."; else if (self hasnt on) { give self on; move self to player; "Tiro de ella y con algo de esfuerzo logro sacarla del suelo."; } else <>; Dig: if (Planta in Limbo) "No creo que pueda crear un marcador temporal eficaz cavando aquí."; else switch (location) { Camino: <>; Erial: <>; Crater: if (self hasnt on) <>; else <>; default: "No creo que pueda crear un marcador temporal eficaz cavando aquí."; } ], after [; Examine: if ( (self hasnt on) && ( (Estatua has visited) || (Planta has visited) ) ) "Podría servirme como herramienta."; ], has female; ! El erial Objeto_Localidad_Ruinas Objeto_Localidad_Erial "erial" with name_m 'erial' 'paisaje' 'horizonte', name_f 'zona', adjectives 'desertico' 'desertica' 'desolado' 'desolada' 'lejano' 'lejana', found_in Erial Ruinas, has male; Localidad_Las_Ruinas Erial "El erial" with descripcion_larga "Las ruinas al oeste permiten llegar aquí a una zona desértica y sumamente árida, no muy distinta de muchos sitios semejantes que hemos visitado.^ El paisaje es el típico de los alrededores y de la casi totalidad del mundo en esta época: un erial desolado y vacío de cualquier forma de vida, que se extiende en todas direcciones hasta perderse en el horizonte.^ Nadie que haya visto esto puede sino temer a repetir los errores que causaron esta aniquilación casi absoluta.", descripcion_corta "Las ruinas al oeste desembocan aquí en una vasta zona desértica y sumamente árida. Como el resto del paisaje en los alrededores, sólo se ve un erial desolado hasta el horizonte lejano.", ! descripcion_corta ! "Estoy al inicio de una zona desértica, un erial que no tiene fin aparente. ! Se vuelve a las ruinas por el oeste.", before [; Salidas: "Se vuelve a las ruinas por el oeste."; ], out_to Ruinas, in_to [; "El desierto no parece tener fin, no importa en que dirección camine. No hay nada de interés a la vista y sólo conseguiría alejarme de las ruinas."; ], n_to [; <>;], s_to [; <>;], e_to [; <>;], w_to Ruinas, ; Objeto_Escenario_Ruinas Ruinas_Suelo_Erial "suelo" Erial with name_m 'suelo' 'terreno', name_f 'tierra', adjectives 'seco' 'seca' 'arido' 'arida' 'duro' 'dura', descripcion_larga [; print "El suelo es uniforme y plano"; if (self hasnt on) ". No se ven grietas ni fisuras en la tierra, seca y árida."; else ", aunque lo he preparado para dejar la planta."; ], descripcion_corta [; print "El suelo es de tierra seca y árida"; if (self hasnt on) "."; else ", aunque lo he preparado para dejar la planta."; ], before [; Enter, Acostar: "En este lugar y tiempo, no es seguro ponerme a descansar."; Attack, Dig: if (Planta in Erial) "La planta ya está en el erial, no hace falta crear otro marcador temporal cavando aquí."; else if (Planta notin Tarro) "No creo que pueda crear un marcador temporal eficaz cavando aquí."; else if (self hasnt on) { if (second == nothing or player) "El suelo es muy duro para cavar con las manos."; else if (second ~= Barra) print_ret (The) second, " no me sirve para cavar aquí."; else { give self on; "Con algo de esfuerzo logro romper la superficie del suelo con la barra."; } } else "No hace falta, el suelo está preparado para la planta."; Take, Rub: "No se vé ni siquera algo de polvo encima."; Touch: "El suelo es duro y seco."; ] has male; ! * Mundo El Hielo * Class Localidad_El_Hielo class Localidad with before [; Enter: if (noun == d_obj) { if (location == Iglu) <>; else <>; } else if (noun == u_obj) { if (location == Iglu) <>; else <>; } SientaSolo: <>; Acostar: if (noun == nothing or d_obj) <>; else if (noun == u_obj) { if (location == Iglu) <>; else <>; } Rub: if (noun == u_obj) { if (location == Iglu) <>; else "No alcanzo..."; } else if (noun == d_obj) { if (location == Iglu) <>; else <>; } ! else ! print_ret "Hace demasiado frío para ponerme a limpiar ", (the) noun , "."; Take, Touch: if (noun == u_obj) { if (location == Iglu) <>; else "No alcanzo..."; } else if (noun == d_obj) { if (location == Iglu) <>; else <>; } Smell: if (noun == u_obj) { if (location == Iglu) <>; else <>; } else if (noun == d_obj) { if (location == Iglu) <>; else <>; } Search, Examine: if (noun == u_obj) { if (location == Iglu) <>; else <>; } else if (noun == d_obj) { if (location == Iglu) <>; else <>; } Dig, Attack: if (noun == nothing) <>; else if (noun == d_obj) { if (location == Iglu) <>; else <>; } else if (noun == u_obj) <>; else if (noun == Lanza) { if (location == Iglu) <>; else <>; } Pray: "No estoy cerca de las tumbas de mis antepasados."; Sleep: "Necesito comer algo antes: de lo contrario, me arriesgo a no despertar."; Blow, WaveHands, Jump: "Intento entrar en calor, pero mis miembros siguen ateridos."; Strong: "Tengo demasiado frío para gastar aliento en eso."; Burn: if (noun ~= Lanza) "Ya me gustaría poder hacer fuego, pero no tengo con qué..."; Recordar: "Si me pongo a pensar en mi tribu o en mi compañera, la soledad y la tristeza harán presa de mí. Es mejor no hurgar en el recuerdo y concentrarme en sobrevivir el día..."; ]; ! Escenario del Hielo Class Objeto_Escenario_Hielo class Objeto_Escenario; ! Objetos de localidad para el hielo Class Objeto_Localidad_Hielo class Objeto_Localidad with; ! Objetos de puzzle de El Hielo Class Objeto_Puzzle_Hielo class Objeto_Puzzle; ! Mi iglú Objeto_Localidad_Hielo Objeto_Localidad_Iglu "iglú" with name_m 'iglu' 'hogar' 'refugio' 'interior', name_f 'salida' 'entrada', before [; Reparar, Close: <>; Examine: if (location == Tundra) <>; Rub: "Limpiar el iglú sería un pérdida de tiempo y al menos sucio como está puede que me proteja algo más del frío."; Listen: if (location == Tundra) <>; else "Sólo escucho el sonido del roce de mis pieles al moverme."; Smell: if (location == Tundra) <>; else "Apesta, pero no más que yo, para no hablar de las pieles con que me cubro."; Climb, Dig, Attack, Take, Push, Pull: "Mientras hagan estos fríos, no haré nada al iglú que lo ponga en riesgo como refugio."; ], found_in Iglu Tundra, has male; Localidad_El_Hielo Iglu "Mi iglú" with descripcion_larga "Estoy dentro de mi iglú, intentando refugiarme del frío del exterior.^ Construí el iglú con bastante cuidado, pero el resultado fue más bien tosco y pequeño, aunque eso hace más facil su mantención.^ Pese a que casi no noto la diferencia con la temperatura del exterior, me ha permitido mantenerme con vida, aunque me duermo y me depierto aterido. La verdad es que, a pesar de todo, el iglú es preferible al inevitable sueño de la muerte que han sufrido muchos cazadores que han intentado pernoctar al descampado.^ El muro tiene una pequeña salida por la que entra algo de aire.", descripcion_corta "Estoy dentro de mi iglú. Es tosco y pequeño pero permite mantenerme con vida, pese a que casi noto la diferencia con el exterior: el frío es apenas soportable, pero es preferible estar aterido al sueño de la muerte en el hielo. Hay una pequeña salida en el muro.", ! descripcion_corta ! "Estoy dentro del iglú, aterido pero con vida. Hay una salida en el muro.", before [; Go: if (player in Hielo_Piso_Iglu) "Tendré que dejar de estar tendido para hacerlo..."; Exit: if ( (noun == nothing) && (player in Hielo_Piso_Iglu) ) <>; Cazar: "Debo salir del iglú si quiero cazar."; Pescar: "Debo salir del iglú si quiero pescar."; Salidas: "Del iglú se puede salir a la tundra."; Smell: if (noun == nothing) <>; Listen: if (noun == nothing or d_obj or u_obj) <>; ], out_to Tundra, ; Objeto_Luz Iglu_Luz "luz" Iglu with description "La luz al interior del iglú no es gran cosa, pero se refleja en las paredes y permite ver lo que hago... que no suele ser demasiado, cuando estoy en el iglú." ; Objeto_Aire Iglu_Aire "aire" Iglu with description "El aire es frío y resulta incómodo respirarlo.", before [; Listen: <>; Smell: <>; ] ; Objeto_Temperatura Iglu_Temperatura "temperatura" Iglu with description "Hace tanto frío en el iglú que apenas noto la diferencia con la temperatura del exterior: me duermo y me depierto aterido." ; ! Objeto para el personaje del Jugador en El Hielo Objeto_Jugador_Personaje Jugador_Hielo Iglu with description "Soy uno de los aspirantes a cazador de la tribu, voluntario como avanzada para tantear el terreno. Estoy en un estado físico deplorable y al límite de mis fuerzas, pero sigo vivo.", before [; Listen, Tell: "Hoy toca practicar el silencio del que acecha."; Touch: "Siento la piel aterida y debe estar mugrienta... pero no voy a desvestirme para saberlo."; Rub: "Seguro debo andar muy sucio... pero para el aseo tendría que desvestirme y con este frío prefiero la suciedad. Hasta abriga..."; Smell: if (location == Tundra) <>; else "No sé que huele peor: si yo o las pieles con que me cubro."; Cut, Attack, Push, Pull, Open, ThrowAt: "No hace falta: la caza trae bastante oportunidades de hacerse daño."; ]; ! La ropa del Jugador Objeto_Ropa_Jugador Hielo_Ropa_Jugador "pieles" Jugador_Hielo with name_fp 'pieles', adjectives 'vieja' 'viejas' 'aspera' 'asperas' 'simple' 'gastada' 'gastadas', invent "mis pieles con que me abrigo", descripcion_larga "Son las viejas pieles de la primera presa que cobré con mis propias manos: mis primeros pasos en la senda de los cazadores.^ De eso ha pasado ya no poco tiempo, por lo que las pieles están ásperas y gastadas, pero me permiten cubrirme y abrigarme.", descripcion_corta "Son las viejas pieles de alguna bestia que maté hace ya tiempo. Son ásperas y están gastadas pero me abrigan.", ! descripcion_corta ! "Son las pieles que uso de ropa.", before [; Rub: "Están sucias, pero la mugre aisla y eso no es malo."; Touch: "Son ásperas pese a lo gastadas que están."; Smell: if (location == Tundra) <>; else "Apestan y hieden, a pesar del frío."; Disrobe, Drop: "Jamás. Moriría de frío."; ], has female pluralname; Objeto_Puzzle_Hielo Lanza "lanza" Jugador_Hielo with name 'lanza' 'punta' 'herramienta' 'arma', adjectives 'mi' 'hueso' 'afilada' 'caza', invent "mi lanza de caza", descripcion_larga "Mi lanza de hueso es la única herramienta que me queda, pues las demás se me consumieron y desgastaron cuando tuve que armar el iglú.^ Es además el arma con la que cazo para comer y, en no pocas ocasiones, me ha ayudado a luchar y sobrevivir cuando la presa he sido yo.", descripcion_corta "Mi afilada lanza de hueso, con la que cazo para comer y con la que he luchado para sobrevivir cuando la presa he sido yo.", ! descripcion_corta ! "Mi lanza de hueso para cazar.", before [; Tell: "Le hablo de las presas que cazaremos cuando nos juntemos con la tribu, pero parece indiferente a mis promesas: lo suyo es el latido del presente."; Listen: "Me llama con su voz seductora, sedienta de sangre, hambrienta de carne... y vaya si hemos pasado hambre, últimamente."; Smell: if (location == Tundra) <>; else "Aun huele a sangre de mi última presa.^ Me reconforta."; Touch, Kiss: "Es de una belleza tentadora, pero es mejor contenerse. Sus caricias son afiladas y no quiero cortarme."; Cut, Attack, Burn, Drop: "No me separo jamás de mi lanza. Antes muerto... y después, seguro."; ], has female animate; Objeto_Escenario_Hielo Hielo_Piso_Iglu "suelo" Iglu with name_m 'suelo' 'piso' 'polvo', name_f 'nieve', adjectives 'duro' 'frio' 'helado' 'seco' 'solido' 'sucio' 'hielo', descripcion_larga "El suelo del iglú es de hielo sucio, con algo de polvo que no merece el nombre de nieve. Ya me gustaría haber cazado algo más para cubrirlo el suelo con pieles, pero lo que encontré me sirvió apenas para comer... y las pieles que tengo las necesito para cubrirme.", descripcion_corta "El suelo del iglú es de hielo sucio.", look_clarification ", tendido en el suelo", before [; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en el suelo."; PlayerTo(self,1); ! Sin <> "Me tiendo en el suelo. Es helado y duro, pero al menos está seco..."; Rub: "Limpiar el suelo sería un pérdida de tiempo y al menos sucio como está resbalo menos."; Take, Touch: "El suelo está helado y es duro, pero al menos está seco."; Smell: <>; Dig, Attack: "No quiero romper el suelo, bastante trabajo me dió compactarlo."; ], after [; Exit, GetOff: "Me levanto del suelo. Estaba frío, pero al menos me ha descansado algo..."; ], has male supporter; Objeto_Escenario_Hielo Hielo_Techo_Iglu "techo" Iglu with name 'techo' 'cielo', adjectives 'duro' 'frio' 'helado' 'seco' 'compactado' 'sucio' 'hielo', descripcion_larga "El techo del iglú, como las paredes, está hecho de hielo compactado. Me costó lo suyo hacerlo pero me protege del frío.", descripcion_corta "El techo del iglú está hecho de hielo compactado.", before [; Enter, Acostar: "Se ve difícil. Prefiero el suelo..."; Rub: "Limpiar el techo sería un pérdida de tiempo y al menos sucio siento que abriga más."; Smell: <>; Take, Touch: "Es helado y duro, pero al menos está seco."; ], has male; Objeto_Escenario_Hielo Hielo_Paredes_Iglu "paredes" with name_fp 'paredes', name_f 'pared' 'grieta', name_mp 'muros', name_m 'muro', adjectives 'duras' 'dura' 'duros' 'duro' 'frias' 'fria' 'frios' 'frio' 'heladas' 'helada' 'helados' 'helado' 'secas' 'seca' 'secos' 'seco' 'compactado' 'hielo', describe "Debo sellar la grieta del muro pronto o tendré problemas.", descripcion_larga [; print "Las paredes del iglú, como el techo, están hechas de hielo compactado. Me costó lo suyo levantarlas, pero me resguardan del frío"; if (self hasnt on) "... excepto que ahora tienen una grieta. Si no la sello pronto, tendré problemas."; else ", especialmente ahora que la grieta está sellada."; ], descripcion_corta [; print "Las paredes del iglú están hechas de hielo compactado"; if (self hasnt on) "... a no ser por esa grieta, que debo sellar pronto."; else ". La grieta ya está bien sellada."; ], before [; if (player in Hielo_Piso_Iglu) "Tendré que dejar de estar tendido para hacerlo..."; Reparar, Close: if (self hasnt visited) <>; if (self hasnt on) { if (location == Iglu) "Debo sellar la grieta desde fuera; hacerlo por dentro no resuelve el problema."; else if ( ((second == nothing) && (Trozos_Hielo in player)) || (second == Trozos_Hielo) ) { move Trozos_Hielo to Limbo; give self on; give self scenery; give self visited; ! +1 punto por reparar la grieta en el iglú Achieved(9); "Metiendo los trozos de hielo con cuidado en la grieta la dejo bien sellada y reparo así la pared del iglú.^ Menos mal.^ El viento helado terminaría por derrumbar el muro si no lo mantengo entero."; } else if (second ~= Trozos_Hielo) print_ret "No puedo sellar la grieta con ", (the) second, "."; } else "No hace falta, la grieta en las paredes ya está bien sellada."; Rub: print "Limpiar las paredes sería un pérdida de tiempo... y me helaría las manos"; if (self hasnt on) ": mejor me dedico a sellar esa grieta."; else "."; Touch: print "Las paredes son heladas y duras, pero al menos están secas"; if (self hasnt on) "... cosa que no durará mucho tiempo si no sello esa grieta."; else "."; Smell: if (location == Tundra) <>; else "Apestan, pero no más que yo, para no hablar de las pieles con que me cubro."; Climb, Take, Dig, Cut, Attack, Push, Pull: <>; Listen: <>; ], after [; Examine: if (self hasnt visited) { give self visited; give self ~scenery; } ], found_in Iglu Tundra, has female pluralname; ! La tundra Objeto_Localidad_Hielo Objeto_Localidad_Tundra "tundra" with name_f 'tundra', name_m 'paramo' 'desierto' 'descampado' 'exterior' 'paisaje', adjectives 'helado' 'desolado' 'blanco', before [; Take, Push, Pull, Reparar, Rub: "Que la maldita tundra se limpie sola. Bastante tengo con tratar de sobrevivir."; Listen: <>; Smell: <>; Dig, Attack: <>; ], found_in Tundra Iglu, has female; Localidad_El_Hielo Tundra "La tundra" with descripcion_larga [; print "Con la llegada de los hielos, la cálida y suave llanura se ha transformado en tundra: un desierto blanco, helado y desolado que se extiende en todas direcciones alrededor del iglú.^ Según mis cuentas, faltan un par de meses antes de que los primeros deshielos transformen nuevamente el paisaje; hasta entonces debo mantenerme vivo, luchando contra el frío y el hambre.^ Para el frío tengo el iglú y para el hambre sólo cuento con lo que puedo encontrar aquí cerca: si me alejo demasiado me arriesgo a perderme o a volerme comida yo mismo"; if (Agujero_Suelo in self) { ".^ Ahora que tengo abierto en el suelo un agujero de pesca, el hambre pronto dejará de ser un problema."; } else "."; ], descripcion_corta [; print "La tundra es un páramo helado y desolado, un desierto blanco hasta donde la vista alcanza. Faltan meses para los primeros deshielos y mientras tanto el truco es mantenerse vivo, luchando contra el frío y el hambre.^ En general, solo me alejo de mi iglú cuando no puedo encontrar comida aquí cerca"; if (Agujero_Suelo in self) { ", pero ya tengo abierto en el suelo un agujero de pesca para eso."; } else "."; ], ! descripcion_corta [; ! print ! "Estoy un páramo helado hasta donde la vista alcanza. Mi iglú está aquí cerca"; ! if (Agujero_Suelo in self) ! { ! " y he preparado un agujero en el suelo para pescar."; ! } ! else ! "."; ! ], before [; Cazar, Pescar: if (Agujero_Suelo in Limbo) "No puedo pescar en el suelo si no lo he roto antes."; else if (noun == Lanza or player) <>; Go: if (noun ~= in_obj) "Es mejor no alejarse e intentar encontrar comida aquí cerca."; Salidas: "Puedo entrar al iglú: es mejor no alejarse e intentar encontrar comida aquí cerca."; Smell: if (noun == nothing) <>; Listen: if (noun == nothing or d_obj or u_obj) <>; ], in_to Iglu, ; Decorado Tundra_Decorado Tundra with describe 'horizonte' "No se ve más que un desierto blanco, helado y desolado que se extiende en todas direcciones alrededor del iglú." G_MASCULINO 'sol' "El sol es una mancha pálida que a veces se ve en el cielo. Hoy mismo creo verlo... o puede ser un truco de la luz, no lo sé." G_MASCULINO, before [; Enter, Acostar, Smell, Rub, Touch, Take, Pull, Push, Climb: "Está demasiado lejos para siquiera intentarlo..."; Listen: <>; ] ; Objeto_Escenario_Hielo Hielo_Suelo_Tundra "suelo" Tundra with name_m 'suelo' 'hielo', name_f 'nieve', adjectives 'duro' 'frio' 'helado' 'humedo' 'solido' 'blanco', descripcion_larga "El suelo de la tundra es de hielo blanco y se vuelve borroso a pasos del iglú: la poca nieve suelta que se ve se la lleva el viento. En general, el suelo es sólido, pero había pequeñas lagunas al lado de donde construí el iglú, así que conviene fijarse mucho donde pisa uno.", descripcion_corta "El suelo de la tundra es de hielo blanco aparentemente sólido, pero hay que tener cuidado donde pisa uno.", ! descripcion_corta ! "El suelo de la tundra es de hielo.", before [; Enter, Acostar: "Hace demasiado frío para arriesgarme a quedarme pegado en el suelo..."; Rub: "Limpiar el suelo sería una tarea de nunca acabar. Sólo hay que tener cuidado por dónde se camina."; Take, Touch: "El suelo de la tundra está helado, es duro... y está algo húmedo."; Dig, Attack: if (Agujero_Suelo in Limbo) { if (second ~= Lanza) "No puedo romper el suelo a golpe desnudo, necesito algo más afilado."; else { move Agujero_Suelo to Tundra; move Trozos_Hielo to Tundra; move Peces to Tundra; "Usando la punta de la lanza con cuidado, golpeo el hielo en el suelo hasta abrir un agujero para pescar...^ ...y de hecho se ven formas que se mueven en el agua.^ ¡Peces!^ Buena cosa: no tendré que pasar hambre hoy.^ He dejado trozos de hielo todo alrededor del agujero."; } } else "No hace falta, ya tengo un agujero para pescar."; Smell: <>; ], after [; Examine: if (Agujero_Suelo in Tundra) "Al lado del iglú he creado un agujero para pescar."; ] has male; Objeto_Escenario_Hielo Hielo_Cielo_Tundra "cielo" Tundra with name_m 'cielo', name_f 'nube', name_fp 'nubes', adjectives 'gris' 'palido', descripcion_larga "El cielo, que antes de los hielos era azul y hermoso, hace ya tiempo que es pálido y gris. No sé si hay o no nubes, pero de día y de noche se ve la misma cosa.", descripcion_corta "El cielo es pálido. No sé si hay o no nubes, todo se ve igual... y gris.", ! descripcion_corta ! "El cielo es gris y pálido.", before [; Enter, Acostar: "Los ancianos dicen que al morir nos convertimos en estrellas y que desde el cielo nos observan nuestros antepasados. La verdad, no tengo prisa por unirme a esas alturas... y hace semanas que no veo una sola estrella."; ], has male; Objeto_Luz Tundra_Luz "luz" Tundra with description "La luz es escasa y difusa. Puedo ver con claridad el iglú, el suelo y poco más." ; Objeto_Aire Tundra_Aire "aire" Tundra with description "El aire es frío y resulta doloroso respirarlo.", before [; Listen: "El viento silva como si quisiera llevarse mis oidos. Apenas escucho otra cosa..."; Smell: "No huelo nada y se me enfría la nariz cuando lo intento..."; ] ; Objeto_Temperatura Tundra_Temperatura "temperatura" Tundra with description "Hace tanto frío en el iglú que apenas noto la diferencia con la temperatura del exterior: me duermo y me depierto aterido." ; Objeto_Escenario_Hielo Agujero_Suelo "agujero en el suelo" Limbo with name_m 'agujero' 'hoyo' 'borde', name_mp 'bordes', name_f 'agua' 'laguna', name_fp 'lagunas', adjectives 'oscuro' 'oscura' 'irregular' 'irregulares' 'suelo' 'piso' 'pequeña' 'pequeñas', descripcion_larga "El agujero en el suelo es de bordes irregulares y no podía ser de otro modo, teniendo en cuenta que lo abría a golpes. A pesar de la oscuridad, puedo ver el agua de alguna de las pequeñas lagunas que están bajo el suelo junto al iglú.", descripcion_corta "El agujero en el suelo es de bordes irregulares. A pesar de la oscuridad, puedo ver el agua que está bajo el suelo junto al iglú.", ! descripcion_corta ! "El oscuro agujero en el suelo permite llegar al agua.", before [; Cazar, Pescar: if (second == nothing or player) <>; else <>; PutOn, Insert, Rub, Touch, Take: "De ninguna manera, se me congelarían las manos."; Search: ! if (Peces in Limbo) ! { ! move Peces to Tundra; ! "Se ven formas que se mueven en el agua.^ ! ¡Peces!^ ! Buena cosa: no tendré que pasar hambre hoy."; ! } ! else "En el agua se adivinan las formas de los peces nadando."; Smell: <>; Listen: <>; ], after [; Examine: ! if (Peces in Tundra) "En el agua se adivinan las formas de los peces nadando."; ], has male; Objeto_Escenario_Hielo Peces "peces" Limbo with name_mp 'peces', name_m 'pez', name_fp 'formas', name_f 'forma', adjectives 'nadando' 'plateados' 'plateado' 'plateadas' 'plateada', descripcion_larga "Las formas de los peces se vislumbran en el agua del agujero. Son sombras plateadas que pasan fugaces, nadando en el agua.^ Están cerca y sin embargo, mientras no pesque alguno, están tan lejos...", descripcion_corta "Las formas de los peces se adivinan nadando en el agua del agujero.", before [; Cazar, Pescar: if (second == nothing or player) <>; else <>; Rub, Touch, Smell, Eat, Taste: "Habrá que pescar alguno primero..."; Take: if (Hielo_Paredes_Iglu hasnt visited) "Tengo hambre... pero lo más prudente es revisar las paredes del iglú antes de pescar: el viento helado terminaría por derrumbar el muro si no lo mantengo entero."; if (Hielo_Paredes_Iglu hasnt on) "Aunque el hambre acecha, primero debo sellar la grieta en la pared del iglú..."; if (second == nothing) "Si lo intento sólo con las manos, se me congelan."; else if (second == Lanza) { ! +1 pescar en la tundra Achieved(8); CortoPescaEnTundra.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } else print_ret "No creo que pueda pescar con ", (the) second, "."; Listen: <>; ], has male pluralname; Objeto_Puzzle_Hielo Trozos_Hielo "trozos de hielo" Limbo with name_mp 'trozos' 'pedazos' 'fragmentos', name_m 'trozo' 'pedazo' 'fragmento', adjectives 'duros' 'duro' 'frios' 'frio' 'helados' 'helado' 'humedos' 'humedo' 'hielo', describe "Hay unos fragmentos de hielo alrededor del agujero.", descripcion_larga "Los trozos de hielo son fragmentos, sacados a golpes del suelo. Mientras los contemplo caigo en cuenta que no debo desperdiciarlos, pues no fue fácil obtenerlos.^ Vaya si eso muestra lo desesperada de mi situación...", descripcion_corta "Los trozos de hielo son fragmentos del suelo.", before [; Drop: "Costo lo suyo conseguirlos, no pienso extraviarlos."; Rub: "No sirve de nada, quedarían deshechos en el intento."; Touch: "Los trozos de hielo están helados, duros y algo húmedos."; PutOn, Insert: if (second ~= Hielo_Paredes_Iglu) print_ret "No sirve de nada poner los trozos de hielo en ", (the) second, "."; else <>; Smell: <>; Listen: <>; ], has male pluralname; ! * Mundo El Templo * Class Localidad_El_Templo class Localidad with before [; Dig: print "Tengo obligaciones que cumplir para que los que Vienen de Arriba no me desfavorezcan. No puedo malgastar tiempo o energía cavando en busca de vaya uno a saber qué pueda haber escondido en "; if (location == Cima or Templo) "el templo..."; else "esta montaña..."; Enter: if (noun == d_obj) { if (location ~= Templo) <>; else <>; } else if (noun == u_obj) switch (location) { Caverna: <>; Templo: <>; default: <>; } SientaSolo: <>; Acostar: if (noun == nothing or d_obj) <>; else if (noun == u_obj) <>; Take, Touch: if (noun == u_obj) "No alcanzo..."; else if (noun == d_obj) switch (location) { Escala: <>; Templo: <>; default: <>; } Search, Examine: if (noun == u_obj) switch (location) { Caverna: <>; Templo: <>; default: <>; } else if (noun == d_obj) switch (location) { Escala: <>; Templo: <>; Cornisa: if (Guijarro in Limbo) { move Guijarro to Cornisa; Montana_Suelo.description(); "En el suelo encuentro un guijarro."; } else <>; default: <>; } Rub: if (noun == d_obj) { if (location ~= Templo) <>; else <>; } else if (noun == u_obj) switch (location) { Caverna: <>; Templo: <>; default: <>; } Pray: "Ya no hay dioses para mi: solo los que Vienen de Arriba... y ellos siempre han ignorado mis plegarias."; Sleep: "Qué más quisiera, pero primero debo servir a los que Vienen de Arriba..."; Jump: if (location == Cornisa or Escala or Cima) "Ya no lo intento. Cuando me he tirado al vacío, despierto de vuelta en la caverna. Los que Vienen de Arriba no me dejarán morir hasta que les haya servido a su satisfacción."; else <>; Blow, WaveHands: "Guardaré las pocas energías que tengo para servir a los que Vienen de Arriba."; Strong: "Si creyera que maldecir a los que Vienen de Arriba serviría de algo, lo haría."; Smell: if (noun == nothing) switch (location) { Caverna: <>; Templo: <>; default: <>; } else if (noun == d_obj) switch (location) { Escala: <>; Templo: <>; default: <>; } else if (noun == u_obj) switch (location) { Caverna: <>; Templo: <>; default: <>; } Listen: if (noun == nothing or d_obj or u_obj) switch (location) { Caverna: <>; Templo: <>; default: <>; } Recordar: "Me gustaría poder recordar alguno de los rostros de los que viven abajo de la montaña...^ Cómo imaginar formas en las nubes...^ No recuerdo los sonidos o acaso las palabras para hablar...^^ Ya no recuerdo lo que fui y apenas sé lo que soy: uno de los guardianes de las cumbres, un prisionero al servicio de los que Vienen de Arriba."; Cazar, Pescar: "Acá arriba es imposible."; Burn: if (noun == d_obj) { if (location ~= Templo) <>; else <>; } else if (noun == u_obj) switch (location) { Caverna: <>; Templo: <>; default: <>; } Attack: if (noun == d_obj) { if (location ~= Templo) <>; else <>; } else if (noun == u_obj) switch (location) { Caverna: <>; Templo: <>; default: <>; } ]; ! Escenario del Templo Class Objeto_Escenario_Templo class Objeto_Escenario with before [; Rub: print "No importa cómo "; if (noun has pluralname) print "estén de "; else print "esté de "; if (noun has male) { if (noun has pluralname) print "sucios o limpios "; else print "sucio o limpio "; } else { if (noun has pluralname) print "sucias o limpias "; else print "sucia o limpia "; } print (the) noun, ". Lo importante es "; switch (location) { Templo: print "el monolito"; Cima: print "lo que está dentro"; default: print "lo que está en el templo"; } print ": para eso "; if (location == Templo or Cima) print "pusieron el templo "; else print "lo construyeron "; "los que Vienen de Arriba."; Burn: print "Quemar ", (the) noun, " no sirve a los que Vienen de Arriba.^ Mejor me dedico a lo importante: tengo trabajo que hacer "; if (location == Templo) "aquí."; else "en el templo."; Attack: print "Nada gano con andar golpeando ", (the) self; if (second == Guijarro) print " con el guijarro"; print ".^ Mejor me dedico a lo importante: tengo trabajo que hacer "; if (location == Templo) "aquí."; else "en el templo."; ]; ! Objetos de localidad para el templo Class Objeto_Localidad_Templo class Objeto_Localidad with before [; Rub: if ((self.&found_in)-->0 ~= Templo) { print "Limpiar ", (the) noun," sería una pérdida de tiempo: a mi no me importa que esté suci"; if (noun has male) print "o"; else print "a"; " y a los que Vienen de Arriba tampoco les interesa.^ Lo único que les interesa es lo que está en el templo."; } if (Templo hasnt visited) "Es mejor que entre al templo primero: entonces veremos qué hace falta hacer."; else "Debiera limpiar el monolito. Para eso pusieron el templo los que Vienen de Arriba."; Smell: if (location == (self.&found_in)-->0) <>; else { print "Tendría que "; if ((self.&found_in)-->0 == Caverna or Templo) print "entrar en ", (the) noun; else print "ir ", (al) noun; " hacer eso..."; } Listen: if (location == (self.&found_in)-->0) <>; else { print "Tendría que "; if ((self.&found_in)-->0 == Caverna or Templo) print "entrar en ", (the) noun; else print "ir ", (al) noun; " hacer eso..."; } Burn: if (location == (self.&found_in)-->0) "Si pudiera hacerlo, no tendría que obedecer a los que Vienen de Arriba..."; else { print "Tendría que "; if ((self.&found_in)-->0 == Caverna or Templo) print "entrar en ", (the) noun; else print "ir ", (al) noun; " hacer eso..."; } Attack: if (location == (self.&found_in)-->0) { print "Nada gano con andar golpeando ", (the) self; if (second == Guijarro) print " con el guijarro"; print ".^ Mejor me dedico a lo importante: tengo trabajo que hacer "; if (location == Templo) "aquí."; else "en el templo."; } else { print "Tendría que "; if ((self.&found_in)-->0 == Caverna or Templo) print "entrar en ", (the) noun; else print "ir ", (al) noun; " hacer eso..."; } ]; Objeto_Localidad_Templo Objeto_Localidad_Montana "montaña" with name_f 'montana', description [; <>; ], before [; GoIn, Enter: if (location == Cornisa) <>; else if (location == Caverna or Templo) <>; else "¿A dónde, en particular?"; GetOff: if (location == Caverna or Templo) <>; else "Si pudiera hacerlo, no tendría que obedecer a los que Vienen de Arriba..."; Receive: <>; Smell: if (location == Caverna or Templo) "Tendría que salir al exterior para eso..."; else <>; Listen: if (location == Caverna or Templo) "Tendría que salir al exterior para eso..."; else <>; Climb: if (location == Caverna or Templo) "Tendría que salir al exterior para eso..."; else "Ya no lo intento. Sé que al más mínimo error he de caer al vacío, para luego despertar de vuelta en la caverna. Los que Vienen de Arriba no me dejarán morir hasta que les haya servido a su satisfacción."; Burn: "Si pudiera hacerlo, no tendría que obedecer a los que Vienen de Arriba..."; ], found_in Caverna Cornisa Escala Cima Templo, has female; ! Objetos de puzzle de El Templo Class Objeto_Puzzle_Templo class Objeto_Puzzle with before [; Rub: print "No importa cómo esté de "; if (noun has male) print "sucio o limpio "; else print "sucia o limpia "; print (the) noun, ". Lo importante es "; switch (location) { Templo: print "el monolito"; Cima: print "lo que está dentro"; default: print "lo que está en el templo"; } print ": para eso "; if (location == Templo or Cima) print "pusieron el templo "; else print "lo construyeron "; "los que Vienen de Arriba."; Attack: print "Nada gano con andar golpeando ", (the) self; if (second == Guijarro) print " con el guijarro"; print ".^ Mejor me dedico a lo importante: tengo trabajo que hacer "; if (location == Templo) "aquí."; else "en el templo."; ]; Objeto_Escenario_Templo Montana_Suelo "suelo" with name_m 'piso' 'suelo', name_f 'roca', adjectives 'dura' 'duro' 'durisima' 'durisimo' 'aspera' 'aspero' 'pesada' 'pesado', descripcion_larga "El suelo de la montaña es de roca... tan pesada, dura y áspera como cada tarea que debo hacer para los que Vienen de Arriba.", descripcion_corta "El suelo de la montaña es de roca, durísima y áspera.", ! descripcion_corta ! "El suelo es de roca.", before [; Enter, Acostar: if (location == Caverna) { if (player notin Jergon) print "Para eso, prefiero mi jergón. "; <>; } else "Tengo trabajo que hacer en el templo. No puedo ponerme a descansar ahora..."; Take, Touch: "La roca es dura y áspera."; Smell: if (location == Caverna) "El suelo de la caverna no tienen olor ni aroma. En eso, al menos, no han querido castigarme los que Vienen de Arriba."; else <>; ], found_in Caverna Cornisa Cima, has male; Objeto_Escenario_Templo Montana_Paredes "paredes" with name_fp 'paredes', name_f 'pared' 'roca', name_mp 'muros', name_m 'muro', adjectives 'dura' 'duro' 'duras' 'duros' 'durisima' 'durisimo' 'durisimas' 'durisimos' 'aspera' 'aspero' 'asperas' 'asperos' 'pesada' 'pesado' 'pesadas' 'pesados', descripcion_larga "Las paredes de la montaña son de roca... tan pesadas, duras y ásperas como cada tarea que debo hacer para los que Vienen de Arriba.", descripcion_corta "Las paredes de la montaña son de roca, durísimas y ásperas.", ! descripcion_corta ! "Los muros son de roca.", before [; Climb: if (location == Caverna) { if (player in Jergon) "Tendré que dejar de estar tendido para hacerlo..."; else "Tengo trabajo que hacer en el templo. No puedo ponerme a gastar energía en eso..."; } else <>; Take, Attack, Cut, Push, Pull: "Salvo los que Vienen de Arriba, no hay quien mueva estas paredes. Además, tengo trabajo que hacer en el templo. No puedo ponerme a gastar energía en eso..."; Touch: "La roca es dura y áspera."; Smell: if (location == Caverna) "Las paredes de la caverna no tienen olor ni aroma. En eso, al menos, no han querido castigarme los que Vienen de Arriba."; else <>; Listen: <>; ], found_in Caverna Cornisa Escala, has female pluralname; Objeto_Escenario_Templo Montana_Cielo "cielo" with name 'cielo', descripcion_larga "El cielo es limpio y claro, con las nubes muy por debajo y perdidas en la distancia.^ Hoy no se ven señales de los que Vienen de Arriba, pero eso no significa nada, ya que a veces he sentido su presencia opresiva sin que logre verlos.^ Sé que están ahi.^ Sé que me están vigilando.^ Sé que no puedo escapar a su mirada, que traspasa el aire, la roca y mi cuerpo...", descripcion_corta "El cielo es limpio y claro, con las nubes muy abajo y a lo lejos. Hoy no se ven señales de los que Vienen de Arriba, pero eso no significa mucho. Sé que me vigilan.", ! descripcion_corta ! "Es cielo es limpio y claro.", before [; Climb, Enter, Acostar: "Puede que los que Vienen de Arriba lo hagan a voluntad. Yo tendría que poder volar para hacerlo..."; Burn: "Si pudiera hacerlo, no tendría que obedecer a los que Vienen de Arriba..."; ], found_in Cornisa Escala Cima, has male; Decorado Montana_Decorado with describe 'paisaje' "El horizonte es vasto y parece infinito desde esta altura. A la distancia se ven las nubes y debajo se adivina un abismo que llega a la base de la montaña.^ De noche me ha parecido ver a lo lejos luces que, probablemente, sean de otros templos como el que cuido yo." G_MASCULINO 'horizonte' "El horizonte es vasto y parece infinito desde esta altura. A la distancia se ven las nubes y debajo se adivina un abismo que llega a la base de la montaña.^ De noche me ha parecido ver a lo lejos luces que, probablemente, sean de otros templos como el que cuido yo." G_MASCULINO 'sol' "El sol es una bola amarilla, iluminando todo sin misericordia." G_MASCULINO 'abismo' "Desde el borde de la montaña hay una caida muy larga, que termina la base de la montaña. A veces lo contemplo con algo de añoranza, pues allá abajo debe haber gente que no viven para servir a los que Vienen de Arriba.^ Me gustaría poder recordar alguno de sus rostros..." G_MASCULINO 'nube' "Las nubes se ven muy a la distancia. Alguna vez me distraje imaginando formas en ella, pero hace ya tiempo que no recuerdo lo suficiente para poder imaginar algo en la apariencia de una nube." G_FEMENINO, before [; JumpOver: <>; Attack, Enter, Acostar, Smell, Rub, Touch, Take, Pull, Push, Climb, Burn: "Si pudiera hacerlo, no tendría que obedecer a los que Vienen de Arriba..."; Listen: <>; ], found_in Cornisa Escala Cima, ; Decorado Montana_Decorado_Plural with describe 'nubes' "Las nubes se ven muy a la distancia. Alguna vez me distraje imaginando formas en ella, pero hace ya tiempo que no recuerdo lo suficiente para poder imaginar algo en la apariencia de una nube." G_FEMENINO, before [; JumpOver: <>; Attack, Enter, Acostar, Smell, Rub, Touch, Take, Pull, Push, Climb, Burn: "Si pudiera hacerlo, no tendría que obedecer a los que Vienen de Arriba..."; Listen: <>; ], found_in Cornisa Escala Cima, has pluralname; Objeto_Luz Montana_Luz "luz" with description "La luz del sol, brillante e intensa, cae sin sombra alguna. Todo se ve nítidamente... a ratos, con demasiada claridad.", found_in Cornisa Escala Cima ; Objeto_Aire Montana_Aire "aire" with name 'aroma' 'olor' 'silbido', description "El aire de la montaña es fresco y frío. A ratos sopla un viento, helado como una bofetada.", before [; Listen: "Salvo por el silbido ocasional del viento, aquí solo se escucha el ruido de mis pasos."; Smell: "El aire no tiene olor ni aroma. En eso, al menos, no han querido castigarme los que Vienen de Arriba."; ], found_in Cornisa Escala Cima ; Objeto_Temperatura Montana_Temperatura "temperatura" with description "La temperatura en la montaña es más bien fría.", found_in Cornisa Escala Cima ; ! La caverna Objeto_Localidad_Templo Objeto_Localidad_Caverna "caverna" with name_f 'caverna' 'cueva' 'entrada' 'salida', name_m 'interior', found_in Caverna Cornisa, has female; Localidad_El_Templo Caverna "La caverna" with descripcion_larga "Estoy en el interior de la caverna, rodeado de la roca de la montaña.^ Cada vez que entro aquí siento una sensación de agobio y cansancio, como si estuviera soportando todo el peso del techo sobre mis hombros.^ Supongo que podría ser peor: el lugar es fresco sin ser helado, mientras que si tuviera que estar fuera todo el tiempo, tendría que soportar los calores y los fríos del exterior.^ Aparte de mi jergón y algunos enseres, el lugar está completamente vacío: yo mismo no abulto demasiado.^ Por la salida entra aire y la luz del exterior.", descripcion_corta "Estoy en el interior de la caverna, rodeado de la roca de la montaña, casi sintiendo el peso del techo sobre mí. Aparte de mi jergón y algunos enseres, el lugar está vacío. Por la salida entra aire y la luz del exterior.", ! descripcion_corta ! "Estoy en el interior de la caverna. Distingo la luz a la salida.", before [; SientaSolo: <>; Acostar: if (noun == nothing) <>; Exit: if ( (noun == nothing) && (player in Jergon) ) <>; GetOff: if ( (noun == nothing) && (player in Jergon) ) <>; Salidas: "Desde la caverna sólo puedo salir a la cornisa."; ], out_to Cornisa, ; ! Objeto para el personaje del Jugador en El Templo Objeto_Jugador_Personaje Jugador_Templo Caverna with description "Ya no recuerdo lo que fui y apenas sé lo que soy: uno de los guardianes de las cumbres, un prisionero al servicio de los que Vienen de Arriba.", before [; Listen, Tell, Search: "Ya no recuerdo los sonidos o acaso las palabras para hacerlo."; Touch: "Tengo la piel áspera y sucia."; Rub: "Sólo me aseo cuando llueve y cuando ya no soporto mi propio olor."; Smell: "Apesto, es la verdad. Intento asearme cuando llueve y cuando ya no soporto mi propio olor."; Cut, Attack, Push, Pull, Open, ThrowAt: "Ya no lo intento. Cuando he intentado hacerme daño, incluso hasta la muerte, despierto de vuelta en la caverna. Los que Vienen de Arriba no me dejarán morir hasta que les haya servido a su satisfacción."; ]; ! La ropa del jugador Objeto_Puzzle_Templo Tunica "túnica" Jugador_Templo with name 'tunica' 'ropa', adjectives 'mi' 'vieja' 'aspera' 'simple' 'gastada', invent "mi vieja túnica", descripcion_larga "No es más que mi vieja túnica, la única ropa que tengo desde que estoy aquí. A veces creo recordar otras ropas que alguna vez vestí, pero ya no estoy seguro de si fueron reales o son sólo restos en mi imaginación.", descripcion_corta "No es más que mi vieja túnica, la única ropa que tengo desde que estoy aquí.", ! descripcion_corta ! "No es más que mi vieja túnica.", before [; if (Aceite in player) "Tengo las manos ocupadas en sostener el jarrón."; Rub: "No vale la pena, vieja y gastada como está."; Drop: if (self has worn) <>; else "No es gran cosa, pero no pienso perderla de vista."; Smell: "Apesta... aunque no más que yo."; Search, Touch: "Es muy áspera."; Disrobe: if (self has worn) { if (player in Templo) { give self ~worn; "Temblando de frío, me saco la túnica."; } else "No quiero andar desnudo y expuesto."; } Attack: "No es gran cosa, pero no voy a ajar a golpes mi túnica: no tengo cómo reponerla."; Burn: "No es gran cosa, pero no voy a quemar mi túnica: no tengo cómo reponerla."; ], has female clothing worn; Objeto_Escenario_Templo Caverna_Techo "techo" Caverna with name_m 'cielo' 'techo', name_f 'roca', adjectives 'solida' 'solido' 'basta' 'basto' 'alto' 'alta', descripcion_larga "El techo de la caverna es de roca sólida y basta. Está bastante alto.", descripcion_corta "El techo de la caverna es de roca.", before [; Enter, Acostar: "Me canso, prefiero mi jergón..."; ], has male; Objeto_Luz Caverna_Luz "luz" Caverna with description "La luz llega suavizada del exterior y permite ver todo sin problemas." ; Objeto_Aire Caverna_Aire "aire" Caverna with name 'aroma' 'olor', description "El aire en la caverna es fresco y frío.", before [; Listen: if (player in Jergon) "Aquí sólo se escucha el roce de mi túnica con el jergon."; else "Aquí solo se escucha el ruido de mis pasos."; Smell: "El aire no tiene olor ni aroma. En eso, al menos, no han querido castigarme los que Vienen de Arriba."; ] ; Objeto_Temperatura Caverna_Temperatura "temperatura" Caverna with description "La temperatura en la caverna apenas menos fría que en el exterior." ; Objeto_Escenario_Templo Jergon "jergón" Caverna with name_f 'cama' 'manta', name_m 'lecho' 'jergon', adjectives 'aspero' 'aspera' 'arrugado' 'arrugada' 'doblado' 'doblada', look_clarification ", tendido en el jergón", descripcion_larga [; print "El jergón no es más que una manta que uso para dormir y para aislarme del suelo. Es aspero e incómodo... "; if (self hasnt on) "y arrugado es apenas mejor que el suelo."; else "aunque ahora que está doblado no es tan malo."; ], descripcion_corta [; print "El jergón es aspero e incómodo... "; if (self hasnt on) "y está arrugado."; else "aunque doblado no es tan malo."; ], before [; Search, Touch: "Es áspero."; Smell: "Apesta..."; Take, Search, Doblar, Rub: if (player in self) "Tendré que dejar de estar tendido para hacerlo..."; if (self hasnt on) { give self on; print "Recojo la manta, la estiro y la doblo con cuidado. Queda algo mejor para protegerme del suelo de la caverna.^"; if (Enseres has on) { ! +1 por ordenar jergón y utensilios en caverna Achieved(11); "^Con el jergón y los utensilios en orden, el lugar ya no parece un cuchitril."; } return; } "No hace falta doblarlo más, ya esta bien así."; Enter, GoIn, Acostar: if (player in self) "Ya estoy tendido en el jergón."; PlayerTo(self,1); ! Sin <> print "Me tiendo en el jergón"; if (self has on) ". Ahora que está doblado, no es tan malo..."; "."; Attack: "No es gran cosa, pero no voy a ajar a golpes mi jergón: no tendría dónde dormir."; Burn: "No es gran cosa, pero no voy a quemar mi jergón: no tendría dónde dormir."; ], after [; Exit, GetOff: print "Me levanto del jergón. "; if (self has on) "Se estaba bien..."; else "La verdad es que acostarse en el jergón no descansa mucho más que estar de pie..."; ], has male supporter; Objeto_Escenario_Templo Enseres "enseres" Caverna with name_m 'utensilio', name_mp 'enseres' 'utensilios', descripcion_larga [; print "Son apenas un plato y un jarro que uso como loza. No son gran cosa como utensilios, pero me sirven para comer... cuando tengo algo: hoy ya no me queda nada y a menos que atienda a mis obligaciones eso no va a cambiar. "; if (self hasnt on) { if ((Jarro hasnt on) && (Plato hasnt on)) "Están desperdigados por la caverna, afeando el lugar."; if (Jarro hasnt on) "El plato está junto el jergón, pero el jarro está tirado en la caverna."; else "El jarro está junto el jergón, pero el plato está tirado en la caverna."; } else "Ahora que están apilados en orden junto al jergón el lugar se ve algo mejor."; ], descripcion_corta [; print "No son más que un plato y un jarro"; if (self hasnt on) { if ((Jarro hasnt on) && (Plato hasnt on)) ", desperdigados por la caverna."; if (Jarro hasnt on) ". El plato está junto el jergón, pero el jarro está tirado en la caverna."; else ". El jarro está junto el jergón, pero el plato está tirado en la caverna."; } else ", apilados en orden junto al jergón."; ], before [; Take, Search, Rub, Blow: if (player in Jergon) "Tendré que dejar de estar tendido para hacerlo..."; if (self hasnt on) { if ((Jarro hasnt on) && (Plato hasnt on)) "Debiera empezar por el jarro o el plato..."; else if (Jarro hasnt on) <>; else <>; } else "No hace falta, ya están razonablemente limpios."; Attack: "No son gran cosa, pero no voy a romper mis enseres: no tendría con qué alimentarme."; Burn: "No son gran cosa, pero no voy a quemar mis enseres: no tendría con qué alimentarme."; ], ! after [; ! Take, Search, Rub, Blow, Examine: ! if ((Jarro in Limbo) && (Plato in Limbo)) ! { ! move Jarro to Caverna; ! move Plato to Caverna; ! } ! ] has male pluralname; Objeto_Escenario_Templo Jarro "jarro" Caverna with name_m 'enser''jarro' 'jarron', name_f 'loza' 'jarra', descripcion_larga [; print "Es un jarro que uso como loza para beber... cuando tengo algo: hoy ya no me queda nada y a menos que atienda a mis obligaciones eso no va a cambiar. "; if (self hasnt on) "Está tirado en la caverna, afeando el lugar."; else "Ahora que está en orden junto al jergón el lugar se ve algo mejor."; ], descripcion_corta [; print "Es un jarro que uso como loza para beber,"; if (self hasnt on) " tirado en la caverna."; else " junto al jergón."; ], before [; Drink: "Ya no queda nada para beber en el jarro... y a menos que atienda a mis obligaciones eso no va a cambiar."; Take, Search, Rub, Blow: if (player in Jergon) "Tendré que dejar de estar tendido para hacerlo..."; if (self hasnt on) { give self on; print "Con cuidado, limpio el jarro de polvo y lo dejo con cuidado al lado del jergón. El lugar se ve un poco mejor ahora.^"; if (Plato has on) give Enseres on; if ((Jergon has on) && (Plato has on)) { ! +1 por ordenar jergón y utensilios en caverna Achieved(11); "^Con el jergón y los utensilios en orden, el lugar ya no parece un cuchitril."; } return; } else "No hace falta, ya está razonablemente limpio."; Attack: "No es gran cosa, pero no voy a romper mi jarro: no tendría con qué beber."; Burn: "No es gran cosa, pero no voy a quemar mi jarro: no tendría con qué beber."; ], has male; Objeto_Escenario_Templo Plato "plato" Caverna with name_m 'enser''plato' 'utensilio', name_f 'loza', descripcion_larga [; print "Es apenas un plato que uso como loza para comer... cuando tengo algo: hoy ya no me queda nada y a menos que atienda a mis obligaciones eso no va a cambiar. "; if (self hasnt on) "Está tirado en la caverna, afeando el lugar."; else "Ahora que está en orden junto al jergón el lugar se ve algo mejor."; ], descripcion_corta [; print "Es un plato que uso como loza para comer,"; if (self hasnt on) " tirado en la caverna."; else " junto al jergón."; ], before [; Take, Search, Rub, Blow: if (player in Jergon) "Tendré que dejar de estar tendido para hacerlo..."; if (self hasnt on) { give self on; print "Con cuidado, limpio el plato del polvo y algunos restos secos y lo dejo con cuidado al lado del jergón. El lugar se ve un poco mejor ahora.^"; if (Jarro has on) give Enseres on; if ((Jergon has on) && (Jarro has on)) { give Enseres on; ! +1 por ordenar jergón y utensilios en caverna Achieved(11); "^Con el jergón y los utensilios en orden, el lugar ya no parece un cuchitril."; } return; } else "No hace falta, ya está razonablemente limpio."; Attack: "No es gran cosa, pero no voy a romper mi plato: no tendría con qué comer."; Burn: "No es gran cosa, pero no voy a quemar mi plato: no tendría con qué comer."; ], has male; ! La cornisa Objeto_Localidad_Templo Objeto_Localidad_Cornisa "cornisa" with name_f 'cornisa', name_m 'exterior', found_in Cornisa Caverna Escala, has female; Localidad_El_Templo Cornisa "La cornisa" with descripcion_larga "La cornisa se asoma al horizonte infinito, con nada más que el cielo encima mío. A la distancia se ven las nubes y debajo se adivina un abismo insondable... que me impediría moverme del vértigo, si no estuviera ya acostumbrado.^ Al final de la cornisa una escala sube hacia el templo de los que Vienen de Arriba, en la cima.^ La entrada de la caverna esta detrás mío.", descripcion_corta "La cornisa se asoma al horizonte, con el cielo encima y debajo un abismo que se entrevé bajo las nubes. Puedo entrar a la caverna o bien subir por la escala hasta llegar al templo de los que Vienen de Arriba.", before [; Salidas: "Desde la cornisa puedo entrar a la caverna o subir por la escala."; ], out_to Escala, u_to Escala, in_to Caverna, d_to "Salvo que salte, no puedo seguir bajando desde la cornisa.", ; Objeto_Escenario_Templo Cornisa_Cima "cima" Cornisa with name'cima', description "La cima se adivina al final de la escala, pero está muy lejos para distinguir detalles desde aquí.", before [; if ( (action ~= ##Examine) && (action ~= ##GoIn) && (action ~= ##Enter) ) "Para eso tendría que subir por la escala."; GoIn, Enter: <>; ], has female; Objeto_Puzzle_Templo Guijarro "guijarro" Limbo with name_m 'guijarro', name_f 'piedrita' 'piedra', adjectives 'duro' 'dura' 'rugoso' 'rugosa' 'redondo' 'redonda' 'redondeado' 'redondeada', describe "En el suelo hay un guijarro.", descripcion_larga "Es un duro guijarro de la montaña. Es de forma redondeada y se ve más bien rugoso.", descripcion_corta "Es un guijarro de la montaña: duro, redondo y rugoso.", ! descripcion_corta ! "Es un guijarro redondeado y rugoso.", before [; Drop: if (location == Escala) "Mala idea. Si dejo caer el guijarro aquí podría tropezar con él más tarde... y es mal lugar para tropezar."; Touch: "El guijarro es duro, redondeado y rugoso."; Burn: "No es combustible, pero puede serme útil.^ Tengo tan pocas cosas a mano que he aprendido a usar lo que encuentro..."; ], has male; ! La escala Objeto_Localidad_Templo Objeto_Localidad_Escala "escala" with name 'escala', before [; Examine: if (location == Cornisa) "La escala sube por el costado de la montaña hasta llegar a la cima."; if (location == Cima) "La escala baja por el costado de la montaña hasta llegar a la cornisa."; else <>; Bajar: ! Para implementar Baja por Escala if (location == Cornisa) "Ya estoy en la cornisa, no puedo bajar más."; else <>; GoIn, Enter: ! Para implementar Sube por Escala if (verb_word == 'sube') { if (location == Cima) "Ya estoy en la cima, no puedo subir más."; else <>; } Climb: switch (location) { Cornisa: <>; Escala: <>; Cima: "Ya estoy en la cima, no puedo subir más."; } Take: switch (location) { Cornisa: <>; Escala: <>; Cima: <>; } ], found_in Escala Cornisa Cima, has female; Localidad_El_Templo Escala "La escala" with descripcion_larga "La escala es de escalones estrechos y empinados, hechos de roca tallada, lisos y suaves.^ Por mucho apuro que a veces sienta por cumplir con las demandas de los que Vienen de Arriba, sé muy bien que un descuido o un mal paso aquí podrían ser fatales, así que intento ir con calma.^ El ascenso hasta la cima es bastante largo, pero es la única manera de llegar hasta el templo de los que Vienen de Arriba.", descripcion_corta "La escala es de escalones estrechos y empinados. Un descuido aquí podría matarme, así que intento ir con calma. El ascenso es largo hasta la cima, donde está el templo de los que Vienen de Arriba.", ! descripcion_corta ! "La escala sube por el costado de la montaña hasta llegar a la cima.", before [; Salidas: "Estando en la escala puedo bajar hacia la cornisa o subir a la cima."; ], out_to Cornisa, u_to Cima, d_to Cornisa, ; Objeto_Escenario_Templo Escalones "escalones" Escala with name_mp 'escalones', name_m 'piso' 'suelo' 'escalon', name_f 'roca', adjectives 'dura' 'duro' 'durisima' 'durisimo' 'tallado' 'tallados' 'liso' 'lisos' 'lisa' 'lisas' 'suave' 'suaves', descripcion_larga "Los escalones son estrechos y empinados, hechos de roca tallada, lisos y suaves. No son resbalosos, pero sé muy bien que un descuido o un mal paso aquí podrían ser fatales, así que los piso con cuidado.", descripcion_corta "Los escalones son estrechos y empinados, hechos de roca tallada, lisos y suaves.", ! descripcion_corta ! "Los escalones son de roca.", before [; Smell: <>; Take, Touch: "La roca es lisa y suave."; ], has male pluralname; ! La cima Objeto_Localidad_Templo Objeto_Localidad_Cima "cima" with name_f 'cima', name_m 'exterior', found_in Cima Escala Templo, has female; Localidad_El_Templo Cima "La cima" with descripcion_larga "La vista desde la cima es magnífica: el cielo nos rodea por todas partes, pero incluso eso palidece frente al templo.^ El espacio de la cima está casi completamente ocupado por la estructura, al punto de que rodear el templo es imposible de conseguir sin despeñarse en el intento. En todo caso, siempre me ha parecido más grande por dentro que por fuera: uno más de los misterios de los que Vienen de Arriba.^ Aparte de la escala que permite regresar a la cornisa, la única alternativa disponible es entrar al templo de los que Vienen de Arriba.", descripcion_corta "La cima de la montaña sirve para sólo para sostener el templo: no hay cómo rodearlo sin despeñarse. La vista es magnífica: el cielo nos rodea por todas partes. Salvo la escala para volver a la cornisa, la única vía posible es entrar al templo de los que Vienen de Arriba.", ! descripcion_corta ! "En la cima de la montaña, ocupando casi todo el espacio, está el templo de ! los que Vienen de Arriba. Si no entro, sólo es posible bajar por la escala.", before [; Salidas: "Desde la cima puedo bajar por la escala o entrar al templo de los que Vienen de Arriba."; ], out_to Escala, d_to Escala, in_to Templo, u_to "No puedo seguir subiendo desde la cima.", ; ! El templo Objeto_Localidad_Templo Objeto_Localidad_El_Templo "templo" with name 'templo' 'interior', before [; Examine: if (location == Cima) "El templo ocupa toda la cima de la montaña: no hay cómo trepar sus paredes sin despeñarse. Siempre me pareció más grande por dentro que por fuera... uno más de los misterios de los que Vienen de Arriba."; else <>; Close: "Nunca he encontrado el templo cerrado; ni siquiera sé si puede cerrarse.^ A lo mejor los que Vienen de Arriba no tenían eso contemplado cuando lo construyeron.^ Quién sabe..."; ], found_in Templo Cima, has male openable open; Objeto_Escenario_Templo Templo_Paredes "paredes" with name_m 'adoquin' 'muro', name_mp 'muros', name_f 'roca' 'losa' 'pared', name_fp 'paredes' 'losas', adjectives 'dura' 'duro' 'duras' 'duros' 'tallado' 'tallados' 'tallada' 'talladas' 'liso' 'lisos' 'lisa' 'lisas' 'suave' 'suaves', descripcion_larga "Las paredes del templo están hechas con losas de roca tallada, lisa y suave.", descripcion_corta "Las paredes son de losas de roca.", before [; Climb: if (location == Cima) <>; else "Tengo trabajo que hacer. No puedo ponerme a gastar energía en eso..."; Take, Attack, Cut, Push, Pull: print "Salvo los que Vienen de Arriba, no hay quien mueva estas paredes. Además, tengo trabajo que hacer "; if (location == Cima) print " en el templo"; else print " aquí"; ". No puedo ponerme a gastar energía en eso..."; Touch: "Las losas son duras, lisas y suaves."; Smell: if (location == Cima) <>; else <>; Listen: <>; ], found_in Templo Cima, has female pluralname; Localidad_El_Templo Templo "El templo" with descripcion_larga [; print "Estoy dentro del templo de los que Vienen de Arriba.^ El techo está construido con losas de roca tallada y lisa, mientras que el piso y las paredes del templo están hechos con adoquines del mismo material.^ No importa cuántas veces venga aquí, siempre tengo la sensación de que no soy bien recibido y que mi presencia se tolera el tiempo justo que hace falta para cumplir con mis obligaciones.^"; if (Antorcha has on) print "La luz de la antorcha en la pared cae sobre el monolito situado en el centro del templo, iluminando débilmente el lugar."; else print "La luz del exterior escasamente permite ver algo más que el monolito situado en el centro del templo y la antorcha engarzada en la pared a un costado."; "^Puedo salir a la cima."; ], descripcion_corta [; print "Estoy dentro del templo de los que Vienen de Arriba. "; if (Antorcha has on) print "La luz de la antorcha en la pared cae sobre el monolito situado en el centro del templo, iluminando débilmente el lugar."; else print "La luz del exterior escasamente permite ver algo más que el monolito situado en el centro del templo y la antorcha engarzada en la pared a un costado."; " La única salida es al exterior."; ], ! descripcion_corta [; ! print "Estoy dentro del templo de los que Vienen de Arriba. "; ! if (Antorcha has on) ! "La luz de la antorcha ilumina débilmente el lugar, con el monolito ! situado en el centro de todo."; ! else ! "En la penumbra se ve el monolito con la antorcha al lado."; ! ], before [; Exit: if (Tunica hasnt worn) "Hace demasiado frío para arriesgarme a salir desnudo."; if (Aceite in player) "Es imposible moverme con el jarrón en las manos: pesa demasiado."; Salidas: "Desde el templo sólo puedo salir a la cima."; ], out_to Cima, ; Objeto_Escenario_Templo Templo_Piso "piso" Templo with name_m 'piso' 'suelo' 'adoquin', name_mp 'adoquines', name_f 'roca', adjectives 'dura' 'duro' 'duros' 'durisima' 'durisimo' 'tallado' 'tallados' 'liso' 'lisos' 'lisa' 'lisas' 'suave' 'suaves', descripcion_larga "El piso del templo está hecho con adoquines de roca tallada, lisa y suave.", descripcion_corta "El piso del templo es de adoquines de roca.", before [; Enter, Acostar: "Tengo trabajo que hacer aquí. No puedo ponerme a descansar ahora..."; Take, Touch: "Los adoquines son duros, lisos y suaves."; Smell: "El olor del suelo y de las paredes es agradable, cosa que supongo agrada a los que Vienen de Arriba: ciertamente no es en mi beneficio..."; ], has male; Objeto_Escenario_Templo Templo_Techo "techo" Templo with name_m 'cielo' 'techo', name_f 'losa' 'roca', name_fp 'losas', adjectives 'tallado' 'tallados' 'liso' 'lisos' 'lisa' 'lisas', descripcion_larga "El techo del templo está hecho con losas de roca tallada y lisa.", descripcion_corta "El techo es de losas de roca.", before [; Enter, Acostar, Push, Pull: "Bastante tengo con mi trabajo para intentar algo que sólo los que Vienen de Arriba, cuando construyeron el templo, seguramente podían hacer..."; ], has male; Objeto_Luz Templo_Luz "luz" Limbo with name_f 'flama' 'llama', name_fp 'flamas' 'llamas', name_m 'fuego', name_mp 'fuegos', description "La luz de la antorcha cae sobre el monolito, iluminando débilmente el templo.", ! descripcion_corta ! "La luz de la antorcha ilumina débilmente el templo." ; Objeto_Sombra Templo_Sombra "sombra" Templo with name 'luz', description "La luz del exterior parece negarse a entrar al templo y la penumbra envuelve todo en sombras. Apenas se distinguen las cosas y la oscuridad es casi total.", ! descripcion_corta ! "La penumbra envuelve todo en sombras." ; Objeto_Aire Templo_Aire "aire" Templo with name 'aroma' 'olor', description "El aire en el templo es muy frío.", before [; Listen: "Aquí solo se escucha el ruido de mis pasos."; Smell: "El olor del aire del templo es agradable, cosa que supongo agrada a los que Vienen de Arriba: ciertamente no es en mi beneficio..."; ] ; Objeto_Temperatura Templo_Temperatura "temperatura" Templo with description "La temperatura en el templo es mucho más fría que en el exterior." ; Objeto_Escenario_Templo Antorcha "antorcha" Templo with name_f 'antorcha' 'tea', name_m 'hueco', ajectives 'engarzada' 'incrustada' 'pegada' 'adherida' 'metal' 'metalica', descripcion_larga [; print "La antorcha de metal está aferrada a la pared, justo al lado del monolito. "; if (Aceite hasnt on) "El hueco para el aceite está vacío."; else if (self hasnt on) "La antorcha ya tiene aceite en su hueco: solo falta encenderla."; else "Está encendida y dando buena luz hacia el monolito."; ], descripcion_corta [; print "La antorcha de la pared está junto al monolito"; if (Aceite hasnt on) ", pero en su hueco le falta aceite."; else if (self hasnt on) " y tiene aceite en su hueco: falta encenderla."; else ", encendida y iluminando el monolito."; ], before [; Take, Push, Pull: "La antorcha está firmemente aferrada a la pared: no consigo moverla..."; Receive: if (noun == Aceite) <>; else print_ret "La antorcha no sirve para meterle ", (the) noun, "."; Attack: if (second == Guijarro) { if (Aceite in player) "Tengo las manos ocupadas en sostener el jarrón."; else if (Aceite hasnt on) "Golpeando la antorcha con el guijarro hago saltar chispas, pero no consigo encender la antorcha."; else <>; } else "Golpeo la antorcha, pero aparte hacerme daño no consigo gran cosa."; Blow, SwitchOff: if (self hasnt on) "No está encendida, mal puedo apagarla..."; else "Debo dejar que arda hasta que se apague sola."; SwitchOn, Burn: if (self has on) "No hace falta: la antorcha ya está encendida."; if (Aceite in player) "Tengo las manos ocupadas en sostener el jarrón."; else if (Aceite hasnt on) "Sin aceite nunca conseguiré que arda."; else if (second == nothing or player) "No puedo encender la antorcha con las puras manos..."; else if (second == Tunica) "Por más que froto, no logro que arda..."; else if (self hasnt on) { give self on; move Templo_Sombra to Limbo; move Templo_Luz to Templo; "Golpeando la antorcha con el guijarro hago saltar chispas y enciendo la antorcha, que empieza a derramar su luz sobre el monolito."; } Smell: if (Aceite has on) "Como el aceite que contiene, huele muy bien."; ], after [; Examine: if (Aceite in Limbo) { move Aceite to Templo; "En el suelo, oculto en las sombras, está el jarrón de aceite para quemar."; } ], has female container; Objeto_Puzzle_Templo Aceite "jarrón de aceite" Limbo with name_m 'jarro' 'jarron', name_f 'jarra' 'aceite', adjectives 'piedra' 'pesado' 'pesada' 'pesadisimo' 'pesadisima' 'lleno', describe "Junto a la antorcha está el jarrón de aceite.", descripcion_larga [; if (self in player) <>; else "El jarrón de aceite es de piedra más bien oscura. Está al pie de la antorcha, donde resulta útil para reponerlo. Está bien lleno, aunque nunca he visto cómo se repleta: obra de los que Vienen de Arriba, sin duda."; ], descripcion_corta [; if (self in player) <>; else "El jarrón de aceite está al pie de la antorcha. Se ve bien lleno."; ], before [; Attack: "Ya lo hice una vez. Bailé como loco en torno al desastre, salpicando aceite y moliendo los trozos a golpes. Cuando desperté al día siguiente el jarrón estaba intacto y en cambio a mí las manos me dolieron por varios días. No vale la pena..."; Pull, Push: "No es cuestión de andar desperdiciando el aceite..."; Empty: <>; EmptyT: if (self in Templo) { "Primero tendría que coger el jarrón. Se ve pesado."; } else if (second == d_obj or Templo_Piso) <>; else <>; Smell: print "Huele muy bien"; if (self in player) ". De cerca el olor es mareador."; "."; Search: if (self in player) "Pesa mucho. Ya lo reviso cuando esté en el suelo..."; Take: if (self in Templo) { move self to player; "Con mucha dificultad levanto el jarrón de a poco. Es pesadísimo..."; } Drop: if (self in player) { move self to Templo; "Con cuidado bajo y dejo el jarrón de vuelta en el suelo."; } Receive: "No sirve de nada poner aceite en ", (the) noun, "."; PutOn, Insert: if (self in Templo) { "Primero tendría que coger el jarrón. Se ve pesado."; } else { if (second ~= Antorcha) "No sirve de nada poner aceite en ", (the) second, "."; else if (self hasnt on) { give self on; "Con cuidado lleno el hueco de la antorcha con aceite."; } else if (Antorcha hasnt on) "La antorcha ya tiene aceite."; else "No es buena idea mientras la antorcha está encendida."; } SwitchOn, Burn: if (self hasnt on) "Primero hay que ponerla en la antorcha."; else <>; ], has male; Objeto_Escenario_Templo Monolito "monolito" Templo with name_m 'monolito', name_f 'superficie' 'mancha' 'suciedad' 'mugre', name_fp 'manchas', adjectives 'liso' 'lisa' 'sucio' 'sucia', descripcion_larga [; print "El monolito está en medio del templo, con la antorcha a un costado. "; if (Antorcha hasnt on) "En la penumbra apenas se distingue algún detalle de su superficie, por lo demás bien lisa... y sucia."; else "A la luz de la antorcha veo que el monolito está muy sucio: esto no ha de gustarles a los que Vienen de Arriba.... así que no puede ser bueno para mi que siga así."; ], descripcion_corta [; print "El monolito está en medio del templo, con la antorcha "; if (Antorcha has on) print "encendida "; "a un costado."; ], before [; Burn: "Una vez lo intenté, pero el fuego no lograba encender del todo, dando mucho humo pero sin siquiera calentarlo.^ Tuve que trabajar mucho para limpiarlo después, así que ya no lo intento."; Attack, Take, Push, Pull: "El monolito está fijado firmemente al suelo: no consigo moverlo... por suerte: debe estar en su sitio junto a la antorcha y si por moverlo lo arruino, el castigo de los que Vienen de Arriba será peor que cualquier cosa que yo pueda imaginar."; Touch: "La superficie del monolito es muy lisa... salvo donde está sucia, por cierto."; Rub: if (Aceite in player) "Tengo las manos ocupadas en sostener el jarrón."; else if (second == nothing) "Nada voy a lograr limpiándolo con las puras manos..."; else if (second ~= Tunica) print_ret (The) second, " no sirve para limpiar el monolito."; else if (second == Tunica) { if (Antorcha hasnt on) { if (self hasnt on) { give self on; "Usando mi túnica como vil trapo, intento limpiar el monolito pero, con tan poca luz, no consigo ver bien lo que estoy haciendo. Hay manchas donde estoy seguro de haber limpiado antes..."; } else { "Sigo frotando y limpiando sin mayor resultado..."; } } ! +1 por limpiar el monolito del templo Achieved(10); CortoLimpiaMonolito.proyeccion(1); ! Sin borrar pantalla PrintPausa("^^^^",0); Erase_Window(); EvaluaFinal(); rtrue; } Tell, Listen: "A veces creo que me habla en susurros, como si trajera mensajes de los que Vienen de Arriba...^^ ...o puede ser que me esté volviendo loco, ya no estoy seguro."; ], has male;! animate; ! ! SECCION RUTINAS DE INICIO Y FIN ! [ Initialise tecla; ! Inicializamos SpanishLM para usar primera persona presente SetGrammaticalInflection(FIRST_PERSON_PRESENT); box "~Encierro~" "La mente no siempre puede confinarse" "Realizado por: Sebastián Armas (Incanus)" "(C) Año 2021 " "Release 01.01.01" "I para NO VER la Intro," "A para ver textos animados," "R para Recuperar una Partida" "Otra para Empezar"; ! Activamos esta variable para que la descripción de los lugares ! se repita siempre, incluso si el jugador ya ha estado allí ! Cada localidad alterna entre descripción larga o breve lookmode = 2; ! Texto no animado por defecto velocidad_texto = 0; ! Inicializar jugador ChangePlayer(Jugador_Apto); ! Inicialización alternativa para Testing ! ChangePlayer(Jugador_Templo); ! mundos_visitados = 4; @read_char 1 -> tecla; if ( (tecla == 'i') || (tecla == 'I') ) { Erase_Window(); } else if ( (tecla == 'r') || (tecla == 'R') ) <>; else { if ( (tecla == 'a') || (tecla == 'A') ) velocidad_texto = vel_texto_animado; CortoIntro1.proyeccion(); PrintPausa("^^",0); CortoIntro2.proyeccion(); PrintPausa("^^",0); CortoIntro3.proyeccion(); PrintPausa("^^^^",0); Erase_Window(); } ]; ! EvaluaFinal [EvaluaFinal; mundos_visitados = mundos_visitados + 1; if (mundos_visitados == 5) { CortoFinal1.proyeccion(); PrintPausa("^^",0); CortoFinal2.proyeccion(); PrintPausa("^^",0); CortoFinal3.proyeccion(); PrintPausa("^^",0); deadflag = 2; } else { switch (mundos_visitados) { 1: CortoRegresoApartamento1.proyeccion(); 2: CortoRegresoApartamento2.proyeccion(); 3: CortoRegresoApartamento3.proyeccion(); 4: CortoRegresoApartamento4.proyeccion(); } ! PrintPausa("^^",0); ChangePlayer(Jugador_Apto); <>; } ]; ! ! SECCION LINEAS DE GRAMATICA ! ! Verbos para comandos de menú Ayuda y Pistas ! Ayuda Verb meta 'ayuda' 'ayudarme' 'ayudame' * -> Ayuda; [AyudaSub ; ZIPI_RunMenuT(ZIPI_Menu1); Erase_Window(); ! @erase_window $ffff; PlayerTo(location); ]; ! Pistas Verb 'pistas' * -> pistas; [PistasSub; ZIPI_RunMenuT(ZIPI_Menu3); ! ZIPI_RunMenuT(ZIPI_Menu9); ! Para probar curiosidades Erase_Window(); @erase_window $ffff; PlayerTo(location); ]; ! Definiciones para Texto Animado Verb 'anima' * -> animar; [animarSub; if (velocidad_texto == 0) { velocidad_texto = vel_texto_animado; "Texto animado ACTIVADO."; } else { velocidad_texto = 0; "Texto animado DESACTIVADO."; } ]; ! Acciones generales ! Salir a Localidad, mediante Objeto_Localidad Extend 'sal' * 'al' noun -> GoIn * 'a//' noun -> GoIn; ! Volver a Localidad, mediante Objeto_Localidad Extend 'vuelve' * 'al' noun -> GoIn * 'a//' noun -> GoIn; ! Sentarse, para el verbo sin objeto destino Extend 'sienta' first * -> SientaSolo; [ SientaSoloSub; "No veo nada para sentarme."; ]; ! Verb 'acostar' ! * -> Acostar ! * 'en' noun -> Acostar ! * 'encima' noun -> Acostar ! * 'sobre' noun -> Acostar; ! VerboIrregular "acostar" with imperativo 'acuesta'; ! Acostarse, versión simple, sucia y rápida Verb 'acuesta' 'acuestate' 'acuestame' 'acosta' 'acostarme' 'acostarse' 'tiende' 'tiendete' 'tiendeme' 'tender' 'tenderme' 'tenderse' 'recuesta' 'recuestate' 'recuestame' 'recosta' 'recostarme' 'recostarse' 'tumba' 'tumbate' 'tumbame' 'tumbarme' 'tumbarse' * -> Acostar * 'en' noun -> Acostar * 'encima' noun -> Acostar * 'sobre' noun -> Acostar; [ AcostarSub; if (noun == nothing) "No veo nada en que acostarme."; else print_ret "No puedo acostarme en ", (the) noun, "."; ]; Verb 'dormirme' 'dormirte' 'duermeme' 'duermete' * -> Sleep; ! Cavar Extend 'cava' first * -> Dig * 'en' noun -> Dig * noun -> Dig * 'con' noun -> Dig * noun 'con' noun -> Dig * 'en' noun 'con' noun -> Dig; ! Recordad Verb 'recuerda' 'recuerdate' 'recordar' 'acordar' 'acuerdate' * -> Recordar; [ RecordarSub; "Ya no me acuerdo qué tenía que recordar..."; ]; ! * Mundo El Apartamento * ! Definiciones para lectura de notas Extend 'lee' first * noun -> Consult; ! * Mundo La Playa * ! Nadar, mediante Objeto_Localidad o un escenario Extend 'nada' * 'en' noun -> Swim * noun -> Swim; ! Bucear, mediante Objeto_Localidad o un escenario Verb 'bucea' * -> Swim * noun -> Swim * 'en' noun -> Swim; ! * Mundo Las Ruinas * ! Levantar Verb 'levanta' * noun -> Take * noun 'con' noun -> Take; ! Desenterrar Verb 'desenterrar' 'desentierra' * -> Dig * noun -> Desenterrar * 'con' noun -> Dig * 'en' noun -> Dig * noun 'con' noun -> Dig * 'en' noun 'con' noun -> Dig; [ DesenterrarSub; if (noun == Barra) { if ( (Barra notin player) && (Barra hasnt on)) <>; else "No hace falta desenterrar la barra."; } else if (noun == Planta) { if (Planta notin player) <>; else "No hace falta desenterrar la planta."; } else <>; ]; Extend 'empuja' * noun 'con' noun -> Push; Extend 'coge' * noun 'con' noun -> Take; Extend 'llena' * noun 'con' noun -> Fill; Verb 'planta' * noun -> Plantar * noun 'en' noun -> Plantar; [ PlantarSub; if (noun == Planta) { if (Planta in Tarro) <>; else "No hace falta, la planta ya está plantada en el suelo."; } else if (noun == Tarro) { if (Planta in Tarro) <>; else print_ret (The) noun, " no se puede plantar."; } else print_ret (The) noun, " no se puede plantar."; ]; ! * Mundo El Hielo * ! Sellar Verb 'sella' * noun -> Close * noun 'con' noun -> Close; ! Reparar Verb 'repara' 'arregla' * noun -> Reparar * noun 'con' noun -> Reparar; [ RepararSub; print (The) noun, " no necesita"; if (noun has pluralname) print "n"; " reparaciones."; ]; ! Romper con algo Extend 'rompe' * noun 'con' noun -> Attack; ! Pescar Verb 'pesca' * -> Pescar * 'con' noun -> Pescar * noun -> Pescar * 'en' noun -> Pescar * 'en' noun 'con' noun -> Pescar * noun 'con' noun -> Pescar; [ PescarSub; "No creo que pueda ponerme a pescar aquí."; ]; ! Cazar Verb 'caza' * -> Cazar * 'con' noun -> Cazar * noun -> Cazar * 'en' noun -> Cazar * 'en' noun 'con' noun -> Cazar * noun 'con' noun -> Cazar; [ CazarSub; "No creo que pueda ponerme a pescar aquí."; ]; ! * Mundo El Templo * ! Doblar y Estirar Verb 'dobla' 'estira' * noun -> Doblar; [ DoblarSub; "No veo nada para doblar."; ]; ! Limpiar Extend 'limpia' * noun 'con' noun -> Rub; Verb 'ordena' * noun -> Rub * noun 'con' noun -> Rub; ! Revisar Verb 'revisa' * noun -> Examine; ! Encender Extend 'enciende' * noun 'con' noun -> SwitchOn; ! Quemar Extend 'quema' * noun 'con' noun -> Burn; ! Saltar Extend 'salta' * 'en' noun -> JumpOver * 'al' noun -> JumpOver; ! ! SECCION CORTOMETRAJES ! ! * Mundo El Apartamento * ! Cortos para la Introducción CortoMetraje CortoIntro1 with description "Me despierto " "y con algo de desgana " "me levanto de la cama.^^" "Sin demasiado entusiasmo, " "entro al baño " "y me doy una ducha no muy larga. " "Cuando corto el agua, " "los ventiladores de los costados y el techo " "me secan en segundos.^^" "Vuelvo al dormitorio " "y me visto...^^" "...y así, " "apenas después de un rato de despertarme, " "ya estoy desocupado " "para el primer día " "del fin de semana." ; CortoMetraje CortoIntro2 with description "No sé realmente qué haré el resto del día: " "estoy harto de ver películas " "o noticias " "o series de televisión; " "chatear con los amigos " "ya no me entusiasma demasiado, " "para no hablar de las videollamadas " "a la familia.^^" "Como los viernes trabajo media jornada, " "ayer hice el aseo del apartamento " "y he enviado ropa a la lavandería.^^" "Incluso " "tuve mi sesión semanal con mi terapeuta, pero " "honestamente... " "no creo haber sacado nada en limpio: " "estamos probando algunas nuevas formas " "de manejar mi ansiedad por esto del encierro. " "Me ha dicho que no me preocupe demasiado " "si de pronto me siento algo desorientado, " "ando más distraído " "o acaso tengo ensoñaciones, " "que es parte del tratamiento " "y etc. " "etc. " "etc.^^" "Sé que tiene buenas intenciones " "e incluso veo un interés algo más que profesional " "en sus preguntas en la sesión...^^" "...pero es que ya empiezo a estar harto." ; CortoMetraje CortoIntro3 with description "Harto del trabajo remoto.^" "Harto del encierro.^" "Harto de las noticias sobre la pandemia.^^" "Harto del aislamiento y la soledad.^^" "Harto de mí mismo, " "de no saber mejor " "cómo sobrellevar esto " "~con algo de imaginación~, " "como si pasarme películas en la cabeza " "sirviera de algo " "para alivianar esta sensación " "de vivir preso.^^" "Pero bueno, " "es un nuevo día.^^" "Quién sabe, " "puede que justamente hoy " "descubra el secreto " "para escapar del encierro.^^" "Aunque sin salir del apartamento, " "claro está..." ; ! Cortos para la Nota CortoMetraje CortoLeeNota with description "La nota dice así:^^" "~Recuerda " "que la hipnoterapia " "que estamos llevando " "es sólamente paliativa " "para tus problemas " "de ajuste al encierro.^^" "Si tuvieras " "ensoñaciones, " "desconcentración " "o incluso sueños lúcidos " "no debes preocuparte: " "intenta recordar lo que puedas " "y lo comentaremos " "en nuestra siguiente sesión.~^^" "(suspiro)^^" "Lo tendré presente" "." "." ".^" ; ! * Mundo La Playa * CortoMetraje CortoAbreArmario with description "Abro el armario " "y siento como si hubiera vuelto " "a ese recuerdo " "de unas vacaciones: " "un día hermoso, " "casi perfecto.^^" "Un día a orillas del mar" "." "." "." ; CortoMetraje CortoInicioPlaya with description "Han sido días muy duros.^^" "Mucho trabajo y poco descanso: " "los amigos y la familia lejos... " "y yo mismo " "algo apartado de todo: " "el proyecto era importante " "y había que terminar a tiempo " "a como fuera lugar. " "Hubo que sacrificar mucho, " "pero lo logramos " "y ahora tengo mi recompensa: " "un mes de vacaciones.^^" "Algunos colegas " "prefirieron irse de gira " "por varias ciudades: " "mucha fiesta " "y turismo a destajo.^^" "¿Yo?^^" "Yo elegí esta playa perdida, " "lejos de todo y " "(supuestamente) " "de todos.^^" "Ayer instalé mi camping al interior " "y hoy voy a acercarme a la costa.^^" "El día está lleno de promesas...^^" ; CortoMetraje CortoNadarEnElMar with description "Me adentro en el mar, " "y empiezo a nadar.^^" "El suave vaivén de las olas " "me arrulla " "y el agua me refresca.^^" "Qué día más hermoso" "." "." "." ; CortoMetraje CortoRecogerConchitas with description "He reunido " "una bonita colección de conchitas " "y las contemplo embelesado.^^" "Miro al cielo, " "tan limpio " "y contemplo el mar, " "tan sereno.^^" "Qué día más hermoso" "." "." "." ; ! * Mundo el Árbol * CortoMetraje CortoAbreFrascoMiel with description "Acerco el frasco a mi rostro " "y el aroma de la miel " "inunda mis sentidos... " "y ya es suficiente para mí: " "cierro el frasco " "y mientras lo guardo en la alacena, " "el perfume de la miel " "despierta mis recuerdos.^^" "Casi puedo sentir " "el calor del sol filtrándose " "entre las ramas de un árbol...^" "el zumbido de las abejas...^" "y el olor tibio del panal, " "casi " "al " "alcance " "de " "mi " "mano" "." ; CortoMetraje CortoCavarPisoHumedoArbol with description "Con cuidado, " "voy cavando " "desde el borde del claro " "hacia el árbol " "hasta que el agua " "lentamente " "termina por llegar " "a las raices.^" "El árbol está ahora " "a salvo " "de la sed " "y la sequedad." ; CortoMetraje CortoInicioArbol with description "No existe el ayer ni tampoco el mañana.^^" "Solo estoy gozando del ahora.^^" "Estoy vivo y la naturaleza me arrulla.^^" "Voy a disfrutarla...^^" ; CortoMetraje CortoAbrazarArbol with description "Con ternura " "pongo mis brazos " "en torno al árbol " "e intento hacerle sentir " "mi agradecimiento " "por su sombra " "y la vida que cobija.^^" "Al cabo de un momento, " "con los brazos ya algo cansados " "y el corazón bien lleno, " "me alejo del tronco " "y suspiro, " "satisfecho." ; CortoMetraje CortoEmpujarTallosFlores with description "Con cuidado " "me apoyo en los tallos de las flores " "suavemente, " "empujándolos un poco. " "Al soltarlos, " "los tallos se balancean " "en un movimiento suave " "y sinuoso.^" "En breve " "el movimiento termina por abrir las flores, " "que extienden sus pétalos, " "soltando una tenue nube de polen " "que pronto se dispersa.^" "Al cabo de unos momentos, " "los insectos del panal " "llegan hasta las flores " "y pronto hay un continuo ir y venir " "desde las flores al árbol " "allá en el claro." ; ! * Mundo Las Ruinas * CortoMetraje CortoPonerBasuraEnDucto with description "Meto la basura en el ducto " "y la escucho caer " "varios pisos abajo " "hasta que, " "con un golpe sordo, " "da con el depósito del edificio.^" "No importa cuántas veces hago esto, " "cada vez que me deshago " "de unos desechos, " "no puedo evitar " "un cierto sentimiento " "de culpa" "." "." "." ; CortoMetraje CortoInicioRuinas with description "Lo hemos logrado.^^" "Hemos roto la barrera del tiempo " "y podremos escapar " "a un pasado remoto: " "cientos de millones de años " "antes de que existiera " "la primera especie inteligente, " "cuando la Tierra era joven.^^" "Un mundo pleno de recursos " "que sabremos cuidar " "sin dejar huella de nuestro paso " "y sin cambiar la historia futura.^^" "Pero antes del Gran Viaje, " "queremos aprender " "del pasado más reciente " "y entender por qué heredamos este mundo: " "un planeta agotado, " "en el que apenas sobrevivimos.^^" "He sido honrado como viajero temporal, " "para ayudar a construir " "un mapa del tiempo pasado " "y asegurar así nuestro futuro.^^" ; CortoMetraje CortoEnderezarEstatua with description "Usando la barra como palanca, " "levanto y empujo " "con cuidado la estatua " "hasta dejarla sobre el pedestal. " "Este cambio ha creado " "un marcador temporal " "que podremos usar " "para datar mejor el periodo." ; CortoMetraje CortoTrasplantar with description "Con cuidado, " "dejo la planta " "y la tierra en que creció " "en el suelo del erial. " "Este cambio ha creado " "un marcador temporal " "que podremos usar " "para datar mejor el periodo." ; CortoMetraje CortoFinRuinas with description "^^Espero que esto nos ayude " "para saber que llevó a los antiguos " "a destruirlo todo. " "Por más que viajamos al pasado " "posterior a la Catástrofe " "aun no logramos entender " "por qué agotaron sus recursos " "ni cómo eso los llevó " "a su guerra de devastación total.^^" "Queremos aprender de sus errores, " "antes de que nuestra tecnología " "nos haga repetirlos.^^" "Activo la secuencia de regreso del traje " "y me adormezco " "mientras regreso a mi tiempo." ; ! * Mundo El Hielo * CortoMetraje CortoAbreBotiquin with description "Abro el botiquín " "y de pronto " "el frío del baño se vuelve más intenso, " "como si una ráfaga de hielo " "hubiera surgido del interior del gabinete.^^" "Y me pongo a temblar" "." "." "." ; CortoMetraje CortoInicioHielo with description "Estoy helado y tengo hambre.^^" "No es distinto a como estuve ayer " "y creo que mañana " "tampoco será muy diferente.^^" "Sin embargo, " "yo me presenté como voluntario " "para explorar el territorio " "e identificar las rutas " "y guaridas de animales " "para las grandes batidas de caza en primavera: " "no hay otra manera " "para alguien tan joven " "que quiera ganarse el derecho " "a un lugar entre los cazadores...^^" "...y sólo los cazadores " "pueden formar familia, " "cosa que mi pareja y yo " "ansiamos hace ya varias estaciones.^^" "Aquí estoy, pues, " "enfrentando el frío " "y la ausencia.^^" "Ya ni siquiera necesito alejarme del iglú, " "pues tengo la tarea hecha hace media estación: " "quiero causar buena impresión " "a los otros cazadores " "y no dejar lugar para la duda o la controversia; " "me he ganado mi derecho a pulso " "y toda la tribu será testigo de ello.^^" "Sólo resta sobrevivir " "hasta el deshielo...^^" "...y soportar la espera " "en esta espantosa soledad.^^" ; CortoMetraje CortoPescaEnTundra with description "Con rapidez " "meto la lanza en el agua helada " "y con igual velocidad la saco " "con un pez ensartado en la punta. " "Es grueso y largo como mi brazo: " "me dará de comer por hoy... " "y mañana también, " "si lo raciono.^^" "Otro día más " "en que he logrado vencer al frío, " "al hambre " "y a la soledad atroz " "de este desierto helado.^^" "Suspiro " "y miro a la distancia, " "esperando ver llegar " "al resto de la tribu " "para poder volver a cazar, " "amar, " "vivir " "y morir " "entre los míos" "." "." "." ; ! * Mundo El Templo * CortoMetraje CortoAbreRopero with description "Abro el ropero " "y siento un profundo cansancio: " "como si estuviera volviendo a hacer " "algo que ya he hecho " "una " "y " "otra " "vez.^^" "Casi como si estuviera cumpliendo " "con una larga sentencia " "en una prisión, " "de la que nadie " "vendrá a rescatarme" "." "." "." ; CortoMetraje CortoInicioTemplo with description "Despierto mirando el techo de la caverna.^^" "Con un quejido, " "intento levantarme, " "pero no lo consigo: " "sencillamente, " "no tengo ánimo para hacerlo.^^" "Ya no recuerdo lo que fui " "y apenas sé lo que soy: " "un prisionero, " "pagando por un crimen " "del que ya no tengo memoria alguna.^^" "¿Mi sentencia?^^" "Servidumbre " "como uno de tantos guardianes de las cumbres, " "manteniendo los templos " "que agradan a los que Vienen de Arriba.^^" "Intento quedarme dormido, " "pero es inútil, " "pues sé que si no atiendo a mis obligaciones " "no podré comer hoy: " "estando en la cima de la montaña, " "sólo los que Vienen de Arriba " "pueden traer provisiones... " "y las mías se han agotado ayer.^^" "Es bien simple en verdad: " "o cuido del templo en la cima " "o moriré lentamente de hambre.^^" "Aunque ni siquiera la inanición " "me libraría de mi condena...^^" ; CortoMetraje CortoLimpiaMonolito with description "A la luz de la antorcha " "y usando mi túnica como un mero trapo " "voy limpiando el monolito " "una mancha por vez.^^" "Al cabo de un rato largo " "la superficie reluce como espejo " "y el monolito " "comienza a reflejar la luz de la antorcha " "iluminando todo el templo " "como si alguien hubiera " "encendido el sol en su interior.^^" "Me pongo mi túnica " "y suspiro, " "cansado.^^" "Por hoy " "he cumplido con mi labor " "como guardián de una las cumbres " "y puedo volver a descansar.^^" "Pronto habrá que limpiar el monolito de nuevo.^^" "Así habrá de ser, " "mientras así lo quieran los que Vienen de Arriba, " "una y otra vez.^^" "Algún día, " "los que Vienen de Arriba estarán, " "por fin, " "satisfechos con mi servicio " "y cuando me vaya a dormir " "ya no volveré a despertar" "." "." "." ; ! Cortos para regresar al apartamento CortoMetraje CortoRegresoApartamento1 with description "Con una sacudida y una fuerte inhalación, " "vuelvo en mí, " "con la respiración alterada.^^" "¿¡Qué carajos fue eso!?^" "¿Un sueño, " "un recuerdo subconsciente... " "una fantasía de mi imaginación?^" "La nota decía " "~ensoñaciones, " "desconcentración " "o incluso sueños lúcidos~, " "pero esto fue algo más profundo que eso.^^" "Me apoyo un momento en la pared " "e intento contar hasta 10, " "mientras paso lista:^" "No me ha pasado nada malo.^" "No he caminado como sonámbulo, " "pues sigo en el mismo lugar.^" "No me hecho daño y " "nadie me ha visto hacer el loco mientras... " "lo que sea... " "estaba pasando.^^" "Me separo de la pared " "e intento relajarme " "hasta que caigo en cuenta " "de un pequeño detalle: " "por unos momentos, " "estuve fuera del apartamento.^^" "Vaya, vaya, vaya...^^" "Puede que este tratamiento " "no sea tan malo, " "después de todo...^^" ; CortoMetraje CortoRegresoApartamento2 with description "Parpadeo a la luz del cuarto " "y me restriego las manos en la cara.^" "Eso fue... " "interesante.^^" "No es que pueda escoger lo que va pasar " "cuando tengo uno de estos... " "~episodios~, " "pero me alegra no tener gente cerca " "a quienes obligarme a dar explicaciones.^" "De hecho, " "no estoy del todo seguro " "de si quiero o no " "contarle algo de esto a mi terapeuta. " "Si él no saca algunas conclusiones de esto, " "yo mismo estoy empezando a formarme alguna idea " "de hasta que punto el encierro me está afectando.^^" "Aunque, " "mira por dónde, " "a lo mejor el terapeuta sí tiene " "alguna impresión al respecto " "y por eso este tratamiento.^^" "Vaya uno a saber...^^" ; CortoMetraje CortoRegresoApartamento3 with description "Con un ligero mareo, " "me encuentro ~de regreso~ " "una vez más.^^" "Decididamente, " "tengo mucha más imaginación " "de lo que creía: " "no soy exactamente una persona muy creativa, " "pero no me conocía " "esta capacidad para inventarme... " "esto... " "historias.^^" "Casi me siento tentado " "a escribir algo de esto " "y publicarlo como ficción literaria... " "aunque a lo mejor " "no es tan buena idea.^^" "Una cosa es que a uno le guste la comida " "y otra muy distinta es " "comenzar a sospechar " "qué pasa por la cabeza del cocinero.^^" "Ya veremos. " "Algo me dice " "que aun no lo he ~visto~ todo...^^" ; CortoMetraje CortoRegresoApartamento4 with description "~Despierto~ " "y me quedo quieto " "por unos instantes.^^" "Ya no me siento cómodo con todo esto, " "la verdad. " "Las primeras veces era hasta divertido, " "pero ya no sé " "si quiero seguir con el tratamiento. " "~Salir~ del apartamento no es malo " "pero, " "honestamente, " "ya estoy empezando a tenerle respeto " "y hasta algo de temor " "a mi imaginación " "y de lo que es capaz de hacer " "cuando funciona a su propio aire.^^" "Estas divagaciones de mi mente " "están comenzando a antojárseme " "demasiado alejadas de lo cotidiano... " "que puede que sea el objetivo del tratamiento, " "no lo discuto... " "pero creo " "que ya estoy empezando a tener suficiente.^^" "Puede " "que hasta sea " "demasiado " "para mí...^^" ; ! Cortos para el Final CortoMetraje CortoFinal1 with description "Sacudo la cabeza, tratando de despabilarme.^^" "El terapeuta puede creer lo que él quiera, " "pero la hipnosis no está funcionando para mí. " "'Sueños lúcidos' o lo que sean, " "lo cierto es que estoy empezando " "a disfrutarlos y temerlos a la vez: " "si vienen de alguna parte de mi mente, " "no es de un lugar que esté en paz.^^" "No me siento, de hecho, más descansado " "ni estoy más tranquilo que antes: " "menos los fines de semana, " "cuando tengo demasiado tiempo libre " "y mi mente comienza a divagar.^^" "Sigo sintiendo ansias de libertad " "y una inquietud profunda: " "unas ganas casi irrefrenables de salir corriendo " "y dejar atrás este apartamento, " "cuyas paredes ya empiezan a desesperarme.^^" "De nada sirven las reuniones virtuales " "o los juegos inmersivos, " "nada de eso parece funcionar del todo; " "no hay tratamiento ni lo habrá " "que me quite el deseo de salir a caminar por la calle, " "a correr en el parque, " "incluso para perderme en un mar de gentes " "que ya no existe en parte ninguna, " "pues la mayoría, como yo, " "permanecemos confinados para no morir.^^" ; CortoMetraje CortoFinal2 with description "Camino al balcón y contemplo la ciudad, " "un paisaje de quietud casi fantasmal.^^" "Apenas se escucha el ruido lejano de alguna ambulancia " "y en la calle sólo se ven, de cuando en cuando, " "los repartidores en sus bicicletas " "con su deambular casi mudo.^^" "La vida media de esos tipos y tipas corajudos " "es más bien baja, pero al menos " "pueden salir de casa por unas horas " "mientras mantienen funcionando apenas " "el comercio y la salud. " "Ya me gustaría ser uno de ellos, " "pero cuando envié una solicitud " "fue rechazada en cuestión de minutos; " "sea lo que sea " "que hace falta para esos trabajos, " "claramente yo no lo tengo.^^" "Con un suspiro, vuelvo la mirada a la sala, " "tan pequeña en espacio y tan inmensa en soledad.^^" "La próxima semana postularé a un trabajo de fábrica o de granja: " "por alguna razón, " "la idea de cavar zanjas el día entero " "me parece de pronto una ocupación atractiva; " "vamos, " "que haría cualquier cosa que me saque de aquí, " "aunque sea por unas horas.^^" ; CortoMetraje CortoFinal3 with description "Al principio dijeron que el confinamiento sería temporal, " "que las vacunas acabarían por aplacar el virus " "y en cosa de meses volveríamos a la normalidad.^^" "Vamos ya para tres años " "y nadie sabe para cuántos más: " "la enfermedad ha ido mutando continuamente " "y hasta la población naturalmente inmune " "no está a salvo; hay rumores de...^^" "Pero de nada sirve creer en cuentos " "o acaso soñar. " "Sólo queda persistir " "y buscar nuevas maneras de desconfinar la mente.^^" "Aunque " "la " "mente " "se " "resista...^^" ;