Add new code snippets
This commit is contained in:
87
Complete Projects/Legion/TSU - Explosives.lua
Normal file
87
Complete Projects/Legion/TSU - Explosives.lua
Normal file
@@ -0,0 +1,87 @@
|
||||
--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.state then
|
||||
local c = aura_env.range(aura_env.state.hp, 0, aura_env.state.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
|
||||
Reference in New Issue
Block a user