08cc804 - Add shown dispellable debuff filter
authorAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Mon, 2 Mar 2020 21:57:32 +0000
committerAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Mon, 2 Mar 2020 21:57:39 +0000
kehys/updater.lua

index 8083a93..e8d889c 100644 (file)
@@ -17,6 +17,10 @@ local charmcolor = addon.Colors.OverlayColorCharm;
 local majorcolor = addon.Colors.OverlayColorAlert;
 local healcolor = addon.Colors.OverlayColorHeal;
 
 local majorcolor = addon.Colors.OverlayColorAlert;
 local healcolor = addon.Colors.OverlayColorHeal;
 
+local ignoredAuras = {
+    [315176] = true, -- Grasping Tendrils
+};
+
 function addon.FrameUpdate(frame)
     assert(type(frame) == "table", "FrameUpdate received invalid frame parameter!");
 
 function addon.FrameUpdate(frame)
     assert(type(frame) == "table", "FrameUpdate received invalid frame parameter!");
 
@@ -147,31 +151,34 @@ function addon.FrameUpdate(frame)
                 frame.overlay.color = majorcolor;
                 if not frame.overlay:IsShown() then frame.overlay:Show() end
             end
                 frame.overlay.color = majorcolor;
                 if not frame.overlay:IsShown() then frame.overlay:Show() end
             end
-        elseif UnitDebuff(unit, 1, "RAID") ~= nil then
-            -- dispellable
-            if frame.overlay.color ~= dispelcolor then
-                frame.overlay:SetVertexColor(unpack(dispelcolor));
-                frame.overlay.color = dispelcolor;
-                if not frame.overlay:IsShown() then frame.overlay:Show() end
-            end
-        elseif UnitIsCharmed(unit) and frame.unit == frame.displayed then
-            -- charmed
-            if frame.overlay.color ~= charmcolor then
-                frame.overlay:SetVertexColor(unpack(charmcolor));
-                frame.overlay.color = charmcolor;
-                if not frame.overlay:IsShown() then frame.overlay:Show() end
-            end
-        elseif next(frame.heal) then
-            -- major heals needed
-            if frame.overlay.color ~= healcolor then
-                frame.overlay:SetVertexColor(unpack(healcolor));
-                frame.overlay.color = healcolor;
-                if not frame.overlay:IsShown() then frame.overlay:Show() end
-            end
         else
         else
-            if frame.overlay.color ~= nil then
-                frame.overlay.color = nil;
-                if frame.overlay:IsShown() then frame.overlay:Hide() end
+            local _, _, _, _, _, _, _, _, _, spellid = UnitDebuff(unit, 1, "RAID");
+            if UnitIsCharmed(unit) and frame.unit == frame.displayed then
+                -- charmed
+                if frame.overlay.color ~= charmcolor then
+                    frame.overlay:SetVertexColor(unpack(charmcolor));
+                    frame.overlay.color = charmcolor;
+                    if not frame.overlay:IsShown() then frame.overlay:Show() end
+                end
+            elseif spellid ~= nil and not ignoredAuras[spellid] then
+                -- dispellable
+                if frame.overlay.color ~= dispelcolor then
+                    frame.overlay:SetVertexColor(unpack(dispelcolor));
+                    frame.overlay.color = dispelcolor;
+                    if not frame.overlay:IsShown() then frame.overlay:Show() end
+                end
+            elseif next(frame.heal) then
+                -- major heals needed
+                if frame.overlay.color ~= healcolor then
+                    frame.overlay:SetVertexColor(unpack(healcolor));
+                    frame.overlay.color = healcolor;
+                    if not frame.overlay:IsShown() then frame.overlay:Show() end
+                end
+            else
+                if frame.overlay.color ~= nil then
+                    frame.overlay.color = nil;
+                    if frame.overlay:IsShown() then frame.overlay:Hide() end
+                end
             end
         end
     end
             end
         end
     end