Files
wow-weakauras/WeakAuras/Projects/Holy Shield.lua

77 lines
2.5 KiB
Lua

--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED
function(...)
local event = select(1, ...)
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
local e = select(3, ...)
if e == "SWING_DAMAGE" then
local target = select(10, ...)
if target == UnitName("player") then
local bloq = select(17, ...)
if bloq ~= nil then
local dmg = select(13, ...)
local totaldmg = dmg + bloq
local perbloq = aura_env.round((bloq / totaldmg) * 100, 2)
--print(dmg, totaldmg, perbloq, bloq)
aura_env.pbloq = (aura_env.pbloq + perbloq) / 2
aura_env.totalbloq = aura_env.totalbloq + bloq
end
end
end
if e == "SPELL_DAMAGE" or e == "SPELL_PERIODIC_DAMAGE" then
local target = select(10, ...)
if target == UnitName("player") then
local bloq = select(21, ...)
if bloq ~= nil then
local dmg = select(16, ...)
local totaldmg = dmg + bloq
local perbloq = aura_env.round((bloq / totaldmg) * 100, 2)
--print(dmg, totaldmg, perbloq, bloq)
aura_env.pbloq = (aura_env.pbloq + perbloq) / 2
aura_env.totalbloq = aura_env.totalbloq + bloq
end
end
end
end
if event == "PLAYER_REGEN_DISABLED" then
aura_env.totalbloq = 0
end
end
--DISPLAY
function()
return aura_env.shorten(aura_env.totalbloq) .. "\n" .. aura_env.round(aura_env.pbloq, 2) .. "%\n" .. aura_env.round(aura_env.sbloq, 2) .. "%"
end
--INIT
aura_env.totalbloq = 0
aura_env.pbloq = 40
aura_env.sbloq = 40
aura_env.shorten = function(val)
local function round(var, n)
if (n) then
var = math.floor((var * 10 ^ n) + 0.5) / (10 ^ n)
else
var = math.floor(var + 0.5)
end
return var
end
local n = 2
if val < 1e3 then
return round(val, n)
elseif val > 1e3 and val < 1e6 then
return round(val / 1e3, n) .. "k"
elseif val > 1e6 and val < 1e9 then
return round(val / 1e6, n) .. "M"
elseif val > 1e9 then
return round(val / 1e9, n) .. "G"
end
end
aura_env.round = function(var, n)
if (n) then
var = math.floor((var * 10 ^ n) + 0.5) / (10 ^ n)
else
var = math.floor(var + 0.5)
end
return var
end