Hekili Priority Helper

Hekili Priority Helper

44M Downloads

[REC] Retribution Paladin: Templar priority not recommending Hammer of Light free cast with Light's Deliverance

mariogusman opened this issue ยท 2 comments

commented

Before You Begin

  • I confirm that I have downloaded the latest version of the addon.
  • I am not playing on a private server.
  • I checked for an existing, open ticket for this issue and was not able to find one.
  • I edited the title of this issue (above) so that it describes the issue I am reporting.
  • I am reporting an issue with the default priority included with the specialization (imported or edited priorities are not supported).

Spec

Paladin - Retribution

Describe the Issue

For my Retribution Paladin, I expect the addon to recommend Hammer of Light as top priority once I have enough stacks of Light's Deliverance.
I noticed a few times where I have enought stacks, HoLis usable but is not recommended for a few GCDs, sometimes it is not recommended at all, until Wake of Ashes comes off cooldown and we go through the whole cycle again of using Execution Sentence, Wake of Ashes, Hammer of Light.

How to Reproduce

  1. Enter game as Ret Paladin
  2. Use the templar build which gives you Hammer of Light
  3. Go to either AOE or Single Target dummy and start following the rotation.
  4. You will notice that after you get 60 stacks of Light's Deliverance, Hammer of Light becomes usable again
  5. The addon will sometimes not recommend it despite it being top priority

Snapshot (Link)

https://pastebin.com/c3ANZW6d

Raidbots Sim Report (Link)

https://www.raidbots.com/simbot/report/g5x8YbdSRXZZRg9FB1jEnJ

Additional Information

I was able to replicate this issue both on ST and AOE dummies.
ST Snapshot pastebin is in the issue, here is the AOE one: https://pastebin.com/DQuJyEVM

in the screenshot above you can see Divine Storm recommended (spender) when Hammer of Light is available. This cast of Hammer of Light is 100% and should be prioritised abova all other damagin abilities based on the current rotation

image

I did a few snapshots and every time I go read it, I see the following indicating that HOL is not ready when it absolutely is.

        The action is not ready ( 3600.00 ) before our maximum delay window ( 0.25 ) for this query.
        Time spent on this action:  0.03ms
        TimeData:Retribution-finishers-2:hammer_of_light:0.03:Ability Known, Enabled(0.03)

and

         - this entry's criteria FAILS: variable.ds_castable[false] & ! buff.hammer_of_light_ready.up[false] & ( ! talent.crusade.enabled[true] | cooldown.crusade.remains[0.00] > gcd.max[1.29] * 3 | buff.crusade.up[false] & buff.crusade.stack[0.00] < 10 | talent.radiant_glory.enabled[true] ) & ( ! buff.divine_hammer.up[false] | cooldown.divine_hammer.remains[0.00] > 110 & holy_power.current[3.00] >= 4 )

Is it possible the addon is checking the wrong Spell ID?
https://www.wowhead.com/spell=427453/hammer-of-light -- This is the regular spell you cast and costs Holy Power
https://www.wowhead.com/spell=429826/hammer-of-light -- This is the free one you get after the 60 stacks of Light's Deliverance

Contact Information

No response

commented

Thanks for the detailed report. The challenge here (for me) is that the buff you have is this:

433674 - lights_deliverance - 5 - 3600.00

That is, 5 stacks of Light's Deliverance is detected. I think this may be fixed by editing line 1117 of Hekili/TheWarWithin/PaladinRetribution.lua, from:

if IsActiveSpell( 427453 ) then

to:

if IsActiveSpell( 429826 ) then

But there may be more nuance to it. I cannot test it yet myself, but you're welcome to try and report back with your results.

commented

Thank you for looking into this. Testing this means only editing the code in vsc or similar, saving and reloading the game or is there another step? If so I think I've tested it properly and you can consider the below:

That is, 5 stacks of Light's Deliverance is detected

The thing with Light's Deliverance is that it never stops counting. You get to 60, HoL becomes available and it resets the counter and continues adding stacks. So there might be moments where HoL is ready but stacks is between 1-60 depending on how long we took to cast hammer so I don't think this should be the criteria for allowing us to use HoL.

I tested what you suggested and it did not work.
I noticed this line of code here and I assume it is checking the last time WoA was cast and giving us 12 seconds to use HoL after that, but that is not always the case in-game due to free casts.
applyBuff("hammer_of_light_ready", 12 - (query_time - action.wake_of_ashes.lastCast))

So I suggest changing this if-statement to something like this and removing that 12-second check.

    if IsActiveSpell(427441) or IsActiveSpell(429826) or IsActiveSpell(427453) then
        applyBuff("hammer_of_light_ready", 12)
    end

That seems to have resolved the 'not suggesting' portion of the issue, thank you for pointing me to the right direction.

Another thing I noticed was this:

  • After this change it DOES HoL once we have it available due to Lights Deliverance.
  • However it now waits until you have 5 Holy Power to recommend it.
  • This is not how its supposed to work as it is a completely free cast.
  • If you missclick any spender, and is not at 5 HP, it then tells you to build HP before suggesting it again. This is not a MAJOR issue, but it can cause you to miss a few free casts here and there if you're not at 5 HP and Wake of Ashes comes off cooldown, for example, or the free cast internal buff expires.

I found this at line 1767, the spend part for Hammer of Light:

        spend = function()
            if buff.divine_purpose.up then return 0 end
            return state.spec.protection and 3 or 5
        end,
        spendType = 'holy_power',

        startsCombat = true,
        buff = "hammer_of_light_ready",

        handler = function ()
            removeBuff( "divine_purpose" )
            removeBuff( "hammer_of_light_ready" )
        end,

I tried to hack it but I'm not familiar enough with Hekili's code to make it work.