Fixed more bugs on the new Breakdown Window

This commit is contained in:
Tercio Jose
2023-05-01 14:20:04 -03:00
parent 11a6c48ddd
commit 690168bef3
82 changed files with 938 additions and 913 deletions
+52 -52
View File
@@ -15,7 +15,7 @@ function Details:OpenCurrentRealDPSOptions(from_options_panel)
green_team_color = Details.class_colors.ARENA_GREEN --{.5, 1, .5, 1}
yellow_team_color = Details.class_colors.ARENA_YELLOW --{1, 1, .5, 1}
local DF = _detalhes.gump
local DF = Details.gump
local f = DF:CreateSimplePanel(UIParent, 700, 400, "Details! Arena Damage Bar Options", "DetailsCurrentRealDPSOptions")
f:SetPoint("center", UIParent, "center")
@@ -24,10 +24,10 @@ function Details:OpenCurrentRealDPSOptions(from_options_panel)
DF:ApplyStandardBackdrop(f)
--scale bar
local scaleBar = DF:CreateScaleBar(f, _detalhes.realtime_dps_meter.options_frame)
local scaleBar = DF:CreateScaleBar(f, Details.realtime_dps_meter.options_frame)
local LibWindow = LibStub("LibWindow-1.1")
LibWindow.RegisterConfig(f, _detalhes.realtime_dps_meter.options_frame)
LibWindow.RegisterConfig(f, Details.realtime_dps_meter.options_frame)
LibWindow.MakeDraggable(f)
LibWindow.RestorePosition(f)
@@ -282,9 +282,9 @@ function Details:OpenCurrentRealDPSOptions(from_options_panel)
{
type = "range",
get = function() return _detalhes.realtime_dps_meter.text_offset end,
get = function() return Details.realtime_dps_meter.text_offset end,
set = function(self, fixedparam, value)
_detalhes.realtime_dps_meter.text_offset = value
Details.realtime_dps_meter.text_offset = value
Details:UpdateTheRealCurrentDPSFrame(testUsing)
end,
min = 0,
@@ -335,7 +335,7 @@ end
function Details:CreateCurrentDpsFrame(parent, name)
local DF = _detalhes.gump
local DF = Details.gump
local SharedMedia = LibStub:GetLibrary("LibSharedMedia-3.0")
green_team_color = Details.class_colors.ARENA_GREEN --{.5, 1, .5, 1}
@@ -348,10 +348,10 @@ function Details:CreateCurrentDpsFrame(parent, name)
--main farame
local f = CreateFrame("frame", name, parent or UIParent, "BackdropTemplate")
f:SetPoint("top", UIParent, "top", 0, -110)
f:SetSize(_detalhes.realtime_dps_meter.frame_settings.width, _detalhes.realtime_dps_meter.frame_settings.height)
f:SetSize(Details.realtime_dps_meter.frame_settings.width, Details.realtime_dps_meter.frame_settings.height)
f:SetBackdrop({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tile = true, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}})
f:SetBackdropColor(unpack(_detalhes.realtime_dps_meter.frame_settings.backdrop_color))
f:SetBackdropColor(unpack(Details.realtime_dps_meter.frame_settings.backdrop_color))
f:EnableMouse(true)
f:SetMovable(true)
f:SetClampedToScreen(true)
@@ -376,7 +376,7 @@ function Details:CreateCurrentDpsFrame(parent, name)
f.PlayerTeam = 0
local LibWindow = LibStub("LibWindow-1.1")
LibWindow.RegisterConfig(f, _detalhes.realtime_dps_meter.frame_settings)
LibWindow.RegisterConfig(f, Details.realtime_dps_meter.frame_settings)
LibWindow.MakeDraggable(f)
LibWindow.RestorePosition(f)
@@ -525,7 +525,7 @@ function Details:CreateCurrentDpsFrame(parent, name)
--update
local time_fraction = 100/1000 --one tick per 100ms
f.NextUpdate = time_fraction --when the next tick occur
f.NextScreenUpdate = _detalhes.realtime_dps_meter.update_interval --when the labels on the frame receive update
f.NextScreenUpdate = Details.realtime_dps_meter.update_interval --when the labels on the frame receive update
--arena
f.PlayerTeamBuffer = {}
@@ -541,23 +541,23 @@ function Details:CreateCurrentDpsFrame(parent, name)
f.LastTickGroupDamage = 0
--general
f.SampleSize = _detalhes.realtime_dps_meter.sample_size
f.SampleSize = Details.realtime_dps_meter.sample_size
f.MaxBufferIndex = 1
f.ShowingArena = false
function _detalhes:UpdateTheRealCurrentDPSFrame(scenario)
function Details:UpdateTheRealCurrentDPSFrame(scenario)
--don't run if the featured hasn't loaded
if (not f) then
return
end
if (not _detalhes.realtime_dps_meter.enabled) then
if (not Details.realtime_dps_meter.enabled) then
f:Hide()
--print("D! debug currentdps.lua > !realtime_dps_meter.enabled")
return
end
if (not _detalhes.realtime_dps_meter.arena_enabled and not _detalhes.realtime_dps_meter.mythic_dungeon_enabled) then
if (not Details.realtime_dps_meter.arena_enabled and not Details.realtime_dps_meter.mythic_dungeon_enabled) then
f:Hide()
print("D! debug currentdps.lua > not _detalhes.realtime_dps_meter.arena_enabled and not _detalhes.realtime_dps_meter.mythic_dungeon_enabled")
return
@@ -566,21 +566,21 @@ function Details:CreateCurrentDpsFrame(parent, name)
--where the player are
if (scenario == "arena") then
f.SampleSize = _detalhes.realtime_dps_meter.sample_size
f.SampleSize = Details.realtime_dps_meter.sample_size
labelPlayerTeam_DPS:Show()
labelYellowTeam_DPS:Show()
--update arena labels
DF:SetFontColor(labelPlayerTeam_DPS, _detalhes.realtime_dps_meter.font_color)
DF:SetFontFace (labelPlayerTeam_DPS, _detalhes.realtime_dps_meter.font_face)
DF:SetFontSize(labelPlayerTeam_DPS, _detalhes.realtime_dps_meter.font_size)
DF:SetFontOutline (labelPlayerTeam_DPS, _detalhes.realtime_dps_meter.font_shadow)
DF:SetFontColor(labelPlayerTeam_DPS, Details.realtime_dps_meter.font_color)
DF:SetFontFace (labelPlayerTeam_DPS, Details.realtime_dps_meter.font_face)
DF:SetFontSize(labelPlayerTeam_DPS, Details.realtime_dps_meter.font_size)
DF:SetFontOutline (labelPlayerTeam_DPS, Details.realtime_dps_meter.font_shadow)
DF:SetFontColor(labelYellowTeam_DPS, _detalhes.realtime_dps_meter.font_color)
DF:SetFontFace (labelYellowTeam_DPS, _detalhes.realtime_dps_meter.font_face)
DF:SetFontSize(labelYellowTeam_DPS, _detalhes.realtime_dps_meter.font_size)
DF:SetFontOutline (labelYellowTeam_DPS, _detalhes.realtime_dps_meter.font_shadow)
DF:SetFontColor(labelYellowTeam_DPS, Details.realtime_dps_meter.font_color)
DF:SetFontFace (labelYellowTeam_DPS, Details.realtime_dps_meter.font_face)
DF:SetFontSize(labelYellowTeam_DPS, Details.realtime_dps_meter.font_size)
DF:SetFontOutline (labelYellowTeam_DPS, Details.realtime_dps_meter.font_shadow)
--wipe current data for arena
wipe (f.PlayerTeamBuffer)
@@ -616,10 +616,10 @@ function Details:CreateCurrentDpsFrame(parent, name)
labelGroupDamage:Show()
labelGroupDamage_DPS:Show()
DF:SetFontColor(labelGroupDamage_DPS, _detalhes.realtime_dps_meter.font_color)
DF:SetFontFace (labelGroupDamage_DPS, _detalhes.realtime_dps_meter.font_face)
DF:SetFontSize(labelGroupDamage_DPS, _detalhes.realtime_dps_meter.font_size)
DF:SetFontOutline (labelGroupDamage_DPS, _detalhes.realtime_dps_meter.font_shadow)
DF:SetFontColor(labelGroupDamage_DPS, Details.realtime_dps_meter.font_color)
DF:SetFontFace (labelGroupDamage_DPS, Details.realtime_dps_meter.font_face)
DF:SetFontSize(labelGroupDamage_DPS, Details.realtime_dps_meter.font_size)
DF:SetFontOutline (labelGroupDamage_DPS, Details.realtime_dps_meter.font_shadow)
--wipe current data for mythic dungeon
f.GroupBuffer = {}
@@ -641,25 +641,25 @@ function Details:CreateCurrentDpsFrame(parent, name)
end
--frame position
f:SetSize(_detalhes.realtime_dps_meter.frame_settings.width, _detalhes.realtime_dps_meter.frame_settings.height)
LibWindow.RegisterConfig(f, _detalhes.realtime_dps_meter.frame_settings)
f:SetSize(Details.realtime_dps_meter.frame_settings.width, Details.realtime_dps_meter.frame_settings.height)
LibWindow.RegisterConfig(f, Details.realtime_dps_meter.frame_settings)
LibWindow.RestorePosition(f)
--backdrop color
f:SetBackdropColor(unpack(_detalhes.realtime_dps_meter.frame_settings.backdrop_color))
f:SetBackdropColor(unpack(Details.realtime_dps_meter.frame_settings.backdrop_color))
--set frame size
f:SetSize(_detalhes.realtime_dps_meter.frame_settings.width, _detalhes.realtime_dps_meter.frame_settings.height)
f:SetSize(Details.realtime_dps_meter.frame_settings.width, Details.realtime_dps_meter.frame_settings.height)
--frame is locked
if (_detalhes.realtime_dps_meter.frame_settings.locked) then
if (Details.realtime_dps_meter.frame_settings.locked) then
f:EnableMouse(false)
else
f:EnableMouse(true)
end
--frame can show title
if (_detalhes.realtime_dps_meter.frame_settings.show_title) then
if (Details.realtime_dps_meter.frame_settings.show_title) then
TitleString:Show()
TitleBackground:Show()
else
@@ -668,27 +668,27 @@ function Details:CreateCurrentDpsFrame(parent, name)
end
--frame strata
f:SetFrameStrata(_detalhes.realtime_dps_meter.frame_settings.strata)
f:SetFrameStrata(Details.realtime_dps_meter.frame_settings.strata)
--calcule buffer size
f.MaxBufferIndex = f.SampleSize * time_fraction * 100 --sample size in seconds * fraction * tick milliseconds
--interval to update the frame
f.NextScreenUpdate = _detalhes.realtime_dps_meter.update_interval
f.NextScreenUpdate = Details.realtime_dps_meter.update_interval
labelPlayerTeam_DPS:SetPoint("left", barFrame.splitBar.widget, "left", 4 + _detalhes.realtime_dps_meter.text_offset, 0)
labelYellowTeam_DPS:SetPoint("right", barFrame.splitBar.widget, "right", -4 - _detalhes.realtime_dps_meter.text_offset, 0)
labelPlayerTeam_DPS:SetPoint("left", barFrame.splitBar.widget, "left", 4 + Details.realtime_dps_meter.text_offset, 0)
labelYellowTeam_DPS:SetPoint("right", barFrame.splitBar.widget, "right", -4 - Details.realtime_dps_meter.text_offset, 0)
end
_detalhes:UpdateTheRealCurrentDPSFrame()
Details:UpdateTheRealCurrentDPSFrame()
local on_tick = function(self, deltaTime)
self.NextUpdate = self.NextUpdate - deltaTime
if (self.NextUpdate <= 0) then
--update string
local currentCombat = _detalhes:GetCombat()
local currentCombat = Details:GetCombat()
local damageContainer = currentCombat:GetContainer (DETAILS_ATTRIBUTE_DAMAGE)
--show the current dps during an arena match
@@ -708,7 +708,7 @@ function Details:CreateCurrentDpsFrame(parent, name)
thisTickYellowDamage = thisTickYellowDamage + actor.total
end
if (actor.nome == _detalhes.playername) then
if (actor.nome == Details.playername) then
--if player isn't in green team > swap colors
if (f.PlayerTeam ~= actor.arena_team) then
f.SwapArenaTeamColors()
@@ -797,13 +797,13 @@ function Details:CreateCurrentDpsFrame(parent, name)
if (self.NextScreenUpdate <= 0) then
if (f.PlayerTeam == 0) then
labelPlayerTeam_DPS:SetText(_detalhes:ToK2 (self.PlayerTeamDamage / self.SampleSize))
labelYellowTeam_DPS:SetText(_detalhes:ToK2 (self.YellowDamage / self.SampleSize))
labelPlayerTeam_DPS:SetText(Details:ToK2 (self.PlayerTeamDamage / self.SampleSize))
labelYellowTeam_DPS:SetText(Details:ToK2 (self.YellowDamage / self.SampleSize))
else
labelPlayerTeam_DPS:SetText(_detalhes:ToK2 (self.YellowDamage / self.SampleSize))
labelYellowTeam_DPS:SetText(_detalhes:ToK2 (self.PlayerTeamDamage / self.SampleSize))
labelPlayerTeam_DPS:SetText(Details:ToK2 (self.YellowDamage / self.SampleSize))
labelYellowTeam_DPS:SetText(Details:ToK2 (self.PlayerTeamDamage / self.SampleSize))
end
f.NextScreenUpdate = _detalhes.realtime_dps_meter.update_interval
f.NextScreenUpdate = Details.realtime_dps_meter.update_interval
end
elseif (self.ShowingMythicDungeon) then
@@ -843,8 +843,8 @@ function Details:CreateCurrentDpsFrame(parent, name)
self.NextScreenUpdate = self.NextScreenUpdate - time_fraction
if (self.NextScreenUpdate <= 0) then
labelGroupDamage_DPS:SetText(_detalhes:ToK2 (f.GroupTotalDamage / self.SampleSize))
f.NextScreenUpdate = _detalhes.realtime_dps_meter.update_interval
labelGroupDamage_DPS:SetText(Details:ToK2 (f.GroupTotalDamage / self.SampleSize))
f.NextScreenUpdate = Details.realtime_dps_meter.update_interval
end
end
@@ -877,17 +877,17 @@ function Details:CreateCurrentDpsFrame(parent, name)
end
end
local eventListener = _detalhes:CreateEventListener()
local eventListener = Details:CreateEventListener()
function eventListener:ArenaStarted()
if (_detalhes.realtime_dps_meter.arena_enabled) then
if (Details.realtime_dps_meter.arena_enabled) then
--it is working here, f:StartForArenaMatch() is called but the frame is still now shown.
f:StartForArenaMatch()
end
end
function eventListener:MythicDungeonStarted()
if (_detalhes.realtime_dps_meter.mythic_dungeon_enabled) then
if (Details.realtime_dps_meter.mythic_dungeon_enabled) then
f:StartForMythicDungeon()
end
end
@@ -920,8 +920,8 @@ function Details:CreateCurrentDpsFrame(parent, name)
eventListener:RegisterEvent("COMBAT_MYTHICDUNGEON_END", "MythicDungeonEnded")
eventListener:RegisterEvent("COMBAT_PLAYER_ENTER", "ResetBuffer")
_detalhes.Broadcaster_CurrentDpsLoaded = true
_detalhes.Broadcaster_CurrentDpsFrame = f
Details.Broadcaster_CurrentDpsLoaded = true
Details.Broadcaster_CurrentDpsFrame = f
C_Timer.After(1, lockCallback)
f:Hide()
end