WeakAuras

WeakAuras

206M Downloads

Show cooldown for spell charges in the same way as Blizz actionbars/TMW

0xjc opened this issue ยท 4 comments

commented

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).

WACharges

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.

commented

You can configure the cooldowns to display how you like.

commented

That is, this is already possible without any custom code.

commented

@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 set cooldown._occ_draw_swipe when WeakAuras toggles the cooldown swipe. OmniCC will respect this key when doing its SetDrawSwipe 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.

commented

Right I'll take another look at that.