Baton pass, 1-more, ailments & more

It’s been quite some time since my last update post. I did have to take a break from the project to work on some of my asset store tools a bit more. Mainly updating the Leaderboard manager that I didn’t get around to the year prior as well as some bug fixing on the Audio & Save managers. That doesn’t mean the last 6 months or so have been idle. Far from it. The project has changed a lot since then. While on the surface it all looks the same, behind the scenes a lot has happened:

Data structure refactor

Before I was using a public Google sheet to get data to the project with individual scriptable objects per skill. This was not being used all that much as I couldn’t save a reference to the object with the Same manager.

I decided to do a little R&D for about a week and make a setup that uses Notion instead. While Notion isn’t quite as flexible as a Google sheet, it still does a decent job. Using a JSON node code system called simple JSON I was able to parse the downloaded result from a database into something I could work with.

If you are interested in trying this tool out, I have it in the cart library and as a standalone package. Note that it is a prototype and isn’t exactly feature-complete: https://github.com/CarterGames/NotionToUnity

Game state system

The old system was more reliant on each display controlling which displays opened next and there was no space where the current state could be properly queried. I could’ve hooked up a setup that would update a global variable but refactoring it was a better idea. The new setup adds a centralized place for all the states the player can be in. As all the moves are defined I can get away with a fairly specific state setup like this.

With this new setup, I also added a game state-limited component to help handle logic that should only run on a valid state. This is mostly used for the UI elements that should be hidden when not in use. But is handy to have in the long run.

Combatant context display

The context display is a new UI setup combining a lot of elements that were all separate beforehand. The old setup used object pools and had to be manually positioned per element. I ran into an issue with this where the UI would layer incorrectly so this needed doing.

The new setup has the target ring, health, current skill affinity, hit affinity, and damage text. This is much easier to manage and I can toggle elements of the display or the thing as a whole and the positing is just a one call. Some of the logic still needs doing of course but it is a start.

Ailment moves

I’ve also started to add in more moves. Ailments needed a bit of background work to happen first before they would work. As of writing the move works but the ailment won’t clear automatically as the turn logic still needs some work. As ailments aren’t the only element that needs the user turn to be tracked better I need to do a bit of a refactor to accommodate this. There will be more on this in the next update.

Combatant updates

I’ve also updated the combatants to have extra classes in their states. I realized I needed to separate the affinities from the persona data class into a separate class that can be modified. Not only do some skills temporarily alter these like the magic break support skills but I would need a similar setup for ailment infliction.

One-more

The one more is an extra go given to a combatant that hits a weakness or knocks a combatant down. When this happens I now restart the user’s turn and allow that user an extra option, the baton pass.

Baton pass

The baton pass allows the user to pass an extra turn to another party member who has not had a go during that combatant’s “turn” that round. This mechanic adds an extra option to the options menu when on a one-more and an additional UI to show the effect of the baton pass per level. The level changes the effect with the 3rd pass giving skills for free etc. The actual effect application and updating the UI to show that still needs doing but I paused to update you all on the progress.

Guard UI

The guard move was already in a few updates ago, but it now has a proper UI to go with it. The new UI is matched more or less 1-2-1 with the actual game and is just a control prompt.

I hoping to get al lot more done on this project soon, so stay tuned!