Monday, February 25, 2019

Mientras tanto, en Plutón...

Sé que la última vez dije que en la siguiente entrada hablaríamos de la definición de objetos, pero he decidido cambiar ligeramente la ruta y hablar de la definición de los flags, de modo que cuando hablemos de los objetos y las acciones tengamos toda la información disponible.

Banderas de nuestros parsers

Los flags se definen en el archivo flags.json y permiten definir un valor booleano o entero que puede ser -y será- consultado desde otras partes de la aventura.

Por ejemplo, en el actual estado de La Aventura Original sólo hay un flag:

{
  "id":1,
  "name":"Pila en linterna",
  "type":1,
  "booleanValue":"false",
  "integerValue":null
}

Como habrán supuesto, es un flag que indica si el jugador ha metido o no la pila en la linterna. Esto permite desbloquear determinadas acciones, como encender y apagar la linterna o meter y sacar la pila. Al intentar realizar estas acciones el motor comprueba el valor del flag y permite o bloquea la ejecución de la acción en consecuencia.

El contenido de la clase GameFlag es bastante simple, con un identificador único para cada flag, un nombre descriptivo para facilitar su manejo por parte del diseñador/programador, un identificador de tipo (con valor 1 en este caso para identificarlo como booleano) y dos campos con el valor del flag, booleanValue para los flags booleanos e integerValue para los flags de tipo entero.

Y, ahora sí, nos vemos en la próxima entrada con la definición de objetos.

No comments: