General Changes ad Improvements
- Added: Details:IsInMythicPlus() return true if the player is on a mythic dungeon run. - CombatObjects now have the key 'is_challenge' if the combat is a part of a challenge mode or mythic+ run. - Evoker extra bar tooltip's, now also show the uptime of Black Attunement and Prescience applications. - Breakdown Window now show Plater Npc Colors in the target box. - Added event: "COMBAT_MYTHICPLUS_OVERALL_READY", trigger when the overall segment for the mythic+ is ready. - Added event: "COMBAT_PLAYER_LEAVING", trigger at the beginning of the leave combat process. - Library updates: Details! Framework and Lib Open Raid.
This commit is contained in:
@@ -686,6 +686,8 @@ function classCombat:NovaTabela(bTimeStarted, overallCombatObject, combatId, ...
|
||||
combatObject.end_time = nil
|
||||
end
|
||||
|
||||
combatObject.is_challenge = Details:IsInMythicPlus()
|
||||
|
||||
-- o container ir� armazenar as classes de dano -- cria um novo container de indexes de seriais de jogadores --par�metro 1 classe armazenada no container, par�metro 2 = flag da classe
|
||||
combatObject[1].need_refresh = true
|
||||
combatObject[2].need_refresh = true
|
||||
|
||||
+124
-11
@@ -3463,13 +3463,26 @@ function damageClass.PredictedAugSpellsOnEnter(self)
|
||||
---@type actorcontainer
|
||||
local utilityContainer = combatObject:GetContainer(DETAILS_ATTRIBUTE_MISC)
|
||||
|
||||
---@type table<spellid, table<spellid, number, actorname, actorname, class, boolean>>
|
||||
local buffUptimeTable = {}
|
||||
|
||||
--for each actor in the container
|
||||
local CONST_SPELLID_EBONMIGHT = 395152
|
||||
local CONST_SPELLID_PRESCIENCE = 410089
|
||||
local CONST_SPELLID_BLACKATTUNEMENT = 403264
|
||||
|
||||
---@type actor[]
|
||||
local augmentationEvokers = {}
|
||||
|
||||
--prescience and ebon might updatime on each actor
|
||||
for _, actorObject in utilityContainer:ListActors() do
|
||||
---@type spellcontainer
|
||||
local receivedBuffs = actorObject.received_buffs_spells
|
||||
|
||||
--check if the actor is an augmentation evoker
|
||||
if (actorObject.spec == 1473) then
|
||||
augmentationEvokers[#augmentationEvokers+1] = actorObject
|
||||
end
|
||||
|
||||
if (receivedBuffs and actorObject:IsPlayer() and actorObject:IsGroupPlayer()) then
|
||||
for sourceNameSpellId, spellTable in receivedBuffs:ListSpells() do
|
||||
local sourceName, spellId = strsplit("@", sourceNameSpellId)
|
||||
@@ -3477,20 +3490,28 @@ function damageClass.PredictedAugSpellsOnEnter(self)
|
||||
spellId = tonumber(spellId)
|
||||
local spellName, _, spellIcon = Details.GetSpellInfo(spellId)
|
||||
|
||||
if (spellName) then
|
||||
if (spellName and spellId) then
|
||||
sourceName = detailsFramework:RemoveRealmName(sourceName)
|
||||
local targetName = actorObject:Name()
|
||||
targetName = detailsFramework:RemoveRealmName(targetName)
|
||||
|
||||
local uptime = spellTable.uptime or 0
|
||||
buffUptimeTable[#buffUptimeTable+1] = {spellId, uptime, sourceName, targetName, actorObject:Class()}
|
||||
local bCanShowOnTooltip = true
|
||||
buffUptimeTable[spellId] = buffUptimeTable[spellId] or {}
|
||||
table.insert(buffUptimeTable[spellId], {spellId, uptime, sourceName, targetName, actorObject:Class(), bCanShowOnTooltip})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
table.sort(buffUptimeTable, Details.Sort2)
|
||||
for spellId, buffTable in pairs(buffUptimeTable) do
|
||||
local totalUptime = 0
|
||||
for i = 1, #buffTable do
|
||||
totalUptime = totalUptime + buffTable[i][2]
|
||||
end
|
||||
table.sort(buffTable, Details.Sort2)
|
||||
end
|
||||
|
||||
Details:FormatCooltipForSpells()
|
||||
Details:AddTooltipSpellHeaderText(Loc ["STRING_SPELLS"], headerColor, #buffUptimeTable, Details.tooltip_spell_icon.file, unpack(Details.tooltip_spell_icon.coords))
|
||||
@@ -3499,24 +3520,86 @@ function damageClass.PredictedAugSpellsOnEnter(self)
|
||||
local iconSize = 22
|
||||
local iconBorderInfo = Details.tooltip.icon_border_texcoord
|
||||
|
||||
--add the total combat time into the tooltip
|
||||
local combatTimeMinutes, combatTimeSeconds = math.floor(combatTime / 60), math.floor(combatTime % 60)
|
||||
GameCooltip:AddLine("Combat Time", combatTimeMinutes .. "m " .. combatTimeSeconds .. "s" .. " (" .. format("%.1f", 100) .. "%)")
|
||||
GameCooltip:AddIcon([[Interface\TARGETINGFRAME\UnitFrameIcons]], nil, nil, iconSize, iconSize, iconBorderInfo.L, iconBorderInfo.R, iconBorderInfo.T, iconBorderInfo.B)
|
||||
Details:AddTooltipBackgroundStatusbar(false, 100, true, "green")
|
||||
Details:AddTooltipBackgroundStatusbar(false, 100, true, "limegreen")
|
||||
|
||||
if (#buffUptimeTable > 0) then
|
||||
for i = 1, min(30, #buffUptimeTable) do
|
||||
local uptimeTable = buffUptimeTable[i]
|
||||
GameCooltip:AddLine("", "")
|
||||
GameCooltip:AddIcon("", nil, nil, 1, 1)
|
||||
|
||||
local ebonMightTable = buffUptimeTable[CONST_SPELLID_EBONMIGHT][1]
|
||||
if (ebonMightTable) then
|
||||
local uptime = ebonMightTable[2]
|
||||
local spellName, _, spellIcon = _GetSpellInfo(CONST_SPELLID_EBONMIGHT)
|
||||
local uptimePercent = uptime / combatTime * 100
|
||||
local sourceName = ebonMightTable[3]
|
||||
|
||||
if (uptime <= combatTime) then
|
||||
local minutes, seconds = math.floor(uptime / 60), math.floor(uptime % 60)
|
||||
if (minutes > 0) then
|
||||
GameCooltip:AddLine(spellName, minutes .. "m " .. seconds .. "s" .. " (" .. format("%.1f", uptimePercent) .. "%)")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, sourceName and "limegreen")
|
||||
else
|
||||
GameCooltip:AddLine(spellName, seconds .. "s" .. " (" .. format("%.1f", uptimePercent) .. "%)")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, sourceName and "limegreen")
|
||||
end
|
||||
|
||||
GameCooltip:AddIcon(spellIcon, nil, nil, iconSize, iconSize, iconBorderInfo.L, iconBorderInfo.R, iconBorderInfo.T, iconBorderInfo.B)
|
||||
end
|
||||
end
|
||||
|
||||
GameCooltip:AddLine("", "")
|
||||
GameCooltip:AddIcon("", nil, nil, 1, 1)
|
||||
|
||||
for i = 1, #augmentationEvokers do
|
||||
local actorObject = augmentationEvokers[i]
|
||||
if (actorObject:Name() == actorName) then
|
||||
local buffUptimeSpellContainer = actorObject:GetSpellContainer("buff")
|
||||
if (buffUptimeSpellContainer) then
|
||||
local spellTable = buffUptimeSpellContainer:GetSpell(403264)
|
||||
if (spellTable) then
|
||||
local uptime = spellTable.uptime
|
||||
local spellName, _, spellIcon = _GetSpellInfo(CONST_SPELLID_BLACKATTUNEMENT)
|
||||
local uptimePercent = uptime / combatTime * 100
|
||||
|
||||
if (uptime <= combatTime) then
|
||||
local minutes, seconds = math.floor(uptime / 60), math.floor(uptime % 60)
|
||||
if (minutes > 0) then
|
||||
GameCooltip:AddLine(spellName, minutes .. "m " .. seconds .. "s" .. " (" .. format("%.1f", uptimePercent) .. "%)")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, "limegreen")
|
||||
else
|
||||
GameCooltip:AddLine(spellName, seconds .. "s" .. " (" .. format("%.1f", uptimePercent) .. "%)")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, "limegreen")
|
||||
end
|
||||
|
||||
GameCooltip:AddIcon(spellIcon, nil, nil, iconSize, iconSize, iconBorderInfo.L, iconBorderInfo.R, iconBorderInfo.T, iconBorderInfo.B)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
GameCooltip:AddLine("", "")
|
||||
GameCooltip:AddIcon("", nil, nil, 1, 1)
|
||||
|
||||
--add the buff uptime into the tooltip
|
||||
local allPrescienceTargets = buffUptimeTable[CONST_SPELLID_PRESCIENCE]
|
||||
if (#allPrescienceTargets > 0) then
|
||||
for i = 1, math.min(30, #allPrescienceTargets) do
|
||||
local uptimeTable = allPrescienceTargets[i]
|
||||
|
||||
local spellId = uptimeTable[1]
|
||||
local uptime = uptimeTable[2]
|
||||
local sourceName = uptimeTable[3]
|
||||
local targetName = uptimeTable[4]
|
||||
local targetClass = uptimeTable[5]
|
||||
local bCanShow = uptimeTable[6]
|
||||
|
||||
local uptimePercent = uptime / combatTime * 100
|
||||
|
||||
if (uptime > 0 and uptimePercent < 99.5) then
|
||||
if (uptime > 0 and uptimePercent < 99.5 and bCanShow) then
|
||||
local spellName, _, spellIcon = _GetSpellInfo(spellId)
|
||||
|
||||
if (sourceName) then
|
||||
@@ -3529,10 +3612,10 @@ function damageClass.PredictedAugSpellsOnEnter(self)
|
||||
local minutes, seconds = math.floor(uptime / 60), math.floor(uptime % 60)
|
||||
if (minutes > 0) then
|
||||
GameCooltip:AddLine(spellName, minutes .. "m " .. seconds .. "s" .. " (" .. format("%.1f", uptimePercent) .. "%)")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, sourceName and "green")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, sourceName and "limegreen")
|
||||
else
|
||||
GameCooltip:AddLine(spellName, seconds .. "s" .. " (" .. format("%.1f", uptimePercent) .. "%)")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, sourceName and "green")
|
||||
Details:AddTooltipBackgroundStatusbar(false, uptimePercent, true, sourceName and "limegreen")
|
||||
end
|
||||
|
||||
GameCooltip:AddIcon(spellIcon, nil, nil, iconSize, iconSize, iconBorderInfo.L, iconBorderInfo.R, iconBorderInfo.T, iconBorderInfo.B)
|
||||
@@ -3542,6 +3625,36 @@ function damageClass.PredictedAugSpellsOnEnter(self)
|
||||
else
|
||||
GameCooltip:AddLine(Loc ["STRING_NO_SPELL"])
|
||||
end
|
||||
|
||||
local evokerObject = combatObject:GetActor(DETAILS_ATTRIBUTE_MISC, actorName)
|
||||
|
||||
GameCooltip:AddLine(" ")
|
||||
GameCooltip:AddIcon(" ", 1, 1, 10, 10)
|
||||
|
||||
if (evokerObject) then
|
||||
GameCooltip:AddLine("Prescience Uptime by Amount of Applications")
|
||||
local prescienceData = evokerObject.cleu_prescience_time --real time
|
||||
|
||||
if (prescienceData) then
|
||||
prescienceData = prescienceData.stackTime
|
||||
local totalTimeWithPrescienceUp = 0
|
||||
|
||||
for amountOfPrescienceApplied, time in ipairs(prescienceData) do
|
||||
totalTimeWithPrescienceUp = totalTimeWithPrescienceUp + time
|
||||
end
|
||||
|
||||
for amountOfPrescienceApplied, time in ipairs(prescienceData) do
|
||||
if (time > 0) then
|
||||
local uptimePercent = time / combatTime * 100
|
||||
local timeString = detailsFramework:IntegerToTimer(time)
|
||||
GameCooltip:AddLine("Presciece Applied: " .. amountOfPrescienceApplied, timeString .. " (" .. format("%.1f", uptimePercent) .. "%)")
|
||||
--5199639 prescience icon
|
||||
GameCooltip:AddIcon([[Interface\AddOns\Details\images\spells\prescience_time]], nil, nil, iconSize, iconSize)
|
||||
Details:AddTooltipBackgroundStatusbar(false, time/totalTimeWithPrescienceUp*100, true, "green")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
GameCooltip:AddLine("feature under test, can't disable atm")
|
||||
|
||||
+115
-81
@@ -1335,115 +1335,93 @@ function _detalhes:CloseEnemyDebuffsUptime()
|
||||
return
|
||||
end
|
||||
|
||||
function _detalhes:CatchRaidDebuffUptime (in_or_out) -- "DEBUFF_UPTIME_IN"
|
||||
function _detalhes:CatchRaidDebuffUptime(sOperationType) -- "DEBUFF_UPTIME_IN"
|
||||
if (sOperationType == "DEBUFF_UPTIME_OUT") then
|
||||
local combatObject = Details:GetCurrentCombat()
|
||||
local utilityContainer = combatObject:GetContainer(DETAILS_ATTRIBUTE_MISC)
|
||||
|
||||
if (in_or_out == "DEBUFF_UPTIME_OUT") then
|
||||
local combat = _detalhes.tabela_vigente
|
||||
local misc_container = combat [4]._ActorTable --error attempt to index a new value
|
||||
|
||||
for _, actor in ipairs(misc_container) do
|
||||
if (actor.debuff_uptime) then
|
||||
for spellid, spell in pairs(actor.debuff_uptime_spells._ActorTable) do
|
||||
if (spell.actived and spell.actived_at) then
|
||||
spell.uptime = spell.uptime + _detalhes._tempo - spell.actived_at
|
||||
actor.debuff_uptime = actor.debuff_uptime + _detalhes._tempo - spell.actived_at
|
||||
spell.actived = false
|
||||
spell.actived_at = nil
|
||||
for _, actorObject in utilityContainer:ListActors() do
|
||||
if (actorObject.debuff_uptime) then
|
||||
for spellId, spellTable in pairs(actorObject.debuff_uptime_spells._ActorTable) do
|
||||
if (spellTable.actived and spellTable.actived_at) then
|
||||
spellTable.uptime = spellTable.uptime + _detalhes._tempo - spellTable.actived_at
|
||||
actorObject.debuff_uptime = actorObject.debuff_uptime + _detalhes._tempo - spellTable.actived_at
|
||||
spellTable.actived = false
|
||||
spellTable.actived_at = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
local cacheGetTime = GetTime()
|
||||
elseif (sOperationType == "DEBUFF_UPTIME_IN") then
|
||||
local cacheGetTime = GetTime()
|
||||
|
||||
if (IsInRaid()) then
|
||||
if (IsInRaid()) then
|
||||
|
||||
local checked = {}
|
||||
local checked = {}
|
||||
|
||||
for raidIndex = 1, GetNumGroupMembers() do
|
||||
for raidIndex = 1, GetNumGroupMembers() do
|
||||
|
||||
local target = "raid"..raidIndex.."target"
|
||||
local his_target = UnitGUID(target)
|
||||
local target = "raid"..raidIndex.."target"
|
||||
local his_target = UnitGUID(target)
|
||||
|
||||
if (his_target and not checked [his_target]) then
|
||||
local rect = UnitReaction (target, "player")
|
||||
if (rect and rect <= 4) then
|
||||
if (his_target and not checked [his_target]) then
|
||||
local rect = UnitReaction (target, "player")
|
||||
if (rect and rect <= 4) then
|
||||
|
||||
checked [his_target] = true
|
||||
|
||||
for debuffIndex = 1, 41 do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff (target, debuffIndex)
|
||||
if (name and unitCaster) then
|
||||
local playerGUID = UnitGUID(unitCaster)
|
||||
if (playerGUID) then
|
||||
|
||||
local playerName, realmName = _UnitName (unitCaster)
|
||||
if (realmName and realmName ~= "") then
|
||||
playerName = playerName .. "-" .. realmName
|
||||
end
|
||||
|
||||
_detalhes.parser:add_debuff_uptime (nil, cacheGetTime, playerGUID, playerName, 0x00000417, his_target, _UnitName (target), 0x842, nil, spellid, name, sOperationType)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
elseif (IsInGroup()) then
|
||||
|
||||
local checked = {}
|
||||
|
||||
for raidIndex = 1, GetNumGroupMembers()-1 do
|
||||
local his_target = UnitGUID("party"..raidIndex.."target")
|
||||
local rect = UnitReaction ("party"..raidIndex.."target", "player")
|
||||
if (his_target and not checked [his_target] and rect and rect <= 4) then
|
||||
|
||||
checked [his_target] = true
|
||||
|
||||
for debuffIndex = 1, 41 do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff (target, debuffIndex)
|
||||
for debuffIndex = 1, 40 do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff ("party"..raidIndex.."target", debuffIndex)
|
||||
if (name and unitCaster) then
|
||||
local playerName, realmName = _UnitName (unitCaster)
|
||||
local playerGUID = UnitGUID(unitCaster)
|
||||
if (playerGUID) then
|
||||
|
||||
local playerName, realmName = _UnitName (unitCaster)
|
||||
if (realmName and realmName ~= "") then
|
||||
playerName = playerName .. "-" .. realmName
|
||||
end
|
||||
|
||||
_detalhes.parser:add_debuff_uptime (nil, cacheGetTime, playerGUID, playerName, 0x00000417, his_target, _UnitName (target), 0x842, nil, spellid, name, in_or_out)
|
||||
_detalhes.parser:add_debuff_uptime (nil, GetTime(), playerGUID, playerName, 0x00000417, his_target, _UnitName ("party"..raidIndex.."target"), 0x842, nil, spellid, name, sOperationType)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
elseif (IsInGroup()) then
|
||||
|
||||
local checked = {}
|
||||
|
||||
for raidIndex = 1, GetNumGroupMembers()-1 do
|
||||
local his_target = UnitGUID("party"..raidIndex.."target")
|
||||
local rect = UnitReaction ("party"..raidIndex.."target", "player")
|
||||
local his_target = UnitGUID("playertarget")
|
||||
local rect = UnitReaction ("playertarget", "player")
|
||||
if (his_target and not checked [his_target] and rect and rect <= 4) then
|
||||
|
||||
checked [his_target] = true
|
||||
|
||||
for debuffIndex = 1, 40 do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff ("party"..raidIndex.."target", debuffIndex)
|
||||
if (name and unitCaster) then
|
||||
local playerName, realmName = _UnitName (unitCaster)
|
||||
local playerGUID = UnitGUID(unitCaster)
|
||||
if (playerGUID) then
|
||||
if (realmName and realmName ~= "") then
|
||||
playerName = playerName .. "-" .. realmName
|
||||
end
|
||||
|
||||
_detalhes.parser:add_debuff_uptime (nil, GetTime(), playerGUID, playerName, 0x00000417, his_target, _UnitName ("party"..raidIndex.."target"), 0x842, nil, spellid, name, in_or_out)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local his_target = UnitGUID("playertarget")
|
||||
local rect = UnitReaction ("playertarget", "player")
|
||||
if (his_target and not checked [his_target] and rect and rect <= 4) then
|
||||
for debuffIndex = 1, 40 do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff ("playertarget", debuffIndex)
|
||||
if (name and unitCaster) then
|
||||
local playerName, realmName = _UnitName (unitCaster)
|
||||
local playerGUID = UnitGUID(unitCaster)
|
||||
if (playerGUID) then
|
||||
if (realmName and realmName ~= "") then
|
||||
playerName = playerName .. "-" .. realmName
|
||||
end
|
||||
_detalhes.parser:add_debuff_uptime (nil, GetTime(), playerGUID, playerName, 0x00000417, his_target, _UnitName ("playertarget"), 0x842, nil, spellid, name, in_or_out)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
local his_target = UnitGUID("playertarget")
|
||||
if (his_target) then
|
||||
local reaction = UnitReaction ("playertarget", "player")
|
||||
if (reaction and reaction <= 4) then
|
||||
for debuffIndex = 1, 40 do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff ("playertarget", debuffIndex)
|
||||
if (name and unitCaster) then
|
||||
@@ -1453,7 +1431,28 @@ function _detalhes:CatchRaidDebuffUptime (in_or_out) -- "DEBUFF_UPTIME_IN"
|
||||
if (realmName and realmName ~= "") then
|
||||
playerName = playerName .. "-" .. realmName
|
||||
end
|
||||
_detalhes.parser:add_debuff_uptime (nil, GetTime(), playerGUID, playerName, 0x00000417, his_target, _UnitName ("playertarget"), 0x842, nil, spellid, name, in_or_out)
|
||||
_detalhes.parser:add_debuff_uptime (nil, GetTime(), playerGUID, playerName, 0x00000417, his_target, _UnitName ("playertarget"), 0x842, nil, spellid, name, sOperationType)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
local his_target = UnitGUID("playertarget")
|
||||
if (his_target) then
|
||||
local reaction = UnitReaction ("playertarget", "player")
|
||||
if (reaction and reaction <= 4) then
|
||||
for debuffIndex = 1, 40 do
|
||||
local name, _, _, _, _, _, _, unitCaster, _, _, spellid = UnitDebuff ("playertarget", debuffIndex)
|
||||
if (name and unitCaster) then
|
||||
local playerName, realmName = _UnitName (unitCaster)
|
||||
local playerGUID = UnitGUID(unitCaster)
|
||||
if (playerGUID) then
|
||||
if (realmName and realmName ~= "") then
|
||||
playerName = playerName .. "-" .. realmName
|
||||
end
|
||||
_detalhes.parser:add_debuff_uptime (nil, GetTime(), playerGUID, playerName, 0x00000417, his_target, _UnitName ("playertarget"), 0x842, nil, spellid, name, sOperationType)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1672,6 +1671,10 @@ function _detalhes:CatchRaidBuffUptime(sOperationType)
|
||||
-- _detalhes:Msg(string_output)
|
||||
|
||||
end
|
||||
|
||||
if (sOperationType == "BUFF_UPTIME_OUT") then
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
local Sort2Reverse = function(a, b)
|
||||
@@ -2595,6 +2598,17 @@ function atributo_misc:r_connect_shadow(actor, no_refresh, combat_object)
|
||||
DetailsFramework.table.addunique(shadow.pets, petName)
|
||||
end
|
||||
|
||||
if (actor.cleu_prescience_time) then
|
||||
local shadowPrescienceStackData = shadow.cleu_prescience_time
|
||||
if (not shadowPrescienceStackData) then
|
||||
shadow.cleu_prescience_time = detailsFramework.table.copy({}, actor.cleu_prescience_time)
|
||||
else
|
||||
for amountOfPrescienceApplied, time in pairs(actor.cleu_prescience_time.stackTime) do
|
||||
shadow.cleu_prescience_time.stackTime[amountOfPrescienceApplied] = shadow.cleu_prescience_time.stackTime[amountOfPrescienceApplied] + time
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (actor.cc_done) then
|
||||
if (not shadow.cc_done_targets) then
|
||||
shadow.cc_done = _detalhes:GetOrderNumber()
|
||||
@@ -2948,6 +2962,17 @@ function _detalhes.clear:c_atributo_misc (este_jogador)
|
||||
end
|
||||
|
||||
atributo_misc.__add = function(tabela1, tabela2)
|
||||
if (tabela2.cleu_prescience_time) then --timeline
|
||||
local shadowPrescienceStackData = tabela1.cleu_prescience_time
|
||||
if (not shadowPrescienceStackData) then
|
||||
tabela1.cleu_prescience_time = detailsFramework.table.copy({}, tabela2.cleu_prescience_time)
|
||||
else
|
||||
for amountOfPrescienceApplied, time in pairs(tabela2.cleu_prescience_time.stackTime) do
|
||||
tabela1.cleu_prescience_time.stackTime[amountOfPrescienceApplied] = tabela1.cleu_prescience_time.stackTime[amountOfPrescienceApplied] + time
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (tabela2.cc_done) then
|
||||
tabela1.cc_done = tabela1.cc_done + tabela2.cc_done
|
||||
|
||||
@@ -3223,6 +3248,15 @@ local subtractKeyValues = function(habilidade, habilidade_tabela1)
|
||||
end
|
||||
|
||||
atributo_misc.__sub = function(tabela1, tabela2)
|
||||
if (tabela2.cleu_prescience_time) then --timeline
|
||||
local shadowPrescienceStackData = tabela1.cleu_prescience_time
|
||||
if (shadowPrescienceStackData) then
|
||||
for amountOfPrescienceApplied, time in pairs(tabela2.cleu_prescience_time.stackTime) do
|
||||
tabela1.cleu_prescience_time.stackTime[amountOfPrescienceApplied] = tabela1.cleu_prescience_time.stackTime[amountOfPrescienceApplied] - time
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (tabela2.cc_done) then
|
||||
tabela1.cc_done = tabela1.cc_done - tabela2.cc_done
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ function segmentClass:AddToOverallData(combatObject)
|
||||
if (combatObject.instance_type == "raid" and combatObject.is_boss) then
|
||||
if (Details.last_encounter ~= Details.last_encounter2) then
|
||||
if (Details.debug) then
|
||||
Details:Msg("(debug) new boss detected 'overall_clear_newboss' is true, cleaning overall data.")
|
||||
--Details:Msg("(debug) new boss detected 'overall_clear_newboss' is true, cleaning overall data.")
|
||||
end
|
||||
|
||||
for index, combat in ipairs(Details:GetCombatSegments()) do
|
||||
@@ -198,7 +198,7 @@ function segmentClass:AddToOverallData(combatObject)
|
||||
end
|
||||
|
||||
if (Details.debug) then
|
||||
Details:Msg("(debug) adding the segment to overall data: " .. (combatObject:GetCombatName(true) or "no name") .. " with time of: " .. (combatObject:GetCombatTime() or "no time"))
|
||||
--Details:Msg("(debug) adding the segment to overall data: " .. (combatObject:GetCombatName(true) or "no name") .. " with time of: " .. (combatObject:GetCombatTime() or "no time"))
|
||||
end
|
||||
|
||||
Details.tabela_overall = Details.tabela_overall + combatObject
|
||||
@@ -487,7 +487,7 @@ function Details222.Combat.AddCombat(combatToBeAdded)
|
||||
|
||||
if (bCanAddToOverall) then
|
||||
if (Details.debug) then
|
||||
Details:Msg("(debug) overall data flag match addind the combat to overall data.")
|
||||
--Details:Msg("(debug) overall data flag match addind the combat to overall data.")
|
||||
end
|
||||
--add to overall data
|
||||
segmentClass:AddToOverallData(combatToBeAdded)
|
||||
@@ -566,7 +566,7 @@ function segmentClass:AddCombat(combatObject)
|
||||
local canAddToOverall = Details:CanAddCombatToOverall(combatObject)
|
||||
if (canAddToOverall) then
|
||||
if (Details.debug) then
|
||||
Details:Msg("(debug) overall data flag match addind the combat to overall data.")
|
||||
--Details:Msg("(debug) overall data flag match addind the combat to overall data.")
|
||||
end
|
||||
segmentClass:AddToOverallData(combatObject)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user