Hekili Priority Helper

Hekili Priority Helper

50M Downloads

[REC] Shadowpriest APL occasionally thinks it cant use devouring plague

syrifgit opened this issue ยท 4 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).

Describe the Issue

Not sure about other environments, but occasionally in m+ Devouring Plague will assign a 1.2 second CD to itself, which is longer than your global. This causes it to never be chosen, which stops void torrent from being cast and also incorrectly caps your insanity. This was reported by another user, and I started noticing it myself in keys.

Discord discussion: https://discord.com/channels/307520968895627264/307520968895627264/1236302965002735758

This line from the APL is what I think is causing the issue:

47.  devouring_plague ( aoe - 8 )
        The action is not ready ( 1.20 ) before our maximum delay window ( 1.04 ) for this query.

DP should not have a 1.2 second cooldown, I am not sure what's causing that.

How to Reproduce

I was unable to identify the conditions which cause it to happen, but here are a few common parameters

1 - NOT in cooldown window
2 - Void Torrent is available to cast, not on CD
3 - mythic + standard build as per https://www.icy-veins.com/wow/shadow-priest-pve-dps-spec-builds-talents
4 - running m+

Will try to get additional snapshots.

Snapshot (Link)

https://pastebin.com/bBFukkcX

Raidbots Sim Report (Link)

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

Additional Information

No response

Contact Information

Syrif + Morpheus

commented

Additional info I just remembered

Manually casting either Devouring Plague or void torrent completely fixes the rotation.

commented
47.  devouring_plague ( aoe - 8 )
        The action is not ready ( 1.20 ) before our maximum delay window ( 1.04 ) for this query.

This part is correct; the GCD is active for 1.2 seconds and the addon is scanning to see if there's anything it can do before Shadow Crash impacts the ground. It searches again afterward if you scroll further down the snapshot. No void_torrent entry is considered and the devouring_plague entries for AOE are checking for Distorted Reality.

        47.  devouring_plague ( aoe - 8 )
        The action (devouring_plague) is usable at (1.05 + 0.15) with cost of 45 insanity (have 86).
         - the action is ready before the current recommendation (at +0.15 vs. +10.00).
        List ( aoe ) called from ( Shadow:default:8 ) would PASS at 0.15.
        active_enemies[3.00] > 2
         - this entry's criteria FAILS: talent.distorted_reality.enabled[false] & ( active_dot.devouring_plague[0.00] = 0 | insanity.deficit[64.00] <= 20 )

It's possible that this changes with the priority updates that will be in 10.2.7-1.0.1, so we'll need to look at new snapshots after that point.

commented

I think I found the issue.

From SIMC
actions.aoe+=/devouring_plague,target_if=max:target.time_to_die*(!dot.devouring_plague.ticking),if=talent.distorted_reality&(active_dot.devouring_plague=0|insanity.deficit<=20)

In Hekili (Current, newest version), the same line is

actions.aoe+=/devouring_plague,cycle_targets=1,if=talent.distorted_reality&(active_dot.devouring_plague=0|insanity.deficit<=20)

Seems to me that the sim has a 2nd condition part of that line which is not reliant on distorted reality.

Otherwise, every devouring plague line in the AoE list requires that you either have distorted reality, or, you aren't pooling for CDs.

Obviously there is a lot of logic added on .. but those 2 things will block it.

Changing the line in Hekili to the below seems to work so far. You may know a more elegant solution.

target.time_to_die*(! dot.devouring_plague.ticking) | (talent.distorted_reality.enabled & ( active_dot.devouring_plague = 0 | insanity.deficit <= 20 ))

The issue basically seems to be the addon gets stuck not casting DP because it pools for insanity for void torrent, but then wont void torrent because DP isn't up on the target. So it makes you use bad fillers all the way up to 131 insanity for the short circuit in another line. This also explains why the rotation fixes itself after casting DP manually. So by adding back in the logic check for "high uptime on devouring plague", it seems to work fine. Which is basically just only putting DP back on if it's missing, and not spending more insanity even if you have it.

commented

actions.aoe+=/devouring_plague,target_if=max:target.time_to_die*(!dot.devouring_plague.ticking),if=talent.distorted_reality&(active_dot.devouring_plague=0|insanity.deficit<=20)

The target_if portion is used in SimC to select a target. This is replaced by cycle_targets=1 in the addon.

That entry should not be used in the sim if Distorted Reality isn't talented, which it was not in the original post. I'll check for priority updates, though.