Hekili Priority Helper

Hekili Priority Helper

44M Downloads

Tyrant Logic within summon_tyrant is no longer summoning optimal Tyrants

smadam813 opened this issue ยท 14 comments

commented

Describe the Bug/Issue
The latest change to demonology breaks the opener.

The line actions.summon_tyrant+=/summon_demonic_tyrant,if=!talent.demonic_consumption|buff.wild_imps.stack>5 is what is at fault.

I don't believe this line needs any logic at all since tyrant_prep ensures everything is in order. Setting this back to simc defaults aka actions.summon_tyrant+=/summon_demonic_tyrant takes care of the issue as tyrant isn't as reliant on imps as it used to be.

To Reproduce
Steps to reproduce the behavior:

  • Follow recommendations on target dummy and Tyrant will not be recommended while Grimoire: Felguard is still active.

Expected behavior
Tyrant is summoned while larger pets are active. (Grimoire: Felguard, Vilefiend, and Dreadstalkers - Imps are a bonus if you have them, but are not required for a nice Tyrant anymore.)

WHEN SUBMITTING AN ISSUE:

Please provide the following information.  Leaving it out may result in your ticket being ignored (because I won't have the information needed to explore your report).

build: v9.0.2-1.0.17
level: 60 (60)
class: WARLOCK
spec: demonology

talents: demon_skin
demonic_calling
demonic_consumption
demonic_strength
grimoire_felguard
mortal_coil
summon_vilefiend

pvptalents: none

covenant: kyrian

azerite: none

essences: [none], none

sets/legendaries/artifacts: none

gear: dealer_xyexas_cape = 1
depraved_physicians_mask = 1
fashionable_undershirt = 1
fleshfused_circle = 1
gory_surgeons_gloves = 1
grimveiled_spaulders = 1
lakalis_spire_of_knowledge = 1
manacles_of_burden = 1
muehzalas_hexthread_sarong = 1
ring_of_perpetual_conflict = 1
sash_of_the_ethereal_servant = 1
silvermoon_city_tabard = 1
sinful_aspirants_necklace = 1
sinister_requiem_vestments = 1
stradamas_misplaced_slippers = 1
unbound_changeling = 1
vial_of_caustic_liquid = 1

legendaries: forces_of_the_horned_nightmare = 1

itemIDs: 151116, 173247, 175885, 178708, 178714, 178748, 178756, 178759, 178869, 178872, 179349, 179351, 180098, 181503, 184655, 184732, 45585

settings: aoe = 3
buffPadding = 0
custom1Name = Custom 1
custom2Name = Custom 2
cycle = true
cycle_min = 6
damage = true
damageDots = false
damageExpiration = 6
damagePets = false
damageRange = 0
debuffPadding = 0
enabled = true
gcdSync = true
maxRefresh = 10
maxTime = 33
nameplateRange = 8
nameplates = false
package = Demonology
petbased = false
potion = unbridled_fury
potionsReset = 20180919.1
throttleRefresh = false
throttleTime = false
implosion_imps = 6

toggles: cooldowns = true
custom1 = false
custom2 = false
defensives = true
essences = true
interrupts = true
mode = automatic
potions = false

commented

My working summon_tyrant and tyrant_prep blocks.

actions.summon_tyrant=hand_of_guldan,if=soul_shard=5,line_cd=20
actions.summon_tyrant+=/demonbolt,if=buff.demonic_core.up&(talent.demonic_consumption.enabled|buff.nether_portal.down),line_cd=20
actions.summon_tyrant+=/shadow_bolt,if=buff.wild_imps.stack+incoming_imps<4&(talent.demonic_consumption.enabled|buff.nether_portal.down),line_cd=20
actions.summon_tyrant+=/grimoire_felguard
actions.summon_tyrant+=/summon_vilefiend
actions.summon_tyrant+=/call_dreadstalkers
actions.summon_tyrant+=/hand_of_guldan
actions.summon_tyrant+=/demonbolt,if=buff.demonic_core.up&buff.nether_portal.up&((buff.vilefiend.remains>5|!talent.summon_vilefiend.enabled)&(buff.grimoire_felguard.remains>5|buff.grimoire_felguard.down))
actions.summon_tyrant+=/shadow_bolt,if=buff.nether_portal.up&((buff.vilefiend.remains>5|!talent.summon_vilefiend.enabled)&(buff.grimoire_felguard.remains>5|buff.grimoire_felguard.down))
actions.summon_tyrant+=/summon_demonic_tyrant
actions.summon_tyrant+=/shadow_bolt

actions.tyrant_prep=doom,line_cd=30
actions.tyrant_prep+=/demonic_strength,if=!talent.demonic_consumption.enabled
actions.tyrant_prep+=/nether_portal
actions.tyrant_prep+=/grimoire_felguard
actions.tyrant_prep+=/summon_vilefiend
actions.tyrant_prep+=/call_dreadstalkers
actions.tyrant_prep+=/demonbolt,if=buff.demonic_core.up&soul_shard<4&(talent.demonic_consumption.enabled|buff.nether_portal.down)
actions.tyrant_prep+=/shadow_bolt,if=soul_shard<5-4*buff.nether_portal.up
actions.tyrant_prep+=/hand_of_guldan
commented

Can you provide a snapshot where the added condition has a negative impact?

There are subtle differences in how tyrant_prep is handled between simc and the addon. This condition shouldn't hurt, but if there's specific info, I can look.

commented

I can try to capture it no problem. I think the real issue though is tyrant_ready is often set to true, when it should be false. For example if cooldowns are disabled, and you do some mob packs etc. Then you get to boss, tyrant_ready will be set to true despite everything being off of cooldown and tyrant_prep will never execute. If I do a /reload it flips tyrant_ready back to false. I think it's a caching issue / garbage cleanup thing. Essentially if you get tyrant_ready to become true, but never use tyrant, it will never set itself back to false until you use tyrant.

commented

Can you provide a snapshot where the added condition has a negative impact?

commented

When you think the current recommendation is wrong, press pause or snapshot. Put that snapshot on Pastebin and link it here. Say what you thought should've been recommended at that moment.

Don't try to debug, just get me the debugging info I've asked for.

commented

Okay well, I posted both my snapshots in the post above.

commented

But you didn't know what the snapshot was, and you didn't explain what you thought should be recommended at that moment.

commented

https://pastebin.com/j2uStnuf

It should be recommending Grimoire Felguard not HoG.

commented

Thanks. I'm putting up 1.0.22-beta1 with some test changes. Give those a shot when they pop up.

At this time, I plan to leave in some conditions on having > 3 imps with Summon Demonic Tyrant for DCon, but it's correct that if you really do the tyrant_prep before the tyrant_ready list then you should be set. I am now factoring in queued imps that haven't spawned so that you don't get 5 Shards > HoG > HoG > SB > HoG > SDT any more. (It should reliably do 5 Shards > HoG > HoG > SDT, even if we could potentially crank out some more imps before any of our bigger demons despawn.)

But where SimC can rely on executing actions in a stated order, the addon has to have ways to recover from odd behavior. If the addon is showing you Grimoire Felguard within tyrant_prep, I don't know if that's really why you pressed it. Maybe you didn't mean to. So I have to tweak and twist APLs a bit to get the desired result. I don't support strict sequences, because I don't know if a person actually hit HoG on purpose or if they flubbed it by mistake.

So I made some adjustments to my 'update_tyrant_readiness' feature that might be more robust. Let me know what you think, and try a few builds. I think this is better, but it's entirely possible (even likely) that not all scenarios are solved for.

commented

Here is a snapshot, after doing opener, but not calling tyrant. Then waiting until all cooldowns are back up and restarting the opener. Snapshot taken while casting opening Demonbolt to get to 5 Shards.

https://pastebin.com/j2uStnuf

The following is the snapshot after reload when casting Demonbolt in the same state as the above screenshot.

https://pastebin.com/eWKBCMke

As you can see, Tyrant Ready is true before reloading, but after reload, it is set to false despite identical conditions.

commented

A snapshot doesn't have memory. It's what's recommended now, and why. So what I need is a snapshot taken when you disagree with the recommendation and an explanation of what you thought you should see instead:

  1. If reporting a disagreement with the addon's recommendations, please take a snapshot when you observe the issue and provide the snapshot. This is not a screenshot. A snapshot can be generated by binding the Pause feature on the Toggles tab. When you press Pause, a snapshot of how the addon decided on its CURRENT recommendations is generated and saved to the Snapshots tab. Copy and paste this to pastebin.com and provide the link here.

PUT SNAPSHOT LINK HERE:

commented

I am sorry, but I don't know how to capture what you are asking then. The top pastebin in the last post is where I disagree with the recommendation. The bottom pastebin is what it should be doing. I can only achieve what it should be doing when the value of summon_tyrant is false during an opener with all cooldowns up. The only way to get summon_tyrant to be false after it was set to true is to either summon your tyrant or /reload within the interface. If neither of those things happen, summon_tyrant will always be set to true which is incorrect if you are doing an opener as it shortcuts by recommending HoG instead of Felguard. This messes up shard generation and timing of tyrant cast.

commented

Okay, thank you. I will give it a test and let you know how it's performing.

commented

Let's start a new ticket with a fresh snapshot if you find new issues.