Lista de reproducción completa del tutorial de Godot sobre cómo crear un Action-RPG en Godot, creada por MakerTech
https://www.youtube.com/playlist?list=PLMQtM2GgbPEVuTgD4Ln17ombTg6EahSLr
En la página anterior se explicó cómo mover objetos entre casillas del inventario. En esta continuamos con esa mecánica, incorporando la posibilidad de intercambiar el objeto que estamos arrastrando cuando es diferente al que está en la ranura, o bien apilarlo automáticamente si se trata del mismo tipo. Esto permite una interacción más fluida y coherente con el sistema de inventario.
Las funciones removeSlot y insertSlot de Inventory van a cambiar por completo.
Agregaremos la función removeSlot de Inventory dentro de TakeItem en Slot_GUI. Ahora el ítem se eliminará al hacer clic sobre él, en lugar de cuando se mueve de slot.
Actualizamos InventoryGUI para que gestione el cambio de items entre Slots, se cambiara el ítem de la mano cuando son diferentes, combinara los items si son los mismos, si la suma del stack supera el stack máximo, dejara el resto del stack en la mano.
Ahora cuando hagamos un clic InventoryGUI, comprobara tres cosas.
- Si el clic es un slot vacío, con un ítem en la mano, insertara el ítem.
- Si no hay ítems en la mano, tomaremos el ítem de la casilla, la condición previa evita que puedas entrar en esta condición si la casilla esta vacía.
- Si el ítem del slot, es el mismo que el ítem de la mano, procederá a stackearlo, si la cantidad stackeada y la cantidad de la mano suman una cantidad mayor al stack máximo, devolverá los ítems sobrantes.
- Finalmente, si no se cumple las condiciones anteriores, significa que ambos ítems son diferentes, por lo que procederá a intercambiar el ítem del slot por el de la mano.
No hay comentarios:
Publicar un comentario