77 lines
2.4 KiB
Lua
77 lines
2.4 KiB
Lua
local name, addon = ...
|
|
local texts = {
|
|
['SWING'] = {},
|
|
['SPELL'] = {},
|
|
}
|
|
local bars = {
|
|
['SWING'] = {
|
|
['amount'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
-- ['resisted'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
['blocked'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
['absorbed'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
},
|
|
['SPELL'] = {
|
|
['amount'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
-- ['resisted'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
['blocked'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
['absorbed'] = CreateFrame("StatusBar",nil,addon.scrollframe),
|
|
}
|
|
}
|
|
local function valchange(self)
|
|
local a = tonumber(self:GetValue())==0 and self:Hide() or self:Show()
|
|
end
|
|
local c = 1
|
|
local last = addon.scrollframe
|
|
for k,v in pairs(bars) do
|
|
for a,b in pairs(v) do
|
|
b:SetStatusBarTexture("Interface\\TargetingFrame\\UI-StatusBar")
|
|
b:GetStatusBarTexture():SetHorizTile(false)
|
|
b:SetValue(100)
|
|
b:SetWidth(100)
|
|
b:SetHeight(10)
|
|
b:SetScript("OnValueChanged", valchange)
|
|
if(c==1) then
|
|
b:SetPoint("TOPLEFT",last,"TOPRIGHT",0,-80)
|
|
else
|
|
b:SetPoint("BOTTOMLEFT",last,"TOPLEFT",0,0)
|
|
end
|
|
texts[k][a] = b:CreateFontString(nil, "OVERLAY", "TextStatusBarText")
|
|
texts[k][a]:ClearAllPoints()
|
|
texts[k][a]:SetAllPoints(b)
|
|
texts[k][a]:SetText(a.." 0")
|
|
last = b
|
|
c = nil
|
|
end
|
|
|
|
end
|
|
|
|
bars['SWING']['amount']:SetStatusBarColor(1, 1, 0)
|
|
--bars['SWING']['resisted']:SetStatusBarColor(.2, .8, .3)
|
|
bars['SWING']['blocked']:SetStatusBarColor(.4, .8, .3)
|
|
bars['SWING']['absorbed']:SetStatusBarColor(.6, .8, .3)
|
|
bars['SPELL']['amount']:SetStatusBarColor(0, 0, 1)
|
|
--bars['SPELL']['resisted']:SetStatusBarColor(.2, .8, .3)
|
|
bars['SPELL']['blocked']:SetStatusBarColor(.4, .8, .3)
|
|
bars['SPELL']['absorbed']:SetStatusBarColor(.6, .8, .3)
|
|
function addon:updateBars(dmginc)
|
|
local total = 0
|
|
for k,v in pairs(dmginc) do
|
|
total = total + (dmginc[k] and dmginc[k]['amount'] or 0)
|
|
end
|
|
for k,v in pairs(bars) do
|
|
for a,b in pairs(v) do
|
|
local maxval = dmginc[k] and dmginc[k]['amount'] or 0
|
|
b:SetMinMaxValues(0, a=='amount' and total or maxval)
|
|
b:SetValue(dmginc[k] and dmginc[k][a] or 100)
|
|
texts[k][a]:SetText(a .. " " .. (dmginc[k] and dmginc[k][a] or 0))
|
|
end
|
|
end
|
|
end
|
|
function addon:resetBars(dmginc)
|
|
for k,v in pairs(dmginc) do
|
|
for a,b in pairs(v) do
|
|
dmginc[k][a] = 0
|
|
end
|
|
end
|
|
self:updateBars(dmginc)
|
|
end |