65 lines
1.8 KiB
Lua
65 lines
1.8 KiB
Lua
--UNIT_COMBAT:player UNIT_AURA:player
|
|
function(e, ...)
|
|
if e == "UNIT_AURA" then
|
|
if aura_env.CUnitBuff("Ignore Pain") then
|
|
aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain"))
|
|
local expTime = math.floor((select(6, aura_env.CUnitBuff("Ignore Pain")) * 100))
|
|
local ctime = math.floor((GetTime() * 100))
|
|
if ctime + 1200 == expTime then aura_env.lastTime = GetTime(); aura_env.maxamount = select(16, aura_env.CUnitBuff("Ignore Pain")) end
|
|
aura_env.region.text:SetText(aura_env.shorten(aura_env.amount))
|
|
aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount))
|
|
else
|
|
aura_env.region.text:SetText("")
|
|
aura_env.region.timer:SetText("")
|
|
aura_env.maxamount = 0
|
|
end
|
|
return true
|
|
elseif e == "UNIT_COMBAT" then
|
|
if aura_env.CUnitBuff("Ignore Pain") then
|
|
aura_env.amount = select(16, aura_env.CUnitBuff("Ignore Pain"))
|
|
aura_env.region.text:SetText(aura_env.shorten(aura_env.amount))
|
|
aura_env.region.timer:SetText(aura_env.shorten(aura_env.maxamount))
|
|
end
|
|
return true
|
|
end
|
|
end
|
|
|
|
--DURATION
|
|
function()
|
|
return aura_env.amount, aura_env.maxamount, 1
|
|
end
|
|
|
|
--INIT
|
|
aura_env.absorb = 0
|
|
aura_env.CUnitBuff = function(spell)
|
|
for i = 1, 40 do
|
|
local name = UnitBuff("player", i)
|
|
if name then
|
|
if name == spell then
|
|
return UnitBuff("player", i)
|
|
end
|
|
else
|
|
break
|
|
end
|
|
end
|
|
end
|
|
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 |