1 -- Based on Simple Holy Power
3 local hptype = Enum.PowerType.HolyPower;
4 local UnitPower = UnitPower;
5 local GetSpecialization = GetSpecialization;
6 local f = CreateFrame("Frame", "OmaSHP", UIParent);
7 f:SetScript("OnEvent", function(self, event, ...)
8 self[event](self, ...);
12 [0] = function() f[1]:Hide(); f[2]:Hide(); f[3]:Hide(); f[4]:Hide(); f[5]:Hide() end,
13 [1] = function() f[1]:Show(); f[2]:Hide(); f[3]:Hide(); f[4]:Hide(); f[5]:Hide() end,
14 [2] = function() f[1]:Show(); f[2]:Show(); f[3]:Hide(); f[4]:Hide(); f[5]:Hide() end,
15 [3] = function() f[1]:Show(); f[2]:Show(); f[3]:Show(); f[4]:Hide(); f[5]:Hide() end,
16 [4] = function() f[1]:Show(); f[2]:Show(); f[3]:Show(); f[4]:Show(); f[5]:Hide() end,
17 [5] = function() f[1]:Show(); f[2]:Show(); f[3]:Show(); f[4]:Show(); f[5]:Show() end,
19 function f:PLAYER_SPECIALIZATION_CHANGED()
20 if GetSpecialization() == 3 then -- ret
22 f:RegisterUnitEvent("UNIT_POWER", "player");
23 updatehp[UnitPower("player", hptype)]();
25 f:UnregisterEvent("UNIT_POWER");
29 f.PLAYER_ENTERING_WORLD = f.PLAYER_SPECIALIZATION_CHANGED;
31 function f:UNIT_POWER(_, t)
32 if t == "HOLY_POWER" then
33 return updatehp[UnitPower("player", hptype)]();
37 function f:PLAYER_LOGIN()
38 f:UnregisterAllEvents();
40 if select(2, UnitClass("player")) ~= "PALADIN" then return end
41 f:SetFrameStrata("LOW");
42 f:SetPoint("CENTER", UIParent, "CENTER", -283, -220);
46 f[i] = f:CreateTexture("OmaSHP"..i, "ARTWORK");
48 f[i]:SetPoint("TOPLEFT", f, "TOPLEFT", 2, 0)
50 f[i]:SetPoint("TOPLEFT", f[i-1], "TOPRIGHT", 2, 0)
54 -- color is default from SHP
55 f[i]:SetColorTexture(0.9686274509803922, 0.674509803921568, 0.1450980392156863);
58 f:RegisterUnitEvent("UNIT_POWER", "player");
59 f:RegisterEvent("PLAYER_ENTERING_WORLD");
60 f:RegisterEvent("PLAYER_SPECIALIZATION_CHANGED");
63 f:RegisterEvent("PLAYER_LOGIN");