Repository navigation
Keep the skill attack rate in dual-wield IAS breakpoints (Double Swing, Dragon Tail with two claws) - #101
Open
errolgr wants to merge 1 commit into
Open
Keep the skill attack rate in dual-wield IAS breakpoints (Double Swing, Dragon Tail with two claws)#101errolgr wants to merge 1 commit into
errolgr wants to merge 1 commit into
Conversation
GetIASBreakpointString adds a skill's own attack rate to STAT_ATTACKRATE (Double Swing +50 from Param5, Dragon Tail -20 from Param4), but the dual-wield block that applies PD2's faster-weapon rule recomputes the acceleration from STAT_ATTACKRATE alone and drops it. Double Swing needs two weapons, so its line always showed Frenzy's speed; Dragon Tail with two claws ignored the -20 penalty. Add nAttackRateBonus there as the single-weapon paths do.
errolgr
marked this pull request as ready for review
October 5, 2026 01:57
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
In the advanced stats panel, the
IAS (Frames):line ignores the skill's own attack rate when both hands hold a weapon. That makes Double Swing (always) and Dragon Tail with two claws show wrong breakpoints. This keeps the skill's attack rate in the dual-wield path.Problem
GetIASBreakpointStringadds a skill's attack rate modifier (nAttackRateBonus) toSTAT_ATTACKRATE: Double Swing +50 (Skills.txt Param5), Dragon Tail -20 (Param4). When both hands hold weapons, the dual-wield block that applies PD2's faster-weapon rule recomputes the acceleration from the stat alone:so the modifier is dropped:
Changes
BH/Drawing/Stats/StatsDisplay.cppSTAT_ATTACKRATE + nAttackRateBonus, like the single-weapon pathsnAttackRateBonus(Double Swing, Dragon Tail) used with two weapons change; every other line is unchanged.Testing
Against published tables: the expected values come from a model checked against the PD2 wiki Breakpoints page. Dragon Tail row: 14 of 15 cells match exactly. The wiki lists TAS 0 for 16 frames, but the animation reaches 16 frames at -3. Double Swing and Frenzy: the whole sequence equals the wiki's hit 1 + hit 2 - 1 at every TAS from -20 to 200.
In game (PD2 Season 13 client, single player): Barbarian with two Hand Axes, and Assassin with one and with two Katars, at 0 and 30 IAS.
0 (24) / 3 / 6 / 9 / 14 / 19 / 24 / 32 / 40 / 54 / 70 / 92 / 125 / 180 / 292 / 6380 (14) / 3 / 13 / 27 / 50 / 890 (11) / 10 / 26 / 50 / 950 (14) / 4 / 11 / 23 / 39 / 63 / 102 / 1870 (14) / 4 / 11 / 23 / 39 / 63 / 102 / 187The clang-cl build and in-game parity gate (10/10 PD2 and 10/10 vanilla launches) pass. The other in-game scenarios are unchanged.
Screenshots
Double Swing, two Hand Axes, 30 IAS
Dragon Tail, two Katars, 30 IAS
Full before/after table and checked reports that are not bugs
Full evidence (every case, oracle values, provenance, and the reports that turned out not to be BH bugs: single-claw IAS, speed auras/buffs, Cloak of Shadows, the
nCurrentFramesTODO, right-click-skill-only): https://github.com/errolgr/BH/blob/evidence/stats-breakpoints/PR-EVIDENCE.md