Hekili Priority Helper

Hekili Priority Helper

53M Downloads

[BUG] Oracle Disc Priest premonition cooldown issues

Closed this issue · 7 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 bug report (above) so that it describes the issue I am reporting.

Describe the Issue

Sample APL

actions+=/smite,if=action.premonition_of_insight.known&cooldown.premonition_of_insight.remains<=5
actions+=/penance,if=action.premonition_of_piety.known&cooldown.premonition_of_piety.remains<=5
actions+=/power_word_fortitude,if=action.premonition_of_solace.known&cooldown.premonition_of_solace.remains<=5
actions+=/power_word_shield,if=action.premonition_of_clairvoyance.known&cooldown.premonition_of_clairvoyance.remains<=5

Snapshot:

RECOMMENDATION #3 ( Offset: 21.55, GCD: 1.28, Casting: 0.00 ).

    Resources: insanity[ 0.00 / 100.00 ], mana[ 2648100.00 / 2730000.00 ]
    Checking if I'm casting ( No ) and if it is a channel ( No ).
    No whitelist.
    
    Processing precombat action list [ Discipline - precombat ].
        
        Current recommendation was NO ACTION at +15.00s.
        
        Entry #1 in list ( precombat ) is not set or not enabled.  Skipping.
        Exiting precombat with recommendation of NO ACTION at +15.00s.
    
    Completed precombat action list [ Discipline - precombat ].
    
    Processing default action list [ Discipline - default ].
        
        Current recommendation was NO ACTION at +15.00s.
        
        1.   smite ( default - 1 )
        The action (smite) is usable at (21.55 + 1.28).
         - the action is ready before the current recommendation (at +1.28 vs. +15.00).
         - this entry's criteria FAILS: action.premonition_of_insight.known[false] & cooldown.premonition_of_insight.remains[0.00] <= 5
        There were no recheck events to check.
        Time spent on this action:  0.05ms
        TimeData:Discipline-default-1:smite:x0:0.05:Ability Known, Enabled(0.01):Post-TTR and Essential(0.01):Post Cycle(0.00):Post Usable(0.00):Post Ready/Clash(0.00):Post Stack(0.00):Pre-Script(0.00):Post-Script(0.00):Pre-Recheck(0.01):Post-Recheck Times(0.00):Post Recheck(0.00)
        
        2.   penance ( default - 2 )
        The action (penance) is usable at (21.55 + 1.28) with cost of 43680 mana (have 2673620).
         - the action is ready before the current recommendation (at +1.28 vs. +15.00).
         - this entry's criteria FAILS: action.premonition_of_piety.known[false] & cooldown.premonition_of_piety.remains[0.00] <= 5
        There were no recheck events to check.
        Time spent on this action:  0.07ms
        TimeData:Discipline-default-2:penance:x0:0.07:Ability Known, Enabled(0.02):Post-TTR and Essential(0.02):Post Cycle(0.00):Post Usable(0.00):Post Ready/Clash(0.01):Post Stack(0.00):Pre-Script(0.00):Post-Script(0.00):Pre-Recheck(0.01):Post-Recheck Times(0.00):Post Recheck(0.00)
        
        3.   power_word_fortitude ( default - 3 )
        The action is not ready ( 2440.71 ) before our maximum delay window ( 15.00 ) for this query.
        Time spent on this action:  0.01ms
        TimeData:Discipline-default-3:power_word_fortitude:x0:0.01:Ability Known, Enabled(0.01)
        
        4.   power_word_shield ( default - 4 )
        The action (power_word_shield) is usable at (21.55 + 7.50) with cost of 81900 mana (have 2730000).
         - the action is ready before the current recommendation (at +7.50 vs. +15.00).
         - this entry's criteria PASSES: action.premonition_of_clairvoyance.known[true] & cooldown.premonition_of_clairvoyance.remains[0.00] <= 5
        Action chosen:  power_word_shield at 7.50!
        Texture shown:  135940
        Time spent on this action:  0.05ms
        TimeData:Discipline-default-4:power_word_shield:x0:0.05:Ability Known, Enabled(0.01):Post-TTR and Essential(0.01):Post Cycle(0.00):Post Usable(0.00):Post Ready/Clash(0.01):Post Stack(0.00):Pre-Script(0.00):Post-Script(0.01):Post Recheck(0.01):Action Stored(0.00)
        Exiting default with recommendation of power_word_shield at +7.50s.
    
    Completed default action list [ Discipline - default ].
    Recommendation is power_word_shield at 21.55 + 7.50.
    Recommendation #3 is power_word_shield at 7.50s (29.05s).
    Time spent generating recommendations:  1.30ms


