--[258323] = {bar=false}, -- Infected Wound
--[262513] = {bar=false}, -- Azerite Heartseeker
-- Uldir
- [265264] = 2, -- Void Lash (Zek'voz)
+ [265264] = {2, "alert"}, -- Void Lash (Zek'voz)
-- Battle of Dazar'alor
- [285213] = 1, -- Caress of Death (Rastakhan)
+ [285213] = {1, "alert"}, -- Caress of Death (Rastakhan)
+ [285195] = {12, "heal"}, -- Deathly Withering (Rastakhan)
};
local auraEvents = {};
auraEvents.SPELL_AURA_APPLIED = function(frame, id, _, _, _, amount)
- if amount == nil or amount >= watchedAuras[id] then
- frame.alert[id] = true;
+ if (amount == nil and watchedAuras[id][1] == 1) or (amount ~= nil and amount >= watchedAuras[id][1]) then
+ if watchedAuras[id][2] == "alert" then
+ frame.alert[id] = true;
+ else
+ frame.heal[id] = true;
+ end
end
end
auraEvents.SPELL_AURA_APPLIED_DOSE = auraEvents.SPELL_AURA_APPLIED;
auraEvents.SPELL_AURA_REFRESH = auraEvents.SPELL_AURA_APPLIED;
auraEvents.SPELL_AURA_REMOVED = function(frame, id, _, _, _, amount)
if amount == nil or amount == 0 then
- frame.alert[id] = nil;
+ if watchedAuras[id][2] == "alert" then
+ frame.alert[id] = nil;
+ else
+ frame.heal[id] = nil;
+ end
end
end
auraEvents.SPELL_AURA_REMOVED_DOSE = auraEvents.SPELL_AURA_REMOVED;
f.vehicle = unit == "player" and "vehicle" or format("%spet", unit);
f.prev = {} -- values stored from previous update
f.alert = {}; -- alerting auras
+ f.heal = {}; -- high healing auras
-- set up periodic updates
updaters[f] = function()
if f.updating then
OverlayColorDispel = {1, 0.5, 0, 0.5},
OverlayColorCharm = {0.8, 0, 1, 0.5},
OverlayColorAlert = {1, 0, 0, 0.5},
+ OverlayColorHeal = {0, 1, 0.6, 0.5},
}
addon.FrameGuids = {};
local dispelcolor = addon.Colors.OverlayColorDispel;
local charmcolor = addon.Colors.OverlayColorCharm;
local majorcolor = addon.Colors.OverlayColorAlert;
+local healcolor = addon.Colors.OverlayColorHeal;
local function updateAuras()
-- TODO
frame.healpred:Hide();
end
-- auras
- if frame.alert and next(frame.alert) then
+ if next(frame.alert) then
-- major
if frame.overlay.color ~= majorcolor then
frame.overlay:SetVertexColor(unpack(majorcolor));
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;
+ 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