frame:RegisterUnitEvent("UNIT_POWER_BAR_SHOW", frame.unit, displayed);
frame:RegisterUnitEvent("UNIT_POWER_BAR_HIDE", frame.unit, displayed);
end
- if frame.healpred then
- frame:RegisterUnitEvent("UNIT_HEAL_PREDICTION", frame.unit, displayed);
- end
if frame.shield then
frame:RegisterUnitEvent("UNIT_ABSORB_AMOUNT_CHANGED", frame.unit, displayed);
end
frame.name:SetText(ssub(name, 1, frame.name.count));
end
-local function updateHealPred(frame, unit)
- local incoming = UnitGetIncomingHeals(unit) or 0;
- if incoming > 0 then
- local space = frame.width - frame.health:GetWidth() + 1;
- incoming = (incoming / frame.health.max) * frame.width;
- frame.healpred:SetWidth(min(space, incoming));
- frame.healpred:Show();
- else
- frame.healpred:Hide();
- end
-end
-
local function updateShield(frame, unit)
local shield = UnitGetTotalAbsorbs(unit) or 0;
if shield > 0 then
["UNIT_AURA"] = function(frame)
updateAuras(frame, frame.displayed);
end,
- ["UNIT_HEAL_PREDICTION"] = function(frame)
- updateHealPred(frame, frame.displayed);
- end,
["UNIT_ABSORB_AMOUNT_CHANGED"] = function(frame)
updateShield(frame, frame.displayed);
end,
end
if frame.auras then updateAuras(frame, frame.displayed) end
if frame.shield then updateShield(frame, frame.displayed) end
- if frame.healpred then updateHealPred(frame, frame.displayed) end
if frame.healabsorb then updateHealAbsorb(frame, frame.displayed) end
if frame.name then updateName(frame, frame.displayed) end
if frame.level then updateLevelText(frame, frame.unit) end