3eb87180a3
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>
98 lines
3.3 KiB
Lua
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
|