-- 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);
[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);
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