Baltasarq / fi-js

Framework JavaScript para ficción interactiva / JavaScript framework for interactive fiction
http://baltasarq.github.io/fi-js/
Other
5 stars 4 forks source link

Booleano de configuración para decir si quieres que el jugador pueda pinchar usando el ratón o no #20

Closed paravaariar closed 1 year ago

paravaariar commented 1 year ago

En algunos sitios de fi.js está por defecto que aparezcan cosas en modo que puedas pinchar. Por ejemplo esta línea en list toret += "${" + obj.id + ','; o esta otra toret += examineAction.verbs[ 0 ] + ' ' + obj.id; o toret += " (${puesto,"; https://github.com/Baltasarq/fi-js/blob/453f578da21f8231b8e0916cf01b00cdbfdd7ae3/lib/fi.js#L2229 Para desactivarlo modifiqué esas líneas para que ponga el obj.id directamente y no la acción pero igual hay otras maneras de desactivar las acciones y que sea texto normal. Estaría bien una opción a nivel global para que el juego pueda ser en modo solo texto. Sería para que el jugador solo use el teclado y no esté intercambiando entre teclado y ratón. Por defecto podría ponerlo.

Baltasarq commented 1 year ago

De nuevo para tu juego te valdrá, pero para hacerlo más genérico, como te decía en la anterior issue, creo que es mejor hacerlo en ctrl.updateDesc(), de hecho verás que se llama explícitamente a la función ctrl.cnvtTextLinksToHtml()...

Baltasarq commented 1 year ago

Las dos issues me parecen bien, lo que no sé es si meterlas como algo genérico, para todas las descripciones de locs, o incluso permitirlo para locs individuales.

paravaariar commented 1 year ago

A mí me parece bien como algo genérico, o al menos que si se hace por localidades, haya alguna manera de hacerlo global y no ir una por una. Para el otro issue de la lista de objetos, algún otro engine lo tiene a nivel de objeto que puedes decir si quieres que aparezca listado o no, pero también deja a nivel global quitar la lista de objetos siempre.

Baltasarq commented 1 year ago

Hecho.

He creado ctrl.buildTextLink(id, verb[, etq]), que funciona internamente. Por ejemplo, ctrl.buildTextLink("perro", "ex") devuelve ${perro, ex perro}, y con ctrl.buildTextLink("pantalón", "quitate", "puesto") devuelve ${puesto, quitate pantalón}"

Pero lo más importante son las funciones públicas ctrl.usesTextLinks() y ctrl.setUseTextLinks(b), con sus correspondientes ctrl.usaEnlacesEnTexto() y ctrl.ponUsaEnlacesEnTexto(b). La primera devuelve trueo false según en ese momento se estén utilizando los enlaces por parte del fi.js (los que introduzca el usuario en el texto no pueden controlarse). La segunda admite un valor booleano para indicar si se quiere que se utilicen enlaces en el texto o no.

Resumiendo, que para que fi.js no visualice enlaces HTML, solo tienes que empezar la aventura en ctrl.ini con lo siguiente:

ctrl.ini = function() {
    // ...más cosas...
    ctrl.setUseTextLinks( false );
};