You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.6 KiB

--------------------------------------------------------------------------------
-- Module Declaration
--
local mod = BigWigs:NewPlugin("Flash")
if not mod then return end
--------------------------------------------------------------------------------
-- Locals
--
local flashFrame, pulseFrame = nil, nil
local flasher, pulser = nil, nil
local colors = nil
-------------------------------------------------------------------------------
-- Initialization
--
do
flashFrame = UIParent:CreateTexture()
flashFrame:SetAllPoints(UIParent)
flashFrame:SetAlpha(0)
flashFrame:SetColorTexture(0, 0, 1, 0.6)
flashFrame:Hide()
flasher = flashFrame:CreateAnimationGroup()
flasher:SetScript("OnFinished", function() flashFrame:Hide() end)
local fade1 = flasher:CreateAnimation("Alpha")
fade1:SetDuration(0.2)
fade1:SetFromAlpha(0)
fade1:SetToAlpha(1)
fade1:SetOrder(1)
local fade2 = flasher:CreateAnimation("Alpha")
fade2:SetDuration(0.2)
fade2:SetFromAlpha(1)
fade2:SetToAlpha(0)
fade2:SetOrder(2)
local fade3 = flasher:CreateAnimation("Alpha")
fade3:SetDuration(0.2)
fade3:SetFromAlpha(0)
fade3:SetToAlpha(1)
fade3:SetOrder(3)
local fade4 = flasher:CreateAnimation("Alpha")
fade4:SetDuration(0.2)
fade4:SetFromAlpha(1)
fade4:SetToAlpha(0)
fade4:SetOrder(4)
pulseFrame = UIParent:CreateTexture()
pulseFrame:SetPoint("CENTER", UIParent, "CENTER")
pulseFrame:SetSize(100,100)
pulseFrame:SetAlpha(0.5)
pulseFrame:SetTexture(132337) -- Interface\\Icons\\ability_warrior_charge
pulseFrame:SetTexCoord(0.07, 0.93, 0.07, 0.93)
pulseFrame:Hide()
pulser = pulseFrame:CreateAnimationGroup()
pulser:SetScript("OnFinished", function() pulseFrame:Hide() end)
local pulse1 = pulser:CreateAnimation("Scale")
pulse1:SetDuration(0.25)
pulse1:SetScale(2.5,2.5)
pulse1:SetOrder(1)
pulse1:SetEndDelay(0.4)
local pulse2 = pulser:CreateAnimation("Scale")
pulse2:SetDuration(0.25)
pulse2:SetScale(0.2,0.2)
pulse2:SetOrder(2)
end
function mod:OnPluginEnable()
colors = BigWigs:GetPlugin("Colors")
self:RegisterMessage("BigWigs_Flash")
self:RegisterMessage("BigWigs_Pulse")
end
-------------------------------------------------------------------------------
-- Event Handlers
--
function mod:BigWigs_Flash(event, module, key)
if BigWigs.db.profile.flash then
flasher:Stop()
if colors then
local r, g, b, a = colors:GetColor("flash", module, key)
flashFrame:SetColorTexture(r, g, b, a)
end
flashFrame:SetAlpha(0)
flashFrame:Show()
flasher:Play()
end
end
function mod:BigWigs_Pulse(event, _, _, icon)
pulser:Stop()
pulseFrame:SetTexture(icon or 134400) -- Interface\\Icons\\INV_Misc_QuestionMark
pulseFrame:Show()
pulser:Play()
end