added commentator stuff, general code cleanup and better formatting, some deprecated code removed
This commit is contained in:
@@ -1,15 +1,4 @@
|
||||
|
||||
=======================================
|
||||
Background Tasks
|
||||
=======================================
|
||||
|
||||
Details:RegisterBackgroundTask (name, func, priority, ...)
|
||||
register a function to be called while the player isn't in: combat, group, raid instances.
|
||||
priority determines the interval time and support "LOW", "MEDIUM", "HIGH" values.
|
||||
|
||||
Details:UnregisterBackgroundTask (name)
|
||||
unregister a background task.
|
||||
|
||||
=======================================
|
||||
Item Level
|
||||
=======================================
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--global name declaration
|
||||
--local _StartDebugTime = debugprofilestop() print(debugprofilestop() - _StartDebugTime)
|
||||
--use lua-language-server annotations to help the linter:
|
||||
--https://github.com/LuaLS/lua-language-server/wiki/Annotations#documenting-types
|
||||
--updated the lib open raid for v11
|
||||
--follow definitions declared in the file definitions.lua
|
||||
--follow game api definitions in the file LibLuaServer.lua
|
||||
|
||||
local _ = nil
|
||||
_G.Details = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0")
|
||||
@@ -24,6 +25,7 @@
|
||||
Details.game_version = version
|
||||
Details.userversion = version .. " " .. Details.build_counter
|
||||
Details.realversion = 158 --core version, this is used to check API version for scripts and plugins (see alias below)
|
||||
Details.gametoc = tvs
|
||||
Details.APIVersion = Details.realversion --core version
|
||||
Details.version = Details.userversion .. " (core " .. Details.realversion .. ")" --simple stirng to show to players
|
||||
|
||||
@@ -37,6 +39,7 @@
|
||||
Details.BFACORE = 131 --core version on BFA launch
|
||||
Details.SHADOWLANDSCORE = 143 --core version on Shadowlands launch
|
||||
Details.DRAGONFLIGHT = 147 --core version on Dragonflight launch
|
||||
Details.V11CORE = 158 --core version on V11 launch
|
||||
|
||||
Details = Details
|
||||
|
||||
@@ -102,9 +105,8 @@
|
||||
Details222.DamageSpells = {}
|
||||
--namespace for texture
|
||||
Details222.Textures = {}
|
||||
|
||||
Details222.Debug = {}
|
||||
|
||||
Details222.Tvs = tvs
|
||||
--namespace for pet
|
||||
Details222.Pets = {}
|
||||
Details222.PetContainer = {
|
||||
@@ -167,6 +169,8 @@
|
||||
[1473] = {},
|
||||
}
|
||||
|
||||
Details222.Parser = {}
|
||||
|
||||
Details222.Actors = {}
|
||||
|
||||
Details222.CurrentDPS = {
|
||||
@@ -529,9 +533,9 @@ do
|
||||
--armazenas as fun��es do parser - All parse functions
|
||||
_detalhes.parser = {}
|
||||
_detalhes.parser_functions = {}
|
||||
_detalhes.parser_frame = CreateFrame("Frame")
|
||||
Details222.parser_frame = CreateFrame("Frame")
|
||||
Details222.parser_frame:Hide()
|
||||
_detalhes.pvp_parser_frame = CreateFrame("Frame")
|
||||
_detalhes.parser_frame:Hide()
|
||||
|
||||
_detalhes.MacroList = {
|
||||
{Name = "Click on Your Own Bar", Desc = "To open the player details window on your character, like if you click on your bar in the damage window. The number '1' is the window number where it'll click.", MacroText = "/script Details:OpenPlayerDetails(1)"},
|
||||
@@ -1269,13 +1273,37 @@ do
|
||||
end
|
||||
end
|
||||
|
||||
local bIsDump = false
|
||||
local waitForSpellLoad = CreateFrame("frame")
|
||||
if (C_EventUtils.IsEventValid("SPELL_TEXT_UPDATE")) then
|
||||
waitForSpellLoad:RegisterEvent("SPELL_TEXT_UPDATE")
|
||||
waitForSpellLoad:SetScript("OnEvent", function(self, event, spellId)
|
||||
if (bIsDump) then
|
||||
dumpt(spellId)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function dumpt(value) --[[GLOBAL]]
|
||||
--check if this is a spellId
|
||||
local spellId = tonumber(value)
|
||||
if (spellId) then
|
||||
local spellInfo = {Details222.GetSpellInfo(spellId)}
|
||||
if (type(spellInfo[1]) == "string") then
|
||||
return Details:Dump(spellInfo)
|
||||
local desc = C_Spell.GetSpellDescription and C_Spell.GetSpellDescription(spellId) or GetSpellDescription(spellId)
|
||||
if (not desc or desc == "") then
|
||||
bIsDump = true
|
||||
return
|
||||
end
|
||||
|
||||
if (C_Spell.GetSpellInfo) then
|
||||
Details:Dump({desc, C_Spell.GetSpellInfo(spellId)})
|
||||
return
|
||||
else
|
||||
return Details:Dump({desc, spellInfo})
|
||||
end
|
||||
|
||||
bIsDump = false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+24
-19
@@ -2586,19 +2586,20 @@ end
|
||||
--space between string4 and string3 (usually dps is 4 and total value is 3)
|
||||
for lineId = 1, self:GetNumLinesShown() do
|
||||
local thisLine = self:GetLine(lineId)
|
||||
if (thisLine) then
|
||||
--check strings 3 and 4
|
||||
if (thisLine.lineText4:GetText() ~= "" and thisLine.lineText3:GetText() ~= "") then
|
||||
--the length of the far right string determines the space between it and the next string in the left
|
||||
local stringLength = thisLine.lineText4:GetStringWidth()
|
||||
maxStringLength_StringFour = stringLength > maxStringLength_StringFour and stringLength or maxStringLength_StringFour
|
||||
end
|
||||
|
||||
--check strings 3 and 4
|
||||
if (thisLine.lineText4:GetText() ~= "" and thisLine.lineText3:GetText() ~= "") then
|
||||
--the length of the far right string determines the space between it and the next string in the left
|
||||
local stringLength = thisLine.lineText4:GetStringWidth()
|
||||
maxStringLength_StringFour = stringLength > maxStringLength_StringFour and stringLength or maxStringLength_StringFour
|
||||
end
|
||||
|
||||
--check strings 2 and 3
|
||||
if (thisLine.lineText2:GetText() ~= "" and thisLine.lineText3:GetText() ~= "") then
|
||||
--the length of the middle string determines the space between it and the next string in the left
|
||||
local stringLength = thisLine.lineText3:GetStringWidth()
|
||||
maxStringLength_StringThree = stringLength > maxStringLength_StringThree and stringLength or maxStringLength_StringThree
|
||||
--check strings 2 and 3
|
||||
if (thisLine.lineText2:GetText() ~= "" and thisLine.lineText3:GetText() ~= "") then
|
||||
--the length of the middle string determines the space between it and the next string in the left
|
||||
local stringLength = thisLine.lineText3:GetStringWidth()
|
||||
maxStringLength_StringThree = stringLength > maxStringLength_StringThree and stringLength or maxStringLength_StringThree
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2619,7 +2620,9 @@ end
|
||||
--update the lines
|
||||
for lineId = 1, self:GetNumLinesShown() do
|
||||
local thisLine = self:GetLine(lineId)
|
||||
thisLine.lineText3:SetPoint("right", thisLine.statusbar, "right", -newOffset, profileYOffset)
|
||||
if (thisLine) then
|
||||
thisLine.lineText3:SetPoint("right", thisLine.statusbar, "right", -newOffset, profileYOffset)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2640,7 +2643,9 @@ end
|
||||
--update the lines
|
||||
for lineId = 1, self:GetNumLinesShown() do
|
||||
local thisLine = self:GetLine(lineId)
|
||||
thisLine.lineText2:SetPoint("right", thisLine.statusbar, "right", -newOffset, profileYOffset)
|
||||
if (thisLine) then
|
||||
thisLine.lineText2:SetPoint("right", thisLine.statusbar, "right", -newOffset, profileYOffset)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2651,7 +2656,7 @@ end
|
||||
|
||||
--check if there's something showing in this line
|
||||
--check if the line is shown and if the text exists for sanitization
|
||||
if (thisLine.minha_tabela and thisLine:IsShown() and thisLine.lineText1:GetText()) then
|
||||
if (thisLine and thisLine.minha_tabela and thisLine:IsShown() and thisLine.lineText1:GetText()) then
|
||||
local playerNameFontString = thisLine.lineText1
|
||||
local text2 = thisLine.lineText2
|
||||
local text3 = thisLine.lineText3
|
||||
@@ -2663,10 +2668,10 @@ end
|
||||
DetailsFramework:TruncateTextSafe(playerNameFontString, self.cached_bar_width - totalWidth) --this avoid truncated strings with ...
|
||||
|
||||
--these commented lines are for to create a cache and store the name already truncated there to safe performance
|
||||
--local truncatedName = playerNameFontString:GetText()
|
||||
--local actorObject = thisLine.minha_tabela
|
||||
--actorObject.name_cached = truncatedName
|
||||
--actorObject.name_cached_time = GetTime()
|
||||
--local truncatedName = playerNameFontString:GetText()
|
||||
--local actorObject = thisLine.minha_tabela
|
||||
--actorObject.name_cached = truncatedName
|
||||
--actorObject.name_cached_time = GetTime()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2594,7 +2594,7 @@ function Details:AtualizaSegmentos_AfterCombat(instancia)
|
||||
instancia.v_barras = true
|
||||
instancia:ResetaGump()
|
||||
instancia:RefreshMainWindow(true)
|
||||
Details:AtualizarJanela (instancia)
|
||||
Details:UpdateWindow (instancia)
|
||||
|
||||
elseif (segmento < Details.segments_amount and segmento > 0) then
|
||||
instancia.showing = segmentsTable[segmento]
|
||||
@@ -2605,7 +2605,7 @@ function Details:AtualizaSegmentos_AfterCombat(instancia)
|
||||
instancia.v_barras = true
|
||||
instancia:ResetaGump()
|
||||
instancia:RefreshMainWindow(true)
|
||||
Details:AtualizarJanela (instancia)
|
||||
Details:UpdateWindow (instancia)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -306,7 +306,7 @@ end
|
||||
return ipairs(self._ActorTable)
|
||||
end
|
||||
|
||||
---return a table<actorIndex, actorObject> for all actors stored in this Container
|
||||
---return a table with actor[] for all actors stored in this container
|
||||
---@return table
|
||||
function actorContainer:GetActorTable()
|
||||
return self._ActorTable
|
||||
@@ -315,8 +315,8 @@ end
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--internals
|
||||
|
||||
---create a new actor container, can be a damage container, heal container, enemy container or utility container
|
||||
---actors can be added by using newContainer.GetOrCreateActor
|
||||
---create a new actor container, can be a damage container, heal container, resource container or utility container
|
||||
---actors can be added by using the method newContainer:GetOrCreateActor(actorGuid, actorName, actorFlags, bShouldCreateActor)
|
||||
---actors can be retrieved using the same function above
|
||||
---@param containerType number
|
||||
---@param combatObject table
|
||||
|
||||
@@ -26,7 +26,7 @@ function Details:ResetSegmentOverallData()
|
||||
return segmentClass:ResetOverallData()
|
||||
end
|
||||
|
||||
--reset segments and overall data
|
||||
--erase all combat data stored
|
||||
function Details:ResetSegmentData()
|
||||
return segmentClass:ResetAllCombatData()
|
||||
end
|
||||
|
||||
+246
-454
File diff suppressed because it is too large
Load Diff
+593
-471
File diff suppressed because it is too large
Load Diff
@@ -370,11 +370,6 @@
|
||||
end
|
||||
end
|
||||
|
||||
function Details.network.HandleMissData(player, realm, coreVersion, data)
|
||||
--soul rip from akaari's soul (LEGION ONLY)
|
||||
--deprecated
|
||||
end
|
||||
|
||||
function Details.network.ReceivedEnemyPlayer(player, realm, coreVersion, data)
|
||||
--deprecated
|
||||
end
|
||||
@@ -394,8 +389,6 @@
|
||||
|
||||
[CONST_GUILD_SYNC] = Details.network.GuildSync,
|
||||
|
||||
[CONST_ROGUE_SR] = Details.network.HandleMissData, --soul rip from akaari's soul (LEGION ONLY)
|
||||
|
||||
[CONST_PVP_ENEMY] = Details.network.ReceivedEnemyPlayer,
|
||||
|
||||
[DETAILS_PREFIX_COACH] = Details.network.Coach, --coach feature
|
||||
|
||||
+89
-141
@@ -623,7 +623,7 @@
|
||||
Details:Msg(Details.WhoAggroTimer.HitBy)
|
||||
end
|
||||
|
||||
Details:EntrarEmCombate(sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags)
|
||||
Details222.StartCombat(sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags)
|
||||
else
|
||||
--entrar em combate se for dot e for do jogador e o ultimo combate ter sido a mais de 10 segundos atr�s
|
||||
if (token == "SPELL_PERIODIC_DAMAGE" and sourceName == Details.playername) then
|
||||
@@ -633,7 +633,7 @@
|
||||
|
||||
--faz o calculo dos 10 segundos
|
||||
if (Details.last_combat_time + 10 < _tempo) then
|
||||
Details:EntrarEmCombate(sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags)
|
||||
Details222.StartCombat(sourceSerial, sourceName, sourceFlags, targetSerial, targetName, targetFlags)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2772,86 +2772,84 @@
|
||||
--MISC search key: ~buffuptime ~buffsuptime |
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, in_out, stack_amount)
|
||||
|
||||
if (not alvo_name) then
|
||||
function parser:add_bad_debuff_uptime(token, time, sourceGuid, sourceName, sourceFlags, targetGuid, targetName, targetFlags, targetsFlags2, spellId, spellName, spellSchool, sInOrOut, stackSize)
|
||||
if (not targetName) then
|
||||
--no target name, just quit
|
||||
return
|
||||
elseif (not who_name) then
|
||||
elseif (not sourceName) then
|
||||
--no actor name, use spell name instead
|
||||
who_name = "[*] "..spellname
|
||||
sourceName = "[*] "..spellName
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--get actors
|
||||
--nome do debuff ser� usado para armazenar o nome do ator
|
||||
local este_jogador = misc_cache [spellname]
|
||||
if (not este_jogador) then --pode ser um desconhecido ou um pet
|
||||
este_jogador = _current_misc_container:GetOrCreateActor (who_serial, spellname, who_flags, true)
|
||||
misc_cache [spellname] = este_jogador
|
||||
local sourceActor = misc_cache[spellName]
|
||||
if (not sourceActor) then --pode ser um desconhecido ou um pet
|
||||
sourceActor = _current_misc_container:GetOrCreateActor (sourceGuid, spellName, sourceFlags, true)
|
||||
misc_cache[spellName] = sourceActor
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--build containers on the fly
|
||||
|
||||
if (not este_jogador.debuff_uptime) then
|
||||
este_jogador.boss_debuff = true
|
||||
este_jogador.damage_twin = who_name
|
||||
este_jogador.spellschool = spellschool
|
||||
este_jogador.damage_spellid = spellid
|
||||
este_jogador.debuff_uptime = 0
|
||||
este_jogador.debuff_uptime_spells = spellContainerClass:CreateSpellContainer (container_misc)
|
||||
este_jogador.debuff_uptime_targets = {}
|
||||
if (not sourceActor.debuff_uptime) then
|
||||
sourceActor.boss_debuff = true
|
||||
sourceActor.damage_twin = sourceName
|
||||
sourceActor.spellschool = spellSchool
|
||||
sourceActor.damage_spellid = spellId
|
||||
sourceActor.debuff_uptime = 0
|
||||
sourceActor.debuff_uptime_spells = spellContainerClass:CreateSpellContainer (container_misc)
|
||||
sourceActor.debuff_uptime_targets = {}
|
||||
end
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
--add amount
|
||||
|
||||
--update last event
|
||||
este_jogador.last_event = _tempo
|
||||
sourceActor.last_event = _tempo
|
||||
|
||||
--actor target
|
||||
local este_alvo = este_jogador.debuff_uptime_targets [alvo_name]
|
||||
local este_alvo = sourceActor.debuff_uptime_targets [targetName]
|
||||
if (not este_alvo) then
|
||||
este_alvo = Details.atributo_misc:CreateBuffTargetObject()
|
||||
este_jogador.debuff_uptime_targets [alvo_name] = este_alvo
|
||||
sourceActor.debuff_uptime_targets [targetName] = este_alvo
|
||||
end
|
||||
|
||||
if (in_out == "DEBUFF_UPTIME_IN") then
|
||||
if (sInOrOut == "DEBUFF_UPTIME_IN") then
|
||||
este_alvo.actived = true
|
||||
este_alvo.activedamt = este_alvo.activedamt + 1
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
|
||||
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
|
||||
sourceActor.debuff_uptime = sourceActor.debuff_uptime + _tempo - este_alvo.actived_at
|
||||
end
|
||||
|
||||
este_alvo.actived_at = _tempo
|
||||
|
||||
--death log
|
||||
--record death log
|
||||
local t = last_events_cache [alvo_name]
|
||||
local t = last_events_cache[targetName]
|
||||
|
||||
if (not t) then
|
||||
t = _current_combat:CreateLastEventsTable (alvo_name)
|
||||
t = _current_combat:CreateLastEventsTable(targetName)
|
||||
end
|
||||
|
||||
local i = t.n
|
||||
|
||||
local this_event = t [i]
|
||||
local thisEvent = t[i]
|
||||
|
||||
if (not this_event) then
|
||||
if (not thisEvent) then
|
||||
return Details:Msg("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _amount_of_last_events)
|
||||
end
|
||||
|
||||
this_event [1] = 4 --4 = debuff aplication
|
||||
this_event [2] = spellid --spellid
|
||||
this_event [3] = 1
|
||||
this_event [4] = time --parser time
|
||||
this_event [5] = UnitHealth(Details:Ambiguate(alvo_name)) --current unit heal
|
||||
this_event [6] = who_name --source name
|
||||
this_event [7] = false
|
||||
this_event [8] = false
|
||||
this_event [9] = false
|
||||
this_event [10] = false
|
||||
thisEvent[1] = 4 --4 = debuff aplication
|
||||
thisEvent[2] = spellId --spellid
|
||||
thisEvent[3] = 1
|
||||
thisEvent[4] = time --parser time
|
||||
thisEvent[5] = UnitHealth(Details:Ambiguate(targetName)) --current unit heal
|
||||
thisEvent[6] = sourceName --source name
|
||||
thisEvent[7] = false
|
||||
thisEvent[8] = false
|
||||
thisEvent[9] = false
|
||||
thisEvent[10] = false
|
||||
|
||||
i = i + 1
|
||||
|
||||
@@ -2861,10 +2859,10 @@
|
||||
t.n = i
|
||||
end
|
||||
|
||||
elseif (in_out == "DEBUFF_UPTIME_REFRESH") then
|
||||
elseif (sInOrOut == "DEBUFF_UPTIME_REFRESH") then
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + _tempo - este_alvo.actived_at
|
||||
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at
|
||||
sourceActor.debuff_uptime = sourceActor.debuff_uptime + _tempo - este_alvo.actived_at
|
||||
end
|
||||
este_alvo.actived_at = _tempo
|
||||
este_alvo.actived = true
|
||||
@@ -2874,44 +2872,58 @@
|
||||
--local name, texture, count, debuffType, duration, expirationTime, caster, canStealOrPurge, nameplateShowPersonal, spellId = UnitAura (alvo_name, spellname, nil, "HARMFUL")
|
||||
--UnitAura ("Kastfall", "Gulp Frog Toxin", nil, "HARMFUL")
|
||||
|
||||
--6/27 15:06:18.113 SPELL_AURA_APPLIED_DOSE,Creature-0-2085-2657-20918-227617-0000FDAA05,"Cosmic Simulacrum",0xa48,0x0,Player-4184-005CFB2D,"nil",0x511,0x0,459273,"Cosmic Shards",0x20,DEBUFF,4
|
||||
--6/27 15:06:18.114 SPELL_AURA_REFRESH,Creature-0-2085-2657-20918-227617-0000FDAA05,"Cosmic Simulacrum",0xa48,0x0,Player-4184-005CFB2D,"nil",0x511,0x0,459273,"Cosmic Shards",0x20,DEBUFF
|
||||
|
||||
--record death log
|
||||
local t = last_events_cache [alvo_name]
|
||||
local t = last_events_cache[targetName]
|
||||
|
||||
if (not t) then
|
||||
t = _current_combat:CreateLastEventsTable (alvo_name)
|
||||
t = _current_combat:CreateLastEventsTable(targetName)
|
||||
end
|
||||
|
||||
local i = t.n
|
||||
|
||||
local this_event = t [i]
|
||||
|
||||
if (not this_event) then
|
||||
return Details:Msg("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _amount_of_last_events)
|
||||
local bCanAdd = true
|
||||
local previousEvent = t[i-1]
|
||||
if (previousEvent) then
|
||||
if (previousEvent[1] == 4 and previousEvent[2] == spellId and detailsFramework.Math.IsNearlyEqual(time, previousEvent[4], 0.01)) then
|
||||
--don't repeat the application of the same debuff
|
||||
bCanAdd = false
|
||||
end
|
||||
end
|
||||
|
||||
this_event [1] = 4 --4 = debuff aplication
|
||||
this_event [2] = spellid --spellid
|
||||
this_event [3] = stack_amount or 1
|
||||
this_event [4] = time --parser time
|
||||
this_event [5] = UnitHealth(Details:Ambiguate(alvo_name)) --current unit heal
|
||||
this_event [6] = who_name --source name
|
||||
this_event [7] = false
|
||||
this_event [8] = false
|
||||
this_event [9] = false
|
||||
this_event [10] = false
|
||||
if (bCanAdd) then
|
||||
local thisEvent = t[i]
|
||||
|
||||
i = i + 1
|
||||
if (not thisEvent) then
|
||||
return Details:Msg("Parser Event Error -> Set to 16 DeathLogs and /reload", i, _amount_of_last_events)
|
||||
end
|
||||
|
||||
if (i == _amount_of_last_events+1) then
|
||||
t.n = 1
|
||||
else
|
||||
t.n = i
|
||||
thisEvent[1] = 4 --4 = debuff aplication
|
||||
thisEvent[2] = spellId --spellid
|
||||
thisEvent[3] = stackSize or 1
|
||||
thisEvent[4] = time --parser time
|
||||
thisEvent[5] = UnitHealth(Details:Ambiguate(targetName)) --current unit heal
|
||||
thisEvent[6] = sourceName --source name
|
||||
thisEvent[7] = false
|
||||
thisEvent[8] = false
|
||||
thisEvent[9] = false
|
||||
thisEvent[10] = false
|
||||
|
||||
i = i + 1
|
||||
|
||||
if (i == _amount_of_last_events+1) then
|
||||
t.n = 1
|
||||
else
|
||||
t.n = i
|
||||
end
|
||||
end
|
||||
|
||||
elseif (in_out == "DEBUFF_UPTIME_OUT") then
|
||||
elseif (sInOrOut == "DEBUFF_UPTIME_OUT") then
|
||||
if (este_alvo.actived_at and este_alvo.actived) then
|
||||
este_alvo.uptime = este_alvo.uptime + Details._tempo - este_alvo.actived_at
|
||||
este_jogador.debuff_uptime = este_jogador.debuff_uptime + _tempo - este_alvo.actived_at --token = actor misc object
|
||||
sourceActor.debuff_uptime = sourceActor.debuff_uptime + _tempo - este_alvo.actived_at --token = actor misc object
|
||||
end
|
||||
|
||||
este_alvo.activedamt = este_alvo.activedamt - 1
|
||||
@@ -4033,6 +4045,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
--get the index of the last event recorded
|
||||
local lastIndex = recordedEvents.n
|
||||
|
||||
--here the event log gets reordered as in the parser it work with index recycling
|
||||
if (lastIndex < _amount_of_last_events+1 and not recordedEvents[lastIndex][4]) then
|
||||
--the last events table amount of indexes is less than the amount of events to store
|
||||
for i = 1, lastIndex-1 do
|
||||
@@ -4072,7 +4085,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
local enemyCastCache = enemy_cast_cache
|
||||
|
||||
--as multiple enemies can have casted the same spell at the same time, iterate over the enemyCastCache and merge the casts that happened really close to each other
|
||||
--transfer the casts that happened within the the events window of the player death to a new indexed table
|
||||
--transfer the casts that happened within the event window of the player death to a new indexed table
|
||||
local enemyCastCacheIndexed = {}
|
||||
if (bHadDeathEvent) then
|
||||
for time, enemyCastTable in pairs(enemyCastCache) do
|
||||
@@ -4132,6 +4145,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
end
|
||||
end
|
||||
|
||||
--verify if a cooldown near the death event was used
|
||||
if (thisPlayer.last_cooldown) then
|
||||
--create a new event to show the latest cooldown the player used before death and add it to the list of events before death
|
||||
local eventType = 3 --last cooldown used
|
||||
@@ -4155,6 +4169,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
eventsBeforePlayerDeath[#eventsBeforePlayerDeath+1] = eventTable
|
||||
end
|
||||
|
||||
|
||||
|
||||
local maxHealth
|
||||
if (thisPlayer.arena_enemy) then
|
||||
--this is an arena enemy, get the heal with the unit Id
|
||||
@@ -4750,7 +4766,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
end
|
||||
|
||||
if (not _in_combat) then
|
||||
Details:EntrarEmCombate()
|
||||
Details222.StartCombat()
|
||||
end
|
||||
|
||||
_current_combat.pvp = true
|
||||
@@ -5050,11 +5066,11 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
if (_in_combat) then
|
||||
Details:SairDoCombate()
|
||||
end
|
||||
Details:EntrarEmCombate()
|
||||
Details222.StartCombat()
|
||||
end
|
||||
|
||||
if (not Details:CaptureGet("damage")) then
|
||||
Details:EntrarEmCombate()
|
||||
Details222.StartCombat()
|
||||
end
|
||||
|
||||
--essa parte do solo mode ainda sera usada?
|
||||
@@ -5595,7 +5611,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
end
|
||||
|
||||
Details.lastBattlegroundStartTime = GetTime()
|
||||
Details:StartCombat()
|
||||
Details222.StartCombat()
|
||||
|
||||
if (Details.debug) then
|
||||
Details:Msg("(debug) a battleground has started.")
|
||||
@@ -5899,7 +5915,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
-- ~parserstart ~startparser ~cleu ~parser
|
||||
Details.UnitNameCache = {}
|
||||
|
||||
function Details.OnParserEvent(self, event, ...)
|
||||
function Details222.Parser.OnParserEvent(self, event, ...)
|
||||
local time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12 = CombatLogGetCurrentEventInfo(...)
|
||||
|
||||
local func = token_list[token]
|
||||
@@ -5914,79 +5930,11 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1
|
||||
|
||||
if (not parserDebug[token]) then
|
||||
parserDebug[token] = true
|
||||
--print(token)
|
||||
end
|
||||
|
||||
if (token == "SPELL_DAMAGE") then
|
||||
if (A13 ~= nil or unknown1 ~= nil or unknown2 ~= nil or unknown3 ~= nil or unknown4 ~= nil or unknown5) then
|
||||
--print(time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, spellId, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)
|
||||
end
|
||||
--print(time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, spellId, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)
|
||||
|
||||
if (spellName == "Fate Mirror") then
|
||||
--print(time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, spellId, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)
|
||||
end
|
||||
end
|
||||
|
||||
if (token == "SPELL_AURA_APPLIED") then
|
||||
--print(spellName)
|
||||
end
|
||||
|
||||
--local func = token_list[token]
|
||||
--if (func) then
|
||||
-- return func(nil, token, time, who_serial, who_name, who_flags, target_serial, target_name, target_flags, target_flags2, spellId, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)
|
||||
--end
|
||||
|
||||
--[=[ getspellinfo
|
||||
["1"] = "Spatial Paradox", buff
|
||||
["3"] = 5199645,
|
||||
["4"] = 0,
|
||||
["5"] = 0,
|
||||
["6"] = 100,
|
||||
["7"] = 406789,
|
||||
["8"] = 5199645,
|
||||
|
||||
["1"] = "Spatial Paradox", buff
|
||||
["3"] = 5199645,
|
||||
["4"] = 0,
|
||||
["5"] = 0,
|
||||
["6"] = 60,
|
||||
["7"] = 406732,
|
||||
["8"] = 5199645,
|
||||
|
||||
["1"] = "Ebon Might", --spell cast start
|
||||
["3"] = 5061347,
|
||||
["4"] = 1473,
|
||||
["5"] = 0,
|
||||
["6"] = 0,
|
||||
["7"] = 395152,
|
||||
["8"] = 5061347,
|
||||
--]=]
|
||||
|
||||
if (sourceSerial == UnitGUID("player")) then
|
||||
GLOB = GLOB or {}
|
||||
--table.insert(GLOB, {time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, spellId, spellName, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18})
|
||||
--print(time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, spellId, spellName, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)
|
||||
end
|
||||
|
||||
if (token == "SPELL_CAST_START") then
|
||||
if (sourceSerial == UnitGUID("player")) then
|
||||
--print(token, spellName, spellId)
|
||||
end
|
||||
end
|
||||
|
||||
--Prescience, Fate Mirror, Ebon Might, Breath of Eons, Shifting Sands
|
||||
|
||||
--offline cleu:
|
||||
--6/30 14:25:28.988 SPELL_DAMAGE,Player-5764-0001609B,"Mikito-Fyrakk",0x518,0x0,Creature-0-5770-2444-8-198594-00009DF6EF,"Cleave Training Dummy",0x30a28,0x0,44425,"Arcane Barrage",0x40,0000000000000000,0000000000000000,0,0,0,0,0,0,-1,0,0,0,0.00,0.00,2112,0.0000,0,18252,18251,-1,64,0,0,0,nil,nil,nil
|
||||
--6/30 14:25:28.988 SPELL_DAMAGE_SUPPORT,Player-5764-0001609B,"Mikito-Fyrakk",0x518,0x0,Creature-0-5770-2444-8-198594-00009DF6EF,"Cleave Training Dummy",0x30a28,0x0,395152,"Ebon Might",0xc,0000000000000000,0000000000000000,0,0,0,0,0,0,-1,0,0,0,0.00,0.00,2112,0.0000,0,2572,2571,-1,64,0,0,0,nil,nil,nil,Player-5764-0001FACE
|
||||
end
|
||||
|
||||
if (false and "I'm debugging something") then
|
||||
Details.parser_frame:SetScript("OnEvent", Details.OnParserEventDebug)
|
||||
else
|
||||
Details.parser_frame:SetScript("OnEvent", Details.OnParserEvent)
|
||||
end
|
||||
Details222.parser_frame:SetScript("OnEvent", Details222.Parser.OnParserEvent)
|
||||
Details222.PFrame = Details222.parser_frame
|
||||
|
||||
function Details:UpdateParser()
|
||||
_tempo = Details._tempo
|
||||
|
||||
+16
-12
@@ -641,7 +641,7 @@
|
||||
for _, instancia in ipairs(self.stretchToo) do
|
||||
instancia.baseframe:SetWidth(self.baseframe:GetWidth())
|
||||
local mod = (self.baseframe:GetWidth() - instancia.baseframe._place.largura) / 2
|
||||
instancia:RestoreMainWindowPositionNoResize (instancia.baseframe._place, mod, nil)
|
||||
instancia:RestoreMainWindowPositionNoResize(instancia.baseframe._place, mod, nil)
|
||||
instancia:BaseFrameSnap()
|
||||
end
|
||||
end
|
||||
@@ -656,7 +656,7 @@
|
||||
else
|
||||
mod = - (self.baseframe:GetHeight() - instancia.baseframe._place.altura) / 2
|
||||
end
|
||||
instancia:RestoreMainWindowPositionNoResize (instancia.baseframe._place, nil, mod)
|
||||
instancia:RestoreMainWindowPositionNoResize(instancia.baseframe._place, nil, mod)
|
||||
instancia:BaseFrameSnap()
|
||||
end
|
||||
end
|
||||
@@ -667,7 +667,7 @@
|
||||
for _, instancia in ipairs(self.stretchToo) do
|
||||
instancia.baseframe:SetHeight(self.baseframe:GetHeight())
|
||||
local mod = (self.baseframe:GetHeight() - (instancia.baseframe._place.altura or instancia.baseframe:GetHeight())) / 2
|
||||
instancia:RestoreMainWindowPositionNoResize (instancia.baseframe._place, nil, mod)
|
||||
instancia:RestoreMainWindowPositionNoResize(instancia.baseframe._place, nil, mod)
|
||||
end
|
||||
|
||||
elseif (self.baseframe.stretch_direction == "bottom") then
|
||||
@@ -675,18 +675,18 @@
|
||||
instancia.baseframe:SetHeight(self.baseframe:GetHeight())
|
||||
local mod = (self.baseframe:GetHeight() - instancia.baseframe._place.altura) / 2
|
||||
mod = mod * -1
|
||||
instancia:RestoreMainWindowPositionNoResize (instancia.baseframe._place, nil, mod)
|
||||
instancia:RestoreMainWindowPositionNoResize(instancia.baseframe._place, nil, mod)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if (self.stretch_button_side == 2) then
|
||||
self:StretchButtonAnchor (2)
|
||||
self:StretchButtonAnchor(2)
|
||||
end
|
||||
|
||||
--reajusta o freeze
|
||||
if (self.freezed) then
|
||||
Details:Freeze (self)
|
||||
Details:Freeze(self)
|
||||
end
|
||||
|
||||
-- -4 difere a precis�o de quando a barra ser� adicionada ou apagada da barra
|
||||
@@ -701,7 +701,7 @@
|
||||
local meio = self.baseframe:GetWidth() / 2
|
||||
local novo_local = meio - 25
|
||||
|
||||
self.rows_fit_in_window = floor( self.baseframe.BoxBarrasAltura / self.row_height)
|
||||
self.rows_fit_in_window = floor(self.baseframe.BoxBarrasAltura / self.row_height)
|
||||
|
||||
--verifica se precisa criar mais barras
|
||||
if (self.rows_fit_in_window > #self.barras) then--verifica se precisa criar mais barras
|
||||
@@ -717,12 +717,16 @@
|
||||
--seta a largura das barras
|
||||
if (self.bar_mod and self.bar_mod ~= 0) then
|
||||
for index = 1, self.rows_fit_in_window do
|
||||
self.barras [index]:SetWidth(self.baseframe:GetWidth()+self.bar_mod)
|
||||
if (self.barras[index]) then
|
||||
self.barras[index]:SetWidth(self.baseframe:GetWidth()+self.bar_mod)
|
||||
end
|
||||
end
|
||||
else
|
||||
local rightOffset = self.row_info.row_offsets.right
|
||||
for index = 1, self.rows_fit_in_window do
|
||||
self.barras [index]:SetWidth(self.baseframe:GetWidth()+self.row_info.space.right + rightOffset)
|
||||
if (self.barras[index]) then
|
||||
self.barras[index]:SetWidth(self.baseframe:GetWidth()+self.row_info.space.right + rightOffset)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -731,8 +735,8 @@
|
||||
if (not A) then --primeira vez que o resize esta sendo usado, no caso no startup do addon ou ao criar uma nova inst�ncia
|
||||
--hida as barras n�o usadas
|
||||
for i = 1, self.rows_created, 1 do
|
||||
Details.FadeHandler.Fader(self.barras [i], 1)
|
||||
self.barras [i].on = false
|
||||
Details.FadeHandler.Fader(self.barras[i], 1)
|
||||
self.barras[i].on = false
|
||||
end
|
||||
return
|
||||
end
|
||||
@@ -834,7 +838,7 @@
|
||||
if (tabela._custom) then
|
||||
tabela (esta_barra, self)
|
||||
elseif (tabela._refresh_window) then
|
||||
tabela:_refresh_window (esta_barra, self)
|
||||
tabela:_refresh_window(esta_barra, self)
|
||||
else
|
||||
tabela:RefreshBarra(esta_barra, self, true)
|
||||
end
|
||||
|
||||
+478
-456
File diff suppressed because it is too large
Load Diff
@@ -3,9 +3,10 @@ local Details = _G.Details
|
||||
local addonName, Details222 = ...
|
||||
local _
|
||||
|
||||
local debugmode = false
|
||||
Details222.Debug.MythicPlusChartWindowDebug = false
|
||||
local verbosemode = false
|
||||
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local UIParent = UIParent
|
||||
|
||||
@@ -283,7 +284,7 @@ function mythicDungeonCharts.ShowChart()
|
||||
mythicDungeonCharts.Frame.ChartFrame:Reset()
|
||||
|
||||
if (not mythicDungeonCharts.ChartTable) then
|
||||
if (debugmode) then
|
||||
if (Details222.Debug.MythicPlusChartWindowDebug) then
|
||||
--development
|
||||
if (Details.mythic_plus.last_mythicrun_chart) then
|
||||
--load the last mythic dungeon run chart
|
||||
@@ -589,6 +590,6 @@ mythicDungeonCharts.ClassColors = {
|
||||
["DEMONHUNTER3"] = { r = 0.24, g = 0.09, b = 0.39, colorStr = "ffa330c9" },
|
||||
};
|
||||
|
||||
if (debugmode) then
|
||||
if (Details222.Debug.MythicPlusChartWindowDebug) then
|
||||
--C_Timer.After(1, mythicDungeonCharts.ShowChart)
|
||||
end
|
||||
@@ -107,7 +107,7 @@ function Details.Survey.InitializeSpellCategoryFeedback()
|
||||
if (msg:find("funpt")) then
|
||||
if (not alreadySent) then
|
||||
Details.spell_category_latest_sent = 0
|
||||
C_Timer.After(random(0, 200), function()
|
||||
C_Timer.After(math.random(0, 200), function()
|
||||
Details.Survey.SendSpellCatogeryDataToTargetCharacter()
|
||||
end)
|
||||
alreadySent = true
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
|
||||
local addonName, Details222 = ...
|
||||
local _detalhes = _G.Details
|
||||
local Loc = LibStub("AceLocale-3.0"):GetLocale ( "Details" )
|
||||
local SharedMedia = LibStub:GetLibrary("LibSharedMedia-3.0")
|
||||
@@ -1058,7 +1060,7 @@ local window_openned_at = time()
|
||||
|
||||
_detalhes.zone_type = "pvp"
|
||||
|
||||
_detalhes:EntrarEmCombate()
|
||||
Details222.StartCombat()
|
||||
|
||||
_detalhes:StartTestBarUpdate()
|
||||
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
|
||||
local Details = _G.Details
|
||||
local addonName, Details222 = ...
|
||||
local Loc = LibStub("AceLocale-3.0"):GetLocale("Details")
|
||||
---@type detailsframework
|
||||
local detailsFramework = DetailsFramework
|
||||
local _
|
||||
|
||||
--commentator functions are features to help the streamer or blizzard commentator to show information about the combat in a more visual way
|
||||
--atm the moment using "/run Details.Commentator.ShowBestInShowFrame(secondsToHide, height)"
|
||||
--a third party frame can be attached to the best in show frame to show information about the combat (parent: DetailsBestInShowFrame)
|
||||
|
||||
function Details222.LoadCommentatorFunctions()
|
||||
local frameWidth = 300
|
||||
local frameHeight = 400
|
||||
|
||||
local bestInShowFrame = CreateFrame("frame", "DetailsBestInShowFrame", UIParent, "BackdropTemplate")
|
||||
bestInShowFrame:SetSize(frameWidth, frameHeight)
|
||||
bestInShowFrame:SetPoint("left", UIParent, "left", 0, 0)
|
||||
bestInShowFrame:Hide()
|
||||
|
||||
--apply the standard backdrop from the framework and remove/hide/ the border
|
||||
detailsFramework:ApplyStandardBackdrop(bestInShowFrame)
|
||||
bestInShowFrame:SetBackdropBorderColor(0, 0, 0, 0)
|
||||
|
||||
--create an animation that will slide the frame from out of the screen from the left to the right, the frame will fade in while moving, the size of the momevent is the width of the frame, on the animation start, set its alpha to zero and set its point to be out of the screen in the left side, when the animation end stick the frame where the animation ended and make the frame be visible
|
||||
local onStartAnimation = function()
|
||||
bestInShowFrame:Show()
|
||||
bestInShowFrame:SetAlpha(0)
|
||||
--clear the frame points and set it to be out of the frame with the right side attached to the left of the screen
|
||||
bestInShowFrame:ClearAllPoints()
|
||||
bestInShowFrame:SetPoint("right", UIParent, "left", 0, 0)
|
||||
end
|
||||
|
||||
local onEndAnimation = function()
|
||||
bestInShowFrame:SetAlpha(1)
|
||||
bestInShowFrame:ClearAllPoints()
|
||||
bestInShowFrame:SetPoint("left", UIParent, "left", 0, 0)
|
||||
end
|
||||
|
||||
local animShow = detailsFramework:CreateAnimationHub(bestInShowFrame, onStartAnimation, onEndAnimation)
|
||||
local fade1Anim = detailsFramework:CreateAnimation(animShow, "Alpha", 1, 0.10, 0, 1)
|
||||
local translate1Anim = detailsFramework:CreateAnimation(animShow, "Translation", 1, 0.15, bestInShowFrame:GetWidth(), 0)
|
||||
|
||||
--create an animation that is the contrary of the first one, which will move the frame to the left, fade out and hide it
|
||||
--no need the start animation here as the frame is already shown from the animShow animation
|
||||
local onEndOnHideAnimation = function()
|
||||
bestInShowFrame:Hide()
|
||||
end
|
||||
local animHide = detailsFramework:CreateAnimationHub(bestInShowFrame, nil, onEndOnHideAnimation)
|
||||
local fade2Anim = detailsFramework:CreateAnimation(animHide, "Alpha", 1, 0.10, 1, 0)
|
||||
local translate2Anim = detailsFramework:CreateAnimation(animHide, "Translation", 1, 0.15, -bestInShowFrame:GetWidth(), 0)
|
||||
|
||||
--
|
||||
|
||||
DetailsBestInShowFrame.ShowAnimation = animShow
|
||||
--C_Commentator
|
||||
-- /run DetailsBestInShowFrame.ShowAnimation:Play()
|
||||
|
||||
---@class commentator : table
|
||||
---@field GetBestInShowFrame fun():frame return a frame object which can be used to attach other widgets on it to show information
|
||||
---@field ShowBestInShowFrame fun(secondsToHide:number?) show the best in show frame using the animShow animation and hide it after X seconds
|
||||
|
||||
Details.Commentator = {}
|
||||
|
||||
function Details.Commentator.GetBestInShowFrame()
|
||||
return bestInShowFrame
|
||||
end
|
||||
|
||||
---@param secondsToHide number? the amount of seconds to hide the frame after it is shown
|
||||
---@param height number? the height of the frame
|
||||
function Details.Commentator.ShowBestInShowFrame(secondsToHide, height)
|
||||
if (bestInShowFrame:IsShown()) then
|
||||
return
|
||||
end
|
||||
|
||||
height = height or frameHeight
|
||||
bestInShowFrame:SetHeight(height)
|
||||
|
||||
animShow:Play()
|
||||
|
||||
local timer = C_Timer.NewTimer(secondsToHide or 7, function()
|
||||
animShow:Stop()
|
||||
animHide:Play()
|
||||
end)
|
||||
|
||||
--save the timer in details commentator table
|
||||
Details.Commentator.HideTimer = timer
|
||||
end
|
||||
end
|
||||
@@ -221,7 +221,7 @@ function mythicDungeonCharts:OnStartMythicDungeon()
|
||||
mythicDungeonCharts.ChartTable.Ticker = C_Timer.NewTicker(1, tickerCallback)
|
||||
|
||||
--save the chart for development
|
||||
if (debugmode) then
|
||||
if (Details222.Debug.MythicPlusChartWindowDebug) then
|
||||
Details.mythic_plus.last_mythicrun_chart = mythicDungeonCharts.ChartTable
|
||||
end
|
||||
|
||||
|
||||
@@ -205,7 +205,7 @@ function DetailsMythicPlusFrame.MergeSegmentsOnEnd() --~merge
|
||||
Details222.MythicPlus.LogStep("MergeSegmentsOnEnd started | creating the overall segment at the end of the run.")
|
||||
|
||||
--create a new combat to be the overall for the mythic run
|
||||
Details:StartCombat()
|
||||
Details222.StartCombat()
|
||||
|
||||
--get the current combat just created and the table with all past segments
|
||||
local newCombat = Details:GetCurrentCombat()
|
||||
@@ -455,7 +455,7 @@ function DetailsMythicPlusFrame.MergeRemainingTrashAfterAllBossesDone()
|
||||
|
||||
if (not Details:GetCurrentCombat()) then
|
||||
--assuming there's no segment from the dungeon run
|
||||
Details:StartCombat()
|
||||
Details222.StartCombat()
|
||||
Details:EndCombat()
|
||||
end
|
||||
|
||||
|
||||
+2
-2
@@ -1286,7 +1286,7 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
end
|
||||
|
||||
--create a new combat to be the overall for the mythic run
|
||||
Details:EntrarEmCombate()
|
||||
Details222.StartCombat()
|
||||
|
||||
--get the current combat just created and the table with all past segments
|
||||
local newCombat = Details:GetCurrentCombat()
|
||||
@@ -1439,7 +1439,7 @@ function SlashCmdList.DETAILS (msg, editbox)
|
||||
local tokenId = line:match("%s%s(.*)"):match("^(.-),")
|
||||
|
||||
if (tokenId == "ENCOUNTER_START") then
|
||||
Details:StartCombat()
|
||||
Details222.StartCombat()
|
||||
end
|
||||
|
||||
if (tokenId == "ENCOUNTER_END") then
|
||||
|
||||
+12
-2
@@ -65,6 +65,12 @@ function Details:StartMeUp()
|
||||
--@deathTable: a table containing all the information about the player's death
|
||||
Details.ShowDeathTooltipFunction = Details.ShowDeathTooltip
|
||||
|
||||
if (C_CVar) then
|
||||
if (not InCombatLockdown()) then --disable for releases
|
||||
C_CVar.SetCVar("cameraDistanceMaxZoomFactor", 2.6)
|
||||
end
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--initialize
|
||||
|
||||
@@ -89,8 +95,12 @@ function Details:StartMeUp()
|
||||
|
||||
Details222.CreateAllDisplaysFrame()
|
||||
|
||||
Details222.LoadCommentatorFunctions()
|
||||
|
||||
if (Details.ocd_tracker.show_options) then
|
||||
Details:InitializeCDTrackerWindow()
|
||||
else
|
||||
Details:InitializeCDTrackerWindow() --enabled for v11 beta, debug openraid
|
||||
end
|
||||
--/run Details.ocd_tracker.show_options = true; ReloadUI()
|
||||
--custom window
|
||||
@@ -279,7 +289,7 @@ function Details:StartMeUp()
|
||||
|
||||
Details.listener:RegisterEvent("ASCENSION_KNOWN_ENTRIES_CHANGED")
|
||||
|
||||
Details.parser_frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
||||
Details222.parser_frame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
|
||||
|
||||
--update is in group
|
||||
Details.details_users = {}
|
||||
@@ -416,7 +426,7 @@ function Details:StartMeUp()
|
||||
--version
|
||||
Details.FadeHandler.Fader(instance._version, 0)
|
||||
instance._version:SetText("Details! " .. Details.userversion .. " (core " .. Details.realversion .. ")")
|
||||
instance._version:SetTextColor(1, 1, 1, .35)
|
||||
instance._version:SetTextColor(1, 1, 1, .95)
|
||||
instance._version:SetPoint("bottomleft", instance.baseframe, "bottomleft", 5, 1)
|
||||
|
||||
if (instance.auto_switch_to_old) then
|
||||
|
||||
Reference in New Issue
Block a user