Motor de juegos narrativos y educativos
para aprender programación web
Tener distintos finales no es más que tener diferentes diálogos y mostrar uno u otro según lo que ha ocurrido. Pero para ello necesitamos "guardar" lo que ha ocurrido:
diálogos .Añade ( "aciertaAño" , [
{ guarda : "aciertos" , suma : 1 } ,
{ personaje : "Juglar" } ,
"¡Correcto! Has acertado." ,
{ continúa : "continuaExplicaciónAño" } ,
] )
Cuando llegamos al diálogo anterior nos dice que hemos acertado, pero también guardamos esa información, para recordarlo más adelante. Le podemos poner un nombre que deje clara la información, como "aciertos"
y poner cuanto sumamos.
Ahora, al llegar al final del juego, podemos escoger el final que mostraremos, dependiendo de distintas condiciones:
diálogos .Añade ( "Finales" , [
{ si : () => Estado [ "aciertos" ] == 0, continúa : "todoFallos" } ,
{ si : () => Estado [ "aciertos" ] == 3, continúa : "todoAciertos" } ,
{ continúa : "algunosFallos" } ,
] )
En las condiciones, los paréntesis y la flecha
se usan para crear funciones. En este caso una comparación. Por ejemplo, la comparación:
comprueba que el número de aciertos sea igual a 3.
El estado es un objeto en donde se guardará toda la información que guardemos con los diálogos. Entre corchetes podemos poner el nombre del dato que queramos, como "aciertos". Y por último podemos compararlo con otro valor. Hay varios operadores que podemos usar para esto: