Cooldown bug
ShmooDude opened this issue ยท 0 comments
Noticed this on my Fury Warrior. Probably shows up on any class that has ability cooldowns that match up with an exact multiple of the GCD.
Fury Warrior mostly uses these: Bloodthirst (4.5 hasted cd), Raging Blow (4.5 hasted cd), and Furious Slash (no CD) in that priority. The problem is more often than not, once you've cycled through it (BT -> RB -> FS) it should now suggest Bloodthirst again but instead suggests a second Furious Slash.
After messing around with it, I believe the problem is likely to do with how Blizzard rounds (do they truncate?). The durations returned by GetSpellCooldown()
don't quite match up. I have no item stat procs of any kind on this character or all these tests. On my Fury Warrior with 16.86% Haste I get a GCD of 1.283 (1.5/1.1686 = 1.28359) but a cooldown on Bloodthirst of 3.851 (4.5/1.1686 = 3.85076). It does seem that the duration reported by the function is exact. I did 10 casts of a Furious Slash and 6 of Bloodthirst and they had time between casts of exactly 1.283 and 3.851 respectively. Occasionally the GCD was short, sometimes by quite a bit (one cast at 8.394, next at 9.549, 128ms faster than expected) but I think that's a bug on the server's end allowing the cast to go off too early (you could actually hear the sound effect for the swing double I think from the game client not expecting it till later).
I think that some sort of tolerance could be built in to fix the problem, but couldn't quite figure out where to put it in the time I had today. I think the best option might be to add an option under Advanced that would allow you to set an amount of time (similar to the Aura Lag) that would consider a GCD spell "ready" that much time sooner. You could probably have a default that was very low (like 10ms) but some people might like theirs longer. I'd probably set it to 150ms on my fury warrior for those too fast GCDs like above. Different classes/specs might use different values here but the default should probably be pretty low. Should be applied only to GCD spells since Off-GCD spells can simply be used as soon as they're ready regardless of the GCD.