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!");
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
- 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