67 lines
2.3 KiB
Lua
67 lines
2.3 KiB
Lua
--UPDATE_MOUSEOVER_UNIT
|
|
function()
|
|
return true
|
|
end
|
|
|
|
--DISPLAY
|
|
function()
|
|
if UnitBuff("mouseover", "Rejuvenation (Germination)") then
|
|
local caster = select(8, UnitBuff("mouseover", "Rejuvenation (Germination)"))
|
|
if caster == "player" then
|
|
local amount = select(17, UnitBuff("mouseover", "Rejuvenation (Germination)"))
|
|
local exp = select(7, UnitBuff("mouseover", "Rejuvenation (Germination)"))
|
|
local dur = select(6, UnitBuff("mouseover", "Rejuvenation (Germination)"))
|
|
local remDur = exp - GetTime()
|
|
return aura_env.hexgrad(dur - remDur, 0, dur) .. aura_env.shorten(amount) .. "\124r"
|
|
end
|
|
end
|
|
end
|
|
|
|
--INIT
|
|
aura_env.hexgrad = function(val, min, max)
|
|
local function tohex(input)
|
|
local output = string.format("%x", input * 255)
|
|
return output
|
|
end
|
|
local function grad(c, min, max)
|
|
c = (((max - c) / (max - min)) * 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
|
|
local color1, color2, color3, color4 = 0, 0, 0, 0
|
|
color1, color2, color3, color4 = grad(val, min, max)
|
|
color1, color2, color3, color4 = tohex(color1), tohex(color2), tohex(color3), tohex(color4)
|
|
color1, color2, color3, color4 = tostring(color1), tostring(color2), tostring(color3), tostring(color4)
|
|
if string.len(color1) == 1 then color1 = "0" .. color1 end
|
|
if string.len(color2) == 1 then color2 = "0" .. color2 end
|
|
if string.len(color3) == 1 then color3 = "0" .. color3 end
|
|
if string.len(color4) == 1 then color4 = "0" .. color4 end
|
|
local color = "\124c" .. color4 .. color1 .. color2 .. color3
|
|
return color
|
|
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
|