Skip to content

Fixes: role icons, Aura Designer, targeted spells, OOR flicker & border bleed#121

Open
Krathe82 wants to merge 10 commits into
DanderBot:mainfrom
Krathe82:pr/fixes
Open

Fixes: role icons, Aura Designer, targeted spells, OOR flicker & border bleed#121
Krathe82 wants to merge 10 commits into
DanderBot:mainfrom
Krathe82:pr/fixes

Conversation

@Krathe82
Copy link
Copy Markdown
Contributor

@Krathe82 Krathe82 commented Jun 4, 2026

Third of a sequenced set (borders → defaults → fixes → icons), stacked on #120 / #119.

Merge order: builds on #119 + #120. Until those merge this PR's diff also shows their changes; it collapses to just the fixes below once they land. Merge in order: 119 → 120 → this.

Fixes

  • (Role Icons) Show Tank / Healer / DPS toggles apply live (no /reload), and are decoupled from the Hide-in-Combat gate.
  • (Boss Debuffs) Border Scale can go negative to hide the icon border (wider range, step of 1, explanatory tip).
  • (Aura Designer) Indicators are torn down when AD is disabled, and re-applied on profile swap.
  • (Targeted Spells) The targeted list no longer appears in test mode when the feature is disabled.
  • (Aura Designer) Replace-mode health-bar highlight no longer flickers on phased / out-of-range units.
  • (Aura Designer) Replace-mode health-bar highlight no longer bleeds over the frame border when a unit is out of range.

Krathe82 added 10 commits June 3, 2026 01:19
…tling

Route every border (frame, square/icon, bar, defensive icon, missing buff,
resource bar, pet, targeted spells) through a single DF.Border engine with
shared style / alpha / gradient controls and 10 animation effects (LibCustomGlow
embedded). Add DF.Expiring with per-entry throttle + stagger for the expiring
border ticker. Defensive-icon and missing-buff border fixes (frame level,
co-planar with the icon, out-of-range fade preserved across re-renders). Adds
the border & expiry system overview docs.
Default-value tweaks for new profiles: buff icon size 20, buff spacing 2, buff
stack-count offsets, Stack/Duration outline SHADOW;OUTLINE, buff & debuff
expiring border inset 0 (flush), plus minor text/aura/absorb/targeted default
tweaks. (Targets border-rework's new border-key schema.)
The old default was opaque black, which is easy to mistake for empty
space on a dark health bar. New default is a translucent grey
(#757575 @ ~80% alpha) so the reduced-max region reads clearly.

Includes a one-time, value-guarded migration: any profile still on the
exact old black {0,0,0,1} is flipped to the new colour on load; any
profile with a customised (non-black) colour is left untouched, and a
per-mode flag means a later deliberate black choice is not reverted.
Iterate the new default from #757575CB to #808080CD (50% mid-grey at
~80% alpha). Migration bumped to V2 and now also catches the brief
in-development #757575CB value (in-dev testers only) in addition to the
original opaque black, so it lands on the final colour; customised
colours are still left alone.
…targeted list

- Role icons: Show Tank/Healer/DPS toggles apply live (no /reload), decoupled
  from the Hide-in-Combat gate.
- Boss debuffs: widen Border Scale range to allow hiding the border, cap to +/-5,
  step by 1, add an explanatory tip.
- Aura Designer: tear down indicators when AD is disabled; re-apply on profile swap.
- Targeted list: don't show in test mode when the feature is disabled.
In replace mode ApplyHealthBar reset the underlying health-bar texture
to the full configured alpha on every aura re-apply, while the OOR path
(UpdateHealthBarAppearance / UpdateAuraDesignerAppearance) drove it to
the faded healthbarEffectiveBlend. In element-specific OOR mode the two
disagree on an out-of-range unit, and a phased unit — whose auras the
client re-syncs constantly, firing UNIT_AURA in a tight loop — makes the
re-apply re-assert full opacity many times a second, so the bar flashed.

Read the OOR-aware effective blend here too (fall back to the configured
alpha on first apply / in range). Regression from the a685d42 vertex->
frame alpha move, which made UpdateHealthBarAppearance OOR-aware but left
this companion write using the raw alpha.
With framePadding 0 the health bar fills the whole frame and the border
draws inward over its edge. In element-specific OOR mode the border fades
to its OOR alpha, revealing the AD replace overlay/recolour sitting under
it — so a green Renew indicator tinted the (class-coloured) border out of
range.

- Inset the AD tint/replace overlay by the frame border thickness so it
  never sits under the border (ApplyHealthBar, and re-applied in
  UpdateAuraDesignerAppearance so a range transition positions it
  immediately instead of waiting for the next aura tick).
- Run UpdateAuraDesignerAppearance before UpdateHealthBarAppearance in
  UpdateAllElementAppearances: the AD pass writes healthbarEffectiveBlend
  (the OOR-aware bar alpha) that the health pass reads, so the underlying
  bar fades in lockstep with the border on the first out-of-range frame
  (no one-tick green flash).
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