-- auras.lua -- 2019 Aleksi Blinnikka local _, addon = ...; local CombatLogGetCurrentEventInfo = CombatLogGetCurrentEventInfo; local guids = addon.FrameGuids; local watchedAuras = { --[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 -- 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 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 = 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_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] and guids[dest] then auraEvents[event](guids[dest], spellid, ...); end end addon.Events.Clog = clog; local frame = CreateFrame("Frame"); frame:Hide(); frame:SetScript("OnEvent", function() frame:UnregisterAllEvents(); frame:SetScript("OnEvent", function() return clog(CombatLogGetCurrentEventInfo()); end); frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); end); frame:RegisterEvent("PLAYER_LOGIN");