I realize that the game is in pretty early development, but I just spent the last couple days doing a total rewrite of most systems. As I was trying to add new features to the old version, I started to run into more and more problems. I hadn’t really planed ahead how I was going to accomplish new things. Hopefully I can be back to where I was at the beginning of the week with some steady programming.
First, the game now has a Finite-State Machine built in. This allows animations and actions to happen over time. Before, my GameBoard class was doing all the heavy lifting and didn’t make it easy to add transitions or different phases of play to happen. Now, I can wait for transitions to happen, like tiles moving into place or enemies damaging the player, before I move on to something else.
Second, I added a localization system for my strings. Before, everything was hardcoded in, such as ability names and descriptions. Now I am using json files to store all this information and load it in at runtime.
Third, tiles can update themselves based on which tiles are currently selected by the player. Right now I only have it working when skeletons and enough swords are selected to kill them, but this should make for some new gameplay ideas.