1 -- Based on Simple Holy Power
3 local class = "PALADIN";
4 local ptype = Enum.PowerType.HolyPower;
5 local UnitPower = UnitPower;
6 local GetSpecialization = GetSpecialization;
7 local f = CreateFrame("Frame", "OmaSHP", UIParent);
8 f:SetScript("OnEvent", function(self, event, ...)
9 self[event](self, ...);
13 [0] = function() f[1]:Hide(); f[2]:Hide(); f[3]:Hide(); f[4]:Hide(); f[5]:Hide() end,
14 [1] = function() f[1]:Show(); f[2]:Hide(); f[3]:Hide(); f[4]:Hide(); f[5]:Hide() end,
15 [2] = function() f[1]:Show(); f[2]:Show(); f[3]:Hide(); f[4]:Hide(); f[5]:Hide() end,
16 [3] = function() f[1]:Show(); f[2]:Show(); f[3]:Show(); f[4]:Hide(); f[5]:Hide() end,
17 [4] = function() f[1]:Show(); f[2]:Show(); f[3]:Show(); f[4]:Show(); f[5]:Hide() end,
18 [5] = function() f[1]:Show(); f[2]:Show(); f[3]:Show(); f[4]:Show(); f[5]:Show() end,
20 function f:PLAYER_SPECIALIZATION_CHANGED()
21 if class == "PALADIN" then
23 f:RegisterUnitEvent("UNIT_POWER_UPDATE", "player");
24 updatehp[UnitPower("player", ptype)]();
25 elseif class == "WARLOCK" then
27 f:RegisterUnitEvent("UNIT_POWER_UPDATE", "player");
28 updatehp[UnitPower("player", ptype)]();
31 f.PLAYER_ENTERING_WORLD = f.PLAYER_SPECIALIZATION_CHANGED;
33 function f:UNIT_POWER_UPDATE(_, t)
34 if t == "HOLY_POWER" or t == "SOUL_SHARDS" then
35 return updatehp[UnitPower("player", ptype)]();
39 function f:PLAYER_LOGIN()
40 f:UnregisterAllEvents();
42 _, class = UnitClass("player");
43 if class == "PALADIN" then
44 ptype = Enum.PowerType.HolyPower;
45 elseif class == "WARLOCK" then
46 ptype = Enum.PowerType.SoulShards;
50 f:SetFrameStrata("LOW");
51 f:SetPoint("CENTER", UIParent, "CENTER", -308, -217);
55 f[i] = f:CreateTexture("OmaSHP"..i, "ARTWORK");
57 f[i]:SetPoint("TOPLEFT", f, "TOPLEFT", 2, 0)
59 f[i]:SetPoint("TOPLEFT", f[i-1], "TOPRIGHT", 2, 0)
63 if class == "WARLOCK" then
64 f[i]:SetColorTexture(0.7, 0.3, 0.5);
66 -- color is default from SHP
67 f[i]:SetColorTexture(0.9686274509803922, 0.674509803921568, 0.1450980392156863);
71 f:RegisterUnitEvent("UNIT_POWER_UPDATE", "player");
72 f:RegisterEvent("PLAYER_ENTERING_WORLD");
73 f:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED");
76 f:RegisterEvent("PLAYER_LOGIN");