tiendas (de nuevo)

en una implementación imperialmente flaite, las tiendas ya "funcionan". cuando digo que funcionan, me refiero a que ya escribí el código que recrea las tiendas de las iteraciones anteriores de catbox visualmente hablando, los scripts para hacer el llamado a una tienda durante un diálogo ya existen, los scripts para añadir items con sus precios (definidos por el usuario o por defecto) a una tienda en específico aún no existen pero hacerlos no es tan dificil, y todos los cuadros (excepto el que muestra los objetos actuales del inventario, pero eso ya lo implementé en el inventario como tal) muestran la información correctamente. falta hacer algunas cosas todavía (el menú para decidir los objetos que vas a comprar y cuántos objetos vas a comprar, o bien cancelar la compra, por ejemplo) pero, si bien no lo he programado, lógicamente no debiese ser taaaaaaaan dificil de hacer.

lo que más me gusta del asunto es que la tienda funciona a través de una variable global definida en el sistema nuevo de variables. ¿qué es el sistema nuevo de variables? veran: el sistema de variables de antaño funcionaba con, bueno, variables, entonces había ciertas cosas, como definir dentro de un diálogo el valor de una variable, que no se podían hacer de forma limpia. actualmente, en lugar de variables como tales, todas las operaciones que se hacen dentro del sistema de diálogos quedan almacenadas dentro de una estructura de datos, un mapa para ser más precisos, que guarda el nombre de la variable como llave y su valor, entonces la variable "shop" se puede manejar como cualquier otra variable, sin necesidad de crear código específico para llamarla en cierto momento, como lo hacía antes. para comodidad, igual tengo un script para llamar a la variable shop, pero lo estaba pensando e incluso ése script podría servir para insertar el recuadro de opción para comprar o no comprar, y hasta incluso los items que la tienda va a vender.

sin embargo, como todavía no implemento algunas cosas, todos los items que salen en la tienda de la screenshot son los primeros items de la lista de items del juego. uhhh, spoilers.

edit: me cago en dios, funciona. las tiendas (en su funcionalidad más básica) ya están funcionando. actualmente sólo me falta hacer el diálogo de compra (más que nada para poder decidir cuántos items comprar, o cancelar la compra) e implementar cómo lo voy a hacer para vender items. no debiese ser muy dificil, en realidad sólo hay que definir cómo lo voy a mostrar, si en un diálogo idéntico a la tienda, pero con tus items en la lista en lugar de los de la tienda, o si va a ser en un menú igual al del inventario. yo me inclino por la primera, pero uno nunca sabe.

una consecuencia lateral (pero esperada) de usar un mapa para guardar los valores de la tienda es que el motor ordena los items de menor a mayor automáticamente, entonces si ingreso el item 8, 2, 4, 5, 6 y 1, la tienda los va a mostrar como 1, 2, 4, 5, 6 y 8. no es malo, pero es lateral.

blog comments powered by Disqus