Hekili / hekili

Hekili Priority Helper for DPS and Tanks (WoW Retail)
420 stars 221 forks source link

MageFire "Instant-Only When Moving" is checked, Scorch is still recommended when Hot Streak! buff on. #3938

Open hellovvorld1024 opened 1 month ago

hellovvorld1024 commented 1 month ago

Before You Begin

Spec

Mage - Fire

Describe the Issue

MageFire "Instant-Only When Moving" is checked, Scorch is still recommended when Hot Streak! buff on.

How to Reproduce

  1. MageFire enters the game
  2. Check Instant-Only When Moving
  3. Get Hot Streak! buff.

Snapshot (Link)

https://pastebin.com/P8LSYFjj

Raidbots Sim Report (Link)

No response

Additional Information

No response

Contact Information

No response

syrifgit commented 1 month ago

It would probably help the rotation if you didn't have a bunch of stuff disabled.

        62.  phoenix_flames ( standard_rotation - 12 ) - ability disabled ( toggle cooldowns )
        Time spent on this action:  0.02ms
        TimeData:Fire-standard_rotation-12:phoenix_flames:0.02:Ability Known, Enabled(0.02)
        65.  dragons_breath ( active_talents - 2 ) - ability disabled ( preference )
        Time spent on this action:  0.01ms
        53.  pyroblast ( standard_rotation - 3 )
        The action (pyroblast) is usable at (1.23 + 0.00) with cost of 5873 mana (have 290719).
         - the action is ready before the current recommendation (at +0.00 vs. +10.00).
        List ( standard_rotation ) called from ( Fire:default:20 ) would PASS at 0.00.
        variable.time_to_combustion[120.00] > 0 & buff.combustion.down[true]
         - this entry's criteria FAILS: ( buff.hyperthermia.up[false] | buff.hot_streak.up[true] & ( buff.hot_streak.remains[8.84] < action.fireball.execute_time[1.91] ) | buff.hot_streak.up[true] & ( hot_streak_spells_in_flight[0.00] | firestarter.active[false] | talent.call_of_the_sun_king.enabled[true] & action.phoenix_flames.charges[0.00] ) | buff.hot_streak.up[true] & scorch_execute.active[false] )

Looks to me like having phoenix flames disabled is affecting your pyroblast logic.

hellovvorld1024 commented 1 month ago

I just disabled dragons_breath.

I've got Hot Streak! buff in the snapshot. I think it's time to recommend Pyroblast or Flamestrike to consume the buff. phoenix_flames shouldn't affect this logic

hellovvorld1024 commented 1 month ago

https://pastebin.com/cCwf41Bt https://pastebin.com/KZt9Cz30

Here are 2 new snapshots, I didn't disable any spells, just ran out of phoenix_flames times.

syrifgit commented 1 month ago

I've got Hot Streak! buff in the snapshot. I think it's time to recommend Pyroblast or Flamestrike to consume the buff. phoenix_flames shouldn't affect this logic

OK, well it does.

  1. pyroblast ( standard_rotation - 3 ) The action (pyroblast) is usable at (1.23 + 0.00) with cost of 5873 mana (have 290719).
    • the action is ready before the current recommendation (at +0.00 vs. +10.00). List ( standard_rotation ) called from ( Fire:default:20 ) would PASS at 0.00. variable.time_to_combustion[120.00] > 0 & buff.combustion.down[true]
    • this entry's criteria FAILS: ( buff.hyperthermia.up[false] | buff.hot_streak.up[true] & ( buff.hot_streak.remains[8.84] < action.fireball.execute_time[1.91] ) | buff.hot_streak.up[true] & ( hot_streak_spells_in_flight[0.00] | firestarter.active[false] | talent.call_of_the_sun_king.enabled[true] & action.phoenix_flames.charges[0.00] ) | buff.hot_streak.up[true] & scorch_execute.active[false] )

You need one of the following to tryigger the pyro blast

Could be due to the new in-flight spell stuff maybe. #3178

Hekili commented 1 month ago

The "Instant-Only when Moving" option explicitly says it applies to casts of Fireball and Pyroblast and is overridden during Ice Floes.

It does look like this logic is blocked because your instant Pyroblast wants you to already have another Hot Streak triggering spell in flight, but Scorch isn't a projectile and you don't have any other projectile to send (apparently).

I'll investigate a bit, but the underlying issue is not that Scorch is recommended but that this spec option can block you from getting a projectile out which then allows you to double dip your Hot Streak. I'm not sure if that means that I will remove the option or if I need to deviate from the sim in some way (pretending Scorch is a projectile or changing the last condition to in standard_rotation - 3 to:

| buff.hot_streak.up & ( settings.prevent_hardcasts & moving | scorch_execute.active )

hellovvorld1024 commented 1 month ago

I viewed #3897 Description of outside of Combustion multiple Fireballs

Combined with my own tests. I stopped moving when I had Hot Streak! Recommended 3 Scorch and found that the subsequent spells changed to

  1. fireball 2. pyroblast

It seems that Pyroblast is only possible if Fireball casting. And Instant-Only When Moving fixes Fireball to Scorch, resulting in only recommending Scorch when no other spells are followed up.

3897 I'm guessing that during outside of Combustion, sometimes Pyroblast is recommended only to cast Fireball to get Hot Streak! and to continue casting Fireball while having Hot Streak!

Perhaps save Fire Blast and Phoenix Flames max charges, while waiting for Combustion to ensure quality during Combustion.

I hope this helps. This version of MageFire is much more adaptable than the previous one and is closer to the analog level.

nikolavuljan commented 1 month ago

It seems that Pyroblast is only possible if Fireball casting. And Instant-Only When Moving fixes Fireball to Scorch, resulting in only recommending Scorch when no other spells are followed up.

this is how I understood it - could be wrong

top of the "standard rotation" apl has this fireball for "pyro phishing" interaction from the wowhead guide, and the pyro below it wants either a "hot_streak_spells_in_flight" or "scorch_execute.active"

since the mob is above scorch_execute and you havent casted a fireball/phoenix - the hotstreak doesn't want to be spent which in this "while moving" scenario causes hotstreaks to be "wasted" since the hekili insists that you fireball before that hot streak

a temporary "scuffed fix" i assume would be to removing the "scorch_execute.active" from the pyroblast

actions.standard_rotation+=/fireball,if=buff.hot_streak.up&!buff.frostfire_empowerment.up&buff.hyperthermia.down&!cooldown.shifting_power.ready&cooldown.phoenix_flames.charges<1&!scorch_execute.active&!prev_gcd.1.fireball,line_cd=2*gcd.max actions.standard_rotation+=/pyroblast,if=(buff.hyperthermia.up|buff.hot_streak.up&(buff.hot_streak.remains<action.fireball.execute_time)|buff.hot_streak.up&(hot_streak_spells_in_flight|firestarter.active|talent.call_of_the_sun_king&action.phoenix_flames.charges)|buff.hot_streak.up&scorch_execute.active)