41 lines
1.5 KiB
Lua
41 lines
1.5 KiB
Lua
-- COMBAT_LOG_EVENT_UNFILTERED, FRAME_UPDATE
|
|
function (allStates, ev, ...)
|
|
local now = GetTime()
|
|
|
|
if (WeakAuras.IsOptionsOpen()) then
|
|
aura_env.fn.createDummyDisplay(allStates)
|
|
return true
|
|
end
|
|
|
|
if (ev == "COMBAT_LOG_EVENT_UNFILTERED") then
|
|
-----------------------------------------
|
|
-- COMBAT LOG
|
|
-----------------------------------------
|
|
local timestamp, damageType, _, _, _, _, _, destGUID, _, _, _, _, _, spellSchool = ...
|
|
|
|
-- hack to separate bleeds from magical DoT
|
|
if (damageType == "SPELL_PERIODIC_DAMAGE" and spellSchool == aura_env.spellSchool.PHYSICAL) then
|
|
damageType = aura_env.types.BLEED
|
|
end
|
|
|
|
-- exit early if target is NOT the player or the damageType is NOT relevant
|
|
if (destGUID ~= aura_env.playerGUID or not aura_env.fn.isTrackedEvent(damageType)) then
|
|
return
|
|
end
|
|
|
|
-- get damage of current "hit"
|
|
local damage = aura_env.fn.parseDamage(damageType, ...)
|
|
-- record new damage application
|
|
aura_env.fn.addDamageRecord(allStates, now, damageType, damage)
|
|
else
|
|
-----------------------------------------
|
|
-- FRAME UPDATE
|
|
-----------------------------------------
|
|
if (now - aura_env.lastCleanup > aura_env.cleanupInterval) then
|
|
aura_env.lastCleanup = now
|
|
aura_env.fn.calcCurrentHistoricalDamage()
|
|
aura_env.fn.updateAllState(allStates)
|
|
end
|
|
end
|
|
return true
|
|
end |