Files
shaga 3eb87180a3 Fork of RavenOfSeven/LifeSafer_LowHealthWarning for OctoWoW
Only change vs upstream: lowercase the toc Title color escapes
(|C... / |R -> |c... / |r) so the OctoLauncher addon browser renders the
gradient name instead of the raw escape codes. Addon code unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 21:34:44 -07:00

98 lines
3.3 KiB
Lua

-- TODO: magic numbers everywhere
function LifeSafer_Nightfall_OnLoad()
LifeSafer_Nightfall_Version = "1.1.4"
-- set default values. these will be overriden when variables are loaded
LifeSafer_Nightfall_Default_Enabled = true
LifeSafer_Nightfall_Default_ShardEnabled = true
LifeSafer_Nightfall_Default_UseLargeEffect = false
LifeSafer_Nightfall_Default_SoundEffects = false
LifeSafer_Nightfall_Enabled = LifeSafer_Nightfall_Default_Enabled
LifeSafer_Nightfall_ShardEnabled = LifeSafer_Nightfall_Default_ShardEnabled
LifeSafer_Nightfall_UseLargeEffect = LifeSafer_Nightfall_Default_UseLargeEffect
LifeSafer_Nightfall_SoundEffects = LifeSafer_Nightfall_Default_SoundEffects
-- hide both frames to avoid quick flashes
NightfallFrameEffect1:SetAlpha(0)
NightfallFrameEffect1Texture:SetVertexColor(1, 0, 0.8) -- COLOR: shadow trance frame
NightfallFrameEffect2:SetAlpha(0)
NightfallFrameEffect2Texture:SetVertexColor(1, 0.5, 1) -- COLOR: shard frame
-- command line
SlashCmdList["NIGHTFALLCMD"] = LifeSafer_Nightfall_CMD
SLASH_NIGHTFALLCMD1 = "/nightfall"
end
function LifeSafer_Nightfall_ApplySettings()
local frame = getglobal("NightfallFrame")
-- register or unregister when turning modes on or off
if (LifeSafer_Nightfall_ShardEnabled) then
frame:RegisterEvent("CHAT_MSG_LOOT")
else
frame:UnregisterEvent("CHAT_MSG_LOOT")
end
if (LifeSafer_Nightfall_Enabled) then
frame:RegisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS")
frame:RegisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF")
if (LifeSafer_Nightfall_UseLargeEffect) then
NightfallFrameEffect1Texture:SetVertexColor(1, 0, 0.8) -- COLOR: shadow trance frame
--NightfallFrameEffect1Texture:SetTexture("Interface\\Addons\\LifeSafer_LowHealthWarning\\Texture\\flash3.tga")
else
NightfallFrameEffect1Texture:SetVertexColor(0.5, 0, 0.4) -- COLOR: shadow trance frame
--NightfallFrameEffect1Texture:SetTexture("Interface\\Addons\\LifeSafer_LowHealthWarning\\Texture\\flash1.tga")
end
else
frame:UnregisterEvent("CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS")
frame:UnregisterEvent("CHAT_MSG_SPELL_AURA_GONE_SELF")
end
end
function LifeSafer_Nightfall_OnEvent()
if (event == "CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS") then
if (string.find(arg1, LifeSafer_Nightfall_String_ShadowTrance)) then
local frame = NightfallFrameEffect1
UIFrameFlash(frame, 0.2, 0.8, 10, nil, 0.2, 0)
if (LifeSafer_Nightfall_SoundEffects) then
PlaySoundFile("Interface\\AddOns\\LifeSafer_LowHealthWarning\\Sounds\\ShadowTrance.mp3")
end
end
elseif (event == "CHAT_MSG_SPELL_AURA_GONE_SELF") then
if (string.find(arg1, LifeSafer_Nightfall_String_ShadowTrance)) then
local frame = NightfallFrameEffect1
UIFrameFlashRemoveFrame(frame)
UIFrameFadeRemoveFrame(frame)
UIFrameFadeOut(frame, 0.8, frame:GetAlpha(), 0)
end
elseif (event == "CHAT_MSG_LOOT") then
if (string.find (arg1, LifeSafer_Nightfall_String_YouCreate) and string.find(arg1, LifeSafer_Nightfall_String_SoulShard)) then
local frame = NightfallFrameEffect2
UIFrameFlash(frame, 0.01, 0.5, 1, nil, 1, 0)
end
end
end
function LifeSafer_Nightfall_CMD(arg1)
if (not arg1) then
return
end
if (string.find(arg1, "^settings$") or arg1 == "") then
ShowUIPanel(NightfallSettingsFrame)
return
end
end