GCD trigger inaccurate
Dsune0 opened this issue ยท 3 comments
Description
This is a very niche issue but regardless i believe the code for the GCD trigger could be looked over.
The GCD trigger is not coherent to that of GetSpellCooldown(61304) which it is supposed to be tracking(?) and sometimes resets to 0 when GetSpellCooldown(61304) does not.
WeakAuras Version
Weakauas 4.0.2
World of Warcraft Flavor
Retail (Default)
Tested with only WeakAuras
- Yes
- No
Lua Error
No response
Reproduction Steps
How to reproduce: Have very high haste, especially obvious when casting wrath as balance druid in incarnation (eventually wrath casttime becomes shorter than 0.75s GCD) and track both the value of the trigger and GetSpellCooldown(61304) while continously casting.
This is the Aura that was used to detect the problem https://wago.io/sR_y_Wzzz
Here is image of that aura outputting different results from trigger and GetSpellCooldown(61304)
Here is a link to a video in slow motion when the trigger is reset to 0 while the GCD is still active:
https://cdn.discordapp.com/attachments/598903823800467496/992917530429636648/2022-07-03.mp4
Last Good Version
No response
Screenshots
No response
Export String
No response
@Dsune0 sorry if we didn't reply sooner, reproduction steps are not precise and seems not easy to do.
The wago link has expired, could you re-upload the test aura?
@mrbuds
https://wago.io/LC-4sFNZ7 here is recreated aura for testing
Image showing the GCD Spellcooldown from GetSpellCooldown(61304) with a value >0 while the GCD trigger == 0
Reproduction steps:
Increase haste to +60% (dont know any exact number for when its starts happening)
continously alternate between casting a spell with a short casttime (<1.5s) and a instant cast, eventually the GCD trigger will count down to 0 while the actual SpellCooldown starts over, displaying the real value
I've tried reproducing that and got to 80% haste but could not see the problem you are demonstrating in the video.
In your video a GCD is completely missed, that what leads to the gcd trigger going down to 0.
The difference between a custom trigger that each frame calls GetSpellCooldown and the built-in trigger is that we only update the cooldown information if the game tells us via a event that the spell cooldowns have changed.
Now, in my video I saw a few instances where that event appears one frame late, but not that a GCD event was missed.
I checked the code, and while that can't rule out any bug, I'm still confident that if the game sends us a SPELL_UPDATE_COOLDOWN event, the gcd trigger updates itself. Thus I think this might be the game not sending a SPELL_UPDATE_COOLDOWN event.
Which we can't obviously fix.
Anyway, I would need to be able to reproduce to look further into this.