-- auras.lua -- 2019 Aleksi Blinnikka local _, addon = ...; local CombatLogGetCurrentEventInfo = CombatLogGetCurrentEventInfo; 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 }; 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 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_BROKEN = function(frame, id) return auraEvents.SPELL_AURA_APPLIED(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; 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");