Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swing timer stuff #1599

Merged
merged 1 commit into from
Nov 5, 2022
Merged

Swing timer stuff #1599

merged 1 commit into from
Nov 5, 2022

Conversation

vigo2
Copy link
Contributor

@vigo2 vigo2 commented Nov 5, 2022

Core changes:

[core] replaced DelayMeleeUntil() by StopMeleeUntil(), to properly model how spell casts (usually) stop the swing timers during cast, and reset them afterwards

[core] replaced DelayMainhand/OffhandMeleeUntil() by DelayMeleeBy(), which simply delays all swing timers; it's used exclusively for Slam

[core] removed various unused helper methods from AutoAttacks, including DelayMeleeUntil(); slightly refactored UpdateSwingTime()

Better names wanted!

[core] spells with a cast time no longer ~delay auto attacks by default; it rarely happens, and those cases usually have special handling; plus, the handling was incomplete (missing instants and channels)

This could also be handled via SpellFlags, but that's rather tedious.

Related class changes:

[paladin] Exorcism always benefits from Benediction, not only during Art of War procs; added a StopMeleeUntil() for when it's hardcast

[shaman] Feral Spririt now has an ActivationFactory which resets the swing timers (StopMeleeUntil())

[shaman] the Fire Elemental's attack now also use StopMeleeUntil()

[warrior] Slam is using DelayMeleeBy()

[warrior] Shattering Throw is now modelled as (mostly) unavoidable melee attack, doesn't ignore armor anymore, and also resets the swing timers (StopMeleeUntil))

Two instances of Heroic Throw proccing Sudden Death:

Screenshot 2022-11-03 at 20 40 09

Screenshot 2022-11-03 at 20 41 56

"Classic" swing timer reset after Heroic Throw (syncing up main- and offhand swings):

Screenshot 2022-11-03 at 21 37 19

…del how spell casts (usually) stop the swing timers during cast, and reset them afterwards

[core] replaced DelayMainhand/OffhandMeleeUntil() by DelayMeleeBy(), which simply delays all swing timers; it's used exclusively for Slam
[core] removed various unused helper methods from AutoAttacks, including DelayMeleeUntil(); slightly refactored UpdateSwingTime()
[core] spells with a cast time no longer ~delay auto attacks by default; it rarely happens, and those cases usually have special handling; plus, the handling was incomplete (missing instants and channels)

[paladin] Exorcism always benefits from Benediction, not only during Art of War procs; added a StopMeleeUntil() for when it's hardcast
[shaman] Feral Spririt how has an ActivationFactory which resets the swing timers (StopMeleeUntil())
[shaman] the Fire Elemental's attack now also use StopMeleeUntil()
[warrior] Slam is using DelayMeleeBy()
[warrior] Shattering Throw now behaves as a melee attack, doesn't ignore armor anymore, and also resets the swing timers (StopMeleeUntil))
@vigo2 vigo2 merged commit 9d09dc1 into wowsims:master Nov 5, 2022
@vigo2 vigo2 deleted the vigo/swing-timers branch November 5, 2022 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants