44065ae - Add EP debuffs, buffind1 color change
[wowui.git] / kehys / frame.lua
index 535899c..1719b94 100644 (file)
@@ -24,14 +24,15 @@ function addon.NewRaidFrame(parent, width, height, unit, attributes,
     assert(type(width) == "number", "Frame creation missing width!");
     assert(type(height) == "number", "Frame creation missing height!");
     assert(type(unit) == "string", "Frame creation missing unit!");
-    assert(type(attributes) == "table",
-           "Frame creation missing attributes table!");
     assert(type(update) == "function",
            "Frame creation missing update function!");
     assert(type(event) == "function",
            "Frame creation missing event function!");
     assert(type(onshow) == "function",
            "Frame creation missing onshow function!");
+    if type(attributes) ~= "table" then
+        attributes = {};
+    end
 
     local f = CreateFrame(
         "Button",
@@ -50,6 +51,10 @@ function addon.NewRaidFrame(parent, width, height, unit, attributes,
     f.vehicle = unit == "player" and "vehicle" or format("%spet", unit);
     f.prev = {} -- values stored from previous update
     f.alert = {}; -- alerting auras
+    f.heal = {}; -- high healing auras
+    f.tankcd = {}; -- tank CD auras
+    f.stacks = {}; -- stacking aura tracking
+    f.buff1 = {}; -- custom buff indicator 1
     -- set up periodic updates
     updaters[f] = function()
         if f.updating then
@@ -135,10 +140,25 @@ function addon.NewRaidFrame(parent, width, height, unit, attributes,
     f.text:SetPoint("CENTER", f, "CENTER", 0, -1);
     f.text:SetFont(STANDARD_TEXT_FONT, 13);
     f.text:Hide();
+    f.stack = f:CreateFontString(nil, "OVERLAY", "GameFontHighlightSmall");
+    f.stack:SetPoint("BOTTOMLEFT", f.background, "BOTTOMLEFT");
+    f.stack:Hide();
     f.ready = f:CreateTexture(nil, "OVERLAY");
     f.ready:SetPoint("TOPLEFT", f, "BOTTOMLEFT", 1, 15);
     f.ready:SetPoint("BOTTOMRIGHT", f, "BOTTOMLEFT", 15, 1);
     f.ready:Hide();
+    f.defensive = f:CreateTexture(nil, "OVERLAY");
+    f.defensive:SetPoint("TOPLEFT", f.background, "TOPLEFT", 1, -1);
+    f.defensive:SetWidth(6);
+    f.defensive:SetHeight(6);
+    f.defensive:SetColorTexture(1, 0.3, 0);
+    f.defensive:Hide();
+    f.buffind1 = f:CreateTexture(nil, "OVERLAY");
+    f.buffind1:SetPoint("TOPRIGHT", f.background, "TOPRIGHT", -1, -1);
+    f.buffind1:SetWidth(6);
+    f.buffind1:SetHeight(6);
+    f.buffind1:SetColorTexture(0.8, 0.1, 0.1);
+    f.buffind1:Hide();
     f.targeticon = f:CreateTexture(nil, "OVERLAY");
     f.targeticon:SetPoint("CENTER", f, "TOP", 0, -1);
     f.targeticon:SetWidth(12);