Very important update.
Foremost, in terms of control, combo input rework.
In the options, I set the attack delay to a full .5. You can see the delay with the first input after the unpause. This is normal. The updates come from a special bit with the input logging. For a while, potential moves are logged with a recursive comboTree class that logs an input key, children for next combos, a moveID, and lifetime for the move input
Here's a crude diagram of what's set during level 1 (not counting the shield key tree).
Any check against inputs starts at the base of the tree, then, for each key entered in the input queue, moves down a slot if it's available. If there isn't anything, then return the selected ID, and execute the move associated with it. Before, I was (stupidly) just leaving it up to the expiration timer, which meant that if you did something like continually press attack over and over, you wouldn't actually attack until the entire queue was ready. "Why wait on something if the queue is ready?" This behavior was altered to split the lookup into a more simple function that gets called in the input and timer expiration. Now, whenever you press a key, one of three things happens: (1) if the move in the input tree has potential children the player could execute, wait a delay before executing, (2) it's the last key of a branch, and immediately executes that next move, and (3) if the pressed key does not have any associated moves 'down the branches,' execute the current one. All three are in display in the gif in order after unpause (I pressed up on the third one to get it to attack immediately).
Second important update, level transitions:
The coroutine is a bust for now. It was working fine a moment ago, but then I got smart and added in some checks to the fade to black, and suddenly it wants to shutter now. I'll need to get that sorted out. The important thing here is that all levels are mapped (I'm not going through the full display right now) with their place in the build order and 'next' selection, and basically just need to be 'filled in' with enemies, bosses, and platforms in order to be functional.
After buying, the player is able to buy into the level select now. Fading to black in order to access the end-of-level screen nets a credit, beating a boss gets another. I think I'll leave the test-credit in there since buying stage 1 after beating it makes more sense than beating two levels to get the privilege of starting at the first.
Haven't really messed with any options yet since there's nothing to customize. Hating the way these placeholder menus look.
To-do:
-Level 3
--Enemies (3)
--Platforms (3)
--Boss
-Rework platform spawning to be more randomized (hating how many sections repeat)
Endgoal:
Playable level 3 with substantial platform variety.