X-Git-Url: https://www.aleksib.fi/git/wowui.git/blobdiff_plain/66faadbf3b25d28e4a41306ccaa6284c9eb20d5e..e2567ab9a89462e5f642e0f4b3091f5da768db2b:/kehys/updater.lua diff --git a/kehys/updater.lua b/kehys/updater.lua index 5114d5f..05696d3 100644 --- a/kehys/updater.lua +++ b/kehys/updater.lua @@ -15,11 +15,7 @@ local UnitGetTotalHealAbsorbs = UnitGetTotalHealAbsorbs; local dispelcolor = addon.Colors.OverlayColorDispel; local charmcolor = addon.Colors.OverlayColorCharm; local majorcolor = addon.Colors.OverlayColorAlert; - -local function updateAuras() - -- TODO - return false; -end +local healcolor = addon.Colors.OverlayColorHeal; function addon.FrameUpdate(frame) assert(type(frame) == "table", "FrameUpdate received invalid frame parameter!"); @@ -42,7 +38,6 @@ function addon.FrameUpdate(frame) if frame.shieldhl:IsShown() then frame.shieldhl:Hide() end if frame.healpred:IsShown() then frame.healpred:Hide() end if frame.healabsorb:IsShown() then frame.healabsorb:Hide() end - --if frame.auras:IsShown() then frame.auras:Hide() end frame.prev.health = nil; frame.prev.hmax = nil; elseif not UnitIsConnected(unit) then @@ -53,7 +48,6 @@ function addon.FrameUpdate(frame) if frame.shieldhl:IsShown() then frame.shieldhl:Hide() end if frame.healpred:IsShown() then frame.healpred:Hide() end if frame.healabsorb:IsShown() then frame.healabsorb:Hide() end - --if frame.auras:IsShown() then frame.auras:Hide() end frame.prev.health = nil; frame.prev.hmax = nil; else @@ -125,14 +119,35 @@ function addon.FrameUpdate(frame) elseif frame.healpred:IsShown() then frame.healpred:Hide(); end - -- auras - if updateAuras(frame, unit) then + -- tank CD marker + if next(frame.tankcd) then + if not frame.defensive:IsShown() then frame.defensive:Show() end + elseif frame.defensive:IsShown() then + frame.defensive:Hide(); + end + -- aura stacks + if next(frame.stacks) then + local _, amount = next(frame.stacks); + frame.stack:SetText(amount); + if not frame.stack:IsShown() then frame.stack:Show() end + elseif frame.stack:IsShown() then + frame.stack:Hide(); + end + -- overlays + 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 UnitDebuff(unit, 1, "RAID") ~= nil then + -- dispellable + if frame.overlay.color ~= dispelcolor then + frame.overlay:SetVertexColor(unpack(dispelcolor)); + frame.overlay.color = dispelcolor; + 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 @@ -140,11 +155,11 @@ function addon.FrameUpdate(frame) frame.overlay.color = charmcolor; if not frame.overlay:IsShown() then frame.overlay:Show() end end - elseif UnitDebuff(unit, 1, "RAID") ~= nil then - -- dispellable - if frame.overlay.color ~= dispelcolor then - frame.overlay:SetVertexColor(unpack(dispelcolor)); - frame.overlay.color = dispelcolor; + 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 else