Repository navigation
Conversation
…fe and a Skills section (skill/aura levels incl. +skills, attack skill damage)
…x screen); panel keeps the Character page's size
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
Character | Mercenarytabs to the advanced stats panel, so the merc's stats can be read without opening the merc inventory. The Mercenary page also shows the merc type and aura, max life, level, and a Skills box listing every merc skill with its level (total (base+bonus)when +skills apply) and the damage of its attack skill.Problem
Today the panel shows merc stats only while the merc inventory (O) is open; as soon as it closes the panel switches back to the character. There is no way to see the merc's skill levels or what +skills items actually give the merc.
Changes
BH/Drawing/Stats/StatsDisplay.cppDrawTabs: aCharacter | Mercenarystrip at the top of the panel. Without a merc it readsCharacter | No mercenary(greyed, the click does nothing). The selected tab is kept when the panel is reopened; opening the merc inventory selects Mercenary as before.Mercenary: Act N <aura>header, max life and level, in place of rows that don't apply to a merc.DrawMercSkills: a Skills box next to the main panel (left of it withstatsOnRight): every named merc skill asName: total, orName: total (base+bonus)with +skills; plus the attack skill damage at the total level (physical and elemental).BH/Drawing/Stats/StatsDisplay.hInRange, declarations.BH/D2Ptrs.hD2COMMON_10121_GetMinElemDamage/11091_GetMaxElemDamagefor elemental skill damage.StatsDisplayclass and a box next to the main panel (Stats panel: FBR breakpoints, physical pierce, and a side panel with more player stats #102: side panel on the player tab, this PR: Skills box on the merc tab). Whichever lands second needs a small rebase; the two boxes are on different tabs, so they don't overlap.Testing
In game (PD2 Season 13 client, single player): no merc, then an Act 1 Fire Arrow rogue hired from Kashya; each drawn line is compared with the server-side merc (skill levels, life, level, damage from #10567/#10297 and #10121/#11091). Then +2 all skills is put on the merc.
Character | No mercenary(greyed)Mercenary: Act 1 VigorVigor: 7,Fire Arrow: 7,Exploding Arrow: 7,Dodge: 5,Evade: 5Fire Arrow: 25-69Vigor: 9 (7+2),Fire Arrow: 9 (7+2),Dodge: 7 (5+2), …,Fire Arrow: 40-90Also checked by hand: Act 4 merc with the most skills (6) with +2 all skills: all rows fit.
(base+bonus)Unit tests (native build of
StatsDisplay.cppagainst a fake engine): tabs, no-merc state, skills box rows and position,(base+bonus)formatting.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.Full evidence: PR-EVIDENCE.md