Files
wow-weakauras/WeakAuras/Projects/Judgment of Light DebuffConsumedPerSecond.lua

53 lines
1.9 KiB
Lua

--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_DISABLED PLAYER_REGEN_ENABLED UPDATE_DCPS TICK_TIMER
function(e, ...)
if e == "COMBAT_LOG_EVENT_UNFILTERED" then
local se = select(2, ...)
if se == "SPELL_HEAL" then
local source = select(5, ...)
if source == UnitName("player") then
local time, spell = GetTime(), select(13, ...)
if spell == "Judgment of Light" then
aura_env.htable[#aura_env.htable + 1] = time
return true
end
end
end
elseif e == "PLAYER_REGEN_DISABLED" then
aura_env.htable = {}
aura_env.combatTimer = 0
if not aura_env.ticker then print("No ticker found, starting new one"); aura_env.ticker = C_Timer.NewTicker(aura_env.interval, function() WeakAuras.ScanEvents("UPDATE_DCPS") end) end
elseif e == "PLAYER_REGEN_ENABLED" then
if aura_env.ticker then print("Ticker found, killing it"); aura_env.ticker:Cancel(); aura_env.ticker = nil end
elseif e == "UPDATE_DCPS" then
aura_env.tempcount = aura_env.tempcount + 1
if aura_env.tempcount >= 1 / aura_env.interval then
aura_env.tempcount = 0
aura_env.combatTimer = aura_env.combatTimer + 1
end
return true
end
end
--DISPLAY
function()
local dc = 0
local timeinterval = 10
for i = #aura_env.htable, 1, -1 do
if aura_env.htable[i] > GetTime() - timeinterval then
dc = dc + 1
else
break
end
end
return string.format("%.1f\n%.1f", dc / timeinterval, #aura_env.htable / aura_env.combatTimer)
end
--INIT
if not aura_env.combatTimer then aura_env.combatTimer = 0 end
if not aura_env.htable then aura_env.htable = {} end
if not aura_env.interval then aura_env.interval = 0.1 end
if not aura_env.tempcount then aura_env.tempcount = 0 end
if WeakAuras.IsOptionsOpen() and aura_env.ticker then
aura_env.ticker:Cancel()
end