git
/
wowui.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
3918a93 - Add licence
[wowui.git]
/
OmaRF
/
Events.lua
diff --git
a/OmaRF/Events.lua
b/OmaRF/Events.lua
index
3098918
..
762cb99
100644
(file)
--- a/
OmaRF/Events.lua
+++ b/
OmaRF/Events.lua
@@
-64,6
+64,7
@@
local registerUnitEvents = M.RegisterUnitEvents;
local function updateText(frame, unit)
if UnitIsDeadOrGhost(unit) then
local function updateText(frame, unit)
if UnitIsDeadOrGhost(unit) then
+ frame.dead = true;
frame.text:SetText("Dead");
frame.text:Show();
elseif not UnitIsConnected(unit) then
frame.text:SetText("Dead");
frame.text:Show();
elseif not UnitIsConnected(unit) then
@@
-92,14
+93,16
@@
local function updateHealth(frame, unit)
-- somehow current health has gone over the maximum (missed maxhealth event possibly)
-- just put health bar full and update max health for next event
frame.health:SetWidth(width);
-- somehow current health has gone over the maximum (missed maxhealth event possibly)
-- just put health bar full and update max health for next event
frame.health:SetWidth(width);
+ frame.health.width = width;
updateMaxHealth(frame, unit);
frame.health:Show();
elseif current <= 0 or UnitIsDeadOrGhost(unit) then
updateMaxHealth(frame, unit);
frame.health:Show();
elseif current <= 0 or UnitIsDeadOrGhost(unit) then
- frame.dead = true;
frame.health:Hide();
frame.health:Hide();
- updateText(frame, unit); -- update death
+
return
updateText(frame, unit); -- update death
else
else
- frame.health:SetWidth(current/max*width);
+ local w = current/max*width;
+ frame.health:SetWidth(w);
+ frame.health.width = w;
frame.health:Show();
end
frame.health:Show();
end
@@
-110,11
+113,15
@@
local function updateHealth(frame, unit)
end
M.UpdateHealth = updateHealth;
end
M.UpdateHealth = updateHealth;
--- TODO maybe add a prefix when in vehicle
local function updateName(frame, unit)
local name = UnitName(unit);
if not name then return end
local function updateName(frame, unit)
local name = UnitName(unit);
if not name then return end
- frame.name:SetText(ssub(name, 1, 6));
+ name = ssub(name, 1, 6);
+ if frame.unit == unit then
+ frame.name:SetText(name);
+ else
+ frame.name:SetFormattedText("-%s", name);
+ end
local _, class = UnitClass(unit);
local color = RAID_CLASS_COLORS[class];
local _, class = UnitClass(unit);
local color = RAID_CLASS_COLORS[class];
@@
-125,10
+132,9
@@
M.UpdateName = updateName;
local function updateHealPred(frame, unit)
local incoming = UnitGetIncomingHeals(unit) or 0;
if incoming > 0 then
local function updateHealPred(frame, unit)
local incoming = UnitGetIncomingHeals(unit) or 0;
if incoming > 0 then
- -- always at least 1 pixel space for heal prediction
- local space = width - frame.health:GetWidth() + 1;
incoming = (incoming / frame.health.max) * width;
incoming = (incoming / frame.health.max) * width;
- frame.healpred:SetWidth(min(space, incoming));
+ -- always at least 1 pixel space for heal prediction
+ frame.healpred:SetWidth(min(width - frame.health.width + 1, incoming));
frame.healpred:Show();
else
frame.healpred:Hide();
frame.healpred:Show();
else
frame.healpred:Hide();
@@
-139,7
+145,7
@@
M.UpdateHealPred = updateHealPred;
local function updateShield(frame, unit)
local shield = UnitGetTotalAbsorbs(unit) or 0;
if shield > 0 then
local function updateShield(frame, unit)
local shield = UnitGetTotalAbsorbs(unit) or 0;
if shield > 0 then
- local space = width - frame.health
:GetWidth()
;
+ local space = width - frame.health
.width
;
shield = (shield / frame.health.max) * width;
if space == 0 then
frame.shield:Hide();
shield = (shield / frame.health.max) * width;
if space == 0 then
frame.shield:Hide();
@@
-163,9
+169,8
@@
M.UpdateShield = updateShield;
local function updateHealAbsorb(frame, unit)
local absorb = UnitGetTotalHealAbsorbs(unit) or 0;
if absorb > 0 then
local function updateHealAbsorb(frame, unit)
local absorb = UnitGetTotalHealAbsorbs(unit) or 0;
if absorb > 0 then
- local space = frame.health:GetWidth();
absorb = (absorb / frame.health.max) * width;
absorb = (absorb / frame.health.max) * width;
- frame.healabsorb:SetWidth(min(
space
, absorb));
+ frame.healabsorb:SetWidth(min(
frame.health.width
, absorb));
frame.healabsorb:Show();
else
frame.healabsorb:Hide();
frame.healabsorb:Show();
else
frame.healabsorb:Hide();
@@
-279,10
+284,6
@@
local eventFuncs = {
updateShield(frame, frame.displayed);
updateHealAbsorb(frame, frame.displayed);
-- no heal prediction update, that doesn't overflow too much
updateShield(frame, frame.displayed);
updateHealAbsorb(frame, frame.displayed);
-- no heal prediction update, that doesn't overflow too much
- -- raid marker update here, if needed
- -- because marker is removed when unit dies
- -- without a RAID_TARGET_UPDATE event
- --updateRaidMarker(frame, frame.unit);
end,
["UNIT_AURA"] = function(frame)
updateAuras(frame, frame.displayed);
end,
["UNIT_AURA"] = function(frame)
updateAuras(frame, frame.displayed);
@@
-348,5
+349,5
@@
eventFuncs["PLAYER_ENTERING_WORLD"] = eventFuncs["UPDATE_ALL_BARS"];
eventFuncs["PLAYER_FOCUS_CHANGED"] = eventFuncs["UPDATE_ALL_BARS"];
function M.UnitEvent(self, event)
eventFuncs["PLAYER_FOCUS_CHANGED"] = eventFuncs["UPDATE_ALL_BARS"];
function M.UnitEvent(self, event)
- eventFuncs[event](self);
+
return
eventFuncs[event](self);
end
end