Hekili Priority Helper

Hekili Priority Helper

44M Downloads

[REC] Fire Mage - Improved SKB proccing / combust chain for 16 second duration

syrifgit opened this issue ยท 3 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

As discussed with discord user stntz in discord #general, I confirmed that the addon is tripping up when consuming your 8th hotstreak as part of Sun Kings Blessing.

What happens

You have 7 stacks of SKB, and have a hot streak ready to go. You throw the instant pyro which grants you fury of the sun king. The addon recommends Combustion.

What should happen

You have 7 stacks of SKB, and have a hot streak ready to go. You throw the instant pyro which grants you fury of the sun king. You cast a hard-cast pyroblast and the addon recommends a cast-while-casting Combustion near the end of it. This is in the class guides.

What I think is causing the issue

The logic (or backend? ) is not 100% right for looking at the cast time of Pyroblast and comparing it to the combustion cast while casting window.

The entry which should cast combust here is combustion_phase line 13
Combustion: hot_streak_spells_in_flight = 0 & buff.combustion.down & variable.time_to_combustion <= 0 & ( action.scorch.executing & action.scorch.execute_remains < variable.combustion_cast_remains | action.fireball.executing & action.fireball.execute_remains < variable.combustion_cast_remains | action.pyroblast.executing & action.pyroblast.execute_remains < variable.combustion_cast_remains | action.flamestrike.executing & action.flamestrike.execute_remains < variable.combustion_cast_remains | action.meteor.in_flight & action.meteor.in_flight_remains < variable.combustion_cast_remains )

However, what ends up happening is that the addon always writes the instant pryoblast execute time as 0.01s shorter than the combust window. I tested this. The default combust window in the spec lua file is 0.3s and the pyro execute time was showing as 0.29. I manually edited the file to have the combust time be shorter, 0.28s and the addon automatically changed the pyro execute time to 0.27s. This seems to me to be making the addon think you can cast combust during this instant pyro as a "precast", but that is incorrect due to SKB / Fury buffs. I then reverted my combustion window edit back to the default of 0.3

How I created a duct-tape workaround to get the desired behaviour as per class guides

I modified the combustion condition above to the following
Combustion: hot_streak_spells_in_flight = 0 & buff.combustion.down & variable.time_to_combustion <= 0 & ( action.scorch.executing & action.scorch.execute_remains < variable.combustion_cast_remains | action.fireball.executing & action.fireball.execute_remains < variable.combustion_cast_remains | action.pyroblast.executing & action.pyroblast.execute_remains > 1.5 | action.flamestrike.executing & action.flamestrike.execute_remains < variable.combustion_cast_remains | action.meteor.in_flight & action.meteor.in_flight_remains < variable.combustion_cast_remains )

More specifically,
action.pyroblast.execute_remains < variable.combustion_cast_remains --> action.pyroblast.execute_remains > 1.5

Changing the condition check from variable.combustion_cast_remains ---> 1.5 made it so that it always failed for the instant cast pyro. This in turn made the addon recommend the instant pyro as your 8th hotstreak, followed by a hardcast pyro to proc mini-combust, followed by combustion cast-while-casting. This is exactly the desired behaviour and was consistently reproducible with the modification.

Side note: I chose 1.5 because I started by just flipping the operator, but then for some reason it stopped calling Pyro's execute time as combust-0.01s, and started calling it the value of your GCD (which sounds like the correct value for the variable). I don't know why. So I set it high enough to always be higher than my GCD and it started working. If you flip the operator back again, it just starts hardlocking the pyro time at 0.29 again, making it always true as it's lower than 0.3 (combustion default).

The only caveat here is that you do actually want to cast the combustion near the end of the cast, and this workaround only makes it recommend the CwC combustion during the first ~1/2 of the pyro cast.

I hope this workaround is enough for you to figure out what's going on here.

How to Reproduce

  1. Single target dummy as standard m+ ignite / firestarter build.
  2. build up 8 stacks of SKB
  3. Addon will temporarily be incorrect, then correct itself after 1-2 seconds of waiting. Incredibly consistent and reproducible by multiple users.

Snapshot (Link)

https://pastebin.com/44dXV9Pf

Raidbots Sim Report (Link)

No response

Additional Information

No response

Contact Information

Syrif

commented

Have you tested these changes in simulations or is the behavior unique to the actual game?

commented

All the testing was in game reading the variables using pause feature and mousing over the apl while casting. My workaround wouldn't really do anything to the sim except make it cast combustion a little earlier than optimal.

It's a situation of the addon not reflecting the sims/guides, seemingly because the pyro execute time vs combust usable window is throwing false positive. The workaround is just me forcing it to not throw a "true" there when you instant cast pyro for your 8th hot streak (at the cost of some combust uptime, which is better than the alternative of wasting the proc of SKB), which then makes the addon reflect the sim by inserting the hardcast pyro between "consuming your 8th hot streak" and "clicking combust".

The weird part for me was that it hardlocked pyros instant-cast execute time as 0.29 (combust usable window - 0.01s), and changing the combust timer in the class definitions file changed the execute window accordingly to maintain the -0.01s. this value is far lower than what's possible for a GCD. But as soon as you flip the comparison operator the other way, the addon suddenly starts reading the instant pyro execute time as your GCD instead which seems to be what it should be.

Another solution I thought of but was unable to create myself was a way to force that combust line to only trigger on hard casts of pyro, never instants, when running skb (and possibly firestarter? Not sure if that talent is a hard req in this situation).

commented

I've had more time to look at this, and I think it's actually an issue of guides and sim not being lined up. All the top fire mages (gingi, Arxesz, etc) play different than the sims regarding meteor and the combustion precast thing. I simmed my workaround thing and it's damage neutral, so it seems doing it "correctly" doesn't even matter.

I would park this for now.

I still don't know why the variables in-game were being weird, though.