I am trying to make a slightly complicated multi-stage launch missile ability that has to be channeled before firing. It is essentially a jumping ability with a slight delay, but the complexity comes from the jump destination part.
I have managed to successfully create the ability. By modeling the channeling with a persistent effect and calling launch missile afterwards as an expire effect works as intended. However, I'd also like to refund the cooldown if the channeling is cancelled by the player. I have also managed to do this using ability settings - but there is a problem that I am unable to solve.
If the player cancels the ability right after the channeling is finished and launch missile is executed, the cooldown is still being refunded. This allows the player with good timing to keep jumping around without a cooldown. I don't understand why this is happening, as "Channeled" flag is set for only the channeling effect. Is everything after a channeling step is counted as channeling?
- During the jump, if a move order is set, the cooldown is removed as if the skill was cancelled, but the jump can't be cancelled at this time, so the jump is done but the cooldown is removed then the unit move following the move order
If the channeling is set non cancellable, there is not this issue.
What we would like is that only the channeling time is cancellable, not the jump itself (which anyways finishes his effect, then move if needed).
I am trying to make a slightly complicated multi-stage launch missile ability that has to be channeled before firing. It is essentially a jumping ability with a slight delay, but the complexity comes from the jump destination part.
I have managed to successfully create the ability. By modeling the channeling with a persistent effect and calling launch missile afterwards as an expire effect works as intended. However, I'd also like to refund the cooldown if the channeling is cancelled by the player. I have also managed to do this using ability settings - but there is a problem that I am unable to solve.
If the player cancels the ability right after the channeling is finished and launch missile is executed, the cooldown is still being refunded. This allows the player with good timing to keep jumping around without a cooldown. I don't understand why this is happening, as "Channeled" flag is set for only the channeling effect. Is everything after a channeling step is counted as channeling?
Here's a snippet:
And for the ability:
I omitted JumpSwitch and validators as I don't think they are relevant. Assume JumpSwitch calls JumpDelayPassthrough.
Thanks in advance.
To explain our issue an other way :
- First the unit channels (prepares to jump)
- Then if the path is clear, the unit jumps
- During the jump, if a move order is set, the cooldown is removed as if the skill was cancelled, but the jump can't be cancelled at this time, so the jump is done but the cooldown is removed then the unit move following the move order
If the channeling is set non cancellable, there is not this issue. What we would like is that only the channeling time is cancellable, not the jump itself (which anyways finishes his effect, then move if needed).