Hekili Priority Helper

Hekili Priority Helper

53M Downloads

[REC] Arcane barrage being suggest infinitely at 0 charges

GamingSeat 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

Mage - Arcane

Describe the Issue

Hey Hekili!

Long time user/fan reporting an arcane rec issue

Occasionally arcane in spellslinger m+ build suggests arcane barrage infinitely in niche scenarios.
I was unable to get a snapshot but I did however go through the arcanemage.lua and find the issue and modified my file and it no longer is suggesting it with the changes made.

How to Reproduce

  1. Play arcane spellsplinger m+ off wowhead
  2. Go into dummies or dungeons and begin following rotation, once you get towards lower mana it breaks
  3. The handler is trying to spend and gain mana from charges even when there are none

Snapshot (Link)

Sorry im dumb and didnt get one before i modified the file :(

Raidbots Sim Report (Link)

No response

Additional Information

--- ISSUE: Arcane Barrage occasionally being suggested at 0 charges inappropriately
--- LOCATION: MageArcane.lua - arcane_barrage ability definition
--- REFERENCE: Based on SimC APL conditions for zero-charge Arcane Barrage usage

--- ORIGINAL CODE:
arcane_barrage = {
id = 44425,
cast = 0,
cooldown = 3,
gcd = "spell",
school = "arcane",
startsCombat = true,
handler = function ()
gain( 0.02 * mana.modmax * arcane_charges.current, "mana" )
spend( arcane_charges.current, "arcane_charges" )
-- ... rest of handler ...
end,
}

--- MODIFIED CODE:
arcane_barrage = {
id = 44425,
cast = 0,
cooldown = 3,
gcd = "spell",
school = "arcane",
startsCombat = true,

-- Added usable check to prevent suggesting at 0 charges except in specific situations
usable = function()
    if arcane_charges.current == 0 then
        -- End of fight (less than 1 second remaining)
        if fight_remains < 1 then return true end
        -- Intuition proc about to expire
        if buff.intuition.up and buff.intuition.remains < gcd.max then return true end
        -- Arcane Tempo about to expire
        if buff.arcane_tempo.up and buff.arcane_tempo.remains < gcd.max then return true end
        -- Glorious Incandescence proc
        if buff.glorious_incandescence.up then return true end
        -- Arcane Soul buff
        if buff.arcane_soul.up then return true end
        -- Otherwise, don't suggest at 0 charges
        return false
    end
    return true
end,

-- Modified handler to only spend/gain mana when we have charges
handler = function ()
    if arcane_charges.current > 0 then
        gain( 0.02 * mana.modmax * arcane_charges.current, "mana" )
        spend( arcane_charges.current, "arcane_charges" )
    end
    -- ... rest of handler remains unchanged ...
end,

}

Explanation

  1. Added a usable function that implements the following SimC APL conditions:

    • fight_remains < 1 (End of fight)
    • buff.intuition.react & buff.intuition.remains < gcd.max (Intuition expiring)
    • buff.arcane_tempo.up & buff.arcane_tempo.remains < gcd.max (Tempo expiring)
    • buff.glorious_incandescence.up (Glorious Incandescence proc)
    • buff.arcane_soul.up (Arcane Soul active)
  2. Modified the handler to only perform charge-dependent actions when charges exist:

    • Mana gain from charges
    • Charge spending

Contact Information

Discord: Null.key

commented

Repeating the APL inside the LUA file is not the way to solve this. Please provide a proper snapshot at the time you think the recommendation is wrong.

https://github.com/Hekili/hekili/wiki/Report-An-Issue#how-do-i-get-a-snapshot

commented

I'll just close it instead and continue using the fixed file until an update overwrites it and the error returns :)

Cant get a snapshot with the modified file since the error doesnt repeat itself and im not replacing it now that it works as it should.