1 local normalBarColor = CreateColor(0.3, 0.3, 0.3);
2 local dispelBarColor = CreateColor(1, 0.5, 0);
3 local normalBackColor = {0.7, 0.7, 0.7};
4 local dispelBackColor = {0.5, 0.2, 0};
5 local UnitDebuff = UnitDebuff;
6 local CompactUnitFrame_UpdateHealthColor = CompactUnitFrame_UpdateHealthColor;
7 local CompactRaidFrameContainer_ApplyToFrames = CompactRaidFrameContainer_ApplyToFrames;
9 hooksecurefunc("CompactRaidFrameContainer_LayoutFrames", function(frame)
10 if not frame then return end
11 CompactRaidFrameContainer_ApplyToFrames(frame, "normal", function(frame)
13 -- used in CompactUnitFrame_UpdateHealthColor, might not be set prior
14 frame.optionTable.healthBarColorOverride = normalBarColor;
15 frame.background:SetColorTexture(unpack(normalBackColor));
20 hooksecurefunc("CompactUnitFrame_UpdateDispellableDebuffs", function(frame)
21 if frame and not frame:IsForbidden() and frame:GetName():match("^CompactRaidFrame%d") then
22 -- try to find dispellable debuff
23 if UnitDebuff(frame.displayedUnit, 1, "RAID") ~= nil then
24 frame.optionTable.healthBarColorOverride = dispelBarColor;
25 if frame.background then
26 frame.background:SetColorTexture(unpack(dispelBackColor));
29 frame.optionTable.healthBarColorOverride = normalBarColor;
30 if frame.background then
31 frame.background:SetColorTexture(unpack(normalBackColor));
35 CompactUnitFrame_UpdateHealthColor(frame);