Closed paravaariar closed 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()
...
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.
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.
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 true
o 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 );
};
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;
otoret += " (${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.