Skip to content

Show Adjusted Stats: diminishing-returns detail on character sheet stat tooltips#356

Open
nulltyto wants to merge 1 commit into
EllesmereGaming:mainfrom
nulltyto:feature/diminishing-stats
Open

Show Adjusted Stats: diminishing-returns detail on character sheet stat tooltips#356
nulltyto wants to merge 1 commit into
EllesmereGaming:mainfrom
nulltyto:feature/diminishing-stats

Conversation

@nulltyto
Copy link
Copy Markdown
Contributor

@nulltyto nulltyto commented May 31, 2026

Summary

Adds an opt-in Show Adjusted Stats toggle under Blizz UI Enhanced → Character Sheet → Stat Display (to the right of Show PvP, off by default). When enabled, the Secondary (Crit/Haste/Mastery/Versatility) and Tertiary (Leech/Avoidance/Speed) stat tooltips gain a diminishing-returns breakdown:

  • Adjusted Rating — effective rating kept after DR penalties
  • Wasted Rating — rating lost to the penalties
  • Penalty Percentage — your current marginal penalty bracket
  • Next N% Penalty At — the raw rating where the next bracket begins (and how much more you'd need)

The breakdown is hidden for stats you have 0 rating in (e.g. an unused tertiary), since every value would be zero.

Example tooltip

Crit 24.37% (799 rating)
Increases your chance to critically hit by 24.37%.

Adjusted Rating: 799
Wasted Rating: 0
Penalty Percentage: 0%
Next 10% Penalty At: 1,380 (+0)

How it works

  • DR is computed on gross rating-percent (rating / conversionFactor), so the displayed in-game effect (e.g. Mastery's coefficient) doesn't skew the bracket math.
  • Bracket widths/penalties are Blizzard game constants (secondary item-scaling 21024, tertiary 21025).
  • Per-level rating→percent conversion factors (levels 1–90) are stored as data and selected live via UnitLevel, so the numbers are correct at the current level cap (90).
  • New module EllesmereUIBlizzardSkin_DiminishingReturns.lua exposes EllesmereUI.GetStatDR(); the calculation is an original implementation.

Files

  • new EllesmereUIBlizzardSkin/EllesmereUIBlizzardSkin_DiminishingReturns.lua — DR data + calculation
  • EllesmereUIBlizzardSkin/EllesmereUIBlizzardSkin.toc — load new module before CharacterSheet
  • EllesmereUIBlizzardSkin/EllesmereUIBlizzardSkin_CharacterSheet.lua — tooltip lines (guarded by toggle + issecretvalue), default key
  • EllesmereUIBlizzardSkin/EUI_BlizzardSkin_Options.lua — the Show Adjusted Stats toggle

Testing

Lua syntax verified for all changed files; GetStatDR exercised standalone at level 90 with sane results. In-client /reload + hover smoke test recommended before merge.

Note

The conversion table tops out at level 90; on a future level-cap increase it falls back to the level-90 value (no error) until the table is extended.

Adds an opt-in "Show Adjusted Stats" toggle (Blizz UI Enhanced ->
Character Sheet -> Stat Display, next to Show PvP). When enabled, the
Secondary (Crit/Haste/Mastery/Versatility) and Tertiary (Leech/
Avoidance/Speed) stat tooltips gain a diminishing-returns breakdown:

  - Adjusted Rating: effective rating kept after DR penalties
  - Wasted Rating: rating lost to the penalties
  - Penalty Percentage: current marginal penalty bracket
  - Next N% Penalty At: raw rating where the next bracket begins

DR is computed on gross rating-percent (rating / conversion factor) so
the in-game effect display (e.g. Mastery) does not skew the brackets.
Bracket/penalty data are Blizzard game constants; the per-level
rating->percent conversion factors (levels 1-90) are stored as data and
selected live via UnitLevel, so the math is correct at the current cap.

New module EllesmereUIBlizzardSkin_DiminishingReturns.lua exposes
EllesmereUI.GetStatDR(); the calculation is our own implementation.
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.

1 participant