Performance
| Updates | Updates / sec | Avg. Work | Avg. Time | Avg. Frames | Peak Work | Peak Time | Peak Frames | FPS | Work Cap |
|      52 |          0.48 |      0.73 |      0.74 |        1.00 |      1.57 |      1.58 |        1.00 | 114 |     5.60 |
Image

power_word_shield is suggested when premonition_of_clairvoyance has 15sec cooldown remain, though the APL says only to suggest when <= 5

How to Reproduce

  1. Enter game as oracle disc priest
  2. Load APL above
  3. Cycle through premonition and observe

Player Information (Link)

n/a

Error Messages (Link)

n/a

Additional Information

No response

Contact Information

mat4x4

commented

This is a custom profile?

commented

This is a custom profile?

@Zanetsuken Yeah it's a custom APL (rotation profile)

commented

You are likely to be better off posting for help in pack development on discord.
Custom APLs are not officially supported

commented

I am working to make the Premonition spells share charges/cooldown.

commented

Personally I wrote this for Prem Tracking, @Hekili So you know what last and next premonition, hope it could help a bit

-- Premonition cycle order local premonitionCycle = { "洞察预兆", --cd prem "虔诚预兆", --shield prem "慰籍预兆", --heal prem "全预兆" -- all in one prem } -- Saved state to track current index local Premonition_LAST = "NONE" local Premonition_NEXT = "prem_cd" -- Event frame local premonition_listener = CreateFrame("Frame") -- Register event for spell cast success premonition_listener:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") -- Event handler premonition_listener:SetScript("OnEvent", function(_, event, unit, _, spellID, spellName) if unit == "player" and spellID == 428933 then print("Current Premonition: " .. premonitionCycle[1]) Premonition_LAST = "prem_cd" Premonition_NEXT = "prem_heal" print("Next Premonition: " .. premonitionCycle[2]) elseif unit == "player" and spellID == 428930 then print("Current Premonition: " .. premonitionCycle[2]) Premonition_LAST = "prem_heal" Premonition_NEXT = "prem_shield" print("Next Premonition: " .. premonitionCycle[3]) elseif unit == "player" and spellID == 428934 then print("Current Premonition: " .. premonitionCycle[3]) Premonition_LAST = "prem_shiled" Premonition_NEXT = "prem_all" print("Next Premonition: " .. premonitionCycle[4]) elseif unit == "player" and spellID == 440725 then print("Current Premonition: " .. premonitionCycle[4]) Premonition_LAST = "prem_all" Premonition_NEXT = "prem_cd" print("Next Premonition: " .. premonitionCycle[1]) end end)

`local mt_premonition
do
local autoReset = {
next = 1,
last = 1,
}

mt_premonition = {
    __index = function(t, k)
        if k == "NEXT" or k == "next" then
			return Premonition_NEXT
		elseif k == "LAST" or k == "last" then
			return Premonition_LAST
        end
    end,
    __newindex = function( t, k, v )
        if v == nil then return end
        if autoReset[ k ] then Mark( t, k ) end
        rawset( t, k, v )
    end
}
ns.metatables.mt_premonition = mt_premonition

end
setmetatable(state.premonition, mt_premonition)`

commented

I was a bit bored (and sick) and implemented a (very) basic and (pretty) bad implementation of the tracking. I can continue working on it if you want to spend resources elsewhere. But can't promise to have too much time working on it at the moment.

This would allow expressions like premonition.remains<5&premonition.full_recharge_time>10, premonition.next.is_solace, premonition.last.is_piety, premonition.insight.is_next etc.

ctroller@61d07b4

commented

This was fixed some time ago.