Started on a little stone circle / spiral, that I want to have dotted about the world. If the player stands in the middle and does a spin attack, something will happen. Might do some other variations on the theme as well.
Today was mainly about detecting the spin attack, going from that to a level sequence, and then making a controlling actor that would respond to everything. Took a lot longer than I expected.
In the end I made an actor for each arm of the spiral, with an internal Timeline to animate the VFX/Emissive pulse that I want, and a “controlling” actor that the Level Sequence can bind to, and pass events.
What proved most fiddly was detecting the end of the spin attack cleanly, and allowing the Cinematic to override the unlock process… Cheated by adding a delegate, which the spirals bind to. Whee!
Added some emissive patterns to the Maenhirs in my spiral, some particle VFX and a slightly cleaner way to handle cinematic input overrides. Clean-up from yesterday, basically…
Then spent the rest of the day making a Rock Doorway, that the player will be able to destroy with bombs.
I thought I’d just be able to bind the blueprint to AnyDamage, detect the bomb, and then do my thing, but because I do some jiggery pokery with health and expect a few things in C++ from the Damage functions, this wasn’t the case. Ended up making a base class for generic, vulnerable actors, so TakeDamage always does what I want, and made it a bit shiny by allowing them to limit response to specific types of damage.
Thought I’d be able to have all the parameters as TOptional – ie: they don’t need to be assigned a value in the instanced objects – but it looks like this can’t be done if the variables are UPROPERTIES? Tried it in structs, and as member vars, with no joy. So, no optional parameters in Blueprints? Seems odd, to me, but it was too late in the day to go digging…
Created some placeholder pickup/carry/throw actors for the bomb, setup the new damage types, and created some explosion VFX. Also created some VFX for the door, and set the door to do a dithered fade, rather than disappear instantly.
I still need to add audio, and make a bomb mesh for the placeholder actors, but it’s a good first pass.
I’ll also need to make the bombs explode if you carry them for too long, which I think should be pretty quick to do, but it’s going to involve forcing the character out of carry and ideally, triggering some sort of knock-back animation. I’ve not got any knock-back in the game atm, or damage to the player, so I’ll probably need to hack something in as a placeholder. Job for next week…