Files
wow-weakauras/WeakAuras/Projects/TSU - Explosives.lua

87 lines
1.9 KiB
Lua

--TSU
--EVERY FRAME
function(allstates)
for _,v in pairs(allstates) do
v.show = false
v.changed = true
end
for i = 1, 40 do
unit = "nameplate" .. i
if UnitExists(unit) then
local name = UnitName(unit)
if name == "Fel Explosives" then
if UnitCastingInfo(unit) then
local _,_,_,_,startTime,endTime = UnitCastingInfo(unit)
local remainingTime = math.floor(endTime - (GetTime() * 1000))
local castTime = endTime - startTime
--local hps = aura_env.shorten(UnitHealth(unit))
--local maxhps = aura_env.shorten(UnitHealthMax(unit))
local hp = UnitHealth(unit)
local maxhp = UnitHealthMax(unit)
local hpp = math.floor((hp / maxhp) * 100)
allstates[unit] =
{
changed = true,
show = true,
resort = true,
progressType = "static",
value = remainingTime,
total = castTime,
index = remainingTime,
one = "",
two = "",
hp = hp,
maxhp = maxhp,
hpp = hpp,
}
end
end
end
end
return true
end
--ANIMATION
function()
if aura_env.statee then
local c = aura_env.range(aura_env.statee.hp, 0, aura_env.statee.maxhp, 1)
print(aura_env.grad(c))
return aura_env.grad(c)
end
end
--INIT
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.grad = function(c)
--c expected as [0, 1]
if c > 0.5 then
c = 1 - (2 * (c - 0.5))
return c, 1, 0, 1
else
c = c * 2
return 1, c, 0, 1
end
end
aura_env.range = function(val, min, max, max2)
val = 1 - (((max - val) / (max - min)) * max2)
return val
end