Skip to content

Unit Frames: show frames while health is missing - #2044

Open
dfrisone wants to merge 1 commit into
EllesmereGaming:mainfrom
dfrisone:feature/unitframes-health-missing
Open

Unit Frames: show frames while health is missing#2044
dfrisone wants to merge 1 commit into
EllesmereGaming:mainfrom
dfrisone:feature/unitframes-health-missing

Conversation

@dfrisone

@dfrisone dfrisone commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds an opt-in Show When Health Missing toggle to the Visibility cog for Player, Target, and Focus frames. With Mouseover selected, an injured unit stays visible without hovering; reaching full health restores the existing visibility rules. Never Show remains authoritative.

Uses a health curve to drive opacity without comparing restricted health values. Portraits and companion mini frames follow the result, while Always Show Pet remains independent. Focus changes refresh visibility, and mouseover remains active across visibility refreshes and healing to full.

This controls visual opacity; transparent frames can still accept clicks in combat. The toggle is changed out of combat.

How was it tested?

  • User tested the updated patch in game and confirmed it works. Exact client build and live/PTR channel were not supplied. Patch was prepared on EUI 9.1.7.
  • Local mocked regression harness passed: disabled lifecycle, full/injured/zero health, fade, Never/override/disabled precedence, opaque alpha forwarding, portrait/pet inheritance, focus replacement without a health event, event cleanup, and hover through refresh/healing.
  • Lua syntax checks, diff whitespace check, and EllesmereUI style gate passed. Rebased onto current upstream main; neither implementation file changed upstream. Locale keys regenerated and checked.

Screenshots

Before/after screenshots of the implemented toggle were not supplied and are still missing.

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 — no new event frame or health curve until enabled; subscriptions removed when inactive. Existing visibility/hover paths retain cheap setting checks.
  • Cheap while enabled: event-driven (no polling, no timer-based logic, no per-frame allocations) — health/max-health and focus-change events; curves and unit list reused.
  • No writes onto Blizzard-owned frames (weak-table pattern used); HookScript/hooksecurefunc only, never SetScript on Blizzard frames — N/A for Blizzard hooks/weak tables: new state and event scripts belong to EUI-owned frames.
  • Tested in-game on live; no version gates or pre-Midnight APIs added — in-game success confirmed by user, but live channel/build not independently established. No version gates or pre-Midnight APIs added.

Celebration

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