3d660c5 - Add soul shard tracking
authorAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Thu, 22 Mar 2018 22:50:13 +0000
committerAleksi Blinnikka <aleksi.blinnikka@gmail.com>
Thu, 22 Mar 2018 22:50:13 +0000
OmaPower/AltPower.lua [moved from OmaPower/HolyPower.lua with 69% similarity]
OmaPower/OmaPower.toc

similarity index 69%
rename from OmaPower/HolyPower.lua
rename to OmaPower/AltPower.lua
index 05fca76..5ab7742 100644 (file)
@@ -1,6 +1,7 @@
 -- Based on Simple Holy Power
 local _;
-local hptype = Enum.PowerType.HolyPower;
+local class = "PALADIN";
+local ptype = Enum.PowerType.HolyPower;
 local UnitPower = UnitPower;
 local GetSpecialization = GetSpecialization;
 local f = CreateFrame("Frame", "OmaSHP", UIParent);
@@ -17,27 +18,40 @@ local updatehp = {
     [5] = function() f[1]:Show(); f[2]:Show(); f[3]:Show(); f[4]:Show(); f[5]:Show() end,
 };
 function f:PLAYER_SPECIALIZATION_CHANGED()
-    if GetSpecialization() == 3 then -- ret
+    if class == "PALADIN" then
+        if GetSpecialization() == 3 then -- ret
+            f:Show();
+            f:RegisterUnitEvent("UNIT_POWER", "player");
+            updatehp[UnitPower("player", ptype)]();
+        else 
+            f:UnregisterEvent("UNIT_POWER");
+            f:Hide();
+        end
+    elseif class == "WARLOCK" then
         f:Show();
         f:RegisterUnitEvent("UNIT_POWER", "player");
-        updatehp[UnitPower("player", hptype)]();
-    else 
-        f:UnregisterEvent("UNIT_POWER");
-        f:Hide();
+        updatehp[UnitPower("player", ptype)]();
     end
 end
 f.PLAYER_ENTERING_WORLD = f.PLAYER_SPECIALIZATION_CHANGED;
 
 function f:UNIT_POWER(_, t)
-    if t == "HOLY_POWER" then
-        return updatehp[UnitPower("player", hptype)]();
+    if t == "HOLY_POWER" or t == "SOUL_SHARDS" then
+        return updatehp[UnitPower("player", ptype)]();
     end
 end
 
 function f:PLAYER_LOGIN()
     f:UnregisterAllEvents();
     f:Hide();
-    if select(2, UnitClass("player")) ~= "PALADIN" then return end
+    _, class = UnitClass("player");
+    if class == "PALADIN" then
+        ptype = Enum.PowerType.HolyPower;
+    elseif class == "WARLOCK" then
+        ptype = Enum.PowerType.SoulShards;
+    else
+        return;
+    end
     f:SetFrameStrata("LOW");
     f:SetPoint("CENTER", UIParent, "CENTER", -283, -220);
     f:SetWidth(29*5);
@@ -52,6 +66,7 @@ function f:PLAYER_LOGIN()
         f[i]:SetWidth(25);
         f[i]:SetHeight(25);
         -- color is default from SHP
+        -- TODO different for different classes
         f[i]:SetColorTexture(0.9686274509803922, 0.674509803921568, 0.1450980392156863);
     end
 
index 365dc4c..e9c55f0 100644 (file)
@@ -4,4 +4,4 @@
 ## Author: schyrio
 ## Notes: My player power frame
 
-HolyPower.lua
+AltPower.lua