Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --get the addon namespace
- local addon, ns = ...
- --get the config values
- local cfg = ns.cfg
- -- get the library
- local lib = ns.lib
- if lib.getClass("player") ~= "WARLOCK" then return end
- local pp = lib.scale
- local MAX_POWER_PER_EMBER = 10
- local SPELL_POWER_DEMONIC_FURY = SPELL_POWER_DEMONIC_FURY
- local SPELL_POWER_BURNING_EMBERS = SPELL_POWER_BURNING_EMBERS
- local SPELL_POWER_SOUL_SHARDS = SPELL_POWER_SOUL_SHARDS
- local destro = SPEC_WARLOCK_DESTRUCTION
- local affli = SPEC_WARLOCK_AFFLICTION
- local demo = SPEC_WARLOCK_DEMONOLOGY
- local shardc = {139/255, 51/255, 188/255}
- local emberc = {189/255, 171/255, 58/255}
- local furyc = {189/255, 48/255, 248/255}
- local bars = {}
- local shardnum
- local lockbar = CreateFrame("Frame", "ColdLockBar", ColdPlayer)
- lockbar:SetSize(200, 8)
- lockbar:SetPoint("BOTTOM", ColdPlayer, "TOP", 0, 7)
- lockbar:SetFrameStrata("LOW")
- lockbar:SetFrameLevel(2)
- local function updateBars()
- local spec = GetSpecialization()
- if spec then
- if spec == affli then
- local numShards = UnitPower("player", SPELL_POWER_SOUL_SHARDS)
- local maxShards = UnitPowerMax("player", SPELL_POWER_SOUL_SHARDS)
- --check for affli glyph
- if shardnum ~= maxShards and maxShards == 3 then
- for i = 1, 3 do
- bars[i]:SetSize(pp(64),pp(8))
- end
- bars[4]:Hide()
- else
- for i = 1, 4 do
- bars[i]:SetSize(pp(46),pp(8))
- end
- bars[4]:Show()
- end
- for i = 1, maxShards do
- if i <= numShards then
- bars[i]:SetAlpha(1)
- else
- bars[i]:SetAlpha(.2)
- end
- bars[i]:SetStatusBarColor(unpack(shardc))
- end
- elseif spec == destro then
- local maxPower = UnitPowerMax("player", SPELL_POWER_BURNING_EMBERS, true)
- local power = UnitPower("player", SPELL_POWER_BURNING_EMBERS, true)
- local numEmbers = power / MAX_POWER_PER_EMBER
- local numBars = floor(maxPower / MAX_POWER_PER_EMBER)
- --check for destro glyph
- if shardnum ~= numBars and numBars == 3 then
- for i = 1, 3 do
- bars[i]:SetSize(pp(64),pp(8))
- end
- bars[4]:Hide()
- else
- for i = 1, 4 do
- bars[i]:SetSize(pp(46),pp(8))
- end
- bars[4]:Show()
- end
- for i = 1, numBars do
- bars[i]:SetMinMaxValues((MAX_POWER_PER_EMBER * i) - MAX_POWER_PER_EMBER, MAX_POWER_PER_EMBER * i)
- bars[i]:SetValue(power)
- bars[i]:SetStatusBarColor(unpack(emberc))
- end
- elseif spec == demo then
- local power = UnitPower("player", SPELL_POWER_DEMONIC_FURY)
- local maxPower = UnitPowerMax("player", SPELL_POWER_DEMONIC_FURY)
- end
- end
- end
- local function createBars()
- lockbar:RegisterEvent('UNIT_POWER')
- lockbar:RegisterEvent("PLAYER_TALENT_UPDATE")
- lockbar:SetScript("OnEvent", updateBars)
- for i = 1,4 do
- bars[i] = CreateFrame("StatusBar", "ColdLockBar"..i, lockbar)
- bars[i]:SetStatusBarTexture(cfg.tex)
- if i == 1 then
- bars[i]:SetPoint("LEFT", lockbar)
- else
- bars[i]:SetPoint("LEFT", bars[i-1], "RIGHT", pp(4), 0)
- end
- local shadow = CreateFrame("Frame", nil, bars[i])
- shadow:SetBackdrop(backdrop)
- shadow:SetBackdropColor(.2,.2,.2,.6)
- shadow:SetBackdropBorderColor(0,0,0)
- shadow:SetPoint('TOPLEFT', -1, 1)
- shadow:SetPoint('BOTTOMRIGHT', 1, -1)
- shadow:SetFrameLevel(1)
- bars[i].sh = shadow
- end
- shardnum = 4
- updateBars()
- end
- lockbar:RegisterEvent("PLAYER_ENTERING_WORLD")
- lockbar:SetScript("OnEvent",function(self,event)
- if event == "PLAYER_ENTERING_WORLD" then
- createBars()
- updateBars()
- end
- end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement