Show cooldown for spell charges in the same way as Blizz actionbars/TMW
0xjc opened this issue ยท 4 comments
Is your feature request related to a problem? Please describe.
In WeakAuras when tracking the cooldown of a spell with charges, the cooldown sweep when "recharging" (1 or more charges, but not max charges) is identical to the one where the spell has 0 charges. This is different from how spell charges look on Blizzard actionbars, TellMeWhen, etc.
For Blizz/TMW, the cooldown when recharging (1+ charges) has DrawEdge enabled and DrawSwipe disabled, resulting in an appearance that is not shaded out (indicating that a charge is available) but still has a clock edge (to indicate the next charge). Furthermore, OmniCC is able to detect when it is recharging and re-skin the cooldown text (to light blue by default).
Describe the solution you'd like
Add an option to Cooldown Progress triggers to show recharging cooldowns in the described way.
Internally this involves creating a second Cooldown frame for the recharge, and calling SetDrawEdge(true)
, SetDrawSwipe(false)
.
Also, parent.chargeCooldown
is set to this frame, where parent
is the main cooldown frame's parent (this is done to mimic Blizzard actionbars which lets OmniCC pick up on it being a charge cooldown and reskin it appropriately).
Blizzard ActionButton code reference
TellMeWhen code reference
Describe alternatives you've considered
I have created a workaround with custom code: https://wago.io/VmvvYsyaM (has both default WA and my workaround side-by-side)
It starts with the default spell cooldown trigger, but only tracking the first charge (this is done to disable WA's default implementation which overrides the main cooldown with the charge cooldown). Then with custom code it adds a second Cooldown frame for the recharge timer, which is updated on the appropriate events. This is a bit janky so it would be great to have this functionality in WeakAuras itself.
@InfusOnWoW You're right and it is possible to do this with conditions, however there are two issues:
- It doesn't work with OmniCC. This is because OmniCC does its own
SetDrawSwipe()
calls and the two addons are just overriding each other. A possible fix would be to setcooldown._occ_draw_swipe
when WeakAuras toggles the cooldown swipe. OmniCC will respect this key when doing itsSetDrawSwipe
call. - Even if the above were fixed, it is still not a "charge cooldown" as seen by OmniCC. Blizzard action bars create a second "charge cooldown" and register
parent.chargeCooldown
to this frame. OmniCC checks for this.chargeCooldown
key and TellMeWhen/ElvUI both emulate this behavior. Only WeakAuras is missing it.
Incidentally, there is a reason Blizzard originally created this extra chargeCooldown
frame. Technically the cooldown and charge cooldown are separate. The main cooldown could be locked out for some reason (gcd, interrupt, etc) while the ability is still recharging. Blizzard's way of using two Cooldown
frames shows both. In this case of gcds this is usually undesirable but for lockouts it seems nice to have.