Skip to content

Add modifier-gated buff tooltips - #2095

Open
andybergon wants to merge 2 commits into
EllesmereGaming:mainfrom
andybergon:feat/buff-tooltip-modifier
Open

andybergon wants to merge 2 commits into
EllesmereGaming:mainfrom
andybergon:feat/buff-tooltip-modifier

Conversation

@andybergon

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds opt-in "Shown on Modifier" for buff tooltips, matching the existing debuff behavior. Shift, Control, and Alt share the existing debuff modifier setting; None requires no key. Buff tooltips remain Hidden by default.

Secure hover blockers now handle overlapping buff groups so holding the modifier reveals the aura beneath every overlapping blocker. This PR keeps the existing settings location.

This is a feature proposal despite the current feature-request pause. The settings reorganization is kept in a separate draft.

How was it tested?

  • Lua 5.1 compilation and focused mocked checks for visibility modes, shared keys, combat deferral, overlay retirement, and overlapping blockers.
  • The overlap test fails on the previous implementation and passes with this change.
  • The reporter confirmed buff tooltips appear with the modifier in the live client. Combat click-casting and 40-unit performance are not yet verified.
  • Known limitations: full-frame bar blockers can intercept other aura hover areas while the modifier is released; bar anchoring can exceed the initial footprint clamp. These remain unresolved.

Screenshots

Buff tooltip visibility options with Shown on Modifier selected

The screenshot shows the modifier option in the separate settings-layout build. This PR keeps the original Frames tooltip-cog location.

Checklist

  • New settings default OFF (no behavior change without opt-in)
  • Zero cost while disabled: no events registered, no polling, no hooks doing work, no frames built
  • Cheap while enabled: event-driven (no polling, no timer-based logic, no per-frame allocations)
  • No writes onto Blizzard-owned frames (weak-table pattern used); HookScript/hooksecurefunc only, never SetScript on Blizzard frames
  • Tested in-game on live; no version gates or pre-Midnight APIs added

The last item is unchecked because only modifier visibility has live confirmation, not the complete combat/click-casting matrix.

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