local majorcolor = addon.Colors.OverlayColorAlert;
local healcolor = addon.Colors.OverlayColorHeal;
-local function updateAuras()
- -- TODO
- return false;
-end
-
function addon.FrameUpdate(frame)
assert(type(frame) == "table", "FrameUpdate received invalid frame parameter!");
if frame.shieldhl:IsShown() then frame.shieldhl:Hide() end
if frame.healpred:IsShown() then frame.healpred:Hide() end
if frame.healabsorb:IsShown() then frame.healabsorb:Hide() end
- --if frame.auras:IsShown() then frame.auras:Hide() end
frame.prev.health = nil;
frame.prev.hmax = nil;
elseif not UnitIsConnected(unit) then
if frame.shieldhl:IsShown() then frame.shieldhl:Hide() end
if frame.healpred:IsShown() then frame.healpred:Hide() end
if frame.healabsorb:IsShown() then frame.healabsorb:Hide() end
- --if frame.auras:IsShown() then frame.auras:Hide() end
frame.prev.health = nil;
frame.prev.hmax = nil;
else
elseif frame.healpred:IsShown() then
frame.healpred:Hide();
end
- -- auras
+ -- tank CD marker
+ if next(frame.tankcd) then
+ if not frame.defensive:IsShown() then frame.defensive:Show() end
+ elseif frame.defensive:IsShown() then
+ frame.defensive:Hide();
+ end
+ -- aura stacks
+ if next(frame.stacks) then
+ local _, amount = next(frame.stacks);
+ frame.stack:SetText(amount);
+ if not frame.stack:IsShown() then frame.stack:Show() end
+ elseif frame.stack:IsShown() then
+ frame.stack:Hide();
+ end
+ -- overlays
if next(frame.alert) then
-- major
if frame.overlay.color ~= majorcolor then
frame.overlay.color = majorcolor;
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;
+ 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
frame.overlay.color = charmcolor;
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;
+ 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