Repository navigation
Conversation
…ore player rows Main panel: - "Physical Pierce" row after "Elemental Pierce" (stat 425 passive_phys_pierce). - "FBR" breakpoint line after FHR, computed from the block (BL) AnimData record the game plays for the current class/form/weapon class (same ConvertMode + GetAnimDataRecord lookup as the IAS line), with Holy Shield's faster base. Panel height +32 (590 px, fits a 600 px screen). Side panel (player tab only, next to the main panel; the main panel has no room left): - Attributes base (hard points, GetBaseStat) / total for Str/Dex/Vit/Ene. - +All skills, +class skills, and each +skill tab bonus of the player's class (game text from CharStats StrSkillTab1-3). - Auras: the right skill when it is a running aura (with total level) and item auras (item_aura, level); oskills (item_nonclassskill) with their total level. - Dodge / Avoid / Evade chances, block frames at the current FBR. - Off-weapon ED (the player's item_maxdamage_percent: a weapon's own ED is local to the weapon), ED vs demons, ED vs undead. Clicking the side panel closes the stats panel, like the main one.
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
Adds rows players asked for to the advanced stats panel: physical pierce, an FBR breakpoint line with block frames, dodge/avoid/evade, off-weapon ED and ED vs demons/undead, active auras and oskills with their levels, base (hard-point) vs total attributes, and a +skills summary.
Problem
The panel shows FCR/FHR breakpoints but not FBR. It shows elemental pierce but not physical pierce (PD2 stat 425). It doesn't show several stats that are only visible on item tooltips: Dodge/Avoid/Evade (
STAT_DODGE/AVOID/EVADEare defined inConstants.hbut never drawn), off-weapon ED, ED vs demons/undead, auras, oskills, +skills, and hard points vs total attributes.The main panel is already 558 px tall in a 600 px-high game, so it has room for only two more rows.
Changes
BH/Drawing/Stats/StatsDisplay.cppPhysical Piercerow afterElemental Pierce;FBRline afterFHR(player tab). Panel height +32 (590 px).GetBlockBreakpoints: FBR thresholds and current block frames from the block (BL) AnimData record of the current class/form/weapon class. It uses the sameConvertMode+GetAnimDataRecordlookup as the IAS line,frames = ceil(256*F / floor(speed*(50+EFBR)/100)) - 1, with base 100 under Holy Shield. No hard-coded table.DrawSidePanel(player tab only): a second box of the same width next to the main one (left of it withstatsOnRight). Contents: attributes base/total; all/class skills and each class skill-tab bonus (game text from CharStatsStrSkillTab1-3); running own aura and item auras with level; oskills with total level; dodge/avoid/evade; block frames; off-weapon ED; ED vs demons/undead. Clicking it closes the panel, like the main box.BH/Drawing/Stats/StatsDisplay.hInRange.item_maxdamage_percentas is. In game, a weapon's own ED (ItemStatCost op 13) is applied to the weapon and doesn't show up in the player's stat 17: a 100% ED hand axe leaves it at 0, and 30% ED gloves make it 30.Testing
In game (PD2 Season 13 client, single player, Paladin level 50): gear with known stats (cap and gloves, normal quality), Might on the right button, then Holy Shield cast. Every new row is compared to the stats put on the gear. FBR and block frames are compared to the harness's independent rates oracle, which matches the PD2 wiki/maxroll FBR tables.
Strength: 100 / 115All Skills: +1,Class Skills: +1,+2 to Offensive AurasAura: Might (Level 14)Aura: Holy Freeze (Level 5)Oskill: Teleport (Level 3)Physical Pierce: 15%11% / 22% / 33%30%/40%/55%FBR: 13 / 32 / 86 / 600,Block Frames: 3FBR: 86,Block Frames: 2Unit tests (native build of
StatsDisplay.cppagainst a fake engine):Runtime: 10/10 + 10/10 cold launches (PD2 and vanilla) with the branch build, no crashes. The other in-game scenarios have the same results as on
main.Screenshots
After casting Holy Shield
Full evidence: PR-EVIDENCE.md