-- misc ability file local _detalhes = _G.Details local _ local addonName, Details222 = ... local classUtility = _detalhes.habilidade_misc function classUtility:NovaTabela(id, link, token) local spellTable = { id = id, counter = 0, targets = {} } if (token == "BUFF_UPTIME" or token == "DEBUFF_UPTIME") then spellTable.uptime = 0 spellTable.actived = false spellTable.activedamt = 0 --amount of active auras spellTable.refreshamt = 0 spellTable.appliedamt = 0 elseif (token == "SPELL_INTERRUPT") then spellTable.interrompeu_oque = {} elseif (token == "SPELL_DISPEL" or token == "SPELL_STOLEN") then spellTable.dispell_oque = {} elseif (token == "SPELL_AURA_BROKEN" or token == "SPELL_AURA_BROKEN_SPELL") then spellTable.cc_break_oque = {} end return spellTable end ---@param self spelltable ---@param targetName string ---@param targetFlags number ---@param sourceName string ---@param token string|actor ---@param spellId number ---@param spellName string function classUtility:Add(targetSerial, targetName, targetFlags, sourceName, token, spellId, spellName) --as the passed parameters for aura are different from the reset of the abilities, this should be a different function if (spellId == "BUFF_OR_DEBUFF") then local actorUtilityObject = token local parserToken = spellName if (parserToken == "COOLDOWN") then self.counter = self.counter + 1 self.targets[targetName] = (self.targets[targetName] or 0) + 1 elseif (parserToken == "BUFF_UPTIME_REFRESH") then if (self.actived_at and self.actived) then self.uptime = self.uptime + (_detalhes._tempo - self.actived_at) self.refreshamt = self.refreshamt + 1 actorUtilityObject.buff_uptime = actorUtilityObject.buff_uptime + (_detalhes._tempo - self.actived_at) end self.actived_at = _detalhes._tempo self.actived = true elseif (parserToken == "BUFF_UPTIME_OUT") then if (self.actived_at and self.actived) then self.uptime = self.uptime + (_detalhes._tempo - self.actived_at) actorUtilityObject.buff_uptime = actorUtilityObject.buff_uptime + (_detalhes._tempo - self.actived_at) end self.actived = false self.actived_at = nil elseif (parserToken == "BUFF_UPTIME_IN" or parserToken == "DEBUFF_UPTIME_IN") then --aura applied self.actived = true self.activedamt = self.activedamt + 1 self.appliedamt = self.appliedamt + 1 if (self.actived_at and self.actived and parserToken == "DEBUFF_UPTIME_IN") then --ja esta ativo em outro mob e jogou num novo self.uptime = self.uptime + (_detalhes._tempo - self.actived_at) actorUtilityObject.debuff_uptime = actorUtilityObject.debuff_uptime + (_detalhes._tempo - self.actived_at) end self.actived_at = _detalhes._tempo if (not self.uptime) then self.uptime = 0 end elseif (parserToken == "DEBUFF_UPTIME_REFRESH") then if (self.actived_at and self.actived) then self.uptime = self.uptime + (_detalhes._tempo - self.actived_at) self.refreshamt = self.refreshamt + 1 actorUtilityObject.debuff_uptime = actorUtilityObject.debuff_uptime + (_detalhes._tempo - self.actived_at) end self.actived_at = _detalhes._tempo self.actived = true elseif (parserToken == "DEBUFF_UPTIME_OUT") then if (self.actived_at and self.actived) then self.uptime = self.uptime + (_detalhes._tempo - self.actived_at) actorUtilityObject.debuff_uptime = actorUtilityObject.debuff_uptime + (_detalhes._tempo - self.actived_at) end self.activedamt = self.activedamt - 1 if (self.activedamt == 0) then self.actived = false self.actived_at = nil else self.actived_at = _detalhes._tempo end end elseif (token == "SPELL_INTERRUPT") then self.counter = self.counter + 1 if (not self.interrompeu_oque[spellId]) then self.interrompeu_oque[spellId] = 1 else self.interrompeu_oque[spellId] = self.interrompeu_oque[spellId] + 1 end --target self.targets[targetName] = (self.targets[targetName] or 0) + 1 elseif (token == "SPELL_RESURRECT") then self.ress = (self.ress or 0) + 1 --target self.targets[targetName] = (self.targets[targetName] or 0) + 1 elseif (token == "SPELL_DISPEL" or token == "SPELL_STOLEN") then self.dispell = (self.dispell or 0) + 1 if (not self.dispell_oque[spellId]) then self.dispell_oque[spellId] = 1 else self.dispell_oque[spellId] = self.dispell_oque[spellId] + 1 end --target self.targets[targetName] = (self.targets[targetName] or 0) + 1 elseif (token == "SPELL_AURA_BROKEN_SPELL" or token == "SPELL_AURA_BROKEN") then self.cc_break = (self.cc_break or 0) + 1 if (not self.cc_break_oque[spellId]) then self.cc_break_oque[spellId] = 1 else self.cc_break_oque[spellId] = self.cc_break_oque[spellId] + 1 end --target self.targets[targetName] = (self.targets[targetName] or 0) + 1 end end