What I'm mostly curious about is how to prioritize animations and actions. Like how do you override the falling animation with the sucking animation for example. I have a working implementation myself, but it involves evaluation each and every combination of actions and having events for each.
I'll try to explain as well as I can. Hopefully it's not too confusing and the image displays properly.
Everything that needs it (player hitboxes, enemy hitboxes, some objects as well) has a variable called "Action" (through Families, of course) which essentially determines its state, what it's doing : nothing special (the "" event), sucking (the "inhale" one), attacking, flying, experiencing knockback after getting hit, dying, etc...
When you're on "", your character has access to pretty much everything it can do, the platform events you see have all the animations for when you're moving, jumping, falling, etc... Among those you have the actions themselves, such as pressing W/Z to jump.
Pressing X (It's in an OR-block you can't see on my example, but you can very well put in under "") however, changes the Action variable to "Inhale", limiting what you can do/ what can happen : there are no events for a falling animation, you can't jump, etc... And I have a few "OR" Blocks off-screen that further change what's at you disposal :
-one that makes it so that, when you're on "" or flying (which is also a setting for the Action variable), among other things, you can move left and right freely, having your character turn around accordingly, etc...
-and another one that's for every attacking actions ("Inhale" being one them) that makes it so that you can only move in midair, and can't turn around at all. If you've played a Castlevania game post Symphony of the Night, that's exactly how it works.
Letting go of X will turn "Inhale" into "Inhale_Stop", under which I have an event that will revert Action back to "" as soon as the sprite's "Inhale_Stop" animation is done, letting you move and act again.
One last thing. You can REALLY go nuts with that method, for instance : In the "On X pressed" event, you can call a function and give it a parameter that checks whether you have an ability or not, to determine which attack to perform.
Finally, remember that you can use expressions when using "Set animation" :
-Kirby's hitbox (J1_PB) has another variable called State (which can be set to"Normal" or "Big" when you have something in your mouth)
-Its sprite (J1_Kirby) has two standing animations : "Normal_Idle" and "Big_Idle"
So, when Action is "" and you're not moving, the event can be : J1_Kirby - Set animation to J1PB.State&"_Idle"
Anything that needs better explanation? Anything else iin general?