I’m happy to see the plugin being expanded, but as of now using it for anything other than prototyping is impossible due to countless bugs and most of the stuff introduced in earlier versions simply not working.
Consider hiring a second programmer to help you work on that end too.
I just found out the hard way (by debugging the code) that Channeled abilities do not work. They do channel but they can almost never end because if the condition is checked during an update (and it always is since the logic is implemented in AbilityComponent’s Tick) it will try to CancelAbility, will defer that action since it’s during an update, and will then fail to cancel the ability since right on the next line you are nulling m_ActiveAbilityInstance. So a frame later when Component is trying to cancel the active ability due to channel condition failing, there is nothing to cancel because you nulled it.
I mean, the overall effect in game does look like it’s cancelled, but the ability itself never got any info about this since nobody called “OnAbilityEnd” or “OnAbilityInterrupted” on it :/.
- Make a channeled ability that for example, sets up a bool to true in OnAbilityStart.
- Set the bool back to false in OnAbilityEnd/Interrupt
- Add **CUSTOM **channel condition to the ability, can be anything Im pretty sure.
- Play the game and either print out the bool or do something to indicate it’s state
Result: The bool will never get unchecked.
Expected result: Bool will be back to false once the ability cancels due to failing custom channel condition