Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abilities cooldown x% faster effects #6650

Open
kevindqc opened this issue Feb 14, 2024 · 4 comments
Open

Abilities cooldown x% faster effects #6650

kevindqc opened this issue Feb 14, 2024 · 4 comments

Comments

@kevindqc
Copy link
Contributor

kevindqc commented Feb 14, 2024

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
@ToppleTheNun
Copy link
Contributor

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.

@kevindqc
Copy link
Contributor Author

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

@ToppleTheNun
Copy link
Contributor

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?

@kevindqc
Copy link
Contributor Author

kevindqc commented Feb 15, 2024

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 #6651

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants