constant titular "Esta es mi primera aventura"; constant historia "GOLPE A LOS NAZIS.^^DESPUES DE UN LARGO PERIODO ENCARCELADO EN UNA PRISION MILITAR ALEMANA CONSEGUI ESCAPAR, Y HA LLEGADO EL MOMENTO DE VENGAR ESTE SUFRIMIENTO.^ ME LLAMO TED, SOY UN COMANDO BRITANICO ESPECIALMENTE ENTRENADO Y CON UN PERFECTO CONOCIMIENTO DE LA LENGUA ALEMANA.^ EL MANDO BRITANICO ME HA DADO ORDENES DE APROPIARME, SI SON CIERTOS LOS RUMORES, DE UNOS PLANOS DE UN ARMA SECRETA QUE VAN A CONSTRUIR LOS ALEMANES Y QUE PUEDE LLEGAR A SER DECISIVA EN EL TRANSCURSO DE LA GUERRA.^ SE HA ASEGURADO POR INTELIGENCIA QUE EN UN PUEBLO ITALIANO LLAMADO VINCENZZO SE GUARDAN ESTOS PLANOS DEL PROYECTO.^MI DEBER ES ROBARLOS Y ENTREGARLOS AL JEFE DE LA RESISTENCIA LOCAL."; constant debug; constant admitir_comando_salidas; constant admitir_infinitivos; Include "EParser"; Include "Acciones"; INCLUDE "FACILITAR"; INCLUDE "GRAMATICA"; include "fhablaoo.h"; global x; global blo; !*************LOCALIZACIONES habitacion Pueblo "UN PUEBLO LLAMADO VINCENZZO" with descripcion [; if (pueblo has visitado) "El pueblo está atravesado por una avenida arbolada que al NORTE termina en la iglesia. Hacia el ESTE veo un bar, al OESTE una pequeña tienda y al NOROESTE se levanta lo que parece ser el cuartel de mando de los nazis."; else "Después de varios dias me caminar por senderos montañosos llego al final de mi camino. Aparece ante mi un bonito pueblo llamado Vincenzzo. Aunque pequeño, sus casas son verdaderos hogares para estas gentes, cosa que no tengo yo desde que empezó esta maldita guerra.^El pueblo está atravesado por una avenida arbolada que al NORTE termina en la iglesia. Hacia el ESTE veo un bar, al OESTE una pequeña tienda y al NOROESTE se levanta lo que parece ser el cuartel de mando de los nazis."; ], irrelevante 'avenida' 'bar' 'calle' 'mesas' , al_n iglesia , al_no cuartel , AL_E bar, al_s "No es buen momento para echarse atrás.", al_o sastreria, has luz; habitacion IGLESIA "LA IGLESIA." with descripcion [; if (iglesia has visitado) "En su interior las familiares imagenes de santos y vírgenes me observan en su quietud. DENTRO se encuentra la capilla y al ESTE el altar mayor."; else "La iglesia se levanta como símbolo de esperanza a estas gentes sometidas al yugo de la barbarie nazi. Aunque en la sombra, estos sacerdotes han ayudado, incluso arriesgando sus vidas, a los partisanos que escapan de los alemanes.^En su interior las familiares imagenes de santos y vírgenes me observan en su quietud. DENTRO se encuentra la capilla y al ESTE el altar mayor."; ], adentro capilla, al_e altar, al_s pueblo; HABITACION SASTRERIA "LA SASTRERIA. " with descripcion [; if (camarero.ensenado==1 ) "Según me ha informado el camarero, el dueño de esta sastreria es el jefe de la resistencia local, un tal Pietro.^Veo a un hombre trabajando sobre unos paños de algodón."; else if (sastreria has visitado ) "El dueño sigue sin aparecer..."; else "Es una pequeña tienda de confección y arreglo de ropas. ^-¡Hola!...-No hay nadie, volveré en otro momento."; ], al_e pueblo; habitacion CUARTEL "EL CUARTEL DE MANDO." with descripcion[; if (cuartel has visitado) "En la puerta continúa el centinela vigilando la entrada."; else "Es sin duda el edificio más bonito del pueblo, su fachada soporta el escudo de armas de su propietario, quizás un acaudalado noble de la región, pero ahora se encuentra invadido por las tropas nazis.";], irrelevante 'escudo', al_se pueblo , adentro [; if (uniforme has puesto){ print "El centinela se cuadra ante mí y al mostrarle mi tarjeta de identificación me deja acceder sin problemas."; return hall;} else "~-NEIN.NO SE ACERQUE-. Me grita el soldado. ^Mi presencia sin justificar le pone nervioso y me invita a que me aleje de la puerta. Será mejor hacerle caso o quizás me arreste por sospechoso.";]; habitacion hall "EL HALL DEL CUARTEL." with descripcion "Un sitio enorme, decorado exquisitamente con cuadros y tapices, pero donde la tropa camina de un sitio para otro sin fijarse en la belleza que los rodea. ^Numerosos soldados andan de un lado hacia otro y aunque encuentro varias puertas, algo me dice que enfrente se encuentra el objetivo de mi misión, hay una puerta con un letrero que dice ~COMANDANCIA~.", afuera cuartel, adentro puertahall; objeto puertahall "Puerta del despacho del comandante" hall with nombre 'puerta', descripcion "La puerta tiene un letrero que dice ~COMANDANCIA~.", si_cerrada "Intento abrirla pero está cerrada con llave...", si_abierta "Está abierta, no se ve a nadie y accede al despacho del comandante.", puerta_a comandancia, direcc_puerta adentro, con_llave llave_sastre, despues[; quitarcerrojo: print "Sí, como me figuraba, la llave de Olga me ha sido de gran utilidad y ahora hay que entrar con cuidado por si hubiera alguien...";<>; ], has femenino estatico puerta abrible cerrojo cerrojoechado ~abierta; habitacion comandancia "EL CUARTO DEL COMANDANTE." with descripcion[; if (comandancia has visitado) "Estupendo, sigue sin haber nadie..."; else "El cuarto es amplio y en este momento no hay nadie. El lugar está exquisitamente decorado por bellas obras de arte seguramente robadas a lo largo de la marcha militar desde que pisaron suelo italiano.";], irrelevante 'obras' 'arte', afuera hall; habitacion capilla "LA CAPILLA." with descripcion [; if (capilla has visitado) "El sacerdote sigue enfrascado en sus lecturas,"; else "Un sacerdote se encuentra escribiendo unas notas.";], irrelevante 'notas', afuera iglesia; habitacion altar "EL ALTAR." with descripcion "Una larga mesa adornada de un blanquísimo mantel es el santo lugar donde descansan las escrituras, así como el cáliz, símbolo de la eucaristía.", irrelevante 'caliz' 'mantel' 'escrituras', al_o iglesia; HABITACION bar "EL BAR." with descripcion [; if (x==2) { arrancardaemon (bar); "El camarero sigue tras la barra del bar.^ Por la descripción que me han dado veo que la oficial que está sentada en una mesa bebiendo cervezas junto con algunos de sus camaradas, es Olga. ^Bebe como una esponja, ahora se levanta y se dirige al baño, la verdad es que no me extraña nada en absoluto."; } else if (bar has visitado) {print " El lugar ya se encuentra más concurrido, y el camarero ahora se encuentra verdaderamente ocupado.";} else "El local aunque no es muy amplio sí tiene unas cuantas mesas donde sentarse tranquilamente además de una fila de taburetes en la barra. El water está al fondo. ^Al entrar me encuentro al camarero limpiando vasos tras la barra. ^-Buenos dias.- me dice. ^-Buenos dias -le contesto amigablemente al tiempo que le pido una cerveza, pues tanto caminar me ha dado una sez terrible...Me la bebo despacio pensando cómo conseguir la información que ando buscando."; ], irrelevante 'vasos' 'barricas', al_o pueblo, adentro [; if (olga in wc && frasco in cisterna ) { print "^^Forzando la puerta consigo entrar..."; return wc;} if (olga notin wc) return wc; else if (olga in wc) "~Toc, toc.^El baño está ocupado..., pero creo que ya sale. ^Volveré a intentarlo." ; ], cada_turno [; give bar ~general;], daemon [; if (bar has general ){ move olga to wc; switch (random(2)) {1: if (jugador in bar) "Olga se dirige al baño."; 2: if (jugador in bar)"Parece que Olga ha bebido demasiadas cervezas y tiene ganas de orinar."; }} else give bar general; move olga to bar; ]; habitacion wc "EL RETRETE DE MUJERES." with descripcion [; if (olga in wc && frasco in cisterna) "Olga esta tendida en el suelo. El cloroformo la ha dejado completamente dormida. Cuando despierte creerá que se ha desvanecido por culpa de la bebida."; else "El water de mujeres está bastante más limpio que el de caballeros, pero no deja de ser una letrina con un agujero en el suelo y la cisterna de agua encima."; ], irrelevante 'letrina' 'agujero', despues [; if (olga in wc && frasco in cisterna) { move bloc to localizacion; move llave to localizacion; x=0; parardaemon (bar);} ], antes[; meter, ponersobre:if (uno == cera && otro== llave ) { move molde_de_cera to jugador; remove cera; "Obtienes un molde perfecto de la llave, quizás sea útil sacar una copia.";} ], afuera bar; !*********PERSONAJES personaje centinela "centinela" cuartel with nombre 'centinela' 'soldado', inicial "En la puerta un soldado fuertemente armado vigila la entrada", descripcion "Esta gente está preparada para disparar ante la más mínima sospecha.", inicializarQuips [; self.quipson(0);], vida [; atacar: "No querrás que todo el ejército se me eche encima."; ], has animado ; PERSONAJE camarero "camarero" bar with nombre 'camarero' 'barman' 'barero', descripcion "Este hombre, con su cuerpo bonachón, me inspira confianza nada más verle.", enunciado [linea; switch (linea) { 1: "-He llegado hace poco a este pueblo, y es muy bonito, pero no demasiado animado por lo que he visto hasta ahora."; 0: "-Quizás pueda usted ayudarme, busco a Pietro, un antiguo amigo mío."; 3: "-Pietro me ha dicho que su hija fué hecha prisionera por una tal Olga, ¿quién es esta mujer?..."; } ], respuesta [linea; switch (linea) { 1:self.quipoff (1); "-Los alemanes no son buenos vecinos, desde que llegó el nuevo comandante se muestran excesivamente recelosos y es mejor no tener problemas con ellos. ^No es agradable vivir con tus enemigos paseando delante de tus narices."; 0: if (camarero.ensenado==1) "- Usted también lo ha pasado mal. Tenga cuidado no le descubran los alemanes o volverá al infierno de donde ya consiguió salir... creo que puedo confiar en usted si le digo que Pietro es el dueño de la sastreria, pero le recomiendo que no tenga que arrepentirme de darle esta información."; else "-No es buena idea que los forasteros vayan preguntando tanto acerca de los vecinos de un tranquilo pueblo, no es que dude de sus buenas intenciones, pero ..."; if (sastre.ensenado_sastre==1) self.quipon (3); 3:self.quipoff (3); "-Es una oficial cruel y única persona que sabe el paradero de Laura. ^Suele venir a beber con los perros de sus compañeros, y la verdad es que bebe tanta cerveza que se pasa más tiempo en el WC que en la mesa."; } ], inicializarquips [; self.quipson (2,0,1); ], ensenado 0, vida [; atacar: "No es buena idea empezar a tener enemigos entre los vecinos."; mostrar: if (uno== tatuaje) {camarero.ensenado=1; "Me subo el puño de la camisa y le muestro mi número de preso tatuado en mi brazo, fruto de mi estancia en un campo de prisioneros, y entonces cambia su expresión, se vuelve más cordial."; } ], has animado escenario; PERSONAJE cura "cura" capilla with nombre 'cura' 'sacristan' 'sacerdote', descripcion "Este afable religioso me invita a pasar unos momentos de paz en su compañia.", enunciado [linea; switch (linea) { 0:"-Buenos dias padre, hace poco que he llegado al pueblo y busco a un amigo mío llamado Pietro."; 1: "-¿He visto muchos soldados alemanes, ¿qué están haciendo aquí?."; 3: if (camarero.ensenado==1) "-¿A la hija de Pietro?, ¿cómo ha sido?."; else "-¿Quién es su hija?.";} ], respuesta [linea; switch (linea) { 0: self.quipoff (0); self.quipon (1); "-Buenos dias, usted no es de estos lugares y no tengo el placer de conocerle, pero es mejor que los alemanes no se fijen en usted o tendrá problemas, no les gustan los extraños. No conozco a nadie con ese nombre."; 1: self.quipoff (1); self.quipon (3); "-Nos tienen completamente vigilados, creen que aquí reside una facción de la resistencia, incluso han secuestrado a la hija del sastre."; 3:self.quipoff (3); if (camarero.ensenado==1) "-Fué hecha prisionera como represalia a un atentado realizado en estas montañas, pero nadie sabe a dónde se la han llevado."; else "-Se llama Laura, y fué hecha prisionera como represalia por un atentado, pero nadie sabe a dónde se la han llevado presa.^Desde entonces su padre se encuentra destrozado."; } ], inicializarquips [; self.quipson (1, 0); ], has animado escenario; PERSONAJE sastre "sastre" sastreria with nombre 'sastre' 'pietro', descripcion "Da pena encontrar un hombre tan abatido.", ensenado_sastre 0, enunciado [linea; switch (linea) { 0:"-Buenos dias Pietro..."; 1 :"-En el bar me han dicho dónde encontarle, pero ha sido la comandancia británica quienes me han puesto en antecedentes."; 2: "-Eso no es posible, sé su problema: su hija, pero no por ello debe dar la espalda a sus compatriotas, debe ayudarnos a robar los planos de un arma secreta, que creo que se guardan en el cuartel del comandante."; 3: "-Su hija, ¿cómo fué hecha prisionera?."; 4: "-He descubierto en unos papeles que estaban en posesión de Olga que su hija se encuentra en la carcel de Catania."; 5:"-Quisiera que me ayudara a conseguir una copia de este molde..."; } ], respuesta [linea; switch (linea) { 0: self.quipon (1); if (blo ==1 ) {self.quipon (4);print "-Hola Ted.- Me dice levantando su mirada de la tela.";} if (molde_de_cera in jugador){ self.quipon (5);} else "-¿Quién le ha dicho mi nombre, no sé de qué me habla..."; 1: self.quipoff (1); self.quipon (2); "-Entonces usted sabrá que ya no estoy en activo, me he retirado..."; 2: self.quipoff (2); self.quipon (3); "-Me siento vigilado, si supiera dónde se encuentra mi hija tendría la oportunidad de liberarla y eso me daría mayor libertad de movimientos y la capacidad de ayudarle en su trabajo."; 3:self.quipoff (3); sastre.ensenado_sastre = 1; x=2; "-La capturaron hace 2 meses y desde entonces no sabemos nada, sólo que la responsable de su prisión es Olga ~la loba~, una oficial nazi especialmente sádica.^Hemos intentado secuestrarla pero nunca va sola a ningún sitio.^ El único momento que se puede intentar es en el bar, donde suele pasar horas bebiendo cerveza."; 4: self.quipoff (4); move uniforme to jugador; remove pasaporte; "-Es una estupenda noticia, ahora podré dar aviso a nuestros camaradas de Catania para que la liberen.^Muchas gracias por su ayuda, en su ayuda voy a entregarle un uniforme de oficial alemán con unos papeles de identificación falsificados.Quizás le sea de gran utilidad."; 5: self.quipoff (5); print "-Veré qué puedo hacer, primero ~démelo~..."; } ], inicializarquips [; self.quipson (1, 0); ], vida [; atacar: "Nunca traicionaría a mis camaradas"; dar: if (uno ==molde_de_cera ) { remove uno ; move llave_sastre to jugador; "Le doy el molde y al cabo de unos pocos minutos me entrega una llave, réplica del molde que le había entregado."; } ], has animado escenario; objeto olga "Olga la loba" with nombre 'olga' 'oficiala' 'nazi' 'alemana', descripcion [; if (Olga in bar) "Es una soldado alta y fuerte, no me estraña que la apoden la loba...^No me gustaría caer en sus garras."; if (Olga in wc) "Está completamente dormida.";], vida[; hablar: "Mejor no perder el tiempo con ella.";], has animado escenario propio ; !*********OBJETOS objeto limbo; objeto caja "Caja fuerte" comandancia with nombre 'caja' 'fuerte', descripcion "Es una caja de seguridad con un sistema de combinación de números para abrirse.", inicial "Puedes ver una caja de seguridad apoyada en la pared.", antes[; abrir: print "Intentaré con los primeros números que se me ocurran..."; pause(); print "No, no se abre. Veamos con el año de subida al poder de Hitler..."; pause(); ; ], despues[; abrir: banderafin=2; "Eureka, sí, aquí están los famosos planos de las armas secretas.^Aparecen detallados su ubicación, características técnicas y materiales necesarios para su construcción... ^Además se va a instalar la fábrica en esta zona... ^Mis superiores van a tener trabajo a partir de ahora en boicotear este proyecto, de ello depende el fin de la guerra y la victoria para los aliados. Sin estas armas en manos de los nazis venceremos a Alemania.";], has femenino estatica recipiente abrible cerrojo cerrojoechado ; objeto cuadros "cuadros" hall with nombre 'cuadros' 'tapices', descripcion "A pesar del ambiente que tienen que soportar no dejan de ser hermosos lienzos de épocas pasadas donde Italia era libre y señora de su destino.", has nombreplural escenario ; objeto bloc "bloc con anotaciones" with nombre 'bloc' 'libreta', descripcion "Se describen unas direcciones... y ¡caramba!, hace referencia también al destino de ~Laura~. ^^Laura Biaggi: Confinada en la carcel de Catania.", despues [;give blo=1;], antes[; coger: "Mejor dejarlo con ella, si se despertara y no lo encontrara podría alertar a toda la comandancia.";], has oculto; objeto llave "llave " with nombre 'llave' 'llavecita', descripcion "Parece una llave importante, está sujeta a su mano por una cadenita.", inicial "Al registrarla a conciencia descubres un bloc y una pequeña llave.", antes [; coger: "No puedo quitársela, mejor si pudiera hacerme una copia..."; cortar: "Si desaparece de su mano la echará en falta y eso es peligroso."; ], has femenino soporte; objeto llave_sastre "llave del molde" limbo with nombre 'llave', descripcion "No sé para qué sirve, pero ya lo descubriré.", has femenino; objeto cuchillo "cuchillo" with nombre 'cuchillo' 'machete', descripcion " Es un cuchillo de reglamento de las fuerzas armadas alemanas."; objeto armarito "armarito" altar with nombre 'armarito' 'armario' , descripcion "Es un pequeño armario con una cruz roja pintada en su puerta que se encuentra tras el altar.", has recipiente abrible ~abierto estatico; objeto cisterna "cisterna de agua del water" wc with nombre 'cuba' 'wc' 'water' 'cisterna', descripcion "Es un recipiente donde se acumula el agua para que cuando se tire de la cadena vacíe el contenido y limpie el retrete.", has recipiente escenario femenino abierto; objeto frasco "frasco de cloroformo" armarito with nombre 'frasco' 'medicamento' 'cloroformo' 'anestesico', descripcion "Es un potente anestésico.", antes [; beber, probar : "No querrás quedarte dormido y no acabar tu misión."; ], despues [; meter: if (otro== cisterna) move frasco to cisterna; "Primero le quito el tapón y lo meto en el agua donde se diluye con rapidez."; ], has recipiente ; objeto mechero "mechero" with nombre 'mechero' 'encendedor', descripcion "Un bonito encendedor usado por el ejército alemán.", antes [; quemar: <>; ], despues [; encender: "Da una buena llama y bastante calor, podría derretir casi cualquier cosa."; ], has conmutable; objeto pasaporte "pasaporte " with nombre 'pasaporte ', descripcion "Espero que los de inteligencia hayan hecho bien su trabajo falsificando este pasaporte italiano."; objeto esposas "esposas" with descripcion "Pueden servirme para maniatar a mis enemigos." has femenino nombreplural; objeto tatuaje "tatuaje" with nombre 'tatuaje' 'tatoo', descripcion "Este número tatuado en mi brazo demuestra que estuve preso en un campo de concentración.", antes [; desvestir, dar: "Imposible hacerlo."; ], has prenda puesta; objeto velas "velas" altar with nombre 'velas' 'cirios', descripcion "Simples velas para alumbrar las estatuas de los santos.", antes [; quemar : if (mechero in jugador && mechero has encendido) { move cera to jugador; "La cera de la vela se derrite goteando";} else "No puedes hacerlo."; ], has femenino nombreplural; objeto cera "cera caliente" limbo with nombre 'cera' , descripcion "Es la cera caliente.", has femenino; objeto molde_de_cera "molde de la llavecita" with nombre 'molde', descripcion "Es un molde perfecto de la llave."; objeto uniforme "traje de oficial" limbo with nombre 'uniforme' 'traje', descripcion "Es un flamante uniforme de las SS y con el grado de teniente.", has prenda; objeto documentacion "tarjeta de identificacion" limbo with nombre 'documentacion' 'tarjeta', descripcion "Dice que me llamo Otto Kalterbruner: Coronel de las SS.", has femenino; !******INICIALIZAR [ Inicializar o; localizacion=pueblo; move cuchillo to jugador; move pasaporte to jugador; move mechero to jugador; move tatuaje to jugador; modomirar=2; objectloop (o ofclass personaje) {o.inicializarquips ();} ]; [ AyudaSub; CLS(); print "********************************************************************************^ A lo largo del juego te vas a encontrar en diferentes lugares, con diferentes objetos y personas. Para interactuar con tu entorno tienes una serie de comandos llamados ~verbos~ que se usan en imperativo o en infinitivo junto con el objeto que estas utilizando. Estos son los verbos que puedes usar, aunque quizá algunos no sean útiles para esta aventura(entre parentesis, la abreviatura):^^ Ir [punto cardinal]: norte(n), sur(s), este(e), oeste(o) y ^adentro(entrar), afuera(salir) ^noreste(ne), sureste(se), noroeste(no), suroeste(so)^^ Saca Pon Ataca Arriba Abajo^ Entra Sal Mata Excava Llena^ Ponte Sacate Reza Enfunda Desenfunda^ Tira Empuja Lanza Ata Desata^ Habla con Pregunta Escucha Enciende Apaga^ Mira Examina Bebe Huele Come^ Grita Canta Prueba Da Llena^ Coge Deja Espera Piensa Muestra^ Abre Cierra Corta Besa Lee^ ********************************************************************************^ Comandos útiles:^ Puntuacion Inventario(i) Salidas (X) Pistas -breve ayuda-^ Salvar y Recuperar -un juego a disco-^ Quit -para salir- (q) ^ **Con la FLECHA ARRIBA del cursor puedes repetir las últimas órdenes que has realizado.** ********************************************************************************"; pause(); <>; ]; Verb 'ayuda' 'help' * -> Ayuda; [ Pause i width; width = 0->33; if (width == 0) width = 80; spaces (width - 18); font off;print "[ Pulsa Espacio ]"; font on; do { @read_char 1 0 0 i; } until (i==32 or 10 or 13); CLS(); ]; [pistassub; switch (localizacion) { pueblo: "Intenta examinar todos los sitios."; sastreria:"Habla con el sastre."; iglesia:"Recoge todos los objetos."; bar:"Habla con el camarero y consige su confianza."; wc: if (x==2) "Intenta que cuando Olga entre en el baño pueda quedarse dormida y así registrarla por si sabe algo."; else "Por ahora sigue investigando."; } ]; verb 'pistas' * -> Pistas; [ CLS ; @erase_window -1; ];