!% -~D !% -~S !% +include_path=..\lib\base,..\lib\contrib,..\games\PanAjo !Poner "% -~S" (sin las ") permite compilar para generar archivo PanAjo.z5 (máquina Z versión 5) !Poner "!% -~D" al principio del archivo (sin las ") permite compilar en modo Release (No Debug) ! "Pan de Ajo" ! ! REALIZADO POR: Sebastián Armas ! ! Copyright (C) 2009 ! CONSTANTES Constant Historia "~Pan de Ajo~^ Un Relato de Humor ~Doméstico~."; Constant Titular "^Realizado por: Sebastián Armas (Incanus)^ (C) Año 2009^"; Serial "010102"; Release 1; ! Versión 01.01.02 ! ! Observaciones a la v01.01.01 ! > Se corrige descripción de heladera, para que no muestre siempre la nota ! > Se simplifica puzzles de afilar estacas con formon, cortar pan/ajo con cuchillo y ! abrir puerta con bate: si se tienen los objetos necesarios a mano, se resuelven sin usar los ! objetos explicitamente. ! > Se corrige inicio de juego para que el jugador no vea la intro sólo en forma deliberada. ! No Queremos usar el comando 'Salidas' ! Constant ADMITIR_COMANDO_SALIDAS; ! Constant DEBUG; ! No queremos usar los comandos 'Lugares' y 'Objetos' Constant NO_LUGARES; ! Puntuación con sistema de tareas Constant HAY_TAREAS; ! Constant PUNTUACION_MAX 9; Constant NUMERO_TAREAS = 9; ! El array que contiene los puntos por cada tarea realizada... ! 0 1 2 3 4 5 6 7 8 (en total son 9 tareas) Array puntuacion_tareas -> 1 1 1 1 1 1 1 1 1; ! (de 1 punto cada una) ! Tenemos Curiosidades Constant HAY_CURIOSIDADES; ! Definiciones para curiosidades [curiosidades; ZIPI_RunMenuT(ZIPI_Menu11); ]; !-------------- Include -------------- Include "zipi.inf"; ! Módulo para Menues Include "EParser"; ! Módulo para InformATE! ! Codigo para Puntuacion por Tareas ! Imprimir el nombre de cada tarea dada [ ImprimirTareas tarea; print "por "; switch(tarea) { 0: "ordenar tu cuarto"; 1: "proteger las ventanas con ajo"; 2: "preparar el pan de ajo"; 3: "afilar las estacas"; 4: "tocar la puerta de la bodega con la cruz"; 5: "abrir la puerta de la bodega"; 6: "abrir el ataúd"; 7: "hablar a papá con el pan de ajo"; 8: "acabar con papá"; } ]; ! Imprime el rango que el jugador a conseguido de acuerdo a la ! puntuacion que tiene actualmente [ ImprimirRango; print ", otorgándote el rango de: ~"; switch (puntuacion) { ! la variable global de puntuacion 0 to 4 : print "Novato"; 5 to 6 : print "Iniciado"; 7 to 8 : print "Cazador en Potencia"; 9 to 9 : print "Cazador de Vampiros"; } print_ret "~."; ]; Include "Msg1P"; ! Módulo para mensajes de InformATE! en primera persona singular ("yo") Include "Acciones"; ! Módulo para InformATE! Include "Gramatica"; ! Módulo para InformATE! Include "Puertas"; ! Módulo para Puertas Include "Cortos"; ! Módulo para texto animado Include "Decorado"; ! Módulo para descripcion de decorados !------------ End Include ------------ ! Ayuda de la Aventura ZIPI_Menu ZIPI_Menu1 with ZIPI_titulo "Ayuda de la Aventura", ZIPI_item ZIPI_Menu2 ZIPI_Menu3 ZIPI_Otro2 ; ZIPI_Menu ZIPI_Menu2 with ZIPI_titulo "Instrucciones", ZIPI_item ZIPI_Otro0 ZIPI_Otro1 ; ZIPI_Menu ZIPI_Menu3 with ZIPI_titulo "Pistas", ZIPI_item ZIPI_Menu4 ZIPI_Menu8 ; ZIPI_Menu ZIPI_Menu4 with ZIPI_titulo "Tareas Domésticas", ZIPI_item ZIPI_Pista0 ZIPI_Pista1 ZIPI_Menu5 ZIPI_Pista4 ZIPI_Menu6 ; ZIPI_Menu ZIPI_Menu5 with ZIPI_titulo "¿Cómo preparo los implementos?", ZIPI_item ZIPI_Pista2 ZIPI_Pista3 ; ZIPI_Menu ZIPI_Menu6 with ZIPI_titulo "¿Cómo preparo el Pan de Ajo?", ZIPI_item ZIPI_Pista5 ZIPI_Pista6 ZIPI_Menu7 ; ZIPI_Menu ZIPI_Menu7 with ZIPI_titulo "Paso a Paso", ZIPI_item ZIPI_Pista7 ZIPI_Pista8 ZIPI_Pista9 ZIPI_Pista10 ZIPI_Pista11 ZIPI_Pista12 ; ZIPI_Menu ZIPI_Menu8 with ZIPI_titulo "Horas Extra", ZIPI_item ZIPI_Menu9 ZIPI_Menu10 ; ZIPI_Menu ZIPI_Menu9 with ZIPI_titulo "¿Cómo entro a la bodega?", ZIPI_item ZIPI_Pista13 ZIPI_Pista14 ; ZIPI_Menu ZIPI_Menu10 with ZIPI_titulo "En la bodega.", ZIPI_item ZIPI_Pista15 ZIPI_Pista16 ZIPI_Pista17 ; ZIPI_Menu ZIPI_Menu11 with ZIPI_titulo "Curiosidades y Otros", ZIPI_item ZIPI_Menu12 ZIPI_Otro11 ; ZIPI_Menu ZIPI_Menu12 with ZIPI_titulo "Curiosidades", ZIPI_item ZIPI_Menu13 ZIPI_Menu14 ; ZIPI_Menu ZIPI_Menu13 with ZIPI_titulo "Modus Vivendi", ZIPI_item ZIPI_Otro3 ZIPI_Otro4 ZIPI_Otro5 ; ZIPI_Menu ZIPI_Menu14 with ZIPI_titulo "Modus Operandi", ZIPI_item ZIPI_Otro6 ZIPI_Otro7 ZIPI_Otro8 ZIPI_Otro9 ZIPI_Otro10 ; ZIPI_Pista ZIPI_Pista0 with ZIPI_titulo "¿Qué tengo que hacer?", ZIPI_pistas "En tu dormitorio..." "Mamá dejó una nota." "Leela." ; ZIPI_Pista ZIPI_Pista1 with ZIPI_titulo "¿Cómo ordeno el cuarto?", ZIPI_pistas "A los pies de tu cama está tu ropa limpia..." "Cogela y examínala." "Luego, ordénala y estírala..." "con ORDENA ROPA LIMPIA." "Ahora, guárdala..." "Primero, abre el ropero..." "y luego GUARDA ROPA LIMPIA EN ROPERO." ; ZIPI_Pista ZIPI_Pista2 with ZIPI_titulo "¿Dónde están los implementos?", ZIPI_pistas "Primero, ve al Estudio." "Una vez ahí, abre el armario..." "y saca el Mazo, el Formón y las Estacas." ; ZIPI_Pista ZIPI_Pista3 with ZIPI_titulo "¿Qué hago ahora?", ZIPI_pistas "Examina las Estacas:" "verás que no están afiladas." "Fíjate en la mesa:" "tiene una Prensa para madera." "Abre la Prensa..." "mete las estacas dentro de la Prensa..." "y afila las estacas con el Formón y el Mazo..." "con AFILA ESTACAS CON FORMON o bien con AFILA ESTACAS CON MAZO." "Debes tener el Mazo y el Formón en tus manos..." "y la Prensa debe estar cerrada." "Una vez afiladas, puedes coger las Estacas..." "abriendo la Prensa primero." ; ZIPI_Pista ZIPI_Pista4 with ZIPI_titulo "¿Cómo protejo las ventanas?", ZIPI_pistas "Examina las ventanas..." "y veras que necesitan sellarse con ajo." "Para conseguirlo, ve a la Cocina...." "que está en la planta baja, al norte del Recibidor." "Una vez ahí, abre la Alacena..." "y saca los ajos." "Ahora ve a cada habitación que tenga ventanas y sellálas." "Primero, cierra las ventanas..." "y luego pon ajo en ellas." ; ZIPI_Pista ZIPI_Pista5 with ZIPI_titulo "¿Dónde están los ingredientes?", ZIPI_pistas "Primero, ve a la Cocina...." "que está en la planta baja, al norte del Recibidor." "Una vez ahí, abre la Alacena..." "y saca el Pan y los ajos (si aun no los tienes). Luego..." "abre la Heladera y saca la Mantequilla." ; ZIPI_Pista ZIPI_Pista6 with ZIPI_titulo "¿Cómo los cocino?", ZIPI_pistas "Fíjate en la Heladera..." "y verás una Receta." "Leela y sigue las instrucciones." ; ZIPI_Pista ZIPI_Pista7 with ZIPI_titulo "Abrir el pan a la mitad.", ZIPI_pistas "Necesitas un cuchillo:" "abre el cajón del mesón..." "saca el cuchillo..." "pon el pan en el mesón..." "y córtalo con el cuchillo." ; ZIPI_Pista ZIPI_Pista8 with ZIPI_titulo "Ponerle mantequilla dentro.", ZIPI_pistas "Deja el pan en el mesón..." "coge la mantequilla y el cuchillo..." "y pon la mantequilla en el pan..." "con UNTA MANTEQUILLA EN PAN o PON MANTEQUILLA EN PAN." ; ZIPI_Pista ZIPI_Pista9 with ZIPI_titulo "Cortar los ajos y poner ajos picados en el pan.", ZIPI_pistas "Pon los ajos en el mesón..." "coge el cuchillo..." "y corta los ajos con el cuchillo." "Coge los ajos picados..." "y mételos en el pan." ; ZIPI_Pista ZIPI_Pista10 with ZIPI_titulo "Cerrar el pan.", ZIPI_pistas "con CIERRA EL PAN" ; ZIPI_Pista ZIPI_Pista11 with ZIPI_titulo "Cocinarlo al horno por 3 minutos.", ZIPI_pistas "Coge el pan..." "abre el Horno..." "mete el pan dentro del Horno..." "cierra el Horno..." "enciende el Horno..." "y espera 3 turnos..." "con ESPERA y ESPERA y ESPERA (u haz otras 3 cosas)." ; ZIPI_Pista ZIPI_Pista12 with ZIPI_titulo "Comerlo recién hecho: frío es un asco...", ZIPI_pistas "Abre el Horno..." "Coge el pan..." "y cómetelo..." "con COME EL PAN." ; ZIPI_Pista ZIPI_Pista13 with ZIPI_titulo "¿Por qué no puedo abrir la puerta de la bodega?", ZIPI_pistas "Si abres la puerta..." "verás que está cerrada con llave..." "y no hay llaves a la vista." "La violencia no parece ser la solución." "Investiguemos como cazadores de vampiros." "Ve al dormitorio de tus padres..." "coge el crucifijo..." "vuelve a la Cocina..." "y toca la puerta con el crucifijo. " ; ZIPI_Pista ZIPI_Pista14 with ZIPI_titulo "¿Y ahora qué?", ZIPI_pistas "Como no tienes la llave de la puerta..." "necesitas algo contundente para abrirla." "Coge el bate..." "que está dentro del Ropero de tu Dormitorio..." "ahora coge el Mazo..." "que está dentro del Armario del Estudio..." "vuelve a la Cocina..." "y golpea la puerta con el Bate y el Mazo..." "con GOLPEA PUERTA CON BATE." ; ZIPI_Pista ZIPI_Pista15 with ZIPI_titulo "¿Cómo abro el ataud?", ZIPI_pistas "Como esté cerrado, necesitas forzarlo..." "metiéndole cuña." "Ve por el Formón y el Mazo..." "que están dentro del Armario del Estudio..." "vuelve a la Bodega..." "y abre el ataud con el Formón y el Mazo..." "con ABRE ATAUD CON FORMON o bien GOLPEA ATAUD CON FORMON" ; ZIPI_Pista ZIPI_Pista16 with ZIPI_titulo "¿Cómo me protejo?", ZIPI_pistas "Sigue el consejo de mamá:" "prepárate un pan de ajo y cómetelo." "Pistas en el menú Tareas Domésticas -> ¿Cómo preparo el Pan de Ajo?" ; ZIPI_Pista ZIPI_Pista17 with ZIPI_titulo "¿Cómo acabo el trabajo?", ZIPI_pistas "El método clásico para matar vampiros..." "es atravesarlos con una estaca afilada." "Prepara primero los implementos:" "Pistas en el menú Tareas Domésticas -> ¿Cómo preparo los implementos?" "Coge las Estacas ya afiladas y el Mazo..." "vuelve a la Bodega..." "y mata al vampiro con las Estacas..." "con MATA VAMPIRO CON ESTACAS o ATACA VAMPIRO CON ESTACAS" ; ZIPI_Otro ZIPI_Otro0 with ZIPI_titulo "Comandos Principales", ZIPI_ejecutar [; print "Las órdenes siguientes son básicas y pueden encontrarse en casi cualquier aventura conversacional. El jugador puede tratar siempre de hacer otras acciones.^^"; style fixed; print "Ayuda : Esta ayuda.^"; print "ex x, examinar x : Da una descripción de x.^"; print "busca en x, mira en x : Revisar un objeto para ver si contiene algo más...^"; print "lee x : Si x tiene texto para leer, leer el texto en x.^"; print "coge x, deja x : El objeto x pasa a ser o deja de ser llevado.^"; print "mete x en y : El objeto x deja de ser llevado y queda dentro de y.^"; print "saca y de x : El objeto y sale de x y pasa a ser llevado.^"; print "tira de x : Tira del objeto x.^"; print "empuja x : Empuja el objeto x.^"; print "pon x en y : Pon el objeto x en el objeto y.^"; print "afila x con y : Afila el objeto x con el objeto y.^"; print "corta x con y : Corta el objeto x con el objeto y.^"; print "unta x con y : Unta el objeto x con el objeto y.^"; print "come x : Si x es comestible, cómete x.^"; print "golpea x con y : Golpea el objeto x con el objeto y.^"; print "habla con x : Habla el personaje x.^"; print "mata x con y : Mata al personaje x usando el objeto y.^"; print "i, inventario : Da una lista de los objetos llevados.^"; print "puntuacion : puntaje acumulado en el juego.^"; print "puntuacion total : puntaje acumulado en el juego, con detalle por tareas cumplidas.^"; print "pistas : Pistas para resolver el juego (evite la tentación...).^"; print "save, guardar : Grabar el estado actual de la partida (recomendable...).^"; print "load, cargar : Recuperar un estado de partida ya guardado.^"; print "quit, fin, terminar : Terminar la partida en juego.^"; style roman; ]; ZIPI_Otro ZIPI_Otro1 with ZIPI_titulo "Otros Comandos", ZIPI_ejecutar [; print "Las órdenes, en general, se pueden dar según:^"; style fixed; print ""; style roman; print " o bien^"; style fixed; print " "; style roman; print " o bien^"; style fixed; print " ^"; style roman; ]; ZIPI_Otro ZIPI_Otro2 with ZIPI_titulo "Agradecimientos", ZIPI_ejecutar [; print "A mis infatigables testers: Eliuk Blau y Presi.^^"; print "A Baltasar, por bugs reportados para la v01.01.01.^^"; print "A Baltasar, Eliuk Blau, Uto y Al-Khwarizmi, por mejoras sugeridas para esta v01.01.02.^^"; print "A toda la comunidad IF española: el foro del CAAD y tantísimos sitios web con ejemplos y documentos invaluables.^^"; print "A Alessandro Schillaci y Luis Fernández, creadores de JIF (en español), un pedazo de herramienta para el desarrollo en InformATE!^^"; print "A Baltasar, el Arquero, creador de txtMap, un pedazo de herramienta para el desarrollo de aventuras.^^"; print "A Eliuk Blau, por Código Concedido.^^"; print "A todos los que nos cuidan y nos protegen, especialmente cuando no sabemos de su abnegada labor... "; ]; ZIPI_Otro ZIPI_Otro3 with ZIPI_titulo "El aroma del día", ZIPI_ejecutar [; print "No todo lo hermoso o sagrado huele a rosas. Prueba los ajos y entérate... "; ]; ZIPI_Otro ZIPI_Otro4 with ZIPI_titulo "Control de Incendios", ZIPI_ejecutar [; print "La crianza de un hijo de cazadores no es fácil... para el hijo. Prueba a quemar cosas a tu alrededor. Ojo con el Estudio. "; ]; ZIPI_Otro ZIPI_Otro5 with ZIPI_titulo "Electrodomésticos", ZIPI_ejecutar [; print "Un hijo de cazadores es un crío, pero no un tonto. Prueba con encender el Horno abierto o vacío. "; ]; ZIPI_Otro ZIPI_Otro6 with ZIPI_titulo "Documentación", ZIPI_ejecutar [; print "¿Quieres saber cómo se preparan los cazadores de vampiros? Examina las Colecciones en el Estudio... "; ]; ZIPI_Otro ZIPI_Otro7 with ZIPI_titulo "Ecumenismo", ZIPI_ejecutar [; print "Los cazadores de vampiros están al tanto de varios cultos religiosos. Coge la cruz del dormitorio de tus padres y verás... "; ]; ZIPI_Otro ZIPI_Otro8 with ZIPI_titulo "Herramientas Especiales", ZIPI_ejecutar [; print "Un crucifijo no sólo sirve de alerta temprana. Prueba a tocar al vampiro de la bodega con el crucifijo y veras que tiene otros usos... "; ]; ZIPI_Otro ZIPI_Otro9 with ZIPI_titulo "Urbanismo", ZIPI_ejecutar [; print "Los cazadores de vampiros conocen muy bien su territorio y reciben alguna ayuda aquí y allá. Fíjate en los detalles del mapa en el Estudio... "; ]; ZIPI_Otro ZIPI_Otro10 with ZIPI_titulo "Vacaciones", ZIPI_ejecutar [; print "El trabajo de los cazadores de vampiros sólo termina con la muerte. Prueba a atacar al vampiro en la bodega sin el pan de ajo y tendrás descanso, por fin... "; ]; ZIPI_Otro ZIPI_Otro11 with ZIPI_titulo "Historia de Pan de Ajo^^", ZIPI_ejecutar [; print "Sobre la Creación de la Obra^^"; print "A pesar de que para la ~La Comp Más Monstruosa~ presenté un único trabajo, del folklor Chileno, mientras creaba la aventura surgió otra idea respecto de un monstruo más clásico (vampiro)... pero la historia no lo era tanto.^"; print "Como ~Ofrenda a la Pincoya~ me tuvo ocupado un buen rato, y después de su publicación las cosas se complicaron no poco en el trabajo, guardé la nueva idea en mi ~archivo mental de argumentos~.^"; print "A principios de año, con nuevos bríos a vuelta de vacaciones, y con algo más de tiempo disponible, me decidí a contar esta historia, para no dejar pasar el año sin haber creado algo.^"; print "Y aquí está el resultado.^^"; print "Sobre el Tema de la Obra^^"; print "El cine, la literatura y la televisión han tratado el tema de los vampiros en general desde dos puntos de vista. Por una parte está la perspectiva de los propios vampiros y su mundo de sombras, a veces presentado con tintes románticos. En oposición, se rescata el mundo de sus enemigos, los cazadores de vampiros, en una cruzada a veces desesperada para librar a la humanidad de un peligro que suele presentarse como plaga apocalíptica.^"; print "Sin embargo, rara vez se retrata el mundo de los que que están ~en el borde~ de estos mundos en guerra. En particular, a los cazadores se los presenta mayormente como seres solitarios o separados a la fuerza de sus vínculos familiares, sobreviviendo con compañeros y colegas, si acaso con amores trájicos, pero sin el soporte y solaz que sólo existe en el seno de una familia ~normal~.^"; print "Por supuesto, la idea del vampirismo y de su cacería están muy lejos de lo que alguien podría considerar como parte de un mundo ~normal~. Precisamente, en este relato se aborda lo que ocurre en la ~cotidianeidad~ de una familia en que papá y mamá trabajan en un ~negocio peligroso~, y en que los hijos, como suele ocurrir cuando papá y mamá trabajan, tienen una vida de esfuerzo.^^"; print "Tristemente, no hacen falta vampiros para que esto ocurra en muchas partes.^"; print "Los niños, por supuesto, se adaptan y crecen.^"; print "Con algunos costos...^^ "; print "Santiago de Chile, 07 de Agosto, 2009 "; ]; Attribute legible; ! Definiciones para lectura ! CLASES GENERICAS ! Clase para Objetos que son parte del jugador Class Objeto_Jugador class Object ; ! Clase para Objetos que el jugador puede coger y manipular ! y que son parte de algún puzzle Class Objeto_Puzzle class Object with descripcion [; 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", antes [; Oler: "No parece que huela a nada especial."; Escuchar: "No produce ningún sonido."; Quemar : "No me gusta andar prendiendo fuego a todo porque sí. Además, luego me castiga mamá, me zurra papá y me encierran en la bodega un día entero. No gracias..."; ], has ~general; ! Clase para Objetos del escenario manipulables por el jugador y que ! son parte de algún puzzle Class Objeto_Escenario class Object with descripcion [; 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", antes [; Examinar: rfalse; Frotar : "No voy a estar limpiándolo todo, tengo otras cosas que hacer."; Quemar : "No me gusta andar prendiendo fuego a todo porque sí. Además, luego me castiga mamá, me zurra papá y me encierran en la bodega un día entero. No gracias..."; Coger, Empujar : "No voy a empezar a desordenar la casa..."; Oler: "No parece que huela a nada especial."; Escuchar: "No produce ningún sonido."; ], has escenario; Class Objeto_Ventana class Objeto_Escenario with nombre_f 'ventana', nombre_fp 'ventanas', adjetivos 'limpia' 'limpias' 'transparentes' 'transparente', descripcion_larga [; print "Las ventanas de esta habitación están "; if (self has abierta) print "abiertas, "; else print "cerradas, "; print "y a través de ellas veo todo el vecindario alrededor de casa: mamá mantiene las ventanas limpias y transparentes con... mucho trabajo. Son ventanas blindadas, para evitar que puedan romperlas ~accidentalmente~ con piedras o balas; ya lo han intentado antes. Contra los vampiros, sin embargo, no sirven de mucho"; if (self has encendido) "... así que, por las dudas, he puesto una cabeza de ajo para sellarlas contra vampiros."; else "... así que pronto debo sellarlas contra vampiros. Necesito ajo..."; ], descripcion_corta [; print "Las ventanas de esta habitación están "; if (self has abierta) print "abiertas"; else print "cerradas"; if (self has encendido) " y he puesto una cabeza de ajo para sellarlas contra vampiros."; else " y aun no las he sellado contra vampiros. Necesito ajo..."; ], antes [; Tirar: <>; Empujar: <>; Frotar: "No hace falta: mamá mantiene las ventanas limpias y transparentes con bastante trabajo."; BuscarEn : print "Las ventanas de esta habitación están "; if (self has abierta) print "abiertas, "; else print "cerradas, "; "y a través de ellas veo todo el vecindario alrededor de casa."; Sellar: if (self has abierta) "Mejor las cierro primero..."; else if (otro==0) { if (Ajos notin Jugador) "¿Y con qué voy a sellarlas?..."; else <>; } else if (otro~=Ajos) { print "No servirá de nada sellar las ventanas con "; print (el) otro ; ". Los vampiros pasarán como si nada..."; } else <>; Recibir : if (self has abierta) "Mejor las cierro primero..."; else if (uno~=Ajos) { print "No puedo poner "; print (el) uno ; " en las ventanas."; } else if (self has encendido) "No hace falta: ya están selladas contra vampiros."; else { print "Corto una cabeza de ajo de la ristra y la pongo en las ventanas, sellándolas contra vampiros."; give self encendido; switch (localizacion) { Dormitorio_1: move AjoVentanaDormitorio1 to self; Estudio: move AjoVentanaEstudio to self; Dormitorio_2: move AjoVentanaDormitorio2 to self; Estar: move AjoVentanaEstar to self; Comedor: move AjoVentanaComedor to self; Cocina: move AjoVentanaCocina to self; }; if ( (VentanaDormitorio1 has encendido) && (VentanaEstudio has encendido) && (VentanaDormitorio2 has encendido) && (VentanaEstar has encendido) && (VentanaComedor has encendido) && (VentanaCocina has encendido) ) { if ( (Pan in Limbo) || (AjosPicados notin Limbo) ) move Ajos to Limbo; ! puntuacion++; Conseguido(1); "^Listo: la casa está protegida... y los ajos alcanzaron apenas."; } ""; } Abrir : if (self has encendido) "Ahora que les he puesto ajo, mejor dejarlas cerradas."; ], has femenino nombreplural abrible abierta soporte transparente; Class Objeto_AjoVentana class Objeto_Escenario with nombre_f 'cabeza', nombre_m 'ajo' 'sello', adjetivos 'ajo' 'fragante', descripcion_larga "Es una cabeza de ajo, puesta en las ventanas para sellarlas contra vampiros. Los vampiros detestan el olor a ajo y se paralizan completamente si llegan a sentir su olor... y este ajo está muy fragante: mamá los escoge con cuidado...", descripcion_corta "Es una cabeza de ajo, puesta en las ventanas para sellarlas contra vampiros.", antes [; Oler : "Es una aroma intenso y reconfortante. Ya estoy acostumbrado: cosas de familia..."; Comer : "Hay formas más elegantes de quedar protegido y así crudos son un poco fuertes. Además, no quiero quitar la protección de las ventanas."; Probar, Coger, Sacar, Tirar: "Mejor que no: no quiero quitar la protección de las ventanas."; ], has femenino comestible; !Clase para las escalas de la casa Class Objeto_Escala class Objeto_Escenario with nombre_f 'escalera' 'escala', nombre_fp 'escaleras' 'escalas', nombre_mp 'escalones', adjetivos 'madera' 'simple', descripcion "Es una escala de madera simple.", antes [; Bajar : <>; Meterse, Trepar : <>; ], has femenino entrable soporte; ! Clase para PSI Class PSI class Object with descripcion [; if (self hasnt general) { give self general; self.descripcion_larga(); } else { give self ~general; self.descripcion_corta(); } rtrue; ], descripcion_larga "descripción larga del PSI", descripcion_corta "descripción corta del PSI", vida [; Responder: print "Para hablar con los personajes, usa:^"; style fixed; print "HABLA CON "; style roman; rtrue; Oler, Tocar, Besar, Probar, Coger: "Mamá se enojará si se entera."; Atacar, Empujar: "Papá dice que soy muy pequeño aun para intentarlo..."; ], has animado; !Meta Clase para usar Puertas Class Habitacion with descripcion[; if ( (accion==##Mirar) || (self hasnt visitado) ) self.descripcion_larga(); else self.descripcion_corta(); rtrue; ], descripcion_larga "descripción larga de la habitación", descripcion_corta "descripción corta de la habitación", antes [; !num Soplar, Gesticular : "Me pongo a hacer morisquetas y meneo los brazos y piernas. Hay que estar en forma... especialmente en este negocio, en que la debilidad puede salir muy cara."; Dormir : "Qué más quisiera, pero tengo tareas pendientes..."; Despertarse : "Más despierto, imposible."; Tacos : if (jugador hasnt visitado) { give jugador visitado; "Si mamá me sorprende hablando así, el castigo sería... bueno, mejor no entrar en detalles de cómo educan los cazadores de vampiros a sus hijos, pero digamos que el rigor, la disciplina y la tolerancia al dolor y al cansancio son parte de la receta."; } else "Mejor me quedo calladito... a mamá no le gusta que hable así."; Responder: print "Para hablar con los personajes, usa:^"; style fixed; print "HABLA CON "; style roman; rtrue; Escuchar: if (uno==0) "La casa está en silencio."; BuscarEn, Tocar: if (uno == obj_arriba) "No alcanzo..."; else if (uno == obj_abajo) if (localizacion == Bodega) "El suelo no está todo lo limpio que el resto de casa... aunque por suerte no soy yo quien se encarga de asear aquí abajo."; else "El suelo está limpio: faltaría más, a mí me toca barrerlo día por medio..."; Examinar: if (uno == obj_arriba) "El techo está limpio y blanco. Lo pinté yo solito el verano pasado..."; else if (uno == obj_abajo) <>; ] has luz; ! Objeto para que reaccione a <>> Objeto_Escenario Objeto_Localidad "lugar" with nombre_m 'dormitorio' 'baño' 'pasillo' 'estudio' 'recibidor' 'estar' 'comedor' 'cuarto' 'lugar', nombre_f 'entrada' 'bodega' 'habitacion', adjetivos 'principal', descripcion [; np = 2; switch (SiguientePalabra()) { 'cuarto' : <>; 'lugar' : <>; 'habitacion' : <>; 'dormitorio' : if ( (localizacion == Dormitorio_1) || (localizacion == Dormitorio_2)) {;<>;} else "No veo eso que dices."; 'baño' : if ( (localizacion == Bano_1) || (localizacion == Bano_2)) {;<>;} else "No veo eso que dices."; 'pasillo' : if ( (localizacion == Pasillo_1) || (localizacion == Pasillo_2)) {;<>;} else "No veo eso que dices."; 'estudio' : if (localizacion == Estudio) {;<>;} else "No veo eso que dices."; 'recibidor' : if (localizacion == Recibidor) {;<>;} else "No veo eso que dices."; 'entrada' : if (localizacion == Entrada) {;<>;} else "No veo eso que dices."; 'estar' : if (localizacion == Estar) {;<>;} else "No veo eso que dices."; 'comedor' : if (localizacion == comedor) {;<>;} else "No veo eso que dices."; ! 'cocina' : if (localizacion == Cocina) ! {;<>;} else "No veo eso que dices."; 'bodega' : if (localizacion == Bodega) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], antes [; Empujar, Coger : "No creo poder con la casa, ni siquiera un vampiro es tan forzudo..."; ], esta_en [; return true; ] has masculino; ! La luz Objeto_Escenario Objeto_Luz "luz" with nombre 'luz', adjetivos 'atardecer', descripcion [; if (localizacion == Bodega) "No hay mucha: estamos bajo tierra... y no hay luz electrica acá abajo, por cierto."; else "No hay demasiada luz, pero me puedo mover por casa sin problemas y ver lo que estoy haciendo. Es suficiente para que los vampiros no quieran asomarse afuera, lo que es buena cosa para mí..."; ], antes [; Empujar, Coger, Tocar : "Si supiera cómo, le pasaría el dato a mamá y papá: estarían más seguros..."; ], esta_en [; return true; ] has femenino; ! Meta clase DecoradoAmpliado Class Decorado_Ampliado class Decorado with antes [; Quemar: "No tengo gusto por esas cosas: me lo quitaron mis padres a los cinco años.^ Papá tiene la mano pesada..."; Examinar: rfalse; Coger: "Mejor no sobrecargarme..."; Empujar: "No parece que se pueda empujar..."; Oler: "No parece que huela a nada especial..."; Escuchar: "No produce ningún sonido..."; BuscarEn: <>; default: "¿¡Y para qué diablos voy a hacer eso, eh?!..."; ]; ! Meta clase DecoradoAmpliado para el vecindario Decorado_Ampliado Decorado_Ampliado_Vecindario with describir 'vecindario' "El vecindario es sencillo y tranquilo: unas cuantas casas como la mía y poco más. Ni siquiera hay edificaciones en altura hasta donde la vista alcanza.^ La calle se ve desierta a esta hora." G_MASCULINO 'casa' "Mi casa, donde estoy parado en este momento..." G_FEMENINO 'casas' "Son casas como la mía, de dos plantas con un pequeño jardín y una verja." G_FEMENINO + G_PLURAL 'jardines' "Los jardines vecinos, muy parecidos a los de mi casa: un poco de césped y algunas matas." G_MASCULINO + G_PLURAL 'jardin' "El jardín de mi casa, como el de las demás: un poco de césped y algunas matas." G_MASCULINO 'verja' "La verja es de madera sencilla y pintada de blanco.^ El próximo mes me toca pintarla de nuevo..." G_FEMENINO 'calle' "Una calle común y corriente, sin nadie a la vista." G_FEMENINO 'cesped' "El césped del jardín, que mantengo corto emparejándolo una vez por semana.^ Mañana, por cierto, me toca hacerlo de nuevo..." G_MASCULINO 'matas' "Las matas del jardín de mi casa están bien podadas aunque sin demasiadas figuras.^ Trabajo duro pero no tengo tiempo para paisajismo..." G_MASCULINO + G_PLURAL, antes [; Empujar, Tirar, Coger, Frotar : "No me dedico a mudanzas o paisajismo, caramba. Bastante tengo ya con lo de casa..."; ], esta_en [; if ( (localizacion == Dormitorio_1) || (localizacion == Estudio) || (localizacion == Dormitorio_2) || (localizacion == Estar) || (localizacion == Comedor) || (localizacion == Cocina) || (localizacion == Entrada) ) return true; ], ; Objeto_Escenario Piso "piso" with nombre 'piso', descripcion [;<>;], antes [; Coger: "Ni siquiera papá podría hacerlo..."; Quemar: "No tengo con qué hacerlo, y la verdad me gusta la casa entera como está..."; Tocar: <>; BuscarEn: <>; Frotar: if (localizacion == Bodega) "No tiene sentido. Casi nadie baja aquí..."; else if (localizacion == Estudio) "No hace falta: aquí limpian mamá y papá, especialmente si han tenido que ~interrogar~ a alguien y el interrogatorio ha sido muy largo.^ Prefiero no entrar en detalles..."; else "Ya limpié pisos esta semana, así que... no gracias."; ], esta_en [; return true; ], has masculino; Objeto_Escenario Pared "pared" with nombre_f 'pared', nombre_fp 'paredes', nombre_m 'muro', nombre_mp 'muro', descripcion [; if (localizacion == Bodega) "Las paredes están como la fundación original de la casa: sin pintar, en bruto y podrían estar más limpias... a decir de mamá, claro."; else { print "Las paredes de casa están pintadas de blanco y las mantengo limpias escobillando aquí y allá de vez en cuando..."; if (localizacion == Estudio) " salvo aquí. En el estudio, limpian papá y mamá, especialmente si han tenido que ~interrogar~ a alguien y el interrogatorio ha sido muy largo.^ Prefiero no entrar en detalles..."; else rtrue; } ], antes [; Coger: "Ni siquiera papá podría hacerlo..."; Quemar: "No tengo con qué hacerlo, y la verdad me gusta la casa entera como está..."; Tocar: if (localizacion == Bodega) <>; else "Las paredes son suaves y lisas."; BuscarEn: <>; Frotar: if (localizacion == Bodega) "No tiene sentido. Casi nadie baja aquí..."; else if (localizacion == Estudio) "No hace falta: aquí limpian mamá y papá, especialmente si han tenido que ~interrogar~ a alguien y el interrogatorio ha sido muy largo.^ Prefiero no entrar en detalles..."; else "Ya limpié las paredes esta semana, así que... no gracias."; ], esta_en [; return true; ], has femenino; ! Habitación Limbo Habitacion Limbo "El Limbo" with descripcion "¡Eh! ¿Cómo has llegado aquí? Estos Betatesters...", has luz; Objeto_AjoVentana AjoVentanaDormitorio1 "cabeza de ajo" Limbo; Objeto_AjoVentana AjoVentanaEstudio "cabeza de ajo" Limbo; Objeto_AjoVentana AjoVentanaDormitorio2 "cabeza de ajo" Limbo; Objeto_AjoVentana AjoVentanaEstar "cabeza de ajo" Limbo; Objeto_AjoVentana AjoVentanaComedor "cabeza de ajo" Limbo; Objeto_AjoVentana AjoVentanaCocina "cabeza de ajo" Limbo; ! Objetos del Jugador ! El Jugador Objeto_Jugador miJugador with descripcion "Soy un chico normal, de poco más de doce años. No soy muy grande para mi edad, pero mamá dice que ya creceré pronto. En fin, soy un niño como cualquier otro... exceptuando por lo del el negocio de la familia, claro.", antes [; Tocar : "Tengo la piel tersa: no salgo mucho de casa, es verdad."; Oler : "La verdad, no me vendría mal un baño. Puede que después de mis tareas..."; Cortar : "Ya hay bastantes cosas peligrosas para hacer en esta casa, como para hacermelas yo solo."; Escuchar : "Mi corazón late bien, mi respiración está tranquila... mamá nos mantiene sanitos."; Frotar : "Frotándome con energía, gano un poco de calor."; ] ; ! La ropa del Jugador Objeto_Jugador Ropa "ropa puesta" miJugador with nombre_f 'ropa' 'camiseta', nombre_mp 'pantalones' 'zapatillas', adjetivos 'puesta' 'usada', listarse "tu ropa puesta", descripcion "Son una camiseta, unos pantalones y un par de zapatillas. Ropa cómoda de andar por casa...", antes [; Desvestir : "¿Y andar desnudo? Si me pillaran luego mis padres... no gracias."; ] has femenino prenda puesto; ! ================= Localidades =============== ! Planta Alta ! Dormitorio Chico Habitacion Dormitorio_1 "Tu Dormitorio" with descripcion_larga [; print "La luz del atardecer entra por las ventanas de mi dormitorio, que es pequeño pero muy cómodo. Mi cama está junto a las ventanas, así que a esta hora está agradablemente tibia. Hay un ropero grande en una esquina"; if (Aviso in localizacion) print ", con una nota pegada.^"; else print ".^"; "Puedo entrar al baño o salir de mi cuarto por el este."; ], descripcion_corta [; print "La luz del atardecer entra por las ventanas y cae sobre mi cama."; if (Aviso in localizacion) print " Hay una nota pegada en el ropero de la esquina.^"; else print " Mi ropero está en la esquina.^"; "Puedo entrar al baño o salir de mi cuarto por el este."; ], al_e Pasillo_1, adentro Bano_1, afuera Pasillo_1, ; ! Objetos de Escenario del Dormitorio_1 Objeto_Ventana VentanaDormitorio1 "ventanas" Dormitorio_1; Objeto_Escenario Ropero "ropero" Dormitorio_1 with nombre 'ropero' 'armario', descripcion [; print "El ropero, donde guardo mi ropa"; if (self hasnt abierto) { if (Bate in self) print ", junto con mi bate"; print ", está cerrado"; } else { if (RopaLimpia in self) print " limpia, bien ordenada y doblada"; print ", está abierto"; if (Bate in self) print ". Mi bate está apoyado al fondo del ropero"; } if (Aviso in localizacion) ".^Hay una nota pegada al ropero."; else "."; ], antes [; Cerrar, Abrir: if (jugador in Cama) "Uf. No alcanzo desde acá. Habrá que levantarse..."; Recibir: if (jugador in Cama) "Uf. No alcanzo desde acá. Habrá que levantarse..."; else if (self hasnt abierto) "El ropero está cerrado."; else if ( (uno==RopaLimpia) && (RopaLimpia hasnt general) ) "No puedo guardar la ropa así, toda desordenada..."; ], despues [; Abrir: if (self hasnt general) { give self general; "Dentro del ropero suele estar mi ropa colgada y ordenada: cortesía de mamá, que parece que no duerme nunca... salvo hoy. Además, aquí guardo mi bate: cortesía de papá, que recomienda estar preparado incluso dentro de casa."; } Recibir: if (uno==RopaLimpia) { give self general; ! puntuacion++; Conseguido(0); "Guardo la ropa con cuidado en el ropero.^ Listo.^ El cuarto se ve mejor ahora..."; } ], has masculino recipiente abrible ~abierto; Objeto_Puzzle Aviso "nota" Dormitorio_1 with nombre_f 'nota' 'lista' 'tareas', nombre_m 'papel', adjetivos 'ropero', descripcion "Es la lista de tareas de la tarde. Mamá la dejó para que la viera al despertar de mi siesta. Está en todas, mamá...", antes [; Coger: if (jugador in Cama) "Uf. No la alcanzo desde acá. Habrá que levantarse..."; else if (self notin Jugador) { move self to Jugador; give self ~escenario; "Coges la nota."; } else "Ya tienes la nota."; Leer : if (jugador in Cama) "Uf. No alcanzo a leer desde acá. Habrá que levantarse..."; else if (self hasnt general) { give self general; PrintAutoPausa( "La letra de mamá, "); PrintAutoPausa( "ordenada y clara, "); PrintAutoPausa( "dice:^^"); PrintAutoPausa( "~1. Ordena tu cuarto.^"); PrintAutoPausa( "2. Prepara los implementos para mañana.^"); PrintAutoPausa( "3. Revisa y sella las ventanas.^"); PrintAutoPausa( "4. Hazte un tentempie: pan de ajo.~^^"); PrintAutoPausa( "Tengo cosas para hacer. "); "Como siempre..."; } else "La letra de mamá, ordenada y clara, dice:^^ ~1. Ordena tu cuarto.^ 2. Prepara los implementos para mañana.^ 3. Revisa y sella las ventanas.^ 4. Hazte un tentempie: pan de ajo.~"; ], despues [; Dejar: if (localizacion == Dormitorio_1) { give self escenario; "La vuelvo a pegar al ropero."; } ], has femenino legible escenario; Objeto_Escenario Cama "cama" Dormitorio_1 with nombre_f 'cama' 'sabana' 'manta' 'frazada', nombre_fp 'sabanas' 'mantas' 'frazadas', descripcion "Mi cama, cómoda y sencilla... y está tibiecita después de la siesta. Aun está tendida y mejor dejarla así.", antes [; Tocar: "Está tibiecita, blanda y suave..."; ], despues [; Abrir: "¿Y tener que tenderla luego? No gracias..."; Salirse, Bajar : "Me bajo de la cama. Hay que moverse..."; Meterse, Subir : "Me tiendo con gusto.^ Es tan cómoda..."; ], has femenino soporte entrable abrible ~abierto; ! Objetos del Dormitorio_1 Objeto_Puzzle RopaLimpia "ropa limpia" Dormitorio_1 with nombre 'ropa', adjetivos 'limpia', inicial "Mi ropa limpia está tirada a los pies de la cama. Qué desorden...", listarse [; print "tu ropa limpia"; if (self hasnt general) print ", hecha un lío"; else print ", estirada y doblada"; rtrue; ], descripcion [; print "Es mi ropa limpia"; if (self hasnt general) print ", hecha un lío"; else print ", estirada y doblada"; if (self in Dormitorio_1) ", a los pies de la cama. La boté durante la siesta, seguro."; else if (self in Ropero) " en el ropero, como debe ser."; else if (self in jugador) ". Debiera guardarla en el ropero..."; else "."; ], antes [; Vestir: "Ya voy vestido... y a mamá no le gusta que me cambie de ropa más de una vez al día. Si lo hago, me toca lavar a mí: paso..."; Coger : if (jugador in Cama) "Uf. No la alcanzo desde acá. Habrá que levantarse..."; else if (self in Ropero) "Mejor la dejo en paz, tengo cosas que hacer."; Estirar : if (jugador in Cama) "Uf. No la alcanzo desde acá. Habrá que levantarse..."; else if (self hasnt general) { give self general; "Con cuidado, estiro y doblo la ropa, dejándola ordenada... casi tan bien como mamá."; } else "No se como dejarla más ordenada... así quedará."; ], has femenino prenda; Objeto_Puzzle Bate "bate" Ropero with nombre 'bate', adjetivos 'solido' 'macizo' 'beisbol', descripcion "Un bate de béisbol que me regaló papá. Es sólido y macizo... como papá.", antes [; Coger: if ( (jugador in Cama) && (self notin Cama) ) "Uf. No lo alcanzo desde acá. Habrá que levantarse..."; ], has masculino; ! Baño Chico Habitacion Bano_1 "Tu Baño" with descripcion_larga "El baño de mi habitación, todo blanco y limpio.^ Mamá lo mantiene todo muy pulcro (no sé en qué momento) y la verdad no me dan ganas de echar a perder su trabajo...^ y crearme más trabajo para mí, así que, por hoy, paso de usar las instalaciones.^ Puedo salir del baño para volver al dormitorio.", descripcion_corta "El baño de mi habitación, todo blanco y limpio.^ Puedo salir del baño para volver al dormitorio.", afuera Dormitorio_1, ; ! Decorados del Baño 1 Decorado_Ampliado Decorado_Ampliado_Bano_1_1 Bano_1 with describir 'instalaciones' "Poca cosa, pero todo bien puesto: un espejo, un lavabo, un inodoro y una ducha." G_FEMENINO + G_PLURAL 'espejo' "Es un espejo pequeño. La verdad, viéndome ahí se nota que no soy muy grande para mi edad, pero mamá dice que ya creceré pronto" G_MASCULINO 'lavamanos' "Es un lavabo de porcelana común." G_MASCULINO 'lavabo' "Es un lavabo de porcelana común." G_MASCULINO 'grifo' "Es grifería tradicional. Está impecable." G_MASCULINO 'grifos' "Es grifería tradicional. Está impecable." G_MASCULINO + G_PLURAL 'taza' "Un inodoro sencillo de porcelana." G_FEMENINO 'water' "Un inodoro sencillo de porcelana." G_MASCULINO 'inodoro' "Un inodoro sencillo de porcelana." G_MASCULINO 'porcelana' "La porcelana está muy blanca, muy limpia... y muy fría." G_FEMENINO, antes [; Oler: "Huele a limpio. Mamá estaría orgullosa..."; Abrir, Meterse, Entrar, Frotar: "No tengo necesidad, y como el que limpia aquí soy yo y no me apetece crearme más trabajo para mí por hoy, paso de usar las instalaciones."; ] has femenino soporte entrable abrible; Decorado_Ampliado Decorado_Ampliado_Bano_1_2 Bano_1 with describir 'ducha' "Es una ducha de pie, con su cortina." G_FEMENINO 'cortina' "La cortina de la ducha es de plástico opaco, sin diseño." G_FEMENINO, antes [; Oler: "Huele a limpio. Mamá estaría orgullosa..."; Meterse, Entrar, Frotar: "No tengo necesidad, y como el que limpia aquí soy yo y no me apetece crearme más trabajo para mí por hoy, paso de usar las instalaciones."; ] has femenino soporte entrable abrible; ! Pasillo Habitacion Pasillo_1 "El Pasillo" with descripcion "Estoy en el final del pasillo, a la salida de mi dormitorio.^ Mi dormitorio queda al oeste, mientras que al este se llega al estudio y por el norte llego al principio del pasillo.", al_n Pasillo_2, al_e Estudio, al_o Dormitorio_1, ; Habitacion Pasillo_2 "El Pasillo" with descripcion "Estoy al principio del pasillo, que continúa al sur. Aquí cerca está la escala que lleva a la planta baja y al este se entra al dormitorio de mis padres.", al_s Pasillo_1, adentro Dormitorio_2, al_e Dormitorio_2, abajo Recibidor, ; ! Objetos de Escenario del Pasillo2 Objeto_Escala Escalera_Recibidor "escala" with esta_en [; if ( (localizacion == Pasillo_2) || (localizacion == Recibidor) ) rtrue; ] ; ! Estudio Habitacion Estudio "El Estudio" with descripcion_larga "El estudio es el centro de operaciones de la casa: desde aquí se organizan las cacerías de vampiros... y aquí a veces se ~interroga~ a algunos pobres desgraciados que trabajan para esos monstruos.^ Papá y mamá pasan casi todo su tiempo aquí.... cuando no están comiendo, durmiendo o cazando vampiros; conmigo ya no juegan.^ Siempre que los veo acá están revisando los libreros, actualizando los mapas, o bien usando la mesa de trabajo, a veces sentados en sus sillas, a veces de pie.^ La consigna de la habitación es: si no la estás ocupando, no estorbes y lárgate.^ En la pared hay un armario y frente a la mesa hay ventanas.^ Por el oeste se sale al pasillo.", descripcion_corta "El estudio, con sus libreros, sus mapas, su mesa de trabajo y sus sillas, es el centro de operaciones de la casa, para organizar cacerías de vampiros e ~interrogar~ a los que trabajan para esos monstruos.^ En la pared hay un armario y frente a la mesa hay ventanas.^ Por el oeste se sale al pasillo.", al_o Pasillo_1, afuera Pasillo_1, ; ! Decorados del Estudio Decorado_Ampliado Decorado_Ampliado_Estudio_1 Estudio with describir 'librero' "Es grande, y está repleto con las colecciones arcanas y de bricolaje de mis padres: todo lo que un cazavampiros debe saber." G_MASCULINO 'libreros' "Son grandes, y están repleto con las colecciones arcanas y de bricolaje de mis padres: todo lo que un cazavampiros debe saber." G_MASCULINO + G_PLURAL 'coleccion' "Es una serie de libros y documentos de temas varios: arcanas y bricolaje.^^ Si quieres ver alguna en particular, prueba con EXAMINA ARCANAS o EXAMINA BRICOLAJE" G_FEMENINO 'documento' "¿Cuál de todos? Hay muchas colecciones a mano..." G_MASCULINO 'documentos' "Son varias series de libros y documentos de temas varios: arcanas y bricolaje.^^ Si quieres ver alguna en particular, prueba con EXAMINA ARCANAS o EXAMINA BRICOLAJE" G_MASCULINO + G_PLURAL 'libro' "¿Cuál de todos? Hay muchas colecciones a mano..." G_MASCULINO 'libros' "Son varias series de libros y documentos de temas varios: arcanas y bricolaje.^^ Si quieres ver alguna en particular, prueba con EXAMINA ARCANAS o EXAMINA BRICOLAJE" G_MASCULINO + G_PLURAL 'colecciones' "Son varias series de libros y documentos de temas varios: arcanas y bricolaje.^^ Si quieres ver alguna en particular, prueba con EXAMINA ARCANAS o EXAMINA BRICOLAJE" G_FEMENINO + G_PLURAL 'arcanas' "Son de variados temas trascendentes, esotéricos, ocultismo o de todo lo que pueda ser ~opinable~:^ religión, mitología, demonología...^ psicología, gestión organizacional, táctica y estrategia militar....^ política, finanzas y economía...^ Humanidades, que les dice mamá..." G_FEMENINO + G_PLURAL 'bricolaje' "La sección ~práctica~ del librero:^ albañilería, carpintería, cerrajería, electricidad, fontanería, cristalería, mecánica, jardinería, empapelado, pintura...^ cocina, manualidades, decoración, vestuario, artes plásticas...^ electrónica, telecomunicaciones, computación, sistemas digitales en general...^ anatomía, química orgánica y ~de la otra~, artillería, artes marciales...^ ~¡Siempre listos!~ como dice papá." G_MASCULINO, antes [; Quemar: "Ni de broma. Hay no poco trabajo invertido en todo esto... y mi trasero me gusta como está, gracias."; ]; Decorado_Ampliado Decorado_Ampliado_Estudio_2 Estudio with describir 'mapa' "Es uno de los mapas de la ciudad, con los avistamientos de vampiros, los nidos identificados, los nidos por limpiar y los refugios: iglesias y casas ~seguras~." G_MASCULINO 'mapas' "Son los mapas de la ciudad, con los avistamientos de vampiros, los nidos identificados, los nidos por limpiar y los refugios: iglesias y casas ~seguras~." G_MASCULINO + G_PLURAL 'avistamientos' "Marcan los lugares donde alguien reporta haber visto algo que podría ser un vampiro.^ Los punkies, los ~góticos~ y otros por el estilo suelen ser señalados por la gente, pero papá dice que ~son gajes del oficio en este siglo~, y luego se ríe." G_MASCULINO + G_PLURAL 'nidos' "Marcan avistamientos que en efecto se trata de vampiros y que, para peor (~peor para ellos~, dice mamá) les ha gustado la ciudad.^ No suelen durar mucho en los mapas...^ Mamá y papá tienen mucha paciencia y mucha, mucha, mucha persistencia.^ Doy fé..." G_MASCULINO + G_PLURAL 'refugios' "Marcan lugares donde mamá, papá o yo mismo, si da el caso, pueden guarecerse si los pilla la noche fuera de casa y hay vampiros sueltos en la ciudad." G_MASCULINO + G_PLURAL 'iglesias' "Marcan los lugares donde hay iglesias, capillas, templos, santuarios o lugares de culto.... de cualquier culto que no sea satánico." G_FEMENINO + G_PLURAL 'seguras' "Son casas de gente que, no siendo cazavampiros, saben cómo protegerse de ellos.^ ~Simpatizantes aunque no militantes~, dice papá.^ Puedo entender su postura..." G_FEMENINO + G_PLURAL, antes [; Quemar: "Ni de broma. Hay no poco trabajo invertido en todo esto... y mi trasero me gusta como está, gracias."; ]; ! Objetos de Escenario del Estudio Objeto_Ventana VentanaEstudio "ventanas" Estudio; Objeto_Escenario Armario "armario" Estudio with nombre 'armario', descripcion [; print "Es un armario muy amplio, suele estar lleno de las herramientas de trabajo de mis padres."; if (self has abierto) "^El armario está abierto."; else "^El armario está cerrado."; ], has masculino recipiente abrible ~abierto; Objeto_Escenario Mesa_Estudio "mesa" Estudio with nombre 'mesa' 'escritorio', adjetivos 'trabajo', descripcion "La mesa de trabajo donde papá y mamá planifican sus cacerías y preparan sus implementos. Hay una prensa fija a la mesa." has femenino soporte; Objeto_Escenario Silla_Estudio "silla" Estudio with nombre 'silla', nombre_fp 'sillas', descripcion "Las sillas de la mesa, para trabajar cómodamente sentado.", despues [; Meterse: "Me siento en una de las sillas. Cómoda, pero nada especial..."; ], has femenino soporte entrable; Objeto_Escenario Prensa "prensa" Mesa_Estudio with nombre 'prensa', descripcion_larga [; print "La usan para sujetar madera... y para torturar gente que colabora con los vampiros.^ Cuando la usan para eso, mis padres no me dejan ver... y en algunos casos ~especiales~ me mandan de compras por el día. Ahora mismo, en todo caso, la prensa está "; if (self has abierta) print "abierta"; else print "cerrada"; if (Estacas in self) ", con un par de estacas dentro."; else "."; ], descripcion_corta [; print "La usan para sujetar madera."; if (self has abierta) print " Está abierta"; else print " Está cerrada"; if (Estacas in self) ", con las estacas dentro."; else "."; ], antes [; Coger, Empujar : "Está fuertemente sujeta a la mesa. De nada serviría, si no..."; Recibir : if ( (uno~=Estacas) && (self has abierto) ){ print "Lo intento, pero "; print (el) uno; " no cabe bien en la prensa..."; } ], despues [; Cerrar : if (Estacas in self) "Las estacas quedan fijas en la prensa."; ], has femenino recipiente abrible ~abierto transparente; Objeto_Escenario Herramientas "herramientas" Armario with nombre 'herramientas', descripcion [; print "Las usan mis padres para fabricar sus implementos de cacería:"; if (Mazo in Armario) { print " mazo"; if ((Formon in Armario) && (Estacas in Armario)) print ","; else if ( ((Formon in Armario) && (Estacas notin Armario)) || ((Formon notin Armario) && (Estacas in Armario)) ) print " y"; } if (Formon in Armario) { print " formón"; if (Estacas in Armario) print " y"; } if (Estacas in Armario) print " algunas estacas"; if ( (Mazo notin Armario) && (Estacas notin Armario) && (Formon notin Armario) ) " en este momento no hay nada para trabajar, en todo caso."; else "... y poco más."; ], antes [; Coger : if ( (Mazo notin Armario) && (Estacas notin Armario) && (Formon notin Armario) ) "Pero, vamos a ver: ¡si no hay ninguna herramienta!"; else if ( ((Formon in Armario) && (Estacas in Armario)) || ((Mazo in Armario) && (Estacas in Armario)) || ((Formon in Armario) && (Mazo in Armario)) ) "Pero, vamos a ver: ¿cuál, en particular?"; else if (Mazo in Armario) <>; else if (Formon in Armario) <>; else <>; ] has femenino nombreplural; ! Objetos del Estudio Objeto_Puzzle Mazo "mazo" Armario with nombre 'mazo', adjetivos 'madera', descripcion "Un sólido mazo de madera.", despues [; Coger: if ( (Mazo notin Armario) && (Formon notin Armario) && (Estacas notin Armario) && (Armario hasnt general) ) { give Armario general; "Listo. Ahora puedo preparar los implementos para mañana."; } ], has; Objeto_Puzzle Estacas "estacas de madera" Armario with nombre 'estacas', adjetivos 'madera', descripcion [; print "Estacas de madera, "; if (self hasnt general) "listas para afilarlas antes de ~usar~."; else "bien afiladas y listas para ~usar~."; ], listarse [; if (etapa_inventario==2) { if (self hasnt general) print " listas para afilarlas"; else print " bien afiladas"; rtrue; } ], antes [; Afilar: if (self has general) "¿Para qué? Ya están listas para ~usar~..."; if (self notin Prensa) "No puedo sostener las estacas lo suficientemente firme..."; else if (Prensa has abierto) "Las estacas se mueven demasiado en la prensa: no están bien sujetas."; else if (otro==0) { if ( ((Mazo in jugador) || (Mazo in localizacion)) && ((Formon in jugador) || (Formon in localizacion)) ) <>; else "¿Con qué las afilo? ¿¡Con las manos?!"; } else if ( ((otro==Mazo) && ((Formon in jugador) || (Formon in localizacion)) ) || ((otro==Formon) && ((Mazo in jugador) || (Mazo in localizacion))) ){ give self general; ! puntuacion++; Conseguido(3); "Da gusto cómo he aprendido mirando a papá: uso el mazo y el formón con fuerza y habilidad y las estacas quedan bien afiladas."; } else { print "No puedo afilar las estacas con "; print (el) otro; "."; } ], despues [; Coger: if ( (Mazo notin Armario) && (Formon notin Armario) && (Estacas notin Armario) && (Armario hasnt general) ) { give Armario general; "Tomo un par de estacas. Listo. Ahora puedo preparar los implementos para mañana."; } else "Tomo un par de estacas."; ], has femenino nombreplural; Objeto_Puzzle Formon "formón" Armario with nombre 'formon', descripcion "Un formón para tallar madera.", despues [; Coger: if ( (Mazo notin Armario) && (Formon notin Armario) && (Estacas notin Armario) && (Armario hasnt general) ) { give Armario general; "Listo. Ahora puedo preparar los implementos para mañana."; } ], has masculino; ! El Dormitorio Principal Habitacion Dormitorio_2 "El Dormitorio Principal" with descripcion_larga "El dormitorio de mis padres, que apenas suelen ocupar, está en penumbras a esta hora. Aparte de la cama matrimonial arrinconada en una esquina, frente a las ventanas, no hay mueble alguno. La cama está desocupada, así que mis padres aun no han vuelto de su cacería de hoy.^ Puedo entrar al baño o salir del cuarto por el oeste.", descripcion_corta "El dormitorio de mis padres, en penumbras. La cama está frente a las ventanas, en un rincón... y está desocupada: mis padres aun no han vuelto de su cacería de hoy.^ Puedo entrar al baño o salir del cuarto por el oeste.", al_o Pasillo_2, adentro Bano_2, afuera Pasillo_2, ; ! Objetos de Escenario del Dormitorio Principal Objeto_Ventana VentanaDormitorio2 "ventanas" Dormitorio_2; Objeto_Escenario Cama_Matrimonial "cama matrimonial" Dormitorio_2 with nombre_f 'cama' 'sabana' 'manta' 'frazada', nombre_fp 'sabanas' 'mantas' 'frazadas', adjetivos 'matrimonial', descripcion "La cama de mis padres, que suelen usar muy poco... y discretamente. La dejaron tendida, así que hay menos trabajo para mí.", antes [; Abrir, Meterse: "¿Y tener que tenderla luego? No gracias..."; Tocar: "Está blanda, suave... y fría."; ], has femenino soporte entrable; ! Objetos del Estudio Objeto_Puzzle Crucifijo "crucifijo" Cama_Matrimonial with nombre 'crucifijo' 'cruz', inicial "Sobre la cama hay un crucifijo.", listarse [; if (etapa_inventario==2) { if ( (localizacion==Cocina) || (localizacion==Bodega) ) print ", brillando levemente"; rtrue; } ], descripcion_larga [; print "El crucifijo de mamá, bendecido por el Papa, el Dalai Lama y Dios sabe quién o qué más. Curioso que mamá haya salido sin él."; if ( (localizacion==Cocina) || (localizacion==Bodega) ) { print "^Está brillando levemente."; if ( (Ataud hasnt abierto) && (Ataud hasnt general) ) "^Vaya... ¿tendré visitas ~inesperadas~?"; else "^Qué consuelo saber que esta cosa funciona bien..."; } else ".."; ], descripcion_corta [; print "Es el crucifijo de mamá, bendito a decir basta."; if ( (localizacion==Cocina) || (localizacion==Bodega) ) { print "^Está brillando levemente."; if ( (Ataud hasnt abierto) && (Ataud hasnt general) ) "^Vaya... ¿tendré visitas ~inesperadas~?"; else "^Qué consuelo saber que esta cosa funciona bien..."; } else ""; ], despues [; Coger: if (Cama_Matrimonial hasnt general) { give Cama_Matrimonial general; PrintAutoPausa( "Curioso. "); PrintAutoPausa( "De pronto"); PrintAutoPausa( " me siento más a salvo. "); PrintAutoPausa( "Primera vez que me pasa..."); CogeCruz.proyeccion(); CogeCruz2.proyeccion(); CogeCruz3.proyeccion(); rtrue; } ], has masculino; ! Baño Principal Habitacion Bano_2 "El Baño Principal" with descripcion_larga "El baño de mis padres, muy amplio, muy blanco y muy limpio.^ Mamá y papá se turnan y lo mantienen todo muy pulcro (no sé en qué momento) aunque me consta que apenas sí lo usan, así que no ha de darles mucho trabajo (creo).^ Y cómo no quiero darles yo más trabajo a mamá y papá, como regla, yo tampoco uso estas instalaciones.^ Puedo salir del baño para volver al dormitorio.", descripcion_corta "El baño de mis padres, muy amplio, muy blanco y muy limpio.^ Puedo salir del baño para volver al dormitorio.", afuera Dormitorio_2, ; ! Decorados del Baño 2 Decorado_Ampliado Decorado_Ampliado_Bano_2_1 Bano_2 with describir 'instalaciones' "Poca cosa, pero todo bien puesto: un espejo, un lavabo, un inodoro y una tina." G_FEMENINO + G_PLURAL 'espejo' "Es un espejo grande. La verdad, viéndome ahí me veo aun más pequeño de lo que realmente soy, pero mamá dice que ya creceré pronto" G_MASCULINO 'lavamanos' "Es un lavabo de porcelana común." G_MASCULINO 'lavabo' "Es un lavabo de porcelana común." G_MASCULINO 'porcelana' "La porcelana está muy blanca, muy limpia... y muy fría." G_FEMENINO 'grifo' "Es grifería tradicional. Está impecable." G_MASCULINO 'grifos' "Es grifería tradicional. Está impecable." G_MASCULINO + G_PLURAL 'taza' "Un inodoro sencillo de porcelana." G_FEMENINO 'water' "Un inodoro sencillo de porcelana." G_MASCULINO 'inodoro' "Un inodoro sencillo de porcelana." G_MASCULINO, antes [; Oler: "Huele a limpio. Mamá y papá están en todas..."; Abrir, Meterse, Entrar, Frotar: "No tengo necesidad, y como los que limpian aquí son mis padres, que ya trabajan lo suyo, paso de usar las instalaciones."; ] has femenino soporte entrable abrible; Decorado_Ampliado Decorado_Ampliado_Bano_2_2 Bano_2 with describir 'bañera' "Es una tina bien grande, con su cortina. Aquí se relajan papá y mamá, cuando pueden..." G_FEMENINO 'tina' "Es una tina bien grande, con su cortina. Aquí se relajan papá y mamá, cuando pueden..." G_FEMENINO 'cortina' "La cortina de la tina es de plástico opaco, sin diseño." G_FEMENINO, antes [; Oler: "Huele a limpio. Mamá y papá están en todas..."; Meterse, Entrar, Frotar: "No tengo necesidad, y como los que limpian aquí son mis padres, que ya trabajan lo suyo, paso de usar las instalaciones."; ] has femenino soporte entrable abrible; ! Planta Baja ! El Recibidor Conexion PuertaEntrada "puerta de la entrada" with nombre 'puerta', adjetivos 'entrada', descripcion [; print "La puerta de la entrada de casa, que en este momento está "; if (self hasnt abierta) " bien cerrada."; else " abierta."; ], antes [; Atacar, Tocar : "La puerta da un sonido seco."; ], has femenino escenario abrible; Habitacion Recibidor "El Recibidor" with descripcion_larga "El recibidor de casa es un tanto estrecho, pero sirve bastante bien para dar la bienvenida a casa a las visitas... esperadas.^ Las otras visitas, digamos, inesperadas, pueden entrar por cualquier parte... si uno se descuida aunque sea un día.^ Mantener una casa ~segura~ es no poco trabajo...^ Por la escalera se sube a la planta alta. Al este está el comedor, al oeste el estar y por el norte se llega a la cocina. Al sur se sale de casa.", descripcion_corta "El recibidor de casa, para dar la bienvenida a las visitas... esperadas.^ Por la escalera se sube a la planta alta. Al este está el comedor, al oeste el estar y por el norte se llega a la cocina. Al sur se sale de casa.", ! Si PuertaEntrada está abierta, se cierra la puerta al salir del Recibidor, ! salvo al ir a la Entrada o la Cocina antes [; Ir: if ((uno~=obj_s) && (uno~=obj_n) && (localizacion == self) && (PuertaEntrada has abierto)) { give PuertaEntrada ~abierto; print "Hay que estar atentos a las visitas inesperadas... así que cierro la puerta antes de salir de la habitación.^"; } ], ! Si PuertaEntrada está abierta, se cierra la puerta al llegar al Recibidor despues [; Ir: if ((localizacion == self) && (PuertaEntrada has abierto)) { give PuertaEntrada ~abierto; print "Hay que estar atentos a las visitas inesperadas... así que cierro la puerta una vez adentro.^"; } ], al_n Cocina, al_s PuertaEntrada, al_e Comedor, al_o Estar, arriba Pasillo_2, ! afuera [;<>;] ; ! La Entrada Habitacion Entrada "La Entrada" with descripcion_larga "La entrada de casa, desde donde puede verse nuestro vecindario, con sus casas y jardines.^ Los vecinos son gente amable, tranquila... e ignorante de lo que ocurre en casa, que si no, no estarían tan tranquilos ni serían tampoco vecinos, lo más probable.^ Como de costumbre, no se ve demasiada actividad a esta hora... lo que es buena cosa: lo inusual, en casa, casi siempre es aviso de problemas.^ Puedo entrar a casa por el norte.", descripcion_corta "La entrada de casa, desde donde puede verse el vecindario... y como de costumbre, con poca actividad a esta hora: buena cosa.^ Puedo entrar a casa por el norte.", al_n PuertaEntrada, adentro [;<>;], ; ! Decorados de La Entrada Decorado_Ampliado Decorado_Ampliado_Entrada Entrada with describir 'vecinos' "Brillan por su ausencia a esta hora. Les conozco bien... aunque ellos no a mí, por suerte." G_MASCULINO + G_PLURAL; ! El Estar Habitacion Estar "Estar" with descripcion_larga "El estar de casa, decorado con sencillez, es un cuarto con muy poco uso: por su trabajo, papá y mamá no suelen recibir demasiadas visitas sociales... pero, cuando las hay, es motivo de alegría y se las atiende como se debe. A estas horas, algo de luz entra por las ventanas e ilumina los muebles.^ Puedo volver al recibidor por el este.", descripcion_corta "El estar de casa, donde se atiende a las visitas como se debe. A estas horas, algo de luz entra por las ventanas e ilumina los muebles.^ Puedo volver al recibidor por el este.", al_e Recibidor, afuera Recibidor, ; ! Decorados del Estar Decorado_Ampliado Decorado_Ampliado_Estar Estar with describir 'muebles' "No mucho, la verdad: una mesa de centro, algunos sofás y un berger." G_MASCULINO + G_PLURAL; Objeto_Escenario Mesa_Centro "mesa" Estar with nombre 'mesa', adjetivos 'centro', descripcion "La mesa de centro del estar. No tiene decoraciones: menos trabajo para mí..." has femenino soporte; Objeto_Escenario Sofas "sofa" Estar with nombre_mp 'sofas', nombre_m 'sofa', descripcion "Un par de sofás para acomodar a las visitas... cuando las hay.", antes [; Tocar: "Los sofás son blandos y suaves."; ], despues [; Meterse: "Me siento en un sofá. Es bastante cómodo..."; ], has masculino soporte entrable; Objeto_Escenario Berger "berger" Estar with nombre 'berger', adjetivos 'reclinable', descripcion "El berger reclinable de papá. Apenas tiene uso.", antes [; Tocar, Empujar: "El berger es muy blando y suave. Al empujarlo, se reclina suavemente... y vuelve a su posición original al soltarlo, en completo silencio."; ], despues [; Meterse: "Me siento en el berger que se reclina silenciosamente. Es tan cómodo que siento pena por papá, que apenas lo usa..."; Salirse, Bajar : "Me bajo del berger... que vuelve a su posición original, en completo silencio."; ], has masculino soporte entrable; ! Objetos de Escenario del Estar Objeto_Ventana VentanaEstar "ventanas" Estar; ! El Comedor Habitacion Comedor "Comedor" with descripcion_larga "El comedor de casa, muy austero, es otro cuarto de poco uso: por su trabajo, papá y mamá suelen comer afuera y en casa usan la cocina de preferencia, como yo. Si la labor ha sido pesada, sin embargo, se prepara entonces una mesa muy abundante y muy variada. Hay que reponer fuerzas para seguir haciendo el trabajo bien...^ Poca luz entra por las ventanas. Puedo volver al recibidor por el oeste.", descripcion_corta "El comedor de casa, donde se reponen fuerzas después del trabajo.^ Poca luz entra por las ventanas. Puedo volver al recibidor por el oeste.", al_o Recibidor, afuera Recibidor, ; ! Decorados del Comedor Decorado_Ampliado Decorado_Ampliado_Comedor Comedor with describir 'muebles' "Una mesa con sus sillas." G_MASCULINO + G_PLURAL; Objeto_Escenario Mesa_Comedor "mesa" Comedor with nombre 'mesa', descripcion "La mesa del comedor. Se usa poco, la verdad..." has femenino soporte; Objeto_Escenario Silla_Comedor "silla" Comedor with nombre 'silla', nombre_fp 'sillas', descripcion "Las sillas de la mesa, para comer sentados... lo que en casa no ocurre seguido.", despues [; Meterse: "Me siento en una de las sillas. Cómoda, pero nada especial..."; ], has femenino soporte entrable; ! Objetos de Escenario del Comedor Objeto_Ventana VentanaComedor "ventanas" Comedor; ! La Cocina Conexion PuertaBodega "puerta de la bodega" with nombre 'puerta', adjetivos 'bodega', descripcion [; print "La puerta de la bodega, "; if (self hasnt abierta) { if ( (self hasnt general) && (Crucifijo in Jugador) ){ PrintAutoPausa( " bien cerrada."); <>; } else " bien cerrada."; } else " abierta... y un tanto rota."; ], antes [; Atacar, Tocar : if (otro==Crucifijo) { if (self hasnt general) { ! puntuacion++; Conseguido(4); give self general; CrucifijoPuerta.proyeccion(); rtrue; } else "El crucifijo brilla levemente al acercarme a la puerta.^ Mis padres se han traido trabajo a la casa y, para variar, yo tendré que hacerme cargo de las cosas que ellos dejaron tiradas..."; } else if (otro~=0) <>; else { if ( ((Mazo in jugador) || (Mazo in localizacion)) && ((Bate in jugador) || (Bate in localizacion)) && (self has general) ) <>; else "La puerta da un sonido seco."; } Abrir : if (self hasnt abierta) { if (otro==0) { if ( ((Mazo in jugador) || (Mazo in localizacion)) && ((Bate in jugador) || (Bate in localizacion)) && (self has general) ) <>; else "La puerta está cerrada... y por más que trato no se abre."; } else if (self hasnt general) { "No tiene sentido forzar la puerta porque sí.^ ¿Cómo se lo explico luego a mis padres?^ Nones..."; } else { if ( (otro~=Bate) && (otro~=Mazo) ){ print "Trato de abrir la puerta con "; print (el) otro; ", pero no hay caso... sigue cerrada."; } if ( ((otro==Mazo) && ((Bate in jugador) || (Bate in localizacion)) ) || ((otro==Bate) && ((Mazo in jugador) || (Mazo in localizacion))) ) { ! puntuacion++; Conseguido(5); give self abierta; PrintAutoPausa( "Pongo el bate en la puerta y,"); PrintAutoPausa( " con un buen golpe del mazo,"); PrintAutoPausa( " abro la puerta... "); PrintAutoPausa( "dejándola un poco rota.^"); PrintAutoPausa( "Vampiro encerrado y todo, "); ; PrintAutoPausa( "la que se va a montar, "); "cuando se enteren mis padres..."; } else { print "Golpeo la puerta con "; print (el) otro; ", pero no se mueve ni un poco."; } } } Cerrar : if (self has abierta) "Trato de cerrarla, pero la golpee de verdad bien duro; no encaja.^ La que se va a montar cuando se enteren mis padres..."; ], has femenino escenario abrible; Habitacion Cocina "Cocina" with descripcion_larga [; print "La cocina, donde preparo y como mi comida todos los días... y donde papá y mamá hacen otros preparados que no se pueden hacer en el estudio; los vampiros son muy sensibles a algunas recetas: algunas los atraen, otras los repelen... y otras pueden acabar con ellos.^ Papá es muy ducho en esto, pero Mamá cocina mucho, pero que mucho mejor: yo soy su pinche y su aprendiz; me gusta comer bien... y, además, hay que continuar el negocio familiar ¿saben?^ La heladera"; if (Receta in localizacion) print ", en la que se ve una receta,"; " está a un extremo del mesón, con las ventanas al centro y la cocina al otro lado. Sobre el mesón a un costado está la alacena. En una esquina está la puerta de la bodega.^ Puedo volver al recibidor por el sur."; ], descripcion_corta [; print "La cocina, donde se prepara la comida y otras cosas: aquí como todos los días y he aprendido además un par de cosas.^ La heladera"; if (Receta in localizacion) print ", en la que se ve una receta,"; " está a un extremo del mesón, con las ventanas al centro y la cocina al otro lado. Sobre el mesón a un costado está la alacena. En una esquina está la puerta de la bodega.^ Puedo volver al recibidor por el sur."; ], cada_turno [; ArrancarDaemon(self); ], cantidad 4, daemon [; if ( (Horno hasnt encendido) || (Pan notin Horno) ) { self.cantidad=4; PararDaemon(self); rtrue; } if (self.cantidad > 0) self.cantidad--; switch(self.cantidad) { 0: give Horno ~encendido; give Horno general; "¡Listo! El Horno se apagó, y ya está listo mi pan de ajo."; }; ], antes [; Ir : if ((uno==obj_abajo) || (uno==obj_adentro)) { if ( (PuertaBodega has abierta) && (PuertaBodega has general) ) { ! if ((Horno hasnt general) || ((Pan notin Jugador) && (Pan notin Limbo)) ) print if (Horno hasnt general) print "No creo que sea buena idea bajar así como así: si hay un vampiro ahí abajo, lo mejor es estar ~protegido~..."; if ( (VentanaDormitorio1 hasnt encendido) || (VentanaEstudio hasnt encendido) || (VentanaDormitorio2 hasnt encendido) || (VentanaEstar hasnt encendido) || (VentanaComedor hasnt encendido) || (VentanaCocina hasnt encendido) ) { if (Horno hasnt general) print " Además, sería "; else print "Será "; "mejor sellar primero las ventanas: si hay un vampiro ahí abajo, lo mejor es que no salga de casa... ni que lleguen más visitas ~inesperadas~..."; } if (Horno hasnt general) ""; } } ], ! Antes de entrar a la Cocina, se "activa" el Crucifijo si lo trae el jugador. despues [; Ir: if (localizacion == self) { ! Se verifica adenás si la PuertaEntrada está abierta, para texto animado o plano. if (PuertaEntrada has abierto) { give PuertaEntrada ~abierto; if ( (self hasnt general) && (Crucifijo in Jugador) ) { EntrarCocinaPuertaEntradaAbierta.proyeccion(); give self general; } else print "Hay que estar atentos a las visitas inesperadas... así que cierro la puerta antes de salir de la habitación.^"; } else if ( (self hasnt general) && (Crucifijo in Jugador) ) { EntrarCocina.proyeccion(); give self general; } } ], al_s Recibidor, abajo PuertaBodega, adentro [;<>;], afuera Recibidor, ; ! Objetos de Escenario de la Cocina Objeto_Escala Escalera_Bodega "escala" with esta_en [; if ( (PuertaBodega has abierta) && ((localizacion == Bodega) || (localizacion == Cocina)) ) rtrue; ] ; Objeto_Ventana VentanaCocina "ventanas" Cocina; Objeto_Escenario Alacena "alacena" Cocina with nombre 'alacena', descripcion [; print "Es una alacena bastante espaciosa. Aquí mamá guarda la comida no perecible."; if (self has abierto) "^La alacena está abierta."; else "^La alacena está cerrada."; ], has femenino recipiente abrible ~abierto; Objeto_Escenario Heladera "heladera" Cocina with nombre_f 'heladera' 'congeladora' 'nevera', nombre_m 'refrigerador' 'freezer' 'frigider' 'frigorifico', adjetivos 'blanca', descripcion [; print "Toda blanca, la heladera funciona quedamente. Aquí mamá guarda la comida fresca."; if (Receta in localizacion) print " Tiene una receta pegada."; if (self has abierto) "^La heladera está abierta."; else "^La heladera está cerrada."; ], antes [; Escuchar : "Suena apenas nada..."; Tocar: "Es suave y tibia al tacto."; ], has femenino recipiente abrible ~abierto; Objeto_Puzzle Receta "receta" Cocina with nombre_f 'receta', nombre_m 'papel', adjetivos 'pan' 'ajo' 'heladera' 'congeladora' 'refrigerador' 'freezer', descripcion "Es una receta de pan de ajo. Mamá la dejó para que la viera al venir a la cocina. Está en todas, mamá...", antes [; Coger: if (self notin Jugador) { move self to Jugador; give self ~escenario; "Coges la receta."; } else "Ya tienes la receta."; Leer : "La letra de mamá, ordenada y clara, dice:^^ ~Receta de Pan de Ajo:^ 1. Abrir el pan a la mitad.^ 2. Ponerle mantequilla dentro.^ 3. Cortar los ajos y poner ajos picados en el pan.^ 4. Cerrar el pan.^ 5. Cocinarlo al horno por 3 minutos.^ Cómetelo recién hecho, hijo: frío es un asco...~"; ], despues [; Dejar: if (localizacion == Cocina) { give self escenario; "La vuelvo a pegar a la heladera."; } ], has femenina legible escenario; Objeto_Escenario Meson "mesón" Cocina with nombre_m 'meson' 'mueble', nombre_f 'mesa', descripcion "La mesa del mueble de la cocina, con su cajonera. La alacena está por encima." has masculino soporte ; Objeto_Escenario Cajonera "cajonera" Cocina with nombre_f 'cajonera' 'gavetera', nombre_fp 'gavetas', nombre_m 'cajon', nombre_mp 'cajones', descripcion [; print "La cajonera del mueble de la cocina, "; if (self has abierto) "abierta."; else "cerrada."; ], has femenino recipiente abrible ~abierto; Objeto_Escenario Estufa "cocina" Cocina with nombre 'estufa' 'cocina', adjetivos 'electrica', descripcion "La estufa eléctrica para cocinar, con su horno." has femenino; Objeto_Escenario Horno "horno" Cocina with nombre 'horno' 'temporizador', adjetivos 'electrico' 'automatico', descripcion [; print "El horno eléctrico de la cocina, con su temporizador automático, "; if (self has abierto) print "está abierto"; else print "está cerrado"; if (Pan in self) { if (self has encendido) print " y cocinando mi pan"; else if (self has general) print " y con mi pan listo para comer adentro"; else print " y con mi pan listo para cocinar adentro"; } "."; ], antes [; Recibir : if (uno~=Pan) { if (uno==Mantequilla) "Mejor que no: quedaría una melcocha espantosa..."; if ( (uno==Ajos) || (uno==AjosPicados) ) "¿Ajos quemados? no gracias..."; else { print "¿¡Y para qué voy a meter "; print (el) uno; " al horno?!"; } } else if (Pan hasnt visitado) "Aun no está listo... no nos precipitemos..."; else if (Pan has abierto) "Si lo meto así, se va a tostar por dentro."; else if (self has general) "¿Para qué? Ya está listo para comer..."; Abrir : if ((Pan in self) && (self has encendido)) "El pan se está cocinando aun. Paciencia..."; Encender : if (self has abierto) "¿Encender un horno abierto? Seré niño, pero no imbécil..."; if (Pan in self) { if (self has general) "¿Para qué? El pan ya está listo para comer..."; } else "¿Encender el horno vacío? Seré niño, pero no imbécil..."; Apagar : if ( (Pan in self) && (self hasnt general) ) "Aun no está listo el pan... solo un poco más..."; Tocar : if (self has encendido) "¿Tocar el horno encendido? Seré niño, pero no imbécil..."; else if (self hasnt general) "Está frío."; else "Aun está tibio."; ], despues [; Encender : if (Pan in self) { ! puntuacion++; Conseguido(2); "Pongo el temporizador del horno unos 3 minutos... y ahora, a esperar un poco."; } ], has masculino recipiente transparente abrible ~abierto conmutable ~encendido; ! Objetos de la Cocina Objeto_Puzzle Mantequilla "mantequilla" Heladera with nombre_f 'mantequilla', nombre_m 'trozo', adjetivos 'contundente', descripcion "Un trozo contundente de mantequilla.", antes [; Comer : "Mejor que no: esto me va a caer un poco pesado..."; Oler, Probar : "Es levemente salado."; ], has femenino comestible; Objeto_Puzzle MantequillaEsp "mantequilla esparcida" Limbo with nombre 'mantequilla', adjetivos 'esparcida', descripcion "Mantequilla esparcida muy pareja sobre el pan.", antes [; Coger: "¿Y para eso trabaje tanto? Nones, ahí se queda..."; Oler, Probar : "Es levemente salado."; Comer : "Difícil: mejor cocino el pan antes..."; ], has femenino; Objeto_Puzzle Cuchillo "cuchillo" Cajonera with nombre 'cuchillo', adjetivos 'cocinar' 'afilado', descripcion "Un cuchillo para cocinar, bien afilado." has masculino; Objeto_Puzzle Ajos "ajos enteros en ristra" Alacena with nombre_mp 'ajos', nombre_m 'ajo', nombre_f 'ristra', adjetivos 'fragante' 'fragantes' 'entero' 'enteros', descripcion "Una ristra de ajos... muy fragantes.", antes [; Oler : "Es una aroma intenso y reconfortante. Ya estoy acostumbrado: cosas de familia..."; Comer : "Hay formas más elegantes de quedar protegido y así crudos son un poco fuertes. Uno también tiene gustos ¿saben?"; Probar: if (self hasnt general) { give self general; give AjosPicados general; "Hmmm... bocato di cardinale, que por cierto, me consta que es verdad. Los curas, cuanto más arriba en la curia, son blancos más ~apetecidos~ por los vampiros.^ Se usa mucho aromatizante en el Vaticano, por ejemplo, ya que Su Santidad no huele precisamente a rosas..."; } else "Hmmm... bocato di cardinale: me consta que es la pura y santa verdad."; Cortar : if (self notin Meson) "Mejor los pongo primero en el mesón de la cocina..."; else if (AjosPicados notin Limbo) "Ya no hace falta..."; else if (otro==0) { if ((Cuchillo in jugador) || (Cuchillo in localizacion) || (Cuchillo in Cajonera)) <>; else "¿Con las puras manos? Los voy a despedazar..."; } else if (otro==Cuchillo) { move AjosPicados to Meson; print "Con cuidado, como lo hace mamá, pelo, parto y pico los ajos con el cuchillo.^ Los ajos quedan desmenuzados y limpios."; if ( (VentanaDormitorio1 has encendido) && (VentanaEstudio has encendido) && (VentanaDormitorio2 has encendido) && (VentanaEstar has encendido) && (VentanaComedor has encendido) && (VentanaCocina has encendido) ) { move self to Limbo; ".. y menos mal; los ajos alcanzaron apenas."; } else ""; } else { print "No puedo cortar los ajos con "; print (el) otro; "."; } ], has masculino nombreplural comestible; Objeto_Puzzle AjosPicados "ajos picados" limbo with nombre 'ajos', adjetivos 'limpios' 'picados' 'pelados' 'partidos' 'desmenuzados', descripcion [; print "Una porción de ajos limpios y picados"; if (self in Pan) ", finamente esparcida en mantequilla."; else "."; ], antes [; Coger: if (self in Pan) "¿Y para eso trabaje tanto? Nones, ahí se quedan..."; Oler : "Es una aroma intenso y reconfortante. Ya estoy acostumbrado: cosas de familia..."; Comer : "Hay formas más elegantes de quedar protegido y así crudos son un poco fuertes. Uno también tiene gustos ¿saben?"; Probar: if (self hasnt general) { give self general; give Ajos general; "Hmmm... bocato di cardinale, que por cierto, me consta que es verdad. Los curas, cuanto más arriba en la curia, son blancos más ~apetecidos~ por los vampiros.^ Se usa mucho aromatizante en el Vaticano, por ejemplo, ya que Su Santidad no huele precisamente a rosas..."; } else "Hmmm... bocato di cardinale: me consta que es la pura y santa verdad."; Cortar : "Ya están cortados: si sigo así, van a quedar hechos polvo..."; ], has masculino nombreplural comestible; Objeto_Puzzle Pan "pan" Alacena with nombre_m 'pan', nombre_f 'hogaza', adjetivos 'fresco' 'fresca' 'ajo', listarse [; if (etapa_inventario==2) { if (self has abierto) { print ", abierto a la mitad"; if (MantequillaEsp in self) print ", con mantequilla"; if (AjosPicados in self) print " y ajo picado encima"; } else if ( (self has visitado) && (self hasnt abierto) ) { if (Horno hasnt general) print " de ajo preparado para el horno"; else print " de ajo listo para comer"; } rtrue; } ], descripcion [; print "Una buena hogaza de pan fresco"; if (self has abierto) { print ", cortada y abierta a la mitad"; if (MantequillaEsp in self) print ", con mantequilla untada en forma pareja"; if (AjosPicados in self) print " y ajo finamente esparcido sobre la mantequilla"; } else if ( (self has visitado) && (self hasnt abierto) ) { if (Horno hasnt general) print ", preparada y lista para el horno"; else print ", preparada y lista para comer"; } "."; ], antes [; Dejar: if (localizacion == Bodega) "No... se ensuciaría... y con lo que me costó hacerlo, no estoy para comer mugres..."; Oler : if (self hasnt visitado) "El olor es cálido y seco."; else "Está muy aromático y tentador."; Comer : if (Horno hasnt general){ "Aun no está listo para comerlo, pero con un poco de trabajo..."; } else { move self to Limbo; if (Ataud hasnt abierto) { PanAjo.proyeccion(); rtrue; } else "Me lo como rápidamente, pero la verdad es que ya no tenía apetito..."; } Probar: if (self hasnt visitado) "Está fresco y crujiente... mejor no desperdiciar ni una miga."; else "Se me hace agua la boca, pero no puedo desperdiciar ni una miga."; Tocar: if (Horno hasnt general) "Está esponjoso y crujiente."; else "Está esponjoso, crujiente... ¡y caliente!"; Cerrar : if (self hasnt visitado) "Aun no termino la receta... no nos precipitemos."; Abrir: if ( (self has visitado) && (self hasnt abierto) ) "¿Después de todo este trabajo? Nones..."; else if (otro~=0) <>; else <>; Cortar : if ( (self has visitado) && (self hasnt abierto) ) "¿Después de todo este trabajo? Nones..."; else if (self notin Meson) "Mejor pongo el pan en el mesón de la cocina primero..."; else if (self has abierto) "Ya está cortado: si sigo así, lo voy a destrozar..."; else if (otro==0) { if ((Cuchillo in jugador) || (Cuchillo in localizacion) || (Cuchillo in Cajonera)) <>; else "¿Con las puras manos? Los voy a despedazar..."; } else if (otro==Cuchillo) { give self abierto; "Abro el pan a la mitad, cortándolo con el cuchillo."; } else { print "No puedo cortar el pan con "; print (el) otro; "."; } Recibir : if (self hasnt abierto) "Si no lo corto primero, nada puedo echarle..."; else if ( (uno~=Mantequilla) && (uno~=Ajos) && (uno~=AjosPicados) ){ print "Vaya, "; print (El) uno; " no es parte de la receta que yo conozco..."; } else if (uno==Mantequilla) { if (MantequillaEsp in Limbo) { if (self notin Meson) "Mejor pongo el pan en el mesón de la cocina primero..."; else if (Cuchillo notin Jugador) "¿Con las puras manos? Lo voy a embadurnar y quedará demasiado grasoso..."; else { move MantequillaEsp to self; "Usando el cuchillo con cuidado, unto las mitades del pan con una porción generosa de mantequilla."; } } else "Ya está untado con mantequilla, no hay que pasarse o queda muy grasoso."; } if (uno==Ajos) "Enteros no sirven, hay que cortarlos primero..."; else if (uno==AjosPicados) { if (MantequillaEsp in Limbo) "Primero va la mantequilla y luego los ajos..."; else if (self hasnt visitado) { move AjosPicados to self; give self visitado; "Esparzo finamente el ajo picado encima de la mantequilla, cubriendo todo el pan."; } } ], despues [; Coger: if (Horno has general) "¡Está caliente!"; Cerrar : if ( (self has visitado) && (Horno hasnt visitado) ) { give Horno visitado; "¡Listo mi pan de ajo! Ahora, a hornearlo..."; } ], has masculino recipiente abrible ~abierto; ! La Bodega Habitacion Bodega "Bodega" with descripcion_larga [; print "La bodega de casa corresponde a las fundaciones originales de la casa y es mucho más antigua que casi todos los edificios de la ciudad. Está excavada en roca desnuda y se supone que conserva las cosas mucho más frescas.^ Según me han contado, la casa fue un nido de vampiros antes de que yo naciera, y en la bodega ~descansaban~ los... moradores anteriores: después de ~desalojarlos~, a mamá y papá les gustó el lugar y decidieron quedarse.^"; if (ataud has abierto) print "Es curioso como se dan las cosas... ya que ahora hay un ataud acá abajo, con papá ~descansando~ adentro.^"; else print "Hay un ataud acá abajo. Vaya...^"; "Puedo volver a la cocina escaleras arriba."; ], descripcion_corta [; print "La bodega de casa, donde se conservan las cosas al fresco de la roca.^ Los moradores previos ~descansaban~ aquí mismo, hasta que fueron ~desalojados~ por mamá y papá.^"; if (ataud has abierto) print "Es curioso como se dan las cosas... ya que ahora hay un ataud acá abajo, con papá ~descansando~ adentro.^"; else print "Hay un ataud acá abajo. Vaya...^"; "Puedo volver a la cocina escaleras arriba."; ], arriba PuertaBodega, afuera [;<>;], ; ! Objetos de Escenario de la Bodega Objeto_Escenario Rocas "rocas" Bodega with nombre_f 'roca' 'piedra', nombre_fp 'rocas' 'piedras' 'fundaciones', adjetivos 'desnuda' 'desnudas', descripcion "Las rocas desnudas de las fundaciones de la casa. Están en bruto.", antes [; Tocar : "Las rocas de las paredes están frías y son más bien ásperas."; ], has femenino nombreplural; Objeto_Escenario Ataud "ataud" Bodega with nombre 'ataud' 'cofre', adjetivos 'fina' 'madera', descripcion [; print "Es un ataúd de fina madera"; if (self hasnt abierto) ", bien cerrado. No entiendo para que se molestaron tanto mis padres; para un vampiro atrapado, con un cajón o una bolsa bastaba..."; else ", abierto... y con mi padre adentro."; ], antes [; Frotar : "No hacer falta: está como nuevo."; Atacar, Tocar : if (otro==Crucifijo) { if ( (self hasnt general) && (self hasnt abierto) ){ give self general; CrucifijoAtaud.proyeccion(); ""; } else "El crucifijo brilla levemente al acercarlo a ataud.^ Qué consuelo saber que esta cosa funciona bien..."; } else if (otro~=0) <>; else "El ataud da un sonido seco."; Abrir : if (self hasnt abierta) { if (otro==0) "El ataud está cerrado... y por más que trato no se abre."; else if ( (otro~=Formon) && (otro~=Mazo) ){ print "Trato de abrir el ataud con "; print (el) otro; ", pero no hay caso... sigue cerrado."; } if ( (otro==Formon) || (otro==Mazo) ){ if ( (Formon in Jugador) && (Mazo in Jugador) ) { ! puntuacion++; Conseguido(6); give self abierto; AbrirAtaud.proyeccion(); rtrue; } else { print "Encajo "; print (el) otro; " en el borde del ataud, pero no se mueve ni un poco."; } } } Cerrar : if (self has abierta) "No me atrevo, no sea que papá se despierte..."; ], has masculino recipiente abrible ~abierto; PSI VampiroEscenario "vampiro" with nombre 'vampiro', nombre_mp 'vampiros', descripcion [; if ( (Ataud has abierta) || (localizacion == Bodega) ) "No he visto vampiros por aquí... todavía."; else "No he visto vampiros por aquí... por suerte."; ], antes [; Examinar: rfalse; default : <>; ], esta_en [; if ( (localizacion ~= Bodega) || ( (localizacion == Bodega) && (Ataud hasnt abierta) ) ) rtrue; ] has masculino escenario; PSI Vampiro "tu padre" Ataud with nombre 'papa' 'vampiro' 'padre' 'corazon', descripcion [; if (self hasnt general) "Está como dormido, con el rostro muy pálido... y un par de agujeros de colmillos en el cuello. Pobre papá... parece que su última cacería no terminó bien."; else "Papá está temblando, sacudido por violentos espasmos. Apenas puede mover las manos. Pobre papá... debo poner fin su sufrimiento."; ], antes [; Tocar : <>; Escuchar: "No hace sonido alguno.^ Está como muerto..."; ], vida [; Atacar: if (otro==0) { if (self hasnt general) { PrintAutoPausa( "Como si no pasara nada, "); PrintAutoPausa( "Papá se revuelve inquieto, "); PrintAutoPausa( "y lo oigo musitar:^^"); PrintAutoPausa( "~¿Hijo?...~^^"); PrintAutoPausa( "Toda una vida en común "); PrintAutoPausa( "pasa frente a mis ojos "); PrintAutoPausa( "y "); PrintAutoPausa( "sin pensarlo "); PrintAutoPausa( "le respondo: "); <>; } else "Lo intento, pero papá se mueve demasiado..."; } else if (otro==Crucifijo) { if (self hasnt abierto) { give self abierto; CrucifijoVampiro.proyeccion(); rtrue; } else "No me atrevo a hacerlo de nuevo.^ Papá merece una muerte más limpia."; } else if (otro~=Estacas) { if (self hasnt general) { PrintAutoPausa( "Como si no pasara nada, "); PrintAutoPausa( "papá esquiva "); print (el) otro; PrintAutoPausa( ", y a medio alzar del ataud "); PrintAutoPausa( "lo oigo musitar:^^"); PrintAutoPausa( "~¿Hijo?...~^^"); PrintAutoPausa( "Toda una vida en común "); PrintAutoPausa( "pasa frente a mis ojos "); PrintAutoPausa( "y "); PrintAutoPausa( "sin pensarlo "); PrintAutoPausa( "le respondo: "); <>; } else { print "Intento darle con "; print (el) otro; ", pero papá se mueve demasiado..."; } } else { if (Mazo notin Jugador) { print "No puedo clavárselas a pulso. No soy tan fuerte como... como era papá."; if (Bate in Jugador) ".. y el bate no me sirve para esto."; rtrue; } else if (Estacas hasnt general) {PrintAutoPausa( "Golpeo su pecho con las estacas, "); PrintAutoPausa( "pero "); PrintAutoPausa( "no "); PrintAutoPausa( "logro "); PrintAutoPausa( "clavarlas... "); PrintAutoPausa( "¡porque no están afiladas!^"); if (self hasnt general) { PrintAutoPausa( "Papá se alza a medias del ataud, "); PrintAutoPausa( "y lo oigo musitar:^^"); PrintAutoPausa( "~¿Hijo?...~^^"); PrintAutoPausa( "Toda una vida en común "); PrintAutoPausa( "pasa frente a mis ojos "); PrintAutoPausa( "y "); PrintAutoPausa( "sin pensarlo "); PrintAutoPausa( "le respondo: "); <>; } else rtrue; } else if (self hasnt general) {PrintAutoPausa( "Como si no pasara nada, "); PrintAutoPausa( "papá esquiva "); print (el) otro; PrintAutoPausa( ", y a medio alzar del ataud "); PrintAutoPausa( "lo oigo musitar:^^"); PrintAutoPausa( "~¿Hijo?...~^^"); PrintAutoPausa( "Toda una vida en común "); PrintAutoPausa( "pasa frente a mis ojos "); PrintAutoPausa( "y "); PrintAutoPausa( "sin pensarlo "); PrintAutoPausa( "le respondo: "); <>;; } else { ! puntuacion++; Conseguido(8); banderafin = 2; ! PararDaemon(ambientador_universal); MatarVampiro1.proyeccion(); MatarVampiro2.proyeccion(); MatarVampiro3.proyeccion(); rtrue; } } Hablar : if (self hasnt general) { if ((Pan in Limbo) || ((Horno has general) && (Pan in Jugador))){ give self general; ! puntuacion++; Conseguido(7); HablarConPan.proyeccion(); rtrue; } else { banderafin = 1; ! PararDaemon(ambientador_universal); HablarSinPan1.proyeccion(); HablarSinPan2.proyeccion(); rtrue; } } else "Con las convulsiones y temblores, parece que mucho no me oye..."; ], has masculino; !------------------------------------------------------------------- ! Punto de Inicio !------------------------------------------------------------------- ! Aquí empieza el juego. Este es el punto para imprimir el mensaje ! inicial de bienvenida y puesta en situación [Inicializar tecla; ! Modo "verbose", descripciones siempre largas modomirar = 2; box "~Pan de Ajo~" "Un Relato de Humor ~Doméstico~" "Realizado por: Sebastián Armas (Incanus)" "(C) Año 2009 " "Release 01.01.02" "I para NO VER la Intro," "R para Recuperar una Partida" "Otra para Empezar"; ! Se inicializan conexiones para Puertas InicializarConexiones(); cambiarJugador(miJugador); ! Localización donde comienza el jugador localizacion = Cama; @read_char 1 -> tecla; if ( (tecla=='i') || (tecla=='I') ) ""; else if ( (tecla=='r') || (tecla=='R') ) <>; else { Introduccion1.proyeccion(); PrintPausa("",0); Introduccion2.proyeccion(); PrintPausa("",0); Introduccion3.proyeccion(); PrintPausa("",0); } ! Iniciar ambientador universal ! ArrancarDaemon(ambientador_universal); ]; cortometraje Introduccion1 with descripcion "Despierto de una agradable siesta... " "que parece que fue demasiado larga.^^" "Ya está atardeciendo... " "y por la luz que entra por las ventanas, " "creo que ya falta poco para el ocaso.^^" "Doy un suspiro.^^" "Mis padres no tardan en volver del ~trabajo~ " "y seguro que tengo cosas por hacer.^^" "Como siempre.^^" "Los cazadores de vampiros, " "como papá y mamá, " "no descansan mucho... " "pero la verdad es que sus hijos tampoco la llevamos fácil.^^" "No voy a entrar en los detalles de cómo educan los cazadores de vampiros a sus hijos, " "pero digamos que el rigor, " "la disciplina " "y la tolerancia al dolor, " "al cansancio " "y a la adversidad en general, " "son parte de la receta habitual...^^" "Papá dice, " "medio en broma, " "que un padre espartano, " "en la grecia antigua, " "les habría acusado de maltrato infantil...^^" "A mamá esto último no le causa mucha gracia... " "y con lo poco que sé de historia, " "yo tampoco me río, " "la verdad." ; cortometraje Introduccion2 with descripcion "En fin, más me vale que me levante " "y pronto: " "si para cuando lleguen mis padres no he cumplido con mi parte " "no lo voy a pasar nada de bien.^^" "No es que ellos no hagan nada en casa ¿eh? " "pero el hecho es que me consta que me esfuerzo más que los hijos de otros padres, " "con trabajos menos peligrosos o demandantes: " "policías, " "conductores de ambulancias, " "controladores aéreos, " "escuadrones anti-bombas, " "bomberos... " "toda esa gente, " "ni que decir sus hijos, " "llevan una vida muelle comparada con nuestro día a día.^^" "~Nuestro~ es un decir, claro.^^" "Mis padres aún no me dejan participar en sus cacerías. " "Cuando pregunto, " "en todo caso, " "ya no dicen ~¡No!~ como antes.^^" "Desde hace un mes o así me dicen: " "~Ya te tocará, hijo...~^^" "Apenas puedo esperar.^^" ; cortometraje Introduccion3 with descripcion "Mientras tanto, " "tengo cosas para hacer... " "y un poco de hambre, la verdad.^^" "Si mamá no dejó algún bocado preparado, " "ya me las arreglaré...^^" "Si uno no tiene iniciativa, " "no se dura mucho en este ~negocio~, " "¿saben?^^" ; cortometraje CogeCruz with descripcion "Mamá y papá no son devotos de ninguna religión, " "pero las respetan todas " "y se llevan bien con todos los líderes de los cultos no satánicos:^^" "~A esos no los molestamos, " "¡no son nuestro problema!~ dice papá " "y luego calla con una sonrisa enigmática.^^" "Todavía no logro sonsacarle de ~quién~ son ~problema~ los cultos satánicos... " "aunque, " "la verdad, " "con lo poco que sé de los demonios," " no sé si quiero saber las respuestas.^^" "En todo caso, " "somos bienvenidos en (casi) todas partes " "y (casi) nadie nos ha negado refugio o ayuda, " "espiritual o material: " "no creerían la de ritos en que somos ~bendecidos~, " "de cuando en cuando, " "o los artículos sagrados que han llegado a usar mis padres en su trabajo." ; cortometraje CogeCruz2 with descripcion "Lo raro es que si les hago preguntas más trascendentes " "(qué o quién, " "para qué, " "por qué), " "mis padres se encogen de hombros y me recalcan que, " "después de todo este tiempo, " "hay sólo tres cosas de las que están realmente seguros:^^" "Ellos me quieren más que a nada ni a nadie.^^" "Lo Infinito y la Vida no gustan de los vampiros. " "Ni un poquito.^^" "Con Lo Infinito y con la Vida no se jode. " "Ni de broma.^^" "...y en eso están ellos: " "queriéndome a su manera y evitando que los vampiros sigan jodiendo con nosotros, " "con la Vida " "y con Lo Infinito... " "en ese orden.^^" ; cortometraje CogeCruz3 with descripcion "Quiero muchísimo a mamá y papá, " "pero a veces temo por ellos...^^" "¡Y a veces quisiera pedirles, " "a Lo Infinito y a la Vida, " "que nos dieran un poco de paz!" ; cortometraje EntrarCocinaPuertaEntradaAbierta with descripcion "Hay que estar atentos a las visitas inesperadas... " "así que cierro la puerta " "antes de salir de la habitación.^^" "De pronto, " "noto un tanto sorprendido " "que el crucifijo está brillando levemente." "^Vaya..." "^¿Tendré visitas ~inesperadas~?^" ; cortometraje EntrarCocina with descripcion "De pronto, " "noto un tanto sorprendido " "que el crucifijo está brillando levemente." "^Vaya..." "^¿Tendré visitas ~inesperadas~?^" ; cortometraje CrucifijoPuerta with descripcion "El crucifijo brilla levemente, " "al acercarlo a la puerta. " "Incluso, " "sale algo de humo, " "aunque la puerta no parece quemarse.^^" "Vaya.^^" "Parece que mis padres se trajeron trabajo a la casa. " "Tendré que hacerme cargo... " "y, " "para variar, " "esta vez son ellos los que han dejado cosas tiradas, " "y en la bodega nada menos, " "para que yo las recoja." ; cortometraje PanAjo with descripcion "El sabor... " "el aroma... " "el sonido de la corteza " "al quebrarse...^" "Esto del pan de ajo es, " "sin duda, " "una de las cosas más agradables de esta lata, " "protegerse de los vampiros, " "ya que ninguno los otros métodos de ~protección~ se disfruta tanto como éste.^" "Bueno, " "ya está. " "Nada como el estómago lleno, " "y el aroma del ajo, " "para sentirse satisfecho... " "y a salvo." ; cortometraje AbrirAtaud with descripcion "Pongo el formón en la tapa y, " "con un buen golpe del mazo, " "abro la tapa del ataúd... " "y adentro " "encuentro " "a " "papá.^^" "Es papá...^^" "Mi padre...^^" "Pobre papá... " "parece que su última cacería no terminó bien " "y decidió volver a casa " "a ~descansar~.^^" "Tendré que ayudarlo " "para que descanse de verdad...^^" "Es papá.^^" "Mi padre." ; cortometraje CrucifijoAtaud with descripcion "El crucifijo brilla fuertemente, " "al acercarlo al ataud. " "Salen hasta un par de chispas luminosas, " "aunque el ataud no parece quemarse.^^" "Vaya.^^" "Definitivamente, " "mis padres se trajeron trabajo a la casa. " "A lo mejor es mi iniciación " "¡como cazador! " "y me lo quisieron hacer fácil.^^" "Son lo mejor, " "mis padres..." ; cortometraje CrucifijoVampiro with descripcion "El crucifijo brilla como un sol, " "al acercarlo a papá. " "De papá comienza a salir algo de humo " "y un olor nauseabundo...^^" "Y retiro el crucifijo, " "espantado.^^" "Papá... " "o lo que alguna vez fue mi padre, " "merece una muerte más limpia." ; cortometraje MatarVampiro1 with descripcion "Apoyo la estaca en su corazón, " "mientras el... " "vampiro me mira " "con horror, " "temblando en forma descontrolada. " "Con lágrimas de pena y de ira, " "golpeo la estaca con el mazo.^^" "El chorro de sangre, " "que salta de la boca del monstruo, " "es oscuro y rancio... " "y casi me salpica.^^" "El mazo golpea " "una " "y " "otra " "vez, " "hasta que, " "por fin, " "la estaca se hunde en el pecho del vampiro, " "que ya no se mueve.^^" "Asqueado, " "miro sus ojos vidriosos, " "donde no se ve ninguna chispa, " "nada en lo absoluto " "que recuerde a papá."; cortometraje MatarVampiro2 with descripcion "Subo a la cocina.^^" "Por las ventanas " "contemplo el ocaso.^^" "Tengo que descansar " "y reponer fuerzas " "después del ~trabajo~.^^" "Mamá no volvió con papá, " "y, " "probablemente, " "llegará de visita pronto...^^" "y tendré que recibirla " "y atenderla a élla, " "también, " "como se debe."; cortometraje MatarVampiro3 with descripcion "Mi familia ya no existe... " "pero el ~negocio~ " "aún no se termina.^^" "Aún tengo cosas para hacer.^^" "Como siempre..." ; cortometraje HablarConPan with descripcion "~¡Hola, papá!~^^" "Papá abre los ojos, " "los fija en los míos... " "y empiezo a sentir que " "mi voluntad " "desaparece. " "Papá... " "o lo que alguna vez fue mi padre, " "sonríe " "y entre sus labios " "se aparecen unos horribles dientes, " "afilados y amarillentos... " "pero el olor a ajo " "ha llegado a sus sentidos " "y la sonrisa desaparece, " "reemplazada por un rictus de ira " "y desprecio. " "Sus manos se mueven apenas, " "y su cuerpo comienza a sacudirse " "violentamente.^^" "Pan de ajo: " "no falla nunca..." ; cortometraje HablarSinPan1 with descripcion "~¡Hola, papá!~^^" "Papá abre los ojos, " "los fija en los míos... " "y empiezo a sentir que " "mi " "voluntad " "desaparece. " "Papá... " "o lo que alguna vez fue mi padre, " "sonríe " "y entre sus labios " "se aparecen unos horribles dientes, " "afilados y amarillentos... " ; cortometraje HablarSinPan2 with descripcion "^^...y ya nada más importa. " "Papá se alza de su reposo, " "me abraza " "y pronto " "siento " "su " "dulce " "beso " "en el cuello.^^" "Papá me levanta en sus brazos, " "como no lo hacía hace años, " "y me acuna amorosamente, " "mientras susurra:^^" "~Mamá llegará pronto, " "y juntos saldremos de cacería, " "como una familia unida y feliz...~^^" "Le sonrío, " "mientras acaricia mi pelo, " "y la luz de la tarde, " "que entra por la escalera, " "se desvanece, " "dulcemente..." ; ! LINEAS DE GRAMATICA ! Definiciones para ayuda Verb 'ayuda' * -> ayuda * topic ->ayuda; [AyudaSub; ZIPI_RunMenuT(ZIPI_Menu1); @erase_window $ffff; JugadorA(localizacion); ]; ! Definiciones para pistas Verb 'pistas' * -> pistas * topic ->pistas; [PistasSub; ZIPI_RunMenuT(ZIPI_Menu3); @erase_window $ffff; JugadorA(localizacion); ]; ! Definiciones para Bajar y Subir Verb 'desciende' * -> Bajar; Verb 'asciende' * -> Subir; ! Definiciones para Conversar !Verb 'conversa' !* 'a' noun -> Hablar !* 'con' noun -> Hablar !* noun -> Hablar; ! Definiciones para Muebles Verb 'acuestate' 'tiendete' 'recuestate' * 'en' noun -> Meterse * noun -> Meterse; ! Definiciones para lectura [ LeerSub; <>; ]; Extend 'lee' first * legible -> Leer; ! Definiciones para Estirar o Doblar Ropa Limpia [EstirarSub; "No necesita que lo arregle."; ]; Verb 'estira' 'alisa' 'tiende' 'extiende' 'dobla' 'ordena' * noun -> estirar; ! Definiciones para puzzle de armario Verb 'guarda' * held 'en' noun -> Meter; ! Definiciones para Afilar Verb 'afila' 'aguza' * noun -> afilar * noun 'con' held -> afilar; [AfilarSub; "No creo que pueda afilar con eso..."; ]; ! Definiciones para puzzle de pan Verb 'unta' 'esparce' * noun 'en' noun -> PonerSobre * 'el' noun 'en' noun -> PonerSobre * 'la' noun 'en' noun -> PonerSobre; ! Definiciones para puzzles con Abrir con... Extend 'abre' first * noun -> Abrir * noun 'con' held -> Abrir; Extend 'golpea' * noun 'con' noun -> Tocar * 'el' noun 'con' noun -> Tocar * 'la' noun 'con' noun -> Tocar * 'a' noun 'con' noun -> Tocar * 'al' noun 'con' noun -> Tocar; ! Definiciones para puzzles de Tocar con... Extend 'toca' first * noun -> Tocar * noun 'con' held -> Tocar; ! Definiciones para Clavar... Verb 'clava' * noun -> Atacar * noun 'con' held -> Atacar; ! Definiciones para Atacar Extend 'ataca' * noun 'con' held -> Atacar * 'a' noun 'con' held -> Atacar; !Definiciones para Sellar Ventanas Verb 'sella' * noun -> Sellar * noun 'con' noun -> Sellar * 'el' noun 'con' noun -> Sellar * 'la' noun 'con' noun -> Sellar * 'a' noun 'con' noun -> Sellar * 'al' noun 'con' noun -> Sellar; [SellarSub; "Eso no puede sellarse..."; ];