X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/084e0f6c357adbd2cdefd88dd5b6c45ba81d783a..0c3ccc093191d91ce9361fa13b277b622cce6a19:/OmaRF/Events.lua diff --git a/OmaRF/Events.lua b/OmaRF/Events.lua index 7c31381..c28ef44 100644 --- a/OmaRF/Events.lua +++ b/OmaRF/Events.lua @@ -102,7 +102,7 @@ local function updateHealth(frame, unit) frame.health:SetWidth(width); updateMaxHealth(frame, unit); frame.health:Show(); - elseif UnitIsDeadOrGhost(unit) then + elseif current <= 0 or UnitIsDeadOrGhost(unit) then frame.health:Hide(); else frame.health:SetWidth(current/max*width); @@ -151,11 +151,15 @@ end local function updatePower(frame, unit) local current, max = UnitPower(unit), frame.mana.max; - if current > max or max <= 0 then + if current <= 0 then + frame.mana:Hide(); + elseif current > max or max <= 0 then frame.mana:SetWidth(width); updateMaxPower(frame, unit); + frame.mana:Show(); else frame.mana:SetWidth(current/max*width); + frame.mana:Show(); end end @@ -189,17 +193,20 @@ end local function updateShield(frame, unit) local shield = UnitGetTotalAbsorbs(unit) or 0; if shield > 0 then - local max = frame.health.max; local space = width - frame.health:GetWidth(); shield = (shield / frame.health.max) * width; - if space < shield then + if space == 0 then + frame.shield:Hide(); + frame.shieldhl:Show(); + elseif space < shield then frame.shield:SetWidth(space); + frame.shield:Show(); frame.shieldhl:Show(); else frame.shield:SetWidth(shield); + frame.shield:Show(); frame.shieldhl:Hide(); end - frame.shield:Show(); else frame.shield:Hide(); frame.shieldhl:Hide();