Skip to content

Fix Class Resource pips widening after a zone change - #1918

Merged
EllesmereGaming merged 2 commits into
EllesmereGaming:mainfrom
dfrisone:fix/classpower-size-reset-zone
Sep 2, 2026
Merged

Fix Class Resource pips widening after a zone change#1918
EllesmereGaming merged 2 commits into
EllesmereGaming:mainfrom
dfrisone:fix/classpower-size-reset-zone

Conversation

@dfrisone

@dfrisone dfrisone commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Bug: reported by Bjønn in the EllesmereUI-helper Discord (2026-08-28, v9.0.7).

Issue: with Class Resource set to Modern and the pip Size adjusted, the player frame's row came back much wider after any zone change and stayed wide until a reload. The options preview kept showing the correct size, so the profile itself looked fine.

Root cause: UpdatePips rebuilds the pip row whenever the resource max changes, then re-stretched it across the frame width unconditionally. That stretch belongs only to the Above Health Bar position, where PositionClassPowerBar anchors the row to the health bar's edges. A loading screen re-reads the max because talent data reloads with the zone, so every other position lost its pip width.

Fix: gate the re-stretch on Modern plus Above Health Bar, the pair PositionClassPowerBar tests. _repositionForWidth also now divides by the shown pip count instead of #pips, a high-water mark that left a gap at the right edge once a max shrank. Verified in game.

The pip rebuild that runs whenever the resource max changes finished by
re-stretching the pips across the frame width. That stretch only belongs
to the "above" position, where PositionClassPowerBar anchors the row to
the health bar's edges -- the comment said so, the code did it
unconditionally. Every loading screen re-reads the max (talent data
reloads with the zone), so any other position lost its configured pip
size and came back spanning the whole frame until the next reload, with
the profile value itself untouched.

Gate the re-stretch on modern + "above", the same pair
PositionClassPowerBar and the warrior-charge sync already test.
_repositionForWidth divided the target width by #pips, the high-water
mark the rebuild's shownPipCount already exists to replace: once a
resource max shrank, the "above" row laid its remaining pips out at the
old pip width and left a permanent gap at the right edge of the health
bar until the max grew back.
@EllesmereGaming
EllesmereGaming merged commit 2ab8df4 into EllesmereGaming:main Sep 2, 2026
1 check passed
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.

2 participants