Hekili Priority Helper

Hekili Priority Helper

50M Downloads

[REC] Incorrect skipping of 'in flight' spells

stantsz opened this issue ยท 5 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

While casting an ability, a 'cast finish' and a 'cast impact' event get queued up. In some cases, these are within .2s of each other, causing the gap in time between 'cast finish' and 'cast impact' to be skipped by Hekili's forecasting (related code here This breaks some checks that look for the number of spells in flight.

Here's an example scenario:
I'm a fire mage
I have hot streak up
I start casting fireball

At the next possible instant that I can cast (the instant the fireball finishes casting), ingame I'm considered to be satisfying the condition above - I have hot streak and I have the fireball in the air. I would want to followup by casting pyroblast.

However, by skipping the over the impact event (because its really close to finish casting) wouldn't 'hot_streak_spells_in_flight' in Hekili be considered to be 0? In which case, the condition would fail and the pyro wouldn't be recommended. This would be a mistake.

How to Reproduce

Use this profile:

actions=/pyroblast,if=buff.hot_streak.react&hot_streak_spells_in_flight
actions+=/fireball
  1. Stand very close to a target dummy
  2. Use Fire Blast twice to get Hot Streak
  3. Use Combustion
  4. Start casting Fireball.

Result:
The Fireball should be considered to be 'in flight', resulting in a Pyroblast being recommended.

Actual:
Fireball is recommended

Snapshot (Link)

https://pastebin.com/dLLxJtdY

Raidbots Sim Report (Link)

No response

Additional Information

No response

Contact Information

Discord: stntz

commented

In which case, the condition would fail and the pyro wouldn't be recommended. This would be a mistake.

In a complete priority, though, the feigned impact will have procced Hot Streak and another entry should be directing you to cast Pyroblast. Honestly, I'd much rather move further away from the sim's model of gaming 15ms windows than trying to force them open.

That said, I'm not opposed to removing the time compression when events are going to happen in the extremely near future as I doubt it happens often enough to matter (and doubt it saves any real CPU cycles). Did you try removing it? Did you get the results you expected?

commented

I'm not sure if it's relevant here as I haven't looked at that part of the codebase yet, but in Ovale, I added the concept of some buffs being applied when a spellcast finished as opposed to landing on the target, mostly added to support both fire and frost mage procs.

commented

This already exists, the issue here was that the player was so close to the target that the flight time was less than the threshold for the event system to fast forward. I may disable that fast forwarding for projectile events.

commented

I'm making a change such that any projectile spell (if set up properly) will always have a minimum expected flight time of 0.25 seconds for the purposes of decision-making. This should help when queuing/casting up close, but it could break a lot of stuff. We'll find out.

commented

but it could break a lot of stuff. We'll find out.

The foreshadowing here was crazy. ;)