<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Decides ir a la tertulia; te pones tus mejores trapos y decides marchar. Decides gastar dinero en un coche de caballos para poder llegar; quieres dar impresión de ser alguien conocido.
-¿A dónde se dirige? -te dice el cochero
-A la cafetería San Juan, en calle Sacramento.
-De acuerdo, caballero.`,
`De repente te percatas de algo: el cochero echa miradas de perversión a las jóvenes que pasean por aquellas calles; intimidadas agachaban la cabeza de forma sumisa y sutil. Algo que no te parece adecuado, porque tu vida en la Madrid del s XXI es diferente: las mujeres levantarían la cabeza y se enfrentarían al hombre, pero aquí no; ellas son todo lo contrario, ¿es extraño, no?
Y decides enfrentarte a él porque comienza a decirle cosas a una joven bella dama. Pero, de repente, al poder estar más cerca, ves la hermosura de aquella joven: cabello dorado, piel de porcelana como si de un ángel se tratase, y sus ojos, dos enormes zafiros que deslumbraban al pasar. De repente te das cuenta de que es la primera vez que te sucede: te sientes atraído por alguien totalmente diferente, alguien de otra época. ¿Cómo es posible?`,
`El coche de caballos se detiene ante tu destino. Bajas y te acercas con decisión.
Empujas la puerta de la cafetería San Juan, entrando en ella. Inmediatamente, al entrar, se respiraba el olor a café recién hecho, lo que te reconforta mucho. Hueles los cruasanes hechos a mano, escuchas el tintineo de las tazas sonando, ves la tenue luz que entra por las ventanas, acompañada de las lámparas de vela en el techo, las paredes y en las mesas redondas donde se formaban grandes grupos de personas. Se escuchan sus murmullos discutiendo diferentes temas literarios como el romanticismo.`,
`Se podía apreciar como había señores y señoras que se tomaban su té tranquilamente solos y cómo se tomaban ese tiempo para pensar sus cosas. También había un par de grupos de amigos con ropas humildes que charlaban tomando su té y sus cafés tan tranquilamente. En una mesa había un grupo de estafadores que estafaban con juegos mentales. Todos en esa mesa llevaban una chaqueta de cuero larga y un gorro de copa negro que parecía carbón que casi llegaba al techo. Luego, había unos amigos más adelante, con sus uniformes de trabajo que tenían agujeros. Se estaban tomando un café.`,
`Te fijas en un grupo de escritores que parecía que hablaban de lo que estas buscando, pero no estas preparado para hablar aún, así que te quedas callado en tu mesa para escucharlos.
-¡Como no escuchaste hablar de ese libro, es mundialmente conocido! -exclamó otro alzando ligeramente la voz alarmado.
-No creo que la gente incoherente llegue a entender nunca el verdadero significado del Romanticismo -dijo uno con tono egocéntrico.
Todos se pusieron atentos.`,
`-Un verdadero escritor de este siglo no debe escribir sobre el neoclasicismo, ya que se ha quedado muy anticuado, solo buscando la perfección.
-Yo opino igual, un nuevo escritor no puede escribir como un abuelo.`,
`A continuación, el hombre que estaba al lado del con voz muy grave y resonante dijo:
-Estoy de acuerdo señor, pero hay algo mucho más importante de lo que un escritor moderno no debe escribir, que es sobre la Ilustración. ¡No siempre se debe siempre combatir la ignorancia! ¡Hay otros temas para un escritor!`,
`Te fijas un momento en las mesas de los alrededores, donde se podía apreciar a parejas hablando sobre lo enamorados que estaban. También a otras parejas y sus hijos, cómo jugaban con ellos y como se reían felizmente.`,
`Un hombre de la tertulia, con el pelo blanco y una barba larga dijo:
-Lo más importante que hay que hablar hoy en día es sobre la Edad Media, que estaba lleno de pasión por todos lados.`,
`Estás a punto de hablar, pero uno de los estafadores de la mesa de antes salta y dice:
-¿Queréis ganar 10 monedas con solo apostar 5? -dice con voz burlona.
Automáticamente toda la mesa dice que no y se fue el estafador entre risas.`,
`Entonces al fin puedes y dices:
-Todos esos temas son muy interesantes y todos tienen algo en común, que es el sentimiento de este gran siglo.
Se quedaron todos callados por un momento y, después de ese silencio cortante, todos afirmaron que tenías razón.`,
`-Un verdadero escritor romántico tiene que sentir la naturaleza -dijo un hombre de bufanda roja, mientras daba un sorbo a su café
-No sólo describirla, sino entenderla, vivirla. Tiene que ver un árbol y pensar en su propia tristeza o alegría.
-Sí, como los cuadros de Caspar Friedrich -añadió una mujer que miraba por la ventana-. No pinta solo montañas o bosques. Pinta lo que uno siente al verlos. Soledad,paz,miedo…eso es arte.`,
`- Y la música -dijo un chico con gafas redondas. ¿Cómo puedes escribir si no has escuchado a Beethoven? Sus cuartetos de cuerda, sus sonatas de piano…son pura emoción. Escuchar la Claro de luna te rompe por dentro.
-Oh sí, ese hombre, el gran Ludwig van Beethoven, que buen artista.
-Mi hija ha recibido recibido recientemente una partitura de la sonata Patética y suena de maravilla.`,
`Piensas en cómo participar en esa tertulia, podrías hablar de esa música, y no solo eso, también sobre literatura. Buscas a uno de los camareros y lo llamas.
-Disculpe señor,¿cómo podría entrar en la conversación de los glamurosos señores de aquella mesa?`,
`-¿Para qué quiere participar en dicha disputa, joven?
-Simplemente, dígame algún tipo de información que necesite saber para entrar y cómo hacerlo.
-Bien, suelen venir por aquí, los conozco, y le aseguro que si les demuestras que eres uno más de ellos, te acogerán. Simplemente, muéstrales lo que vales, muchacho.`,
`Tras darle las gracias al camarero, te acercas decidido a la mesa de la tertulia y buscas un sitio para sentarte. Encuentras una silla vacía.
-Caballeros, ¿está esta silla libre?
-Por supuesto.`,
`Te sientas en la silla con ellos en vez de irte, y todos te miran extrañados.
-Ay, ay, estimados caballeros, permítanme presentarme, mi nombre es “nombre del jugador”, no he podido evitar escuchar vuestra tertulia. Sería un completo gusto unirme.
-Oh, no creo que te puedas unir, aquí somos refinados y nos gustaría que fuera algo más privado.`,
`-Bueno, en ese caso, os dejaré con ese orden y refinamiento propio del clasicismo.- Dices con un tono desafiante.
Uno de los señores, esbelto y canoso, se altera.
-¡¿Ha dicho clásico?! Por el amor de Dios, como se atreve…`,
`-Una verdadera porquería, ¿verdad? -dices intentando ser parte de la conversación.
-Completamente, les falta pasión y sufrimiento. -enuncia otro de los caballeros en la mesa.`,
`Te han acogido en la conversación, ven que eres como ellos. El camarero se acerca y pregunta.
-¿Todo bien por aquí?- dice mirándote y guiñandote un ojo.
-Por supuesto, esta tertulia es magnífica, y por favor, traiga chocolate con churros para los señores.
El camarero asiente y se va. Tú intentas ser más aún parte de la tertulia.`,
`-Caballeros, ¿han oído hablar sobre Los Miserables?
-¿Te refieres a esos patanes que persiguen a las pobres muchachas por el centro de Madrid?
-No, se refiere a la novela de Victor Hugo. Claro que hemos oído sobre ella, es magnifica.
-Sin duda, Jean Valjean es un personaje único.`,
`Gustas en el grupo, todos te admiran cada vez más por tus formas y conocimientos. Los más mayores de pronto hablan entre sí. Después, uno de ellos te dice:
–Hemos decidido que si escribes un texto propio original de calidad y nos lo traes, podrás entrar en la tertulia, pero antes invita a otra ronda de churros con chocolate y un café.
–¡Claro! Será un placer.`,
`Te levantas y sales de la cafetería con alegría. Ahora solo tienes que escribir ese texto para impresionarlos. ¿Será mejor un poema? ¿Un buen relato?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/001.jpg",
"https://rafaxenakis.neocities.org/xixhoy/002.jpg",
"https://rafaxenakis.neocities.org/xixhoy/003.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/004.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/005.jpg",
"https://rafaxenakis.neocities.org/xixhoy/006.jpg",
"https://rafaxenakis.neocities.org/xixhoy/007.jpg",
"https://rafaxenakis.neocities.org/xixhoy/008.jpg",
"https://rafaxenakis.neocities.org/xixhoy/009.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/010.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/011.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/012.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/013.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/014.jpg"
];
// Pasaje al que quieres ir después de pulsar "Fin"
const NEXT_PASSAGE = "dialogo2";
/* --------- Lógica --------- */
let i = 0;
let finished = false; // indica si ya hemos mostrado la última parte
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btn = document.getElementById("seguir");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btn.addEventListener("click", function () {
// Si aún no hemos llegado al final de las líneas
if (!finished) {
i++;
if (i < lines.length) {
render(i);
} else {
// Hemos mostrado la última línea: la siguiente pulsación será "Fin"
finished = true;
btn.textContent = "Fin ▷";
}
} else {
// Ya está en "Fin": ahora sí cambiamos de pasaje
$.wiki('<<goto "' + NEXT_PASSAGE + '">>');
}
});
// También con Enter o Espacio
window.bindNextKeys("#seguir");
})();
</script>
MANUSCRITO<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/portada.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "COMIENZA TU AVENTURA">><<goto "letra">><</link>></span>
</div><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice3.mp3" {"fade":1.5, "volume":0.45}>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/005.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRAR EN EL ÍNDICE GENERAL DEL CÓDICE ERRANTE (Movimiento del Personaje: WASD)">><<goto "mapainicial">><</link>></span>
</div>
<div style="text-align:center;">
<div class="bestiario-progreso">
Bestiario de Phantasmata: <strong>$bestiario / 10</strong>
Fabulae Sapientiae: <strong>$fabulae / 6</strong>
Cancionero de Virtus, Amore, Fortuna et Morte: <strong>$cancionero / 31</strong>
</div>
<<if $bestiario === 10>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/184.jpg" width="600" height="400">
</div>
<</if>>
<<if $fabulae === 6>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/185.jpg" width="600" height="400">
</div>
<</if>>
<<if $cancionero === 31>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/186.jpg" width="600" height="400">
</div>
<</if>>
<<if $bestiario === 10 and $fabulae === 6 and $cancionero === 31>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/187.jpg" width="600" height="400">
</div>
<</if>>
<<silently>><<game "MapaTresPuertas">><</silently>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice5.mp3" {"fade":1.5, "volume":0.45}>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/006.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRAR EN EL BESTIARIO DE PHANTASMATA (Movimiento del Personaje: WASD)">><<goto "bestiariomapa">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "VOLVER AL ÍNDICE GENERAL">><<goto "creditos">><</link>></span>
</div>
<div style="text-align:center;">
<div class="bestiario-progreso">
Bestiario de Phantasmata: <strong>$bestiario / 10</strong>
</div>
</div><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice5.mp3" {"fade":1.5, "volume":0.45}>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/177.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRAR EN FABULAE SAPIENTIAE (Movimiento del Personaje: WASD)">><<goto "fabulaemapa">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "VOLVER AL ÍNDICE GENERAL">><<goto "creditos">><</link>></span>
</div>
<div class="fabulae-progreso">
Fabulae Sapientiae: <strong>$fabulae / 6</strong>
</div><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice5.mp3" {"fade":1.5, "volume":0.45}>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/178.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRAR EN EL CANCIONERO DE VIRTUS, AMORE, FORTUNA ET MORTE (Movimiento del Personaje: WASD)">><<goto "cancioneromapa">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "VOLVER AL ÍNDICE GENERAL">><<goto "creditos">><</link>></span>
</div>
<div class="cancionero-progreso">
Fabulae Sapientiae: <strong>$cancionero / 31</strong>
</div>
<<silently>><<game "fabulaemapa">><</silently>><<silently>><<game "mapabestiario">><</silently>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice11.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la leyenda sobre Pratus</button>
<button type="button" id="choice-dialogo5">Salir huyendo y volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Theobaldus, tras caminar tantos días en dirección al norte de Europa buscando la cueva del sabio que se aisló de los humanos y describía unos animales fantásticos, se encontró en su camino por Finlandia un pueblo pequeño que, como había escuchado de pueblos anteriores, era muy peligroso por sus pobladores tan hostiles.`,
`Él, sin miedo, se metió en el pueblo y se quedó asombrado por la poca gente que había en las calles y, además, por el pozo del medio, donde se veía un esqueleto colgado con una soga, sosteniendo un mensaje que decía que quien entrase al pueblo y le cayera mal al jefe acabaría como el esqueleto.`,
`Mientras Theobaldus pensaba si debía irse del pueblo, se le acercaron dos guardias:
-¿Qué haces por aquí, monje? -preguntó el guardia más forzudo, con voz grave.
-¿Y a ti qué más te da? -respondió Theobaldus borde.
-Mira, como vuelvas a hablar de esa manera, te llevamos con el jefe y te quedarás como el esqueleto —le dijo el otro guardia, enfadado.
-Mira, la verdad es que quería ver a vuestro jefe -respondió Theobaldus, desafiante.
-Buena suerte para no morir ahogado en una cuerda -le dijo riendo el guardia.`,
`Ya más tarde, cuando Theobaldus estuvo cara a cara con el jefe, le dijo:
-¿Tú eres el temido jefe? Me lo esperaba más fuerte -dijo riendo Theobaldus.
-Como vuelvas a dirigirte a mí de esa manera, te mataré lentamente y de forma muy dolorosa -exclamó el jefe, gritando.
-Vale, vale, pero yo solo había venido a enseñarte un tesoro muy importante para vuestra tradición escandinava.
-¿Y de qué tesoro se trata?`,
`-Se trata del escudo escandinavo, del antiguo líder Hansus Master.
-Ya me sé el truco, monje loco. ¿Qué pides a cambio del escudo?
-Muy simple, yo solo quiero que me digas dónde está la cueva del famoso sabio que sabe historias de animales fantásticos -le dijo Theobaldus.
-Vale, te lo diré a cambio, pero primero me tendrás que dar el escudo.
El jefe escandinavo le marcó en un mapa la localización de la cueva del anciano. A cambio, Theobaldus le dio el escudo.`,
`Theobaldus caminaba en dirección a la cueva, por un bosque lleno de nieve del norte de Europa, mientras la tormenta de nieve parecía no cesar. Aullidos, sonidos de arbustos y la nieve tapando la vista eran cosas que le atemorizaban. Iba en busca de la caverna donde vive un santo sabio, alejado de la civilización. Con un bastón, una piel de abrigo y su libro y pluma en la mano, estaba dispuesto a encontrarlo.`,
`Apenas se dio cuenta de la calma y belleza que había y se sentía allí. De detrás de un árbol, salió un animal (¿qué es este animal?, pensó). Theobaldus se paró por el miedo, pero en un par de segundos se dio cuenta de que no era malo, y así siguió su camino.`,
`Al casi llegar, Theobaldus cogió un poco de nieve que le parecía muy bonita; además, era como un perfecto círculo. Y, justo en aquel momento en que cogió la bolita de nieve, detrás suyo aparecieron casi todos los animalitos hermosos que había visto por el camino. Theobaldus les sonrió.`,
`Con dificultad localizó la cueva, en la que parecía haber una jungla por la cantidad de musgo. Allí vivía el santo sabio, vestido con pieles de lobo y colgantes de dientes. Theobaldus le preguntó por los sonidos dentro del bosque lleno de nieve, y el santo empezó a explicarle, no sin antes preguntarle:
-Querido aventurero, no sé cómo has llegado de una pieza, pero parece que eres bastante bueno.
-Ehh… ¿gracias? Pero, ¿me podrías decir qué peligros hay? Porque yo no he visto nada, solo sonidos que me dan escalofríos.
-Ja -dijo el sabio sorprendido-, parece ser que no fue habilidad, sino suerte.`,
`-Ya… es que es una de mis primeras excursiones por estas tierras, ya que estoy interesado en las maravillas y secretos del mundo. Y estoy dispuesto a completar este libro, y, si hace falta, con mi sangre también. Pero mi pluma y tinta se me han congelado… ¿tienes algunas extras? -preguntó, avergonzado, mientras recibía lo pedido.`,
`-Si tan deseoso estás, contaré secretos que ni el mismo Dios sabe, aunque él los creó. Empezaré con uno que ahora mismo está invernando, pero cuando despierte… Pratus, también llamado la Sombra del Olimpo. Pratus es una criatura mística creada para proteger a un dios antiguo llamado Ares. Desde chico fue entrenado hasta el agotamiento. Su aspecto imponente se parece a lo que nosotros llamamos dragones: piel impenetrable, los cinco sentidos agudos, dientes afilados, piel oscura como la obsidiana, ojos rojos, más grande que un castillo, aliento capaz de destruir pueblos… entre otras habilidades. Fue destronado y despertado en la Edad Oscura, en la época de nuestro protagonista.`,
`-Mira, Theobaldus, te voy a contar una historia de la primera vez que me encontré a Pratus, pero solo si estás solo si estás lo suficientemente interesado.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/032.jpg",
null,
"https://rafaxenakis.neocities.org/codice/033.jpg",
"https://rafaxenakis.neocities.org/codice/034.jpg",
null,
"https://rafaxenakis.neocities.org/codice/036.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/035.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pratusleyenda";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice6.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la primera leyenda sobre la Mara</button>
<button type="button" id="choice-dialogo5">Escuchar la segunda leyenda sobre la Mara</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tras horas caminando, Theobaldus ve a lo lejos un castillo. Él piensa que allí podría conseguir cualquier tipo de información de cualquier tema y decide emprender camino hacia el castillo.`,
`Después de haber caminado una hora, llega a la puerta del castillo y le recibe un conde con unos ropajes de cuero y capucha. El cortesano se acerca a Theobaldus y, con expresión tranquila, le dice:
-Buenas tardes, joven sabio, ¿a qué se debe su visita al castillo?
-Vengo en busca de información de cualquier tipo —respondió Theobaldus, con expresión de inseguridad.
-Perfecto, un sabio con ganas de seguir aprendiendo, me gusta. Sígame, tengo una biblioteca perfecta para aprender lo que quieras -contestó el conde.`,
`Algo más seguro, Theobaldus decidió seguir al conde.
-Me alegra encontrar un lugar donde aprender. ¿Sabe algo relacionado con especies únicas?
-Claro, en cuanto lleguemos, te hablaré sobre unas criaturas exóticas.`,
`El cortesano y Theobaldus siguieron caminando por el castillo hasta llegar a la biblioteca, un lugar inmenso con unas grandes estanterías llenas de miles de libros de diversos temas. El consejero coge una escalera y se sube en ella nada más que para coger un libro. Al cogerlo, le ocupaba sus dos manos y era de un color rojo llamativo. "Este libro va sobre un animal fantástico y te voy a explicar como es”.`,
`Le enseñó a Theobaldus un libro sobre una criatura extraña con forma humanoide.
-¿Qué tipo de criatura es esta? -preguntó Theobaldus, señalando el libro.
-Es una “Mara”. Se les llama así por su aspecto de humana y su carácter tóxico.
-¿Y qué tienen de especial estas “Mara”?`,
`-Son únicas. Su piel es de un tono verde claro, pero lo que las hace únicas es que pueden cambiar su tono de piel para infiltrarse entre los humanos sin que se den cuenta. ¿Quieres escuchar una leyenda sobre las Maras? Hay dos en el libro. Una cuenta el origen de esta criatura. La otra narra cómo un rey de Castilla tuvo un peligroso encuentro con ellas.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/015.jpg",
"https://rafaxenakis.neocities.org/codice/016.jpg",
"https://rafaxenakis.neocities.org/codice/017.jpg",
"https://rafaxenakis.neocities.org/codice/018.jpg",
"https://rafaxenakis.neocities.org/codice/019.jpg",
"https://rafaxenakis.neocities.org/codice/020.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mara1";
const PASSAGE_2 = "mara2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice10.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la leyenda sobre la Raspera</button>
<button type="button" id="choice-dialogo5">Salir huyendo y volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de unos largos días caminando, por fin Theobaldus llegó al castillo del apodado “Enrique el Aterrador”, un millonario conde que era conocido en todo el continente debido a que, a pesar de las innumerables batallas y guerras que enfrentó, no había ninguna derrota en su palmarés.`,
`Nada más llegar a aquella imponente y oscura fortaleza, Theobaldus observaba que aquel edificio estaba creado con el fin de ser prácticamente impenetrable, ya que consistía en un gran edificio con dos grandes torreones, en los cuales había ventanas por las que los arqueros podían disparar sus flechas. También había una gran muralla de metros y metros de alto, en la cual se encontraban los cañones y el aceite hirviendo para impedir que los enemigos la escalaran.`,
`Allí Theobaldus tocó la gran puerta de madera, a la que respondió un pequeño consejero de su amo, que le dijo:
-Buenos días, noble señor. He oído mucho sobre usted. ¿Usted es el errante que va recopilando información en su códice sobre los diferentes lugares y poblados que acude a visitar?
-Sí, mmm, el mismo. Por cierto, mi nombre es Theobaldus.
-Pues hola, Theobaldus. Mi nombre es Alberto, consejero del conde Enrique. Ya sé a qué ha venido. Sígame, le voy a enseñar la biblioteca.`,
`Al entrar a la biblioteca, el consejero fue rápidamente hacia un libro que contenía leyendas de las más peligrosas criaturas. Al abrir aquel libro en una página concreta, se encontraba la Raspera: una horrible criatura carnívora marina gigante que tenía una gran cola con la cual rompía los barcos que atacaba. También tenía un gran cuello con una cabeza como de un venado, dentado con largos colmillos. Lo más peligroso de esta era que también podía salir a tierra con sus largas patas.`,
`-Venerable Theobaldus, ¿quiere conocer una leyenda sobre la Raspera?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/028.jpg",
null,
"https://rafaxenakis.neocities.org/codice/029.jpg",
"https://rafaxenakis.neocities.org/codice/030.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "rasperaleyenda";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div class="intro-wrapper">
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice4.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<<if $lucius == 1>>
<button type="button" id="choice-dialogo4">Escuchar la canción sobre Lucenius</button>
<</if>>
<button type="button" id="choice-dialogo5">Salir huyendo y volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Theobaldus estaba en un lugar de Milán y vio que en esa aldea hablaban sobre una anciana que conocía muchas leyendas de animales fantásticos. Preguntó a la gente dónde estaba; sin embargo, nadie le decía exactamente dónde se encontraba. Le indicaban que era hacia el norte, en una pequeña aldea de campesinos; sin embargo, nadie sabía el nombre de ella. Tras un tiempo consiguiendo más detalles sobre la aldea, por fin logró saber exactamente dónde estaba y partió hacia allá.`,
`Después de unas semanas viajando, consiguió llegar en busca de respuestas sobre esos animales fantásticos. Theobaldus fue preguntando a las personas que vivían allí por ella, intentando convencerlas de que le dijeran dónde estaba; sin embargo, no querían decírselo porque dudaban de sus intenciones.
Estuvo mucho tiempo intentando convencer a gran parte de la aldea, pero sin respuestas.`,
`Caminó a un lugar donde almorzar, vio a un joven campesino y le preguntó sobre la anciana.
-Hola, buenas -le dijo a los campesinos.
-Hola, ¿qué necesitas?
-Nada, solo quería saber si conoces a la famosa anciana que conoce leyendas sobre animales fantásticos
-Sí, vive en la aldea: tienes que segur recto y a mano derecha verás su cabaña.
-Vale, muchas gracias, que te vaya bien -contestó Theobaldus.`,
`Nada mas llegó frente a la cabaña, se encontró con un hombre con barbas largas y blancas. Empezaron a charlar y Theobaldus le contó que le gustaría conocer a la anciana de esa vivienda y poder hablar con ella. El hombre, que se llamaba Mateo, lo guió al interior.`,
`Al ver las condiciones de la supuesta casa de la anciana, se cuestionó si realmente le había dicho la verdad o si lo había llevado a otro lugar. Era una casa muy humilde, de madera, con las paredes en mal estado, al igual que el tejado y toda la casa en general. Dentro de la cabaña, vio a anciana muy mayor. Theobaldus le preguntó si era ella la anciana de la que tanto hablaba su pueblo, a lo que ella respondió que sí, que era a la que él buscaba. Ella también había oído hablar de él y lo recibió con un desayuno.
Pasaron un tiempo hablando y Theobaldus ganó gran parte de su confianza, y ella le empezó a hablar sobre el animal fantástico: Lucénius Julius.`,
`Una serpiente con apariencia normal, pero con una impresionante habilidad para asesinar a las personas a las que el dueño, o en este caso la dueña, pidiera. Destacaba su increíble rapidez, gracias a la cual sigilosamente envenenaba a los habitantes de muchas ciudades, incluso matando a varios reyes. Solo que, hasta ese instante, nadie lo sabía, excepto ella. Dijo también que, para distinguirla de otras serpientes normales, se fijara en su cola, porque tenía una mancha roja en ella.`,
`Estuvieron hasta el anochecer conversando sobre los animales fantásticos, lo que agradó mucho a la anciana, que invitó a Theobaldus a quedarse unos días allí para conocerse mejor mutuamente. Theobaldus aceptó su propuesta y se quedó allí durante un tiempo para aprender aún más sobre este curioso animal.
La anciana le comentó que Lucénius respondía al nombre de Lucius, una mezcla entre su nombre y su apellido. Cuando la anciana le quería pedir algo, lo llamaba de esa manera. También le dijo que Lucius llevaba una alimentación muy estricta: si no le dabas de comer lo que él quería, se podía poner contra ti.`,
`La anciana le explicó todo esto para finalmente decirle a Theobaldus que a ella seguramente ya le quedaban pocos años de vida, pues tenía ciento ocho años. Le propuso quedarse con Julius, pero aceptando la responsabilidad de alimentarlo y cuidarlo correctamente, mencionando que, cuando ella estuviera en un lugar mejor, Lucius se quedaría solo y eso causaría la muerte de muchas personas a causa de su comportamiento, trayendo caos al mundo entero.`,
`Sin embargo, Theobaldus se negó. Él no podría alimentarlo, porque estaba constantemente viajando de un lado a otro. A la anciana no le quedó otra opción que proponérselo a otras personas que no viajaran tanto.
Finalmente, la anciana le propuso lo siguiente:
-¿Quieres que te enseñe la canción que cantan por estas tierras sobre Lucénius?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/007.jpg",
"https://rafaxenakis.neocities.org/codice/008.jpg",
"https://rafaxenakis.neocities.org/codice/009.jpg",
"https://rafaxenakis.neocities.org/codice/010.jpg",
"https://rafaxenakis.neocities.org/codice/011.jpg",
"https://rafaxenakis.neocities.org/codice/012.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "luciusleyenda";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice8.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la leyenda sobre Kon</button>
<button type="button" id="choice-dialogo5">Escuchar la leyenda sobre la Gran Madre Rostro</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Theobaldus caminaba solo por un desierto muy caliente y el sol le quemaba la piel. De repente, se sintió muy cansado y cayó al suelo desmayado.`,
`Un grupo de nómadas árabes pasó por ahí montando camellos. Al verlo en el suelo, lo ayudaron. Lo subieron a un camello y lo llevaron a su campamento, cerca de un oasis.`,
`Cuando Theobaldus despertó, se sentó y miró a su alrededor. Sonrió y dijo:
-Gracias por salvarme.
Un hombre viejo con barba blanca se acercó y preguntó:
-De nada. ¿Por qué estás aquí?
Theobaldus pensó y preguntó:
–Soy un monje que busca historias curiosas. ¿Conocéis alguna historia sobre algún animal raro?`,
`El hombre viejo asintió y dijo:
—Oh, sí, claro que conocemos. De hecho, uno de ellos se comió a uno de nosotros el día de ayer. Tiene una apariencia como de ciempiés, con mil y una caras diferentes, y la leyenda dice que, hace mucho, mucho tiempo, existía en este desierto —que antiguamente era un bosque— el espíritu de las caras, que era conocida como la Gran Madre Rostro, que te podía conseguir un nuevo rostro como quisieras, siempre y cuando se llevara tus recuerdos junto a tu cara. Y esta llegó a tener un hijo antes de desaparecer junto al bosque, y este hijo vive en una cueva a un kilómetro de aquí. Todo el mundo le llama Kon.`,
`A simple vista, Kon puede confundirse con un ciempiés gigante de la arena, pero si miras detalladamente puedes ver que su cuerpo está cubierto como de escamas que, según el sitio desde el que las veas, se ven de un color u otro. En su cara, en vez de encontrarte a un bicho como uno esperaría, tiene la cara de un humano, y este tiene la capacidad de hablar como un humano. Incluso algunos cuentan que posee la capacidad de cambiar de rostro, tomando el de algunas de sus víctimas. Así, si ve alguna presa con sus ojos amarillos, latentes y brillantes, cambia de rostro para atraerla; y si es un humano, incluso habla para atraerlo.`,
`Tiene un cuerpo gigante, con patas esqueléticas de insecto, y puede incluso lograr cambiar un poco su cuerpo además de la cara. Se le considera un espíritu, porque mucha gente ha tratado de pelear contra él para evitar más muertes, pero casi nunca es tocado por un arma. Las personas que vuelven vivas juran haber visto que se movía con una agilidad y velocidad imposibles para su tamaño, pero aun así lo lograba.`,
`Muchos dicen que algunos eran poseídos por él y usaba sus cuerpos para pelear, o que a veces, al atacarlo, el arma pasaba a través de su cuerpo sin causarle nada. Algunos otros que decían haber sido poseídos tenían una apariencia deforme, como de ciempiés. Sin embargo, quienes lograron sobrevivir aseguran que, si no muestras absolutamente ninguna emoción, logras sobrevivir. Nadie ha intentado hacerlo por el miedo, pero algunos dicen que no te ataca si no tienes ninguna emoción en el rostro, porque no le interesan los rostros sin expresiones. Este disfruta de ver las expresiones diferentes que tienen sus víctimas al morir, para poder adquirir ese rostro, lo que le resulta mucho más interesante. Por eso, si te lo encuentras, será mejor que no presentes ni una sola expresión si quieres vivir.`,
`-Querido viajero, ¿le gustaría escuchar una leyenda sobre Kon? ¿O quizás sobre su madre, una terrible criatura también?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/046.jpg",
null,
"https://rafaxenakis.neocities.org/codice/047.jpg",
"https://rafaxenakis.neocities.org/codice/048.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "konleyenda1";
const PASSAGE_2 = "konleyenda2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice9.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la leyenda sobre Lavaquito</button>
<button type="button" id="choice-dialogo5">Salir huyendo y volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`En uno de sus viajes, día 2 del segundo mes lunar, Theobaldus caminó hacia Hispania Oriental, hasta encontrar una aldea.`,
`-¡Theobaldus! -dijo alguien, acercándose a él detrás suya-. Usted es Theobaldus, ¿verdad?
Él asintió, confirmándolo.
-Sí, el mismo, y… ¿vos quién sois?
-Soy Esturnio Palcerus, un campesino humilde de esta aldea. He oído que usted anda buscando a Doña Hartuka, la anciana más sabia del pueblo -dijo el campesino, con seria, mas amigable expresión.`,
`Theobaldus se sorprendió, debido seguramente al conocimiento del campesino. Estuvo unos meros segundos en silencio y, seguidamente del silencio, dijo:
-Si usted la conoce, ¿podría llevarme hacia ella?
Esturnio asintió, y comenzó a dirigirse tranquilamente hacia una pequeña cabaña.`,
`Estaban andando pacíficamente hacia dicha cabaña cuando, de repente, empezó a llover sin control. Empezaron a correr, hasta que Theobaldus se resbaló y rodó en la tierra cuesta abajo, hasta chocar contra una roca y, del mismo golpe, se quedó inconsciente.`,
`Al día siguiente, se despertó en una casa con techo de paja, junto a una hoguera, y una anciana le habló
-¿Estás mejor?
Theobaldus se incorporó de un golpe hacia atrás, y acercó su mano derecha hacia su espada, pero… no estaba.
-¡Mi espada! ¿Qué ha hecho usted con ella? ¿Dónde estamos?`,
`La anciana tranquilamente se sentó, y le contestó.
-Oh, esa… cosa. Sí, está guardada. En fin, me han dicho que quieres saber sobre animales fantásticos. Siéntate conmigo, te lo explicaré todo.`,
`Cuentan los libros del norte de Europa, hechos por sabios monjes, que existe una criatura con forma de loro, pero de un tamaño gigantesco, parecido al de una humilde casa de esta aldea en la que puede habitar una familia de ocho niños y sus dos padres. Su nombre es Lavaquito. Su pico mide como una rama de un pino de ochocientos veinte años; está hecho de un material sagrado, como si fuese mármol de una iglesia reluciente y espléndido, tallado por auténticos artistas.`,
`Su plumaje es rojo como la criatura mística llamada fénix. Su pechuga es tan caliente como el sol en verano: irradia un calor sofocante que usa para cazar, porque llega hasta treinta metros y marea a sus presas para confundirlas y aprovechar para cazarlas. Solo come carne. Nuestros exploradores lo han visto viajar de norte a sur y de este a oeste. No tiene una casa ni lugar fijo; por lo que sabemos, es el único de su especie.`,
`Su cola, puntiaguda como un alfiler, probablemente es la parte de su cuerpo más caliente. Creemos que sirve para que no lo ataquen por la espalda. Su cabeza es como la de cualquier otro pájaro, nada en particular, pero tiene una vista de halcón potenciada: da igual dónde estés, él te puede ver aunque estés a diez mil pies de distancia.`,
`Sus piernas, llenas de plumas, son gigantes, con unas garras de águila hechas con piedras de obsidiana afiladas como espadas. Si llega a agarrarte, no tendrá que picarte la cabeza para matarte, porque, si no lo hace, el miedo y la sobredosis de adrenalina lo harán, o lo harán sus afiladas garras al atravesar tu pecho. Pobres son los animales que han tenido que encontrarse con este ser fantástico.`,
`Sus alas, hechas de plumas creadas de magma, evaporan hasta las gotas de las nubes en las alturas de un día tormentoso. Lavaquito quema todo lo que toca; a lo mejor esa es la razón por la que no tiene casa, porque, a no ser que sea de roca pura, se quemaría todo lo que no resista su calor. Él tiene un fin, porque no es un fénix aunque lo parezca: no renacerá si muere y morirá si no se recupera en un volcán activo. Recibiendo un calor intenso se recuperará, pero hasta entonces tiene los días contados. Cada vez lo vemos más débil y apagado, pero sentimos terremotos y tenemos miedo de que pueda formar un volcán cerca de donde nos encontramos y asentarse allí para atemorizarnos por siempre.`,
`-Monje Theobaldus, ¿quiere escuchar la terrible leyenda que se cuenta sobre Lavaquito?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/040.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/041.jpg",
"https://rafaxenakis.neocities.org/codice/042.jpg",
null,
"https://rafaxenakis.neocities.org/codice/043.jpg",
null,
null,
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "lavaquitoleyenda";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice2.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la leyenda sobre cómo Dios creó al Hipogrifo</button>
<button type="button" id="choice-dialogo5">Escuchar la leyenda sobre el trauma de Hipogrifo</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Theobaldus se enteró de que un animal había derribado una torre, pero no se sabía la especie de esa criatura. Él no sabía qué hacer y se le ocurrió ir a un monasterio famoso para ver si había alguien que pudiera saber algo sobre ese animal.
Mientras iba hacia el monasterio, se tropezó con una piedra y cayó al suelo. Se levantó y vio un gran animal. El animal se fue corriendo y Theobaldus no alcanzó a verlo bien. No le dio gran importancia, ya que tenía que llegar al monasterio antes de que se hiciera de noche.`,
`Después de un rato vio un gran edificio con una torre derrumbada y fue hacia allí. El edificio era enorme y de piedra; tenía una gran puerta y un montón de pájaros alrededor. Tocó a la puerta y le abrió un monje llamado Apolo.
-¿Oye, este es monasterio atacado por el animal extraño?
-Si, por desgracia este es. Un sábado a las ocho como cualquier otro, estábamos tirando piedras y, si estoy diciendo mentiras que venga Dios y lo diga, Yo le vi el lomo rojo como la sangre y las garras blancas como cuarzo. Uno de los monjes le pego una pedrada en la cabeza. Pero, ¿quién eres?`,
`-Soy Theobaldus, un monje peregrino, y venía a preguntarte una cosa. ¿Dónde hay alguien que sepa completa la historia de las torres?
-El abad creo que puede ayudarte. -dijo Apolo..
-Muchas gracias por tu ayuda, pero ¿me podrías acompañar hasta el abad?
-Claro, forastero -dijo con seriedad.`,
`Apolo acompañó a Theobaldus a la sala del abad. Con miedo pero curiosidad, le preguntó al Abad la historia.
-Claro, entra dentro si quieres.
-Me he enterado de que una criatura fantástica ha derrumbado una torre y quería saber si tú sabías algo sobre ese animal.
-Sí, sé varias cosas sobre eso. ¿Quieres que te lo cuente?
-Sí, me gustaría enterarme.`,
`-Un día de San Isidro, celebrando ese tan esperado día, apareció a la caída del sol, un ser mitológico nunca antes visto llamado HIPOGRIFO, un ser que jamás pensaría que fuera real. Vino al monasterio al principio en son de paz, hasta que en un momento voló y se fue hacia la torre de la biblioteca, y con su poderosa fuerza otorgada por Dios, se llevo las partes de la torre.
-Eso fue muy trágico, ¿Me podría describir al animal?`,
`-Claro que sí, caballero. Era como un caballo de color blanco y con alas y plumas de paloma, pico curvado y detalles negros. ¿Quiere usted conocer algunas de las leyendas más famosas sobre el Hipogrifo? ¿Una sobre cómo Dios creó al Hipogrifo? ¿O quizás quiere escuchar cuál fue el trauma que lo volvió violento?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/052.jpg",
"https://rafaxenakis.neocities.org/codice/053.jpg",
null,
"https://rafaxenakis.neocities.org/codice/054.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "hipogrifoleyenda1";
const PASSAGE_2 = "hipogrifoleyenda2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Todo por vivir.mp3" {"fade":1.5, "volume":0.45}>>
<div class="intro-wrapper">
<div class="intro-card">
<div class="intro-badge">
<span class="intro-badge-dot"></span>
<span>Proyecto XIX HOY · Ministerio de Educación y Ciencia</span> </div>
<p class="intro-subtitle">Propuesta de colaboración en el proyecto XIX HOY</p> <p class="intro-text"> Estimado lector, si usted ha recibido esta carta, ha sido seleccionado para participar en el <span class="intro-keyword">Proyecto XIX HOY</span>. Puede haber diversas razones para ello: quizás es usted un gran escritor, un profesor reconocido o, simplemente, una persona apasionada que siempre ha sentido curiosidad por el pasado, por cómo vivían, hablaban y sentían las personas de otros siglos. En todo caso, el Ministerio de Educación y Ciencia considera que es la persona ideal para un proyecto experimental único que puede cambiar el destino de la humanidad. </p> <p class="intro-text"> Los detalles del proyecto son <span class="intro-keyword">estrictamente secretos</span> y la participación en él es <span class="intro-keyword">completamente voluntaria</span>. Si usted no se siente completamente seguro de participar, simplemente ignore y destruya esta carta. Pero si se anima a hacerlo, deberá saber que equivaldrá a un compromiso de por vida de mantener en secreto todo lo que verá y oirá durante el transcurso del proyecto.
Para participar, acuda lo antes posible a la sede del Ministerio de Educación y Ciencia, en el Paseo de la Castellana de Madrid. Basta con que comunique a los guardias de seguridad el siguiente código: "192025". Ellos lo guiarán inmediatamente a la auténtica sede del proyecto XIX HOY.
Le damos las gracias de antemano por su atención. Confiamos en que aprovechará esta oportunidad única.
</p>
<div class="intro-actions">
<<link "¿Proyecto XIX HOY? ¡Quiero saber qué es eso!" "17. Llegada al ministerio">>
<span class="intro-button">Estoy listo para viajar</span>
<</link>>
<<link "Esto no me da buenas vibraciones. Mejor paso." "final1">>
<span class="intro-button">Estoy listo para viajar</span>
<</link>>
</div>
</div>
</div>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`BLA BLA BLA BLADecides ir a la tertulia; te pones tus mejores trapos y decides marchar. Decides gastar dinero en un coche de caballos para poder llegar; quieres dar impresión de ser alguien conocido.
-¿A dónde se dirige? -te dice el cochero
-A la cafetería San Juan, en calle Sacramento.
-De acuerdo, caballero.`,
`De repente te percatas de algo: el cochero echa miradas de perversión a las jóvenes que pasean por aquellas calles; intimidadas agachaban la cabeza de forma sumisa y sutil. Algo que no te parece adecuado, porque tu vida en la Madrid del s XXI es diferente: las mujeres levantarían la cabeza y se enfrentarían al hombre, pero aquí no; ellas son todo lo contrario, ¿es extraño, no?
Y decides enfrentarte a él porque comienza a decirle cosas a una joven bella dama. Pero, de repente, al poder estar más cerca, ves la hermosura de aquella joven: cabello dorado, piel de porcelana como si de un ángel se tratase, y sus ojos, dos enormes zafiros que deslumbraban al pasar. De repente te das cuenta de que es la primera vez que te sucede: te sientes atraído por alguien totalmente diferente, alguien de otra época. ¿Cómo es posible?`,
`El coche de caballos se detiene ante tu destino. Bajas y te acercas con decisión.
Empujas la puerta de la cafetería San Juan, entrando en ella. Inmediatamente, al entrar, se respiraba el olor a café recién hecho, lo que te reconforta mucho. Hueles los cruasanes hechos a mano, escuchas el tintineo de las tazas sonando, ves la tenue luz que entra por las ventanas, acompañada de las lámparas de vela en el techo, las paredes y en las mesas redondas donde se formaban grandes grupos de personas. Se escuchan sus murmullos discutiendo diferentes temas literarios como el romanticismo.`,
`Se podía apreciar como había señores y señoras que se tomaban su té tranquilamente solos y cómo se tomaban ese tiempo para pensar sus cosas. También había un par de grupos de amigos con ropas humildes que charlaban tomando su té y sus cafés tan tranquilamente. En una mesa había un grupo de estafadores que estafaban con juegos mentales. Todos en esa mesa llevaban una chaqueta de cuero larga y un gorro de copa negro que parecía carbón que casi llegaba al techo. Luego, había unos amigos más adelante, con sus uniformes de trabajo que tenían agujeros. Se estaban tomando un café.`,
`Te fijas en un grupo de escritores que parecía que hablaban de lo que estas buscando, pero no estas preparado para hablar aún, así que te quedas callado en tu mesa para escucharlos.
-¡Como no escuchaste hablar de ese libro, es mundialmente conocido! -exclamó otro alzando ligeramente la voz alarmado.
-No creo que la gente incoherente llegue a entender nunca el verdadero significado del Romanticismo -dijo uno con tono egocéntrico.
Todos se pusieron atentos.`,
`-Un verdadero escritor de este siglo no debe escribir sobre el neoclasicismo, ya que se ha quedado muy anticuado, solo buscando la perfección.
-Yo opino igual, un nuevo escritor no puede escribir como un abuelo.`,
`A continuación, el hombre que estaba al lado del con voz muy grave y resonante dijo:
-Estoy de acuerdo señor, pero hay algo mucho más importante de lo que un escritor moderno no debe escribir, que es sobre la Ilustración. ¡No siempre se debe siempre combatir la ignorancia! ¡Hay otros temas para un escritor!`,
`Te fijas un momento en las mesas de los alrededores, donde se podía apreciar a parejas hablando sobre lo enamorados que estaban. También a otras parejas y sus hijos, cómo jugaban con ellos y como se reían felizmente.`,
`Un hombre de la tertulia, con el pelo blanco y una barba larga dijo:
-Lo más importante que hay que hablar hoy en día es sobre la Edad Media, que estaba lleno de pasión por todos lados.`,
`Estás a punto de hablar, pero uno de los estafadores de la mesa de antes salta y dice:
-¿Queréis ganar 10 monedas con solo apostar 5? -dice con voz burlona.
Automáticamente toda la mesa dice que no y se fue el estafador entre risas.`,
`Entonces al fin puedes y dices:
-Todos esos temas son muy interesantes y todos tienen algo en común, que es el sentimiento de este gran siglo.
Se quedaron todos callados por un momento y, después de ese silencio cortante, todos afirmaron que tenías razón.`,
`-Un verdadero escritor romántico tiene que sentir la naturaleza -dijo un hombre de bufanda roja, mientras daba un sorbo a su café
-No sólo describirla, sino entenderla, vivirla. Tiene que ver un árbol y pensar en su propia tristeza o alegría.
-Sí, como los cuadros de Caspar Friedrich -añadió una mujer que miraba por la ventana-. No pinta solo montañas o bosques. Pinta lo que uno siente al verlos. Soledad,paz,miedo…eso es arte.`,
`- Y la música -dijo un chico con gafas redondas. ¿Cómo puedes escribir si no has escuchado a Beethoven? Sus cuartetos de cuerda, sus sonatas de piano…son pura emoción. Escuchar la Claro de luna te rompe por dentro.
-Oh sí, ese hombre, el gran Ludwig van Beethoven, que buen artista.
-Mi hija ha recibido recibido recientemente una partitura de la sonata Patética y suena de maravilla.`,
`Piensas en cómo participar en esa tertulia, podrías hablar de esa música, y no solo eso, también sobre literatura. Buscas a uno de los camareros y lo llamas.
-Disculpe señor,¿cómo podría entrar en la conversación de los glamurosos señores de aquella mesa?`,
`-¿Para qué quiere participar en dicha disputa, joven?
-Simplemente, dígame algún tipo de información que necesite saber para entrar y cómo hacerlo.
-Bien, suelen venir por aquí, los conozco, y le aseguro que si les demuestras que eres uno más de ellos, te acogerán. Simplemente, muéstrales lo que vales, muchacho.`,
`Tras darle las gracias al camarero, te acercas decidido a la mesa de la tertulia y buscas un sitio para sentarte. Encuentras una silla vacía.
-Caballeros, ¿está esta silla libre?
-Por supuesto.`,
`Te sientas en la silla con ellos en vez de irte, y todos te miran extrañados.
-Ay, ay, estimados caballeros, permítanme presentarme, mi nombre es “nombre del jugador”, no he podido evitar escuchar vuestra tertulia. Sería un completo gusto unirme.
-Oh, no creo que te puedas unir, aquí somos refinados y nos gustaría que fuera algo más privado.`,
`-Bueno, en ese caso, os dejaré con ese orden y refinamiento propio del clasicismo.- Dices con un tono desafiante.
Uno de los señores, esbelto y canoso, se altera.
-¡¿Ha dicho clásico?! Por el amor de Dios, como se atreve…`,
`-Una verdadera porquería, ¿verdad? -dices intentando ser parte de la conversación.
-Completamente, les falta pasión y sufrimiento. -enuncia otro de los caballeros en la mesa.`,
`Te han acogido en la conversación, ven que eres como ellos. El camarero se acerca y pregunta.
-¿Todo bien por aquí?- dice mirándote y guiñandote un ojo.
-Por supuesto, esta tertulia es magnífica, y por favor, traiga chocolate con churros para los señores.
El camarero asiente y se va. Tú intentas ser más aún parte de la tertulia.`,
`-Caballeros, ¿han oído hablar sobre Los Miserables?
-¿Te refieres a esos patanes que persiguen a las pobres muchachas por el centro de Madrid?
-No, se refiere a la novela de Victor Hugo. Claro que hemos oído sobre ella, es magnifica.
-Sin duda, Jean Valjean es un personaje único.`,
`Gustas en el grupo, todos te admiran cada vez más por tus formas y conocimientos. Los más mayores de pronto hablan entre sí. Después, uno de ellos te dice:
–Hemos decidido que si escribes un texto propio original de calidad y nos lo traes, podrás entrar en la tertulia, pero antes invita a otra ronda de churros con chocolate y un café.
–¡Claro! Será un placer.`,
`Te levantas y sales de la cafetería con alegría. Ahora solo tienes que escribir ese texto para impresionarlos. ¿Será mejor un poema? ¿Un buen relato?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/001.jpg",
"https://rafaxenakis.neocities.org/xixhoy/002.jpg",
"https://rafaxenakis.neocities.org/xixhoy/003.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/004.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/005.jpg",
"https://rafaxenakis.neocities.org/xixhoy/006.jpg",
"https://rafaxenakis.neocities.org/xixhoy/007.jpg",
"https://rafaxenakis.neocities.org/xixhoy/008.jpg",
"https://rafaxenakis.neocities.org/xixhoy/009.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/010.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/011.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/012.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/013.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/014.jpg"
];
// Pasaje al que quieres ir después de pulsar "Fin"
const NEXT_PASSAGE = "dialogo3";
/* --------- Lógica --------- */
let i = 0;
let finished = false; // indica si ya hemos mostrado la última parte
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btn = document.getElementById("seguir");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btn.addEventListener("click", function () {
// Si aún no hemos llegado al final de las líneas
if (!finished) {
i++;
if (i < lines.length) {
render(i);
} else {
// Hemos mostrado la última línea: la siguiente pulsación será "Fin"
finished = true;
btn.textContent = "Fin ▷";
}
} else {
// Ya está en "Fin": ahora sí cambiamos de pasaje
$.wiki('<<goto "' + NEXT_PASSAGE + '">>');
}
});
// También con Enter o Espacio
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Ir a diálogo 4</button>
<button type="button" id="choice-dialogo5">Ir a diálogo 5</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
` 3 3 3 3 3 3Decides ir a la tertulia; te pones tus mejores trapos y decides marchar. Decides gastar dinero en un coche de caballos para poder llegar; quieres dar impresión de ser alguien conocido.
-¿A dónde se dirige? -te dice el cochero
-A la cafetería San Juan, en calle Sacramento.
-De acuerdo, caballero.`,
`De repente te percatas de algo: el cochero echa miradas de perversión a las jóvenes que pasean por aquellas calles; intimidadas agachaban la cabeza de forma sumisa y sutil. Algo que no te parece adecuado, porque tu vida en la Madrid del s XXI es diferente: las mujeres levantarían la cabeza y se enfrentarían al hombre, pero aquí no; ellas son todo lo contrario, ¿es extraño, no?
Y decides enfrentarte a él porque comienza a decirle cosas a una joven bella dama. Pero, de repente, al poder estar más cerca, ves la hermosura de aquella joven: cabello dorado, piel de porcelana como si de un ángel se tratase, y sus ojos, dos enormes zafiros que deslumbraban al pasar. De repente te das cuenta de que es la primera vez que te sucede: te sientes atraído por alguien totalmente diferente, alguien de otra época. ¿Cómo es posible?`,
`El coche de caballos se detiene ante tu destino. Bajas y te acercas con decisión.
Empujas la puerta de la cafetería San Juan, entrando en ella. Inmediatamente, al entrar, se respiraba el olor a café recién hecho, lo que te reconforta mucho. Hueles los cruasanes hechos a mano, escuchas el tintineo de las tazas sonando, ves la tenue luz que entra por las ventanas, acompañada de las lámparas de vela en el techo, las paredes y en las mesas redondas donde se formaban grandes grupos de personas. Se escuchan sus murmullos discutiendo diferentes temas literarios como el romanticismo.`,
`Se podía apreciar como había señores y señoras que se tomaban su té tranquilamente solos y cómo se tomaban ese tiempo para pensar sus cosas. También había un par de grupos de amigos con ropas humildes que charlaban tomando su té y sus cafés tan tranquilamente. En una mesa había un grupo de estafadores que estafaban con juegos mentales. Todos en esa mesa llevaban una chaqueta de cuero larga y un gorro de copa negro que parecía carbón que casi llegaba al techo. Luego, había unos amigos más adelante, con sus uniformes de trabajo que tenían agujeros. Se estaban tomando un café.`,
`Te fijas en un grupo de escritores que parecía que hablaban de lo que estas buscando, pero no estas preparado para hablar aún, así que te quedas callado en tu mesa para escucharlos.
-¡Como no escuchaste hablar de ese libro, es mundialmente conocido! -exclamó otro alzando ligeramente la voz alarmado.
-No creo que la gente incoherente llegue a entender nunca el verdadero significado del Romanticismo -dijo uno con tono egocéntrico.
Todos se pusieron atentos.`,
`-Un verdadero escritor de este siglo no debe escribir sobre el neoclasicismo, ya que se ha quedado muy anticuado, solo buscando la perfección.
-Yo opino igual, un nuevo escritor no puede escribir como un abuelo.`,
`A continuación, el hombre que estaba al lado del con voz muy grave y resonante dijo:
-Estoy de acuerdo señor, pero hay algo mucho más importante de lo que un escritor moderno no debe escribir, que es sobre la Ilustración. ¡No siempre se debe siempre combatir la ignorancia! ¡Hay otros temas para un escritor!`,
`Te fijas un momento en las mesas de los alrededores, donde se podía apreciar a parejas hablando sobre lo enamorados que estaban. También a otras parejas y sus hijos, cómo jugaban con ellos y como se reían felizmente.`,
`Un hombre de la tertulia, con el pelo blanco y una barba larga dijo:
-Lo más importante que hay que hablar hoy en día es sobre la Edad Media, que estaba lleno de pasión por todos lados.`,
`Estás a punto de hablar, pero uno de los estafadores de la mesa de antes salta y dice:
-¿Queréis ganar 10 monedas con solo apostar 5? -dice con voz burlona.
Automáticamente toda la mesa dice que no y se fue el estafador entre risas.`,
`Entonces al fin puedes y dices:
-Todos esos temas son muy interesantes y todos tienen algo en común, que es el sentimiento de este gran siglo.
Se quedaron todos callados por un momento y, después de ese silencio cortante, todos afirmaron que tenías razón.`,
`-Un verdadero escritor romántico tiene que sentir la naturaleza -dijo un hombre de bufanda roja, mientras daba un sorbo a su café
-No sólo describirla, sino entenderla, vivirla. Tiene que ver un árbol y pensar en su propia tristeza o alegría.
-Sí, como los cuadros de Caspar Friedrich -añadió una mujer que miraba por la ventana-. No pinta solo montañas o bosques. Pinta lo que uno siente al verlos. Soledad,paz,miedo…eso es arte.`,
`- Y la música -dijo un chico con gafas redondas. ¿Cómo puedes escribir si no has escuchado a Beethoven? Sus cuartetos de cuerda, sus sonatas de piano…son pura emoción. Escuchar la Claro de luna te rompe por dentro.
-Oh sí, ese hombre, el gran Ludwig van Beethoven, que buen artista.
-Mi hija ha recibido recibido recientemente una partitura de la sonata Patética y suena de maravilla.`,
`Piensas en cómo participar en esa tertulia, podrías hablar de esa música, y no solo eso, también sobre literatura. Buscas a uno de los camareros y lo llamas.
-Disculpe señor,¿cómo podría entrar en la conversación de los glamurosos señores de aquella mesa?`,
`-¿Para qué quiere participar en dicha disputa, joven?
-Simplemente, dígame algún tipo de información que necesite saber para entrar y cómo hacerlo.
-Bien, suelen venir por aquí, los conozco, y le aseguro que si les demuestras que eres uno más de ellos, te acogerán. Simplemente, muéstrales lo que vales, muchacho.`,
`Tras darle las gracias al camarero, te acercas decidido a la mesa de la tertulia y buscas un sitio para sentarte. Encuentras una silla vacía.
-Caballeros, ¿está esta silla libre?
-Por supuesto.`,
`Te sientas en la silla con ellos en vez de irte, y todos te miran extrañados.
-Ay, ay, estimados caballeros, permítanme presentarme, mi nombre es “nombre del jugador”, no he podido evitar escuchar vuestra tertulia. Sería un completo gusto unirme.
-Oh, no creo que te puedas unir, aquí somos refinados y nos gustaría que fuera algo más privado.`,
`-Bueno, en ese caso, os dejaré con ese orden y refinamiento propio del clasicismo.- Dices con un tono desafiante.
Uno de los señores, esbelto y canoso, se altera.
-¡¿Ha dicho clásico?! Por el amor de Dios, como se atreve…`,
`-Una verdadera porquería, ¿verdad? -dices intentando ser parte de la conversación.
-Completamente, les falta pasión y sufrimiento. -enuncia otro de los caballeros en la mesa.`,
`Te han acogido en la conversación, ven que eres como ellos. El camarero se acerca y pregunta.
-¿Todo bien por aquí?- dice mirándote y guiñandote un ojo.
-Por supuesto, esta tertulia es magnífica, y por favor, traiga chocolate con churros para los señores.
El camarero asiente y se va. Tú intentas ser más aún parte de la tertulia.`,
`-Caballeros, ¿han oído hablar sobre Los Miserables?
-¿Te refieres a esos patanes que persiguen a las pobres muchachas por el centro de Madrid?
-No, se refiere a la novela de Victor Hugo. Claro que hemos oído sobre ella, es magnifica.
-Sin duda, Jean Valjean es un personaje único.`,
`Gustas en el grupo, todos te admiran cada vez más por tus formas y conocimientos. Los más mayores de pronto hablan entre sí. Después, uno de ellos te dice:
–Hemos decidido que si escribes un texto propio original de calidad y nos lo traes, podrás entrar en la tertulia, pero antes invita a otra ronda de churros con chocolate y un café.
–¡Claro! Será un placer.`,
`Te levantas y sales de la cafetería con alegría. Ahora solo tienes que escribir ese texto para impresionarlos. ¿Será mejor un poema? ¿Un buen relato?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/001.jpg",
"https://rafaxenakis.neocities.org/xixhoy/002.jpg",
"https://rafaxenakis.neocities.org/xixhoy/003.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/004.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/005.jpg",
"https://rafaxenakis.neocities.org/xixhoy/006.jpg",
"https://rafaxenakis.neocities.org/xixhoy/007.jpg",
"https://rafaxenakis.neocities.org/xixhoy/008.jpg",
"https://rafaxenakis.neocities.org/xixhoy/009.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/010.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/011.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/012.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/013.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/014.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "dialogo4";
const PASSAGE_2 = "dialogo5";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
diálogo 4<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Ir a diálogo 4</button>
<button type="button" id="choice-dialogo5">Ir a diálogo 5</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
` 555555Decides ir a la tertulia; te pones tus mejores trapos y decides marchar. Decides gastar dinero en un coche de caballos para poder llegar; quieres dar impresión de ser alguien conocido.
-¿A dónde se dirige? -te dice el cochero
-A la cafetería San Juan, en calle Sacramento.
-De acuerdo, caballero.`,
`De repente te percatas de algo: el cochero echa miradas de perversión a las jóvenes que pasean por aquellas calles; intimidadas agachaban la cabeza de forma sumisa y sutil. Algo que no te parece adecuado, porque tu vida en la Madrid del s XXI es diferente: las mujeres levantarían la cabeza y se enfrentarían al hombre, pero aquí no; ellas son todo lo contrario, ¿es extraño, no?
Y decides enfrentarte a él porque comienza a decirle cosas a una joven bella dama. Pero, de repente, al poder estar más cerca, ves la hermosura de aquella joven: cabello dorado, piel de porcelana como si de un ángel se tratase, y sus ojos, dos enormes zafiros que deslumbraban al pasar. De repente te das cuenta de que es la primera vez que te sucede: te sientes atraído por alguien totalmente diferente, alguien de otra época. ¿Cómo es posible?`,
`El coche de caballos se detiene ante tu destino. Bajas y te acercas con decisión.
Empujas la puerta de la cafetería San Juan, entrando en ella. Inmediatamente, al entrar, se respiraba el olor a café recién hecho, lo que te reconforta mucho. Hueles los cruasanes hechos a mano, escuchas el tintineo de las tazas sonando, ves la tenue luz que entra por las ventanas, acompañada de las lámparas de vela en el techo, las paredes y en las mesas redondas donde se formaban grandes grupos de personas. Se escuchan sus murmullos discutiendo diferentes temas literarios como el romanticismo.`,
`Se podía apreciar como había señores y señoras que se tomaban su té tranquilamente solos y cómo se tomaban ese tiempo para pensar sus cosas. También había un par de grupos de amigos con ropas humildes que charlaban tomando su té y sus cafés tan tranquilamente. En una mesa había un grupo de estafadores que estafaban con juegos mentales. Todos en esa mesa llevaban una chaqueta de cuero larga y un gorro de copa negro que parecía carbón que casi llegaba al techo. Luego, había unos amigos más adelante, con sus uniformes de trabajo que tenían agujeros. Se estaban tomando un café.`,
`Te fijas en un grupo de escritores que parecía que hablaban de lo que estas buscando, pero no estas preparado para hablar aún, así que te quedas callado en tu mesa para escucharlos.
-¡Como no escuchaste hablar de ese libro, es mundialmente conocido! -exclamó otro alzando ligeramente la voz alarmado.
-No creo que la gente incoherente llegue a entender nunca el verdadero significado del Romanticismo -dijo uno con tono egocéntrico.
Todos se pusieron atentos.`,
`-Un verdadero escritor de este siglo no debe escribir sobre el neoclasicismo, ya que se ha quedado muy anticuado, solo buscando la perfección.
-Yo opino igual, un nuevo escritor no puede escribir como un abuelo.`,
`A continuación, el hombre que estaba al lado del con voz muy grave y resonante dijo:
-Estoy de acuerdo señor, pero hay algo mucho más importante de lo que un escritor moderno no debe escribir, que es sobre la Ilustración. ¡No siempre se debe siempre combatir la ignorancia! ¡Hay otros temas para un escritor!`,
`Te fijas un momento en las mesas de los alrededores, donde se podía apreciar a parejas hablando sobre lo enamorados que estaban. También a otras parejas y sus hijos, cómo jugaban con ellos y como se reían felizmente.`,
`Un hombre de la tertulia, con el pelo blanco y una barba larga dijo:
-Lo más importante que hay que hablar hoy en día es sobre la Edad Media, que estaba lleno de pasión por todos lados.`,
`Estás a punto de hablar, pero uno de los estafadores de la mesa de antes salta y dice:
-¿Queréis ganar 10 monedas con solo apostar 5? -dice con voz burlona.
Automáticamente toda la mesa dice que no y se fue el estafador entre risas.`,
`Entonces al fin puedes y dices:
-Todos esos temas son muy interesantes y todos tienen algo en común, que es el sentimiento de este gran siglo.
Se quedaron todos callados por un momento y, después de ese silencio cortante, todos afirmaron que tenías razón.`,
`-Un verdadero escritor romántico tiene que sentir la naturaleza -dijo un hombre de bufanda roja, mientras daba un sorbo a su café
-No sólo describirla, sino entenderla, vivirla. Tiene que ver un árbol y pensar en su propia tristeza o alegría.
-Sí, como los cuadros de Caspar Friedrich -añadió una mujer que miraba por la ventana-. No pinta solo montañas o bosques. Pinta lo que uno siente al verlos. Soledad,paz,miedo…eso es arte.`,
`- Y la música -dijo un chico con gafas redondas. ¿Cómo puedes escribir si no has escuchado a Beethoven? Sus cuartetos de cuerda, sus sonatas de piano…son pura emoción. Escuchar la Claro de luna te rompe por dentro.
-Oh sí, ese hombre, el gran Ludwig van Beethoven, que buen artista.
-Mi hija ha recibido recibido recientemente una partitura de la sonata Patética y suena de maravilla.`,
`Piensas en cómo participar en esa tertulia, podrías hablar de esa música, y no solo eso, también sobre literatura. Buscas a uno de los camareros y lo llamas.
-Disculpe señor,¿cómo podría entrar en la conversación de los glamurosos señores de aquella mesa?`,
`-¿Para qué quiere participar en dicha disputa, joven?
-Simplemente, dígame algún tipo de información que necesite saber para entrar y cómo hacerlo.
-Bien, suelen venir por aquí, los conozco, y le aseguro que si les demuestras que eres uno más de ellos, te acogerán. Simplemente, muéstrales lo que vales, muchacho.`,
`Tras darle las gracias al camarero, te acercas decidido a la mesa de la tertulia y buscas un sitio para sentarte. Encuentras una silla vacía.
-Caballeros, ¿está esta silla libre?
-Por supuesto.`,
`Te sientas en la silla con ellos en vez de irte, y todos te miran extrañados.
-Ay, ay, estimados caballeros, permítanme presentarme, mi nombre es “nombre del jugador”, no he podido evitar escuchar vuestra tertulia. Sería un completo gusto unirme.
-Oh, no creo que te puedas unir, aquí somos refinados y nos gustaría que fuera algo más privado.`,
`-Bueno, en ese caso, os dejaré con ese orden y refinamiento propio del clasicismo.- Dices con un tono desafiante.
Uno de los señores, esbelto y canoso, se altera.
-¡¿Ha dicho clásico?! Por el amor de Dios, como se atreve…`,
`-Una verdadera porquería, ¿verdad? -dices intentando ser parte de la conversación.
-Completamente, les falta pasión y sufrimiento. -enuncia otro de los caballeros en la mesa.`,
`Te han acogido en la conversación, ven que eres como ellos. El camarero se acerca y pregunta.
-¿Todo bien por aquí?- dice mirándote y guiñandote un ojo.
-Por supuesto, esta tertulia es magnífica, y por favor, traiga chocolate con churros para los señores.
El camarero asiente y se va. Tú intentas ser más aún parte de la tertulia.`,
`-Caballeros, ¿han oído hablar sobre Los Miserables?
-¿Te refieres a esos patanes que persiguen a las pobres muchachas por el centro de Madrid?
-No, se refiere a la novela de Victor Hugo. Claro que hemos oído sobre ella, es magnifica.
-Sin duda, Jean Valjean es un personaje único.`,
`Gustas en el grupo, todos te admiran cada vez más por tus formas y conocimientos. Los más mayores de pronto hablan entre sí. Después, uno de ellos te dice:
–Hemos decidido que si escribes un texto propio original de calidad y nos lo traes, podrás entrar en la tertulia, pero antes invita a otra ronda de churros con chocolate y un café.
–¡Claro! Será un placer.`,
`Te levantas y sales de la cafetería con alegría. Ahora solo tienes que escribir ese texto para impresionarlos. ¿Será mejor un poema? ¿Un buen relato?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/001.jpg",
"https://rafaxenakis.neocities.org/xixhoy/002.jpg",
"https://rafaxenakis.neocities.org/xixhoy/003.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/004.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/005.jpg",
"https://rafaxenakis.neocities.org/xixhoy/006.jpg",
"https://rafaxenakis.neocities.org/xixhoy/007.jpg",
"https://rafaxenakis.neocities.org/xixhoy/008.jpg",
"https://rafaxenakis.neocities.org/xixhoy/009.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/010.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/011.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/012.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/013.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/014.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "creditos";
const PASSAGE_2 = "mapainicial";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Despedirse del Conde</button>
<button type="button" id="choice-dialogo5">Escuchar la segunda leyenda sobre Mara</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cuenta la leyenda que esta criatura, la Mara, era una bella y buena mujer con pelo negro y ojos azules llamada Samantha, una de las más guapas de la aldea.`,
`El príncipe Fernando III se enamoró de ella e intentó conquistarla, pero Samantha no quería ese cargo de ser la mujer del príncipe, ya que no terminan muy bien. El príncipe Fernando III siguió insistiendo, hasta que, de lo cansada que estaba de él, obligada casi, aceptó ser la mujer del príncipe.`,
`Samantha poco a poco se fue enamorando del príncipe, pero el príncipe poseía muchas más mujeres mientras estaba con ella. Hasta que un día ella pilló al príncipe con otra mujer y se dio cuenta de que ya no quería estar con él. Pero el príncipe se negaba a marcharse del castillo.`,
`Así que Samantha decidió ir diciendo por ahí todo lo que le hacía el príncipe. Como todos los habitantes de la aldea defendían al rey por miedo, dieron a Samantha por bruja, y el príncipe, avergonzado de ella por lo que iba diciendo por ahí, decidió hacer un hechizo, creando un líquido tóxico contra ella.`,
`A Samantha fueron a buscarla muchas personas de la aldea para echarle el hechizo. Finalmente se lo echaron y se convirtió en el animal fantástico Mara, de color de piel verde, orejas puntiagudas, pero con sus ojos azules y cabello oscuro. Se fue a vivir a las afueras de la aldea, a una cueva solitaria.
Moraleja: si no estás segura de hacer las cosas, no las hagas, por mucho que alguien te insista.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/021.jpg",
null,
"https://rafaxenakis.neocities.org/codice/022.jpg",
null,
"https://rafaxenakis.neocities.org/codice/023.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "despedidamara";
const PASSAGE_2 = "mara2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Despedirse del Conde</button>
<button type="button" id="choice-dialogo5">Escuchar la primera leyenda sobre Mara</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cuenta la leyenda que, en el siglo X, cuando el reino de Castilla se estaba levantando, el rey de entonces salía de vez en cuando a dar vueltas por los alrededores del reino para asegurarse de que todo iba harto bien.`,
`Ahí fue cuando un día el rey se alejó del reino para explorar y vio algo brillante entre los arbustos. Como cualquier hombre sin nada que hacer, se acercó, y lo brillante se alejó. Continuó siguiéndolo hasta que llegó a un valle con un lago harto grande y unas humanas verdes con ojos azules brillantes.`,
`Las criaturas rodearon al rey como si fuera un ser extraño. El rey, nervioso, para salvar su pellejo, les ofreció palacras (pepitas de oro) y les dijo que les daría de yantar (comer) si no le hacían nada. Las criaturas, confusas, se miraron entre ellas y luego una de ellas, la reina, se acercó al rey y le ofreció un trato: si el rey no decía nada de ellas y les daba varias riquezas, no le harían nada.`,
`Tras eso, el rey comenzó a enorgullecerse y aceptó el trato, que era harto bueno para las demás criaturas, pero no tenía otra forma de salir como una pieza. De paso aprovechó para sacarles información, ya que tenían poca inteligencia, y así fue como se conoce ahora todo lo que sabemos de esas criaturas.`,
`Se dice que, tras eso, el rey no volvió al reino de Castilla, pero eso es meramente falso: unos dicen que sí y otros que no, no se sabe nada de eso.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/024.jpg",
null,
"https://rafaxenakis.neocities.org/codice/025.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "despedidamara";
const PASSAGE_2 = "mara1";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Bestiario de Phantasmata</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`-¿Quién escribió este libro y de dónde sacó la información?
-¡Lo escribí yo, ni más ni menos! -exclamó el conde-. Pude ver con este ojo -se señaló su ojo azul oscuro derecho- cómo eran esas criaturas. Tenían unos ojos azules que hipnotizaban, su pelo era muy largo y oscuro y no se entendían entre ellas.`,
`Algo inquieto, porque el ojo del conde era muy parecido al de las criaturas, Theobaldus murmuró:
-Y… y usted, po… ¿por qué tiene esos ojos?
-Porque cuando las vi me hipnotizaron y me dejaron los ojos así -dijo nervioso.
-Bueno, he aprendido suficiente, ya sé cómo son esas criaturas y creo que es momento de irme -dijo inquieto Theobaldus.
-Muchas gracias por su visita, sabio aventurero. Nos volveremos a ver.`,
`Theobaldus no dio importancia a las palabras del conde y se fue del castillo con prisa. Tras unos minutos consiguió alejarse del castillo, sospechando que el cortesano era una de esas criaturas, y se quedó más tranquilo sabiendo que no estaba cerca de él.`,
`Después de un rato, cuando Theobaldus ya se había alejado, el conde se quedó solo y, de repente, se quitó la capucha y mostró una melena larga y oscura. Sus ojos azules oscuros comenzaron a brillar hasta que su piel cambió a un tono verde claro.
-Qué hombre tan interesante -dijo para sí misma-. Me agrada.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/026.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/027.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "bestiario";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Bestiario de Phantasmata</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cuenta la leyenda que el príncipe Felipe III debía ir al Reino de Siam (Oriente), ya que debía recoger seda y especias de la zona, obligado por el rey, que a su vez era su padre, debido a su mal comportamiento en palacio.`,
`Al salir del puerto, el príncipe obligó a la embarcación a coger un camino corto y muy peligroso, pasando África por debajo para no tener que pasar por el norte de Europa.
Lo que no sabía el príncipe era que allí habitaba una gran criatura: la Raspera. La tripulación le habló de la criatura. Pero, pesar de la advertencia de los experimentados marineros, el príncipe siguió adelante.`,
`Al llegar a la zona, apareció la Raspera, que, después de destruir el barco, atrapó y devoró a cada marinero con su larga lengua, succionándolos a su boca junto al príncipe.
Moraleja: debes escuchar a la gente experimentada y no creerte un listo.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/031.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "bestiario";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Bestiario de Phantasmata</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Lavaquito, un ave de lava, nació de un antiguo volcán activo en las antiguas islas Baleares. El volcán era tan alto que hasta las nubes tapaban el pico. Ocultaba en su interior un huevo antiguo enorme, comparable a una lujosa casa del señor feudal. El huevo llevaba ahí desde hace milenios y se había ido haciendo más grande y cada vez más rojo. El reino de Castilla (que sabía de su existencia) suponía que estaba siendo incubado por el calor del volcán, como lo haría la pechuga de la madre de un pollo normal.`,
`El huevo, al pasar otros seis años, se abrió durante una noche de agosto. “Se vio una luz roja radiante en el cielo”, dijo un monje de una montaña cercana. La luz era Lavaquito, que por fin había despertado de su larga incubación. Viajó hacia el reino de Castilla y, cuando llegó, encontró una cueva. Hizo un nido improvisado para pasar la noche.`,
`Fue a cazar y se lanzó hacia un río; con su pico, de un bocado, se comió a un gran pez. Al meterse de lleno en el río, le hizo daño el bajón de la temperatura, casi apagándose por completo. Un explorador castellano avistó al gran ave y la siguió hasta su cueva.`,
`La cueva, llena de huesos de animales y humanos, estaba iluminada de rojo. El explorador, llamado Felipe I, con gran valentía, se adentró en la gran cueva y vio al gran ave en su nido, pero de color grisáceo, irradiando calor, aunque no el que debería provenir de un volcán. También había restos orgánicos a la entrada de la cueva y sangre seca pegada en las paredes, como si se tratara de pinturas en una cueva cavernícola.`,
`El gran ave se despertó y se quedó mirando al explorador. No lo atacó debido a unas hierbas que tenían un olor que no le gustaba al ave. El explorador no se dio cuenta; se creía que el ave era inofensiva, pero eso fue lo que le hizo seguir con vida. El explorador, en su mapa, dibujó el camino hacia la cueva y también un dibujo del ave. Luego se marchó hacia su castillo y lo guardó en un baúl, para que, cuando viniera el monje raro con su códice, pudiera dárselo.`,
`Moraleja:
Siempre prevé lo que te pueda pasar,
porque la muerte llega y no es al azar.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/044.jpg",
null,
"https://rafaxenakis.neocities.org/codice/045.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "bestiario";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice23.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Bestiario de Phantasmata</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tiene una apariencia común,
pero no es animal normal,
domada por una anciana
y con un veneno mortal.
Muy peligrosa serpiente,
como nadie sigilosa,
asesina reyes grandes
y reinas poderosas.`,
`Como soldado obedece
a su anciana rencorosa,
mata a los hombres más ricos
y sus soberbias esposas.`,
`Es enemiga del poder,
de la gente avariciosa,
hay cada vez más lápidas
con las más bonitas rosas,
todas la mejor calidad,
las mejores amapolas,
todas las más exclusivas
y todas las más costosas`,
`Como soldado obedece
a su anciana rencorosa,
mata a los hombres más ricos
y sus soberbias esposas.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/013.jpg",
"https://rafaxenakis.neocities.org/codice/014.jpg",
"https://rafaxenakis.neocities.org/codice/013.jpg",
"https://rafaxenakis.neocities.org/codice/014.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "bestiario";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la leyenda sobre la Gran Madre Rostro</button>
<button type="button" id="choice-dialogo5">Volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cuenta la leyenda que, hace muchos muchos años, aquí había una gran aldea con muchos habitantes entre los que estaba Kon. Por sus especiales características que le hacían diferente al resto, era muy conocido, pero esto no le hacía verse como un ser malo y peligroso. Por el contrario, en la aldea casi todos los habitantes lo veían como un ser sagrado... todos menos uno.`,
`Este era el hombre más viejo y sabio del lugar. Este aseguraba que cuando él era pequeño había una criatura exactamente igual a él, la que era su madre, llamada “la Gran Madre Rostro”. La Gran Madre Rostro, cada noche le robaba y cambiaba el rostro a un habitante de la aldea. Un día todos se pusieron de acuerdo e idearon un plan para espantar del pueblo a la espantosa criatura. El sabio no recordaba muy bien como la expulsaron, pero sí sabía que las armas no podían hacerle daño. Finalmente la expulsaron, pero el sabio asegura que tuvo un hijo, llamado Kon y que quiere hacer lo mismo que su madre.`,
`Al oír lo que decía el sabio, todo el pueblo lo tomó por loco. “¿Cómo va a ser verdad si todo el pueblo lo ama?”, decían los habitantes. Pero un día Kon convocó a todo el pueblo para hablar de un tema. Al oírlo, todos fueron, todos menos el sabio. Ese mismo día, a la hora de la charla todos se sentaron tranquilos confiando en Kon, pero este aprovechando su confianza les robó el rostro a todos los aldeanos. Hoy en día se dice que todas las caras que tiene son las que les robó a los aldeanos antes de huir.`,
`Y tiene una enseñanza, señor, todo esto. Y es que, a veces, lo que digan o piensen todos no es lo correcto: piensa que las personas que consiguen ser exitosas lo consiguen pensando diferente al resto.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/049.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "konleyenda2";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la leyenda sobre Kon</button>
<button type="button" id="choice-dialogo5">Volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Hace muchos años, cuando el desierto era un gran bosque, vivía una especie de monstruo llamado la Gran Madre Rostro. Tenía un cuerpo largo, como un doble gusano gigante con muchas caras. Cada cara era diferente.`,
`Ella podía darte una nueva cara una más bonita o más feliz, pero si te daba una nueva se llevaba la tuya con tus pensamientos. Pero esto no es todo, cuenta la leyenda que muchas personas fueron a buscarla para olvidar su vida y que les diera una nueva cara, pero a muchos de ellos se los comía.
Le gustaban las personas que lloraban, gritaban o tenían miedo, porque así copiaba sus caras y su cuerpo crecía más y más.`,
`Un día un chico fue a verla. Él estaba muy triste y quería olvidar su dolor. La Gran Madre Rostro apareció, tenía muchas caras feas y ojos brillantes. Le dijo al chico con voz ronca y extraña:
-Te puedo dar una cara feliz
Pero el chico no dijo nada. No lloró, no mostró miedo ni siquiera movió la cara.`,
`La Gran Madre Rostro se enfadó bastante, gritó, cambió de forma y aun así el chico no mostró ninguna emoción. Entonces la bestia se fue con mucha rabia porque no pudo comérselo. Desde ese día, dicen que solo ataca a quien tiene miedo o tristeza en la cara.
MORALEJA: Si mantienes la calma y no muestras tus sentimientos, puedes proteger tu corazón.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/050.jpg",
null,
"https://rafaxenakis.neocities.org/codice/051.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "konleyenda1";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Bestiario de Phantasmata</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`-Sí, por favor, me daría mucho interés escuchar la historia.
-Perfecto. Hace más o menos cuatro décadas, cuando yo tenía muchas menos canas y mi cara estaba sin arrugas, con un equipo de otros monjes de al menos 25 años, estábamos explorando una parte del bosque que, como decía la leyenda, quien entrara a partir de que los árboles estén congelados del todo no sobreviviría más de tres días. Pero nosotros, sin creernos la leyenda, nos adentramos por el bosque y alucinamos del frío que hacía, y además los árboles eran todos de color azul.`,
`Tras doce horas de constante movimiento, observamos una cueva con un poco de vegetación; decidimos descansar allí ya que la noche se adentraba y la cueva nos quitaría un poco del frío que hacía. Ya en la cueva, adentro, preparamos nuestro refugio y, cuando cazamos un par de cervatillos y cogimos bastante verdura, ya después de cenar, nos íbamos a dormir. Pero yo me quedé despierto, porque era el único que tenía el temor de la gente que lo había explorado: qué les pasó para que no volvieran.`,
`Tras cinco minutos de quedarme pensando qué había que no habíamos visto, escuché un ruido como el de un dragón y, además, llegó al instante una ventisca de aire frío que despertó a todos mis compañeros. Ellos, al levantarse, recogieron el refugio rápidamente y salieron afuera para ver qué pasaba. Al salir vieron una criatura gigante, como un dragón, a cincuenta metros, yendo hacia ellos. ¡Era el terrible Pratus! Yo fui el único que pudo refugiarse detrás de una roca gigante, al contrario que mis compañeros, que no reaccionaron tan rápido como yo y se los llevó para adelante. ¡Que Dios haya acogido sus almas!`,
`Al terminar, un sonido parecido al de un búho se pudo apreciar. Theobaldus, al asomarse, no pudo ver nada, pero, al fijarse más, unas plumas brillantes como la noche y blancas como la nieve se dejaron observar. Al intentar ver mejor, rompió una rama tirada por ahí. El animal oyó el sonido y su cabeza empezó a girar, cosa que no cualquier animal puede hacer.`,
`-¿Eso qué es? -preguntó.
-¡Quítate, Theobaldus! -exclamó el sabio, mientras suspiraba sin descanso-. Eso se llama la Caída de las Cuatro Nieves, una lechuza como cualquier otra, pero con habilidades que pueden rivalizar con las de Pratus. Es súper peligrosa, y esa es la única información que tenemos de ella. ¡Ahora vete, monje Theobaldus! ¡No te fíes más de tu buena suerte y huye!`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/038.jpg",
null,
"https://rafaxenakis.neocities.org/codice/039.jpg",
"https://rafaxenakis.neocities.org/codice/037.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "bestiario";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la segunda leyenda sobre el Hipogrifo</button>
<button type="button" id="choice-dialogo5">Volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cuentan los abuelos de los tiempos lejanos que Dios creaba animales mezclados, dándose a entender que creaba dos animales a la vez, pero en un mismo cuerpo. Dios quiso crear un animal bastante interesante porque le gustaba y nunca había experimentado hacer esa mezcla: y era un caballo y un águila llamado Hipogrifo. Ese animal era gigante, con las dos patas de atrás de caballo, las dos de delante de águila, y su cola era peluda, blanca, y su cabeza y alas de águila.`,
`Cuando Hipogrifo era pequeñito, todos lo querían mucho en la ciudad; era adorable y bueno, hasta que un día se fue volviendo más grande. De repente voló hacia otra ciudad escapando de la suya y se fue hacia un mercado medieval. Llegó con sus enormes alas y se puso en mitad de la calle sin que la gente pudiese pasar. Las personas, asombradas y asustadas, vieron que Hipogrifo soltaba fuego rojo por la boca; la gente temía que el grande animal le pudiese hacer algo. Le tocaban y eso a él no le gustaba.`,
`Decidió pegar un salto y tumbó a una persona; la mujer pegó un chillido y todo el mundo en vez de ayudarla corría, porque temían lo que le pudiera pasar. Hasta que Hipogrifo decidió levantarse y marcharse hasta la cueva donde él vivía. De la mujer de aquel mercado medieval no se supo nada más. Dios se puso ese día un poco triste por lo que vio sobre el comportamiento de su propia criatura.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/055.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "hipogrifoleyenda2";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la primera leyenda sobre el Hipogrifo</button>
<button type="button" id="choice-dialogo5">Volver al mapa del Bestiario de Phantasmata</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cuenta la leyenda que el Hipogrifo era un animal venido de los dioses. Tranquilo iba, de pueblo en pueblo junto a su padre y madre, jugando con los pueblerinos y protegiendo a la gente buena de mercenarios: por cierto, unas personas repugnantes.`,
`Un día, de camino a un pueblo, en un cruce de caminos, en una gran explanada de pocos árboles y muchos arbustos, un abad y sus monjes, que estaban pasando el tiempo, les pareció gracioso atacar a Hipogrifo y a sus padres. En ese momento, el padre de Hipogrifo le mandó a él y a su madre que se fueran lo más lejos posible. Pero no lo hicieron, se quedaron con él a luchar.`,
`El abad sacó una gran ballesta con un veneno en la flecha que era mortal: a los pocos segundos de que tenga contacto con tu sangre, mueres de una manera fulminante. El abad, que tenía bastante puntería, le dio al padre de Hipogrifo un ballestazo en el cuello. Su madre y él empezaron a correr, pero ella, al ver que les seguían, frenó en seco, dejando unas huellas que se dice que todavía siguen en ese lugar.`,
`Hipogrifo se giró y justo se le habían echado encima; le estaban clavando los cuchillos a su madre de una manera inhumana. En ese momento quedó traumatizado y juró que cualquier monasterio o monje que viera lo atacaría sin piedad ninguna. Pero tranquilos, que con los demás seguirá siendo igual de tranquilo.
Moraleja: No te metas con quien no conoces porque puede ser hijo de los dioses.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/056.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "hipogrifoleyenda1";
const PASSAGE_2 = "bestiario";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $bestiario += 1>><</if>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice21.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la historia sobre el rey y sus dos hijos</button>
<button type="button" id="choice-dialogo5">Salir huyendo y volver al mapa de Fabulae Sapientiae</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Todo comienza con Theobaldus llegando a la cima de una colina, marcando su paso con huellas. Tarde o temprano el sol se esconderá detrás de esas dos montañas, llegando así la noche.
De pronto, escuchó a unos bandidos. Theobaldus se ocultó.`,
`-Eh, tío, me habías dicho que habías visto algo. ¿O serán otras de tus imaginaciones?
Theobaldus, asustado, se tapó la boca y no se movió para que no lo vean.
-No… lo vi, lo juro por el Creador.
-A lo mejor será un animal. No le des vueltas. Venga, vámonos.
Theobaldus, al pasar un rato y ver que no había ni oía a nadie, decidió salir y empezar a aligerar el paso.`,
`Llevaba toda la tarde caminando. Viendo el atardecer, se fijó en unas pequeñas voces que se escuchaban desde lejos. Decidió acercarse y eran un grupo de campesinos, un pequeño grupo de mujeres y hombres. Se sentía que estaban descansando porque estaban sentados y compartiendo pan y vino. Al llegar cerca de ellos, una brisa de aire le dio en la cara a Theobaldus.`,
`Luego de una corta caminata llegó. Aliviado, saludó a la gente presente: había adultos, ancianos, mujeres y niños. Le devolvieron el saludo y Theobaldus decidió compartir su comida, como Dios hizo.
-¿Queréis algo de lo mío?
Una niña se acercó y le pidió un poco de pan. Theobaldus acarició su cabeza y le dio un trozo, y así se empezaron a acercar más.`,
`Luego de repartir la comida, uno de los adultos anunció que iba a contar una historia; así toda la gente se acercó, haciendo un semicírculo delante de él. Theobaldus sacó su pluma y su códice y quiso escribir la historia.
-Antes de nada, cojan sus panes y vinos y prepárense para la siguiente historia, en la que un rey tuvo que elegir entre uno de sus dos hijos para que heredara la corona. Señor monje, ¿quiere usted escucharla?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/166.jpg",
null,
"https://rafaxenakis.neocities.org/codice/104.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "iniciorey";
const PASSAGE_2 = "fabulae";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice22.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Escuchar la historia sobre el mercader de Venecia</button>
<button type="button" id="choice-dialogo5">Salir huyendo y volver al mapa de Fabulae Sapientiae</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Theobaldus sentía el deseo de ir a Venecia, ciudad con mucha popularidad y llena de misterios. Tras mucho tiempo queriendo ir, alquiló un barco, porque a Venecia solo podía llegar en barco. Está a punto de partir: su barco es de madera de roble; no es el más resistente, pero piensa que no hace falta un barco tan fuerte para ir tan solo hasta allí, pues se encontraba ya en Italia, muy cerca de esa ciudad.`,
`El clima parecía de lo más normal: el agua estaba calmada, el día estaba soleado y hacía una temperatura primaveral. Al ver la buena condición climática, Theobaldus cogió comida, bebida y dinero, lo necesario para sobrevivir, y partió hacia Venecia. Era martes.`,
`Pasaron unos cuantos días y el clima se encontraba normal, tal y como había previsto; sin embargo, a finales de la semana, concretamente el sábado por la mañana, comenzó a llover. Llovía poco, pero sin parar. Theobaldus creía que iba a parar; sin embargo, ocurrió lo contrario: esa tarde-noche caía el doble de lluvia que al amanecer. El agua se agitaba, caían truenos y la ansiedad empezaba a florecer en Theobaldus. Parecía que el barco se iba a hundir.`,
`Theobaldus estaba en ese momento en uno de los máximos puntos de ansiedad en toda su vida, pero afortunadamente vio el puerto de Venecia. Verlo fue un completo alivio para Theobaldus. Llegó ya al puerto; sabía perfectamente que era Venecia: esas majestuosas góndolas, campanarios gigantescos, los palacios de piedra reflejados en el agua, el olor característico a sal. Esas hermosas características no podían ser de otro lugar.`,
`Todo era precioso, sin embargo, no estaba allí para ver la ciudad, sino que había ido con un objetivo claro: visitar un monasterio en el sur de la ciudad. ¿Por qué precisamente ese monasterio? Porque en la anterior ciudad en la que estuvo le dijeron que allí vivía un anciano monje ciego. Pero ese monje tenía algo que lo caracterizaba aún más que esa ceguera: conocía historias olvidadas. De pequeño, aquel monje, cuando aún tenía la virtud de ver, estuvo constantemente leyendo historias no muy conocidas, pero que él consideraba bellísimas. Se podría decir que aprovechó bien la vista mientras la tuvo.`,
`Theobaldus le preguntó a un gondolero:
-Perdone, ¿dónde está el monasterio del anciano monje ciego venerable?
-¡Claro! Está aquí, a un pasito. Siga recto y, a la derecha, coge el puente; gira a la izquierda, luego la segunda a la derecha… no, la primera. Sigue recto hasta poder girar a la derecha; luego muy recto, giras la última a la derecha, subes el puente, giras a la derecha, recto, luego otra vez izquierda, subes un puente, sigues recto y, al subir las escaleras, sigues las indicaciones que hay allí, y si todo va bien, llegas.`,
`Fue un camino largo, de dos horas y media. A la una y media ya estaba allí y preguntó por el anciano. Los jóvenes monjes le dicen que está muy débil, apenas ve la luz del día, pero que si necesitaba verlo podía pasar.
-¿Serían tan amables de acompañarme, jóvenes? -preguntó Theobaldus, a lo que los jóvenes asintieron con la cabeza.
Los monjes le dijeron que ha llegado a tiempo, porque al venerable monje le queda poco, que casi no ve la luz del sol.`,
`Theobaldus fue conducido hacia el anciano. Estaba en una celda con una única vela. Theobaldus llega a donde está el anciano, que fija la vista en él y, tras verlo como pudo, se percató de quién era y lo saludó por su nombre.
-¡Theobaldus, he estado esperando su visita desde hace un gran tiempo! -exclamó el anciano.`,
`Theobaldus se sorprendió; se esperaba cualquier reacción del anciano menos esa. Theobaldus se sentó a su lado, ya con toda la confianza del mundo.
-Por favor, anciano, he venido aquí para escuchar alguna emocionante historia antigua de la ciudad -dice Theobaldus, que ya tenía mucha confianza con él.
-Te contaré la historia de un mercader veneciano que creyó poder negociar con el mar y con el mismo demonio -contesta el anciano sonriente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/168.jpg",
null,
null,
null,
"https://rafaxenakis.neocities.org/codice/169.jpg",
"https://rafaxenakis.neocities.org/codice/170.jpg",
"https://rafaxenakis.neocities.org/codice/171.jpg",
"https://rafaxenakis.neocities.org/codice/172.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "iniciovenecia";
const PASSAGE_2 = "fabulae";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Le cuenta la historia del mozo que se arriesgó a hacer lo correcto
</button>
<button type="button" id="choice-monje">
Le cuenta la historia del monje que aprendió a seguir las tradiciones
</button>
<button type="button" id="choice-juglar">
Le cuenta la historia del juglar que engañó a todos
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Érase una vez, en unos pueblos lejanos, había dos reyes llamados Albus y Lupin, con una gran amistad, que pactaron la paz entre sus reinos. Lupin era un sabio y bondadoso rey: gobernó su reino durante muchos años, mas su salud, con el tiempo, iba disminuyendo. Su hijo, joven y ambicioso, empezó a hablar de conquistar tierras y pelear por las fronteras.`,
`Un día, por causas catastróficas, uno de los reyes amigos, Albus, murió de manera repentina y se quedó con el trono su hijo mayor, Cedric, con sus fieles ayudantes y hermanos pequeños: Krum y Nikkolas.
-Cedric, ¡¿estás loco?! Llevamos muchos años en armonía gracias a los contratos y acuerdos de nuestro difunto padre.
-Me da igual, Nikkolas, yo quiero todas las tierras, y eso conseguiré.
-Pues yo prefiero vivir en armonía.
Nikkolas hizo sus maletas y, en maitines, marchó hacia el horizonte en busca de una vida más tranquila.`,
`Mientras tanto, en el otro reino, Lupin se sentía viejo, cansado y triste. Su esposa había muerto de una epidemia desconocida e incurable y él sentía que su fuerza desaparecía. Las fuerzas le faltaban, los dolores se hacían más fuertes y constantes
El rey, cansado y melancólico, estaba empezando a sentir que ya no estaba hecho para esto, y entonces piensa que lo mejor es dejarle el trono a alguno de sus hijos.
-Yo no puedo seguir así -se dijo-. El reino necesita un líder fuerte y rápido.
Él pensó: “Mi legado como rey está acabando y a uno de mis hijos debo dejarlo”.`,
`El rey se dirigió a su mejor consejero y le preguntó:
-No sé a quién deba dejarle mi trono y mis riquezas. Están mis dos hijos, pero el mayor no tiene suficiente cordura, y si le cedo mi trono al pequeño, ¿qué pensarán de mí los demás reyes?
-Oh, mi rey, usted debe dejarle su legado a quien mejor vaya a gobernar nuestro reino. No debe importarle lo que digan los demás reyes, pues con su elección se darán cuenta de que no se equivoca.`,
`Mientras el rey y el consejero hablaban, aparecieron por la puerta sus dos hijos.
-Es un placer acceder a este repentino cónclave -dijo su impetuoso hijo mayor-. Y bien, padre, su salud ya no es la suficiente; ¿cuándo cederá su trono?
-Hijo mío, aún tengo la salud suficiente para gobernar este reino. Deberías seguir entrenando para convertirte en un gran caballero. Y tú -se dirige a su hijo menor-, ¿qué necesitas de tu padre?
-Yo solo estoy aquí como calidad de invitado.`,
`El rey cambió el tema de conversación, pues no quería que sus hijos escucharan su decisión para su futuro sucesor. Tras unas largas horas, los hijos se fueron y dejaron al rey solo con su consejero, y continuaron hablando sobre su sucesor.
-Mi salud no me va a permitir gobernar mucho tiempo; necesito decidir ya quién será quien ocupe mi trono en el futuro.
-Entiendo, mi rey; le apoyaré en la decisión que tome.`,
`-El mayor es un chico irresponsable y con una sed de sangre inquebrantable. No estoy seguro de que vaya a gobernar un reino de paz como este; temo lo que podría pasar en los próximos cincuenta años con un rey como él. En cambio, el menor es más cuerdo, tiene una mente brillante y quiere continuar mi legado de paz. Pero si le elijo a él, me culparán por ser un rey insensato por cederle el trono a alguien tan joven.
-Mi rey, yo nací para servir al rey. Debe permanecer tranquilo, pues guiaré al futuro rey que elija.
-Sin duda, eres importante para este reino; agradezco tu servicio durante tantos años.`,
`Continuaron hablando sobre quién debía ser el sucesor del trono durante un par de horas más, hasta que la noche cayó sobre el reino.`,
`Pasa el tiempo y los rumores de guerra se hacen más fuertes. El rey debería elegir al hijo mayor como sucesor, siguiendo la tradición; sin embargo, basándose en la mentalidad y actitud por parte de los dos hijos, prefiere que el menor herede la corona. El rey está indeciso y el tiempo se agota, pues está ya muy mayor. Debe elegir cuanto antes a su sucesor; por lo tanto, las sugerencias que hagan los dos hijos en esta situación serán claves para la decisión de ceder el trono a un hijo o al otro. Hay opiniones divididas por parte de los dos hijos.`,
`-Debemos pensar la manera de iniciar por sorpresa la batalla; para mantener el respeto del reino vecino, debemos organizar una violenta batalla -sugiere el hermano mayor.
-Es mejor no arriesgarse; hay que mantener la paz con el diálogo, para ganarse el respeto sin necesidad de violencia -propone el hijo menor, que es más prudente y observador.`,
`Los dos presentan sus ideas ante la realeza. El hermano mayor, ante el sólido proyecto de su hermano, le grita:
-¡Cobarde! ¡El cargo te queda muy grande, tienes miedo hasta de guerreros inferiores a los nuestros!
-Sé que tenemos mejores guerreros; ¡por eso quiero mantener la paz! Tienen miedo de un ataque por nuestra parte y accederán -refuta el hermano.
-¡Silencio! ¡Los dos argumentos son buenos! La decisión será mía, así que dejad de pelearos de una vez -interviene el rey, viendo que esta discusión va a ir a más.`,
`Los hijos del rey se calman. Los dos saben que, si no se callaban, era más probable que eligieran a su hermano. El rey, preocupado, ve cómo su familia se divide y se pelea por el trono.`,
`Llega la noche. El rey está pensando, como habitualmente, mientras mira la chimenea de su habitación, cuando observa a su viejo consejero, que es uno de los que más confía, pues ha estado con él todo su reinado.
-Su majestad, sé por qué está usted indeciso. Tengo una historia que contarle, que podría ayudarle en su decisión final -le dice el consejero al rey, que lo escucha atentamente-. Dice así.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/144.jpg",
"https://rafaxenakis.neocities.org/codice/145.jpg",
"https://rafaxenakis.neocities.org/codice/117.jpg",
"https://rafaxenakis.neocities.org/codice/146.jpg",
"https://rafaxenakis.neocities.org/codice/116.jpg",
"https://rafaxenakis.neocities.org/codice/149.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/158.jpg",
"https://rafaxenakis.neocities.org/codice/108.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/150.jpg"
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballo";
const PASSAGE_MONJE = "campana";
const PASSAGE_JUGLAR = "botella";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice17.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
El cuervo y el campesino
</button>
<button type="button" id="choice-monje">
Las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
El búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Estaba el rey dormido, eran las diez de la mañana. En el establo del castillo, había varios mozos de caballerizas en su turno de mañana vigilando los caballos reales, como era habitual. El caballo del rey: el más majestuoso, con adornos de oro, un pelaje negro como el cielo de una oscura noche de invierno, una gualdarapa roja como el vino y con el símbolo de la corona en varias partes de su vestimenta; estaba mostrándose un poco nervioso, cuando de repente ese nerviosismo explotó, dando vueltas y pegando patadas.`,
`El mozo más viejo y experimentado, intenta calmarlo, pero el caballo, lo tumba violentamente con una coz y escapa de su pesebrera, causando el caos de todos los allí presentes. Ningún mozo sabía cómo controlarlo, porque el rey no daba consentimiento a nadie para montarse sobre él, sin embargo, Andrés, un atrevido y joven mozo se subió valientemente en los lomos del tan majestuoso caballo, confiando en su instinto y lo domó como mejor supo. El caballo se tranquilizó y volvió a su lugar`,
`-¡Cómo osas montar en el caballo de nuestro todo poderoso rey! ¡Te caerá una pena de muerte por esa irrespetuosa acción! -exclamaban alarmados el resto de mozos.
El orgullo y la sonrisa de ese joven por su maravillosa acción desapareció al escuchar aquellas palabras de sus compañeros, avergonzandose y arrepintiéndose. No sabía que hacer.`,
`No pasaron ni cinco segundos y ya vino el prestigioso anciano Cipriano a preguntar quién había causado aquel violento ruido. El joven Andrés no iba confesar que había sido él, pero antes de poder tomar cualquier decisión, ya lo habían acusado todos sus compañeros. El anciano, notablemente enfadado se llevó al joven.`,
`Una vez solos Andrés y el prestigioso anciano, Cipriano, le pregunta:
-¿Qué diablos has hecho Andrés? Sabes que el rey sabe muy bien cuando una persona miente y cuando no, además de que si no dices la verdad tus compañeros te delatarán.`,
`Andrés estaba demasiado nervioso, el anciano lo notó y sabía que no iba a confesarlo, así que lo intentó calmar:
-Andrés, no sé si lo que has hecho será digno o no de un gran castigo, sin embargo te pido por favor que escuches esto antes de mentir, porque al rey no le gustan las mentiras. Escucha esta fábula, te dará buen consejo. Tiene un título muy peculiar.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/113.jpg",
"https://rafaxenakis.neocities.org/codice/179.jpg",
null,
"https://rafaxenakis.neocities.org/codice/164.jpg",
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "cuervo";
const PASSAGE_MONJE = "rana";
const PASSAGE_JUGLAR = "rata";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice17.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
El cuervo y el campesino
</button>
<button type="button" id="choice-monje">
Las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
El búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Érase una vez un cansado y rebelde monje que fue a hacer sus recados como de costumbre. Sus superiores le habían mandado a comprar leche. El monje va hacia el otro pueblo, ya que cerca del monasterio no había ninguna tienda que vendiera leche. Una vez llegó al pueblo, el lechero le preguntó por qué él siempre tenía que venir a por leche y, cada vez que venía, venía cansado y aburrido, a lo que le contestó el monje que en el monasterio había mucho trabajo, que si el sonido de la campana, que si el rezo conjunto, ¡todo el día haciendo cosas!`,
`-Chaval, estás más dormido que un diablo en una misa… y encima verte con esa cara, que parece que aleja a mis clientes.
-Es que tengo una vida ajetreada, desde despertarse a las 6, para luego rezar con mis compañeros a las 7, misa a las 9, almuerzo a las 12... y todo por esa maldita campana, que suena más que un gallo por la mañana.`,
`-Pobrecito tú, ojalá que Dios se apiade de tu alma en pena. Anda, te voy a contar una fábula para que aprendas.
-No sé ni qué día es, ¡ni siquiera si es antes o después de Cristo!
-Bueno, igualmente te la contaré. Tiene un título muy interesante.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/115.jpg",
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "cuervo2";
const PASSAGE_MONJE = "rana2";
const PASSAGE_JUGLAR = "rata2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice17.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
El cuervo y el campesino
</button>
<button type="button" id="choice-monje">
Las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
El búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Había una vez un humilde juglar llamado Teodoro que iba de poblado en poblado por toda Castilla recitando romances a los campesinos y artesanos de la zona. Lo de cantar, aparte de que no se le daba bien, le daba poco dinero y comida.`,
`Teodoro estaba pasando un mal momento, ya que últimamente en Castilla no estaba ocurriendo nada interesante que contar y no conseguía nada que comer. Un día como otro cualquiera, estaba contando en la plaza del pueblo y, al recitar una fábula, los campesinos se empezaron a cabrear porque esa historia ya la sabían y, como en este pueblo estaban siempre preparados con una huerta de tomates que todos cuidaban, pues tomates no faltaban y piedras tampoco; entonces se lo empezaron a tirar y, al final, lo echaron del pueblo.`,
`Un día fue a la aldea de Cerdeño y recitó una historia.
-Buenas gentes de Cerdeño, os voy a contar una historia nunca antes oída. Tiene un título muy curioso.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/165.jpg",
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "cuervo3";
const PASSAGE_MONJE = "rana3";
const PASSAGE_JUGLAR = "rata3";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Basta ya de fábulas, Cipriano.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la del cuervo y el campesino
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA HISTORIA LLENA DE SABIDURÍA DE LAS RANAS QUE INTENTARON GOBERNAR EL ESTANQUE CON LEYES PACTADAS Y JUSTAS
Érase una vez un humilde estanque situado en el patio trasero del castillo del rey. En aquella charca había animales de los que normalmente veis: salamandras, sapos, peces y ranas encontraréis.`,
`Un día por allí pasó el rey, diciendo en voz alta a algunos escritores, seguramente para enviar unas cartas al pueblo:
-Si no me obedecéis conmigo os las veréis, aldeanos de Castilla.`,
`Entonces las ranas tuvieron una gran idea: proclamar un rey para poner orden, ya que durante todo el día solo caos había; las ranas corrían y los peces dormían todo el día.`,
`Para desempeñar esta importante tarea se presentaron dos candidatos. La primera era una joven rana que dijo:
-Tranquilas, ranas del charco, yo soy el jefe indicado, porque con esta rana, la más valiente del reino, ninguna serpiente aparecería, porque yo os defendería.
Lo dijo con actitud prepotente.`,
`La segunda rana era vieja y débil; solo dijo pocas cosas. A diferencia de las otras, esta última solo dijo una frase:
-Solo diré una cosa: yo vengo de un gran río donde hay millones y millones de bichos que comer y espacio donde nadar.`,
`Las ranas, después de la votación, hablaron de los sorpresivos resultados, que eran que tan solo tres ranas votaron al pobre anciano.
En aquella noche apareció una serpiente y empezó a devorar a las ranas una a una, mientras llamaban al rey, pero este se encontraba en el interior del reptil. En cambio, la anciana rana se fue al riachuelo de la zona.
Y por esto sabemos que la sabiduría es más importante que la valentía.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/121.jpg",
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballofin";
const PASSAGE_MONJE = "cuervo";
const PASSAGE_JUGLAR = "rata";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Creo que ya son bastantes fábulas, Cipriano.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del cuervo y el campesino
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA LEYENDA VERDADERA DEL BÚHO QUE LLEGÓ A UN PACTO MUTUAMENTE BENEFICIOSO CON UNA RATA
En el invierno, los ancianos de la aldea nos cuentan la leyenda del búho que llegó a un pacto mutuamente beneficioso con una rata.`,
`Según los dichos, hace mucho tiempo, en un bosque, había un precioso búho con los ojos claros, súper grandes y con un pelo negro, oscuro y brilloso. Sobre las 00:00 de la noche, el búho estaba por el campo con su mejor amigo, el pájaro. Entre vueltas y vueltas se empezaron a escuchar las ramas de un árbol como si hubiera alguien escondido; se asustaron, ya que no sabían lo que podría ser. Al cabo de los minutos se vio una cola larga y peluda. Fueron a ver y vieron a esa rata.
-¡AAAH, te pillé! -dijo el búho.`,
`La rata, súper asustada, le dijo:
-No, por favor, no me mates y te daré a cambio algo que te ayude.
El búho se quedó quieto y le contestó:
-¿Ah, sí? ¿Cómo qué?
La rata le dijo que le diría un sitio donde hay más ratas, las cuales podría captar.`,
`El búho lo aceptó, pero le dijo que necesitaba algo más, y la rata le dijo que podría hacer que otras ratas cuidaran de sus huevos mientras él iba en busca de comida.
La rata le dijo dónde se encontraban más ratas. El búho fue y encontró un grupo de ratas. Les dijo que, sino cuidaban de sus huevos, se las comería. Todas dijeron que sí, que lo harían.`,
`Tras unos días, el búho se dio cuenta, a la vuelta de la búsqueda de su comida, de que le faltaban huevos. Entonces se enfadó muchísimo. Fue en busca de las ratas, incluida la que era su amiga, y empezaron a pelearse.
-¿Quién ha perdido un huevo? -les dijo el búho a las ratas.
Todas, asustadas, dijeron que ellas no sabían nada.`,
`El búho les dijo:
-Vais a morir todas.
-Me da igual, mátame, no pienso ser la criada de nadie -le contestó una rata del grupo.
El búho, al escuchar eso, fue a por ella y se la comió, y por rencor mató a todas las demás.`,
`Quedó solo una: la que tuvo la idea de robar los huevos. Le dijo al búho que todo esto no fue por culpa suya, que fue idea de una de las ratas muertas. Entre una cosa y otra, el búho acabó creyéndola y se hicieron súper amigos. A partir de ese día, esa rata se encargó de cuidar de sus pequeños huevos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/120.jpg",
null,
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballofin";
const PASSAGE_MONJE = "rana";
const PASSAGE_JUGLAR = "cuervo";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Suficientes fábulas, señor Cipriano.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA MARAVILLOSA Y NUNCA OLVIDADA HISTORIA DEL CUERVO QUE ENGAÑÓ A UN CAMPESINO PARA SOBREVIVIR AL INVIERNO
Hace tiempo, en un lugar soñado llamado Sormin, la ciudad real, un campesino observaba desde su casa ese gran lugar. El hombre flaco, rubio, astuto y sombrío deseaba llegar a ser el más rico de ese territorio sin ninguna duda. Yendo al bosque grande y bondadoso, se prepara para talar, ya que se acerca el invierno; si no, pronto se congelará.`,
`Un “tú” se hace escuchar: era un cuervo algo inusual. Grande, ojos negros y una gran inteligencia, se cae patosamente, pero se recupera.
-Me podrías hacer un favor y yo a ti otro.
Dudoso pero directo, le pide algo sin vacilar.
-Interesante, quiero escuchar más.`,
`-A buen entendedor, pocas palabras bastan. Eres más inteligente que mis compañeros, los plastas. Te diré lo que quiero, luego tú y yo miraremos si en mi alcance está lo que pides. Empezaré: refugio y alimento, y sobre todo libertad, es lo que me interesa, nada más.
-Riqueza y poder, sobre todos los demás. Si cumples lo dicho, te daré eso y más.`,
`Tentado, el cuervo aceptó y, durante el invierno, el cuervo iba recaudando información, ya que de un animal no iban a dudar. Así, el campesino, mediante la información, chantajeaba a todos y así poder iba consiguiendo. Así se convirtió en sabio junto a un cuervo que nadie pensaría que fuese el principal problema. Un día mataron al sabio, ya que estaban cansados de él; antes de eso, el animal robó todo lo que consiguió el campesino.`,
`Astucia y necesidad,
conceptos muy diferentes
en los que nadie confía,
pues cerrados son de mente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/122.jpg",
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballofin";
const PASSAGE_MONJE = "rana";
const PASSAGE_JUGLAR = "rata";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice21.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Fabulae Sapientiae</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El joven quedó fascinado ante la fábula que le contó el anciano. Justo después de esto, el rey llega y pregunta furioso qué había sido ese ruido. El muchacho, gracias a la enseñanza de la fábula del anciano, decide contarle la verdad al rey.`,
`-Lo siento si hice algo digno de castigo, en cualquier caso júzgame tú, con tu gran justicia. Tu majestuoso caballo, escapó de su pesebrera, a lo que tomé la arriesgada decisión de montar sobre él para domarlo y tranquilizarlo -dijo Andrés entre lágrimas.`,
`El rey se calmó. Ve que el muchacho salvó su caballo y orgulloso, le dice:
-No hay obediencia más noble que la que nace del valor. Te nombro escudero personal.`,
`Tras escuchar esta historia de su consejero, el rey llega a una conclusión. Quizás había que arriesgarse a romper la tradición de nombrar como heredero al hijo major, aunque siempre se hubiera hecho así.`,
`Días después, el rey convoca a todos los nobles y decide darles un discurso.
-Agradezco que todos estéis aquí presentes. Hoy os he reunido aquí para comunicar quién tomará mi puesto como rey. Tras mucho tiempo pensándolo, he decidido que será mi hijo menor.`,
`Al escuchar eso, muchos nobles quedaron con una expresión de sorpresa, pues lo lógico es que lo suceda el hijo mayor. Tras eso, el hijo mayor, con expresión de furia, dijo:
-Me niego, no es posible que ese inepto se convierta en rey -dice señalando a su hermano-. Este reino necesita un rey con hambre de guerra y poder. Después de que el reino vecino tenga un nuevo rey y quiera la guerra, no podemos permitirnos esto.
-Tranquilo, hermano, no hay que ponerse furioso; puedes ser mi mano derecha o general de los ejércitos.`,
`Algunos nobles susurran entre ellos cosas relacionadas con el reino vecino.
-Juro que me vengaré de esto y recuperaré lo que es mío.`,
`Unos meses después de la ceremonia, el hijo menor es coronado rey por parte de su padre.
-Sé que convertirás este reino en una gran potencia. Confío en ti, hijo mío.
-Muchas gracias, padre. No le decepcionaré; continuaré un reinado igual de bueno que el tuyo.`,
`Al día siguiente, el antiguo rey habla con su consejero:
-¿Crees que he hecho bien en nombrar a mi hijo menor como nuevo rey?
-Solo Dios y la Fortuna lo saben. El tiempo decidirá si hiciste bien.
-Espero que el reino prospere.`,
`Tras dos años de reinado con el nuevo rey, el reino al completo cambió. El hermano mayor, finalmente, acabó aceptando que reinara su hermano pequeño y se dedicó a dirigir las tierras de su castillo. El reino vecino no atacó y él fue proclamado como el mejor rey de todos los tiempos: la economía del reino mejoró en grandes cantidades, el ejército aumentó sus filas y, en general, el reino se hizo una de las grandes potencias del mundo.`,
`Al oír la historia, Theobaldus se queda impresionado, sobre todo con la profunda moraleja. Se levanta y se despide de todos. Los campesinos ríen y le ofrecen comida, fruta o pan, para poder ir comiendo por el camino tan largo que le esperaba. Él no aceptó la invitación de ofrecerle comida. Se fue diciendo una bendición: “Que esta comida os venga bien, que la disfrutéis pensando en el Señor”.`,
`El sol ya estaba naranja y solo se podía observar la mitad. Theobaldus quería llegar al siguiente lugar para escribir y sorprenderse cada vez más.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/112.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/158.jpg",
"https://rafaxenakis.neocities.org/codice/151.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/152.jpg",
"https://rafaxenakis.neocities.org/codice/149.jpg",
"https://rafaxenakis.neocities.org/codice/153.jpg",
"https://rafaxenakis.neocities.org/codice/104.jpg",
"https://rafaxenakis.neocities.org/codice/167.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "fabulae";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $fabulae += 1>><</if>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Suficientes fábulas, señor lechero.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA MARAVILLOSA Y NUNCA OLVIDADA HISTORIA DEL CUERVO QUE ENGAÑÓ A UN CAMPESINO PARA SOBREVIVIR AL INVIERNO
Hace tiempo, en un lugar soñado llamado Sormin, la ciudad real, un campesino observaba desde su casa ese gran lugar. El hombre flaco, rubio, astuto y sombrío deseaba llegar a ser el más rico de ese territorio sin ninguna duda. Yendo al bosque grande y bondadoso, se prepara para talar, ya que se acerca el invierno; si no, pronto se congelará.`,
`Un “tú” se hace escuchar: era un cuervo algo inusual. Grande, ojos negros y una gran inteligencia, se cae patosamente, pero se recupera.
-Me podrías hacer un favor y yo a ti otro.
Dudoso pero directo, le pide algo sin vacilar.
-Interesante, quiero escuchar más.`,
`-A buen entendedor, pocas palabras bastan. Eres más inteligente que mis compañeros, los plastas. Te diré lo que quiero, luego tú y yo miraremos si en mi alcance está lo que pides. Empezaré: refugio y alimento, y sobre todo libertad, es lo que me interesa, nada más.
-Riqueza y poder, sobre todos los demás. Si cumples lo dicho, te daré eso y más.`,
`Tentado, el cuervo aceptó y, durante el invierno, el cuervo iba recaudando información, ya que de un animal no iban a dudar. Así, el campesino, mediante la información, chantajeaba a todos y así poder iba consiguiendo. Así se convirtió en sabio junto a un cuervo que nadie pensaría que fuese el principal problema. Un día mataron al sabio, ya que estaban cansados de él; antes de eso, el animal robó todo lo que consiguió el campesino.`,
`Astucia y necesidad,
conceptos muy diferentes
en los que nadie confía,
pues cerrados son de mente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/122.jpg",
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "campanafin";
const PASSAGE_MONJE = "rana2";
const PASSAGE_JUGLAR = "rata2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Basta ya de fábulas, lechero.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la del cuervo y el campesino
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA HISTORIA LLENA DE SABIDURÍA DE LAS RANAS QUE INTENTARON GOBERNAR EL ESTANQUE CON LEYES PACTADAS Y JUSTAS
Érase una vez un humilde estanque situado en el patio trasero del castillo del rey. En aquella charca había animales de los que normalmente veis: salamandras, sapos, peces y ranas encontraréis.`,
`Un día por allí pasó el rey, diciendo en voz alta a algunos escritores, seguramente para enviar unas cartas al pueblo:
-Si no me obedecéis conmigo os las veréis, aldeanos de Castilla.`,
`Entonces las ranas tuvieron una gran idea: proclamar un rey para poner orden, ya que durante todo el día solo caos había; las ranas corrían y los peces dormían todo el día.`,
`Para desempeñar esta importante tarea se presentaron dos candidatos. La primera era una joven rana que dijo:
-Tranquilas, ranas del charco, yo soy el jefe indicado, porque con esta rana, la más valiente del reino, ninguna serpiente aparecería, porque yo os defendería.
Lo dijo con actitud prepotente.`,
`La segunda rana era vieja y débil; solo dijo pocas cosas. A diferencia de las otras, esta última solo dijo una frase:
-Solo diré una cosa: yo vengo de un gran río donde hay millones y millones de bichos que comer y espacio donde nadar.`,
`Las ranas, después de la votación, hablaron de los sorpresivos resultados, que eran que tan solo tres ranas votaron al pobre anciano.
En aquella noche apareció una serpiente y empezó a devorar a las ranas una a una, mientras llamaban al rey, pero este se encontraba en el interior del reptil. En cambio, la anciana rana se fue al riachuelo de la zona.
Y por esto sabemos que la sabiduría es más importante que la valentía.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/121.jpg",
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "campanafin";
const PASSAGE_MONJE = "cuervo2";
const PASSAGE_JUGLAR = "rata2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Creo que ya son bastantes fábulas, lechero.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del cuervo y el campesino
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA LEYENDA VERDADERA DEL BÚHO QUE LLEGÓ A UN PACTO MUTUAMENTE BENEFICIOSO CON UNA RATA
En el invierno, los ancianos de la aldea nos cuentan la leyenda del búho que llegó a un pacto mutuamente beneficioso con una rata.`,
`Según los dichos, hace mucho tiempo, en un bosque, había un precioso búho con los ojos claros, súper grandes y con un pelo negro, oscuro y brilloso. Sobre las 00:00 de la noche, el búho estaba por el campo con su mejor amigo, el pájaro. Entre vueltas y vueltas se empezaron a escuchar las ramas de un árbol como si hubiera alguien escondido; se asustaron, ya que no sabían lo que podría ser. Al cabo de los minutos se vio una cola larga y peluda. Fueron a ver y vieron a esa rata.
-¡AAAH, te pillé! -dijo el búho.`,
`La rata, súper asustada, le dijo:
-No, por favor, no me mates y te daré a cambio algo que te ayude.
El búho se quedó quieto y le contestó:
-¿Ah, sí? ¿Cómo qué?
La rata le dijo que le diría un sitio donde hay más ratas, las cuales podría captar.`,
`El búho lo aceptó, pero le dijo que necesitaba algo más, y la rata le dijo que podría hacer que otras ratas cuidaran de sus huevos mientras él iba en busca de comida.
La rata le dijo dónde se encontraban más ratas. El búho fue y encontró un grupo de ratas. Les dijo que, sino cuidaban de sus huevos, se las comería. Todas dijeron que sí, que lo harían.`,
`Tras unos días, el búho se dio cuenta, a la vuelta de la búsqueda de su comida, de que le faltaban huevos. Entonces se enfadó muchísimo. Fue en busca de las ratas, incluida la que era su amiga, y empezaron a pelearse.
-¿Quién ha perdido un huevo? -les dijo el búho a las ratas.
Todas, asustadas, dijeron que ellas no sabían nada.`,
`El búho les dijo:
-Vais a morir todas.
-Me da igual, mátame, no pienso ser la criada de nadie -le contestó una rata del grupo.
El búho, al escuchar eso, fue a por ella y se la comió, y por rencor mató a todas las demás.`,
`Quedó solo una: la que tuvo la idea de robar los huevos. Le dijo al búho que todo esto no fue por culpa suya, que fue idea de una de las ratas muertas. Entre una cosa y otra, el búho acabó creyéndola y se hicieron súper amigos. A partir de ese día, esa rata se encargó de cuidar de sus pequeños huevos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/120.jpg",
null,
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "campanafin";
const PASSAGE_MONJE = "rana2";
const PASSAGE_JUGLAR = "cuervo2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice21.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Fabulae Sapientiae</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El monje, después de lo oído, se frotó los ojos y decidió por una vez hacer caso al lechero y desobedecer la campana.`,
`Al día siguiente tocaba campana, pero se quedó arropado en su cama; además, afuera estaba lloviendo.`,
`De repente, como si fuera un castigo de Dios, le cayó un trueno en su habitación, destrozándole todo y casi lo mata. Sus compañeros, que estaban abajo rezando, rápidamente subieron y lo divisaron entre los escombros:
-Eh, ¿eso es una mano?
-Me da a mí que sí, ¿pero quién está aquí, si todos tenemos que estar abajo?`,
`Un “yo” débil y vergonzoso se pudo oír. Rápidamente lo sacaron y lo curaron, no sin antes preguntarle una cosa:
-Mira, no sé qué hacías ahí arriba, pero no es importante ahora.
Mirando a un lado, dice:
-Estaba enfermo…
Mientras continuaba pensando que si sería un castigo divino de Dios, o tal vez ha sido mala suerte. Pero, en todo caso, desde ese día, siempre obedeció la campana y cumplió sus tareas de monje.`,
`Tras escuchar el cuento, el rey se dirigió a su habitación a meditar a quién debía elegir para que sea el legítimo monarca. Estuvo pensando durante horas y horas; la tradición le ganó y decidió que su hijo mayor sería el futuro rey.`,
`Al día siguiente, se hizo una ceremonia en la catedral del reino con todos los obispos y monjes de la ciudad. Allí mismo, el rey dijo:
-Yo, como rey de esta gran ciudad, me retiro del mandato y dejo como heredero a mi hijo mayor, que será capaz de administrar todo el reino.`,
`Tras saber la decisión del rey, la catedral estalló en murmullo. El hijo mayor se entusiasmó y dijo: “Gracias a mí acabaremos con los enemigos del reino vecino”. El hijo menor se puso triste, pero estaba de acuerdo porque era la tradición. Pensaba que no iba a ser buena idea que su bruto hermano gobernara su ciudad, pero debía respetar la decisión del rey.`,
`Tras su coronación, el nuevo monarca dijo estas palabras ante todo el pueblo:
-Habitantes de Birdon, como nuevo rey ya tengo mi primera idea: conquistar Trendo, ya que nos ha estado amenazando durante muchos años.`,
`Tras cinco meses de preparación, reunió el ejército de Birdon; el rey y sus caballeros se dirigieron al reino vecino. El nuevo rey reunió un gran ejército y atacó con crueldad varias aldeas vecinas, quemando las casas y matando gente.`,
`Lo que no sabía el rey es que el monarca de Trendo se había informado de la conquista y decidió crear un gran foso, impidiendo la entrada del ejército. El reino vecino también reunió un gran ejército y atacó la capital de Birdon. Nadie pudo pararlos. El anciano rey estaba en el castillo y se puso a mirar el paisaje. Vio humo y supo que era algo que tenía que ver con su hijo. Contempló desde el castillo cómo ardían las casas de la capital. Él se sintió arrepentido por su decisión, pero ya no podía hacer nada.`,
`Después llegó el nuevo rey con sus hombres, que lucharon sin cesar, pero ya era demasiado tarde y cayeron en combate. El antiguo rey, observando desde la gran torre del castillo, sentía que había sido un gran error su elección como heredero. Pero lo peor era que, en ese instante, llegó un emisario y le contó al ex-rey que su hijo mayor había fallecido luchando por su ciudad. Por la impotencia de aquella situación y por la edad del antiguo monarca, al instante falleció de un ataque al corazón.`,
`Tras unos meses, ya salía en los mapas que Birdon pertenecía a Trendo.`,
`Al oír la historia, Theobaldus se queda impresionado, sobre todo con la profunda moraleja. Se levanta y se despide de todos. Los campesinos ríen y le ofrecen comida, fruta o pan, para poder ir comiendo por el camino tan largo que le esperaba. Él no aceptó la invitación de ofrecerle comida. Se fue diciendo una bendición: “Que esta comida os venga bien, que la disfrutéis pensando en el Señor”.`,
`El sol ya estaba naranja y solo se podía observar la mitad. Theobaldus quería llegar al siguiente lugar para escribir y sorprenderse cada vez más.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/115.jpg",
"https://rafaxenakis.neocities.org/codice/163.jpg",
"https://rafaxenakis.neocities.org/codice/114.jpg",
null,
"https://rafaxenakis.neocities.org/codice/158.jpg",
"https://rafaxenakis.neocities.org/codice/154.jpg",
null,
"https://rafaxenakis.neocities.org/codice/155.jpg",
"https://rafaxenakis.neocities.org/codice/156.jpg",
null,
"https://rafaxenakis.neocities.org/codice/106.jpg",
"https://rafaxenakis.neocities.org/codice/157.jpg",
"https://rafaxenakis.neocities.org/codice/104.jpg",
"https://rafaxenakis.neocities.org/codice/167.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "fabulae";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $fabulae += 1>><</if>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
El juglar decide no contar más historias.
</button>
<button type="button" id="choice-monje">
Ahora les contaré la fábula de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Ahora les contaré la fábula del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA MARAVILLOSA Y NUNCA OLVIDADA HISTORIA DEL CUERVO QUE ENGAÑÓ A UN CAMPESINO PARA SOBREVIVIR AL INVIERNO
Hace tiempo, en un lugar soñado llamado Sormin, la ciudad real, un campesino observaba desde su casa ese gran lugar. El hombre flaco, rubio, astuto y sombrío deseaba llegar a ser el más rico de ese territorio sin ninguna duda. Yendo al bosque grande y bondadoso, se prepara para talar, ya que se acerca el invierno; si no, pronto se congelará.`,
`Un “tú” se hace escuchar: era un cuervo algo inusual. Grande, ojos negros y una gran inteligencia, se cae patosamente, pero se recupera.
-Me podrías hacer un favor y yo a ti otro.
Dudoso pero directo, le pide algo sin vacilar.
-Interesante, quiero escuchar más.`,
`-A buen entendedor, pocas palabras bastan. Eres más inteligente que mis compañeros, los plastas. Te diré lo que quiero, luego tú y yo miraremos si en mi alcance está lo que pides. Empezaré: refugio y alimento, y sobre todo libertad, es lo que me interesa, nada más.
-Riqueza y poder, sobre todos los demás. Si cumples lo dicho, te daré eso y más.`,
`Tentado, el cuervo aceptó y, durante el invierno, el cuervo iba recaudando información, ya que de un animal no iban a dudar. Así, el campesino, mediante la información, chantajeaba a todos y así poder iba consiguiendo. Así se convirtió en sabio junto a un cuervo que nadie pensaría que fuese el principal problema. Un día mataron al sabio, ya que estaban cansados de él; antes de eso, el animal robó todo lo que consiguió el campesino.`,
`Astucia y necesidad,
conceptos muy diferentes
en los que nadie confía,
pues cerrados son de mente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/122.jpg",
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "botellafin";
const PASSAGE_MONJE = "rana3";
const PASSAGE_JUGLAR = "rata3";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice21.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Fabulae Sapientiae</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de recitar aquella historia, fue abucheado por todo Cerdeño, ya que el relato ya había sido contado en el pueblo.`,
`Al irse del pueblo, pasó por un río al que se paró a refrescarse y a beber agua. Cerca se encontró una cabaña destruida, pero con botellas de cristal intactas, y se le ocurrió la maravillosa idea de llenarlas de agua del arroyo que pasaba por allí, ya que escuchó a unos monjes que el agua más buena era la del río Jordán. Se inventó que ese agua venía de ese río, viendo que sabía a un agua limpia y llena de vida; así creó unas botellas en las que ponía: “Agua del río Jordán, donde nuestro Señor fue bautizado”. Así, con esa maravillosa idea, intentó ganar un poco de dinero y comida.`,
`-Agua del río Jordán, agua que cura, agua que hace crecer cultivos, agua que hace que los animales estén sanos, agua que da felicidad. ¡Haceros con ella! —recitaba Teodoro con poca fe de ganar algo; lo que no sabía era que la gente se creyera aquella estafa y se juntara todo el pueblo alrededor del puesto comprando agua bendita.`,
`-¿Tu agua me puede hacer más fuerte?
-¿Puede curar a mi padre? Está enfermo.
-¿Hace que las plantas crezcan fuertes y sanas y con unos frutos jugosos y frescos?
-Sí, sí, sí, mi agua proviene del río más sagrado de todo Oriente, claro que puede hacer todas esas cosas.
-¿Sirve para mi primo, que no sabe plantar bien las patatas?
-Claro, dale un vaso de agua y planta hasta espárragos.`,
`Los campesinos, al escuchar esto, pagaban por una botella todos sus ahorros; era un éxito, y con el dinero que ganaba se permitía comprar más botellas. Así ese juglar pobre se hizo rico.`,
`El rey se quedó muy sorprendido por la historia de su consejero. De hecho, la historia le dio una buena idea: usar la astucia para arreglar las cosas. Tras meditar durante toda la noche sobre quién debería ser rey, el rey decide que tomará su puesto su hijo mayor, como dice la tradición, pero con un engaño que lo tendrá controlado. Ese mismo día, el rey va con su consejero al mejor artesano para que construya una máquina metálica parecida a un robot, la cual está programada para decir “NO” a todas las decisiones de guerra.`,
`Una vez está construida, se la enseña a su hijo menor y le dice:
-Esta máquina he mandado construirla para que tu hermano, una vez sea rey, tome decisiones prudentes.
-Entiendo, padre, ojalá funcione.
-Y una cosa más: por favor, hijo mío, aunque esté esta máquina, ayuda a tu hermano para ser el mejor rey; te encargo esa misión.
-No hace falta que me lo diga, padre; igualmente buscaré lo mejor para nuestro reino.`,
`El rey se alegra de oír las palabras de su hijo menor y se va feliz, sabiendo que su legado está en buenas manos. Luego se va a la sala del rey y le dice a su consejero:
-Quiero que prepares una ceremonia para nombrar a mi hijo mayor rey e invites a todos los nobles. No pongas en la carta que el motivo de la ceremonia es el próximo rey; di que es algo importante y diles que será en una semana.
-De acuerdo, mi señor, haré mi mayor esfuerzo para complacer su petición.`,
`El consejero se va de la sala del rey y les dice a todos los sirvientes que empiecen a trabajar porque, en una semana, tiene que haber un banquete para la ceremonia. Luego se va para avisar a todos los nobles de la ceremonia de dentro de una semana. La gran mayoría le preguntan cuál es el motivo de la ceremonia y el consejero siempre les responde: “Es algo importante dicho por nuestro rey; es mejor que vengas o perderás tus tierras”.`,
`Una vez pasada la semana, comienza la ceremonia y están todos los nobles, el rey y sus hijos ahí presentes, junto a una máquina metálica con forma humanoide. El rey comienza a dar un discurso:`,
`-Buenas noches a todos los aquí presentes. Mas os puede parecer extraña esta ceremonia, es de suma importancia, pues hoy decidiré quién tomará mi trono como rey. (Los nobles susurran entre ellos). Silencio. Llevo dirigiendo este reino desde los 16 años hasta la actualidad, que tengo 78 años. He de decir que todos estos años han sido complicados, mas no me arrepiento de dirigir esta nación. Pese a todo eso, ya estoy muy mayor y cansado, y este reino necesita una cabeza que actúe rápido. Por eso mismo quiero proclamar a mi hijo mayor como nuevo rey, siguiendo la tradición. Pero para los asuntos relacionados con la guerra, he contratado a un artesano para que construya al “Autómata Divino”.`,
`En ese momento señala a la máquina. Todo el mundo murmura asombrado.
-Esta máquina decidirá todo lo relacionado con la guerra y -dirigiéndose a su hijo mayor- quiero que jures hacer lo que diga.
-Lo juro, padre. Le aseguro que seré el mejor rey y haré lo que esta máquina diga. Ahora quiero probar algo. Se acerca a la máquina y le dice:
-¿Debemos conquistar el reino vecino?`,
`El autómata coge una pluma y escribe en un papel “NO”. Al ver esto, todos los nobles se sorprenden por la respuesta y por cómo algo así se puede mover.
-El autómata ha hablado: no se conquistará al reino vecino.
Después de esto, todos proclaman al hijo mayor como nuevo rey y disfrutan del banquete.`,
`Al día siguiente, el antiguo rey está con su hijo menor en el jardín del palacio y se ríen de cómo todos se han creído lo del autómata.`,
`Al oír la historia, Theobaldus se queda impresionado, sobre todo con la profunda moraleja. Se levanta y se despide de todos. Los campesinos ríen y le ofrecen comida, fruta o pan, para poder ir comiendo por el camino tan largo que le esperaba. Él no aceptó la invitación de ofrecerle comida. Se fue diciendo una bendición: “Que esta comida os venga bien, que la disfrutéis pensando en el Señor”.`,
`El sol ya estaba naranja y solo se podía observar la mitad. Theobaldus quería llegar al siguiente lugar para escribir y sorprenderse cada vez más.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/165.jpg",
"https://rafaxenakis.neocities.org/codice/111.jpg",
"https://rafaxenakis.neocities.org/codice/110.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/159.jpg",
"https://rafaxenakis.neocities.org/codice/173.jpg",
"https://rafaxenakis.neocities.org/codice/149.jpg",
"https://rafaxenakis.neocities.org/codice/160.jpg",
"https://rafaxenakis.neocities.org/codice/161.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/105.jpg",
"https://rafaxenakis.neocities.org/codice/162.jpg",
"https://rafaxenakis.neocities.org/codice/104.jpg",
"https://rafaxenakis.neocities.org/codice/167.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "fabulae";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $fabulae += 1>><</if>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Creo que no les contaré más fábulas.
</button>
<button type="button" id="choice-monje">
Ahora les contaré la del cuervo y el campesino
</button>
<button type="button" id="choice-juglar">
Ahora les contaré la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA HISTORIA LLENA DE SABIDURÍA DE LAS RANAS QUE INTENTARON GOBERNAR EL ESTANQUE CON LEYES PACTADAS Y JUSTAS
Érase una vez un humilde estanque situado en el patio trasero del castillo del rey. En aquella charca había animales de los que normalmente veis: salamandras, sapos, peces y ranas encontraréis.`,
`Un día por allí pasó el rey, diciendo en voz alta a algunos escritores, seguramente para enviar unas cartas al pueblo:
-Si no me obedecéis conmigo os las veréis, aldeanos de Castilla.`,
`Entonces las ranas tuvieron una gran idea: proclamar un rey para poner orden, ya que durante todo el día solo caos había; las ranas corrían y los peces dormían todo el día.`,
`Para desempeñar esta importante tarea se presentaron dos candidatos. La primera era una joven rana que dijo:
-Tranquilas, ranas del charco, yo soy el jefe indicado, porque con esta rana, la más valiente del reino, ninguna serpiente aparecería, porque yo os defendería.
Lo dijo con actitud prepotente.`,
`La segunda rana era vieja y débil; solo dijo pocas cosas. A diferencia de las otras, esta última solo dijo una frase:
-Solo diré una cosa: yo vengo de un gran río donde hay millones y millones de bichos que comer y espacio donde nadar.`,
`Las ranas, después de la votación, hablaron de los sorpresivos resultados, que eran que tan solo tres ranas votaron al pobre anciano.
En aquella noche apareció una serpiente y empezó a devorar a las ranas una a una, mientras llamaban al rey, pero este se encontraba en el interior del reptil. En cambio, la anciana rana se fue al riachuelo de la zona.
Y por esto sabemos que la sabiduría es más importante que la valentía.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/121.jpg",
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "botellafin";
const PASSAGE_MONJE = "cuervo3";
const PASSAGE_JUGLAR = "rata3";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Creo que ya son bastantes fábulas.
</button>
<button type="button" id="choice-monje">
Ahora les contaré la fábula de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Ahora les contaré la del cuervo y el campesino
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA LEYENDA VERDADERA DEL BÚHO QUE LLEGÓ A UN PACTO MUTUAMENTE BENEFICIOSO CON UNA RATA
En el invierno, los ancianos de la aldea nos cuentan la leyenda del búho que llegó a un pacto mutuamente beneficioso con una rata.`,
`Según los dichos, hace mucho tiempo, en un bosque, había un precioso búho con los ojos claros, súper grandes y con un pelo negro, oscuro y brilloso. Sobre las 00:00 de la noche, el búho estaba por el campo con su mejor amigo, el pájaro. Entre vueltas y vueltas se empezaron a escuchar las ramas de un árbol como si hubiera alguien escondido; se asustaron, ya que no sabían lo que podría ser. Al cabo de los minutos se vio una cola larga y peluda. Fueron a ver y vieron a esa rata.
-¡AAAH, te pillé! -dijo el búho.`,
`La rata, súper asustada, le dijo:
-No, por favor, no me mates y te daré a cambio algo que te ayude.
El búho se quedó quieto y le contestó:
-¿Ah, sí? ¿Cómo qué?
La rata le dijo que le diría un sitio donde hay más ratas, las cuales podría captar.`,
`El búho lo aceptó, pero le dijo que necesitaba algo más, y la rata le dijo que podría hacer que otras ratas cuidaran de sus huevos mientras él iba en busca de comida.
La rata le dijo dónde se encontraban más ratas. El búho fue y encontró un grupo de ratas. Les dijo que, sino cuidaban de sus huevos, se las comería. Todas dijeron que sí, que lo harían.`,
`Tras unos días, el búho se dio cuenta, a la vuelta de la búsqueda de su comida, de que le faltaban huevos. Entonces se enfadó muchísimo. Fue en busca de las ratas, incluida la que era su amiga, y empezaron a pelearse.
-¿Quién ha perdido un huevo? -les dijo el búho a las ratas.
Todas, asustadas, dijeron que ellas no sabían nada.`,
`El búho les dijo:
-Vais a morir todas.
—Me da igual, mátame, no pienso ser la criada de nadie -le contestó una rata del grupo.
El búho, al escuchar eso, fue a por ella y se la comió, y por rencor mató a todas las demás.`,
`Quedó solo una: la que tuvo la idea de robar los huevos. Le dijo al búho que todo esto no fue por culpa suya, que fue idea de una de las ratas muertas. Entre una cosa y otra, el búho acabó creyéndola y se hicieron súper amigos. A partir de ese día, esa rata se encargó de cuidar de sus pequeños huevos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/120.jpg",
null,
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "botellafin";
const PASSAGE_MONJE = "rana3";
const PASSAGE_JUGLAR = "cuervo3";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Le cuenta la historia del mozo que se arriesgó a romper las normas
</button>
<button type="button" id="choice-monje">
Le cuenta la historia del monje que aprendió a seguir las tradiciones
</button>
<button type="button" id="choice-juglar">
Le cuenta la historia del juglar que engañó a todos
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Hace siglos, había un mercader veneciano llamado Arón, al que muchos conocían como “El Cautivo”, bastante joven, que se estaba haciendo de oro. De pequeño le gustaba el mar y su padre era mercader marítimo, por lo que pronto entendió que él iba a ser mercader. Ya, un poco más mayor, hizo su primer viaje a Oriente Próximo.`,
`Cuando notó que el día se apagó, se fue al camarote y se puso a dormir, no sin antes anclar el barco a una roca que había ahí. Esa noche tuvo un sueño raro: soñó que la roca se estaba moviendo y lo llevaba por debajo del agua a una cueva submarina; pero era muy raro porque el barco, de 18 metros de largo y 8 de ancho, estaba dentro de una burbuja de aire y era impermeable. “El Cautivo”, asustado y exhausto, se asomó, abrió la puerta y dijo:
-Gracias, señor; que solo era un terrible sueño.`,
`Una vez ya despierto, empezó a izar banderas y se puso en marcha. Él navegaba hacia Oriente Próximo; de allí traía de todo: arena negra egipcia, 20 kilos de dátiles chinos, pieles exóticas de tigres mongoles, 36 loros indios, canela, azúcar, remolacha, madera de tronco negro, piedras preciosas como son la esmeralda, el oro, el zafiro, el cuarzo, el diamante, el rubí, la plata, el cobre, el estaño y el bronce.`,
`Descansó en Turquía; mientras dormía, hasta que cantase el gallo, soñó otro sueño relacionado con el pasado de esa noche. El barco seguía bajando junto a la burbuja de aire y es extraño, porque la burbuja debería de subir en vez de bajar aún más como lo estaba haciendo. Después de diez minutos de bajar, “El Cautivo” sale a bordo y ve cómo no hay luz; está a tal profundidad que los rayos del sol no llegan. Puede ver por las velas del barco; mientras el barco sigue bajando se pone a pensar lo peor:`,
`-¡Dios, creador del mundo, por qué me haces esto a mí, si yo he sido muy cristiano y he ido a misa todos los domingos! -gritó.
Se puso a pensar en su hijo recién nacido y mujer, y le dio mucha pena, porque si pasa lo que podría pasar, no verá a su hijo crecer ni casarse. `,
`Una vez en Venecia, esa misma mañana, se fue a desayunar y luego se vistió elegante para volver a vender sus valiosas mercancías. Tras preparar su mercadillo, empezó a venir gente de todas partes y a comprarle su mercancía por un valor muy alto. Tras una tarde muy triunfadora, se fue a su casa y empezó a contar toda su riqueza y se dio cuenta de que ya mismo podría comprarse un nuevo barco.`,
`Más tarde entró por la casa su esposa Matilda.
-Hola, mi amor; ¿cómo te ha ido hoy el día? ¿Has conseguido mucho dinero? -preguntó Matilda.
-Por supuesto, Matilda; hoy ha sido uno de los mejores días que llevo vendiendo -exclamó Arón, feliz.
-Ay,, menos mal; por fin ya te podrás comprar un nuevo barco y presumir ante tus rivales.`,
`Tras una larga charla llega la noche y, como siempre, Arón, “el Cautivo”, se va a dar una vuelta para asegurarse de que no le pasa nada a su barco.`,
`Tras veinte minutos de paseo por Venecia, empieza a escuchar unos sonidos extraños que vienen del mar. Arón, al principio, no se para de andar; pero tras escuchar que su barco nuevo será destruido, se paró en seco y le preguntó al mar:
-¿Por qué me tienes que destruir mi barco?
-Ja ja ja, joven iluso; te crees que por tener riquezas no te destrozaré con mis olas. Me quedaré con tu riqueza. Ahora yo me iré y tendrás el miedo cada vez que navegues.
-No, no te vayas.`,
`Pero el mar no le respondió y, al final, Arón se tuvo que ir a su casa y a dormir sin decirle ni una sola palabra a su esposa, y pensar en lo que dijo el mar.`,
`Arón, triste y desesperado, fue preguntando por toda la ciudad para ver si alguien conocía a un hechicero o hechicera que pudiera ayudarle. Todos lo tomaban por loco y se alejaban de él. Cuando se dio por vencido, un milagro ocurrió y una mujer se le acercó y le dijo que su hermana era hechicera y que podría ayudarle. Le dio la dirección.`,
`Llegando a la casa de la hechicera Celestina, justo antes de tocar la puerta, la hechicera dice: “Pasa ya, sé para qué estás aquí; no te preocupes, entra sin cuidado”, y al entrar el mercader se queda muy asombrado viendo la cantidad de cosas; entre ellas: aceite de limón, vinagre de fresa, aceite de hígado de bacalao, crema de saliva, miel, cebolla, encurtidos, clavo de olor, pimienta, sal y, entre otras cosas.`,
`El mercader le dice:
-Muchas gracias por ayudarme; es que esta noche ha sido terrible. He soñado con el mar.
-¿Y qué hay de malo? Todas tus riquezas las tienes gracias al mar.
-Sí, pero en el sueño me decía que algún día se tragará todos mis barcos y me quedaré sin nada.
-Tengo lo perfecto para ti`,
`Y saca una cruz invertida dorada con detalles negros y carmesíes, diciéndole:
-Solo hay una solución: invocar al diablo y ofrecerle tu alma cuando mueras. Tendrás que arriesgarte si quieres solucionar tu problema. ¿Quieres hacerlo?
-Por supuesto; daría lo que fuera por mi negocio. Seré el hombre más rico del mundo.
-Pues vamos a ello. Dibuja una estrella en el suelo y pon velas negras, y aparecerá un demonio que podrá ayudarte con tu problemilla. ¡Y por todo solo te cobraré 20 monedas de oro!`,
`En la casa de Arón este hace la invocación del demonio y este, con una apariencia grotesca, roja y con alas, le dice:
-¡Muajaja! Qué divertido es ser invocado por los tontos humanos. Bueno, simple mortal, supongo que si me invocaste sabes lo que viene: si me das tu alma al morir, te garantizo usar todo mi poder para evitar que tus barcos sean destruidos por cualquier cosa; solamente tienes que firmar este contrato con tu nombre y apellidos`,
`-No sé; esto sería una traición a Dios. Pero, si no acepto, me quedaré sin nada de lo que tengo. Déjame pensarlo y mañana volveré con una decisión tomada.
-De acuerdo, pero tienes hasta esta mañana, mortal.`,
`¡Puf: desaparece el demonio! El mercader se queda con una cara muy preocupada sin saber qué hacer, y entra la esposa y le pregunta:
-¿Qué tienes, cariño? Te veo pálido.
-No sé si contártelo; es muy difícil.
-Vamos, cariño, no te preocupes; yo siempre estaré contigo.`,
`-Es que tengo miedo de que el mar se trague mis barcos; así que invoqué un demonio y este me pide mi alma a cambio, así que no sé qué hacer.
-Ay, Arón… Yo sí sé lo que haría. Te voy a contar una historia que me contaba mi madre cuando era joven; después tomarás una decisión y se la dirás al diablo.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/138.jpg",
"https://rafaxenakis.neocities.org/codice/123.jpg",
"https://rafaxenakis.neocities.org/codice/125.jpg",
"https://rafaxenakis.neocities.org/codice/124.jpg",
null,
"https://rafaxenakis.neocities.org/codice/127.jpg",
"https://rafaxenakis.neocities.org/codice/126.jpg",
null,
"https://rafaxenakis.neocities.org/codice/128.jpg",
null,
"https://rafaxenakis.neocities.org/codice/129.jpg",
"https://rafaxenakis.neocities.org/codice/130.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/118.jpg",
null,
"https://rafaxenakis.neocities.org/codice/131.jpg",
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballo2";
const PASSAGE_MONJE = "campana2";
const PASSAGE_JUGLAR = "botella2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice18.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
El cuervo y el campesino
</button>
<button type="button" id="choice-monje">
Las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
El búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Estaba el rey dormido, eran las diez de la mañana. En el establo del castillo, había varios mozos de caballerizas en su turno de mañana vigilando los caballos reales, como era habitual. El caballo del rey: el más majestuoso, con adornos de oro, un pelaje negro como el cielo de una oscura noche de invierno, una gualdarapa roja como el vino y con el símbolo de la corona en varias partes de su vestimenta; estaba mostrándose un poco nervioso, cuando de repente ese nerviosismo explotó, dando vueltas y pegando patadas.`,
`El mozo más viejo y experimentado, intenta calmarlo, pero el caballo, lo tumba violentamente con una coz y escapa de su pesebrera, causando el caos de todos los allí presentes. Ningún mozo sabía cómo controlarlo, porque el rey no daba consentimiento a nadie para montarse sobre él, sin embargo, Andrés, un atrevido y joven mozo se subió valientemente en los lomos del tan majestuoso caballo, confiando en su instinto y lo domó como mejor supo. El caballo se tranquilizó y volvió a su lugar`,
`-¡Cómo osas montar en el caballo de nuestro todo poderoso rey! ¡Te caerá una pena de muerte por esa irrespetuosa acción! -exclamaban alarmados el resto de mozos.
El orgullo y la sonrisa de ese joven por su maravillosa acción desapareció al escuchar aquellas palabras de sus compañeros, avergonzandose y arrepintiéndose. No sabía que hacer.`,
`No pasaron ni cinco segundos y ya vino el prestigioso anciano Cipriano a preguntar quién había causado aquel violento ruido. El joven Andrés no iba confesar que había sido él, pero antes de poder tomar cualquier decisión, ya lo habían acusado todos sus compañeros. El anciano, notablemente enfadado se llevó al joven.`,
`Una vez solos Andrés y el prestigioso anciano, Cipriano, le pregunta:
-¿Qué diablos has hecho Andrés? Sabes que el rey sabe muy bien cuando una persona miente y cuando no, además de que si no dices la verdad tus compañeros te delatarán.`,
`Andrés estaba demasiado nervioso, el anciano lo notó y sabía que no iba a confesarlo, así que lo intentó calmar:
-Andrés, no sé si lo que has hecho será digno o no de un gran castigo, sin embargo te pido por favor que escuches esto antes de mentir, porque al rey no le gustan las mentiras. Escucha esta fábula, te dará buen consejo. Tiene un título muy peculiar.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/113.jpg",
"https://rafaxenakis.neocities.org/codice/179.jpg",
null,
"https://rafaxenakis.neocities.org/codice/164.jpg",
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "cuervo4";
const PASSAGE_MONJE = "rana4";
const PASSAGE_JUGLAR = "rata4";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Suficientes fábulas, señor Cipriano.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA MARAVILLOSA Y NUNCA OLVIDADA HISTORIA DEL CUERVO QUE ENGAÑÓ A UN CAMPESINO PARA SOBREVIVIR AL INVIERNO
Hace tiempo, en un lugar soñado llamado Sormin, la ciudad real, un campesino observaba desde su casa ese gran lugar. El hombre flaco, rubio, astuto y sombrío deseaba llegar a ser el más rico de ese territorio sin ninguna duda. Yendo al bosque grande y bondadoso, se prepara para talar, ya que se acerca el invierno; si no, pronto se congelará.`,
`Un “tú” se hace escuchar: era un cuervo algo inusual. Grande, ojos negros y una gran inteligencia, se cae patosamente, pero se recupera.
-Me podrías hacer un favor y yo a ti otro.
Dudoso pero directo, le pide algo sin vacilar.
-Interesante, quiero escuchar más.`,
`-A buen entendedor, pocas palabras bastan. Eres más inteligente que mis compañeros, los plastas. Te diré lo que quiero, luego tú y yo miraremos si en mi alcance está lo que pides. Empezaré: refugio y alimento, y sobre todo libertad, es lo que me interesa, nada más.
-Riqueza y poder, sobre todos los demás. Si cumples lo dicho, te daré eso y más.`,
`Tentado, el cuervo aceptó y, durante el invierno, el cuervo iba recaudando información, ya que de un animal no iban a dudar. Así, el campesino, mediante la información, chantajeaba a todos y así poder iba consiguiendo. Así se convirtió en sabio junto a un cuervo que nadie pensaría que fuese el principal problema. Un día mataron al sabio, ya que estaban cansados de él; antes de eso, el animal robó todo lo que consiguió el campesino.`,
`Astucia y necesidad,
conceptos muy diferentes
en los que nadie confía,
pues cerrados son de mente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/122.jpg",
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballofin2";
const PASSAGE_MONJE = "rana4";
const PASSAGE_JUGLAR = "rata4";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice18.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
El cuervo y el campesino
</button>
<button type="button" id="choice-monje">
Las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
El búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Érase una vez un cansado y rebelde monje que fue a hacer sus recados como de costumbre. Sus superiores le habían mandado a comprar leche. El monje va hacia el otro pueblo, ya que cerca del monasterio no había ninguna tienda que vendiera leche. Una vez llegó al pueblo, el lechero le preguntó por qué él siempre tenía que venir a por leche y, cada vez que venía, venía cansado y aburrido, a lo que le contestó el monje que en el monasterio había mucho trabajo, que si el sonido de la campana, que si el rezo conjunto, ¡todo el día haciendo cosas!`,
`-Chaval, estás más dormido que un diablo en una misa… y encima verte con esa cara, que parece que aleja a mis clientes.
-Es que tengo una vida ajetreada, desde despertarse a las 6, para luego rezar con mis compañeros a las 7, misa a las 9, almuerzo a las 12... y todo por esa maldita campana, que suena más que un gallo por la mañana.`,
`-Pobrecito tú, ojalá que Dios se apiade de tu alma en pena. Anda, te voy a contar una fábula para que aprendas.
-No sé ni qué día es, ¡ni siquiera si es antes o después de Cristo!
-Bueno, igualmente te la contaré. Tiene un título muy interesante.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/115.jpg",
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "cuervo5";
const PASSAGE_MONJE = "rana5";
const PASSAGE_JUGLAR = "rata5";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Basta ya de fábulas, Cipriano.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la del cuervo y el campesino
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA HISTORIA LLENA DE SABIDURÍA DE LAS RANAS QUE INTENTARON GOBERNAR EL ESTANQUE CON LEYES PACTADAS Y JUSTAS
Érase una vez un humilde estanque situado en el patio trasero del castillo del rey. En aquella charca había animales de los que normalmente veis: salamandras, sapos, peces y ranas encontraréis.`,
`Un día por allí pasó el rey, diciendo en voz alta a algunos escritores, seguramente para enviar unas cartas al pueblo:
-Si no me obedecéis conmigo os las veréis, aldeanos de Castilla.`,
`Entonces las ranas tuvieron una gran idea: proclamar un rey para poner orden, ya que durante todo el día solo caos había; las ranas corrían y los peces dormían todo el día.`,
`Para desempeñar esta importante tarea se presentaron dos candidatos. La primera era una joven rana que dijo:
-Tranquilas, ranas del charco, yo soy el jefe indicado, porque con esta rana, la más valiente del reino, ninguna serpiente aparecería, porque yo os defendería.
Lo dijo con actitud prepotente.`,
`La segunda rana era vieja y débil; solo dijo pocas cosas. A diferencia de las otras, esta última solo dijo una frase:
-Solo diré una cosa: yo vengo de un gran río donde hay millones y millones de bichos que comer y espacio donde nadar.`,
`Las ranas, después de la votación, hablaron de los sorpresivos resultados, que eran que tan solo tres ranas votaron al pobre anciano.
En aquella noche apareció una serpiente y empezó a devorar a las ranas una a una, mientras llamaban al rey, pero este se encontraba en el interior del reptil. En cambio, la anciana rana se fue al riachuelo de la zona.
Y por esto sabemos que la sabiduría es más importante que la valentía.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/121.jpg",
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballofin2";
const PASSAGE_MONJE = "cuervo4";
const PASSAGE_JUGLAR = "rata4";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice18.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
El cuervo y el campesino
</button>
<button type="button" id="choice-monje">
Las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
El búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Había una vez un humilde juglar llamado Teodoro que iba de poblado en poblado por toda Castilla recitando romances a los campesinos y artesanos de la zona. Lo de cantar, aparte de que no se le daba bien, le daba poco dinero y comida.`,
`Teodoro estaba pasando un mal momento, ya que últimamente en Castilla no estaba ocurriendo nada interesante que contar y no conseguía nada que comer. Un día como otro cualquiera, estaba contando en la plaza del pueblo y, al recitar una fábula, los campesinos se empezaron a cabrear porque esa historia ya la sabían y, como en este pueblo estaban siempre preparados con una huerta de tomates que todos cuidaban, pues tomates no faltaban y piedras tampoco; entonces se lo empezaron a tirar y, al final, lo echaron del pueblo.`,
`Un día fue a la aldea de Cerdeño y recitó una historia.
-Buenas gentes de Cerdeño, os voy a contar una historia nunca antes oída. Tiene un título muy curioso.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/165.jpg",
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "cuervo6";
const PASSAGE_MONJE = "rana6";
const PASSAGE_JUGLAR = "rata6";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Creo que ya son bastantes fábulas, Cipriano.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del cuervo y el campesino
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA LEYENDA VERDADERA DEL BÚHO QUE LLEGÓ A UN PACTO MUTUAMENTE BENEFICIOSO CON UNA RATA
En el invierno, los ancianos de la aldea nos cuentan la leyenda del búho que llegó a un pacto mutuamente beneficioso con una rata.`,
`Según los dichos, hace mucho tiempo, en un bosque, había un precioso búho con los ojos claros, súper grandes y con un pelo negro, oscuro y brilloso. Sobre las 00:00 de la noche, el búho estaba por el campo con su mejor amigo, el pájaro. Entre vueltas y vueltas se empezaron a escuchar las ramas de un árbol como si hubiera alguien escondido; se asustaron, ya que no sabían lo que podría ser. Al cabo de los minutos se vio una cola larga y peluda. Fueron a ver y vieron a esa rata.
-¡AAAH, te pillé! -dijo el búho.`,
`La rata, súper asustada, le dijo:
-No, por favor, no me mates y te daré a cambio algo que te ayude.
El búho se quedó quieto y le contestó:
-¿Ah, sí? ¿Cómo qué?
La rata le dijo que le diría un sitio donde hay más ratas, las cuales podría captar.`,
`El búho lo aceptó, pero le dijo que necesitaba algo más, y la rata le dijo que podría hacer que otras ratas cuidaran de sus huevos mientras él iba en busca de comida.
La rata le dijo dónde se encontraban más ratas. El búho fue y encontró un grupo de ratas. Les dijo que, sino cuidaban de sus huevos, se las comería. Todas dijeron que sí, que lo harían.`,
`Tras unos días, el búho se dio cuenta, a la vuelta de la búsqueda de su comida, de que le faltaban huevos. Entonces se enfadó muchísimo. Fue en busca de las ratas, incluida la que era su amiga, y empezaron a pelearse.
-¿Quién ha perdido un huevo? -les dijo el búho a las ratas.
Todas, asustadas, dijeron que ellas no sabían nada.`,
`El búho les dijo:
-Vais a morir todas.
-Me da igual, mátame, no pienso ser la criada de nadie -le contestó una rata del grupo.
El búho, al escuchar eso, fue a por ella y se la comió, y por rencor mató a todas las demás.`,
`Quedó solo una: la que tuvo la idea de robar los huevos. Le dijo al búho que todo esto no fue por culpa suya, que fue idea de una de las ratas muertas. Entre una cosa y otra, el búho acabó creyéndola y se hicieron súper amigos. A partir de ese día, esa rata se encargó de cuidar de sus pequeños huevos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/120.jpg",
null,
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "caballofin2";
const PASSAGE_MONJE = "rana4";
const PASSAGE_JUGLAR = "cuervo4";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice22.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Fabulae Sapientiae</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El joven quedó fascinado ante la fábula que le contó el anciano. Justo después de esto, el rey llega y pregunta furioso qué había sido ese ruido. El muchacho, gracias a la enseñanza de la fábula del anciano, decide contarle la verdad al rey.`,
`-Lo siento si hice algo digno de castigo, en cualquier caso júzgame tú, con tu gran justicia. Tu majestuoso caballo, escapó de su pesebrera, a lo que tomé la arriesgada decisión de montar sobre él para domarlo y tranquilizarlo- Dijo Andrés entre lágrimas.`,
`El rey se calmó. Ve que el muchacho salvó su caballo y orgulloso, le dice:
-No hay obediencia más noble que la que nace del valor. Te nombro escudero personal.`,
`El mercader se quedó asombrado con la historia que le había contado su esposa. Pensó: "me has abierto los ojos. A veces hay que tener valor y arriesgarse. Ya sé lo que debo hacer. Firmaré mi acuerdo y entregaré mi alma al diablo. A cambio de ello mantendré mi exitoso negocio y seré el hombre más rico y poderoso de la ciudad".
Entonces el mercader, muy convencido de su decisión, fue a firmar el trato con el diablo para proteger sus riquezas.`,
`A la hora señalada, apareció el diablo.
-Bueno Aarón, estás dispuesto a firmar mi contrato
-Tras una noche entera pensando he decidido aceptar.
-Muy bien hecho, mercader, eso era lo que debías hacer -dice el diablo con una sonrisa un poco extraña.`,
`Con cierto alivio y seguridad, hizo el trato. Justo al firmarlo, de repente el papel se esfumó lentamente dejando un humo rojo donde estaba. El demonio se fue silenciosamente, solo con una risa malvada y sospechosa.`,
`Todo parecía ir bien. Pasaban los meses y el trato parecía ser totalmente cierto. Todos los barcos del mercader llegaban sanos y salvos al puerto. El comercio avanza, ha podido comprarse nuevos barcos y no ha pasado ningún accidente. De hecho, a su mayor enemigo casi nadie le compra sus mercancías. Y no todas las buenas noticias eran sobre los barcos. El mercader y su esposa iban a tener su primer hijo.`,
`Un día de invierno, su mujer estaba a punto de dar a luz a su primer hijo. Caminaba de noche, de vuelta a casa, cuando una ola aparece de repente del mar y se lleva a su mujer, sin dejar rastro de ella. Un amigo de Arón, al ver lo que ha pasado, va rápido a contarle lo que ha pasado, él al enterarse se tira al suelo y grita con los ojos llenos de lágrimas que por qué le pasa siempre lo peor a él.`,
`El mercader, triste y con la sensación de haber sido engañado, convocó al diablo para decirle que no había cumplido con el trato.
-No has cumplido, maldito diablo, me dijiste que no me iba a pasar nada malo -le grita enfadado al diablo
-No no no, yo he cumplido con el trato, tú firmaste que no destruyeran tus barcos, pero no a tus seres queridos, así que yo le dije al mar que simplemente no atacase tus barcos -dijo el diablo a punto de desaparecer.`,
`Más tarde por la noche Aarón se para con el mar, exactamente donde su mujer y su hijo fueron arrastrados. Allí grita:
-¿Por qué hiciste esto, mar?
-El diablo me dijo que no atacase a tus barcos, así que rapte a tú mujer. ¡Ah, el diablo me dijo que te espera en el infierno!
El mercader se queda llorando en el suelo. Esto es lo que pasa por elegir la riqueza ante la familia.`,
`Theobaldus, sorprendido por la historia que le acaba de contar el anciano monje venerable, guarda silencio unos instantes.
-¡Qué historia más emocionante! Ojalá no hubiera acabado así -dice sinceramente Theobaldus.
-Así son las cosas del Señor.
-Bueno, es una pena, pero me tengo que despedir -dice entristecido Theobaldus.`,
`Sale del monasterio y sube de nuevo a su barco. El clima ya no estaba tan agitado. Theobaldus se despide de Venecia mirando hacia la oscuridad del mar abierto, con el códice bajo el brazo, el gran libro del Códice Errante.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/112.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/131.jpg",
"https://rafaxenakis.neocities.org/codice/137.jpg",
null,
"https://rafaxenakis.neocities.org/codice/138.jpg",
"https://rafaxenakis.neocities.org/codice/139.jpg",
"https://rafaxenakis.neocities.org/codice/132.jpg",
"https://rafaxenakis.neocities.org/codice/140.jpg",
"https://rafaxenakis.neocities.org/codice/172.jpg",
"https://rafaxenakis.neocities.org/codice/174.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "fabulae";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $fabulae += 1>><</if>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Suficientes fábulas, lechero.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA MARAVILLOSA Y NUNCA OLVIDADA HISTORIA DEL CUERVO QUE ENGAÑÓ A UN CAMPESINO PARA SOBREVIVIR AL INVIERNO
Hace tiempo, en un lugar soñado llamado Sormin, la ciudad real, un campesino observaba desde su casa ese gran lugar. El hombre flaco, rubio, astuto y sombrío deseaba llegar a ser el más rico de ese territorio sin ninguna duda. Yendo al bosque grande y bondadoso, se prepara para talar, ya que se acerca el invierno; si no, pronto se congelará.`,
`Un “tú” se hace escuchar: era un cuervo algo inusual. Grande, ojos negros y una gran inteligencia, se cae patosamente, pero se recupera.
-Me podrías hacer un favor y yo a ti otro.
Dudoso pero directo, le pide algo sin vacilar.
-Interesante, quiero escuchar más.`,
`-A buen entendedor, pocas palabras bastan. Eres más inteligente que mis compañeros, los plastas. Te diré lo que quiero, luego tú y yo miraremos si en mi alcance está lo que pides. Empezaré: refugio y alimento, y sobre todo libertad, es lo que me interesa, nada más.
—Riqueza y poder, sobre todos los demás. Si cumples lo dicho, te daré eso y más.`,
`Tentado, el cuervo aceptó y, durante el invierno, el cuervo iba recaudando información, ya que de un animal no iban a dudar. Así, el campesino, mediante la información, chantajeaba a todos y así poder iba consiguiendo. Así se convirtió en sabio junto a un cuervo que nadie pensaría que fuese el principal problema. Un día mataron al sabio, ya que estaban cansados de él; antes de eso, el animal robó todo lo que consiguió el campesino.`,
`Astucia y necesidad,
conceptos muy diferentes
en los que nadie confía,
pues cerrados son de mente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/122.jpg",
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "campanafin2";
const PASSAGE_MONJE = "rana5";
const PASSAGE_JUGLAR = "rata5";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Creo que ya son bastantes fábulas, lechero.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del cuervo y el campesino
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA LEYENDA VERDADERA DEL BÚHO QUE LLEGÓ A UN PACTO MUTUAMENTE BENEFICIOSO CON UNA RATA
En el invierno, los ancianos de la aldea nos cuentan la leyenda del búho que llegó a un pacto mutuamente beneficioso con una rata.`,
`Según los dichos, hace mucho tiempo, en un bosque, había un precioso búho con los ojos claros, súper grandes y con un pelo negro, oscuro y brilloso. Sobre las 00:00 de la noche, el búho estaba por el campo con su mejor amigo, el pájaro. Entre vueltas y vueltas se empezaron a escuchar las ramas de un árbol como si hubiera alguien escondido; se asustaron, ya que no sabían lo que podría ser. Al cabo de los minutos se vio una cola larga y peluda. Fueron a ver y vieron a esa rata.
-¡AAAH, te pillé! -dijo el búho.`,
`La rata, súper asustada, le dijo:
-No, por favor, no me mates y te daré a cambio algo que te ayude.
El búho se quedó quieto y le contestó:
-¿Ah, sí? ¿Cómo qué?
La rata le dijo que le diría un sitio donde hay más ratas, las cuales podría captar.`,
`El búho lo aceptó, pero le dijo que necesitaba algo más, y la rata le dijo que podría hacer que otras ratas cuidaran de sus huevos mientras él iba en busca de comida.
La rata le dijo dónde se encontraban más ratas. El búho fue y encontró un grupo de ratas. Les dijo que, sino cuidaban de sus huevos, se las comería. Todas dijeron que sí, que lo harían.`,
`Tras unos días, el búho se dio cuenta, a la vuelta de la búsqueda de su comida, de que le faltaban huevos. Entonces se enfadó muchísimo. Fue en busca de las ratas, incluida la que era su amiga, y empezaron a pelearse.
-¿Quién ha perdido un huevo? -les dijo el búho a las ratas.
Todas, asustadas, dijeron que ellas no sabían nada.`,
`El búho les dijo:
-Vais a morir todas.
-Me da igual, mátame, no pienso ser la criada de nadie -le contestó una rata del grupo.
El búho, al escuchar eso, fue a por ella y se la comió, y por rencor mató a todas las demás.`,
`Quedó solo una: la que tuvo la idea de robar los huevos. Le dijo al búho que todo esto no fue por culpa suya, que fue idea de una de las ratas muertas. Entre una cosa y otra, el búho acabó creyéndola y se hicieron súper amigos. A partir de ese día, esa rata se encargó de cuidar de sus pequeños huevos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/120.jpg",
null,
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "campanafin2";
const PASSAGE_MONJE = "rana5";
const PASSAGE_JUGLAR = "cuervo5";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Basta ya de fábulas, lechero.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la del cuervo y el campesino
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA HISTORIA LLENA DE SABIDURÍA DE LAS RANAS QUE INTENTARON GOBERNAR EL ESTANQUE CON LEYES PACTADAS Y JUSTAS
Érase una vez un humilde estanque situado en el patio trasero del castillo del rey. En aquella charca había animales de los que normalmente veis: salamandras, sapos, peces y ranas encontraréis.`,
`Un día por allí pasó el rey, diciendo en voz alta a algunos escritores, seguramente para enviar unas cartas al pueblo:
-Si no me obedecéis conmigo os las veréis, aldeanos de Castilla.`,
`Entonces las ranas tuvieron una gran idea: proclamar un rey para poner orden, ya que durante todo el día solo caos había; las ranas corrían y los peces dormían todo el día.`,
`Para desempeñar esta importante tarea se presentaron dos candidatos. La primera era una joven rana que dijo:
-Tranquilas, ranas del charco, yo soy el jefe indicado, porque con esta rana, la más valiente del reino, ninguna serpiente aparecería, porque yo os defendería.
Lo dijo con actitud prepotente.`,
`La segunda rana era vieja y débil; solo dijo pocas cosas. A diferencia de las otras, esta última solo dijo una frase:
-Solo diré una cosa: yo vengo de un gran río donde hay millones y millones de bichos que comer y espacio donde nadar.`,
`Las ranas, después de la votación, hablaron de los sorpresivos resultados, que eran que tan solo tres ranas votaron al pobre anciano.
En aquella noche apareció una serpiente y empezó a devorar a las ranas una a una, mientras llamaban al rey, pero este se encontraba en el interior del reptil. En cambio, la anciana rana se fue al riachuelo de la zona.
Y por esto sabemos que la sabiduría es más importante que la valentía.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/121.jpg",
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "campanafin2";
const PASSAGE_MONJE = "cuervo5";
const PASSAGE_JUGLAR = "rata5";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice22.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Fabulae Sapientiae</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El monje, después de lo oído, se frotó los ojos y decidió por una vez hacer caso al lechero y desobedecer la campana.`,
`Al día siguiente tocaba campana, pero se quedó arropado en su cama; además, afuera estaba lloviendo.`,
`De repente, como si fuera un castigo de Dios, le cayó un trueno en su habitación, destrozándole todo y casi lo mata. Sus compañeros, que estaban abajo rezando, rápidamente subieron y lo divisaron entre los escombros:
-Eh, ¿eso es una mano?
-Me da a mí que sí, ¿pero quién está aquí, si todos tenemos que estar abajo?`,
`Un “yo” débil y vergonzoso se pudo oír. Rápidamente lo sacaron y lo curaron, no sin antes preguntarle una cosa:
-Mira, no sé qué hacías ahí arriba, pero no es importante ahora.
Mirando a un lado, dice:
-Estaba enfermo…
Mientras continuaba pensando que si sería un castigo divino de Dios, o tal vez ha sido mala suerte. Pero, en todo caso, desde ese día, siempre obedeció la campana y cumplió sus tareas de monje.`,
`Después de escuchar el cuento de su esposa, que le recordó que hay que seguir las reglas de Dios, el mercader dijo que ella tenía mucha razón, que había sido un gran error invocar al diablo y que cortaría absolutamente toda conexión con él.
Entonces se acercó al lugar donde guardaba el contrato y decidió no firmarlo; en su lugar, lo guardó de nuevo. Comentó que dudaba que el diablo estuviera contento por no haberlo firmado y añadió que debía ir a la iglesia a confesarse. Pasó toda la noche en vela sin poder dormir, pensando que al día siguiente tendría que ir a la iglesia sí o sí.`,
`Ya en la iglesia, adornada de figuras religiosas y estatuas de Cristo y el Espíritu Santo, entró al confesionario y se acercó para hablar con el padre.
-Padre, confiéseme, por favor. He pecado muy gravemente y no sé si pueda ser perdonado.
El sacerdote respondió:
-¿Qué ha pasado, hijo mío? ¿Qué tal pecado podrías haber cometido como para no ser perdonado?`,
`El mercader explicó:
-Estuve a punto de firmar un pacto con el diablo por miedo a que se hundan mis barcos. Padre, mi situación es lamentable: no le puedo dar una buena comida a mi familia y mis barcos se hunden cada dos semanas de uso porque me choco con las rocas de los canales. Ahora traigo el contrato conmigo, pero no sé qué hacer con esto.`,
`-¿C… cómo? ¡¿Un pacto con el diablo?! Dios Padre, Creador de todo lo creado, perdona a este hombre.
Entonces, afuera de la iglesia sonó un trueno extremadamente intenso. El padre se puso blanco. Cogió un poco de aire.
-Arón, estoy decepcionado de que hayas hablado con el diablo, después de haberte casado con tu bella mujer. Pero, como no aceptaste la oferta, te bendeciré y te daré suerte para tus barcos y tus comercios, a ver si te va mejor.
El mercader respondió agradecido:
-Muchísimas gracias, padre. Se lo agradezco.`,
`Colocaron el contrato en un pequeño altar. El sacerdote hizo un ritual, a la vez que cantaba algo en latín. El padre tomó agua bendita y le echó un chorrito. El contrato comenzó a prenderse fuego de manera descontrolada, hasta el punto de que tuvieron que alejarse. Mientras ardía, se oían risas diabólicas sin control, y el humo era una mezcla de negro y rojo. Cuando el fuego se apagó, solo quedaron cenizas. El padre las enterró y les echó un poco de agua bendita.
El mercader dijo:
-Muchísimas gracias, padre; se lo agradezco. Nos veremos muy pronto.`,
`Ya en la casa, el mercader saludó a su esposa y le explicó que el padre había logrado destruir el contrato. La abrazó y añadió que seguía temiendo por sus barcos, pero que no importaba, porque había tomado la decisión correcta: el dinero se puede recuperar, pero el alma no; y no quería estar separado de lo que ama, como ella. Pasaron dos horas y no se representó el diablo de ninguna manera. Arón era puro de nuevo y ya dejó la codicia atrás.`,
`En su cabeza se quedó la frase: “Es mejor perder barcos y dinero que perder el alma y tu familia”. La mujer se puso muy feliz debido a que su marido no había vendido su alma por dinero. Y empezaron a sonar las campanas de San Marcos.`,
`Theobaldus, sorprendido por la historia que le acaba de contar el anciano monje venerable, guarda silencio unos instantes.
-¡Qué historia más emocionante! Menos mal que acabó bien -dice sinceramente Theobaldus.
-Así son las cosas del Señor.
-Bueno, es una pena, pero me tengo que despedir -dice entristecido Theobaldus.`,
`Sale del monasterio y sube de nuevo a su barco. El clima ya no estaba tan agitado. Theobaldus se despide de Venecia mirando hacia la oscuridad del mar abierto, con el códice bajo el brazo, el gran libro del Códice Errante.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/115.jpg",
"https://rafaxenakis.neocities.org/codice/163.jpg",
"https://rafaxenakis.neocities.org/codice/114.jpg",
null,
"https://rafaxenakis.neocities.org/codice/133.jpg",
"https://rafaxenakis.neocities.org/codice/134.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/109.jpg",
"https://rafaxenakis.neocities.org/codice/135.jpg",
"https://rafaxenakis.neocities.org/codice/135.jpg",
"https://rafaxenakis.neocities.org/codice/172.jpg",
"https://rafaxenakis.neocities.org/codice/174.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "fabulae";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $fabulae += 1>><</if>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Ya está, no les contaré más fábulas.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la del cuervo y el campesino
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA HISTORIA LLENA DE SABIDURÍA DE LAS RANAS QUE INTENTARON GOBERNAR EL ESTANQUE CON LEYES PACTADAS Y JUSTAS
Érase una vez un humilde estanque situado en el patio trasero del castillo del rey. En aquella charca había animales de los que normalmente veis: salamandras, sapos, peces y ranas encontraréis.`,
`Un día por allí pasó el rey, diciendo en voz alta a algunos escritores, seguramente para enviar unas cartas al pueblo:
-Si no me obedecéis conmigo os las veréis, aldeanos de Castilla.`,
`Entonces las ranas tuvieron una gran idea: proclamar un rey para poner orden, ya que durante todo el día solo caos había; las ranas corrían y los peces dormían todo el día.`,
`Para desempeñar esta importante tarea se presentaron dos candidatos. La primera era una joven rana que dijo:
-Tranquilas, ranas del charco, yo soy el jefe indicado, porque con esta rana, la más valiente del reino, ninguna serpiente aparecería, porque yo os defendería.
Lo dijo con actitud prepotente.`,
`La segunda rana era vieja y débil; solo dijo pocas cosas. A diferencia de las otras, esta última solo dijo una frase:
-Solo diré una cosa: yo vengo de un gran río donde hay millones y millones de bichos que comer y espacio donde nadar.`,
`Las ranas, después de la votación, hablaron de los sorpresivos resultados, que eran que tan solo tres ranas votaron al pobre anciano.
En aquella noche apareció una serpiente y empezó a devorar a las ranas una a una, mientras llamaban al rey, pero este se encontraba en el interior del reptil. En cambio, la anciana rana se fue al riachuelo de la zona.
Y por esto sabemos que la sabiduría es más importante que la valentía.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/121.jpg",
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "botellafin2";
const PASSAGE_MONJE = "cuervo6";
const PASSAGE_JUGLAR = "rata6";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Creo que no les contaré más fábulas.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del búho y las ratas
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA MARAVILLOSA Y NUNCA OLVIDADA HISTORIA DEL CUERVO QUE ENGAÑÓ A UN CAMPESINO PARA SOBREVIVIR AL INVIERNO
Hace tiempo, en un lugar soñado llamado Sormin, la ciudad real, un campesino observaba desde su casa ese gran lugar. El hombre flaco, rubio, astuto y sombrío deseaba llegar a ser el más rico de ese territorio sin ninguna duda. Yendo al bosque grande y bondadoso, se prepara para talar, ya que se acerca el invierno; si no, pronto se congelará.`,
`Un “tú” se hace escuchar: era un cuervo algo inusual. Grande, ojos negros y una gran inteligencia, se cae patosamente, pero se recupera.
-Me podrías hacer un favor y yo a ti otro.
Dudoso pero directo, le pide algo sin vacilar.
-Interesante, quiero escuchar más.`,
`-A buen entendedor, pocas palabras bastan. Eres más inteligente que mis compañeros, los plastas. Te diré lo que quiero, luego tú y yo miraremos si en mi alcance está lo que pides. Empezaré: refugio y alimento, y sobre todo libertad, es lo que me interesa, nada más.
—Riqueza y poder, sobre todos los demás. Si cumples lo dicho, te daré eso y más.`,
`Tentado, el cuervo aceptó y, durante el invierno, el cuervo iba recaudando información, ya que de un animal no iban a dudar. Así, el campesino, mediante la información, chantajeaba a todos y así poder iba consiguiendo. Así se convirtió en sabio junto a un cuervo que nadie pensaría que fuese el principal problema. Un día mataron al sabio, ya que estaban cansados de él; antes de eso, el animal robó todo lo que consiguió el campesino.`,
`Astucia y necesidad,
conceptos muy diferentes
en los que nadie confía,
pues cerrados son de mente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/122.jpg",
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "botellafin2";
const PASSAGE_MONJE = "rana6";
const PASSAGE_JUGLAR = "rata6";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice19.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-mozo">
Suficiente, ya les he contado bastantes fábulas.
</button>
<button type="button" id="choice-monje">
Cuéntame ahora la de las ranas y las leyes
</button>
<button type="button" id="choice-juglar">
Cuéntame ahora la del cuervo y el campesino
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`LA LEYENDA VERDADERA DEL BÚHO QUE LLEGÓ A UN PACTO MUTUAMENTE BENEFICIOSO CON UNA RATA
En el invierno, los ancianos de la aldea nos cuentan la leyenda del búho que llegó a un pacto mutuamente beneficioso con una rata.`,
`Según los dichos, hace mucho tiempo, en un bosque, había un precioso búho con los ojos claros, súper grandes y con un pelo negro, oscuro y brilloso. Sobre las 00:00 de la noche, el búho estaba por el campo con su mejor amigo, el pájaro. Entre vueltas y vueltas se empezaron a escuchar las ramas de un árbol como si hubiera alguien escondido; se asustaron, ya que no sabían lo que podría ser. Al cabo de los minutos se vio una cola larga y peluda. Fueron a ver y vieron a esa rata.
-¡AAAH, te pillé! -dijo el búho.`,
`La rata, súper asustada, le dijo:
-No, por favor, no me mates y te daré a cambio algo que te ayude.
El búho se quedó quieto y le contestó:
-¿Ah, sí? ¿Cómo qué?
La rata le dijo que le diría un sitio donde hay más ratas, las cuales podría captar.`,
`El búho lo aceptó, pero le dijo que necesitaba algo más, y la rata le dijo que podría hacer que otras ratas cuidaran de sus huevos mientras él iba en busca de comida.
La rata le dijo dónde se encontraban más ratas. El búho fue y encontró un grupo de ratas. Les dijo que, sino cuidaban de sus huevos, se las comería. Todas dijeron que sí, que lo harían.`,
`Tras unos días, el búho se dio cuenta, a la vuelta de la búsqueda de su comida, de que le faltaban huevos. Entonces se enfadó muchísimo. Fue en busca de las ratas, incluida la que era su amiga, y empezaron a pelearse.
-¿Quién ha perdido un huevo? -les dijo el búho a las ratas.
Todas, asustadas, dijeron que ellas no sabían nada.`,
`El búho les dijo:
-Vais a morir todas.
-Me da igual, mátame, no pienso ser la criada de nadie -le contestó una rata del grupo.
El búho, al escuchar eso, fue a por ella y se la comió, y por rencor mató a todas las demás.`,
`Quedó solo una: la que tuvo la idea de robar los huevos. Le dijo al búho que todo esto no fue por culpa suya, que fue idea de una de las ratas muertas. Entre una cosa y otra, el búho acabó creyéndola y se hicieron súper amigos. A partir de ese día, esa rata se encargó de cuidar de sus pequeños huevos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/120.jpg",
null,
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "botellafin2";
const PASSAGE_MONJE = "rana6";
const PASSAGE_JUGLAR = "cuervo6";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice22.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Fabulae Sapientiae</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de recitar aquella historia, fue abucheado por todo Cerdeño, ya que el relato ya había sido contado en el pueblo.`,
`Al irse del pueblo, pasó por un río al que se paró a refrescarse y a beber agua. Cerca se encontró una cabaña destruida, pero con botellas de cristal intactas, y se le ocurrió la maravillosa idea de llenarlas de agua del arroyo que pasaba por allí, ya que escuchó a unos monjes que el agua más buena era la del río Jordán. Se inventó que ese agua venía de ese río, viendo que sabía a un agua limpia y llena de vida; así creó unas botellas en las que ponía: “Agua del río Jordán, donde nuestro Señor fue bautizado”. Así, con esa maravillosa idea, intentó ganar un poco de dinero y comida.`,
`-Agua del río Jordán, agua que cura, agua que hace crecer cultivos, agua que hace que los animales estén sanos, agua que da felicidad. ¡Haceros con ella! —recitaba Teodoro con poca fe de ganar algo; lo que no sabía era que la gente se creyera aquella estafa y se juntara todo el pueblo alrededor del puesto comprando agua bendita.`,
`-¿Tu agua me puede hacer más fuerte?
-¿Puede curar a mi padre? Está enfermo.
-¿Hace que las plantas crezcan fuertes y sanas y con unos frutos jugosos y frescos?
-Sí, sí, sí, mi agua proviene del río más sagrado de todo Oriente, claro que puede hacer todas esas cosas.
-¿Sirve para mi primo, que no sabe plantar bien las patatas?
-Claro, dale un vaso de agua y planta hasta espárragos.`,
`Los campesinos, al escuchar esto, pagaban por una botella todos sus ahorros; era un éxito, y con el dinero que ganaba se permitía comprar más botellas. Así ese juglar pobre se hizo rico.`,
`Después de que el mercader hubiera escuchado la historia de la mujer, decide que intentará engañar al diablo para evitar ir al infierno al fallecer. En el contrato, decide poner en letra pequeña: “El diablo solo podrá llevarse el alma del mercader si hay cero pérdidas de mercancías por culpa del mar”.`,
`El mercader, con un ritual satánico, invoca al diablo y le invita a una comida y a un vino muy añejo allí mismo. También contrata a un bufón charlatán para comerle la cabeza y que no ponga mucha atención a lo que el mercader ha añadido en el contrato, y así poder hacerle el truco. Así, solo con perder una caja por culpa del mar, el diablo tendría que protegerlo gratis y no tendría que dar su alma.
Una vez puesta la frase con una pluma muy fina, el mercader firma y el diablo también. El diablo se esfumó con una risa malvada.`,
`El mercader, ya recuperado de sus malas rachas, con un equipo de marineros, se va en busca de especias, comida y sedas. Decidió decirles a los marineros que llevarían el barco a Oriente que apilaran las cajas de los jarrones una encima de otra, cerca del borde del barco, de forma que se caiga alguna y así se incumpla el trato del diablo.
-¡Pero si las apilamos así se van a caer, señor! No debemos hacer eso.
-Hacedme caso en lo que os digo, sé lo que hago.
-Perdonad, señor, tiene razón. Como lo diga lo haremos.`,
`Para llevar de vuelta la mercancía, apilaron las cajas como dijo el mercader.
-Qué tontería, no tiene sentido hacer esto. Hemos hecho todo este viaje para perder la mercancía a propósito -rechistaba un marinero.`,
`En el camino de vuelta, las olas empezaron a hacerse un poco más grandes y el barco se agitaba con fuerza, hasta que finalmente se cayó una caja.
-Ves lo que te decía, ya se ha caído una.
-No creo que sea tan tonto como para habernos dicho eso; algo tendrá planeado`,
`Al llegar el barco al puerto, dos marineros se acercaron al mercader cabizbajos.
-Lamentamos informarle de que, de vuelta, una de las cajas se ha caído del barco, señor.
-Muchas gracias por la información -dijo con una sonrisa de oreja a oreja.
Los marineros le miraron con cara de asombro.
-¿Tú crees que se ha enfadado?
-No creo, se le veía muy contento.
-Pobre, se está volviendo loco…`,
`El mercader llega a su casa feliz, y sin siquiera sentarse convocó al diablo. El diablo aparece con un humo rojo.
-¿Por qué te ríes tanto si tengo tu alma, pequeño mercader?
-¿Tú leíste bien el contrato o solo firmaste y te reíste en mi cara? Has incumplido el trato.
-¿De qué hablas? No ha habido ninguna tormenta cerca de tus barcos.`,
`-No, pero he perdido mercancías. Lee la letra pequeña y lo entenderás. Se cayó un poco de mi mercancía por la borda y en el contrato pone que “el diablo solo podrá llevarse el alma del mercader si hay cero pérdidas de mercancías por culpa del mar”. Así que ya no tienes mi alma y yo tengo tu protección.
-¡Maldito seas, engañando al mismo diablo! ¡Me vengaré de ti e irás al infierno!
Moraleja: El diablo es un creído y tonto, así que le puedes hacer llorar con solo un papel y un vino.`,
`Theobaldus, sorprendido por la historia que le acaba de contar el anciano monje venerable, guarda silencio unos instantes.
-¡Qué historia más emocionante! ¡Qué divertido que terminara así! -dice sinceramente Theobaldus.
-Así son las cosas del Señor.
-Bueno, es una pena, pero me tengo que despedir -dice entristecido Theobaldus.`,
`Sale del monasterio y sube de nuevo a su barco. El clima ya no estaba tan agitado. Theobaldus se despide de Venecia mirando hacia la oscuridad del mar abierto, con el códice bajo el brazo, el gran libro del Códice Errante.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/165.jpg",
"https://rafaxenakis.neocities.org/codice/111.jpg",
"https://rafaxenakis.neocities.org/codice/110.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/136.jpg",
"https://rafaxenakis.neocities.org/codice/180.jpg",
"https://rafaxenakis.neocities.org/codice/141.jpg",
"https://rafaxenakis.neocities.org/codice/143.jpg",
"https://rafaxenakis.neocities.org/codice/143.jpg",
"https://rafaxenakis.neocities.org/codice/142.jpg",
"https://rafaxenakis.neocities.org/codice/107.jpg",
null,
"https://rafaxenakis.neocities.org/codice/172.jpg",
"https://rafaxenakis.neocities.org/codice/174.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "fabulae";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $fabulae += 1>><</if>><<silently>><<game "cancioneromapa">><</silently>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice7.mp3" {"fade":1.5, "volume":0.45}>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/176.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRAR EN LA HISTORIA DEL CABALLERO Y LA DAMA DEL LAGO">><<goto "El Caballero y la Dama del Lago">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRAR EL HISTORIA DEL ABAD Y EL LADRÓN POBRE">><<goto "El Abad y el Ladrón">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "VOLVER AL ÍNDICE DEL CANCIONERO">><<goto "cancionero">><</link>></span>
</div>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice14.mp3" {"fade":1.5, "volume":0.45}>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/181.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "JUGAR AL JUEGO DEL AMOR (si no tienes teclado, mejor usa los enlaces de abajo)">><<goto "jugar al juego del amor">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "VOLVER AL MAPA DEL CANCIONERO">><<goto "cancionero">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENLACE DIRECTO AL POEMA DE AMOR CORRESPONDIDO CON LA DAMA">><<goto "dama1">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENLACE DIRECTO AL POEMA DE AMOR CORRESPONDIDO CON EL CABALLERO">><<goto "caballero1">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENLACE DIRECTO AL POEMA DE AMOR CORRESPONDIDO CON LA CAMPESINA">><<goto "campesina1">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENLACE DIRECTO AL POEMA DE AMOR DESGRACIADO CON LA DAMA">><<goto "dama2">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENLACE DIRECTO AL POEMA DE AMOR DESGRACIADO CON EL CABALLERO">><<goto "caballero2">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENLACE DIRECTO AL POEMA DE AMOR DESGRACIADO CON LA CAMPESINA">><<goto "campesina2">><</link>></span>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/182.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "NAVEGA EN BUSCA DE FORTUNA">><<goto "fortunainicio">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "VOLVER AL MAPA DEL CANCIONERO">><<goto "cancionero">><</link>></span>
</div><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice16.mp3" {"fade":1.5, "volume":0.45}>>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/183.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRA EN EL CEMENTERIO">><<goto "mortemapa">><</link>></span>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "VOLVER AL MAPA DEL CANCIONERO">><<goto "cancionero">><</link>></span>
</div><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Le dices a la Dama del Lago que la espada no es tuya</button>
<button type="button" id="choice-dialogo5">Le dices que esa es tu espada</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Un caballero humilde es:
luchando guerras vivió.
Remó con peso cansado
y el cielo gris le cubrió.
Cruzaba muy lento el lago
cuando su espada cayó.
En el lago se va hundiendo,
la amaba con gran pasión.`,
`De pronto una bella dama,
a superficie salió.
La Dama del Lago entonces
con luz allí ya brilló
Traía una espada nueva
y al hombre pobre le habló,
espada de oro sostuvo,
espada de gran valor.`,
`Con voz suave le pregunta:
"¿suya es la espada señor?"
Porque mucho le gustaba
rato callado pensó.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/057.jpg",
"https://rafaxenakis.neocities.org/codice/058.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "lagovirtud";
const PASSAGE_2 = "lagovicio";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Perdonas al ladrón por su arrepentimiento sincero</button>
<button type="button" id="choice-dialogo5">Castigas al ladrón con dureza</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`En un valle silencioso,
vivía un piadoso abad
que sus cálices cuidaba
con mucha calma y con paz.`,
`Un ladrón, cuando es de noche
entró al monasterio ya,
busca pan y busca oro,
temblando en la oscuridad.
Cuando fue a robar el cáliz,
se arrodilló frente a el altar
y pidió perdón al cielo,
pues lo que hace es un gran mal.`,
`Dos voces siente en su pecho,
de maldad y de bondad,
mas no le dio importancia,
pues solo quería marchar.`,
`El abad se acerca el pobre
y así le empieza a gritar:
“Yo soy el gran monje jefe,
que mi nombre es Per Abad
y, por mas que tu lo intentes,
tú no lo conseguirás.`,
`Este cáliz tan valioso
debe estar en un altar
y, si tu ladrón lo robas,
de la cárcel no saldrás.`,
`“Tú, muy maldito ladrón,
dígame toda la verdad,
que tu lo que más quieres
es mis tesoros robar.
Yo a ti no te perdonaré,
no tengo necesidad,
mas yo sé lo que tu quieres
y, si lo haces, pagarás.`,
`Escuchándolo el ladrón
dio dos pasos hacia atrás.
De rodillas y llorando,
perdón le pide al abad.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/063.jpg",
"https://rafaxenakis.neocities.org/codice/064.jpg",
null,
"https://rafaxenakis.neocities.org/codice/065.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/066.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "abadvirtud";
const PASSAGE_2 = "abadvicio";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`-Caballero mío, elige
con gran determinación,
es brillante y deslumbrante
espada de gladiador.`,
`Nada más habló la dama
él la verdad confesó
-Mía no es la bella espada
ya la mía se oxidó`,
`-Tus palabras son honestas
lo dices con corazón,
coge vos las dos espadas.
Entonces gracias le dio:
-Bastante yo te agradezco
por tu gran compasión
princesa, ya he de volver
camino de mi nación.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/059.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tras ver aquella espada
el guerrero se animó
y con su gran picardía
a la dama así mintió:`,
`“Sí, diosa de vuestro lago
recuerdo cómo cayó,
esa espada yo cargué
en guerras de Castellón.
recuerdo yo esos conflictos,
donde salí campeón.
Así que por Dios lo juro.
que a mí me perteneció.”`,
`-Señor, ¿está usted seguro?
¿no me mentirías vos?
“Es mía, Dama del Lago”,
dijo con cierto temor.`,
`-Pues tu mentira es clara,
tu espada la tengo yo,
el peor pecado es mentir,
no te perdono señor.
“Por favor, deme mi espada”,
el guerrero suplicó`,
`-Lo siento, pues me mentiste
malvado hombre sin honor
ya sin mi espada te quedas,
y no sin una, sin dos,
la mentira es horrorosa
y la tuya fue peor.`,
`Esta preciosa espada
nunca te perteneció
porque durante un siglo
a su dueño busco yo.`,
`La Dama se volvió al lago.
El guerrero esto pensó:
- Sin espada nada tengo
ni trabajo, ni labor.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/062.jpg",
null,
null,
null,
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Le pide que lo perdone,
porque quiere algo de pan.
El gran abad apenado
lo decide perdonar,
ya que ve el abad en él
buen corazón del mortal.`,
`Sin maldad de ningún tipo
el monje se fue a acercar
con seriedad exclamó
“¿Qué viene usted a robar?”
El ladrón saltó del miedo,
justo comenzó a llorar.`,
`“No os preocupeis, vos hermano,
ese error podéis borrar,
te convertirás en monje
y Dios te perdonará”.`,
`El pobre ladrón alegre
al monje se fue a acercar,
de rodillas le pidió:
“me gustaría llevar
esa túnica de monje
de gran gloria y gran piedad”.`,
`Sin reproches le aceptó:
-Ahora debes descansar,
pero antes de dormir
al buen Dios debes orar.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/067.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/068.jpg",
"https://rafaxenakis.neocities.org/codice/068.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El Abad muy indignado
fue directo a castigar
al mísero ladronzuelo
que no para de llorar.
El ladrón arrepentido
pide perdón al abad
con lágrimas en los ojos
por lo que logró robar.`,
`El anciano abad le mira,
qué mirada sin piedad,
y le contesta enojado:
“¡por el robo pagarás!
Has profanado este templo,
que es de Dios su santo hogar
y en su gran nombre esto lo hago:
necio, te encarcelarán.”`,
`El ladrón se va a prisión,
no cesaba de llorar,
él maldijo al monasterio
por encerrarlo sin más,
cada llanto maldiciendo
al cruel, rencoroso abad.`,
`Pasaron algunos años,
todo se hizo realidad:
el monasterio del monje
cae a trozos sin cesar.`,
`La mala fama de ese hombre
se esparce por la ciudad:
tienen muy poco dinero
por la fama del abad
de ser demasiado duro
y de no tener piedad.`,
`El viejo a nuestro Señor
pidió que tenga piedad,
pero el Señor contestó
“lo debiste perdonar”
Entonces el viejo monje
tarde se fue a percatar
que la justicia de Dios
dura se ha de pagar.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/069.jpg",
null,
"https://rafaxenakis.neocities.org/codice/070.jpg",
"https://rafaxenakis.neocities.org/codice/071.jpg",
null,
"https://rafaxenakis.neocities.org/codice/072.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><<silently>><<game "ludusamoris">><</silently>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`En un castillo muy rico,
todos bailan con la dama.
Su vestido de plata brilla
en el jardín cuando pasa,
y su alma de luz brilla,
el sol en sus ojos caza.
La luna en su rostro mira,
esa música en su alma.`,
`Un caballero poeta
ha conquistado su alma,
mira al poeta en silencio,
y su voz calla y se calma,
el viento le trae el suspiro,
¡qué hondo en su pecho se guarda! `,
`Loca noche ellos pasaron,
despertaron en su cama,
él la mira con amor,
ella riendo feliz canta.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/073.jpg",
"https://rafaxenakis.neocities.org/codice/074.jpg",
"https://rafaxenakis.neocities.org/codice/075.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Preciosa en el gran castillo,
siempre estuvo amurallada.
Al lado de ella pasé,
pero sin mirarme estaba.
Ignorando con simple placer,
no me miraba a la cara.
Por ella yo lloré siempre
pero nada le importaba.`,
`Me gustaría mucho
que fueras mi enamorada
Siempre estoy pensando en ti,
te llevo dentro del alma,
mientras late mi corazón,
cuando estoy solo en casa.`,
`Nunca dejo de pensarte,
¡sí, va por ti bella Marta!
Sí, cupido vino a mí,
te lo digo en esta carta.`,
`Pelo dorado, cegante,
mi corazón mal se hallaba.
La presión siento en mi pecho,
sin el querer me dejaba.
Lector, como yo no seas
por siempre amando la nada.
Rechazos te llevarás,
Así por toda la cara.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/081.jpg",
null,
"https://rafaxenakis.neocities.org/codice/082.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Siento un gran amor por ti,
poderoso caballero,
a ti te querría dar
tanto el mundo como el cielo.
Tan perfecto hombre él es
como un perfecto velero.
Porque si estás con él sientes
como si parara el tiempo.`,
`Otros reinos guerra quieren:
la princesa con el dedo,
señala furiosamente,
y manda a su caballero.
La princesa decidida,
pero con notable miedo.`,
`Volveremos a estar juntos,
porque de su amor soy dueño,
empieza la gran batalla
mando a mi soldado, y rezo:
vos mi amado volveras,
no morirás allá lejos.`,
`Vos, mi amado, volverás
que mucho te echo de menos,
que cuando, guerrero, faltas
el tiempo se pasa lento.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/076.jpg",
"https://rafaxenakis.neocities.org/codice/077.jpg",
"https://rafaxenakis.neocities.org/codice/078.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Una joven damisela
siempre expresa su deseo
de algún día llegar a ser
la esposa del gran guerrero.`,
`En las noches ella sueña
con un grandísimo anhelo
que ese guerrero se acerca
con orgullo y con esmero,
y pide su mano bella
para una vida de ensueño.`,
`Un día yendo al mercado,
pensando en su gran secreto,
cuando se encontró a su amor.
Creía estar en un sueño,
pues tan perfecto hombre es,
pensó que era su momento
de interactuar con el.
Se acercó con mucho miedo.`,
`Con su gran voz angelical,
le dijo: “te lo confieso,
que ya no puedo vivir
guardando ese gran deseo”`,
`“No quiero amores”, él dijo,
“vivo para ser guerrero”.
Tras volver la dama a casa
se puso el cielo muy negro,
Cogió un enorme cuchillo
para meterlo en su pecho.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/083.jpg",
null,
"https://rafaxenakis.neocities.org/codice/084.jpg",
null,
"https://rafaxenakis.neocities.org/codice/085.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`A caballo cabalgaba
el noble con maestría,
puestas sus hermosas ropas
que la multitud querría.
Llegando a sus terrenos
una dama allí vería,
tan solo verle la cara
su corazón llenaría.`,
`En ese campo dorado
una guapa campesina:
ella estaba trabajando.
Mira al noble con sonrisa.`,
`Sus dos ojos eran verdes,
al pasto se parecían,
su pelo tenía brillo
que brillaba por el día,
solo le faltaba ropa
pero él se la daría.`,
`Novios se hacen en secreto
y él le escribe mil poesías.
Siempre que estaba con ella,
una sonrisa sentía.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/079.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/080.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`En un gigante castillo,
un apuesto noble había,
que una bonita mañana
a pasear él salía.`,
`Algo cerca del castillo,
un bello campo había.
Contempló lo más hermoso:
de todo sobresalía.
¡Qué hermosura, Dios bendito,
tal hermosa campesina!`,
`-¡Qué cabello tan moreno,
por aquel yo moriría!
¡Qué mirada tan oscura,
por ella yo mataría!
El noble armado de valor
tal halago le decía,
pero la mujer reaccionó
con una mirada muy fría.`,
`Los ojos de esa mujer
en su alma abren heridas
y el noble triste marchó
aunque su alma no quería.
El noble aquel anochecer
como nunca lloraría,
pues sentía haber perdido
a la mujer de su vida.`,
`-Qué pena que no me quieras
tú cruel, fría campesina
Por este amor que yo tengo
yo voy a perder la vida,
¿a dónde te has ido ya?
Estás desaparecida
Mi corazón por tu causa
está con grandes heridas.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/086.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/087.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><<silently>><<game "ludusfortunae">><</silently>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Van hacia la gran Lisboa.
“Capitán, tengo una duda,
¿eso no es una tormenta
que en el noreste se oculta?”
Con furia rompe la noche,
la tormenta es muy oscura,
que daba mucho terror ,
con una fuerza tan dura.`,
`La lucha no se interrumpe,
el viento empuja y murmura,
Azota muy fuerte al barco,
más de una muerte asegura.
Marineros asustados
su vida ponen en duda.
Aferrados solamente
a unas tablas inseguras.`,
`Pobrecitos marineros,
no podrán tener fortuna.
En una costa lejana,
sin comida, una locura,
meses y años pasaran,
hasta una muerte segura.`,
`Un largo tiempo después
ellos pedían ayuda,
pero nadie los vería.
¡Era grande su tortura!`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/088.jpg",
"https://rafaxenakis.neocities.org/codice/102.jpg",
"https://rafaxenakis.neocities.org/codice/101.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Hoy el mar está furioso
las grandes olas asustan.
Chocan olas con el barco,
asegurando gran lucha.
El viento está desatado ,
ha perdido la cordura.
Asustados, los marinos:
‘‘¡debemos pedir ayuda!’’`,
`Esto no pinta ya bien.
El timonel se apresura,
porque si no se dan prisa
acabarán en la tumba.
“Marineros de ese barco,
rezad sin ninguna duda
a María y al Mesías,
que más el agua no suba”.`,
`El barco se hundió en el mar,
solo queda la gran punta
sobresaliendo del agua:
todos están en la tumba.`,
`Cinco años hace de esto
de esa muerte tan injusta
y aún algunos marinos,
haber visto el barco juran,
pero no en profundidades,
sino en las zonas de altura,
ese barco navegando
con cien velas que lo alumbran.`,
`¡Que malísima condena
tan malvada y tan injusta,
ya que para estar así
mejor descansar en tumba!`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/100.jpg",
null,
"https://rafaxenakis.neocities.org/codice/102.jpg",
"https://rafaxenakis.neocities.org/codice/103.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Camino hacia Lisboa,
completando la aventura,
todo el mundo está feliz,
no ven su futura tumba.`,
`Ya se aproximan feroces,
piratas de piel oscura,
provienen del norte de África
sin ningún tipo de duda.
Los berberiscos atacan,
la pelea se murmura.`,
`Toda la tripulación
se mete en una gran lucha,
empieza la gran batalla.
Los marinos, con locura,
pierden contra los piratas.
El capitán no los culpa:
la batalla acaba pronto
la pelea parece absurda.`,
`Algunos están heridos
con heridas muy profundas.
Reclaman la mercancía
al buen capitán que duda,
pero se la acaba dando
por no acabar en la tumba.`,
`Llegan por fin a Lisboa,
a sus tierra se apresuran,
sin apenas mercancía,
se quedan con deudas muchas,
pero se quedaron vivos
por un golpe de Fortuna.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/098.jpg",
null,
"https://rafaxenakis.neocities.org/codice/099.jpg",
null,
"https://rafaxenakis.neocities.org/codice/091.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El mar era muy tranquilo,
mas la velocidad nula,
ya que los vientos contrarios
a Portugal nunca apuntan.
Primeros deben llegar
por ganar una fortuna.`,
`Están perdiendo reservas
y la comida no abunda.
Pero aún dice el capitán:
‘’pasar hambre no es excusa’’
A casa quieren volver
ver a la familia suya.`,
`Más jornadas van pasando,
la vida se vuelve dura,
los marinos cuentan días,
lamentan su suerte injusta,
ya que aquellos marineros
tienen un hambre muy pura.`,
`Muchos días han pasado
de sed y de mucha hambruna.
“Tranquilos, tripulación,
en el cielo nos ayudan
el creador y su madre
de nosotros se ocupan.”`,
`Al fin llegan a Lisboa,
que no fue cosa tan dura,
y, mirando alrededor,
ven que no es la hora justa.
Otros barcos ya llegaron
(los marineros murmullan),
no ha sido muy exitoso,
la ganancia es solo justa.`,
`Es un sabor agridulce
que a los marinos inunda,
por lo menos sí que ha sido
una aventura segura:
a la próxima ya habrá
un poco más de Fortuna.
Gracias dan porque, al final,
no acabaron en la tumba.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/093.jpg",
null,
"https://rafaxenakis.neocities.org/codice/094.jpg",
null,
"https://rafaxenakis.neocities.org/codice/091.jpg",
"https://rafaxenakis.neocities.org/codice/095.jpg",
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Se acercaba ya la niebla,
que parece muy oscura,
y a todos en ese barco
les parecía insegura,
pero dio una sorpresa
buena para la fortuna,
pues esta fea tormenta
al final no fue tan dura.`,
`Una luz tenue alumbró,
el Creador les daba ayuda.
El viento les empujaba,
lo movía como pluma.
El barco bien avanzaba,
de eso no cabía duda.`,
`Llegan intactos allí.
Agradecieron la ayuda.
Era la hora de triunfar
bien y de forma segura.
Era la ciudad, ¡Lisboa!,
feliz ellos la saludan.`,
`Atracaron tan temprano
que parece una locura,
la gente quiere la carga
y el dinero abunda,
los precios están tan altos
que aún no se calcula,
porque el barco fue el primero
que llegó de aguas profundas.`,
`El capitán generoso
repartirá la fortuna:
“Calculen esa ganancia
para las vidas futuras.
Sus sueños serán reales
serán como una aventura”
De ser humildes a ricos
pasan por su gran Fortuna.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/090.jpg",
null,
"https://rafaxenakis.neocities.org/codice/091.jpg",
"https://rafaxenakis.neocities.org/codice/092.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del Cancionero</button>
<button type="button" id="choice-dialogo5">Volver al mapa general del Códice Errante</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tras muchos días de viaje,
hubo una tragedia injusta:
un estallido de rayos
destruye ventas futuras.
El dado que ellos tiraron
no les dio una gran fortuna,
que el cargamento se quema
por un rayo, ¡qué locura!`,
`Derriba el mástil menor,
a todos deja con dudas
y, quemándose el navío,
las sobras son lo que buscan.`,
`Tras un rato de agonía,
la zona está más segura.
Logran apagar el fuego
gracias a bastante ayuda.
Deben reparar el barco
tras una montaña oculta.`,
`Tarde llegan a Lisboa,
es una tragedia absurda.
Otros barcos ya llegaron
con suficiente premura:
de esa forma no vendieron.
El capitán ya se asusta.`,
`Tras esas pérdidas todas,
piensa en su vida futura:
El barco debe vender ,
pues no tiene más fortuna.`,
`Él para pagar sus deudas
toma una decisión dura.
“Tendré que venderlo todo”
La tripulación murmura:
“¿hasta el gran barco perfecto?”
Al capitán de ello culpan:
mas no le queda remedio,
está en pobreza absoluta.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/096.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/091.jpg",
"https://rafaxenakis.neocities.org/codice/097.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "cancionero";
const PASSAGE_2 = "creditos";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cancionero += 1>><</if>><<silently>><<game "mortemapa">><</silently>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/codice12.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Tirar el dado de la Fortuna y afrontar tu destino</button>
<button type="button" id="choice-dialogo5">¡Huir de la Fortuna!</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Hubo un barco portugués,
tan gigantesco que asusta,
con sus bodegas repletas
de bebida, especias puras.
Tan grande era aquella nave
que completo el mar ocupa,
decorado el exterior
de muy bonitas pinturas.`,
`El barco majestuoso
va por la mar insegura,
contra el agitado viento
que al agitarse murmura.
Oraban los marineros
por tener buena fortuna
y para que la gran nave
también con ellos no se hunda.`,
`Todos los marinos rezan
y hasta el capitán murmura:
¡qué todas nubes grises
siempre se queden ocultas!
Al mando un viejo piloto
que repite y que asegura
que, como todo viaje,
depende de la Fortuna.`,
`“Conduce, conduce rápido”,
el capitán lo apresura,
“lleguemos rápido a tierra,
para vender la fortuna”
Pimienta, clavo y canela,
rollos de seda él oculta.`,
`El Sol muestra el nuevo día,
la marina ya madruga.
Pero, a lo lejos, se avista
un cielo de sombra oscura.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/codice/088.jpg",
null,
null,
"https://rafaxenakis.neocities.org/codice/089.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "dado";
const PASSAGE_2 = "cancionero";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El contenido de la carta no te da ninguna confianza. ¿Desde cuándo los proyectos secretos del gobierno son para algo bueno? No quieres verte implicado en ello, sea lo que sea. Así que simplemente arrugas la carta, la tiras a la papelera y siguies con tu vida. ¡Que busquen a otro para su proyecto secreto!`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/229.jpg",
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 1";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Café de Madrid.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Decides ir a la tertulia; te pones tus mejores trapos y decides marchar. Decides gastar dinero en un coche de caballos para poder llegar; quieres dar impresión de ser alguien conocido.
-¿A dónde se dirige? -te dice el cochero
-A la cafetería San Juan, en calle Sacramento.
-De acuerdo, caballero.`,
`De repente te percatas de algo: el cochero echa miradas de perversión a las jóvenes que pasean por aquellas calles; intimidadas agachaban la cabeza de forma sumisa y sutil. Algo que no te parece adecuado, porque tu vida en la Madrid del s XXI es diferente: las mujeres levantarían la cabeza y se enfrentarían al hombre, pero aquí no; ellas son todo lo contrario, ¿es extraño, no?
Y decides enfrentarte a él porque comienza a decirle cosas a una joven bella dama. Pero, de repente, al poder estar más cerca, ves la hermosura de aquella joven: cabello dorado, piel de porcelana como si de un ángel se tratase, y sus ojos, dos enormes zafiros que deslumbraban al pasar. De repente te das cuenta de que es la primera vez que te sucede: te sientes atraído por alguien totalmente diferente, alguien de otra época. ¿Cómo es posible?`,
`El coche de caballos se detiene ante tu destino. Bajas y te acercas con decisión.
Empujas la puerta de la cafetería San Juan, entrando en ella. Inmediatamente, al entrar, se respiraba el olor a café recién hecho, lo que te reconforta mucho. Hueles los cruasanes hechos a mano, escuchas el tintineo de las tazas sonando, ves la tenue luz que entra por las ventanas, acompañada de las lámparas de vela en el techo, las paredes y en las mesas redondas donde se formaban grandes grupos de personas. Se escuchan sus murmullos discutiendo diferentes temas literarios como el Romanticismo.`,
`Se podía apreciar como había señores y señoras que se tomaban su té tranquilamente solos y cómo se tomaban ese tiempo para pensar sus cosas. También había un par de grupos de amigos con ropas humildes que charlaban tomando su té y sus cafés tan tranquilamente. En una mesa había un grupo de estafadores que estafaban con juegos mentales. Todos en esa mesa llevaban una chaqueta de cuero larga y un gorro de copa negro que parecía carbón que casi llegaba al techo. Luego, había unos amigos más adelante, con sus uniformes de trabajo que tenían agujeros. Se estaban tomando un café.`,
`Te fijas en un grupo de escritores que parecía que hablaban de lo que estas buscando, pero no estas preparado para hablar aún, así que te quedas callado en tu mesa para escucharlos.
—¡Como no escuchaste hablar de ese libro, es mundialmente conocido! —exclamó otro alzando ligeramente la voz alarmado.
—No creo que la gente incoherente llegue a entender nunca el verdadero significado del Romanticismo —dijo uno con tono egocéntrico.
Todos se pusieron atentos.`,
`—Un verdadero escritor de este siglo no debe escribir sobre el neoclasicismo, ya que se ha quedado muy anticuado, solo buscando la perfección.
—Yo opino igual, un nuevo escritor no puede escribir como un abuelo.`,
`A continuación, el hombre que estaba al lado del con voz muy grave y resonante dijo:
—Estoy de acuerdo señor, pero hay algo mucho más importante de lo que un escritor moderno no debe escribir, que es sobre la Ilustración. ¡No siempre se debe siempre combatir la ignorancia! ¡Hay otros temas para un escritor!`,
`Te fijas un momento en las mesas de los alrededores, donde se podía apreciar a parejas hablando sobre lo enamorados que estaban. También a otras parejas y sus hijos, cómo jugaban con ellos y como se reían felizmente.`,
`Un hombre de la tertulia, con el pelo blanco y una barba larga dijo:
—Lo más importante que hay que hablar hoy en día es sobre la Edad Media, que estaba llena de pasión por todos lados.`,
`Estás a punto de hablar, pero uno de los estafadores de la mesa de antes salta y dice:
—¿Queréis ganar 10 monedas con solo apostar 5? —dice con voz burlona.
Automáticamente toda la mesa dice que no y se fue el estafador entre risas.`,
`Entonces al fin puedes y dices:
—Todos esos temas son muy interesantes y todos tienen algo en común, que es el sentimiento de este gran siglo.
Se quedaron todos callados por un momento y, después de ese silencio cortante, todos afirmaron que tenías razón.`,
`—Un verdadero escritor romántico tiene que sentir la naturaleza —dijo un hombre de bufanda roja, mientras daba un sorbo a su café.
—No sólo describirla, sino entenderla, vivirla. Tiene que ver un árbol y pensar en su propia tristeza o alegría.
—Sí, como los cuadros de Caspar Friedrich —añadió una mujer que miraba por la ventana—. No pinta solo montañas o bosques. Pinta lo que uno siente al verlos. Soledad,paz,miedo…eso es arte.`,
`—Y la música —dijo un chico con gafas redondas. ¿Cómo puedes escribir si no has escuchado a Beethoven? Sus cuartetos de cuerda, sus sonatas de piano…son pura emoción. Escuchar la Claro de luna te rompe por dentro.
—Oh sí, ese hombre, el gran Ludwig van Beethoven, que buen artista.
—Mi hija ha recibido recibido recientemente una partitura de la sonata Patética y suena de maravilla.`,
`Piensas en cómo participar en esa tertulia, podrías hablar de esa música, y no solo eso, también sobre literatura. Buscas a uno de los camareros y lo llamas.
—Disculpe señor,¿cómo podría entrar en la conversación de los glamurosos señores de aquella mesa?`,
`—¿Para qué quiere participar en dicha disputa, joven?
—Simplemente, dígame algún tipo de información que necesite saber para entrar y cómo hacerlo.
—Bien, suelen venir por aquí, los conozco, y le aseguro que si les demuestras que eres uno más de ellos, te acogerán. Simplemente, muéstrales lo que vales, muchacho.`,
`Tras darle las gracias al camarero, te acercas decidido a la mesa de la tertulia y buscas un sitio para sentarte. Encuentras una silla vacía.
—Caballeros, ¿está esta silla libre?
—Por supuesto.`,
`Te sientas en la silla con ellos en vez de irte, y todos te miran extrañados.
—Ay, ay, estimados caballeros, permítanme presentarme, soy un joven escritor y no he podido evitar escuchar vuestra tertulia. Sería un completo gusto unirme.
—Oh, no creo que te puedas unir, aquí somos refinados y nos gustaría que fuera algo más privado.`,
`—Bueno, en ese caso, os dejaré con ese orden y refinamiento propio del clasicismo —dices con un tono desafiante.
Uno de los señores, esbelto y canoso, se altera.
—¡¿Ha dicho clásico?! Por el amor de Dios, como se atreve…`,
`—Una verdadera porquería, ¿verdad? —dices intentando ser parte de la conversación.
—Completamente, les falta pasión y sufrimiento —enuncia otro de los caballeros en la mesa.`,
`Te han acogido en la conversación, ven que eres como ellos. El camarero se acerca y pregunta:
—¿Todo bien por aquí? —dice mirándote y guiñandote un ojo.
—Por supuesto, esta tertulia es magnífica, y por favor, traiga chocolate con churros para los señores.
El camarero asiente y se va. Tú intentas ser más aún parte de la tertulia.`,
`—Caballeros, ¿han oído hablar sobre Ivanohe?
—¿Te refieres uno de esos ingleses que persiguen a las pobres muchachas por el centro de Madrid?
—No, se refiere a la novela de Walter Scott. Claro que hemos oído sobre ella, es magnifica.
—Sin duda, su protagonista es un personaje único.`,
`Gustas en el grupo, todos te admiran cada vez más por tus formas y conocimientos. Los más mayores de pronto hablan entre sí. Después, uno de ellos te dice:
—Hemos decidido que si escribes un texto propio original de calidad y nos lo traes, podrás entrar en la tertulia, pero antes invita a otra ronda de churros con chocolate y un café.
—¡Claro! Será un placer.`,
`Te levantas y sales de la cafetería con alegría. Ahora solo tienes que escribir ese texto para impresionarlos. ¿Será mejor un poema? ¿Un buen relato?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/001.jpg",
"https://rafaxenakis.neocities.org/xixhoy/002.jpg",
"https://rafaxenakis.neocities.org/xixhoy/003.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/004.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/005.jpg",
"https://rafaxenakis.neocities.org/xixhoy/006.jpg",
"https://rafaxenakis.neocities.org/xixhoy/007.jpg",
"https://rafaxenakis.neocities.org/xixhoy/008.jpg",
"https://rafaxenakis.neocities.org/xixhoy/009.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/010.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/011.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/012.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/013.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/014.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $cafeteria += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Café de Madrid.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Entras al Café San Juan de nuevo. Buscas al señor de barba blanca y, una vez lo ves, vas directo a su mesa, donde están todos reunidos, debatiendo sobre literatura. Te acercas con una sonrisa y con el poema en tus manos. Escuchas cómo comentan sobre La canción del pirata de Espronceda.
—Ese Espronceda es un verdadero rebelde; en La canción del pirata muestra su espíritu libre y su osadía propia de un bandido marino -afirma el señor de barba blanca.`,
`—No cabe duda, aunque prefiero El Canto del Cosaco. Me transmite más fuerza —responde, reflexivo, el joven con gafas.
Te acercas más. Todos te miran: algunos de ellos sonríen, otros no están muy convencidos, pero tú estás dispuesto a recitar tu poema buscando la aprobación de los sabios tertulianos.
—Bueno, bueno, bueno… pero si el chico interesante de la otra vez ha vuelto —dice la escritora, mirándote de arriba a abajo con una mirada coqueta.`,
`—Señoras y señores, ¿cómo se encuentran? La verdad es que esos churros parecen deliciosos, espero que los estén disfrutando. Veréis, traigo el poema que me reclamaron ustedes; si no es molestia, estaría encantado de mostrárselo -dices confiado y con un tono cercano a ellos.
Ahora todo el mundo tiene una sonrisa y sus rostros muestran su convencimiento.
—Adelante, joven, somos todo oídos -te dice el señor de barba blanca.`,
`Tú, al ver la reacción de los tertulianos, te vuelves más seguro y recitas el poema. Agarras el papel firmemente, como si se fundiera entre tus dedos. Estás completamente metido en el poema; sientes cada palabra, cada rima. Cada vez lo recitas mejor: tus manos dejan de sudar, tus piernas no tiemblan… porque se te va olvidando que se lo estás leyendo a ellos. Cuando terminas, los miras y todos están interesados en él, así que, mientras esperas alguna respuesta, ellos cuchichean algo que intentas escuchar, pero no consigues oír debido al ruido de la cafetería.`,
`—Me has hecho sentir cosas que hacía mucho tiempo que no sentía, chico. Un trabajo admirable —dice emocionado el señor de barba blanca.
—Gracias, gracias, no creo que sea para tanto… —dices mientras te pones rojo.
—Vamos, chico, no seas tan modesto. Tienes un gran talento; bienvenido a la tertulia —te responde la escritora.
Lo has conseguido: estás en la tertulia.`,
`Te ofrecen sentarte entre el hombre de barba blanca y otro de ellos. Aprovechas que todos están hablando y, en un pequeño susurro, le explicas al hombre de barba blanca que necesitas una carta de recomendación.
—Disculpe, me gustaría una carta blanca para el director de la Imprenta Siglo XIX, y me preguntaba si usted podría ayudarme —le sugieres con un toque de respeto y timidez.
—Por supuesto que sí, joven. Yo conozco al director, es íntimo amigo mío, y tu poema merece publicarse —responde sin ningún inconveniente.
—Muchísimas gracias, señor —dices eufórico.`,
`Sin darte ninguna respuesta, saca un papel y una de sus plumas de su macuto y empieza a escribir. Lo observas en silencio.
—Tenga —te dice.
—Muchísimas gracias, me acaba de alegrar el día. Me ha costado mucha dedicación. Ya iré más seguro a la imprenta con la carta, muchísimo más seguro —le dices con ilusión, pero sin intensidad.
Te guardas la carta en el bolsillo interior de tu chaqueta.
—¡Una ronda de churros con chocolate para la mesa, camarero! A esta invito yo —gritas al camarero.`,
`Seguís hablando animadamente. El señor de la barba blanca está a tu lado. Es increíble el temor que te daba al principio con su seriedad y cómo ahora puedes ver los restos de chocolate incrustados en la barba. Es ridículo para un hombre de tal calibre.
—Y bueno, chico, ¿has leído alguna obra de Espronceda últimamente? —te pregunta la escritora.
-Absolutamente. El Estudiante de Salamanca, qué gran historia -respondes, siendo curiosamente de las pocas de este autor que no has leído.`,
`Finalmente, te levantas y te despides de todos. Sales de la cafetería, pensando que seguramente no volverás a verlos. Pero ya tienes tu carta de recomendación para el editor`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/004.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/037.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/035.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/039.jpg",
"https://rafaxenakis.neocities.org/xixhoy/014.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $carta += 1>><</if>>
<<set $imprenta = 0>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Por el retiro.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<<if $niñoperiodico is 0>>
<button type="button" id="choice-mozo">
Comprar un periódico al niño que está vendiéndolos
</button>
<</if>>
<<if $jovenlibro is 0>>
<button type="button" id="choice-monje">
Acercarse a un joven que está leyendo un libro a la sombra de un árbol
</button>
<</if>>
<button type="button" id="choice-juglar">
Volver al mapa general de Madrid
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Vas caminando tranquilamente entre la multitud del parque del Retiro, con la brisa apasionante del aire y la cabeza llena de preguntas sin resolver. En el parque encuentran muchas personas, disfrutando de la preciosa y cuidada naturaleza. Había gente de todo tipo, entre personas más pobres y personas más ricas. Las personas ricas llevaban vestidos que lucían como oro y trajes que parecían diamantes, con sus sombreros de copa, mientras que las personas más pobres suelen ir con su uniforme de trabajo.`,
`Veías cómo los vagabundos te perseguían muertos de hambre y pidiendo limosna. Había una banda formada por un acordeón, violín y una flauta. También había una gran multitud entre esa banda y les tiraban monedas de plata relucientes. Esa música es una de las maravillas de la vida, una onda sonora que se cuela por tus oídos y te hace sentir.`,
`Te emocionas al escucharla, te duele. Te das cuenta de cómo una letra de canción te hace querer enterrar los pies en la húmeda tierra y hundirte para siempre, no despertar, cómo puede tener un poder tan grande como para hacerte llorar en un parque, en otra época a la que no perteneces.
Más adelante estaba el estanque del parque, donde los caballeros solían cortejar a las damas con su paraguas hecho de seda reluciente. Estás absorto mirando todo con absoluta admiración, devoción y adoración y con el olor a tierra húmeda, paseando entre la gente, esas mismas que miran con ansias de liberarse de nudos invisibles, los nudos de la sociedad.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/018.jpg",
"https://rafaxenakis.neocities.org/xixhoy/015.jpg",
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "3.2 Retiro (niño periódico)";
const PASSAGE_MONJE = "3.3 Retiro (joven libro)";
const PASSAGE_JUGLAR = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
if (btnMozo) {
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
}
if (btnMonje) {
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
}
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Mientras paseas, se te acerca un niño con voz frágil y quebrada y te dice dijo:
—Señor, ¿le gustaría comprar el periódico? Es solo una moneda.
Como me dio pena le respondí:
—Claro, toma dos monedas.
Él te responde “muchas gracias”, mientras se quita la gorra y se marcha.`,
`Enseguida te poner a leerlo. En la primera página no pone muchas cosas interesantes, pero en la segunda lees con más atención y ves que hay mucha información sobre unos escritores muy importantes y famosos de Madrid; enseguida te entra mucha curiosidad y quieres conocerlos, pero no sabes dónde ni cómo, por lo que sigues leyendo el periódico para ver si pone alguna información más. Ves un anuncio sobre un piso en alquiler: Calle de la Merced, número 25. Lo anotas y sigues tu camino.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/040.jpg",
"https://rafaxenakis.neocities.org/xixhoy/042.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $niñoperiodico += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Pasa un rato y no encuentras ninguna pista, hasta que ves a un joven sentado en la sombra de un árbol leyendo un libro, y te parece interesante. El chico lleva una ropa no muy elegante, pero tampoco muy sucia ni de muy mala calidad; va vestido con una camisa y chaqueta y un pantalón marrón crema. Piensas que es alguien con apariencia de esclavo y mente de rey, alguien que solo encuentra paz entre las páginas de un libro, que es su mundo y la furia de su ser. Con intriga te acercas para preguntarle sobre su libro.`,
`—Buenas tardes, joven, ¿cómo estás? —le preguntas
—Buenas, señor, no lo conozco, ¿qué ocurre? —te responde asustado
—No, aún no lo conozco, pero me gustaría hacerlo —le dices con un tono un poco de risa—. Solo me acerqué para preguntarle sobre su libro. ¿Qué es lo que usted lee?
—La historia del arte, porque todo lo que tenemos es gracias a lo que fuimos un día —dice el joven muchacho`,
`Él te habla sobre el libro con gran interés; te cuenta sobre qué va y quién lo escribió, añadiendo un poco de la biografía del autor.
—Se le ve con mucha sabiduría, usted sabe mucho sobre la escritura. ¿A qué se quiere dedicar en un futuro? —le preguntas
—Me gustaría ser un gran escritor como el gran José de Espronceda. Es mi modelo en la vida.
En ese momento le dices:
—¿Tú sabrías dónde puedo encontrar a algunos de los escritores más importantes de Madrid?`,
`Él te dice:
—Sí, claro; normalmente todas las mañanas, desde las 11:30 hasta las 13:30, hay una tertulia literaria en la cafetería San Juan, en calle Sacramento. Van al café de la esquina que hay pasando el parque y la farmacia. Allí todos hablan sobre sus novelas y poemas que ellos mismos han escrito, mientras se toman su café, cerveza o su chocolate con churros. Yo creo que si vas allí ahora mismo podrías encontrarlos, pero eso sí, ya son las 12:20; ve y date prisa si vas a querer verlos hoy.
—Gracias, joven. Seguiré su consejo.`,
`Te despides, pero antes de marchar te parcatas de algo que pone en el libro entre sus manos “impreso en Imprenta S.XIX, calle Recoletos”. Una información importante, sin duda. Quizás ahí puedan imprimir el texto de tu misión. Deberías empezar visitando la editorial`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/034.jpg",
"https://rafaxenakis.neocities.org/xixhoy/033.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $jovenlibro += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Huellas del pasado.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de caminar una vez más por las calles de Madrid, llegas a la imprenta que ponía en la dirección del libro. La fachada era vacía y sobria. Entras para ver si te pueden imprimir el texto y así seguir con tu misión. Abres la puerta y entras.`,
`Al entrar, el olor a tinta traspasa tus fosas nasales tan fuerte como el de un puro; el calor de las prensas es abrasado y el ruido del rodillo es tan intenso que más parece una fábrica que una biblioteca. Hay también por el suelo cajas de tamaño pequeño y grandes, que estaban la mayoría llenas de polvo. Se escucha a los trabajadores gritar con una voz grave y resonante cosas como “dame la prueba”, “trae la tinta”. Llevan delantales manchados de tinta, al igual que las manos y el sitio donde operaban todo. Hay alguna grieta en las columnas; de fondo se escucha el sonido de las teclas de metal encajar y las planchas gigantes aplastando... y trabajadores de fondo quejándose por el cansado trabajo.`,
`De pronto, se acerca uno de los trabajadores.
—¿Qué necesita? ¿Acaso no ves que estamos ocupados? —empieza la conversación el trabajador.
—Buenas, soy un joven escritor —le respondes.
—¿Y qué es lo que quieres? —te pregunta.
—Necesito que me editéis este texto, por favor —le pides.
—A ver, déjame eso —te quita la hoja de las manos.`,
`Empieza a leer la hoja con atención mientras tú esperas con nerviosismo. Al rato termina de leer.
—¿Qué te parece?
—Está muy bien, joven. ¿Pero tienes la recomendación de un buen escritor? —te responde.
—Mmm, no, no la tengo —le respondes con vergüenza.
—Entonces, es difícil que el director te haga caso. Pero ahí está su puerta, prueba si quieres.`,
`Le das las gracias al trabajador y entras al despacho del director. Analizas el despacho unos momentos, antes de que entrara el director: hay una mesa de madera oscura tallada a la perfección, con unas estanterías del mismo tipo de diseño. En la estantería hay portadas de libros recientes y cartas un poco más escondidas con sellos de lacre que, por lo poco que puedes ver, eran de deudas con una gran tarifa. Junto a la estantería había un gran reloj que no tenía la hora correcta y un cartel grande de normas.`,
`Antes de que pudiera ver más, entró el editor y le dices:
—Hola, buenas, señor, ¿podría editar este texto, si no es mucha molestia?
Le das un poema que improvisaste hace unas horas, de camino a la editorial. Él, con una cara de tener pocos amigos y frustrado, te dice:
—No voy a perder el tiempo con idioteces; si usted quiere editarlo, traiga una recomendación firmada con un sello de lacre de un escritor que sea realmente conocido.
—Pero, por favor, ¿por qué no lee algo de lo que he escrito?`,
`Le intentas dar uno de los folios.
—¿Qué es ese papelucho pobre? ¿Crees que así te ganarás tu librito? Deja de jugar a que eres famoso y lárgate, fracasado.
Con lágrimas en los ojos y sobresaltado, decides no irte si contestar antes.
—Este “papelucho” le hará cambiar de opinión… —dices con una media sonrisa, secándote las lágrimas, desafiante.`,
`No tienes otra opción que marcharte con una tremenda decepción y el olor terrible de la tinta barata, pero con el plan de conseguir la recomendación. Sabes que tienes que ir a la tertulia a conseguir la recomendación de un buen escritor, no hay otro remedio.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/032.jpg",
"https://rafaxenakis.neocities.org/xixhoy/019.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/043.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/020.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $imprenta += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<<if $niñoperiodico is 1>>
<button type="button" id="choice-mozo">
¡Esa es la Calle de la Marced! Es la calle que viste en el periódico, en el anuncio del piso en alquiler.
</button>
<</if>>
<button type="button" id="choice-juglar">
Volver al mapa general de Madrid
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Vas a dar un paseo por las calles de la zona; si te paras a observar, puedes ver cómo todas las calles están repletas de coches de caballos, lo que hace que huela bastante mal. A tu alrededor vas viendo a las damas pasear, a los obreros trabajar y a los comerciantes intentando hacer ganancias para ellos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/031.jpg"
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "5.2 Callejuela piso";
const PASSAGE_JUGLAR = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
if (btnMozo) {
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
}
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cuando vas caminando un poco más, te llega el olor del pan recién hecho de la panadería. Justo al lado se encuentra un cartel en el que se cita “Se alquila apartamento”. Entonces, antes de que entre en el portal, le dices, con voz amable:
-Disculpe, caballero, ¿sabe quién es el que alquila el apartamento?
Él, un chico muy amable, te dice:
—Sí; es una señora algo mayor del segundo; si está interesado, le puedo llevar a su puerta.
Tú accedes y le sigues hasta la puerta. Una vez enfrente de la puerta, el señor te dice que tengas cuidado: es una señora algo soberbia, antipática y muy preguntona.`,
`Decides llamar a la puerta. Cuando lo haces, una anciana con ropa humilde y un delantal lleno de harina te abre la puerta.
-Disculpe por interrumpir su tarde, señora; querría preguntarle por el apartamento.
—Hola, ¿usted está interesado en alquilarlo?
—Sí; también he visto el precio y la verdad es que estoy dispuesto a pagarlo.
—Perfecto, señor; bueno, se pagaría eso cada mes.`,
` —Sí; ¿le importaría a usted si le pagó tres meses por adelantado?
-No, pero, si no le molesta, ¿por qué sería que quiere usted pagarlos por adelantado?
—Es por un tema privado y no no es por ninguna molestia es por prisa y para que no se me pase, ya que me despisto y se me olvida siempre.
—Ah, vale; bueno, sin problema.
La señora, sorprendida y algo molesta por tu impaciencia, te dice que sí, que le parece bien; así que tú sacas el maletín y le entregas todo el dinero que ella te ha dicho. Ella termina de abrir la puerta y te dice:
—Entra, chaval, que no muerdo.`,
`Al entrar al apartamento, ves que es humilde pero digno. Las paredes están con algo de humedad, pero te asegura que lo arreglarán. Te enseña el cuarto y la cama de hierro, el salón con su baúl la mesa y las sillas de maderas y lo mas bonito es la ventana de tu cuarto que da al patio. Después de pagarle y que te dé las llaves, te echas en la cama. Abres uno de los cajones de la mesita de noche y te encuentras una nota escrita: es de los antiguos inquilinos, los que se marcharon. Descubres que has alquilado una casa donde, por las noches, se escuchan ruidos insoportables; golpes de ventanas, aun estando cerradas; ratas en el sótano (el cual la dueña no te enseñó)… La lees y te echas a reír. Cierras los ojos y te duermes enseguida.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/027.jpg",
"https://rafaxenakis.neocities.org/xixhoy/030.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/023.jpg",
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $piso += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Huellas del pasado.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Coges rápidamente el poema</button>
<button type="button" id="choice-dialogo5">Dejas el poema donde está</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Vas caminando hacia la imprenta por segunda vez, pero esta vez con la dichosa carta.
Caminas por la calle, orgulloso de tener la recomendación, aunque el olor de las calles te dificulta respirar tranquilo. Todavía no te acostumbras al desagradable olor. Observas las familias un día cualquiera: las bellas damas con su vestido de copa elegante, los caballeros con traje oscuro y sombrero de copa. Recorres Recoletos y entras con decisión a la imprenta.`,
`Sientes de nuevo el calor sofocante de aquellas prensas enormes, y no puede faltar ese ruido intenso y molesto. El olor a tinta y el calor de las prensas se te hacen repetitivos. Se escuchan voces de los trabajadores: “¡Prueba!”. Los trabajadores iban iguales que la otra vez, manchados enteros de tinta negra como un cuervo, y al lado las cajoneras llenas de todo tipo de letras, de minúsculas a mayúsculas, o signos de interrogación de todo tipo. Algunos delantales manchados de tinta están en el suelo, preparados para lavar.`,
`Después de volver a observar el entorno, le echas valor para preguntar. Al acercarte, no está el mismo chico de la otra vez con voz aguda y amable; hay un señor de 1,90 aproximadamente, grande y musculoso, con voz muy grave.
—Buenas tardes, buen señor. ¿Podría pasar al despacho del director, si es tan amable?
Él te responde con una cara no muy convencido y te dice:
—Sí, ¿pero quién eres?
—Soy un simple escritor de este gran siglo que quiere mostrarle un poema al director.`,
`A continuación, te acompaña al despacho, pero sigue con esa cara de asco y desprecio.
Al entrar al despacho, el director está ordenando unas cartas y te dice:
—¿Otra vez tú? Por favor, sé rápido, tengo algunas cosas que hacer —lo dice con una voz muy cansada.
—Traigo la carta de recomendación. Si no sería mucha molestia, era para poder ver si la podía leer.
A lo que él te contesta:
—Sí, claro, por supuesto.`,
`Lee la carta con atención y aprueba la recomendación. Segundos después te dice:
—Vaya, es un gran amigo mío —lo dice con un tono de aprobación.
—¿Entonces qué?
Al terminar de leerla, el director te confirma que es de un gran amigo y que acepta publicar tu poema en una revista literaria mensual. Le entregas el poema y le echa un vistazo. Parece que le agrada, pero no dice nada. Lo guarda junto a otros y te dice:
—Si no te importa, ¿me ayudarías a ordenar estas cartas?`,
`Le dices que sí y os ponéis a ordenar. Mientras ordenas, ves una hoja de papel que te llama mucho la atención. Tiene por título “Manchester 1839-2089”, de un autor llamado Walter Scofield. ¡Qué título tan raro! Mientras el director está ordenando las cartas del otro cajón, intentas leerla un poco por encima, pero es arriesgado. ¿Qué deberías hacer? ¿Guardarte la hoja? Si te pilla llevándote algo que no es tuyo, lo mismo decide no publicarte el poema. Entonces tu misión fracasaría.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/032.jpg",
"https://rafaxenakis.neocities.org/xixhoy/024.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/020.jpg",
"https://rafaxenakis.neocities.org/xixhoy/021.jpg",
"https://rafaxenakis.neocities.org/xixhoy/021.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "6.2 Imprenta (segunda vez, coges el poema)";
const PASSAGE_2 = "6.3 X Imprenta (segunda vez, no coges el poema)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Te da el tiempo justo para poder esconder la hoja antes de que el director se dé la vuelta.
Al terminar de ayudarle, le dices que muchas gracias por todo. Él te lo agradece también y sales del despacho satisfecho por lo que has encontrado.`,
`Te sientas en un bordillo y comienzas a leerlo más concentrado. Es un poema, pero no es un poema cualquiera. Lo miras con atención y contiene palabras más modernas de lo normal, aunque está en inglés. Lo vas traduciendo mentalmente.`,
`Un sueño yo tuve anoche
que a mi mente aún acecha,
un sueño tan doloroso
que transformará la Tierra
Siento un murmullo en el pecho
que crece como marea.
Nace en mí una certeza
de un mundo que se acelera.`,
`Soy un poeta que espera
una misteriosa puerta.
Se alzan máquinas al aire
que susurran a la Tierra.
Un río lleno de chispas
une a todos sin barrera.
Mis manos tocan raíces
que laten con vida nueva.`,
`El mundo es como una torre
que gira bajo una estrella.
Los relojes tiemblan todos
cuando la nueva era llega.
Yo, poeta muchas veces,
siento que mi mente vuela,
donde la palabra viaja,
soñando calles abiertas.`,
`Como un haz de luz yo paso
casi gritando, ¡me quema!
Quizás no pueda aguantarlo,
duele como si muriera .
Me llaman luz ,aunque otros
ni se vuelven, aceleran
por no llegar a sufrir
el tormento de esta Tierra.`,
`Y, aunque siento que te sueño,
si tan siquiera pudiera
recordar lo que yo veo.
¿Por qué mi enferma conciencia
ya no puede recordarlo?`,
`¿Por esa brutal tormenta
de las bombas y cuerpos
que caen bajo las estrellas,
formando un manto de rosas
marchitas, de rosas negras
como símbolos de muerte
y lágrimas verdaderas?`,
`¿Y esas metáforas modernas como “se alzan máquinas al aire”, “un río lleno de chispas”, brutal tormenta de las bombas”? ¿Lo ha podido escribir alguien de 1839? ¿Hay otro viajero en el tiempo? ¿Y se dedica a hacer poemas en Manchester, en 1839, poniendo 2089 en el título? ¿Deberías avisar a los del proyecto de que hay un posible viajero del tiempo desconocido? Quizás no tenga importancia. Consideras que es mejor pensarlo un poco.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/028.jpg",
"https://rafaxenakis.neocities.org/xixhoy/044.jpg",
null,
null,
null,
null,
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $publicado += 1>><</if>>
<<if visited() == 1>><<set $poemaviajero += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Decides dejar el poema donde está. Al fin y al cabo, ¿para qué poner en peligro la misión por un poema peculiar? No quieres que el director de la imprenta sospeche de ti y decida no publicar tu texto. Te despides y sales de la imprenta, feliz por haber cumplido la parte más difícil de tu misión.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/021.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $publicado += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Escritura romántica 2.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Ver el mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Lo ves todo borroso, con algún que otro destello azul, un pequeño temblor en tu cuerpo...
Apareces en una casa abandonada y en ruinas. Hay piedras y trozos de madera tirados en el suelo, los tablones llenos de humedad, e incluso algunos rotos. Esperas que la luz azul a tu alrededor se vaya cuanto antes, porque no quieres que nadie la vea. Piensas que es imposible que haya alguien ahí debido al aspecto del lugar.`,
`¡Espera! Esa sombra que ves en el suelo… ¿es de personas? Eso sí, pequeñitas por el tamaño. Miras hacia arriba para ver la ventana, y hay dos niños. Están asombrados, con la boca abierta, sin pestañear y sin decir ni una palabra.`,
`Se ven pobres, están sucios y su ropa está rota. Al verlos, piensas que, por su aspecto, vienen de un lugar humilde y que no tendrán más de cinco o seis años.
—Hola, chicos, ¿os habéis perdido? —preguntas preocupado desde lejos.
Ellos se van corriendo. ¿Habrán visto la fuerte luz? Decides no darle más vueltas. Total, sus padres no creerán la historia tan extraña que les puedan contar.`,
`Aprovechas para cambiarte la ropa de protección por el traje de la época en la que te encuentras, que llevas en tu maletín. En un espejo agrietado que ves en la casa, te miras y te sientes orgulloso porque has conseguido parecerte a uno de ellos. Te pones en camino al centro de la ciudad, ya que, al fijarte más en el paisaje, te das cuenta de que estás en las afueras.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/025.jpg",
"https://rafaxenakis.neocities.org/xixhoy/017.jpeg",
null,
"https://rafaxenakis.neocities.org/xixhoy/041.jpeg",
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<set $poema = 0>>
<<set $niñoperiodico = 0>>
<<set $jovenlibro = 0>>
<<set $carta = 0>>
<<set $poemaviajero = 0>>
<<set $publicado = 0>>
<<set $cafeteria = 0>>
<<set $miedo = 0>>
<<set $piso = 0>>
<<set $imprenta = 0>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Te dejar llevar por el brillo azul</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tras tres días sin descanso, buscando y caminando sin parar, llega tu momento de vuelta. Estás muy orgulloso de haber conseguido publicar tu poema y con algo de nervios por saber si se reflejará en el 2025. Por otro lado, te sientes cansado y te pesan hasta las piernas. Tienes que ir al edificio por el cual apareciste en el siglo XIX, para que no te vea nadie. En tu camino, piensas en todo lo que has vivido y te inunda un mar de dudas sobre el poema tan extraño que encontraste. ¿Realmente lo ha escrito un viajero del tiempo como tú? Puede que no llegues a saber nunca`,
`Al inicio de tu trayecto encuentras a muchas personas, pero, a medida que avanzas, hay cada vez menos. Ves cómo, poco a poco, el cielo se oscurece. Aunque ha sido una corta estancia en el pasado, piensas que la vas a extrañar. Es todo tan tranquilo… y ver a los niños jugando y no con pantallas te hace tan feliz.`,
`Pero… ¡corre! Ya son las 18:41. Te quedan diez minutos para volver al presente. Vuelves a las afueras de Madrid.`,
`Por suerte, ya estás en la casa abandonada, así que te empiezas a cambiar rápido. Te pones la ropa de seguridad.
Llegas al sitio que te indicaron para tu vuelta al 2025.
—Por fin mi regreso… ¿qué será del poema que he publicado? ¿Lo podré volver a leer en 2025? —te preguntas.`,
`Sientes un fuerte viento. Empiezas a notar el pequeño terremoto y a ver los destellos azules, pero no te asustas, ya que sabes que es parte del proceso. Es el momento de decir adiós al pasado y dar la bienvenida a otro capítulo.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/027.jpg",
"https://rafaxenakis.neocities.org/xixhoy/026.jpg",
"https://rafaxenakis.neocities.org/xixhoy/029.jpg",
"https://rafaxenakis.neocities.org/xixhoy/041.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/025.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "16.4 Despacho William Salazar (no le llevas el poema, solo te felicita). Con final";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Te dejar llevar por el brillo azul</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tras tres días sin descanso, buscando y caminando sin parar, llega tu momento de vuelta. Estás muy orgulloso de haber conseguido publicar tu poema y con algo de nervios por saber si se reflejará en el 2025. Por otro lado, te sientes cansado y te pesan hasta las piernas. Tienes que ir al edificio por el cual apareciste en el siglo XIX, para que no te vea nadie. En tu camino, piensas en todo lo que has vivido y te inunda un mar de dudas sobre el poema tan extraño que has encontrado. ¿Será realmente un poema de un viajero en el tiempo? ¿Qué pensará William Salazar, el director del proyecto, cuando se lo enseñes?`,
`Al inicio de tu trayecto encuentras a muchas personas, pero, a medida que avanzas, hay cada vez menos. Ves cómo, poco a poco, el cielo se oscurece. Aunque ha sido una corta estancia en el pasado, piensas que la vas a extrañar. Es todo tan tranquilo… y ver a los niños jugando y no con pantallas te hace tan feliz.`,
`Pero… ¡corre! Ya son las 18:41. Te quedan diez minutos para volver al presente. Vuelves a las afueras de Madrid.`,
`Por suerte, ya estás en la casa abandonada, así que te empiezas a cambiar rápido. Te pones la ropa de seguridad.
Llegas al sitio que te indicaron para tu vuelta al 2025.
—Por fin mi regreso… ¿qué será del poema que he publicado? ¿Lo podré volver a leer en 2025? —te preguntas.`,
`Sientes un fuerte viento. Empiezas a notar el pequeño terremoto y a ver los destellos azules, pero no te asustas, ya que sabes que es parte del proceso. Es el momento de decir adiós al pasado y dar la bienvenida a otro capítulo.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/027.jpg",
"https://rafaxenakis.neocities.org/xixhoy/026.jpg",
"https://rafaxenakis.neocities.org/xixhoy/029.jpg",
"https://rafaxenakis.neocities.org/xixhoy/041.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/025.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "16.1 Despacho William Salazar (segunda misión)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Sala de Máquinas.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Cerrar los ojos y sumergirte en el brillo azul de la máquina del tiempo</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Cruzas la puerta que oculta todo atraviesas la puerta que oculta todo. Se acercan lo que parecen ser dos científicos. Uno de ellos, llamado Pablo, parece ser el cabecilla. La primera pregunta que hace te deja desconcertado.
—Dime tres escritores famosos del S. XIX.
A lo que tu respondes
—¿Cómo dice, señor?
A lo que él te responde con voz soberana.
—¡Chaval no soy de repetir las cosas dos veces! —dice con voz imponente.`,
`Pero justo le interrumpe la otra científica, de nombre María, que le dice:
—Pablo, deja al chico en paz. Ya ha superado las pruebas.
Maria se acerca ti y dice
—Bien, acompáñame hasta la máquina del tiempo.`,
`Avanzas hasta llegar al centro de la sala. Solo te puedes fijar en la cantidad de maquinaria e inventos que hay creados.
—Oye, ¿qué se supone que es el aro ese de ahí?
A la que ella te responde:
—¿Eso? Eso va a ser tu vuelo al siglo XIX.`,
`Tus ojos se deslumbran por culpa de la máquina del tiempo que permanece en el centro de todo el laboratorio. Tiene forma circular, como un aro gigantesco. El científico Pablo, el inventor de todo, te saluda y te da la ropa de protección que te tienes que poner para el viaje al siglo XIX. Además, te entrega un maletín con ropa de la época. Hay chaquetas, camisas, sombreros, incluso un bastón. Vas al baño y te pones la ropa para el viaje.
Sales del baño y la máquina ya está lista. Cuando Pablo la enciende, empieza a saltar chispas de la máquina, hasta que se forma como una especie de portal con una luz cegadora.`,
`—Lo hemos conseguido! —dice Pablo emocionado.
—Todos estos años de duro trabajo han valido la pena —afirma María con orgullo.
Casi que no puedes abrir los ojos debido a la capa de luz que desprende la máquina. Estás nervioso y no sabes ni qué decir, solo quieres respirar hondo y tranquilizarte. No estás cómodo y quieres aclarar tus dudas.`,
`Te acercas a María. Le comienzas a preguntar muchas cosas:
—¿Voy a sobrevivir al viaje? ¿Me quedaré allí atrapado?
—Tranquilo todo está controlado —responde María.
—¿Y cómo debo actuar? ¿Me mandaréis mensajes?
—¡Cierto! Se me olvido decirte que no puedes llevar ningún aparato, ni puedes recibir mensajes —te aclara María.
—¿Como que no puedo? ¿Cómo me comunico si no tengo ningún aparato? —preguntas nervioso.
—Tendrás que valerte por ti mismo. Para eso has pasado tantas pruebas. Has demostrado ser alguien con conocimientos y criterio. Te irá bien.`,
`—Eso espero.
—Por cierto, tienes tres días para completar el viaje. Después se activará automáticamente el regreso, estés donde estés. Hemos buscado una localización apartada para que no llames la atención apareciendo en medio de un brillo azul. Intenta ser discreto también a la vuelta. Lo mejor es que, justo cuando se cumplan las 72 horas, estés en el mismo sitio en el que vas a aparecer.
—De acuerdo.`,
`Entras en la máquina. Tras unos momentos todo a tu alrededor se llena de una luz azul. Sientes que tu visión y tu oído se distorsionan. ¿Esto es lo que se siente al viajar en el tiempo?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/205.jpg",
"https://rafaxenakis.neocities.org/xixhoy/205.jpg",
"https://rafaxenakis.neocities.org/xixhoy/219.jpg",
"https://rafaxenakis.neocities.org/xixhoy/204.jpg",
"https://rafaxenakis.neocities.org/xixhoy/203.jpg",
"https://rafaxenakis.neocities.org/xixhoy/220.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/221.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "7. Llegada a Madrid";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Sala de Máquinas.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Aceptas la misión que te propone el director del proyecto</button>
<button type="button" id="choice-dialogo5">No aceptas la misión</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Entras al despacho del director. Él estaba dentro. El despacho es un sitio muy serio e impresionante para ti. Tiene estanterías con muchos informes, una caja fuerte empotrada en la pared y, encima de la mesa del director, hay una placa de metal que pone: “Proyecto XIX Hoy”.
El director es un hombre de unos cincuenta años, pelo canoso, gafas y traje oscuroe. Te da miedo su presencia. Te lanza una mirada y te hace una seña para que entres.`,
`—¡Enhorabuena! Has aprobado el examen sobre el siglo XIX. Siéntate, por favor.
Te sientas. Estás un poco nervioso.
—Gracias.
—Soy William Salazar, el director del proyecto.
—Encantado.
—Te lo voy a explicar claro: el proyecto “XIX Hoy” no es solo estudiar historia. Tenemos una tecnología que permite viajar en el tiempo. Funciona, pero es peligrosa. Por eso casi nadie lo sabe.`,
`Lo miras sorprendido, sin decir nada.
—Queremos comprobar qué efectos produce alterar el pasado. Queremos empezar por algo pequeño, que no pueda cambiar la historia.
Se para un momento y te dice muy serio.
—Tu primera misión es ir a Madrid, en pleno siglo XIX. Allí vas a intentar publicar un pequeño texto en una gaceta o revista literaria. Luego regresas. Solo eso. El objetivo es medir qué cambia en el presente.`,
`—¿Y qué condiciones tiene el viaje? ¿Hay alguna norma que tenga que cumplir?
—No puedes llevar tecnología, no puedes hablar del futuro, no cambies nada visible y tendrás una historia de tapadera: dirás que eres un joven escritor. ¿Aceptas el reto?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/215.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "10.2 Despacho William Salazar (primera misión, aceptas)";
const PASSAGE_2 = "33. Despacho William Salazar (primera misión, no aceptas). Con final";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa del sótano del Ministerio de Ciencia</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`—Lo acepto, estoy listo.`,
`El director abre un cajón y saca una acreditación. Es como una tarjeta metálica, con tu nombre, un chip brillante y el número XIX-03 en rojo. Pesa bastante y parece muy importante.
—Con todo esto entrarás en el laboratorio subterráneo y en la sala de viajes. Es única, no la pierdas.
Coges la acreditación con mucho cuidado.`,
`—La guardaré muy bien.
—Bien. Ahora anota la hora y sigue el protocolo de entrada al laboratorio. Nada de inventar. Disciplina, siempre.
Te levantas, le das la mano y sales. Apuntas la hora exacta en tu libreta. Sientes una mezcla de miedo y emoción, como un mareo que te da fuerzas. La misión empieza ya.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/216.jpg",
"https://rafaxenakis.neocities.org/xixhoy/217.jpg",
"https://rafaxenakis.neocities.org/xixhoy/217.jpg",
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapasotano";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $salazar += 1>><</if>>
<<if visited() == 1>><<set $examen += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Decides rechazar la misión. Te parece algo demasiado arriesgado. Le dices al señor Salazar que probablemente no eres la persona más indicada. No tienes vocación de agente secreto y podrías estropear un proyecto tan costoso`,
`El señor Salazar parece decepcionado, pero te da las gracias por haber acudido. Te dice que, por supuesto, tendrás que guardar el secreto de lo que has visto y oído. Aunque añade con cierto sarcasmo que, al fin y al cabo, quién te va a creer`,
`Tras despedirte de él, te vas y sales del ministerio. Estás lleno de preguntas. ¿Cómo será esto de los viajes en el tiempo? ¿Cómo nos afectará todos en el futuro? ¿Se usará para hacer el bien? Esas son las preguntas que tienes en la cabeza mientras vuelves a casa`,
`De pronto, piensas: ¿qué es el futuro? ¿Qué es el pasado? Quizás sean solo como las páginas de un libro. ¿Se puede volver a escribir en ese libro?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/215.jpg",
"https://rafaxenakis.neocities.org/xixhoy/218.jpg",
"https://rafaxenakis.neocities.org/xixhoy/214.jpg",
"https://rafaxenakis.neocities.org/xixhoy/214.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 3";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Ayudas al niño a colarse en el tren</button>
<button type="button" id="choice-dialogo5">Decides no ayudar al niño para no poner en riesgo la misión</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Estás en la estación principal de Londres. Es un edificio imponente. Los trenes de vapor son negros y metálicos. Todo parece una película o un sueño.`,
`La gente baja de los trenes y se para a ver las noticias colgadas y la publicidad pegada a los muros, con lo cual toda la zona alrededor está tremendamente concurrida. Los niños, con sus ropas sucias, rotas y descuidadas, aprovechan para colarse entre la multitud, deslizándose entre los adinerados señores para robar las pertenencias tanto de hombres como mujeres. Son realmente habilidosos, a veces son admirables las diferentes técnicas utilizadas por esos pequeños cleptómanos. En algunos casos, la gente se da cuenta de la actividad que realizan los niños y grandes escándalos se forman en esos barullos de gente. Todo el mundo alarmado, esquivando las persecuciones, entre los acaudalados hombres y los niños que abren caminos entre la gente para escapar.`,
`Vas a subir a uno de los vagones. La cola parece casi interminable. De repente, un niño, de no más de 10 años, se pone a tu lado y pregunta:
—¿Perdone señor, le importaría que me uniese a usted en el viaje? No tengo billete, pero puede cogerme en brazos y simular que soy una maleta o una bolsa tapada por ropas.
Lo miras extrañado. Pero él sigue insistiendo con una voz sobrecogedora.
—Buen hombre, necesito que lo haga, me están siguiendo desde hace meses y necesito huir de esta ciudad y le podré recompensar más adelante`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/108.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/228.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "11.2. Estación Londres (ayudas al niño)";
const PASSAGE_2 = "11.3. X Estación Londres (no ayudas al niño)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Bajas del tren</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El niño desconocido empieza a llorar viendo que no accedes a hacerlo, pero al momento en el que le dices que sí, una sonrisa se planta en su cara. Lo envuelves entre chaquetas y lo coges como si fuera un bolso. Pasas al tren, no tienes problema con el revisor, te encuentras entre la multitud de gente y el pequeño niño pasa desapercibido estando bajo las chaquetas.`,
`Te sientas en un asiento del tren con mucho espacio de sobra para poner las chaquetas, cuando el revisor ya se ha ido le haces una señal al niño para que ya pueda salir y sentarse contigo.
Mientras pasa el tiempo, miras al niño mirando a través de la ventana los verdes montes, la suave brisa acariciando la cara. No puedes resistirte a preguntarle por qué le perseguían:
—¿Por qué te persiguen? ¿No tienes padres?`,
`El niño te mira con una mirada fría y triste.
—Mi padre nos abandonó a mi y a mi madre hace cinco años, mi madre murió hace meses de tuberculosis y, hasta ahora, me he ganado la vida robando, pero ayer cometí el error de robarle a un jefe de una mafia y ahora me buscan para matarme.
Te sentiste mal por el niño y sentiste un escalofrío en la espalda de lo último que dijo.`,
`—¿A dónde piensas ir? —dijiste con curiosidad.
—A Manchester —dijo el niño con una pizca de esperanza en su voz, el pobre se creía que allí le irá mejor.
—Yo también voy allí, por trabajo.
—Ahora voy en busca de un tío mío, al Barrio de Nelson East. Quizás puedas pasar por alli en algún momento, forastero.
Se te pasó por la cabeza la idea de llevarlo al s.XXI, pero por mucho que empatices con la gente no podías llevarte a todos los pobres contigo.`,
`Después de eso el niño volvió a contemplar el paisaje. Tú estabas aburrido, así que sacas tu libro favorito, Sherlock Holmes, y empieza a leerlo atentamente. Mejor que nadie te pregunte por él, ¡no se ha escrito todavía en esta epoca!`,
`La lectura te hace disociar el tiempo así que sin que te dieras cuenta ya era de noche. Guardas tu libro y escuchas como uno de los revisores del tren anuncia la llegada a la estación de Manchester. El niño se despide rápidamente de ti y salta fuera del tren para que no lo pille el revisor. Observas como se aleja corriendo.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/109.jpg",
"https://rafaxenakis.neocities.org/xixhoy/110.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/111.jpg",
"https://rafaxenakis.neocities.org/xixhoy/112.jpg",
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "12.1 Manchester (bajada del tren)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<set $niñotren = 1>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Bajas del tren</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Le dices al niño que no puede ayudarle. Él sale corriendo entre la multitud y no vuelves a verlo más. Te sientas en un asiento del tren con mucho espacio de sobra para poner las chaquetas. Pasa el revisor y le enseñas tu billete. No puedes dejar de sentir un escalofrío. ¡Estás viajando en tren en una época en que el tren es una novedad. Tras un rato, estás un poco aburrido, así que sacas tu libro favorito, Sherlock Holmes, y empieza a leerlo atentamente. Mejor que nadie te pregunte por él, ¡no se ha escrito todavía en esta epoca!`,
`La lectura te hace disociar el tiempo así que sin que te dieras cuenta ya era de noche. Guardas tu libro y escuchas como uno de los revisores del tren anuncia la llegada a la estación de Manchester.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/113.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/112.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "12.1 Manchester (bajada del tren)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<set $niñotren = 0>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Nada más bajar del tren contemplas la oscura estación con luces fundidas, con enormes humedades que caen como un manto brillante sobre el suelo de ladrillo roto. Con hierbas que nacen del inmenso techo hasta las vías del tren y se enredan entre ellas hasta perderse por completo entre estas.`,
`Sales de la estación sin ningún rumbo; contemplas la majestuosidad de aquellas naves, las enormes fábricas que inundan el cielo con un tono gris lleno de sufrimiento, dolor, trabajo…
Tras aquellas fábricas había miles de personas sin paz en su cabeza, solo una tormenta que les devastaba; personas que llevan días sin poder comer, trabajando solo para nunca llegar a poder conseguir nada: años de sufrimiento y miseria. Niños a los que les tocó ser adultos y ahora trabajan para poder ser algo más que una mancha borrosa en el pasado de la historia.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/114.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/115.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<<if $charco is 0>>
<button type="button" id="choice-mozo">
Te fijas en un papel en el suelo. Lo recoges
</button>
<</if>>
<button type="button" id="choice-juglar">
Volver al mapa general de Manchester
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Apareces en un callejón oscuro, miras hacia los lados comprobando que nadie te haya visto aparecer; te acomodas el traje y entras en la calle.
—¡Cuidado! —te grita un cochero cuando casi su caballo te atropella, haciendo que te pares en seco por el susto inesperado; suspiras y empiezas a andar por la calle admirando cada detalle, a pesar del mal olor de la mierda de los caballos esparcida por toda la calle, el ruido de las coces cuando los caballos andan, el humo negro en el aire que se respira hasta ahogarte y provocar que tosas, que sale de las altas fábricas; lo que te sorprende es que las fábricas estén tan cerca de las casas y no más alejadas como en tu actualidad.`,
`Todo se veía más antiguo, más deteriorado; las ropas de las personas que pasan a tu alrededor son sucias, gastadas, agujereadas. Intentas evitar el sentimiento de tristeza al pensar en esas familias mientras otras se bañan en oro.
Como te vas a quedar unos días en Manchester, vas en busca de algún piso para pasar los días, vas yendo por la calle en busca de un piso preguntando a gente, pero la gente de allí es un poco borde. Las calles están llenas de barro y pobres niños trabajando y sus madres en grupo lavando ropa; era difícil encontrar sitio.`,
`Después de andar un buen rato y de preguntar a personas que pasaban algún lugar donde te puedas quedar, preguntando también en albergues si tenían sitio, los cuales están completos.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/116.jpg",
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "12.3 Manchester (papel en el suelo)";
const PASSAGE_JUGLAR = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
if (btnMozo) {
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
}
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
12.2 Manchester (calejón oscuro)
<<if $charco is 0>>
<div class="map-label" style="left: X1%; top: Y1%;">
<<link "Niño del periódico">>
<<goto "12.3 Manchester (papel en el suelo)">>
<</link>>
</div>
<</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Topas con un enorme charco de lodo que te moja tus botas preciadas y, no sabemos si es una casualidad del destino o la luz de un ángel, te encuentras una ilustración tirada en el suelo junto con un periódico viejo, mojado; lo coges impregnándote las manos y te das cuenta de que pone “Alquilo casa, soy tu mejor oportunidad”, junto con una dirección.
Y en ese momento te pareció la mejor opción, porque solo el estruendoso sonido de las fábricas y el putrefacto olor de aquel sitio te transmitían las inmundas ganas de desear vomitar.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/117.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $charco += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de un rato. Llegas al lugar de la dirección. Entras al edificio para entrar a la casa; llamas al timbre y te abre un señor. Piensas que tiene que tener alrededor de setenta años y que no es muy simpático. Tiene un bastón y sombrero, que se ve una persona rica, y te dice:
—¿Se puede saber qué haces aquí?
—Solo venía porque estoy interesado en alquilar el piso.
—Me temo que te has equivocado de lugar, vagabundo —te dice con tono incrédulo.
—Disculpe, ¿cómo te atreves a faltarme al respeto? Soy un distinguido señor. —le gritas
—Ah, sí? ¿Con esa mugrosa ropa que llevas y ese olor a bicho muerto? —te ofendes`,
`Y te miras a ti mismo y reconoces que no está equivocado; es lo peor que has olido jamás en tu vida.
—Solamente dime el precio y así podemos negociar.
—Estaríamos hablando de 2 libras esterlinas por semana.
Sin problemas, le das el dinero del primer mes y él rápidamente lo coge y sale de mala gana.`,
`Te dice que lo acompañes adentro y lo sigues. De repente te lleva a la parte de atrás de su casa, donde hay como un pequeño cobertizo, y lo miras incrédulo. Entráis y ves una puerta de madera putrefacta y levantada debido a haberla mojado en alguna ocasión; las tablas del suelo están levantadas y astilladas. La cama está sujeta por dos metales que sobresalen hasta el techo y tiene un pequeño lavabo y un váter lleno de suciedad. Pero… ¿qué pocilga es esta? Dios mío, qué horror, por Dios. Definitivamente no esperas quedarte mucho tiempo.
Te fijas en la única ventana que hay en la habitación y ves el contraste de ruina por parte de los pobres y de la parte adinerada de la ciudad, que suelen ser personas de clase alta.`,
`Pones tu ropa en el armario y te sientas en una silla al lado de la ventana y observas las calles húmedas, llenas de niños trabajando, mujeres limpiando y hombres cargando materiales. En esta ciudad se salvan unos pocos privilegiados y, por los pelos; si un niño no trabaja es porque sus padres tienen dinero, entonces podía jugar; las mujeres privilegiadas se quedaban en sus casas, limpiando y cocinando para sus maridos, y los hombres se pasaban el día en el bar.
Te das cuenta de lo afortunada que es la vida para algunas personas y lo dura que es para otras.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/120.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/118.jpg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $pisomanchester += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Calles de Londres 2.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Vas caminando por Manchester en unos barrios llenos de riqueza y algunos que otros sitios y tabernas pobres, donde los hombres viejos, con una barba larga, blanca y oliendo mal, se toman grandes cervezas de dos en dos
Decides preguntarle a un grupo de obreros que había en una de las calles por las que pasas porque no encuentras nada.`,
`Te acercas a ellos y le dices:
—Hola. Disculpe, ¿le puedo hacer algunas preguntas, por favor? Es que necesito ayuda.
Los obreros te responden:
—Sí, claro, ¿qué necesitas?
Tú les contestas:
—¿No habréis visto por aquí a alguien bien vestido, con un libro en la mano y con pintas de poeta, no? Se llama Walter Scofield.`,
`Los obreros te contestaron:
—Por aquí no pasa gente de ese estilo; probablemente lo podrás encontrar en la otra zona donde te he dicho, lo que pasa es que está un poco lejos para ir andando.`,
`—¿Necesitas algo más?
Tú le contestas:
—No, muchas gracias, espero tener suerte, adiós.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/124.jpg",
null,
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $busquedapiso += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Calles de Londres 2.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Ves a un grupo de ancianos en una esquina, charlando animadamente. Decides acercarte a preguntar.
—¿Hola, les puedo preguntar sobre un poeta que estoy buscando?
—¿Un poeta en verso o en prosa? —dijo un hombre viejo riéndose.
—Es broma, joven, no le hagas caso; dinos cómo se llama ese poeta para ver si lo conocemos.
—Es Walter Scofield. Pero no sé dónde vive.
—Lo sentimos, pero no conocemos a nadie con ese nombre.
—Vale, no se preocupe; muchas gracias, hombre.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/125.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $busquedapiso += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Calles de Londres 2.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Te acercas a un hombre, se ve que es adinerado por sus gafas y sus libros.
—Buenas, señor, ¿le podría hacer una pregunta? —le preguntas con miedo a su respuesta.
—¡¿Señor?! ¿Pero usted qué edad cree que tengo? —te responde en tono de comedia pero a la vez seriamente—. Dígame, ¿qué duda tiene?
—Seguro será usted joven, perdona —le dices un poco avergonzado—. Ando buscando al poeta Walter Scofield ¿sabe usted quién es?
—El poeta envidioso, claro que sé de quién habla. ¿Para qué lo busca, si se puede saber? —te responde un poco sorprendido.`,
`—¿Poeta envidioso? ¿Lo conoce?
—Como si fuera mi hermano. Ambos estudiamos juntos; nos gustaban mucho los libros, pero le ocurrió algo con su hermano y ya nadie volvió a saber nada de él. Creo que se fue a América, a buscarse la vida —te cuenta preocupado.`,
`Piensas que si estudió con él, probablemente no sea un viajero en el tiempo. ¿Y qué es eso de que se fue a América, si el poema lo escribió aquí este mismo año ¿Se referirá a la misma persona? La verdad es que no te encaja. ¿Deberías seguir buscando?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/126.jpg",
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $busquedapiso += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Calles de Londres 2.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Vas camino a la Cafetería Manchester, pero te das cuenta de que estás muy lejos y vas a tardar mucho, y te sientas un rato al lado de un árbol a descansar.
Unos minutos después te das cuenta de que hay muchos carros de caballos, por lo que decides preguntarle a un cochero si sería tan amable de llevarte allí, y le dices:
—Hola, buenas tardes. ¿Podrías llevarme a la Cafetería de Manchester, por favor?
Él te contesta:
—Sí, claro, pero está un poco lejos, por lo que te va a costar por lo menos 3 monedas.
—Vale, estoy dispuesto a pagarte.`,
`Te montas en el carro y hablas un poco con el cochero. De pronto decides preguntarle por probar por el poeta.
—¿Conoces a un escritor llamado Walter Scofield?
—Walter Scofield, vaya que sí. Lo he llevado muchas veces a la biblioteca. Un tipo peculiar, pero mientras pague bien.`,
`Menuda sorpresa, no te lo esperabas. Entonces le preguntas.
—¿Podría llevarme a donde vive? ¿Lo recuerda?
—¿No íbamos a la Cafetería de Manchester?
—He cambiado de opinión. Le pagaré más.
El cochero se encoge de hombres y cambia de dirección.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/127.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $localizacionpisopoeta += 1>><</if>>
<<if visited() == 1>><<set $busquedapiso += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Una vez más te sumerges en el resplandor azul, rumbo al siglo XIX</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Llegas al laboratorio. La iluminación azul del teletransportador te deslumbra la cara; el lugar está tenuemente iluminado, con las luces del techo haciendo que se vea más oscuro. Bajas las escaleras y te diriges hacia Pablo, María y un nuevo científico que no conoces: es rubio, su cara pálida y fina, su bata blanca hace que su piel se intensifique y se vuelva más brillante. Sus manos sujetan una carpeta con muchos folios mientras habla serio con Pablo y María.
Conforme te acercas, los tres se giran a mirarte y su conversación se corta abruptamente, mirándose entre ellos, compartiendo una mirada preocupada. Pero Pablo dice algo para romper el silencio y tranquilizarte: `,
`—Ya parece que vives aquí y todo —dijo Pablo.
—Como siempre, Pablo, tan gracioso —respondió María con voz irónica.
—¿Y cómo te ha ido el viaje? Parece que estás bien.
—Tampoco tan bien como creéis. Alguna que otra vez no pude mantenerme de pie y perdía el equilibrio, junto con una sensación de mareo que hacía que las gotas de sudor me cayeran por todo el cuerpo.
—¡Dios mío, sí que lo pasaste mal!`,
`Así que te pones manos a la obra. Primero te preparas con tu uniforme de laboratorio y luego preparas tu maletín marrón con ropa del siglo XIX, en este caso la que se llevaba en Inglaterra en 1839.
—Una cosa más. El viaje es más seguro de calibrar para grandes capitales. Tenemos mejores datos de cómo era Londres, así que te transportarás ahí. Tendrás que coger un tren para ir a Manchester, y ya está —te dice Pablo como si no hubiera problema alguno.`,
`—¡Y lo dices como si no fuera complicado! ¡Claro! ¡Quizás pueda comprar el billete online! —dices irónicamente.
—Lo siento, es mejor eso que aparecer en medio de una plaza y que te detengan.
—En fin, de acuerdo.`,
`Cuando entras a la máquina das un salto y te quedas como en el aire, dando vueltas, con una vibración que te retumba en los oídos a la vez que hueles un olor a hierro quemado que produce un pequeño fogonazo. Al cerrar, se apaga todo y te quedas a oscuras, con un incómodo silencio que te tiene con mucha tensión. Finalmente, te rodea el mismo resplandor azul de la primera vez.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/225.jpg",
"https://rafaxenakis.neocities.org/xixhoy/205.jpg",
"https://rafaxenakis.neocities.org/xixhoy/224.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/221.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "20. Llegada a Londres";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Escritura romántica.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Miras la dirección del poeta en tu mano; sientes la emoción del gran paso que acabas de dar y te sientes orgulloso.
Respiras ese aire con olor a quemado, y el viento te azota en la cara como una pesadilla, como una súplica de liberación. Paseas entre la gente y no sabes qué demonios vas a hacer, qué harás cuando llegues a la casa de ese desconocido. No tienes ni idea, pero sí tienes algo claro: nada te hará perder esa oportunidad.`,
`Hay algo que te llama bastante la atención: pequeños niños que juegan descalzos con pelotas hechas de periódico mojado y lleno de lodo. Qué lástima de pobres desgraciados.
Miras el papel que te dio aquel cochero refunfuñón y amargado, viejo, regordete, con una barriga bien grande que lo haría caer si de una emergencia se tratara y tuviera que correr. “Jajaja, ¿cómo es posible?”, piensas.`,
`Llegas al portal de un pequeño edificio de ladrillo viejo y un poco maltratado por la edad. Abres el portal. Encuentras unas pequeñas escaleras de madera vieja y decides subirlas Te vas fijando en los nombres de las puertas. Pero nada. ¿Estará bien la dirección?
Cuando llegas al último piso, sientes como si el mundo se te viniera encima: coges la última bocanada de aire, como si fuera el último respiro de tu vida, como si se te fuera toda la energía en hacerlo.`,
`Y, de repente, ves un nombre que te llama la atención: es el nombre que estás buscando, Walter Scofield ¿Qué será lo que esconde? No tienes ni idea, pero lo vas a averiguar.
Y decides tocar a la puerta donde pone el nombre que buscas…`,
`TOC, TOC…
Te abre un joven delgaducho, con apariencia demasiado pequeña para la edad que tiene. “¿Pero este va a ser un viajero en el tiempo? ¿Será posible?”, piensas. No parece capaz de soportar el peso de unas letras y una tinta, menos de alta tecnología.
Te mira extrañado, como si viera a alguien que conoce con admiración, pero con desconfianza y miedo.
—Hola, joven, perdón por la interrupción —saludas.
—¿Quién eres? —te pregunta el poeta—. ¿Necesitas algo?`,
`—Oh, perdona, me he quedado un poco en las nubes. Es solo que te admiro mucho; como poeta eres una gran inspiración. Cualquiera diría que estás adelantado a tu tiempo, que tienes una visión tan moderna de las cosas que es como si vieras el futuro. —dices, intentando sonar convincente.
—Gracias —te dice un poco intimidado.
—En el café alguien me habló de ti y me pareciste perfecto para una obra que quiero crear. Perdón si te incomoda —le dices en tono apenado.`,
`—No, lo siento. Yo no escribo como los demás, no colaboro con nadie, no estoy interesado —intenta cerrar la puerta, pero no lo permites.
—De acuerdo. Si no te fías, te diré mi nombre para que busques información sobre mí —le dices en tono interesado.
El poeta, con una mirada seria, asiente con la cabeza, pero con desconfianza. Te animas a socializar más con él.
—¿Te apetece tomar algo? Me haría ilusión —dices con esperanzas.`,
`El poeta niega con la cabeza.
—Estoy ocupado, pensando en nuevas obras. Pásate otro día, si te parece.
—Pues mándame un mensaje y concretamos la fecha —dices, bromeando y observando la expresión del poeta.
—Ya sabes mi dirección. Envíame una carta y ya te responderé —dice el poeta, seriamente.
Te quedas pensativo: te acaba de plantar cara y ahora no tienes nada. ¿Cómo es posible? Lo tomaste por ingenuo y no te salió nada bien. ¿Acaso pensabas que te iba a pedir el número de móvil para mandarte un Whatsapp? ¿Será realmente un viajero en el tiempo?`,
`El poeta cierra la puerta. Te quedas un momento en el pasillo, mirando la puerta fijamente como si la analizaras. Piensas en cómo podrías entrar en la casa sin que se de cuenta. ¿Pero vale la pena arriesgarse?
Esto te va a resultar más difícil de lo que piensas.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/129.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/130.jpg",
"https://rafaxenakis.neocities.org/xixhoy/131.jpg",
"https://rafaxenakis.neocities.org/xixhoy/107.jpg",
null,
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/131.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $primerencuentro += 1>><</if>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Sala de Máquinas.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Aceptas la misión que te propone el director del proyecto</button>
<button type="button" id="choice-dialogo5">No aceptas la misión</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Apareces de pronto en el laboratorio. El viaje te ha dado náuseas y vomitas.`,
`Inmediatamente los científicos te ayudan y te llevan a una habitación para que descanses, antes de hablar con el director sobre cómo ha ido la misión. Estás muy cansado y decides dormir. Tras unas cuantas horas te sientes bastante mejor`,
`Aparece William Salazar, el director del proyecto. Vas con él al despacho. Te fijas de nuevo en su pelo canoso, gafas y traje oscuro. Te dice que te sientes y hasta te ofrece un café. Le dices que sí. Mientras lo tomas, te dice:
—Enhorabuena, chico. Lo has hecho muy bien. Felicidades por tu viaje y por publicar tu poema. Has hecho un buen trabajo.
—Muchas gracias. Al principio no estaba muy convencido de ir, pero luego me gustó mucho.
—¿Has tenido un buen regreso al presente?
—Sigo un poco mareado, pero me recupero rápido.`,
`Luego sigues hablando de cómo era todo en el año 1840. Entonces te dice que mires la pantalla de su ordenador.
William Salazar busca en el ordenador “Biblioteca Nacional”. Entra en un archivo en el que pone Revista Literaria Madrid (Año 1840). William Salazar entra en el archivo en el cual encontráis el poema que tú mismo escribiste en el pasado. Piensas: “¡qué raro! ¿Cómo puede estar mi poema allí?”`,
`—Como puedes observar, en esta revista de 1840 aparece tu poema y tu nombre —te lo dice orgulloso, pero a la vez preocupado—. Son muy buenas noticias, pero eso conlleva que el pasado se puede cambiar fácilmente, y eso puede tener consecuencias en el presente, como cambios políticos, sociales y más, que se deben investigar.
Tú estás contento, pero a la vez estás preocupado, porque aún tienes en el bolsillo aquel papel del siglo XIX, el cual parece estar escrito por alguien que crees que también está viajando en el tiempo, aunque no sabes si darle importancia. ¿Será mejor enseñárselo? ¿O simplemente te lo quedas como curiosidad?`,
`Justo después de terminar de felicitarte, William Salazar te nota preocupado y te pregunta qué te pasa. Tú decides sacar el papel del bolsillo y lo pones encima de la mesa.
William te pregunta:
—¿Qué es eso?`,
`Tú le respondes:
—Es extraño. En la imprenta en Madrid del siglo XIX encontré un poema en inglés de Manchester, 1841. Lo cogí, y al leerlo me pareció raro, porque habla como de que estamos conectados, que hay palabras a la velocidad de la luz. Entonces no lo sé seguro, pero tiene toda la pinta de que es otra persona que está viajando en el tiempo. ¿Alguien de 1839 podría escribir eso?`,
`William lo lee, se queda sorprendido y te dice:
—Eso no debería pasar. No debería haber más gente utilizando la máquina del tiempo. Creo que hay otro viajero.
William se sorprende, ya que no se contrataron a más personas para que contribuyeran en la misión.
—¿Puede ser que haya otra persona que trabaje con el mismo fin que nosotros? —dices.
—Podría ser. Necesitaremos pensar qué hacer. Tendré una reunión para hablar sobre este raro suceso. Te avisaré mañana mismo con nuestra decisión —dice.
—De acuerdo.`,
`Vuelves a casa, preocupado por lo que pueda pasar. ¿Y si te ofrecen viajar de nuevo para ir a ver al poeta sospechoso? ¿Te pedirán capturarlo? ¿Pero es realmente un viajero en el tiempo o solo alguien con mucha imaginación?`,
`A la mañana siguiente, recibes un mensaje diciendo que vuelvas.
Llegas al Ministerio de Ciencia y te llevan de nuevo al sótano.`,
`En el despacho del director, William Salazar te recibe con un café. Te sientas en la silla y te comienza a contar lo hablado el anterior día en la reunión, muy resumidamente, con el fin de hacerte la pregunta:
—Necesitamos que alguien vuelva al pasado para saber quién es el protagonista de la otra misión. ¿Te ofrecerías a serlo? —te pregunta con intriga y deseando que digas que sí.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/221.jpg",
"https://rafaxenakis.neocities.org/xixhoy/222.jpg",
"https://rafaxenakis.neocities.org/xixhoy/216.jpg",
"https://rafaxenakis.neocities.org/xixhoy/223.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/215.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/214.jpg",
"https://rafaxenakis.neocities.org/xixhoy/202.jpg",
"https://rafaxenakis.neocities.org/xixhoy/215.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "16.2 Despacho William Salazar (segunda misión, aceptas)";
const PASSAGE_2 = "16.3 Despacho William Salazar (segunda misión, no aceptas)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Vas directamente al Laboratorio para hacer tu segundo viaje en el tiempo</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tú le contestas:
—Sí. Me gustaría mucho. Estoy dispuesto a volver a ir; aquello me gustó mucho.
Luego te contesta:
—Pues perfecto. Lo volveremos a poner en marcha. Prepárate, porque viajarás en el tiempo de inmediato. ¿Te parece bien?
—Perfecto, muchas gracias.`,
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/216.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "14. Sala máquinas (segundo salto en el tiempo)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`El señor William Salazar ha estado hablando contigo y negociando sobre la misión propuesta de que busques al poeta sospechoso. Después de pensarlo, decides abandonar esa misión porque te parece muy arriesgada y peligrosa. Además, piensas que la debería realizar alguien que realmente esté especializado en eso, ya que requiere conseguir una serie de pistas y tener habilidades para capturarlo. Si quieren capturar al poeta que viaja en el tiempo, tiene que hacerlo alguien especializado.`,
`Aun escuchando los argumentos del señor Salazar, le dices que no. Este, a pesar de su insistencia, acaba accediendo. Lamenta tu respuesta, pero te entiende. Te da las gracias y te despide con un cordial saludo.`,
`Tras despedirte de él, te vas y sales del ministerio pensando en todo lo que has vivido estos días. Pero no solo en eso, sino también en el poeta sospechoso: si lo atraparán, o si es verdaderamente un viajero del tiempo, y qué pasará con él. Aunque tienes claro que era una locura aceptar la misión, en tu cabeza empiezan a llover una serie de preguntas, todas llenas de intriga y remordimiento por el qué hubiera pasado si hubieses aceptado.`,
`Intentas distraerte y esquivar esas preguntas que tu propio cerebro te hace. Así que, para lograrlo, paseas mirando a los niños que juegan en la calle, a los ancianos que limpian los pequeños portales de su hogar... Te parece increíble haber visitado esta misma ciudad, pero hace más de un siglo y medio. Es como si hubiera sido un sueño.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/215.jpg",
"https://rafaxenakis.neocities.org/xixhoy/218.jpg",
"https://rafaxenakis.neocities.org/xixhoy/214.jpg",
"https://rafaxenakis.neocities.org/xixhoy/214.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 7";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa del sótano del Ministerio de Ciencia</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Hoy, por alguna extraña razón, el aire se siente más cálido y las personas más amables de lo normal.`,
`Vas caminando por Madrid en busca del Ministerio de Ciencia, en el Paseo de la Castellana. Te sientes muy nervioso y con mariposas en el estómago, ya que recibiste una carta certificada un tanto extraña que dice que has sido elegido para una misión secreta de alta importancia, por tu capacidad como escritor y por ser un profesor universitario de literatura muy experto. Empiezas a recitarla de nuevo en tu cabeza, prácticamente te la sabes de memoria.`,
`Tras caminar un rato, encuentras un edificio en el que pone “Ministerio de Ciencia”. Sabes que es ahí. Cruzas la calle y entras.`,
`Cuando llegas a la puerta, hay dos guardias de seguridad. Se ven muy fuertes, van vestidos con el uniforme de trabajo en el que pone, por delante, el nombre de cada uno de ellos y, por detrás, el nombre de la empresa. También llevan un gran cinturón con una pistola y una porra enganchadas a la cintura.`,
`Uno de ellos, llamado Carlos, te dice:
—Hola, joven. ¿Qué quieres?
Tú le contestas:
—Buenas tardes, vengo porque he recibido una carta que dice que he sido elegido por mi gran habilidad como escritor y por mi condición de profesor universitario.
El otro guardia, llamado Rafa, te dice:
—A ver, déjame ver tu carta, por favor.`,
`En ese momento sacas la carta del bolsillo de la chaqueta y se la das para que la vea. Rafa observa la carta y mira el código; al verlo, se lo enseña a Carlos y le dice:
—Es él, tenemos que llevarlo a la sala secreta.
Cuando Rafa termina de hablar con Carlos, te devuelve la carta y te dice:
—Ven, acompáñanos.
Asientes con la cabeza y le sigues. Antes de entrar, coges un folleto del mapa del edificio.`,
`Te dirigen hasta un ascensor que se encuentra algo oculto: no está a simple vista, ya que para llegar a él hay que atravesar dos pasillos enteros. Llegáis al ascensor. Se ve elegante, con un gran espejo Una vez dentro, el guardia pulsa un botón sin número. Tú, extrañado, le preguntas:
—Señor, ¿a dónde nos dirigimos?
—A la planta menos tres, joven —responde el guardia.
Asientes con la cabeza, abres el mapa y no encuentras ninguna sala que se encuentre en la planta menos tres. Te empiezas a poner nervioso, ya que piensas cosas que solo pasan en las películas.
Una vez se abre el ascensor, echas un vistazo rápido.`,
`Estás intrigado, no sabes a dónde te llevan. Al llegar a la planta -3, cuando os bajáis del ascensor, te recibe una mujer vestida con traje de oficina y sus correspondientes tacones. La mujer te saluda y te dice que le acompañes a una sala en la que vas a hacer un examen, pero también te advierte de que todavía no puede decirte de qué va tu misión.
Te pregunta si estás dispuesto a hacer el examen sobre conocimientos de literatura del siglo XIX. Le dices que sí, pero con una sonrisa y con humor, le preguntas:
—Un momento, ¿antes de hacerlo puedo estudiar un poco, por favor?`,
`La mujer te contesta y señala a un mapa esquemático en la pared:
—Sí, claro. Aquí tienes un pequeño gráfico de esta planta del edificio. Tienes una pequeña biblioteca y una sala para realizar el examen. Hazlo cuando estés preparado.
—¿Puedo ver la biblioteca?
—Por supuesto.`,
`Vais andando por un largo pasillo y, en la mitad, la mujer se para y te dice:
—Aquí es.
Miras la puerta y lees que pone “Sala 02. Biblioteca”.
Entras y la mujer te dice:
—Aquí tienes una gran cantidad de libros. Lee y estudia todos los que quieras. Luego puedes realizar el examen.
—Gracias —dices mientras le das la mano.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/206.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/202.jpg",
"https://rafaxenakis.neocities.org/xixhoy/207.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/208.jpg",
"https://rafaxenakis.neocities.org/xixhoy/201.jpg",
"https://rafaxenakis.neocities.org/xixhoy/201.jpg",
"https://rafaxenakis.neocities.org/xixhoy/209.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapasotano";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<set $examen = 0>>
<<set $salazar = 0>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Estación de tren.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Buscar la estación de trenes</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Al cruzar el portal, los flashes azules que te dan en toda la cara hacen que cierres los ojos. Mientras te adentras, sientes tu estómago revolverse ante el cambio, aunque ya ha sido tu segunda vez viajando en el tiempo.`,
`Apareces en la iglesia. Te fijas en que nadie te haya visto salir del resplandor azul. Suspiras, sintiéndote más aliviado y tranquilo después de cruzar el portal, a pesar del ambiente en el que te encuentras: todo está destruido, hecho a pedazos, ventanales rotos sin cristales, el olor nauseabundo de podrido, los bichos correteando por el suelo.`,
`Miras por la iglesia para comprobar que nadie te ha visto. Sueltas la mochila en el suelo y empiezas a quitarte la ropa de laboratorio para ponerte la habitual ropa de un caballero inglés del siglo XIX, la cual no te disgusta del todo; en el fondo, te gusta vestir elegante. Te pones tus pantalones negros; no son muy ajustados, pero tampoco muy anchos. Te entremetes la camisa blanca por debajo del pantalón, te colocas los zapatos negros que terminan en punta y, por último, te pones una chaqueta larga de color negro y tu sombrero de copa. De accesorios llevas un reloj de bolsillo, cuya cadena es de oro.`,
`Guardas la ropa de laboratorio en la mochila, la cierras y buscas un lugar para esconderla de los vagabundos o adolescentes que puedan llegar a entrar. Encuentras un boquete en el suelo, justo al lado de un banco. Metes ahí la mochila y mueves el pesado banco chirriante para tapar el agujero.
Suspiras, cansado, y te dispones a salir. Coges tu bastón y te marchas de ese lugar lo antes posible. De camino, se ve la contaminación por el humo que sale de las fábricas y de las chimeneas de las casas familiares.`,
`A pesar de que huela algo mal por los caballos y de ahogarte con el humo de las chimeneas de fábricas y casas a tu alrededor, y de que sea un poco ruidoso por las coces de los caballos y el murmullo de grupos de personas hablando, no sabes cómo, pero este lugar te reconforta. Le encuentras algo que tu siglo no tiene, algo cálido, a pesar de las circunstancias. Preguntas por la estación de trenes y te dan indicaciones para llegar. Es hora de poner rumbo a Manchester.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/106.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/227.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/226.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "11.1. Estación Londres (inicio)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<set $pisomanchester = 0>>
<<set $charco = 0>>
<<set $primerencuentro = 0>>
<<set $decidesregistrar = 0>>
<<set $localizacionpisopoeta = 0>>
<<set $busquedapiso = 0>>
<<set $fabrica = 0>>
<<set $niñotren = 0>>
<<set $pistola = 0>>
<<set $yameditado= 0>><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Vientos Peligrosos.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Decides encarar al poeta y mostrarle la prueba que demuestra que es un viajero del tiempo.</button>
<button type="button" id="choice-dialogo5">Decides no encararlo y dejarlo en paz en el pasado. Al fin y al cabo, ¿qué ganas delatándolo?</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Es de noche, de madrugada. Piensas que es buena idea colarte en casa del poeta mientras duerme, así que lo pones en práctica. Caminas por las calles poco iluminadas. Son las dos de la madrugada; todo es oscuro y las farolas irradian una luz cálida que da un ambiente realmente tétrico. Ves a mendigos durmiendo en los bordillos húmedos y algunos borrachos tambaleándose por las paredes. Casi no hay guardias.`,
`Miras al frente y, vagamente, se puede ver a un hombre zarandeando su cuerpo entre la niebla. Parece ebrio y suelta ese olor tan asqueroso y repulsivo del alcohol. Te cruzas con él y te dice unas palabras que no acabas de entender entre risas. Claramente ha bebido como un cosaco.
Justo en la puerta del piso donde vive el poeta hay un guardia, así que tienes que pensar en otra manera de entrar. En una esquina del edificio hay un árbol que da a la ventana de la casa del poeta. Puede ser una buena idea para entrar, pero el guardia sospecharía de ti.`,
`Piensas cómo poder distraerle, y de repente se te vienen a la mente los borrachos con los que te cruzabas antes. Podrías decirle que uno la está liando, y así el guardia se iría.
Te acercas al guardia:
—Hola, señor, buenas noches. Menos mal que le encuentro, porque a tres manzanas de aquí hay un hombre borracho gritando, y es molesto, ya que está al lado de mi casa —le dices con toda la inocencia del mundo.
—Entiendo, echaré un vistazo —dice el guardia antes de irse.`,
`Aprovechas que se ha ido y trepas por el árbol, hasta la ventana del piso.`,
`La abres con cuidado y entras sigilosamente. Tienes la suerte de que la ventana por la que has entrado da a su despacho, inundado de libros y muchas hojas garabateadas con poemas en sucio.
Como tienes una linterna de emergencia, te iluminas, pero al pararte a pensar que aquí todavía no hay pilas ni nada por el estilo —ya que todavía no se ha inventado nada de eso—, piensas que mejor que no se acaben.
Estás en el salón; te has dejado la ventana abierta y solo se escucha la brisa del viento. Cuando das un paso, la madera del suelo chirría. Es por culpa de tus zapatos, no te queda otra opción que quitártelos.`,
`Abres el cajón del escritorio, intentando hacer menos ruido todavía, ya que, al ser todo de madera y antiguo, hace mucho ruido. Abres el cajón y, entre folletos y lápices, encuentras múltiples libros de varios autores, incluyendo a… ¿¡Bécquer!? ¡Un libro de poemas de Bécquer, sus Rimas! Sonríes, orgulloso, por haber dado con la prueba de que el poeta es un viajero del tiempo, porque Bécquer, con tres años en 1839, es imposible que haya escrito poemas. Metes el libro en tu mochila para tenerlo como prueba.`,
`De la euforia de tener una clara evidencia de que este escritor es un viajero del tiempo, se te cae la linterna del bolsillo. La coges rápidamente.
No sabes qué hacer realmente después de haber averiguado tantas cosas en tan poco tiempo. Te late el corazón a niveles desorbitados y tu cabeza no para de pensar. Quién lo iba a decir: un ataque de ansiedad en el siglo XIX. Seguro que la gente piensa que no había este tipo de problemas, pero se siente exactamente igual que en la actualidad.`,
`Durante un instante, te preguntas qué hacer: ¿te enfrentas a él?, ¿lo intentas devolver al presente?, ¿te llevas el libro de Bécquer para presentarlo como prueba de que es un viajero del tiempo?, ¿o simplemente vuelves al presente y no cuentas nada, dejando que viva su vida en el siglo XIX?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/105.jpg",
"https://rafaxenakis.neocities.org/xixhoy/132.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/105.jpg",
"https://rafaxenakis.neocities.org/xixhoy/103.jpg",
"https://rafaxenakis.neocities.org/xixhoy/102.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "23. Te encaras con el poeta";
const PASSAGE_2 = "21.1 Salida Manchester (has dejado al poeta sin encararlo) Con final";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Escritura romántica.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<<if $pistola is 0>>
<button type="button" id="choice-mozo">
Intentas obligar al poeta a acompañarte de vuelta al siglo XXI
</button>
<</if>>
<<if $pistola is 1>>
<button type="button" id="choice-monje">
Sacas la pistola y oblegas al poeta a acompañarte de vuelta al siglo XXI.
</button>
<</if>>
<button type="button" id="choice-juglar">
Tras hablar con él, decides dejarlo en paz viviendo en el siglo XIX.
</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de lo que viste ayer, te cuesta volver al piso del escritor, pero le echas valor y vas. Llegas a su portal y te metes. Vuelves a llamar a su puerta esperando cualquier contestación del joven: podía echarte a patadas o, de verdad, escucharte y poder tener un trato con él. Pero, tal vez, no sabes que ese pacto con él cambiará algo en tu siglo en el futuro; algo que él predecirá que va a pasar de verdad en tu siglo. Pero ¿cómo será eso posible? Porque tal vez sea realmente un viajero del tiempo… ¿de tu siglo? O quizás… ¿del futuro? ¿Pero qué futuro, te replanteas? Uno que tú ni siquiera conoces ni has vivido, una tecnología muchísimo mejor, porque para ti es tu presente y has viajado al pasado, pero ¿existe tu futuro? ¿O donde tú vives es el futuro?`,
`Al abrir, el escritor te recibe con cara de asco y disgusto. Te mira diferente; no es una mirada genuina. Es una mirada que te hace que un escalofrío recorra tu piel de pies a cabeza y se te pongan los pelos de punta, poniendo todo tu cuerpo en alerta. ¿De qué sería capaz ese joven con apariencia de verdugo? No sabes hasta dónde será capaz de llegar.`,
`Te quedas contemplándolo y, cuando piensas que va a apartarse cerrándote la puerta, te habla.
—¿Qué quieres? —pregunta.
—Tú sabes qué es lo que quiero y por qué estoy aquí —le dices en tono recriminatorio.
—¿De qué hablas? No tengo ni idea —te dice con tono asustado.
—Sé quién eres realmente y… ¿no crees que te falta algo?
El escritor te mira en silencio.`,
`—Ah, ¿no? Qué lástima. Y yo que pensaba que eras más astuto. Pero veo que eres tan, tan ingenuo… Qué talento desaprovechado. Yo no sé cómo has sobrevivido en un siglo tan brutal si eres un debilucho —le dices, dándote cuenta de cómo su reacción cambia por segundos y su gesto se transforma en uno de ira.
—¿Quién te crees para hablarme a mí de tal forma? Eres un inepto desvergonzado —te dice.
Y sonríes por dentro: has conseguido lo que querías, lo tienes en la palma de la mano.`,
`—Pasa —te dice.
Y exclamas para tus adentros: lo conseguiste.`,
`Te das cuenta de que todo está mucho más ordenado que ayer, pero no le das mucha importancia. La otra vez no llegaste a verlo todo y observas con curiosidad que no había nada de tecnología dentro. Es listo: quiere pasar desapercibido. Ni una sola prueba que te lleve a poder demostrar en ese momento que era un viajero del tiempo. Pero no es necesario: ya tienes lo que necesitas, ese hermoso libro, una maravilla.`,
`De hecho, tú siempre has pensado que todos los libros deberían poder ponerse en un solo sitio, entre grandes torres amuralladas, entre vidrieras y suelos de marfil y candelabros de plata, con olor a tinta entre páginas que huelen a olvido y a la necesidad de ser leídas, de unas manos posadas entre sus páginas, y eso ser nombrado como una de las siete maravillas para ser la octava, porque es lo más espectacular del mundo.
—No sabía que eres tan… cómo decirlo… despistado —le dices, abriendo más la herida.
—¿Por qué dices semejantes cosas? Eres un irrespetuoso —te dice.`,
`Ahora, por fin, le enfrentas de verdad y le dices:
—¿Seguro que no? Entonces, ¿me podrías explicar qué es este libro de Bécquer, que tiene actualmente tres años?
Él, con una cara de decepción absoluta, responde con la voz quebrada:
—Vale, admito que soy un viajero del tiempo, pero he hecho esto por seguir mi sueño de estar entre mis escritores favoritos. Amo la literatura y la historia y por eso estoy aquí —te confiesa.`,
`Entonces, después de esa confesión, le haces más preguntas al respecto:
—¿Tu máquina del tiempo te permite quedarte en el pasado indefinidamente? ¿Cómo puede estar más de tres días?
Él, entre risas, responde:
—Sí, ja, ja, ja, y lo he hecho mejor que ese gobierno desastroso y caótico que tenéis en vuestra época. ¿Solo te permite quedarte tres días? Es patético.
-¿De qué época eres? ¿Quién creó tu máquina del tiempo?`,
`—No soy de tu tiempo, eso seguro. Mi máquina no forma parte de ningún gobierno. Fue creada por nosotros, un grupo de jóvenes apasionados por la literatura y la tecnología. Queríamos juntar algo tan valioso como lo es la tecnología con algo tan fascinante como lo es la literatura: unirlo en uno solo, que las personas pudieran ver todo esto, conocer su historia, la belleza de algo tan simple pero tan complejo al mismo tiempo. Un renacer de historias lo llamamos: flores que resurgen cuando ya habían muerto.`,
`—Siguiendo con las preguntas, ¿has venido al siglo XIX por alguna misión o algo al respecto?
—No. Vuelvo a recalcar que he viajado al siglo XIX por pura pasión y amor a la literatura romántica de este maravilloso siglo. Además de la grandiosa literatura de este siglo, las personas son muy diferentes, ya que puedes tener conversaciones con personas sin que estén atontadas con el móvil. Es un desastre.
—Has dicho nosotros —le dices.
—Sí, somos cinco personas las que estamos en distintas épocas, cinco personas con los mismos sueños.`,
`Te quedas sin nada que decir; eso no te lo esperabas. Lo miras: parece que dice la verdad. Pero ¿y si solo es actuado? ¿Y si te están engañando? Tal vez son personas que aman esto, y la literatura merece que la amen, que la aprecien. ¿Qué harás? ¿Los creerás y no dirás nada? ¿O tal vez arruinarás sus sueños? Porque, en un momento, admites que fueron los tuyos.`,
`Te cuestionas una de las decisiones más difíciles que has tomado nunca, acompañada de esta pregunta interna: ¿realmente lo debería dejar aquí o llevarlo a la fuerza al presente? ¿Lo interrogarán para que confiese por la fuerza quiénes son los otros viajeros y en qué época están? ¿Son realmente un peligro? ¿Pueden cambiar la Historia?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/131.jpg",
"https://rafaxenakis.neocities.org/xixhoy/107.jpg",
null,
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/101.jpg",
null,
null,
null,
null,
null,
null,
null
];
// Pasajes Twine a los que llevan las tres opciones
const PASSAGE_MOZO = "27. No dejas al poeta (sin pistola). Con final.";
const PASSAGE_MONJE = "35. Obligas al poeta a seguirte con la pistola";
const PASSAGE_JUGLAR = "26. Dejas al poeta (tras hablar con él). Con final";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnMozo = document.getElementById("choice-mozo");
const btnMonje = document.getElementById("choice-monje");
const btnJuglar = document.getElementById("choice-juglar");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0;
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
render(i);
} else {
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las tres opciones finales
if (btnMozo) {
btnMozo.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MOZO + '">>');
});
}
if (btnMonje) {
btnMonje.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_MONJE + '">>');
});
}
btnJuglar.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_JUGLAR + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Repasas las características del Romanticismo literario</button>
<button type="button" id="choice-dialogo5">Repasas la vida y obra de Gustavo Adolfo Bécquer</button>
<button type="button" id="choice-dialogo6">Repasas la vida y obra de José de Espronceda</button>
<button type="button" id="choice-dialogo7">Volver al mapa del sótano del Ministerio de Ciencia</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`La biblioteca del Ministerio de Ciencia es un lugar muy agradable. Encuentras varios libros de historia y manuales literarios sobre el siglo XIX. Sin embargo, quieres centrarte en dar un repaso rápido a datos fundamentales. ¿Por cuál deberías empezar?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/210.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "romanticismo";
const PASSAGE_2 = "bécquer";
const PASSAGE_3 = "espronceda";
const PASSAGE_4 = "mapasotano";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
const btnDlg6 = document.getElementById("choice-dialogo6");
const btnDlg7 = document.getElementById("choice-dialogo7");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
btnDlg6.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_3 + '">>');
});
btnDlg7.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_4 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="xixExam">
<h1>Examen de Literatura del siglo XIX</h1>
<div class="exam-sub">Marca una opción en cada pregunta y pulsa “Corregir examen”.</div>
<div class="exam-q" data-q="1">
<div class="exam-qtext">1. ¿De dónde viene el término "Romanticismo"?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: viene del inglés, del término "romantic", que significa apasionado.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: viene del francés, del término "roman", que significa novela.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: viene del latín, del término "roman", que significa "mar agitado".</button>
</div>
</div>
<div class="exam-q" data-q="2">
<div class="exam-qtext">2. ¿Quién fue el autor de Fausto y Los Sufrimientos del Joven Werther?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: Gustave Flaubert.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: Miguel de Cervantes.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: Johann Wolfgan von Goethe.</button>
</div>
</div>
<div class="exam-q" data-q="3">
<div class="exam-qtext">3. ¿Qué piensas los escritores románticos sobre la Ilustración y el Neoclasicismo?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: los rechazan por su énfasis en el orden, la racionalidad y la simetría.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: se consideran ilustrados y neoclásicos de corazón.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: admiten el Neoclasicismo, aunque tienen dudas sobre la Ilustración.</button>
</div>
</div>
<div class="exam-q" data-q="4">
<div class="exam-qtext">4. ¿Cuál es la actitud general de los poetas románticos?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: el optimismo ante el progreso y la posibilidad de entenderse con otros seres humanos.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: la búsqueda de la paz interior.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: la soledad y el pesimismo.</button>
</div>
</div>
<div class="exam-q" data-q="5">
<div class="exam-qtext">5. ¿En qué época buscaron inspiración muchos escritores románticos?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: en la Edad Media.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: en Grecia y Roma.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: en la Prehistoria.</button>
</div>
</div>
<div class="exam-q" data-q="6">
<div class="exam-qtext">6. ¿Cuál de estos músicos fue uno de los principales representantes del romanticismo musical?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: Johann Sebastian Bach.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: Ludwig van Beethoven.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: Claudio Monteverdi.</button>
</div>
</div>
<div class="exam-q" data-q="7">
<div class="exam-qtext">7. ¿Cómo se llama la obra de Espronceda que tiene como protagonista a Félix de Montemar?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: La Vida es Sueño.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: Rimas y Leyendas.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: El Estudiante de Salamanca.</button>
</div>
</div>
<div class="exam-q" data-q="8">
<div class="exam-qtext">8. ¿Qué es la "polimetría", frecuente en los poemas de Espronceda?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: el uso de distintos tipos de estrofas en un solo poema.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: el uso de palabras muy variadas en las descripciones.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: el uso de diálogos dentro de los poemas.</button>
</div>
</div>
<div class="exam-q" data-q="9">
<div class="exam-qtext">9. ¿Cómo se llama el libro que agrupa los poemas de Bécquer?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: Poemas del Alma.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: Rimas.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: Leyendas.</button>
</div>
</div>
<div class="exam-q" data-q="10">
<div class="exam-qtext">10. ¿Cuál de estos títulos corresponde a una de las Leyendas de Bécquer?</div>
<div class="exam-options">
<button type="button" class="exam-option" data-letter="A">Opción A: Noche Oscura del Alma.</button>
<button type="button" class="exam-option" data-letter="B">Opción B: El Castillo en Llamas.</button>
<button type="button" class="exam-option" data-letter="C">Opción C: El Rayo de Luna.</button>
</div>
</div>
<div class="exam-sep"></div>
<button type="button" class="exam-submit" id="xixExamSubmit">Corregir examen</button>
<div class="exam-result" id="xixExamResult" aria-live="polite"></div>
</div>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Escritura romántica.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Esta es una de las decisiones más difíciles que te toca tomar y que cambia automáticamente el rumbo de las cosas. Declara tu futuro, uno que es realmente incierto. Lo que no sabes es que lo que decidas marcará un antes y un después en tu mundo, que hará que marchite o renazca una historia que está por descubrir.`,
`Te enzarzas en una conversación definitiva que te hará quizás arrepentirte para siempre, toda la vida, y estar condenado al arrepentimiento, o quizás sentirte maravillado por haber hecho feliz a una persona que disfruta de la maravillosa esencia de la literatura: esas historias bellas, con anhelos y deseos. En el lugar más recóndito de tu corazón hay una pequeña voz, como un susurro, una caricia hacia el alma, porque tus secretos más anhelados quizás fueran parecidos. Ojalá tú hubieras podido vivir en la época de los “susurros entre letras”, como te gustaba llamarla.`,
`—Por favor, te lo ruego. Imagina poder conseguir tu deseo, un deseo que te hace llegar al cielo cuando tus pies tocan la tierra, pero tu alma toca las nubes y se transporta, te hace soñar. ¡No me puedes quitar eso! Hay veces que tu piel puede parecer bella, pero por dentro hay algo que te desgarra, que te hace querer volver al pasado. Pero, ¿sabes algo? Todo lo que hacemos nos marca como cicatrices para siempre. Y tú, señor, bajo esa apariencia de tenerlo todo, tienes heridas invisibles, como cicatrices marcadas a fuego.`,
`Te sientes confuso. Es la primera vez que alguien te dice eso. Pero ¿lo que más te duele? Que no hay una sola palabra que haya dicho que sea mentira. Son todas verdades gritadas a tu cara, y sientes que lleva razón, que has hecho daño a muchas personas y puedes cambiar las cosas. Solo está en tus manos saciar tu conciencia.
—De acuerdo. Puedes quedarte en la época de la “lluvia hacia el corazón”. Pero, a cambio, solo te pido algo: que, en esta época, seas libre, sin lágrimas derramadas por no haber luchado por un amor, dejándolo marchito en vez de hacerlo resurgir entre la tormenta. Me rendí y me arrepiento todos los días de mi miserable vida —le expresas con el corazón en las manos.`,
`—¿Perdiste a una mujer? —te dice extrañado.
—A la mujer de mis más profundos sueños, esa mujer perfecta a la que no supe dar lo que merecía. El dolor por haberle fallado, a día de hoy, me carcome las entrañas de la poca alma que me queda. Se marchó con mi espíritu para dejar un enorme agujero negro que no me deja dormir por las noches. No puedo respirar. Era como mi aire para vivir, y la perdí —recuerdas.
—De acuerdo, tenemos un trato.
Te despides de él con un profundo dolor en el pecho.`,
`Vuelves a tu piso alquilado en Manchester, pensando en la conversación que has tenido con él. No puedes parar de pensar: no solo por la facilidad con la que abriste tu complejo corazón a un extraño, sino también porque nadie te dijo lo que no querías escuchar, y él sí lo hizo.`,
`Un día más hasta el viaje de vuelta: el día más difícil de tu vida, en los que los demonios carcomen lo que te queda de alma. Sufres por lo que has vivido, por el daño que has hecho, por cómo has sido con el mundo. Y, por primera vez, comprendes lo que tanto llevabas sin entender:
“LAS COSAS QUE HACES A LOS DEMÁS TU ALMA LAS CONDENARÁ A TU ETERNIDAD.”`,
`El día de regreso llevas un nudo de nervios. Los días en el piso de Manchester te sirven para replantearte tu existencia: si de verdad sigues vivo por una razón o simplemente para sufrir. Tomas una de las decisiones más importantes en la vida de una persona:
“¿Sigo adelante o me rindo?”`,
`Pero tomas la decisión de los valientes: sigues adelante, porque hay muchas cosas por las que hacerlo. Vuelves a Londres y vas a la iglesia abandonada en la que apareciste hace unos días.`,
`El brillo del viaje en el tiempo te envuelve una vez más`,
`Vuelves al presente. Te reciben en el laboratorio de nuevo. Está como lo recordabas, pero algo te llama la atención: todos tus sentidos se alertan, te sientes como un extraño, como si ese no fuera tu hogar, como si no pertenecieras ahí. Y es cierto: recuerdas el otro sitio y desearías volver, pero ya es tarde.`,
`Estás agotado, vomitas. Te llevan a una sala para recuperarte`,
`Te encuentras con el director del proyecto XIX Hoy, William Salazar, y le dices que era una falsa alarma, escribiendo así lo que será tu destino. Le comentas que solo era un poeta que usaba metáforas sorprendentemente modernas, pero que no había ningún peligro. Mientes sin remordimiento. Pero el director te cree y te da las gracias por tu excelente trabajo.`,
`Vuelves a tu casa por las calles de Madrid. ¿Lo has hecho bien? No lo sabes, pero por primera vez crees que sí.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/101.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/100.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/119.jpeg",
null,
"https://rafaxenakis.neocities.org/xixhoy/133.jpg",
"https://rafaxenakis.neocities.org/xixhoy/121.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/123.jpg",
"https://rafaxenakis.neocities.org/xixhoy/221.jpg",
"https://rafaxenakis.neocities.org/xixhoy/222.jpg",
"https://rafaxenakis.neocities.org/xixhoy/218.jpg",
"https://rafaxenakis.neocities.org/xixhoy/214.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 10";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Beethoven tecnológico.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`—Pero es demasiado arriesgado dejarte aquí, te tengo que devolver a 2025 —le dices al viajero del tiempo, intentando convencerlo.
—¿2025? Eso tiene aún menos sentido. Soy un viajero del tiempo procedente de un futuro más lejano al tuyo. ¿Qué voy a hacer en el asqueroso 2025, con todos los problemas que tuvo ese año? Bueno, en tu caso, los tiene —te responde el viajero.`,
`—¿Con que eres de un futuro más lejano, eh? En ese caso, ¿de qué año vienes? —preguntas con interés.
—A ti qué más te da. Déjame hacer mi tarea en esta época —dice el viajero de un año desconocido, intentando marcharse por la calle.
—Me temo que no me queda otra que obligarte a volver a 2025 —dices, mientras lo coges de la chaqueta para pararlo.`,
`—Inténtalo —es la última palabra que escuchas antes de notar su puño contra tu mandíbula.
Parece que se ha girado y te ha dado un puñetazo. El impacto es fuerte y no escuchas por el oído izquierdo. Con la mirada borrosa, intentando analizar la situación, ves cómo el hombre se va fundiendo mientras corre con cierta agilidad y rapidez entre la niebla del final de la calle, hasta que dicha figura desaparece.`,
`Cuando vuelves a ver, caminas hasta el final de la calle en busca de ese viajero misterioso, pero no hay rastro. La calle sale a una avenida con multitud de personas: podría ser cualquiera ahora. Empiezas a caminar entre la gente, con los ojos abiertos, buscando con agudeza la figura atlética de ese hombre. Todo el mundo parece igual, y el tiempo se acaba.`,
`De pronto, ves a una figura correr entre la multitud.
Aunque sigues con la vista nublada, le persigues. Es demasiado rápido como para seguirle el ritmo.
Después de dos largas manzanas, entra a un parque. Es muy amplio y está lleno de naturaleza. Te detienes para recuperar el aliento mientras observas el alrededor. Vas preguntando a todas las personas que ves si han visto a un hombre con su apariencia, hasta que te conducen a una editorial.`,
`Está cerrada, pero con las luces encendidas.
Lo ves de espaldas, observando unos carteles. Te acercas silenciosamente, le tocas el hombro y le dices:
—Te tengo, Walter.
—Lo siento, caballero, pero está cerrado. Vuelva mañana —responde un desconocido.
Resulta que no era él; realmente te ha dado esquinazo.`,
`Tras un rato intentando localizar al sujeto, decides que el salto en el tiempo es más urgente. Al estar entre tanta gente, debes buscar un callejón o algo similar para que no te vea nadie. Encuentras un callejón mugroso, donde hay un hombre realmente demacrado, lo que en 2025 llamarías vagabundo. No hay más sitios para ocultarse, así que, como no quieres que te vea, le gritas que está a punto de venir la policía, que está arrestando a todos los vagabundos de Manchester. Se pone en pie y echa a correr. Te sientes mal por él, pero no había más remedio.`,
`Tras eso, el resplandor azul aparece. Te sigue pareciendo sorprendente cada vez que lo ves. Llegas a 2025. No has tenido en cuenta la diferencia de construcciones entre los siglos. Apareces dentro de la sala del laboratorio subterráneo, con un tipo de luz que ahora te parece extraña, antinatural: la luz eléctrica.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/101.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/134.jpg",
"https://rafaxenakis.neocities.org/xixhoy/135.jpg",
"https://rafaxenakis.neocities.org/xixhoy/136.jpg",
"https://rafaxenakis.neocities.org/xixhoy/137.jpg",
"https://rafaxenakis.neocities.org/xixhoy/138.jpg",
"https://rafaxenakis.neocities.org/xixhoy/139.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 11";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Genial. Volver al mapa del sótano del ministerio</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Genial, has superado el examen. Ahora debes al despacho del director. Sigues sin saber de qué va todo esto, pero te sientes satisfecho`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/211.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapasotano";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $examen += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Acabas de finalizar el examen sobre Historia y Literatura del siglo XlX. Te dan la nota de inmediato y, al verlo, ya en tu cara se refleja que has suspendido el examen. Estás demasiado decepcionado contigo, ya que no te hizo mucha gracia haber fracasado.
—He suspendido… —dices decepcionado y sorprendido ya que pensabas que te había salido muy bien. Eres un experto en el tema, no entiendes ese resultado.`,
`Cierras el ordenador y te diriges a la salida. De repente por arte de magia aparece la misma señora que te recibió al lado del ascensor, a la entrada del sótano. La señora, con empatía, te da las gracias de por lo menos haberlo intentado y te lleva con ella afuera.
—Muchas gracias por haber venido, nos sentimos muy agradecidos de su participación —te dice mientras te acompaña a la salida.
Sales triste y con cara de vergüenza: te considerabas un buen profesor universitario y escritor, pero después de esto...`,
`Caminando por las preciosas calles de Madrid, llevas un cúmulo de cosas en tu cabeza preguntándote de qué podrá tratar ese secretísimo proyecto. Ahora te quedarás sin saberlo.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/212.jpg",
"https://rafaxenakis.neocities.org/xixhoy/213.jpg",
"https://rafaxenakis.neocities.org/xixhoy/214.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 2";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Escritura romántica.mp3" {"fade":1.5, "volume":0.45}>>
<div id="poemMaker">
<h1>Escribes el poema</h1>
<div class="pm-lead">
Tu misión es escribir un poema que responda al gusto del romanticismo, así que escoge bien las opciones.
</div>
<!-- Paso 1 -->
<div class="pm-card pm-step" id="q1">
<div class="pm-q">Pregunta 1: ¿Qué emociones quieres reflejar en el poema?</div>
<div class="pm-options">
<button type="button" class="pm-option" data-action="fail">Opción A: serenidad y optimismo en el progreso.</button>
<button type="button" class="pm-option" data-action="goto-q2">Opción B: emociones intensas, llenas de expresividad, soledad y pesimismo.</button>
</div>
</div>
<!-- Paso 2 -->
<div class="pm-card pm-step pm-hidden" id="q2">
<div class="pm-q">Pregunta 2: ¿Qué tipo de temas quieres tratar en el poema?</div>
<div class="pm-options">
<button type="button" class="pm-option" data-action="goto-q3">Opción A: amores desgraciados, luchas contra el poder, rebeldía, muerte.</button>
<button type="button" class="pm-option" data-action="fail">Opción B: la importancia de la razón, el progreso humano, los logros de la filosofía y la ciencia.</button>
</div>
</div>
<!-- Paso 3 -->
<div class="pm-card pm-step pm-hidden" id="q3">
<div class="pm-q">Pregunta 3: ¿Quieres que tu poema sea de amor? ¿O prefieres otros temas también típicos del romanticismo?</div>
<div class="pm-options">
<button type="button" class="pm-option" data-action="goto-q4a">Opción A: un poema de amor.</button>
<button type="button" class="pm-option" data-action="goto-q4b">Opción B: otros temas románticos.</button>
</div>
</div>
<!-- Paso 4A (amor) -->
<div class="pm-card pm-step pm-hidden" id="q4a">
<div class="pm-q">Pregunta 4A: ¿De qué quieres que trate tu poema de amor?</div>
<div class="pm-options">
<button type="button" class="pm-option" data-action="poem:2">Opción A: sobre una hermosa mujer en un jardín.</button>
<button type="button" class="pm-option" data-action="poem:5">Opción B: sobre un amor correspondido en un paisaje natural.</button>
<button type="button" class="pm-option" data-action="poem:7">Opción C: sobre una traición amorosa que te duele en el corazón.</button>
<button type="button" class="pm-option" data-action="poem:8">Opción D: sobre cómo el amor no necesita palabras.</button>
<button type="button" class="pm-option" data-action="poem:9">Opción E: sobre poner fin a un amor que te ha traído sufrimiento.</button>
<button type="button" class="pm-option" data-action="poem:10">Opción F: sobre abandonar amargamente el paraíso del amor.</button>
<button type="button" class="pm-option" data-action="poem:4">Opción G: sobre un amor que te ahoga.</button>
</div>
</div>
<!-- Paso 4B (otros temas) -->
<div class="pm-card pm-step pm-hidden" id="q4b">
<div class="pm-q">Pregunta 4B: ¿De qué quieres que trate tu poema?</div>
<div class="pm-options">
<button type="button" class="pm-option" data-action="poem:1">Opción A: sobre un trabajador rebelde que quiere vengar a su padre.</button>
<button type="button" class="pm-option" data-action="poem:3">Opción B: sobre un hombre solitario que se encuentra con su doble.</button>
<button type="button" class="pm-option" data-action="poem:6">Opción C: sobre la muerte de un amigo muy querido.</button>
</div>
</div>
<div class="pm-sep"></div>
<!-- Fracaso inmediato -->
<div class="pm-card pm-hidden" id="pmFailPanel">
<div class="pm-q"><strong>La escritura del poema romántico no va bien</strong></div>
<button type="button" class="pm-action" id="pmFailBtn">Completar el poema como sea</button>
</div>
<!-- Poema final -->
<div class="pm-hidden" id="pmPoemPanel">
<div id="pmPoemIntro"><strong>Después de un buen rato de trabajo, lees tu poema terminado</strong></div>
<div id="pmPoemText"></div>
<div style="margin-top:16px;">
<button type="button" class="pm-action" id="pmBackMap">Te sientes satisfecho del poema</button>
</div>
</div>
</div>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Te sientes muy contento con el poema que has escrito. Ahora es el momento de ir a la tertulia del Café San Juan y recitarlo. ¡El triunfo literario está en tu mano!`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/045.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $poema += 1>><</if>>
<<set $cafeteria = 0>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`No te sientes nada contento con lo que has escrito. Pero no se te ocurre nada mejor. En fin, quizás los miembros de la tertulia del Café San Juan vean tu poema con mejores ojos. ¡No has viajado dos siglos hacia atrás para rendirte sin luchar!`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/045.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $poema += 2>><</if>>
<<set $cafeteria = 0>>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Café de Madrid.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Vas a la Cafetería San Juan y encuentras de nuevo al grupo de la tertulia. Les pides leer tu texto y ellos acceden. Cuando dejas de leer tu texto, te aplauden solo dos o tres personas de fuera de la tertulia. Después empiezan a hablar los tertulianos entre sí.
—Esto no es lo que esperábamos.
—Nos ha decepcionado.
Este texto no es propio del romanticismo.`,
`El señor de la barba toma la iniciativa de hablarte directamente.
—Gracias por traernos este texto, pero… joven, no está correctamente escrito. Hay elementos que no entendemos e incluso que no tienen sentido. Lo lamento mucho.
Ves como todos asienten, dándole la razón. No te esperabas esa reacción, te encanta escribir y llevas haciéndolo muchos años.`,
`—Oh. Lo siento —dices avergonzado.
—No hay por qué disculparse, joven. Puede intentarlo más adelante. Quizás el próximo año.
Sabes que el próximo año no estarás aquí. No hay segunda oportunidad para ti.
—Gracias por su escucha y atención, señores —dices mientras te vas triste y con la cara un poco sonrojada.`,
`Al ver sus caras y lo que te dijeron no te dieron ni ganas de preguntar si el texto podía ser publicado en una imprenta. Te vas cabizbajo y pensando que no vas a poder cumplir tu misión. Solo te queda esperar el salto al presente y dar alguna excusa al director del proyecto.
Mientras caminas, piensas en qué dirás y cómo vas a disculparte al volver al presente después de haber fracasado en tu misión.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/038.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/014.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 4";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Oscuridad tensa.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Este tipo no es de fiar. Mejor decir que no y huir</button>
<button type="button" id="choice-dialogo5">Puede ser una oportunidad única. Al fin y al cabo, ¿cuándo vas a volver a 1840?</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de un largo día en Madrid, se hace de noche y vas caminando por las calles. Pero vas notando que cada vez las calles son más oscuras, y muchas de ellas tienen muy mal ambiente, ya que hay gente rara que no está bien. Pero no solo hay personas adultas, también hay niños que viven en la calle: algunos juegan y otros venden periódicos y celebran cada moneda que consiguen.`,
`Se te acerca un hombre de aspecto extraño y no muy agradable.
—Hola, ¿quieres un poco de tabaco de contrabando? Es muy barato y muy bueno.
Tú le contestas:
—No, gracias.`,
`El tipo insiste. No muy convencido y con cara de espanto, sacudes la cabeza para indicarle que no, que no quieres nada de eso. Así que, no contento con tu respuesta, continúa:
—Tu cara es de alguien refinado —dice mirándote con los ojos muy abiertos—, pareces un hombre de buena cabeza y estoy seguro de que esto sí te va a interesar. Mis amigos y yo hemos encontrado un libro muy valioso, pero ninguno sabemos leer… quizá podrías venir y verlo, y si te interesa, se negociará para que sea tuyo.
¿Qué deberías hacer? La verdad es que te da curiosidad el libro. ¿Y si es alguna edición de una obra perdida en el presente?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/047.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/046.jpeg",
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "32.2 Malas calles en Madrid (no aceptas)";
const PASSAGE_2 = "32.3 Malas calles en Madrid (aceptas, ta atacan). Con final.";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
32.1 Malas calles en Madrid
<<if visited() == 1>><<set $miedo += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Le dices que no te interesa y te vas lo más rápido que puedes. Prefieres no mirar atrás`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/048.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $miedo += 1>><</if>><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Asientes, y te lleva del brazo a un lugar más oscuro.
De repente, eres agarrado por tres hombres muy fuertes, de los que por más que te muevas no puedes separarte. Un hombre se acerca a ti y, a dos pasos de tu alcance, saca una navaja. Te amenaza con ella, para pedirte todo el dinero. Tú niegas tener nada. Hasta que te clavan la navaja en el abdomen. Te caes al suelo y te roban todo lo que tienes.`,
`Tapando el navajazo y gritando de dolor, pides ayuda, aunque te das por asegurado de que nadie te oirá. En tu mente empiezan a aparecer muchas preguntas. Tu conciencia cada vez tiene más remordimiento, cada vez te culpas más de haber entrado estúpidamente en esas calles, cada vez pierdes más sangre...`,
`Y es ahí donde te das cuenta de que quizás no puedas volver a tu verdadero presente.
Piensas: ¿Qué me va a pasar ahora? ¿Moriré aquí, en el siglo XIX? ¿Quedará mi cuerpo aquí o apareceré en el siglo XXI? ¿Me va a ayudar alguien?
Todo parece desaparecer a tu alrededor.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/049.jpg",
"https://rafaxenakis.neocities.org/xixhoy/050.jpg",
"https://rafaxenakis.neocities.org/xixhoy/051.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 5";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Vientos Peligrosos.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Decides comprar la pistola. Quizás la necesites más adelante.</button>
<button type="button" id="choice-dialogo5">Decides no comprar la pistola. Es demasiado peligroso.</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Mientras vas caminando por Manchester, llegas a un barrio que no tiene muy buena reputación. Nada más llegar ves como había niños intentando robar a personas que pasaban por allí, muchos perros callejeros en los huesos y desnutridos y personas que te miraban muy desconfiados y amenazados. Uno de esos hombres se acerca a ti, cubriendo una pistola con su chaqueta. Te pones en alerta pero el hombre te dice rápidamente:
—Quiero vender esta pistola, te la vendo al precio que tu quieras —notas que lo dice desesperado, como si quisiera librarse de ella.`,
`Lo dudas por un momento y no sabes si deberías hacerlo o no, así que antes de comprar nada le respondes:
—Déjame verla un momento, quiero comprobar que esté en buen estado.
El desconfiado te dice:
—Vale, pero como la rompas te partiré una pierna.`,
`Lo miras con detalle y ves que es el arma de un oficial llamado “James”, ya que lo ponía en la culata del arma
—Vamos, decídete. Te dejo un revólver a muy bajo precio, solo 25 monedas.
Quizás necesites el arma para más tarde, para cuando te enfrentes al poeta sospechoso. Pero quizás sea un peligro ir con un arma por ahí. ¿Qué deberías hacer?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/150.jpg",
null,
null
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "34.2 Zona pistola (compras pistola)";
const PASSAGE_2 = "34.3 X Zona pistola (no compras pistola)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
<<if visited() == 1>><<set $niñotren -= 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de tanto pensar se la compras por un precio razonable, la guardas en el bolsillo de tu chaqueta y el hombre se va rápidamente.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/149.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $pistola += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Le dices que no estás interesado en el arma. El tipo insiste, pero tú decides darle la espalda y andar rápidamente, sin mirar atrás.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/149.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Beethoven tecnológico.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Le ordenas seguir adelante, amenazándolo con la pistola</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Con los nervios y tensión del ambiente, sacas el arma y le dices:
—Acompañame ahora mismo o no tendré compasión —dices mientra te tiembla el arma.
El poeta asiente con la cabeza rápidamente, nervioso y con miedo.
—Llévame a un sitio deshabitado, ahí haremos el salto del tiempo. Ni se te ocurra intentar escapar. Como hagas alguna tontería o movimiento raro no dudaré en disparar.`,
`Camináis por las calles, el poeta delante tuya y tú apuntándole con la pistola, que está escondida en tu chaqueta.
Él, sin otra opción que no sea morir, te acompaña fuera de la ciudad, a un sitio oculto para que los dos podáis hacer el salto en el tiempo. Camináis por una calle no muy habitada, pero seguía habiendo gente, así que llevas el arma escondida en la chaqueta. Cuando llegas a las afueras, sacas directamente la pistola. Ante cualquier movimiento, no dudarías en apretar el gatillo.`,
`Llegáis a una estación de tren abandonada desde hace un tiempo, con restos de máquinas de vapor destrozadas por el paso del tiempo, así que dices al poeta:
—Nos queda poco tiempo aquí, así que sigamos avanzando y encontremos el lugar adecuado para poder hacer este viaje sin que nadie levante sospechas.
Él te mira desconfiado, así que sigues en alerta por cualquier movimiento extraño. Conseguís llegar al lugar más escondido posible y esperáis a que llegue la hora cero. Si en en ese momento está justo al lado de ti, volverá al presente contigo.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/140.jpg",
"https://rafaxenakis.neocities.org/xixhoy/141.jpg",
"https://rafaxenakis.neocities.org/xixhoy/142.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "36.1 Momento en el que el poeta huye";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Beethoven 2025.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Disparas al poeta.</button>
<button type="button" id="choice-dialogo5">Decides no disparar y dejarlo huir.</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`De repente te pega un codazo en la nariz, haciendo que lo sueltes. Te lleves una mano a la nariz sintiendo sangre caer por ella mientra el poeta huye
—¡Mierda! —exclamas.
Empiezas a seguir al poeta. Ves que no lo vas a poder alcanzar, tienes que tomar una decisión rápida. ¿Deberías dispararle? ¿Realmente es un peligro para la humanidad?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/143.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "36.2 Momento en el que el poeta huye (disparas). Con final.";
const PASSAGE_2 = "37. Momento en el que poeta huye (no disparas). Con final.";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Te detienes, le apuntas a la espalda con la pistola y disparas, haciendo que se desplome en el suelo.`,
`Suspiras mientras caminas hacia el poeta, te agachas a su lado y le agarras la muñeca para tomarle el pulso: tiene, pero muy débil. En ese momento, el poeta gira la cabeza hacia ti y te susurra algo que no entiendes.
—¿Qué dices? —preguntas al no escucharlo.
—Creéis que estáis arreglando el mundo, pero lo estáis empeorando, no entendéis una mierda.
—¿Por qué lo dices? —preguntas confundido.
—Tú... no eres de mi... tiempo —dice con palabras entrecortadas.
—¿A qué te refieres?`,
`Y antes de que te pudiera responder, suelta su último suspiro, el brillo de sus ojos se pierde, su mirada se convierte en una mirada pérdida, vacía. Le sostienes entre tus brazos, le sueltas sintiendo un escalofrío recorrer tu espalda al mirar como su cuerpo yace sin vida y el suelo se llena de un inmenso charco de sangre roja. Miras tu reloj y ves que ya mismo es la hora del salto en el tiempo.`,
`Te levantas quitando sangre de tu nariz con la manga de tu camisa, mientras miras el cuerpo. Cuando sales del trance, te limitas a esperar, sin más tiempo a pensar, que un brillo azul te destalle en la cara.`,
`La cuenta atrás comienza y decides finalmente vivir con eso. Dejas caer la pistola. Mientras va surgiendo a tu alrededor el resplandor azul, piensas en cómo va a explicar lo sucedido en el presente. ¿Entenderán tu decisión? ¿Te felicitarán? ¿Te castigarán? Ves su cuerpo inerte ahí tirado justo antes de desaparecer, pasan muchas preguntas por tu mente. ¿Con su muerte vuelve todo a la normalidad? ¿Hay normalidad en este mundo extraño?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/144.jpg",
"https://rafaxenakis.neocities.org/xixhoy/145.jpg",
"https://rafaxenakis.neocities.org/xixhoy/147.jpg",
"https://rafaxenakis.neocities.org/xixhoy/142.jpg",
"https://rafaxenakis.neocities.org/xixhoy/146.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 12";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Decides no disparar. No quieres convertirte en un asesino. Contemplas como escapa. Le dices adiós con la mente: vive tu vida, poeta del futuro`,
`Por un momento piensas en tomar la pistola y quitarte la vida. Te sientes mal, un idiota, o aun peor... Sabes que eres partícipe de este experimento oculto y jamás podrás contar esta experiencia. Te sientes deprimido al saber que solo eres una rata de laboratorio para todos esos científicos.`,
`La cuenta atrás comienza y decides finalmente vivir con eso. Dejas caer la pistola. Mientras va surgiendo a tu alrededor el resplandor azul, piensas en cómo va a explicar lo sucedido en el presente. ¿Entenderán tu decisión? ¿Te felicitarán? ¿Te castigarán?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/148.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/142.jpg",
"https://rafaxenakis.neocities.org/xixhoy/146.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 13";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
Se puede fundir con 16.1 y 16.4<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Fábrica Manchester.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Tras meditarlo un rato tu curiosidad gana y decides entrar al lugar donde se hace la mayoría de la ropa de todos los mancunianos. Los portones se abren produciendo un tedioso chirrido metálico. Ante tus ojos, la mayor fábrica textil jamás fabricada en las islas británicas. Miles y miles ventanales iluminan las hileras de trabajadores (muchos más pequeños que tus alumnos) que, por poco más de lo que vale una hogaza de pan, se sientan media 14 horas sobre toscos taburetes de madera a fabricar los ropajes de la ciudad más innovadora de esta nación.`,
`Las pobres personas que trabajan allí es porque no les queda otra. Famélicos, acuden en busca de trabajo para ganar lo justo para poder comprar un trozo de ese asqueroso pan de centeno. En comparación, los de Shein parecen unos angelitos piensas, cuando te das cuenta que hay una zona en la que se agrupan la mayoría de niños de corta edad. Decides acercarte.`,
`A medida que te vas acercando, las conversaciones cesan, las palabras dejan de brotar y lo único que escuchas es el sonido de sus cortas manos trabajando a una velocidad vertiginosa. Entre el grupo de pequeños destaca una niña que sustituye bobinas de hilo gastadas por otras nuevas. Su corta edad es impresionante (no pasará de los 8 años) y pese a ello es una de las más habilidosas en su puesto. Te acercas tímidamente y la saludas. Ella te hace un gesto rápido. Le das un caramelo de menta que te has traído para el viaje. Lo coge temerosa y se lo mete en la boca con incertidumbre.`,
`En ese instante comienza a saborearlo y, en menos de 2 minutos, se lo ha terminado por completo. En ese instante la miras, te mira, cruzáis miradas. Decides preguntarle por qué, por qué está allí siendo tan joven, por qué su familia la abandona en la fabrica a su suerte. Entonces empieza a hablar: Se llama Victory Lucy, en honor a la reina. Vive en las chabolas colindantes a la fábrica en la que estáis. Tiene 7 años (Dios santo piensas) y 4 hermanos pequeños.`,
`Vive en una habitación cochambrosa que comparte con sus hermanos y su madre. Su padre está muerto, por eso tiene que trabajar. Durante el día ella trabaja y su madre se queda en casa cuidando a los pequeños. Cuando cae la noche y la pequeña Victory Lucy puede descansar, la jornada de su madre empieza. Trabaja en el prostíbulo al que acuden los trabajadores de la fábrica por la noche para olvidar su miserable vida.`,
`Te quedas anonadado. La atroz historia de esa pequeña es similares la de cientos y cientos de niños que trabajan esa fábrica. Te diriges a hablar con un desgarbado muchacho cuando un guarda de seguridad se percata de tu presencia. Decides huir, pero te da tiempo a darles el resto caramelos que llevas encima. Una vez sales y te alejas te das cuenta de que te lloran los ojos y te pica la garganta. Se debe al asqueroso humo oscuro que expulsa esa diabólica fábrica. Y no nosotros nos quejamos, piensas antes de seguir con tu investigación.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/153.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/152.jpg",
null,
null,
"https://rafaxenakis.neocities.org/xixhoy/151.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $fabrica += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Decides ir de noche a la casa del poeta y registrarla</button>
<button type="button" id="choice-dialogo5">Decides no registrar la casa del poeta. ¡Que viva su vida tranquilo! Además, es peligroso.</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Meditas si deberías volver de noche a la casa del poeta sospechoso a registrarla. Cada vez estás más convencido de que es un viajero del tiempo, pero por otro lado, ¿por qué no dejarlo tranquilo en el pasado? ¿Es realmente peligroso que esté allí? Son demasiadas dudas.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/119.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "40.3 X Piso Manchester (decides registrar la casa del poeta)";
const PASSAGE_2 = "40.2 X Piso Manchester (decides no registrar la casa)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
btnDlg5.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_2 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
</div>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Te preparas para volver al siglo XXI</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Decides que lo mejor es no registrar el piso. Simplemente, volverás al siglo XXI y dirás que no se trataba de ningún viajero en el tiempo, solo un poeta adelantado a su tiempo. Te da pena quedarte con la duda, pero al fin y al cabo no eres un policía. ¿Cómo te vas a colar en un piso en medio de la noche para registrarlo? Es una locura.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/119.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "21.2 Salida Manchester (has dejado al poeta sin ir al piso)";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $primerencuentro += 1>><</if>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Decides esperar a la noche y registrar la casa del poeta. No es solo que pueda ser un peligro, sino que no puedes resistir la curiosidad. ¿Será realmente un viajero en el tiempo?`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/119.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<if visited() == 1>><<set $decidesregistrar += 1>><</if>>
<<if visited() == 1>><<set $primerencuentro += 1>><</if>>
<<if visited() == 1>><<set $yameditado += 1>><</if>>
Aquí debe haber:
- Biblioteca (24) (solo si $examen vale 0)
- Sala de Examen (25) (solo si $examen vale 0)
- Despacho de William Salazar (10.1) (Solo si $examen vale 1)
- Sala de Máquinas (solo si $salazar vale 1)El mapa debe incluir:
- Un enlace a la cafetería (aparece si $jovenlibro vale 1, no aparece si $jovenlibro vale 0, tampoco aparece si $carta vale 1):
Si $poema vale 0, lleva a Cafetería (1)
Si $poema vale 1, lleva a Cafetería (2)
Si $poema vale 2, lleva a Cafetería (31)
- Un enlace al Retiro (3.1) (permanece siempre con 3.1, pero sus opciones interiores, la del niño periódico y la del jovenlibro, desaparecen una vez cumplidas, cuando las variantes $niñoperiodico y $jovenlibro valgan 1)
- Un enlace a la Imprenta solo si la variable $jovenlibro vale 1, tampoco aparece si $publicado vale 1:
Si $carta vale 0, lleva a Imprenta (4)
Si $carta vale 1, lleva a Imprenta (6.1)
Dentro de Imprenta (6.1) hay dos opciones interiores: coger el $poemaviajero =1 6.2) o no coger el $poemaviajero =0 (6.3), aparte de las dos opciones se activa una variable llamada $publicado = 1
- Un enlace a calles de Madrid (5.1) (en su interior, hay una opción para entrar en las callejuelas 5.2, solo si $periodico vale 1), pero deja de aparecer si $piso vale 1.
- Un enlace a salida de Madrid, solo si $publicado vale 1
Si $poemaviajero = 1, lleva a Salida de Madrid (8.1)
Si $poemaviajero = 0, lleva a Salida de Madrid (8.2)
- Un enlace al piso de Madrid, solo si $piso vale 1
Si $cafeteria vale 0, lleva a piso (30.4)
Si $cafeteria vale 1, lleva a piso (30.1). Si lo escribes bien hay enlace interno a 30.2 y $poema pasa a valer 1. Si lo escribes mal hay un enlace interno a 30.3 y $poema pasa a valer 2. Tanto si lo escribes bien, como si lo escribes mal, $cafetería vuelve a valer 0
- Un enlace a malas calles en Madrid (32.1), solo si $miedo vale 0. Al entrar en (32.1), $miedo pasa a valer 1. Dentro hay dos opciones: 32.2 (que lleva de vuelta al mapa) y 32.3 (uno de los finales).
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Sala de Máquinas.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Apareces de pronto en el laboratorio. El viaje te ha dado náuseas y vomitas.`,
`Inmediatamente los científicos te ayudan y te llevan a una habitación para que descanses, antes de hablar con el director sobre cómo ha ido la misión. Estás muy cansado y decides dormir. Tras unas cuantas horas te sientes bastante mejor`,
`Aparece William Salazar, el director del proyecto. Vas con él al despacho. Te fijas de nuevo en su pelo canoso, gafas y traje oscuro. Te dice que te sientes y hasta te ofrece un café. Le dices que sí. Mientras lo tomas, te dice:
—Enhorabuena, chico. Lo has hecho muy bien. Felicidades por tu viaje y por publicar tu poema. Has hecho un buen trabajo.
—Muchas gracias. Al principio no estaba muy convencido de ir, pero luego me gustó mucho.
—¿Has tenido un buen regreso al presente?
-Sigo un poco mareado, pero me recupero rápido.`,
`Luego sigues hablando de cómo era todo en el año 1840. Entonces te dice que mires la pantalla de su ordenador.
William Salazar busca en el ordenador “Biblioteca Nacional”. Entra en un archivo en el que pone Revista Literaria Madrid (Año 1840). William Salazar entra en el archivo en el cual encontráis el poema que tú mismo escribiste en el pasado. Piensas: “¡qué raro! ¿Cómo puede estar mi poema allí?”`,
`—Como puedes observar, en esta revista de 1840 aparece tu poema y tu nombre —te lo dice orgulloso, pero a la vez preocupado—. Son muy buenas noticias, pero eso conlleva que el pasado se puede cambiar fácilmente, y eso puede tener consecuencias en el presente, como cambios políticos, sociales y más, que se deben investigar.`,
`Después añade.
—Tu misión ha terminado. Te agradecemos profundamente tu papel en el proyecto XIX HOY. Por ahora, todo este tema seguirá en secreto y te rogamos completo silencio. Más tarde o más temprano, el público se enterará de la existencia de los viajes en el tiempo. Espero que para entonces la humanidad pueda usarlos para el bien. Por supuesto, recibirás una cantidad de dinero importante.
—No acepté por dinero.
—Lo sabemos, pero te lo mereces. No te preocupes, aparecerá en tu cuenta.`,
`Te despides del director William Salazar y unos guardias te conducen amablemente fuera del Ministerio de Ciencia. Vuelves a casa pensando en todo lo que ha ocurrido. ¿Qué pasará a partir de ahora con los viajes en el tiempo? ¿Los usarán para cambiar pasado, presente y futuro? ¿Volverás alguna vez a ese siglo XIX que tanto te ha fascinado? ¿Hay más personas de otros países o épocas que ya están viajando en el tiempo? Mientras caminas por las avenidas de Madrid, piensas que solo el tiempo puede responder a todas esas preguntas`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/221.jpg",
"https://rafaxenakis.neocities.org/xixhoy/222.jpg",
"https://rafaxenakis.neocities.org/xixhoy/216.jpg",
"https://rafaxenakis.neocities.org/xixhoy/223.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/216.jpg",
"https://rafaxenakis.neocities.org/xixhoy/214.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 6";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script><div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Volver al mapa de Madrid</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Te paras a descansar un rato en el piso que has alquilado. No es que sea gran cosa, pero al menos es un techo en el que refugiarte. Cierras los ojos, sabiendo que no debes perder demasiado tiempo. Solo tienes tres días para completar tu misión. Después de un rato, te sientes de nuevo con fuerzas`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/023.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "Mapa Madrid 1840";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
Instrucciones de Presente 2
- Empieza en Sala de Máquinas (14): hay un enlace interno. Si $poemaviajero vale 1, hay un enlace a (16.1). Si $poemaviajero vale 0, hay un enlace a 16.4 (con final).
- En 16.1 hay dos opciones. Aceptar te lleva (16.2), que a su vez engancha con (38). No aceptar te lleva a (16.3) con final.Deben aparecer los siguientes elementos:
- Si $pisomanchester vale 0, aparece Manchester callejón (12.2) , el cual tiene un enlace interno a (12.3) que solo aparece si $charco vale 0. Dentro de (12.3) $charco pasa a valer 1
- Si $charco vale 1, aparece en el el mapa el piso de Manchester.
Si, $pisomanchester vale 0, lleva a 12.4. Al entrar, $pisomanchester pasa a valer 1
Si $pisomanchester vale 1 y $primerencuentro vale 0, lleva a (40.4) y este de vuelta al mapa
Si $pisomanchester vale 1 y $primerencuentro vale 1, lleva a (40.1) y, dentro de este, hay dos enlaces. Uno lleva a no registrar (40.2) y pone la deja la variable $decidesregistrar en 2 (aunque creo que lo mejor es que lleve directamente a 21.2). El otro lleva a registrar (40.3) y pone la variable $decidesregistrar en 1.
- Si $localizacionpisopoeta vale 0 y $pisomanchester vale 1, aparecerán en el mapa (13.1), (13.2) y (13.3). La primera vez que se visita cada uno de ellos, $busquedapiso sube en 1.
- Si $busquedapido vale 3, aparecerá en el mapa (13.4). En su interior, subirá $localizaciónpisopoeta a 1.
- Si $localizacionpisopoeta vale 1, aparecerá el piso del poeta, pero desaparece si $decidesregistrar vale 2.
Si $primerencuentro vale 0, llevará a (15). En ese pasaje, $primerencuentro pasará a valer 1.
Si $decidesregistrar vale 1, llevará a (22.1). Hay una opción interior. Si decides encararte con él, llevará a (23). Si decides no encararte con él, lleva a (21.1), cambiando la variable $decidesregistrar en 3 (quizás este cambio no haga falta)
(EXTRA: dentro de 23, aparecen estas opciones, si $pistola vale 0, aparece la opción de "capturarlo sin pistola" que lleva a 27 con final, si $pistola vale 1 aparece la opción "capturarlo con pistola" que lleva a 35, independientemente aparece seguro la opción "dejarlo ir" que lleva a la opción 26. Dentro de 35, hay un enlace a 36.1 y, dentro de este, un enlace a 36.2 con final y un enlace a 37 con final)
- Si $fabrica vale 0, aparece la zona fábrica (39). Allí $fabrica pasará a valer 1.
- Si $niñotren vale 1, aparece la zona pistola (34.1). Dentro, $niñotren volverá a valer 0. En 34.1 hay dos opciones. Si compras la pistola vas a (34.2) donde $pistola pasará a valer 1. Si no la compras vas a 34.3, donde $pasará a valer 0.
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Entrar al mapa de Manchester</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Te echas un rato a descansar en tu piso de Manchester. No es una mansión, pero al fin y al cabo te permite relajarte. No mucho rato, ya que no debes perder el tiempo. Solo tienes tres días y tu misión es importantes. Después de unos minutos, decides ponerte otra vez en marcha`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/119.jpeg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "mapamanchester";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Después de que se completen los tres días que tenías para estar ahí, mientras vas pensando en todo lo sucedido, avanzas por un camino bastante desolado. Has encontrado un lugar aislado desde el que hacer el viaje de vuelta desde Manchester, sin viajar de nuevo a Londres`,
`Las únicas personas que ves son dos vagabundos borrachos. El único ruido que se escucha es el sonido de tus zapatos aplastando la tierra y el de las botellas de alcohol cayendo al suelo a lo lejos. Por tu lado pasan algunos coches de caballos y los cocheros se quedan mirándote extrañamente. Te queda poco para llegar, y las únicas personas que pasan por tu lado son campesinos de bajo nivel.`,
`Llegas a la iglesia. Si pensabas que antes olía mal, ahora sientes que huele tres veces peor. No sabías cómo eso era posible, pero era así. Con repugnancia, y con los dedos cerrando los orificios de tu nariz mientras respiras por la boca, empujas la puerta de la iglesia.`,
`Todavía falta una hora para poder viajar al siglo XXI. Durante esa hora reflexionas sobre lo que has logrado. También te aseguras de que nadie te vea ahí, en medio de la nada. Te quitas la ropa del siglo XIX y te pones el traje de seguridad del laboratorio.
Ves ratas correteando al fondo, cruces tiradas y partidas en el suelo, vidrios de los ventanales desperdigados. Mientras caminas entre los derrumbes, piensas si has hecho lo correcto.
Después de un rato pensando, decides que sí, ya que hasta ahora no ha alterado nada. A lo mejor solo es un poeta con ideas modernas e ilustradas. Te lo guardas para ti.`,
`De repente sientes una ventisca de aire en tu espalda. Miras tu reloj: son las 18:39. Sientes el resplandor azul. Comienza el viaje de vuelta.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/122.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/121.jpeg",
null,
"https://rafaxenakis.neocities.org/xixhoy/123.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 8";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Vientos Peligrosos.mp3" {"fade":1.5, "volume":0.45}>>
<div id="stage">
<div id="frame">
<img id="scene" src="https://rafaxenakis.neocities.org/xixhoy/001.jpg" alt="Escena">
</div>
<div id="box" class="dialog" role="dialog" aria-live="polite">
<div id="linea" class="dialog__content"></div>
<button class="next" id="seguir" type="button">Continuar ▷</button>
<!-- Botones de elección, ocultos al principio -->
<div id="choices" style="display:none; margin-top:8px; text-align:right;">
<button type="button" id="choice-dialogo4">Pantalla Final</button>
</div>
</div>
</div>
<script>
(function () {
/* --------- Texto por partes (se muestra con “Continuar”) --------- */
const lines = [
`Finalmente, decides dejar al poeta viajero del tiempo en el pasado. Quizás te sientes identificado con él, ya que a ti también te apasiona esta época. Te preguntas cómo puede permanecer él más de tres días en el pasado. ¿Vendrá de tu época o de un futuro todavía más lejano`,
`Dedicas tu tiempo a pasear por la ciudad. Después de que se completen los tres días que tenías para estar ahí, mientras vas pensando en todo lo sucedido, avanzas por un camino bastante desolado. Has encontrado un lugar aislado desde el que hacer el viaje de vuelta desde Manchester, sin viajar de nuevo a Londres`,
`Las únicas personas que ves son dos vagabundos borrachos. El único ruido que se escucha es el sonido de tus zapatos aplastando la tierra y el de las botellas de alcohol cayendo al suelo a lo lejos. Por tu lado pasan algunos coches de caballos y los cocheros se quedan mirándote extrañamente. Te queda poco para llegar, y las únicas personas que pasan por tu lado son campesinos de bajo nivel.
Llegas a la iglesia. Si pensabas que antes olía mal, ahora sientes que huele tres veces peor. No sabías cómo eso era posible, pero era así. Con repugnancia, y con los dedos cerrando los orificios de tu nariz mientras respiras por la boca, empujas la puerta de la iglesia.`,
`Todavía falta una hora para poder viajar al siglo XXI. Durante esa hora reflexionas sobre lo que has logrado. También te aseguras de que nadie te vea ahí, en medio de la nada. Te quitas la ropa del siglo XIX y te pones el traje de seguridad del laboratorio.
Ves ratas correteando al fondo, cruces tiradas y partidas en el suelo, vidrios de los ventanales desperdigados. Mientras caminas entre los derrumbes, piensas si has hecho lo correcto`,
`De repente sientes una ventisca de aire en tu espalda. Miras tu reloj: son las 18:39. Sientes el resplandor azul. Comienza el viaje de vuelta.`
];
/* Imágenes asociadas (índice alineado con lines):
Si es null/undefined, se conserva la imagen anterior. */
const imgs = [
"https://rafaxenakis.neocities.org/xixhoy/133.jpg",
null,
"https://rafaxenakis.neocities.org/xixhoy/122.jpg",
"https://rafaxenakis.neocities.org/xixhoy/121.jpeg",
"https://rafaxenakis.neocities.org/xixhoy/123.jpg"
];
// Nombres de los pasajes a los que llevan las dos opciones
const PASSAGE_1 = "pantalla final 9";
/* --------- Lógica --------- */
let i = 0;
const imgEl = document.getElementById("scene");
const textEl = document.getElementById("linea");
const btnNext = document.getElementById("seguir");
const choices = document.getElementById("choices");
const btnDlg4 = document.getElementById("choice-dialogo4");
const btnDlg5 = document.getElementById("choice-dialogo5");
function render(idx) {
if (imgs[idx]) imgEl.src = imgs[idx];
textEl.scrollTop = 0; // vuelve arriba en cada parte
window.typeLine(lines[idx], "#linea", 10);
}
render(i);
btnNext.addEventListener("click", function () {
i++;
if (i < lines.length) {
// Todavía hay texto: seguir mostrando partes
render(i);
} else {
// Ya se ha mostrado la última parte:
// ocultamos el botón "Continuar" y mostramos las dos opciones
btnNext.style.display = "none";
choices.style.display = "block";
}
});
// Listeners para las dos opciones finales
btnDlg4.addEventListener("click", function () {
$.wiki('<<goto "' + PASSAGE_1 + '">>');
});
// También con Enter o Espacio mientras exista el botón "Continuar"
window.bindNextKeys("#seguir");
})();
</script><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Tranquilo por Madrid.mp3" {"fade":1.5, "volume":0.45}>>
<div class="map-madrid1840">
<img src="https://rafaxenakis.neocities.org/xixhoy/mapamadrid.jpg"
alt="Mapa de Madrid en 1840">
<!-- Cafetería San Juan
aparece si $imprenta == 1 y $carta == 0.
Centro: (480,700) -> left:40%, top:87.5% -->
<<if $imprenta == 1 && $carta == 0 && $cafeteria != 1>>
<div class="map-label" style="left:40%; top:87.5%;">
<<link "Cafetería San Juan">>
<<if $poema == 0>>
<<goto "1. Cafetería (primera vez)">>
<<elseif $poema == 1>>
<<goto "2. Cafetería (poema exitoso)">>
<<elseif $poema == 2>>
<<goto "31. Cafetería (fracaso poema). Con final.">>
<</if>>
<</link>>
</div>
<</if>>
<!-- Parque del Retiro
siempre visible.
Centro: (890,420) -> left:74.17%, top:52.5% -->
<div class="map-label" style="left:74.17%; top:52.5%;">
<<link "Parque del Retiro">>
<<goto "3.1 Retiro (general)">>
<</link>>
</div>
<!-- Imprenta
aparece si $jovenlibro == 1 y $publicado != 1.
Centro: (130,670) -> left:10.83%, top:83.75% -->
<<if $jovenlibro == 1 && $publicado != 1 && $imprenta != 1>>
<div class="map-label" style="left:10.83%; top:83.75%;">
<<link "Imprenta">>
<<if $carta == 0>>
<<goto "4. Imprenta (primera vez)">>
<<elseif $carta == 1>>
<<goto "6.1 Imprenta (segunda vez)">>
<</if>>
<</link>>
</div>
<</if>>
<!-- Calles de Madrid
aparece desde el principio, pero desaparece si $piso == 1.
Centro: (150,460) -> left:12.5%, top:57.5% -->
<<if $piso != 1>>
<div class="map-label" style="left:12.5%; top:57.5%;">
<<link "Calles de Madrid">>
<<goto "5.1 Buscas alojamiento">>
<</link>>
</div>
<</if>>
<!-- Piso
aparece sólo si $piso == 1.
Centro: (500,268) -> left:41.67%, top:33.5% -->
<<if $piso == 1>>
<div class="map-label" style="left:41.67%; top:33.5%;">
<<link "Piso">>
<<if $cafeteria == 0>>
<<goto "30.4 X En el piso, solo descansando">>
<<elseif $cafeteria == 1>>
<<goto "30.1 X Escribes el poema">>
<</if>>
<</link>>
</div>
<</if>>
<!-- Salida de Madrid
aparece sólo si $publicado == 1.
Centro: (95,200) -> left:7.92%, top:25% -->
<<if $publicado == 1>>
<div class="map-label" style="left:7.92%; top:25%;">
<<link "Salida de Madrid">>
<<if $poemaviajero == 0>>
<<goto "8.1 Salida de Madrid (sin el poema)">>
<<elseif $poemaviajero == 1>>
<<goto "8.2 X Salida de Madrid (con el poema)">>
<</if>>
<</link>>
</div>
<</if>>
<!-- Barrio Desconocido
aparece sólo si $miedo == 0.
Centro: (1080,650) -> left:90%, top:81.25% -->
<<if $miedo == 0>>
<div class="map-label" style="left:90%; top:81.25%;">
<<link "Barrio Desconocido">>
<<goto "32.1 Malas calles en Madrid">>
<</link>>
</div>
<</if>>
</div>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Viajero entre Siglos.mp3" {"fade":1.5, "volume":0.45}>>
<div class="map-madrid1840">
<img src="https://rafaxenakis.neocities.org/xixhoy/mapaministerio.jpg"
alt="Mapa de Madrid en 1840">
<!-- Despacho William Salazar
aparece si $examen == 1.
Centro: (480,700) -> left:40%, top:87.5% -->
<<if $examen == 1>>
<div class="map-label" style="left:12.5%; top:86.25%;">
<<link "Despacho del Director">>
<<goto "10.1 Despacho William Salazar (primera misión)">>
<</link>>
</div>
<</if>>
<!-- Biblioteca
aparece desde el principio, pero desaparece si $examen == 1.
Centro: (150,460) -> left:12.5%, top:57.5% -->
<<if $examen == 0>>
<div class="map-label" style="left:50%; top:35.5%;">
<<link "Biblioteca">>
<<goto "24 X Biblioteca">>
<</link>>
</div>
<</if>>
<!-- Sala Máquinas
aparece si $salazar == 1.
Centro: (480,700) -> left:40%, top:87.5% -->
<<if $salazar == 1>>
<div class="map-label" style="left:80%; top:50%;">
<<link "Laboratorio">>
<<goto "9. Sala de máquinas (primer salto)">>
<</link>>
</div>
<</if>>
<!-- Sala de Examen
aparece desde el principio, pero desaparece si $piso == 1.
Centro: (150,460) -> left:50%, top:90% -->
<<if $examen == 0>>
<div class="map-label" style="left:50%; top:90%;">
<<link "Sala de Examen">>
<<goto "25. X Sala de examen">>
<</link>>
</div>
<</if>>
</div>
<<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/Calles de Londres.mp3" {"fade":1.5, "volume":0.45}>>
<div class="map-madrid1840">
<img src="https://rafaxenakis.neocities.org/xixhoy/mapamanchester.jpg"
alt="Mapa de Madrid en 1840">
<!--Callejón en Mánchester
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:41.67%, top:33.5% -->
<<if $pisomanchester == 0 && $charco == 0>>
<div class="map-label" style="left:8%; top:90%;">
<<link "Callejón">>
<<goto "12.2 Manchester (calejón oscuro)">>
<</link>>
</div>
<</if>>
<!-- Piso
aparece si $imprenta == 1 y $carta == 0.
Centro: (480,700) -> left:40%, top:87.5% -->
<<if $charco == 1 && $yameditado != 1>>
<div class="map-label" style="left:28%; top:90%;">
<<link "Piso">>
<<if $pisomanchester == 0>>
<<goto "12.4 Manchester (lugar de alojamiento)">>
<<elseif $pisomanchester == 1 && $primerencuentro != 1>>
<<goto "40.4 X Piso Manchester (descanso neutral)">>
<<elseif $pisomanchester == 1 && $primerencuentro == 1 && $yameditado != 1>>
<<goto "40.1 X Piso Manchester (meditas si registrar la casa del poeta)">>
<</if>>
<</link>>
</div>
<</if>>
<!--Calles de Manchester 1
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:84%, top:33.5% -->
<<if $localizacionpisopoeta == 0 && $pisomanchester == 1>>
<div class="map-label" style="left:84%; top:50%;">
<<link "Calles de Manchester (este)">>
<<goto "13.1 Manchester (fragmento 2)">>
<</link>>
</div>
<</if>>
<!--Calles de Manchester 2
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:16%, top:40.5% -->
<<if $localizacionpisopoeta == 0 && $pisomanchester == 1>>
<div class="map-label" style="left:10%; top:60%;">
<<link "Calles de Manchester (oeste)">>
<<goto "13.2 Manchester (fragmento 2.1)">>
<</link>>
</div>
<</if>>
<!--Calles de Manchester 3
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:41.67%, top:33.5% -->
<<if $localizacionpisopoeta == 0 && $pisomanchester == 1>>
<div class="map-label" style="left:60%; top:80%;">
<<link "Calles de Manchester (sur)">>
<<goto "13.3 Manchester (fragmento 2.2)">>
<</link>>
</div>
<</if>>
<!--Calles de Manchester 4
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:75%, top:10.5% -->
<<if $busquedapiso == 3>>
<div class="map-label" style="left:75%; top:10%;">
<<link "Calles de Manchester (norte)">>
<<goto "13.4 Manchester (fragmento 3.4)">>
<</link>>
</div>
<</if>>
<!--Piso del Poeta
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:41.67%, top:33.5% -->
<<if $localizacionpisopoeta == 1 && $decidesregistrar != 2 && $primerencuentro != 1>>
<div class="map-label" style="left:33%; top:60%;">
<<link "Piso del poeta">>
<<if $primerencuentro == 0>>
<<goto "15. Primer encuentro poeta">>
<<elseif $yameditado == 1>>
<<goto "22.1 Registro en casa del poeta">>
<</if>>
<</link>>
</div>
<</if>>
<!--Fábrica
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:41.67%, top:33.5% -->
<<if $fabrica == 0>>
<div class="map-label" style="left:5%; top:30%;">
<<link "Fábrica">>
<<goto "39. Fábrica Manchester">>
<</link>>
</div>
<</if>>
<!--Barrio peligroso
aparece sólo si $pisomanchester == 0.
Centro: (500,268) -> left:41.67%, top:33.5% -->
<<if $niñotren == 1>>
<div class="map-label" style="left:80%; top:80%;">
<<link "Barrio de Nelson East">>
<<goto "34.1 Zona pistola (solo si ayudas al niño)">>
<</link>>
</div>
<</if>>
</div>
<<set $lucius = 1>>
[[lucius]] <div class="biblio">
<h1>TEORÍA BÁSICA SOBRE EL ROMANTICISMO</h1>
<h2>1. El romanticismo (definición y características)</h2>
<p>El término “Romanticismo” proviene del término francés “roman”, que significa novela o, más en general, una historia extensa. En un principio, se usó el adjetivo “romántico” (“novelesco” o “propio de una novela”) para expresar las situaciones expresivas, intensas y dramáticas que eran del gusto de la nueva generación de escritores. Finalmente, se impuso el término Romanticismo en todas las lenguas europeas para denominar al periodo.</p>
<p>El romanticismo se dio en todas las formas artísticas. Especialmente rico es el romanticismo musical, con autores como Ludwig van Beethoven, Franz Schubert o Richard Wagner. En pintura podemos destacar a Turner, Friedrich o Delacroix. En la literatura europea, el iniciador fue Johann Wolfgang von Goethe, con su temprana novela Los sufrimientos del joven Werther (1775) y su obra de madurez Fausto. También destacamos a Walter Scott, que recrea una imagen romántica de la Edad Media en novelas como Ivanhoe.</p>
<p>1. RECHAZO DE LA ILUSTRACIÓN Y EL NEOCLASICISMO: Durante el siglo XVIII, la corriente filosófica dominante fue la Ilustración, que defendía la primacía de la razón y el orden. Su correlato artístico fue el Neoclasicismo, movimiento que daba prioridad a la simetría, la moderación y la imitación del arte grecorromano. El Romanticismo se aleja radicalmente de todo ello, abrazando la pasión, el desequilibrio, la expresividad y el gusto por lo medieval. Este cambio refleja el deseo de los jóvenes de la época de romper con las convenciones y explorar nuevas formas de expresión.</p>
<p>2. MEDIEVALISMO: Desde el Renacimiento, se había tenido una visión muy negativa y, en parte, injusta de la Edad Media como una época oscura y bárbara. Los románticos, sin embargo, encontraron en ella inspiración para historias apasionadas, expresivas, muchas veces de exaltación nacional. Este redescubrimiento de la Edad Media puede verse como una reacción contra la racionalidad y el orden de la Ilustración, y una forma de explorar temas de libertad y rebelión.</p>
<p>3. SOLEDAD Y PESIMISMO: El artista romántico se siente muy alejado de sus contemporáneos. Suele estar ensimismado en preocupaciones existenciales sobre el amor y la muerte y, en muchas ocasiones, siente que el lenguaje es insuficiente para expresar su interior. Las historias suelen ser desgraciadas y marcadas por un destino inexorable. Este pesimismo refleja la lucha de los jóvenes de la época por encontrar su lugar en un mundo en constante cambio.</p>
<p>4. REBELDÍA: El romántico suele rebelarse contra la sociedad en la que le ha tocado vivir, a la que considera hipócrita, moralista y vulgar. Rechaza el mundo moderno, la industrialización, las costumbres rígidas, los formalismos sociales. También hay una vertiente colectiva de dicha rebeldía, una lucha contra el poder que, a veces, viene del surgimiento de una nueva conciencia nacional (como ocurre en Italia, Alemania, Irlanda, Grecia, etc.). Esta rebeldía es un reflejo de la lucha por la libertad que marcó la época.</p>
<p>5. PREDOMINIO DE LA MÚSICA Y LA POESÍA: La música es quizás el arte romántico por excelencia, sobre todo por su capacidad de expresar emociones que difícilmente pueden plasmarse con palabras. Por eso la poesía, que es el género literario más cercano a la música, será el más destacado, con ramificaciones en obras de teatro en verso y óperas. Este predominio de la música y la poesía refleja el deseo de los jóvenes de la época de expresar sus emociones y su mundo interior de una manera más directa y poderosa.</p>
<p>6. LA NATURALEZA COMO REFLEJO DEL ESCRITOR: Al escritor romántico le gusta situar algunas de sus escenas en ambientes naturales, a veces muy expresivos como tormentas en el mar o un bosque en la noche. El paisaje suele reflejar el estado del ánimo de los personajes. Un detalle muy típico del romanticismo es describir cómo la vegetación se extiende por las ruinas, símbolo de que todo lo que intentan los seres humanos está a largo plazo condenado al fracaso. Esta conexión con la naturaleza refleja el deseo de los jóvenes de la época de</p>
<div class="separador"></div>
<div class="nav">
[[Cerrar el libro->24 X Biblioteca]]
</div>
</div>
<div class="biblio">
<h1>3. Gustavo Adolfo Bécquer</h1>
<h2>3.1 Biografía</h2>
<p>Nació en Sevilla en 1836. Su padre fue un pintor conocido, pero murió cuando él era aún un niño. Su madre también murió poco después. Estudió en el Colegio de San Telmo en Sevilla, recibiendo clases de profesores de prestigio. En un primer momento, intenta ser pintor; pero acaba inclinándose por la literatura. Escribió numerosos géneros: ensayos históricos, teatro, narrativa; aunque fue la poesía lo que le hizo famoso.</p>
<p>Se trasladó a Madrid y trabajó como periodista en periódicos como El Contemporáneo. Se casó y tuvo tres hijos, aunque su vida sentimental nunca fue feliz. Desde joven contrajo tuberculosis, enfermedad que, con recuperaciones y recaídas, acabaría por matarlo en 1870. Al morir, deja sus poemas sin seleccionar y ordenar, labor que completarán sus amigos de manera póstuma. Aunque tuvo cierta fama en vida, se hizo incomparablemente más conocido después de su muerte. Hoy en día, sigue siendo uno de los poetas más leídos.</p>
<h2>3.2 Obra</h2>
<p>Dentro de la obra en prosa de Bécquer, destacan las Leyendas, un conjunto de 28 narraciones, algunas basadas en relatos tradicionales españoles, que presentan numerosas características del romanticismo: expresividad, dramatismo, pesimismo, gusto por ambientes como las ruinas o la noche, ambientes medievales, etc. Su forma de narrar se acerca en ocasiones a la poesía en prosa, sobre todo en las largas e intensas descripciones. Entre las leyendas, destacamos Maese Pérez el organista o El rayo de luna.</p>
<p>En cuanto a la obra poética, queda recogida en la colección Rimas, publicada después de su muerte. Como ya hemos señalado, la edición fue realizada por amigos del poeta. Esto nos plantea el problema de la ordenación y la selección, ya que nunca sabremos qué correcciones o descartes habría realizado el poeta. El libro está ordenado de tal forma que parece contar la historia de una relación amorosa, desde el ilusionado comienzo hasta la ruptura y la tristeza posterior. Los temas que más se repiten son el amor, el paso del tiempo, la soledad, la dificultad para comunicar el interior (el lenguaje no es suficiente), la hipocresía de la vida diaria que oculta los sentimientos, etc.</p>
<p>Desde el punto de vista formal, los poemas de las Rimas suelen ser breves, algunos incluso de cuatro versos. Hay un predominio casi absoluto de la rima asonante, mucho más adecuada para el tono sentimental e íntimo de Bécquer (frente al expansivo y exaltado Espronceda). El autor juega con diferentes medidas, aunque sin polimetría dentro de cada poema. Tiene un lenguaje relativamente sencillo, con comparaciones y metáforas fáciles de comprender, aunque de gran fuerza expresiva. Es menos descriptivo y colorista que Espronceda y tiende más al uso de sustantivos abstractos para referirse a su mundo interior. Algunos poemas tienen una estructura en tres partes: las dos primeras son simbólicas, mientras que la tercera revela directamente el mensaje emocional del poema.</p>
<div class="separador"></div>
<div class="nav">
[[Cerrar el libro->24 X Biblioteca]]
</div>
</div>
<div class="biblio">
<h1>2. José de Espronceda</h1>
<h2>2.1 Biografía</h2>
<p>Nació en Almendralejo (Badajoz) en 1808. Tuvo como profesor a Alberto Lista, un poeta destacado que le descubrió la poesía antigua y contemporánea. A los 15 años, fundó un grupo rebelde contra la tiranía de Fernando VII, que en 1823 había favorecido la invasión de España y había derogado la Constitución de 1812. Dos años después es detenido y condenado a reclusión. Logra escapar y pasa un periodo de exilio en Inglaterra y Francia, donde conoce las corrientes románticas y participa de los levantamientos revolucionarios de 1830.</p>
<p>A la muerte de Fernando VII, vuelve a España, dedicándose sobre todo a la política y al periodismo, como redactor del periódico El Siglo. Militó políticamente dentro de la corriente liberal y fue diputado. Tuvo encendidas polémicas con personajes importante de la España de la época. Murió de difteria en 1842. Gran parte de su vida sentimental estuvo marcada por su amor imposible con Teresa Mancha, hija de un militar que nunca accedió a que se casara con él.</p>
<h2>2.2 Obra poética</h2>
<p>La obra de José de Espronceda abarca diversos géneros. En este tema, nos vamos a centrar solo en dos bloques: los poemas sueltos y El Estudiante de Salamanca.</p>
<ul>
<li><strong>Poemas sueltos:</strong> José Espronceda escribió un conjunto de poemas autónomos de carácter plenamente romántico. Suelen tener como elemento central a un personaje rebelde, alguien que se niega a vivir según las normas de la sociedad o que es despreciado por esta (por ejemplo, el pirata, el mendigo, el verdugo, el condenado a muerte, los cosacos del desierto). Este antihéroe se expresa a menudo en primera persona y expone su desprecio a una sociedad materialista, acomodada y vulgar. En cuanto a la forma, son poemas de mediana extensión (la mayoría entre 50 y 100 versos). Destaca en ellos la polimetría, es decir, cambios frecuentes en el número de sílabas y la disposición de las rimas para crear efectos sonoros intensos. La rima suele ser consonante, debido a su sonoridad rotunda. Tienen un tono enfático, exaltado, son frecuentes las exclamaciones y las preguntas retóricas, así como descripciones llenas de colorido con abundantes adjetivos.</li>
<li><strong>El Estudiante de Salamanca:</strong> es un extenso poema narrativo que cuenta la historia de Félix de Montemar, un estudiante en la Salamanca medieval que se dedica al juego, la estafa y la seducción de mujeres, a las que abandona sin remordimiento alguno. Es una nueva versión del mito de Don Juan. Está dividido en cuatro secciones.</li>
</ul>
<p>En la primera, se describe al protagonista como “fiero”, “insolente”, “irreligioso”, poniéndonos en antecedentes de sus fechorías. Esta sección está escrita con verso corto y rima consonante, con múltiples terminaciones en aguda para expresar el arrojo del personaje.</p>
<p>En la segunda, se presenta a Elvira, muchacha engañada por Félix, que espera al protagonista y muere de angustia al darse cuenta de que ha sido burlada por él. Esta sección está escrita con una rima asonante que refleja el carácter débil y soñador de esta joven.</p>
<p>La tercera parte tiene forma teatral, a base de diálogos e incluso con acotaciones. Félix juega a las cartas y se apuesta el retrato que le regaló Elvira. Aparece el hermano de la muchacha para vengar su honor y reta a un duelo al estudiante. Está escrita al modo de las comedias de Lope de Vega, con numerosos cambios de métrica.</p>
<p>La última sección nos presenta a Don Félix huyendo herido después de haber dado muerte a su rival. Conforme se le va acabando la vida, las calles por las que pasa se van transformando en un escenario fantasmagórico e infernal. Finalmente, tiene una visión en la que es obligado a casarse con una mujer que, cuando descubre su rostro, no es sino un esqueleto, la propia Muerte. Esta parte también se caracteriza por la polimetría, con numerosos efectos expresivos.</p>
<div class="separador"></div>
<div class="nav">
[[Cerrar el libro->24 X Biblioteca]]
</div>
</div>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final1.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final2.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final3.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final4.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final5.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final6.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final7.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final8.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final9.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final10.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final11.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final12.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/xixhoy/final13.jpeg" width="1200" height="800">
</div>
<div style="text-align:center;">
<<link "Reiniciar línea temporal">>
<<script>>
State.reset();
Engine.play("Portada");
<</script>>
<</link>>
</div><<music "https://raw.githubusercontent.com/rafaxenakis/logue/main/XIXHOY.mp3" {"fade":1.5, "volume":0.45}>>
<div class="letra-cancion">
<p>¿Qué es el futuro?<br>
¿Qué es el pasado?<br>
Un bosque oscuro<br>
y circular.</p>
<p>Nada se olvida,<br>
nada es recordado:<br>
huellas de vidas<br>
que volver a pisar.</p>
<p class="estribillo">
Y tú, viajero del tiempo,<br>
también debes ser su guardián.<br>
Si la historia es solo un sueño,<br>
¿qué nos hará despertar?
</p>
<p class="titulo">¡XIX, HOY!</p>
<p>
Déjate llevar, viajero,<br>
a donde el viento te lleve,<br>
a las calles de misterio<br>
de este siglo diecinueve,<br>
siglo de pasión y fiero,<br>
realismo y romanticismo:<br>
si tú sigues su sendero,<br>
no serás jamás el mismo.
</p>
<p class="estribillo">
Y tú, viajero del tiempo,<br>
también debes ser su guardián.<br>
Si la historia es solo un sueño,<br>
¿qué nos hará despertar?
</p>
<p class="titulo">¡XIX, HOY!</p>
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "¿QUÉ ES XIX HOY?">><<goto "instrucciones">><</link>></span>
</div>