<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<<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/003.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "¿QUÉ ES EL CÓDICE ERRANTE?">><<goto "instrucciones">><</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>
Fabulae Sapientiae: <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>
<<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;">
<button type="button" id="choice-dialogo4">Escuchar la canción sobre Lucenius</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 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>
<<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>
<div style="text-align:center;">
<img src="https://rafaxenakis.neocities.org/codice/004.jpg" style="width:60%;">
</div>
<div style="text-align:center;">
<span class="enlaceBonito"><<link "ENTRAR EN EL CÓDICE ERRANTE">><<goto "creditos">><</link>></span>
</div>
<<set $bestiario = 0>>
<<set $fabulae = 0>>
<<set $cancionero = 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>
</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>