Files
Nanami-Plates/Target.lua
2026-03-20 10:20:05 +08:00

66 lines
2.2 KiB
Lua

NanamiPlates_Target = {}
local NP = NanamiPlates
local Settings = NP.Settings
local function ApplyArrowTint(ind)
if not ind or not ind.tex then return end
local tint = Settings.targetArrowTint or 0
if tint <= 0 then
ind.tex:SetVertexColor(1, 1, 1, 1)
else
local acR, acG, acB = NP.GetThemeColor("accent", 1.0, 0.5, 0.8, 1)
local r = 1 + (acR - 1) * tint
local g = 1 + (acG - 1) * tint
local b = 1 + (acB - 1) * tint
ind.tex:SetVertexColor(r, g, b, 1)
end
end
function NanamiPlates_Target.UpdateTarget(nameplate, isTarget)
if not nameplate then return end
local indL = nameplate.targetArrowL
local indR = nameplate.targetArrowR
if not indL or not indR then return end
if isTarget and Settings.showTargetGlow then
local acR, acG, acB = NP.GetThemeColor("accent", 1.0, 0.5, 0.8, 0.9)
ApplyArrowTint(indL)
ApplyArrowTint(indR)
indL:Show()
indR:Show()
-- Highlight healthBG border for target
if nameplate.healthBG then
nameplate.healthBG:SetBackdropBorderColor(acR, acG, acB, 1)
end
-- Show additive glow overlay (color/alpha synced in UpdateNamePlate)
if nameplate.targetGlow then
if not nameplate.targetGlow:IsShown() then
local barR, barG, barB = nameplate.health:GetStatusBarColor()
local lum = 0.299 * barR + 0.587 * barG + 0.114 * barB
local glowAlpha = 0.75
if lum > 0.5 then
glowAlpha = 0.75 * math.max(0.15, (1.0 - lum) * 2)
end
nameplate.targetGlow:SetStatusBarColor(barR, barG, barB, 1)
nameplate.targetGlow:SetAlpha(glowAlpha)
end
nameplate.targetGlow:Show()
end
else
indL:Hide()
indR:Hide()
-- Restore default border for non-target
if nameplate.healthBG then
local brR, brG, brB, brA = NP.GetThemeColor("panelBorder", 0.55, 0.30, 0.42, 0.9)
nameplate.healthBG:SetBackdropBorderColor(brR, brG, brB, brA)
end
if nameplate.targetGlow then
nameplate.targetGlow:Hide()
end
end
end
NanamiPlates.Target = NanamiPlates_Target