-- range check (doesn't have an event) frames can be marked constantly visible
if not frame.constant then
local inrange, checked = UnitInRange(unit);
- local inphase = UnitInPhase(unit);
- if (checked and not inrange) or not inphase then
+ local inphase = UnitPhaseReason(unit);
+ if (checked and not inrange) or inphase then
frame:SetAlpha(0.55);
else
frame:SetAlpha(1);
frame.heal = {};
frame.buff1 = {};
frame.buff2 = {};
+ frame.stagger = {};
addon.SetAuras(frame.unit, frame.guid);
frame.rounds = 0;
end
local _, amount = next(frame.stacks);
frame.stack:SetText(amount);
if not frame.stack:IsShown() then frame.stack:Show() end
+ elseif next(frame.hits) then
+ local _, amount = next(frame.hits);
+ frame.stack:SetText(amount);
+ if not frame.stack:IsShown() then frame.stack:Show() end
elseif frame.stack:IsShown() then
frame.stack:Hide();
end
elseif frame.glow:IsShown() then
frame.glow:Hide();
end
+ -- DK Death Strike and Monk Stagger tracking
+ if frame.rolename == "TANK" then
+ if frame.classname == "DEATHKNIGHT" then
+ local power = UnitPower(unit);
+ if power < 45 then
+ if not frame.bottomwarn:IsShown() then frame.bottomwarn:Show() end
+ elseif frame.bottomwarn:IsShown() then
+ frame.bottomwarn:Hide();
+ end
+ elseif frame.classname == "MONK" then
+ if next(frame.stagger) then -- Heavy Stagger
+ if not frame.bottomwarn:IsShown() then frame.bottomwarn:Show() end
+ elseif frame.bottomwarn:IsShown() then
+ frame.bottomwarn:Hide();
+ end
+ end
+ elseif frame.bottomwarn:IsShown() then
+ frame.bottomwarn:Hide();
+ end
-- overlays
if next(frame.alert) then
-- major