[BUG] Oracle Disc Priest premonition cooldown issues
Closed this issue · 7 comments
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 |
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
- Enter game as oracle disc priest
- Load APL above
- Cycle through premonition and observe
Player Information (Link)
n/a
Error Messages (Link)
n/a
Additional Information
No response
Contact Information
mat4x4
This is a custom profile?
@Zanetsuken Yeah it's a custom APL (rotation profile)
You are likely to be better off posting for help in pack development on discord.
Custom APLs are not officially supported
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)`
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.