constant historia "Curriculum vitae"; constant titular "^(C) 2001,2002 Presi (Enrique D. Bosch)^ Puede distribuirse libremente bajo licencia GNU GPL^"; constant ADMITIR_INFINITIVOS; constant HAY_CURIOSIDADES; replace dibujarlineaestado; replace comersub; include "EParser"; object mensajeslibreria with antes [; tocar: "No tienes manos ni brazos con los que tocar."; probar,beber: <>; oler,escuchar,excavar,cortar,saltar,soplar, frotar,columpiar,gesticular,agitar,retorcer,lanzar, hablar,responder,preguntar,cantar,trepar,dormir,coger: "Dada tu naturaleza, eres incapaz de hacer eso."; dejar,sacar,ponersobre,meter,vaciaren,dar,mostrar, quitarcerrojo,echarcerrojo,encender,quemar,apagar,abrir, cerrar,desvestir,vestir: "Dada tu naturaleza, eres incapaz de hacer eso."; atacar: "Eres demasiado insignificante como para conseguir algo mediante esa actitud."; nadar: if (jugador in utero) <>; if (jugador in trompa && membrana.agujero) <>; "Es lo que estás haciendo constantemente."; ir: switch(ml_n) { 2: "No sabes lo que son los puntos cardinales."; } irambiguo: "No sé adónde quieres ir."; miscelanea: switch(ml_n) { 19: "No percibes bien como eres. Pero sabes que al menos tienes cabeza y cuello."; 30: "No sé a qué te refieres."; 37: "Dada tu naturaleza, eres incapaz de hacer eso."; } ], ; include "Acciones"; include "Facilitar"; include "BajoNivel"; include "barra"; objeto_barra_estado barra_estado with modo BE_COMPUESTO, disposicion 1 1 true BE_AVENTURA BE_JUNTO 1 true BE_TEXTO BE_JUNTO 1 true BE_LOCALIDAD, texto [; print ": "; ], ; [ dibujarlineaestado; barra_estado.dibujar(); ]; habitacion testiculos "En casa" ! ---------------------------------------- with descripcion "Te encuentras suspendido en el interior de un líquido ligeramente nutritivo, te sientes agusto, este es tú hogar. A tu alrededor notas la presencia de un gran número de congeneres, compañeros y a la vez rivales tuyos, muy similares a ti. Eres jóven, no hace mucho que naciste.", tiempo_restante, tiempo_agotado [; print "^De repente el medio en el que te encuentras comienza a perturbarse, se acaba la calma, fuerzas desconocidas te impulsan hacia no sabes dónde, y no sólo a ti, también a todos tus semejantes. Debido al empuje empezáis a desplazaros con gran rapidez, tanta rapidez que apenas puedes sentir nada, sólo una fuerte aceleración "; if (condon has puesto) condon.atrapado(); else { print "y cuando te quieres dar cuenta ya no estás en el mismo sitio.^^"; pausa(); borrarpantalla(); jugadorA(utero,2); arrancarreloj(alimentarse,1); } ], antes [; ayuda: "Déjate llevar por la naturaleza."; ], ; objeto descrcasa "lugar" testiculos with nombre_f 'casa', nombre_m 'hogar' 'lugar', genero G_MASCULINO, descripcion [; <>; ], has escenario; habitacion utero "Gran estancia" ! --------------------------------------- with descripcion "Estás en una gran extensión de espacio, inmerso y sumergido en un gran océano de fluido viscoso, excitante y muy nutritivo, tanto que contiene el alimento necesario para sobrevivir; pero ya no te sientes tan agusto como antes, por momentos notas como si te quemaras un poco. Aunque ya no sois tantos, por todas partes, tanto por delante, como por detrás, como por los lados como por arriba y como por abajo hay seres casi idénticos a ti moviéndose frenéticamente y desplazándose en una única dirección. La tensión se vive en el ambiente.", antes [; nadar,irambiguo: <>; ayuda: "La cuestión es si debes ir a alguna parte."; ], ; objeto alimentarse utero with tiempo_restante, tiempo_agotado [; self.cont++; switch (self.cont) { 1: print "^Pronto necesitarás alimentarte.^"; 2,3:print "^Te sientes algo débil. Necesitas alimentarte.^"; 4,5:print "^Te sientes muy débil. Necesitas alimentarte urgentemente.^"; 6: banderafin=1; } arrancarreloj(self,1); ], cont 0, has escenario; objeto moriru utero with tiempo_restante, tiempo_agotado [; if (self.no) { self.no=false; arrancarreloj(self,1); "^Ya va quedando menos gente por aqui y eso no es un buen síntoma, si todo el mundo se va por algo será."; } banderafin=1; "^Muchos de tus compañeros ya se han ido, muchísimos más yacen muertos por todas partes, unos pocos, aun vivos pero moribundos intentan realizar un último esfuerzo en su agonía... y tú formas parte de este último grupo, hasta que terminas por perecer."; ], no true, has escenario; objeto descrestancia "estancia" utero with nombre_f 'estancia' 'extension', nombre_m 'lugar' 'espacio' 'oceano', adjetivos 'gran', genero G_FEMENINO, descripcion [; <>; ], has escenario; habitacion trompa "Amplio conducto" ! ------------------------------------- with descripcion "Te encuentras ahora en un lugar bastante lejano, si bien no tan extenso como en el que te encontrabas anteriormente, aunque sigue siendo muy grande, otro océano. Frente a ti no muy lejos, percibes un gran objeto, es una bola enorme.", antes [; ayuda: "Quizá debas conocer mejor cómo eres."; ], ; objeto descrtrompa "conducto" trompa with nombre_f 'estancia' 'extension' 'conducto', nombre_m 'lugar' 'espacio' 'oceano', adjetivos 'amplio' 'lejano' 'grande' 'gran', genero G_MASCULINO, descripcion [; <>; ], has escenario; objeto ovulo "bola" trompa with nombre_f 'bola' 'esfera', nombre_m 'objeto', adjetivos 'grande' 'gran' 'enorme' 'luminosa' 'blanca', genero G_FEMENINO, descripcion [; print "Es una gran esfera, es enorme y luminosa, muchísimos seres como tú se dirigen a ella e intentan penetrar en su interior sin conseguirlo, la gruesa pared lo impide."; if (membrana.agujero) print " Pero tú si que tienes un pequeño agujero delante de ti para entrar."; print "^"; ], antes [; meterse,entrar: if (membrana.agujero) { banderafin=3; print "A través del agujero practicado en la pared de la bola consigues entrar en ella, es decir, entra tu cabeza, porque tu cuello y tu cola parecen quedarse fuera, parece que ya no los necesitas, se desprenden de tu cuerpo.^^"; pausa(); print "^Tan pronto como has entrado, el agujero que hiciste se cierra rápidamente y el resto de la pared parece reforzarse aun más, intuyes que si alguno de tus compañeros lanzara ese chorro ácido ya no conseguiría entrar, eso te da cierta seguridad.^^"; pausa(); print "^Impulsado por fuerzas desconocidas para ti, comienzas un viaje hacia el centro de la gran bola por el interior de ella; vas esquivando otras bolitas rojas pequeñas que se encuentran a tu alrededor.^^"; pausa(); print "^Al fin llegas a otra pared, esta mucho más fina que la anterior y que te deja paso sin resistirse.^^"; pausa(); print"^Te encuentras ahora en una subbola dentro de la gran bola, no muy lejos de ti percibes una pequeña cabeza, mas o menos del mismo tamaño que la tuya. Parece tener las cosas de las que tú careces, poco a poco os vais acercando y os unís.^^"; pausa(); print "^Sientes que tú ya no eres tú, o si lo eres pero ya no eres lo mismo, ahora eres algo más, más grande, más importante, o por lo menos lo serás en un futuro próximo, sientes que tienes toda una vida por delante.^^"; pausa(); borrarpantalla(); print "^Finalmente, el óvulo fecundado comienza a experimentar una serie de cambios y culmina instalándose en la mucosa interna del útero donde se alimentará, desarrollará y formará el feto.^^"; pausa(); return true; } "No hay ningún sitio por donde entrar a la bola. Su resistente pared lo impide."; girarpor,darvuelta: "Das una vuelta completa a la bola, parece ser igual por todas partes."; probar,escupir: <>; disolver: return membrana.disolver(); ], has escenario; objeto interior "interior de la bola" trompa with nombre 'interior' 'dentro', adjetivos 'bola' 'esfera' 'objeto' 'grande' 'gran' 'enorme' 'luminosa' 'blanca', descripcion "No puede saberse que hay exactamente dentro de la enorme bola, tendrás que estar dentro para descubrirlo.", antes [; meterse,entrar: <>; ], has escenario; objeto membrana "pared de la bola" trompa with nombre_f 'pared', nombre_m 'muro', adjetivos 'bola' 'esfera' 'objeto' 'grande' 'gran' 'enorme' 'luminosa' 'blanca' 'blanco' 'duro' 'dura' 'impenetrable' 'infranqueable', genero G_FEMENINO, descripcion [; if (self.agujero) "¡El muro ahora dispone de un pequeño agujero delante de tí!"; else "Es un muro aparentemente impenetrable pero algo te induce a querer acceder al interior de lo que esconde."; ], agujero false, antes [; meterse,entrar: <>; probar,escupir: <>; disolver: return self.disolver(); ], disolver [; if (otro==enzima) <>; if (otro==nothing) return false; "Con eso no puedes disolver la pared de la bola."; ], has femenino escenario; objeto _agujero "agujero en la pared de la bola" with nombre_m 'agujero' 'boquete' 'butron' 'acceso', nombre_f 'perforacion' 'entrada', adjetivos 'bola' 'esfera' 'objeto' 'grande' 'gran' 'enorme' 'luminosa' 'blanca' 'blanco' 'pequeno' 'pequena' 'pared' 'muro' 'en', genero G_MASCULINO, descripcion "Es el pequeño agujero que has realizado en la pared de la bola. Lo tienes justo delante de tu cabeza.", antes [; meterse,entrar: <>; ], has escenario; ! Objetos comunes --------------------------------------------------------- objeto liquido "líquido" with nombre 'liquido' 'fluido' 'alimento' 'nutriente' 'ambiente' 'sustancia', adjetivos 'viscoso' 'nutritivo' 'excitante' 'muy' 'ligeramente', descripcion "El líquido donde te encuentras inmerso es tu medio natural, sin él no podrías sobrevivir.", esta_en testiculos utero trompa, antes [; comer,coger,probar,beber: if (~~(jugador in utero)) return false; print "Tomas el alimento que necesitas del medio y sientes como forma parte de ti.^"; alimentarse.cont=100; pararreloj(alimentarse); arrancarreloj(moriru,10); return true; nadaren: ; ], has masculino escenario; objeto otros "otros" with nombre_m 'otro' 'congener' 'companero' 'rival' 'semejante' 'hermano' 'paisano' 'ser', nombre_mp 'otros' 'congeneres' 'companeros' 'rivales' 'semejantes' 'hermanos' 'paisanos' 'seres', adjetivos 'casi' 'identicos' 'iguales' 'mis' 'tus', genero G_MASCULINO+G_PLURAL, descripcion [; print "Son seres que intuyes idénticos a ti"; if (jugador in utero) print ". Se están desplazando con bastante celeridad en una cierta dirección. Algunos perecen en sus intentos"; print ".^"; return true; ], antes [; comer: "¡No puedes alimentarte de ellos!, no es cuestión de moralidad, es que físicamente no puedes."; seguira,meterse: if (jugador in utero) <>; "No van a ninguna parte para que debas seguirlos."; atacar: "Podrías hacerlo, pero solo consegurías agotarte y no conseguir tu verdadero objetivo. Tu instinto te lo impide."; ], esta_en testiculos utero trompa, tiempo_restante, tiempo_agotado [; banderafin=1; print "^Uno de tus compañeros rivales ha conseguido penetrar en la gran bola, introduce su cabeza por un agujero que ha practicado en la pared, su cola queda fuera.^^"; pausa(); print "^Nada más entra, las paredes se cierran"; if (membrana.agujero) print ", incluido tu propio agujero que habías realizado,"; print " y se vuelven aun más impenetrables que antes, no crees que haya manera posible de entrar"; if (membrana.agujero) print ", ni siquiera volviendo a usar tu saliva ácida,"; print " y si no puedes entrar no crees que haya manera de sobrevivir.^^"; pausa(); print "^Al cabo de unas horas, quizá algún día, tú y todos tus semejantes acabáis muriendo de inanición.^"; ], has escenario; class parte_esp with genero G_FEMENINO, esta_en testiculos utero trompa, has escenario; class parte_esp_jug class parte_esp with antes [; comer: "¡No puedes comerte a tí mismo!"; ], ; parte_esp_jug cuerpo "cuerpo" with nombre 'cuerpo', descripcion [; <>; ], has masculino; parte_esp_jug cabeza "cabeza" with nombre_f 'cabeza' 'testa', nombre_m 'ovoide', descripcion "Tu cabeza, parece ser no mucho más que un ovoide. Dispones de una pequeña boca en ella.", ; parte_esp_jug poro "boca" with nombre_f 'boca' 'cavidad', nombre_m 'poro' 'agujero', adjetivos 'pequeno' 'pequena', descripcion "Realmente no es más que un pequeño poro, esta pequeña cavidad contiene saliva.", antes [; escupir: <>; ], ; parte_esp_jug enzima "saliva" with nombre_f 'saliva', nombre_m 'escupitajo' 'gapo' 'salivazo', adjetivos 'acida' 'acido' 'boca', descripcion "La saliva es ácida, podría fundir una pared.", antes [; escupir,lanzar,dejar: if (otro~=membrana && otro~=ovulo && otro~=nothing) { print "Escupes un chorro de saliva ácida sobre ", (el) otro, " pero no sirve de nada.^"; return true; } if (~~(jugador in trompa)) "Escupes un chorro de saliva ácida, pero en este momento no sirve de nada."; if (membrana.agujero) "Vuelves a lanzar la saliva, pero no surte ningún efecto, el agujero ya está realizado."; membrana.agujero=true; membrana.&adjetivos-->9='agujereado'; membrana.&adjetivos-->10='agujereada'; membrana.&adjetivos-->11='penetrado'; membrana.&adjetivos-->12='penetrada'; poro.&nombre_m-->1='.'; move _agujero to trompa; "Te acercas todo lo que puedes a la gran bola, buscas el punto idóneo y lanzas un chorro de tu saliva ácida que actúa sobre la pared de la bola, disolviendo una pequeña parte de ella y produciendo un pequeño agujero."; ], ; parte_esp_jug cuello "cuello" with nombre 'cuello', genero G_MASCULINO, descripcion "El cuello es el nexo de unión entre la cabeza y la cola.", ; parte_esp_jug cola "cola" with nombre_f 'cola' 'extremidad' 'extension', nombre_m 'rabo' 'flagelo', adjetivos 'cuerpo', descripcion "Si, debes tener cola, o al menos notas una extensión de tu cuerpo.", antes [; empujar,agitar: if (~~(jugador in utero)) "Mueves la cola ligeramente y avanzas un poco, pero no vas a ningún lugar, te sientes bien donde estás."; if (alimentarse.cont~=100) "Te sientes demasiado débil."; pararreloj(moriru); print "Mueves la cola con vigor y comienzas a avanzar rápidamente junto a tus semejantes, adelantando a algunos y siendo adelantado por otros, no sabes adónde te diriges pero tu instinto de ordena continuar.^^"; pausa(); print "^Parece que has avanzado una eternidad pero aun no has llegado donde se supone que tienes que llegar y como aun te quedan energías para seguir pues continuas avanzando.^^"; pausa(); print "^Ya estás llegando.^^"; pausa(); borrarpantalla(); jugadorA(trompa,2); arrancarreloj(otros,17); return true; ], ; class parte_esp_otro class parte_esp with adjetivos 'otro' 'congener' 'companero' 'rival' 'semejante' 'hermano' 'paisano' 'otros' 'congeneres' 'companeros' 'rivales' 'semejantes' 'hermanos' 'paisanos' 'ser' 'seres' 'casi' 'identicos' 'iguales', descripcion [; print (_El) self," es muy similar ",(tuyo_propio) self,".^"; return true; ], antes [; comer: <>; ], ; parte_esp_otro cabeza_otro "cabeza de otro" with adjetivos 'cabeza' 'ovoide' 'testa', ; parte_esp_otro cuello_otro "cuello de otro" with genero G_MASCULINO, adjetivos 'cuello', ; parte_esp_otro cola_otro "cola de otro" with adjetivos 'cola' 'rabo' 'extremidad' 'flagelo' 'extension', ; objeto condon with atrapado [; print "pero, hay algo que te para bruscamente, te has dado un gran tortazo contra un muro impenetrable, un muro que parece extenderse infinitamente, pero por suerte, pese al gran impacto, continúas vivo. Todos tus compañeros que te rodean han seguido la misma suerte que tú.^^"; pausa(); borrarpantalla(); print "Antes de que tú y los tuyos pudierais reaccionar os dais cuenta de que estáis envueltos, encerrados por todas partes por ese gran muro, que ahora se ha convertido en un gran envoltorio, una gran prisión. No hay salida. Os quedan muy pocos días de vida, hasta que se os acabe el alimento que teneis.^^"; pausa(); print "^"; print "Pero todo el mundo merece una segunda oportunidad.^^"; pausa(); give condon ~puesto; borrarpantalla(); dibujarlineaestado(); anuncio(); inicializar(); ; ], has puesto; ! Funciones --------------------------------------------------------------- [ inicializar; localizacion=testiculos; arrancarreloj(testiculos,2); ]; [ pausa; esperartecla("[Pulsa cualquier tecla]^"); ]; [ tuyo_propio o; switch (o.genero) { G_MASCULINO: print "al tuyo propio"; G_FEMENINO: print "a la tuya propia"; } ]; [ mensajemuerte; textollamativo(" ¡¡¡ Lo lograste !!! "); banderafin=2; ]; [ curiosidades; print "La idea para esta nano surgió en principio para la nanocomp 2 y aunque en principio parecía muy sencilla de desarrollar al final no pudo ser completada en ese plazo, y ya sabeis que prefiero esperar, a presentar algo incompleto dentro de unos plazos artificiales. Además hubo momentos en los que creí que esto realmente no era una nano, aunque la manera en la que se presenta al jugador el ~mundo~ a traves del sentir de nuestro protagonista es algo innovador y es casi una aventura guiada estilo ~Fotopía~ si no fuera por los contados puzzles que presenta.^ Pero no había otro concurso (mención aparte los premios hispanos) de minis al que presentar esto, y al mismo tiempo llegué a la conclusión de que esto si que era una nanoaventura, no es una nano de las que yo llamo ~puras~, es más bien de otra tendencia, lo que yo llamo ~nano desarrollada~ como pudiera serlo ~Por la necedad humana~ que tantos éxitos ha cosechado.^ Finalmente doy las gracias en general a todo el que la juegue y en particular a Jénesis por la buena labor de testeo que ha realizado y su sugerencia acerca de traducir el título a una lengua extraña para no mermar el suspense.^ Je, es curioso que estas curiosidades, pasado un tiempo, no significarán casi nada para un nuevo aventurero que la juegue dentro de unos años.^"; ]; include "Gramatica"; ! --------------------------------------------------- extend 'nada' * 'en' noun -> nadaren ; [ nadarensub; print "No puedes nadar ahí.^"; ]; verb 'bucea' 'chapotea' 'sumerge' 'sumergete' 'sumergirte' 'sumegirse' = 'nada'; verboirregular "sumergir" with imperativo 'sumerge'; verb 'colea' 'coletea' 'avanza' 'avanzate' 'avanzalos' 'avanzarlos' 'avanzarte' 'desplazate' 'desplazame' 'desplazarte' 'desplazarme' 'deplazarse' 'muevete' 'moverte' 'moverla' 'mueveme' 'muevela' 'adelanta' 'adelantalos' 'adelantate' 'adelantarte' 'adelantarlos' * -> avanzar ; [ avanzarsub; ; ]; verb 'sigue' 'persigue' * 'a//' noun -> seguira ; verboirregular "seguir" with imperativo 'sigue'; verboirregular "perseguir" with imperativo 'persigue'; extend only 've' 'vete' 'ir' first * -> irambiguo * 'de' 'aqui' -> irambiguo * 'con' noun -> seguira * 'junto' 'a//'/'con' noun -> seguira * 'a//' 'por' noun -> seguira ; verb 'irte' 'irse' = 've'; [ seguirasub; if (uno==nothing) "No has dicho a quien."; print "No puedes seguir a eso.^"; ]; verb 'alimenta' 'alimentate' 'alimentarse' 'alimentarte' 'nutre' 'nutrete' 'nutrirse' 'nutrirte' * -> comer * 'de'/'con' noun -> comer ; verboirregular "nutrir" with imperativo 'nutre'; extend 'come' first * -> comer * noun -> comer ; extend only 'comerte' first * -> comerte ; [ comertesub; ; ]; verb 'chupa' 'mama' = 'prueba'; extend 'prueba' first * -> comer ; [ comersub; if (uno==nothing) <>; print "No es necesario que te alimentes ahora"; if (jugador in testiculos) print ", aunque si sí será necesario en el futuro"; print ".^"; ]; verb 'escupe' 'espectora' 'expulsa' * -> escupir * noun -> escupir * noun 'en'/'a//'/'sobre' noun -> escupir * 'a//'/'con'/'en'/'sobre' noun -> escupir * 'con' noun 'en'/'a//'/'sobre' noun -> escupir ; verboirregular "escupir" with imperativo 'escupe'; [ escupirsub; if (uno==nothing) <>; print "Eso no lo puedes escupir.^"; ]; extend 'lanza' first * noun -> lanzar * noun 'a'/'en'/'sobre' noun -> lanzar ; extend 'tira' first * noun -> lanzar * noun 'a'/'en'/'sobre' noun -> lanzar ; extend only 'echa' first * noun -> lanzar * noun 'a'/'en'/'sobre' noun -> lanzar ; extend 'suelta' first * noun -> lanzar * noun 'a'/'en'/'sobre' noun -> lanzar ; extend 'nada' * 'a//' 'traves' 'de' noun -> entrar ; extend 'entra' first * -> entrarovulo * 'a//' 'traves' 'de' noun -> entrar ; [ entrarovulosub; if (jugador in trompa) <>; ; ]; verb 'penetra' 'accede' = 'entra'; verb 'internate' 'internarte' 'internarse' 'introducete' 'introducirte' 'introducirse' = 'metete'; verboirregular "internar" with imperativo 'internate' 'internarte' 'internarse'; verboirregular "introducir" with imperativo 'introducete' 'introducirte' 'introducirse'; verb 'ayuda' * -> ayuda ; [ ayudasub; print "Lo siento, no hay ayuda disponible.^"; ]; extend only 'gira' * 'por' noun -> girarpor ; [ girarporsub; print "No puedes girar por ahi.^"; ]; extend only 'da' * 'una' 'vuelta' 'a' noun -> darvuelta * 'vuelta' 'a' noun -> darvuelta * 'vuelta' noun -> darvuelta ; [ darvueltasub; print "No puedes dar una vuelta por ahi.^"; ]; verb 'retrocede' * -> retroceder ; [ retrocedersub; print "No puedes retroceder, va en contra de tu naturaleza.^"; ]; extend 'bebe' first * -> beberliquido ; [ beberliquidosub; ; ]; verb 'absorbe' 'sorbe' 'succiona' 'aspira' = 'bebe'; verb 'usa' * topic -> usar ; [ usarsub; print "¿Te crees que esto es una aventura de LucasFilm?^"; ]; verb 'disuelve' 'funde' 'corroe' * noun -> disolver * noun 'con'/'mediante' noun -> disolver ; verboirregular "disolver" with imperativo 'disuelve'; verboirregular "fundir" with imperativo 'funde'; [ disolversub; if (otro==nothing) "No dices con qué quieres disolver eso."; print "No puedes disolver eso.^"; ];