+-- TODO have colors in global addon object only in one place
local normalBarColor = CreateColor(0.3, 0.3, 0.3);
local dispelBarColor = CreateColor(1, 0.5, 0);
local normalBackColor = {0.7, 0.7, 0.7};
local dispelBackColor = {0.5, 0.2, 0};
local UnitDebuff = UnitDebuff;
local CompactUnitFrame_UpdateHealthColor = CompactUnitFrame_UpdateHealthColor;
-local CompactRaidFrameContainer_ApplyToFrames = CompactRaidFrameContainer_ApplyToFrames;
-
-hooksecurefunc("CompactRaidFrameContainer_LayoutFrames", function(frame)
- if not frame then return end
- CompactRaidFrameContainer_ApplyToFrames(frame, "normal", function(frame)
- if frame then
- -- used in CompactUnitFrame_UpdateHealthColor, might not be set prior
- frame.optionTable.healthBarColorOverride = normalBarColor;
- frame.background:SetColorTexture(unpack(normalBackColor));
- end
- end);
-end);
hooksecurefunc("CompactUnitFrame_UpdateDispellableDebuffs", function(frame)
if frame and not frame:IsForbidden() and frame:GetName():match("^CompactRaidFrame%d") then
-- try to find dispellable debuff
if UnitDebuff(frame.displayedUnit, 1, "RAID") ~= nil then
frame.optionTable.healthBarColorOverride = dispelBarColor;
- if frame.background then
- frame.background:SetColorTexture(unpack(dispelBackColor));
- end
+ frame.background:SetColorTexture(unpack(dispelBackColor));
else
frame.optionTable.healthBarColorOverride = normalBarColor;
- if frame.background then
- frame.background:SetColorTexture(unpack(normalBackColor));
- end
+ frame.background:SetColorTexture(unpack(normalBackColor));
end
-- update color
CompactUnitFrame_UpdateHealthColor(frame);