--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