local _, addon = ...;
local CombatLogGetCurrentEventInfo = CombatLogGetCurrentEventInfo;
+local guids = addon.FrameGuids;
local watchedAuras = {
- -- Battle of Dazar'alor
--[286988] = duration, -- Searing Embers
- [257908] = {bar=false}, -- Oiled Blade
- [268391] = {bar=false}, -- Mental Assault
- [272571] = {bar=false}, -- Choking Waters
- [268008] = {bar=false}, -- Snake Charm
- [260741] = {bar=false}, -- Jagged Nettles
- [280605] = {bar=false}, -- Brain Freeze
- [268797] = {bar=false}, -- Transmute to Goo
- [265889] = {bar=false}, -- Torch Strike
- [266209] = {bar=false}, -- Wicked Frenzy
- [258323] = {bar=false}, -- Infected Wound
- [262513] = {bar=false}, -- Azerite Heartseeker
- [53563] = "TOPRIGHT", -- Beacon of Light
- [156910] = "TOPRIGHT", -- Beacon of Faith
- [200025] = "TOPRIGHT", -- Beacon of Virtue
- [33763] = "TOPLEFT", -- Lifebloom
- [774] = "TR1", -- Rejuvenation
- [102352] = "TR2", -- Cenarion Ward (102351 is the pre-buff)
- [207386] = "TR3", -- Spring Blossoms (207385 is the talent)
- [155777] = "TR3", -- Germination (either this or Spring Blossoms taken)
- [8936] = "TR4", -- Regrowth
- [200389] = "TR5", -- Cultivation
+ --[257908] = {bar=false}, -- Oiled Blade
+ --[268391] = {bar=false}, -- Mental Assault
+ --[272571] = {bar=false}, -- Choking Waters
+ --[268008] = {bar=false}, -- Snake Charm
+ --[260741] = {bar=false}, -- Jagged Nettles
+ --[280605] = {bar=false}, -- Brain Freeze
+ --[268797] = {bar=false}, -- Transmute to Goo
+ --[265889] = {bar=false}, -- Torch Strike
+ --[266209] = {bar=false}, -- Wicked Frenzy
+ --[258323] = {bar=false}, -- Infected Wound
+ --[262513] = {bar=false}, -- Azerite Heartseeker
+ -- Uldir
+ [265264] = 2, -- Void Lash (Zek'voz)
+ -- Battle of Dazar'alor
+ [285213] = 1, -- Caress of Death (Rastakhan)
};
local auraEvents = {};
auraEvents.SPELL_AURA_APPLIED = function(frame, id, _, _, _, amount)
- if UnitDebuff(frame.unit, 1, "RAID") ~= nil then
- -- update dispel indicator
- frame:ColorOverlay("low", 1, 0.5, 0, 0.5);
- end
- if auras[id] then
- if amount > 0 then
- frame.auraStarts[id] = GetTime();
- return updateApplication(frame, id, amount);
- else
- return updateRemoval(frame, id);
- end
+ if amount == nil or amount >= watchedAuras[id] then
+ frame.alert[id] = true;
end
end
auraEvents.SPELL_AURA_APPLIED_DOSE = auraEvents.SPELL_AURA_APPLIED;
auraEvents.SPELL_AURA_REFRESH = auraEvents.SPELL_AURA_APPLIED;
-auraEvents.SPELL_AURA_REMOVED = auraEvents.SPELL_AURA_APPLIED;
-auraEvents.SPELL_AURA_REMOVED_DOSE = auraEvents.SPELL_AURA_APPLIED;
+auraEvents.SPELL_AURA_REMOVED = function(frame, id, _, _, _, amount)
+ if amount == nil or amount == 0 then
+ frame.alert[id] = nil;
+ end
+end
+auraEvents.SPELL_AURA_REMOVED_DOSE = auraEvents.SPELL_AURA_REMOVED;
auraEvents.SPELL_AURA_BROKEN = function(frame, id)
- return auraEvents.SPELL_AURA_APPLIED(frame, id, nil, nil, nil, 0);
+ return auraEvents.SPELL_AURA_REMOVED(frame, id, nil, nil, nil, 0);
end
auraEvents.SPELL_AURA_BROKEN_SPELL = auraEvents.SPELL_AURA_BROKEN;
local counter = 0;
local function clog(ts, event, _, _, _, _, _, dest, _, flags, _, spellid, ...)
- if auraEvents[event] and watchedAuras[spellid] then
- counter = counter + 1;
+ if auraEvents[event] and watchedAuras[spellid] and guids[dest] then
+ auraEvents[event](guids[dest], spellid, ...);
end
end
addon.Events.Clog = clog;