WoWAnalyzer icon indicating copy to clipboard operation
WoWAnalyzer copied to clipboard

Abilities cooldown x% faster effects

Open kevindqc opened this issue 2 years ago • 4 comments

Hello,

I'm trying to re-enable this ability for retribution paladin.

image

It makes cooldowns of holy power generators go 10% faster.

It is implemented using this.spellUsable.applyCooldownRateChange(this.holyPowerGeneratorIds, 1.1);, but I don't know if it works correctly?

_getExpectedCooldown uses that 1.1 value to calculate what the cooldown should be, using Math.round(unscaledCooldown / this._getSpellModRate(canonicalSpellId))

I have created a weakaura that runs and displays this:

function ()
    local s, d, e = GetSpellCooldown("Judgement");
    
    return "J - Start: " .. string.format("%.f", s) .. ", Duration: " .. string.format("%.f", d) .. ", Enabled: " .. string.format("%.f", e)
end

Using this, I see that my Hudgment cooldown is 6.7260 in-game, which, with my haste of 33.79%, is basically what WoWAnalyzer calculates (9 / 1.3379=6.7269, I see 6727 in the debugger)

image

Then when I trigger Blessing of Dusk, according to how WoWAnalyzer calculates, my judgment CD should become cd / spellModRate so in our case 6727 / 1.1 = 6115. But in-game? The value is 6.0530 instead of 6.115

image

Not sure how the game comes to that value, but I decided to try to find a similar ability, and augmentation evoker has an ability that makes your CD go 1000% faster for 3 sec - Time Skip.

I used Upheaval, and the values were: Start: 79752, Duration: 40. Then I started channelling Time Skip, and the values became: Start: 79754, Duration: 4, and finally after the channel ends, it becomes: Start: 79722, Duration: 40 so the cooldown was effectively 10 sec instead of 40sec.

So not sure what the game uses to calculate the final cd value, but if the change happens in the middle of an active cooldown, it looks like there is some adjustments being made similar (or exactly, not sure) to what _handleChangeRate already does

More in-game examples with upheaval/time skip:

- Cast Upheaval
Start: 81951, Duration: 40,
- at 35 seconds left, 5 seconds later, cast time skip
Start: 81956, Duration: 4
- Time Skip ends after its 3 second cast
Start: 81922, Duration: 40
- Cast Upheaval
Start: 82110, Duration: 40
- at 15 seconds, 25 seconds later, cast Time Skip
Start: 82132, Duration: 4
- Upheaval comes off CD halfway through the Time Skip channel

kevindqc avatar Feb 14 '24 03:02 kevindqc

Yes, that's correct. This is also technically implemented in src/analysis/retail/paladin/shared/DuskAndDawn.tsx; it needs a few updates and it's not loaded in the Retribution Paladin CombatLogParser. If you make those updates and add it to the Retribution CombatLogParser, it should work.

ToppleTheNun avatar Feb 14 '24 03:02 ToppleTheNun

That's what I did, along with other changes to haste buffs to fix all the errors like Cooldown error - Blade of Justice ID=184575 was used while SpellUsable's tracker thought it had no available charges. I was coming across, but I still have a few of them and I'm not sure why.

So I looked into Blessing of Dusk and noticed that in-game, my Judgment CD with Blessing of Dusk shows as being 6.0530 instead of the 6.115 that WoWAnalyzer uses, so was wondering if it was being calculated wrong

kevindqc avatar Feb 14 '24 03:02 kevindqc

There might be a couple of other effects that might adjust it slightly, do you have a log where you're pressing it on CD with that cooldown value?

ToppleTheNun avatar Feb 14 '24 03:02 ToppleTheNun

Taken from this video: https://www.youtube.com/watch?v=r8sD7vczIsw, using this log https://www.warcraftlogs.com/reports/tkJ9QK8y6nFZCLXw where I only press Judgment and auto-attack, and then once in a while I press Final Verdict to trigger Blessing of Dusk

image

With my 33.8% hate, it shows a 6.7260 cooldown for Judgment in-game (top left of the screen), which matches this message from WoWAnalyzer: BeginCooldown on Judgment @ 0:07.4 (t=7444) (current recharge duration: 6727ms)

Then a bit later when I use Final Verdict to trigger Blessing of Dusk: image

I still have 33.8% haste but now 10% faster cooldowns. The in-game CD for Judgment changes to 6.0530. In WoWAnalyzer, I see Cooldown changed for active CD Judgment - old CD: 6727 - new CD: 6115.454545454545 / old expectedEnd: 0:14.1 (t=14171) - new expectedEnd: 0:13.8 (t=13874)

So I was wondering why the two show different values

This was using my branch of WoWAnalyzer with the fixes in https://github.com/WoWAnalyzer/WoWAnalyzer/pull/6651

kevindqc avatar Feb 15 '24 00:02 kevindqc