9be113c568c38b520512d1f8c6212ee80389b8e5
[wowui.git] / RaidFrameColors.lua
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;
8
9 hooksecurefunc("CompactRaidFrameContainer_LayoutFrames", function(frame)
10     if not frame then return end
11     CompactRaidFrameContainer_ApplyToFrames(frame, "normal", function(frame)
12         if frame then
13             -- used in CompactUnitFrame_UpdateHealthColor, might not be set prior
14             frame.optionTable.healthBarColorOverride = normalBarColor;
15             frame.background:SetColorTexture(unpack(normalBackColor));
16         end
17     end);
18 end);
19
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));
27             end
28         else
29             frame.optionTable.healthBarColorOverride = normalBarColor;
30             if frame.background then
31                 frame.background:SetColorTexture(unpack(normalBackColor));
32             end
33         end
34         -- update color
35         CompactUnitFrame_UpdateHealthColor(frame);
36     end
37 end);