From ebe8c496d1aca765e23c9e18ae740b06a8cfcf79 Mon Sep 17 00:00:00 2001 From: Tercio Jose Date: Sun, 27 Nov 2022 15:24:32 -0300 Subject: [PATCH] More fixes --- Details.toc | 2 +- Details_TBC.toc | 1 + Details_Wrath.toc | 3 +- Libs/DF/cooltip.lua | 33 ++++++++- Libs/DF/fw.lua | 2 +- boot.lua | 19 ++++-- classes/class_damage.lua | 14 ++-- classes/class_utility.lua | 2 +- core/control.lua | 26 ++++++- core/parser.lua | 64 ++++++++++++++---- frames/window_playerbreakdown.lua | 28 ++++++-- frames/window_playerbreakdown_list.lua | 46 ++++++++++--- functions/warcraftlogs.lua | 33 ++++++--- images/bar_background.blp | Bin 6156 -> 0 bytes images/bar_background.tga | Bin 0 -> 32786 bytes images/bar_background2.blp | Bin 6135 -> 0 bytes images/bar_background2.tga | Bin 0 -> 24620 bytes images/bar_background_dark.tga | Bin 0 -> 24620 bytes images/bar_detalhes2.blp | Bin 45703 -> 0 bytes images/bar_detalhes2.tga | Bin 0 -> 65580 bytes plugins/Details_Compare2/Details_Compare2.lua | 7 +- startup.lua | 18 ++--- 22 files changed, 233 insertions(+), 65 deletions(-) delete mode 100644 images/bar_background.blp create mode 100644 images/bar_background.tga delete mode 100644 images/bar_background2.blp create mode 100644 images/bar_background2.tga create mode 100644 images/bar_background_dark.tga delete mode 100644 images/bar_detalhes2.blp create mode 100644 images/bar_detalhes2.tga diff --git a/Details.toc b/Details.toc index 7195559f3..68cd3c154 100644 --- a/Details.toc +++ b/Details.toc @@ -1,7 +1,7 @@ ## Interface: 100002 ## Title: Details! Damage Meter ## Notes: Essential tool to impress that chick in your raid. -## SavedVariables: _detalhes_global +## SavedVariables: _detalhes_global, __details_backup ## SavedVariablesPerCharacter: _detalhes_database ## OptionalDeps: Ace3, LibSharedMedia-3.0, LibWindow-1.1, LibDBIcon-1.0, NickTag-1.0, LibDataBroker-1.1, LibGraph-2.0 ## Version: #@project-version@ diff --git a/Details_TBC.toc b/Details_TBC.toc index f6f064c25..b6bc4f398 100644 --- a/Details_TBC.toc +++ b/Details_TBC.toc @@ -57,6 +57,7 @@ functions\plater.lua functions\deathmenu.lua functions\macros.lua functions\testbars.lua +functions\warcraftlogs.lua core\timemachine.lua diff --git a/Details_Wrath.toc b/Details_Wrath.toc index ed6b0b090..320d8de95 100644 --- a/Details_Wrath.toc +++ b/Details_Wrath.toc @@ -1,7 +1,7 @@ ## Interface: 30400 ## Title: Details! Damage Meter ## Notes: Essential tool to impress that chick in your raid. -## SavedVariables: _detalhes_global +## SavedVariables: _detalhes_global, __details_backup ## SavedVariablesPerCharacter: _detalhes_database ## OptionalDeps: Ace3, LibSharedMedia-3.0, LibWindow-1.1, LibDBIcon-1.0, NickTag-1.0, LibDataBroker-1.1, LibItemUpgradeInfo-1.0, LibGroupInSpecT-1.1, LibCompress, LibGraph-2.0 ## Version: #@project-version@ @@ -57,6 +57,7 @@ functions\plater.lua functions\deathmenu.lua functions\macros.lua functions\testbars.lua +functions\warcraftlogs.lua core\timemachine.lua diff --git a/Libs/DF/cooltip.lua b/Libs/DF/cooltip.lua index f31d22a33..d6c5b4ee4 100644 --- a/Libs/DF/cooltip.lua +++ b/Libs/DF/cooltip.lua @@ -162,6 +162,16 @@ function DF:CreateCoolTip() ["SelectedBottomAnchorMod"] = true, ["SelectedLeftAnchorMod"] = true, ["SelectedRightAnchorMod"] = true, + + ["SparkTexture"] = true, + ["SparkHeightOffset"] = true, + ["SparkWidthOffset"] = true, + ["SparkHeight"] = true, + ["SparkWidth"] = true, + ["SparkAlpha"] = true, + ["SparkColor"] = true, + ["SparkPositionXOffset"] = true, + ["SparkPositionYOffset"] = true, } gameCooltip.AliasList = { @@ -548,6 +558,9 @@ function DF:CreateCoolTip() statusbar.spark:SetBlendMode("ADD") statusbar.spark:SetSize(12, 24) statusbar.spark:SetPoint("LEFT", statusbar, "RIGHT", -20, -1) + statusbar.spark.originalWidth = 12 + statusbar.spark.originalHeight = 24 + statusbar.spark.originalTexture = "Interface\\CastingBar\\UI-CastingBar-Spark" statusbar.background = statusbar:CreateTexture("$parent_Background", "ARTWORK") statusbar.background:Hide() @@ -1153,10 +1166,26 @@ function DF:CreateCoolTip() end function gameCooltip:RefreshSpark(menuButton) + local sparkTexture = gameCooltip.OptionsTable.SparkTexture or menuButton.spark.originalTexture + local sparkAlpha = gameCooltip.OptionsTable.SparkAlpha or 1 + local sparkColor = gameCooltip.OptionsTable.SparkColor or "white" + + local sparkWidth = gameCooltip.OptionsTable.SparkWidth or menuButton.spark.originalWidth + local sparkHeight = gameCooltip.OptionsTable.SparkHeight or menuButton.spark.originalHeight + local sparkWidthOffset = gameCooltip.OptionsTable.SparkWidthOffset or 0 + local sparkHeightOffset = gameCooltip.OptionsTable.SparkHeightOffset or 0 + local positionXOffset = gameCooltip.OptionsTable.SparkPositionXOffset or 0 + local positionYOffset = gameCooltip.OptionsTable.SparkPositionYOffset or 0 + + menuButton.spark:SetSize(sparkWidth + sparkWidthOffset, sparkHeight + sparkHeightOffset) + menuButton.spark:SetTexture(sparkTexture) + menuButton.spark:SetVertexColor(DF:ParseColors(sparkColor)) + menuButton.spark:SetAlpha(sparkAlpha) + menuButton.spark:ClearAllPoints() - menuButton.spark:SetPoint("left", menuButton.statusbar, "left", (menuButton.statusbar:GetValue() * (menuButton.statusbar:GetWidth() / 100)) - 5, 0) + menuButton.spark:SetPoint("left", menuButton.statusbar, "left", (menuButton.statusbar:GetValue() * (menuButton.statusbar:GetWidth() / 100)) - 5 + positionXOffset, 0 + positionYOffset) menuButton.spark2:ClearAllPoints() - menuButton.spark2:SetPoint("left", menuButton.statusbar, "left", menuButton.statusbar:GetValue() * (menuButton.statusbar:GetWidth()/100) - 16, 0) + menuButton.spark2:SetPoint("left", menuButton.statusbar, "left", menuButton.statusbar:GetValue() * (menuButton.statusbar:GetWidth()/100) - 16 + positionXOffset, 0 + positionYOffset) end function gameCooltip:StatusBar(menuButton, statusBarSettings) diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index 1ed0abc1f..19e595b89 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -1,6 +1,6 @@ -local dversion = 396 +local dversion = 397 local major, minor = "DetailsFramework-1.0", dversion local DF, oldminor = LibStub:NewLibrary(major, minor) diff --git a/boot.lua b/boot.lua index 30e807b20..2a11b6851 100644 --- a/boot.lua +++ b/boot.lua @@ -6,12 +6,12 @@ local addonName, Details222 = ... local version, build, date, tocversion = GetBuildInfo() - _detalhes.build_counter = 10290 - _detalhes.alpha_build_counter = 10290 --if this is higher than the regular counter, use it instead + _detalhes.build_counter = 10300 + _detalhes.alpha_build_counter = 10300 --if this is higher than the regular counter, use it instead _detalhes.dont_open_news = true _detalhes.game_version = version _detalhes.userversion = version .. " " .. _detalhes.build_counter - _detalhes.realversion = 146 --core version, this is used to check API version for scripts and plugins (see alias below) + _detalhes.realversion = 147 --core version, this is used to check API version for scripts and plugins (see alias below) _detalhes.APIVersion = _detalhes.realversion --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" --simple stirng to show to players @@ -24,6 +24,7 @@ _detalhes.BFACORE = 131 --core version on BFA launch _detalhes.SHADOWLANDSCORE = 143 --core version on Shadowlands launch + _detalhes.DRAGONFLIGHT = 147 --core version on Dragonflight launch Details = _detalhes @@ -54,6 +55,14 @@ --namespace for the player breakdown window Details.PlayerBreakdown = {} + --color namespace + Details222.ColorScheme = { + ["gradient-background"] = {0.1215, 0.1176, 0.1294, 0.8}, + } + + function Details222.ColorScheme.GetColorFor(colorScheme) + return Details222.ColorScheme[colorScheme] + end ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --initialization stuff @@ -69,8 +78,8 @@ do local news = { {"v10.0.2.10277.146", "Nov 18th, 2022"}, "REMINDER: '/details coach' to get damage/healing/deaths in real time as the 21st person (coach) for the next raid tier in dragonflight.", - "", - "New show a time line of spells used by players in the group, Raid Leader: show all attack and defense cooldowns used by the raid.", + "New Compare tab: recreated from scratch, this new Compare has no player limitation, pets merged, bigger lines.", + "New show a time line of spells used by players in the group, Raid Leader: show all attack and defense cooldowns used by the raid (download it now on wago or curseforge).", "Wago: Details! Standalone version is now hosted on addons.wago.io and WowUp.com.", "", diff --git a/classes/class_damage.lua b/classes/class_damage.lua index bc316a609..99288a48a 100644 --- a/classes/class_damage.lua +++ b/classes/class_damage.lua @@ -488,7 +488,7 @@ end ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --damage taken by spell - local byspell_tooltip_background = {value = 100, color = {0.1960, 0.1960, 0.1960, 0.9097}, texture = [[Interface\AddOns\Details\images\bar_background2]]} + local byspell_tooltip_background = {value = 100, color = {0.1960, 0.1960, 0.1960, 0.9097}, texture = [[Interface\AddOns\Details\images\bar_background_dark]]} function Details:ToolTipBySpell (instance, tabela, thisLine, keydown) @@ -5091,7 +5091,7 @@ function atributo_damage:MontaDetalhesDamageDone (spellId, spellLine, instance) end t4[1] = 0 - t4[2] = {p = 100, c = {0.282353, 0.239216, 0.545098, 0.6}} + t4[2] = {p = 100, c = {0.200, 0.576, 0.498, 0.6}} t4[3] = "Spell Empower Average Level: " .. format("%.2f", empowerLevelSum / empowerAmount) t4[4] = "" t4[5] = "" @@ -5100,23 +5100,23 @@ function atributo_damage:MontaDetalhesDamageDone (spellId, spellLine, instance) t4[11] = "" if (level1AverageDamage ~= "0") then - t4[4] = "Level 1 Average: " .. level1AverageDamage .. " (" .. (empowerAmountPerLevel[1] or 0) .. ")" + t4[4] = "Level 1 Avg: " .. level1AverageDamage .. " (" .. (empowerAmountPerLevel[1] or 0) .. ")" end if (level2AverageDamage ~= "0") then - t4[6] = "Level 2 Average: " .. level2AverageDamage .. " (" .. (empowerAmountPerLevel[2] or 0) .. ")" + t4[6] = "Level 2 Avg: " .. level2AverageDamage .. " (" .. (empowerAmountPerLevel[2] or 0) .. ")" end if (level3AverageDamage ~= "0") then - t4[11] = "Level 3 Average: " .. level3AverageDamage .. " (" .. (empowerAmountPerLevel[3] or 0) .. ")" + t4[11] = "Level 3 Avg: " .. level3AverageDamage .. " (" .. (empowerAmountPerLevel[3] or 0) .. ")" end if (level4AverageDamage ~= "0") then - t4[10] = "Level 4 Average: " .. level4AverageDamage .. " (" .. (empowerAmountPerLevel[4] or 0) .. ")" + t4[10] = "Level 4 Avg: " .. level4AverageDamage .. " (" .. (empowerAmountPerLevel[4] or 0) .. ")" end if (level5AverageDamage ~= "0") then - t4[5] = "Level 5 Average: " .. level5AverageDamage .. " (" .. (empowerAmountPerLevel[5] or 0) .. ")" + t4[5] = "Level 5 Avg: " .. level5AverageDamage .. " (" .. (empowerAmountPerLevel[5] or 0) .. ")" end end diff --git a/classes/class_utility.lua b/classes/class_utility.lua index 4e5ed081a..8a7b5b274 100644 --- a/classes/class_utility.lua +++ b/classes/class_utility.lua @@ -295,7 +295,7 @@ function Details.ShowDeathTooltip(instance, lineFrame, combatObject, deathTable) elseif (evType == 4) then --debuff - gameCooltip:AddLine("" .. format("%.1f", eventTime - timeOfDeath) .. "s " .. spellName .. " (" .. source .. ")", "x" .. amount .. AURA_TYPE_DEBUFF .. " (" .. healthPercent .. "%)", 1, "white", "white") + gameCooltip:AddLine("" .. format("%.1f", eventTime - timeOfDeath) .. "s " .. spellName .. " (" .. source .. ")", "x" .. amount .. " " .. AURA_TYPE_DEBUFF .. " (" .. healthPercent .. "%)", 1, "white", "white") gameCooltip:AddIcon(spellIcon) gameCooltip:AddStatusBar(100, 1, barTypeColors.debuff, showSpark) end diff --git a/core/control.lua b/core/control.lua index f5a7e5640..85a168bb0 100644 --- a/core/control.lua +++ b/core/control.lua @@ -1589,6 +1589,30 @@ Details.tooltip.icon_size.W = Details.tooltip.line_height Details.tooltip.icon_size.H = Details.tooltip.line_height + --[[spark options + ["SparkTexture"] = true, + ["SparkHeightOffset"] = true, + ["SparkWidthOffset"] = true, + ["SparkHeight"] = true, + ["SparkWidth"] = true, + ["SparkAlpha"] = true, + ["SparkColor"] = true, + ["SparkPositionXOffset"] = true, + ["SparkPositionYOffset"] = true, + --]] + + useSpark = true + --GameCooltip:SetOption("SparkHeightOffset", 6) + GameCooltip:SetOption("SparkTexture", [[Interface\Buttons\WHITE8X8]]) + GameCooltip:SetOption("SparkWidth", 1) + GameCooltip:SetOption("SparkHeight", 20) + GameCooltip:SetOption("SparkColor", "gray") + GameCooltip:SetOption("SparkAlpha", 0.15) + GameCooltip:SetOption("SparkPositionXOffset", 5) + --GameCooltip:SetOption("SparkAlpha", 0.3) + --GameCooltip:SetOption("SparkPositionXOffset", -2) + + value = value or 100 if (not side) then @@ -1634,7 +1658,7 @@ GameCooltip:Reset() GameCooltip:SetType ("tooltip") - GameCooltip:SetOption("StatusBarTexture", [[Interface\AddOns\Details\images\bar_background]]) + GameCooltip:SetOption("StatusBarTexture", [[Interface\AddOns\Details\images\bar_background_dark]]) GameCooltip:SetOption("TextSize", Details.tooltip.fontsize) GameCooltip:SetOption("TextFont", Details.tooltip.fontface) diff --git a/core/parser.lua b/core/parser.lua index 7f0a59428..2cfb37224 100755 --- a/core/parser.lua +++ b/core/parser.lua @@ -241,6 +241,11 @@ --Seal of Command [20424] = 69403, --53739 and 53733 + + --odyn's fury warrior + [385062] = 385059, + [385061] = 385059, + [385060] = 385059, } else --retail @@ -5161,7 +5166,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 if (not isWOTLK) then C_Timer.After(1, function() if (Details.show_warning_id1) then - if (Details.show_warning_id1_amount < 10) then + if (Details.show_warning_id1_amount < 2) then Details.show_warning_id1_amount = Details.show_warning_id1_amount + 1 Details:Msg("|cFFFFFF00you might find differences on damage done, this is due to a bug in the game client, nothing related to Details! itself (" .. Details.show_warning_id1_amount .. " / 10).") end @@ -5276,7 +5281,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 if (not isWOTLK) then C_Timer.After(1, function() if (Details.show_warning_id1) then - if (Details.show_warning_id1_amount < 10) then + if (Details.show_warning_id1_amount < 2) then Details.show_warning_id1_amount = Details.show_warning_id1_amount + 1 Details:Msg("|cFFFFFF00you may find differences on damage done, this is due to a bug in the game client, nothing related to Details! itself (" .. Details.show_warning_id1_amount .. " / 10).") end @@ -6021,18 +6026,34 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 local saver = CreateFrame("frame", nil, UIParent) saver:RegisterEvent("PLAYER_LOGOUT") saver:SetScript("OnEvent", function(...) + __details_backup = __details_backup or { + _exit_error = {}, + _instance_backup = {}, + } + local exitErrors = __details_backup._exit_error + + local addToExitErrors = function(text) + table.insert(exitErrors, 1, text) + table.remove(exitErrors, 10) + end + + local currentStep = "" + --save the time played on this class, run protected - pcall(function() + local savePlayTimeClass, savePlayTimeError = pcall(function() Details.SavePlayTimeOnClass() end) - local currentStep = 0 + if (not savePlayTimeClass) then + addToExitErrors("Saving Play Time:" .. savePlayTimeError) + end --SAVINGDATA = true _detalhes_global.exit_log = {} _detalhes_global.exit_errors = _detalhes_global.exit_errors or {} currentStep = "Checking the framework integrity" + if (not _detalhes.gump) then --failed to load the framework tinsert(_detalhes_global.exit_log, "The framework wasn't in Details member 'gump'.") @@ -6041,9 +6062,14 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 end local saver_error = function(errortext) - _detalhes_global = _detalhes_global or {} - tinsert(_detalhes_global.exit_errors, 1, currentStep .. "|" .. date() .. "|" .. _detalhes.userversion .. "|" .. errortext .. "|" .. debugstack()) - tremove(_detalhes_global.exit_errors, 6) + --if the error log cause an error? + local writeLog = function() + _detalhes_global = _detalhes_global or {} + tinsert(_detalhes_global.exit_errors, 1, currentStep .. "|" .. date() .. "|" .. _detalhes.userversion .. "|" .. errortext .. "|" .. debugstack()) + tremove(_detalhes_global.exit_errors, 6) + addToExitErrors(currentStep .. "|" .. date() .. "|" .. _detalhes.userversion .. "|" .. errortext .. "|" .. debugstack()) + end + xpcall(writeLog, addToExitErrors) end _detalhes.saver_error_func = saver_error @@ -6058,17 +6084,24 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 --do not save window pos if (_detalhes.tabela_instancias) then - currentStep = "Dealing With Instances" - tinsert(_detalhes_global.exit_log, "2 - Clearing user place from instances.") - for id, instance in _detalhes:ListInstances() do - if (id) then - tinsert(_detalhes_global.exit_log, " - " .. id .. " has baseFrame: " .. (instance.baseframe and "yes" or "no") .. ".") - if (instance.baseframe) then - instance.baseframe:SetUserPlaced (false) - instance.baseframe:SetDontSavePosition (true) + local clearInstances = function() + currentStep = "Dealing With Instances" + tinsert(_detalhes_global.exit_log, "2 - Clearing user place from instances.") + for id, instance in _detalhes:ListInstances() do + if (id) then + tinsert(_detalhes_global.exit_log, " - " .. id .. " has baseFrame: " .. (instance.baseframe and "yes" or "no") .. ".") + if (instance.baseframe) then + instance.baseframe:SetUserPlaced (false) + instance.baseframe:SetDontSavePosition (true) + end end end end + xpcall(clearInstances, saver_error) + else + tinsert(_detalhes_global.exit_errors, 1, "not _detalhes.tabela_instancias") + tremove(_detalhes_global.exit_errors, 6) + addToExitErrors("not _detalhes.tabela_instancias") end --leave combat start save tables @@ -6087,6 +6120,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 if (_detalhes.wipe_full_config) then tinsert(_detalhes_global.exit_log, "5 - Is a full config wipe.") + addToExitErrors("true: _detalhes.wipe_full_config") _detalhes_global = nil _detalhes_database = nil return diff --git a/frames/window_playerbreakdown.lua b/frames/window_playerbreakdown.lua index c0d2b8ffd..aa0a2e6a6 100644 --- a/frames/window_playerbreakdown.lua +++ b/frames/window_playerbreakdown.lua @@ -66,6 +66,14 @@ info.currentTabsInUse = {} --self = instancia --jogador = classe_damage ou classe_heal +do + local gradientStartColor = Details222.ColorScheme.GetColorFor("gradient-background") + local gradientUp = DetailsFramework:CreateTexture(info, {gradient = "vertical", fromColor = "transparent", toColor = gradientStartColor}, 1, 300, "artwork", {0, 1, 0, 1}) + gradientUp:SetPoint("tops", 1, 1) + local gradientDown = DetailsFramework:CreateTexture(info, {gradient = "vertical", fromColor = gradientStartColor, toColor = "transparent"}, 1, 50, "artwork", {0, 1, 0, 1}) + gradientDown:SetPoint("bottoms") +end + function Details:GetBreakdownTabsInUse() return info.currentTabsInUse end @@ -619,7 +627,9 @@ function gump:CriaDetalheInfo(index) spellInfoBlock.GetFrame = getFrameFromDetailInfoBlock spellInfoBlock.bg = CreateFrame("StatusBar", "DetailsPlayerDetailsWindow_DetalheInfoBG" .. index, _detalhes.playerDetailWindow.container_detalhes, "BackdropTemplate") - spellInfoBlock.bg:SetStatusBarTexture("Interface\\AddOns\\Details\\images\\bar_detalhes2") + --spellInfoBlock.bg:SetStatusBarTexture("") --Interface\\AddOns\\Details\\images\\bar_detalhes2 + --bar_detalhes2 bar_background + spellInfoBlock.bg:SetStatusBarTexture("Interface\\AddOns\\Details\\images\\bar_background") --Interface\\AddOns\\Details\\images\\bar_detalhes2 spellInfoBlock.bg:SetStatusBarColor(1, 1, 1, .84) spellInfoBlock.bg:SetMinMaxValues(0, 100) spellInfoBlock.bg:SetValue(100) @@ -655,7 +665,7 @@ function gump:CriaDetalheInfo(index) spellInfoBlock.bg.reportar:SetScript("OnLeave", detalhes_inforeport_onleave) spellInfoBlock.bg_end = spellInfoBlock.bg:CreateTexture("DetailsPlayerDetailsWindow_DetalheInfoBG_bg_end" .. index, "BACKGROUND") - spellInfoBlock.bg_end:SetHeight(47) + spellInfoBlock.bg_end:SetHeight(40) spellInfoBlock.bg_end:SetTexture("Interface\\AddOns\\Details\\images\\bar_detalhes2_end") _detalhes.playerDetailWindow.grupos_detalhes[index] = spellInfoBlock @@ -749,7 +759,7 @@ function gump:SetaDetalheInfoAltura(index, xmod, ymod) spellInfoBlock.bg:SetWidth(background:GetWidth()) spellInfoBlock.bg_end:SetPoint("LEFT", spellInfoBlock.bg, "LEFT", spellInfoBlock.bg:GetValue()*2.19, 0) - spellInfoBlock.bg_end:SetHeight(background:GetHeight()+2) + spellInfoBlock.bg_end:SetHeight(background:GetHeight()-2) spellInfoBlock.bg_end:SetWidth(6) spellInfoBlock.bg_end:SetAlpha(.75) @@ -1211,7 +1221,7 @@ local default_skin = function() end --info container - info:SetDetailInfoConfigs("Interface\\AddOns\\Details\\images\\bar_detalhes2", {1, 1, 1, 0.5}, 0, 0) + info:SetDetailInfoConfigs("Interface\\AddOns\\Details\\images\\bar_background_dark_dark", {1, 1, 1, 0.5}, 0, 0) window.bg1_sec_texture:SetPoint("topleft", window.bg1, "topleft", 348, -86) window.bg1_sec_texture:SetHeight(262) @@ -1441,7 +1451,7 @@ local elvui_skin = function() end --seta configs dos 5 blocos da direita - info:SetDetailInfoConfigs("Interface\\AddOns\\Details\\images\\bar_serenity", {1, 1, 1, 0.35}, -6 + 100, 0) + info:SetDetailInfoConfigs("Interface\\AddOns\\Details\\images\\bar_background_dark", {1, 1, 1, 0.35}, -6 + 100, 0) window.bg1_sec_texture:SetPoint("topleft", window.bg1, "topleft", 446, -86) window.bg1_sec_texture:SetWidth(337) @@ -1818,6 +1828,9 @@ function gump:CriaJanelaInfo() right_background1:SetSize(220, 43) Details.gump:ApplyStandardBackdrop(right_background1) este_gump ["right_background" .. i] = right_background1 + + local gradientDown = DetailsFramework:CreateTexture(right_background1, {gradient = "vertical", fromColor = {0, 0, 0, 0.1}, toColor = "transparent"}, 1, 43, "artwork", {0, 1, 0, 1}) + gradientDown:SetPoint("bottoms") end -- fundos especiais de friendly fire e outros @@ -2927,6 +2940,11 @@ function gump:CriaJanelaInfo() DF:ReskinSlider(debuffScroll) tab.DebuffScroll = debuffScroll + + if (not frame.__background) then + DetailsFramework:ApplyStandardBackdrop(frame) + frame.__background:SetAlpha(0.6) + end end local auras_tab_fill = function(tab, player, combat) diff --git a/frames/window_playerbreakdown_list.lua b/frames/window_playerbreakdown_list.lua index 602a785e6..d3c4694c8 100644 --- a/frames/window_playerbreakdown_list.lua +++ b/frames/window_playerbreakdown_list.lua @@ -1,7 +1,7 @@ local Details = _G.Details local detailsFramework = _G.DetailsFramework - local openRaidLib = LibStub:GetLibrary("LibOpenRaid-1.0") + local openRaidLib = LibStub:GetLibrary("LibOpenRaid-1.0", true) local addonName, Details222 = ... local breakdownWindowPlayerList = {} @@ -49,6 +49,7 @@ if (playerObject) then local line = self:GetLine(i) line.playerObject = playerObject + line.combatObject = combatObject line.index = index line:UpdateLine(topResult, encounterId, difficultyId) end @@ -124,7 +125,7 @@ self.roleIcon:SetTexture("") end - local playerGear = openRaidLib.GetUnitGear(self.playerObject.nome) + local playerGear = openRaidLib and openRaidLib.GetUnitGear(self.playerObject.nome) --do not show the role icon self.roleIcon:SetTexture("") --not in use @@ -141,17 +142,26 @@ local actorSpecId = self.playerObject.spec local actorTotal = self.playerObject.total + local combatObject = self.combatObject --warcraftlogs percentile if (self.playerObject.tipo == DETAILS_ATTRIBUTE_DAMAGE) then - local parcePercent = Details222.WarcraftLogs.GetDamageParsePercent(encounterId, difficultyId, actorSpecId, actorTotal) - if (parcePercent) then - self.percentileText:SetText(math.floor(parcePercent)) + local actorDPS = self.playerObject.total / combatObject:GetCombatTime() + + local parsePercent = Details222.WarcraftLogs.GetDamageParsePercent(encounterId, difficultyId, actorSpecId, actorDPS) + if (parsePercent) then + parsePercent = math.floor(parsePercent) + local colorName = Details222.WarcraftLogs.GetParseColor(parsePercent) + self.percentileText:SetTextColor(detailsFramework:ParseColors(colorName)) + self.percentileText:SetText(math.floor(parsePercent)) self.percentileText.alpha = 1 else - parcePercent = Details222.ParsePercent.GetPercent(DETAILS_ATTRIBUTE_DAMAGE, difficultyId, encounterId, actorSpecId, actorTotal) - if (parcePercent) then - self.percentileText:SetText(math.floor(parcePercent)) + parsePercent = Details222.ParsePercent.GetPercent(DETAILS_ATTRIBUTE_DAMAGE, difficultyId, encounterId, actorSpecId, actorDPS) + if (parsePercent) then + parsePercent = math.floor(parsePercent) + local colorName = Details222.WarcraftLogs.GetParseColor(parsePercent) + self.percentileText:SetTextColor(detailsFramework:ParseColors(colorName)) + self.percentileText:SetText(math.floor(parsePercent)) self.percentileText.alpha = 1 else self.percentileText:SetText("#.def") @@ -225,6 +235,7 @@ playerName.outline = fontOutline end + --~create playerName.textcolor = {1, 1, 1, .9} local className = detailsFramework:CreateLabel(upFrame, "", "GameFontNormal") @@ -244,7 +255,7 @@ rankText.textsize = fontSize local totalStatusBar = CreateFrame("statusbar", nil, line) - totalStatusBar:SetSize(scrollbox_size[1]-19-player_line_height, 4) + totalStatusBar:SetSize(scrollbox_size[1]-player_line_height, 4) totalStatusBar:SetMinMaxValues(0, 100) totalStatusBar:SetStatusBarTexture([[Interface\AddOns\Details\images\bar_skyline]]) totalStatusBar:SetFrameLevel(line:GetFrameLevel()+1) @@ -297,6 +308,11 @@ f.Header:SetPoint("topleft", playerScroll, "topleft", 0, -1) f.Header:SetPoint("topright", playerScroll, "topright", 0, -1) + detailsFramework:ApplyStandardBackdrop(f.Header) + f.Header.__background:SetColorTexture(.60, .60, .60) + + --print(f.Header:GetSize()) + local playerSelectionLabel = detailsFramework:CreateLabel(playerScroll, "click to select a player", 14) playerSelectionLabel:SetPoint("bottom", playerScroll, "bottom", 0, 7) @@ -367,6 +383,18 @@ f:HookScript("OnShow", function() Details:UpdateBreakdownPlayerList() end) + + f:HookScript("OnHide", function() + for lineIndex, line in ipairs(f.playerScrollBox:GetLines()) do + line.playerObject = nil + line.combatObject = nil + end + end) + + local gradientStartColor = Details222.ColorScheme.GetColorFor("gradient-background") + local gradientBelow = DetailsFramework:CreateTexture(f.playerScrollBox, + {gradient = "vertical", fromColor = gradientStartColor, toColor = "transparent"}, 1, 90, "artwork", {0, 1, 0, 1}) + gradientBelow:SetPoint("bottoms", 1, 1) end function Details.PlayerBreakdown.CreatePlayerListFrame() diff --git a/functions/warcraftlogs.lua b/functions/warcraftlogs.lua index 86a1fc231..c23fa4459 100644 --- a/functions/warcraftlogs.lua +++ b/functions/warcraftlogs.lua @@ -1,11 +1,9 @@ local Details = _G.Details local detailsFramework = _G.DetailsFramework - local openRaidLib = LibStub:GetLibrary("LibOpenRaid-1.0") + local openRaidLib = LibStub:GetLibrary("LibOpenRaid-1.0", true) local addonName, Details222 = ... - local specIdToClassId = {} - --wrap warcraftlogs addon api Details222.WarcraftLogs = {} --namespace @@ -15,6 +13,27 @@ return WarcraftLogs end + function Details222.WarcraftLogs.GetParseColor(percent) + if (percent == 100) then + return "moccasin" + + elseif (percent >= 91) then + return "palevioletred" + + elseif (percent >= 70) then + return "blueviolet" + + elseif (percent >= 50) then + return "SHAMAN" + + elseif (percent >= 30) then + return "lime" + + else + return "gray" + end + end + function Details222.WarcraftLogs.GetPlayerProfile(actorObject) local playerName, playerRealm = actorObject:Name():match("(%w+)%-(%w+)") @@ -93,8 +112,8 @@ end --details wrap - function Details222.WarcraftLogs.GetDamageParsePercent(encounterId, difficultyId, specId, damageDone) - local classId = LIB_OPEN_RAID_SPECID_TO_CLASSID[specId] + function Details222.WarcraftLogs.GetDamageParsePercent(encounterId, difficultyId, specId, amount) + local classId = LIB_OPEN_RAID_SPECID_TO_CLASSID and LIB_OPEN_RAID_SPECID_TO_CLASSID[specId] local classPercentileTable = Details222.WarcraftLogs.GetClassPercentileForEncounterID(encounterId, difficultyId, classId) --wrapped local specPercentile = classPercentileTable[specId] @@ -102,7 +121,7 @@ local minDamage = specPercentile.min local maxDamage = specPercentile.max - local percentScalar = detailsFramework:MapRangeClamped(minDamage, maxDamage, 0, 100, damageDone) + local percentScalar = detailsFramework:MapRangeClamped(minDamage, maxDamage, 0, 100, amount) return percentScalar else return nil @@ -310,9 +329,7 @@ }, --[14] = {} --normal - --[17] = {} --raid finder - --}, } diff --git a/images/bar_background.blp b/images/bar_background.blp deleted file mode 100644 index f3f28c03b901c9db8ef01ce18159693a99ff448e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6156 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 literal 0 HcmV?d00001 diff --git a/images/bar_background2.blp b/images/bar_background2.blp deleted file mode 100644 index 4e3b9d4cdcfd84c15d6105abb8279dad83c4c118..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6135 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 F{|4~fAYcFh diff --git a/images/bar_background2.tga b/images/bar_background2.tga new file mode 100644 index 0000000000000000000000000000000000000000..cd364535ef924cbc9d8f1d3ce24841d322521b01 GIT binary patch literal 24620 zcmeI*%MCzK5J1tP3d`33T|CJog7`)Ml~~b$?YSkK25v+fUrmXwtRg^w009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjYm3%oagV>|1W MdoFW-k2%#L9#bL*2><{9 literal 0 HcmV?d00001 diff --git a/images/bar_background_dark.tga b/images/bar_background_dark.tga new file mode 100644 index 0000000000000000000000000000000000000000..cd364535ef924cbc9d8f1d3ce24841d322521b01 GIT binary patch literal 24620 zcmeI*%MCzK5J1tP3d`33T|CJog7`)Ml~~b$?YSkK25v+fUrmXwtRg^w009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjYm3%oagV>|1W MdoFW-k2%#L9#bL*2><{9 literal 0 HcmV?d00001 diff --git a/images/bar_detalhes2.blp b/images/bar_detalhes2.blp deleted file mode 100644 index be5104277c776b0449ab0619d645fa1be5252898..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45703 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 diff --git a/images/bar_detalhes2.tga b/images/bar_detalhes2.tga new file mode 100644 index 0000000000000000000000000000000000000000..4eb52494ffa09eb49ba6199a816ba9b6665174db GIT binary patch literal 65580 zcmbWAXN;xWS*7m`|6u@|oMFbEL4#)I-rHSW-BopRs;W~}-S#jd2qASXA=wtCu|G`cyUB#L>TGy7>RZ@%h#nU>aF>s@Q@eZKS6*{8a@ zZgt&t*MGe0_OJgiy6aOO{IG{TZ2j%u{_U%WKm6hA@B6;*+Z5ncV|0%`V~ubvGd;U< zzgIuICV3fq>Er1yn%0By0DXPEe%4RUJ@B39rA78<&4+=R^R)TSF#9-9+6)8w!r5%x zI?SV{=`xcg$eH1z#>{G1*m1Ul?>>i3n=z|%9XcP^Ij?O<^EmlDd|uuQn04L@bLQ-* zy}!(*;gf1v&blfVQuHyZ4>n`JG2! z_jO-)^m(86d4~rF2Zs-Mzypqc?&p4P{mZ}n%j;kL)nDEG`mg```Zs>#H#P+r3~9WC zJ-y?W!(>CqeKU6t^Hp09FAMNxAWztHotb;3zlic;0eYJqxXmC-kP} z^`O&xlkzUZsAc2g%fMPPnKc0KC>W0!*y(529CjV|BX@28m^pJTK2M(;^N^qS#Jp$L zdVf>vxd-=NZDt?twI1wa@;sP*K4#leQ8g~u;?(TmoBO{baf1lE&Z z#_a8SwU397UNuf%4+hJ|tWozJdzrhwXFKqs?U_0~*3Jidbo9|+R+u(sKXN?ToQ}ZL zpOgk<Mm@>0>gZy?!+_@VTkYy%*dowOu^db8qqO<-JCO!^X}sYe43DqdMP5 zb+$H}uY=tePq@~(XV$D*A5QdL=j`JRt;xtODoGwZykGV1^z3w1I*=iQn* z*GGj>o%5qNz3EM(*S+p_qgTH2mE*tryT9AK_r34ky#M|0KYri)-ggWac60Da^UYyB z`MxrG?mN`g%g(yi2z)dw%=F<^2R*ywdg`Hh+4Yzgg=E&x!zUAVon41NYhdkV+H6`K zKu>)qo>WiJ8x_XQgPFv@b^qsGtcVCFgCp@nlkKktd`T4wKy_Z^RW z$}E_B*tg^Cp3G=IPHMaO_PlO8W^n&}>FUAW8#sNn_n39)-shfs?`1va9*24#_`nBl z_v^fm-t(UKjNbXqcfy;(@w?ys?j9%QiQ{^o=y6gWz~5>1sJ%}>y_fXh{RMCLJ`6zjA-0|}HdvDSk*O{3#pgETlP-lzJ(W79rFgwDl^Y=lh_3U+2 zkH7o))q4T&J0so;8pib=aQu#UyyK*B{PwrM9h@}ISq~mW?Q{FRpswSzf%gw|vhOL$ z`QEdsK6B66QQKL^8oX5j51r71)#PZ`$m#24Z`sx@+FE8nS3Pet9W)HcX9YZgucv0# zQ_Itq!Ko)TC&-*r@xxapVJ)Z~nKuw~Go{vefS58fQA}r_bydmhS?0?T*gaZy)0kg zq2WaXb80i!kj+~M7PHd8wbM3}o5A>a@DS{fO#;4V@OaJ0`mlXpYkGFfVKcOkmDi)6 z*W>f>Ipy;pV@`O_@VswoGd~9S-g`cV=6b9j^1R>f@9cGZU0!?ocY5AF|75lI)AjiL z`F~u0b|2Td9M{>K6h?Qz?$7tt9f3OAyFKfD;E4BvhH<^G?0)a?`q#hy1k~RLoECOm ze&dg`!IJ_!ZE)s29*;FJes;|9(Eu%S zX5H>JRgAU|yC=+b2N<;@5f-`*?+?u-Y~B72l%^tc+%jEhdwHd>uj@j_c5!_)8oR3 z_Y&Syz+eCMU!T<91D=Av`m4VZC#AQ4`ImordKu`x<~6T5t^E_cmoRS|`V1d$_ny-< zp6l!%w+yz6PT-rTuQuOQFJX?ShO=X~E*~(f<@8pOqkGWBTQ)2j9x-#S}4-Ied$YI3Qk_~l9!zJc=3y0eA=*;U;gr! zZ#n<9FW5HD`K)=cnqJ>MX+2o54{MGiLjya`bkUoR&GnsGua!M zAFT&3TAp1x_=(<|S3YYUG@zf1o;IH@8WzrQYFGqjTQpomZc; z$8`qBbyml9CMN-A{87WML$A*HqyV#a!unUd;uWL%{{c>)|NQ4~3#Whn=YM`1&wJkU zP8+tx;EcIC+xq_qwzcP$_kr5utZ-UD12mpG8Qu5$ob|%&q`V=}!#{4Y!>l&%`A(g6 z+iw$lqldsg_^bh|PLnO0Pll$~d(88KokeM&?@Xr$*|ae0fCnax$j5v!DI!ZQ%4-&w3Wvb~tPEj_E)5xzF9bKh)m5FP!nd&~P3akKbFE^~^f*T(9?U zeoxZ&;rA>4o<$8G7g#ft*`tHrG7J$yV^%`EheqhnW(E;>QS9NsjnoA2B+ zIUd~WRrBCw0lv&zw2U5lUO>aldd#y1w7@es(Fhd~wdFPkY+a#&sUSs9`tPSsXWv)OF4$g>kJJ)j6Hi{{uY!z2E!2EqKzC zo+QpfpFZ)4Puw<~UBc$)mD|BXpFR1>Pd%7c3t96Dab&e)=p2l^qz@#v3 zjMg95`Av*!p5WCv-+?{&fB*mB5B^~MxW_$i``E`mc8AA2<}urbv*IC~U*gjxyJ#4i z-S7PIkAFPxF=urRXMgyIe|T2!NoUV|<}=R=+rnvMv>@yKlgP=;)i50yov^2O+;y4F zU}mssK5R#S)pBP#>j9+Cnq>i|>x{Q(Gi*m+Z{B+NYFNxlUxw*G#yWg3X*mqiS7#4B zYcTgZWOB6J`^-LXGuY=13+@&0UO0OXo$2ej)_X1MXV-nv ze_rQcR_9?_=VDstV^-&6Qs-%0fTzJ~GxAZub>v`FXM9{3)p_U4PipV+6Q1yd@o)a- zZ=QiiJ?c^026T_}@X*fkMf1#(*~^*7a7{kO`J*5G=-vB6_ug<`?|ZlZJW`rJqnvf# zN%P4BYt*nE_hLrt+hrEVq1}TFUu;Sz@R>7Tw;3NTR;BUa%dn^nEL#T_>D!yPzMTH7 zGJJq`hUw`|O9N&;@2E4^x4ZlN)Ve-~>^fMlzXqR6UWeB%vxeu+%>9z}xUXvOr}s+V z4s&+Yer(v=wQ3)qE*d5SKDX3#MBW3=_^i(Otj_qnUhlIypR;=XPwQ-mN$FVw8jz{s zahqW>7>ok;@Hp$E0zCe$-}XbdQVX!K{;AXYRUu zTs$6I-qy8k>wA`W?@zz;JHNB7_pP(v{oUU^tKY|**6&@;8n(rN86Pd1rAOA|q&%SS z3?H{leP8pY`hXrluN%ymSCOH`vNXsUjkhSURxRVB=Y?5gJm+59F=w6@CXLZ}`pn}7 zJ-g1Xfz@RB7|vWzYGy$n_f0r|4BkKQ*HDjr@V&okW*@^2nOvvY?ZdR}7X}zvz^*R^Rrr}A`u>QFDG8u3lwHd|(=$!S&_1H%RcvSxu z!06|H{^!pIaNfLRw6klNFB;73!8h9)I{N5bzpYug2eTd6+5GgEe(9ICb^Y7=w-CRDEuIc^kpm)FLY+d@yddX=1JZUF2`{0Az-}UCnUY~221x?rYyMb6@*D9@m-~*GXsR*XwQ3&iA}thr55%rCyiwdVS97bvtjEHpWAXoH>h= z0verj7d3!FC(78jxMoLPrTQn{4a3oz#2a>976TubtI<#A$tOw!TNy@42=E zIPJWXngKp=J`NwD?lCP7 z;16l`N#DKPzn}5Fwm!@2M{^Hg`m)bo&->(BbA0q=Y)@uA*LM3c>ufLUb+c$^dsVNe zRlTm}_4=CC>ug!Cw?)1FW`%ix8BBxwJTvvAtzib7PdxY1!v~|r>ie2+udC}G|IE+) z%;?8{?8nXra8@2LyXdqt3~mOi^_kh{PWzG5&yLs7vwPuh8&cyjpEkC$^XuO{+Pzo& z?9cw}X}w2o`F%wFUg)%bU$*=EkNPvw?)MV)XEOdS^rYdmIFbHwWt-@d;pwNQ2YPQ+ z-nx*irjK407NME(0lqn`#s~8bc)LG$Hs20^uSAzj&mLKVzhg3kUDrQWKf4B>#}N2l zd!OZOM`pbm_FkdQ(!1TQbG@vO_p<(MysVG^qFx8fdOa-ab+N41$Fk1Wyk0MhdL4;* zY0%GjvzEzv)0XMOdhjH2^tk0_%$!p)Jm+LIIX!`ANAH99$AA3CM~`^KBhDJmgV7fS zSTHB--0XZhc;vA9qBL-wbFL@jdgQz|ylrF`rOEN^p%a(+*-3p`>ra2^hkoefM}PE3 zw{?F`>NRj$?~|wXUVp;xDeB)&JFVBrNqrtTsn^Z6J};cqYe*cIPT=Q^-ZXDr44h%T z0sfA^Yg-l8!c8q7m8li|sIhrfFwhsCrsJ!f-#bk20}g==7Yu93ZloO_S;dCh1* z59XdY>n-c!v8a#Bg3r^O=lXap>*KcIb9H?j`CPrMkL#j7zRUVJFYDvID9jt9h1se+ zH9a&y&l=GEJS{Ilm)SL$smUg-2dAc^$GIIh;N^_ZeAGBK9@us2`SWjyo)^vH%RSYZo6P=O&dF&0J>dMe zp3R5;y=V7=^WPO#!~MT4%slk(3-|x7aNpzK{bgPLTf=yX{@)Px-wO8M0wy2CcYW7) zop-p189g-X!M6%G8_;;pXy;@elMdclXgo64p~?Gs+kCH`4$zl-KRar=;53kPpP#fo z?3&}!fLR~bN9Vk$dHp@#^F5pI{oe28-%4Nqzz_Vu>IZ-D2iNspvZ?pw^^g3>kF4u; zy{^~ysy<(>>i40mdcCje&uy!EUs>_{)55CWUsm<|)pebXRbltJj^D!;_}sUsKdUYa z^0Lkozt81d?ZDqv6=sEn+N|-6Kko*nweRllw>XphIk+Bohq{hwUC+F(3(V>|=XJgF zx^8|SJ*(%j`#o?yuX#PcSv^laXD;e_&+GYf-ez?_=5=2db${jsc-c6;^y%4g4LMjv zW=FQe>^gar<>QdZ8K}|&kA}n9x!*7vxmlqPaE5lGqVFH zPTHJ&Tplw((^tdm1~RY-uh+}UR;>dMfeu(SrlY4%mYCO^FvFV#vV))bW!j!=oq3Gj zWA?GlbG}Ub{K(O{Pd?|=bh$U~>6+wzFEVr1O$$CBG#RrxXM8jANdww>)cNDc)Nq0| zM+I0vJu^Hzc!vep{OFs$>6%@W-=Y}1legr`l-$3D~Y@LJpc_8P7iw1Pg_%|cBmrM?BHFkEL z%o;lGX>aH;>F6ixpIwsECCgl$tlmZ+Pn?z}lhH!&xaH0#F{?M_q3OcRfH|}D)-8j< zsxgKXc`>wYK+s%GH zpP{Z^?w8)szS-ruJHuR`Og3pAKC_-aoVxGWA6HM%9|iE4`8hu6?|!aN^VRm454+6u z2Ve6wUvnO~C@t{SJ>RTMm^sV0szWC0U)Co#^O{_9RvDg5&+D^mW{(-rRm*lDRbFNP>wfo_5jd1RfzRxY!(-rvK51+ri%l755^BS3_&C_SbpR|lQb>`!i*{6pm zoJZv)%-x$g^IjiTe$+Z>`po*7-S)rYE572aaNcmU@kKGvN0Z5DaI4`VZPpuN*TC+R ztS0Aine*|P^Zx&Y&C20$*z(W}-& z<1t@`Wo3y)%|I{pynJ9M=UK~SGg)88SIhmrbnwjK?4a%RkK-&4ts`@9_p*=gzM?j@nyQsc>3d}^_-8IKZ+cU57UFy`p&Q(eAs5RzMfs@qc8cAFF7xqHAY_q zZieoCvRef^=$tc0C)~@m&N9~l$kkjUx!0I;cFcRvdE55zIm2o)XEByTC7?QgJlD`o=k>bG%%wt<9W;NJHtbu*ZZ^1^YND9)A2FP z*(d$fc6}@#178oe2lwl9f7j4iwl3Oz)syDQ)0okKtjBmD!=ncaXP9$|504t7o$>V5 zhvfk}y>_kH?fDD8@C(l`!A1GtW`lEj52@@{13fkDI$6(7?xQAC!(5xQ*U5f(=K9;{ z>m{F6F7%nvu9`N<9%>oio?5o!wRxRfzt2H0IkRoszt8EAxtENWe$MLC)`7)I^I(9lc0O(% z3^pC(t(ylY=;n-Gg@^93EN{_#G@zpg3eyGiz({)jp<-59}o8 zeqKYrF4vRg8YK^EtBy9^QdF??0tSdH$C_ua%MAg=fjr4fE;Fh zg1()d{_M~G?DN1yX@IAeZ`Tly_ zS`T)%WAkJ(p??w{+WEL?cvFzk0x$h_WN1OZ&sNQomo)=sy+!lPdY(s4H$j(~ z&aAPsJ+kz2?${*U7maZ6{fOI&>kgBkv)(07i? z6L#q7!G~>@Gs~QH2dyuYt7Y~<@8+8~Z=M&<8qkT0nnlTfqw#JH0RJKUr+(#nX8Qgj z>wn>K4L$3*pE=h~CVTz)ob1Z>>1^9t*Sk*6ZuU=W9l%q=Cv9e5G_22j+-BH$(|kOz zZkawaU=~B(s&ZlOEHA4A7LDj*q)i|y&m%H zyM~_KY193jJ~}aJYw*zHmZP2FQ8$|(mCqV-fCl(_@L}`JWO_a59yA|jc0FBZdvvmQ zgU;#c>3PFhXg&C%;bt-DXMOlqz%HJewf5ax&JLbE*Z81QKeJ8ClF{qtvkt8%u#)8tFwmlV!#Yv1oxU*+$w#uAmgVd1NPDEuQxQ) zHAj1GUYFOH+-qjm!h-eL%YE^;0oUmFv)$8Jg9azz*~0^yf*tv|Jh5&XrrR@~K3V>< zOU^Iz<^LO3G9!8ji}2O3V9mVEupsZXo@+Djy;-fF7GQflo7rKAbR{mk-EfwOK{C*W&TZjD7g!EW3w{ zuih=_*5J{Z4)|pLBIg%ff8ps*n(1Epc9Q9uqs6HCzz~v%+bfq(`VM(luqF1ylyi*gjM-~3}&rbKWF>! zasZ3+fSL2W`OYw2`syKnR$Y+m)%MBJ$!a_1`tW^WTAjqC&9WJLv!C5dFv&j6S^AAESuZvDyfABB^kr}_a@VPyWqkGo?w6Y0G&*F=u0tox^_bI})C}-od*e3asbxK8 zG3qpPf}ZnH>BM21WqN9RoJo9UGG@`w`ZuDJnw(i&x3|B)&wIh)-rnA6VcQt(jCUE% zB14}S;LEf*e3{PmJg&XG20gm?u2J{bKQ!kW_qHdW)ZXgLm<~8@OiyhFZ(2@mS-i;-jJ8)D|POp-!q+|Gw$QKhu5p`+;irseO`K8haSv5;f&^fc!JE1 ztd}#MzGs-(^Nq&W)9;y%XIrMjxrG5fXV|lCk6E3$JvjaTeZX_AKXj(??5SnW8=Cb) z9dkHg*R#)@XI$;sW^H<$%{h{3vuFqHS+yr;hIVGH9nKm)>^^om z$7Y`OJllG#MSIpg+cLSZne%-6Ootvi^V#M1|JUp61OEKa?*aU?sIOsP z<9Qa;c}{xm?73x5;P;*McwF;je0%!LTracNE2o#*eeB7ePrI;to5`G2HS5(qlXzUSPInZ9%8df7p9=3vfPpQZ1) z?APGux$QOQR1fVwFlW;Bco?rdG=ghgzE?Ss<&^fLg-}eAM z_h)XVx6iqcv(MlET|YQD;C*1z-UD`jPgVQ)y7qj){h83SlV`^aPw07$nbmO4xtE$; zc-C@8+a1dB=nQ4@%0BiG{ ztL=GConbxB8@fN6z1Pq7@jc^tcGI(~2dl|Ao36#rGwk`pN6Tnn*Nj=8^U0Zn?R#eJ z*|Eo2#e+S!u5p$<%gkz+y?~y%vuB-I1o$2VK@%3^>>$_gho@@OY8MDZa zz24JLW-ofl?$6iS+#ikKbMN`}IoI)ZFFe0ahsL|?Yjyf|V84!r27Fyhum5_T89881 z&$(y6ekPkUqxEIJMkesknW^Q>`5IcT$=R>3xi?=&!()blUte>!Ba`PEeAl3J=4)@v zeqGLtK3{Xw_v>$dtxg~I>ui~+$z1E#;hZblt%Y}gFW(qF^h;mvJG(<(=a?_@?ZD^y zI_o=d?kAJU_4#~$eYsq&i+8C1M{qNpPS=G^<={AwUS=oJ$$t8$)p3Sv@xW2&^yrX* z!_YYo`FQ&9L7VmE8|4FXVc*#f%o&x@*P6Fq3^F6flXsmu$NQkp^?sdkz+&}ZXufZZ?=?&Cy=Xb3(?j>LgYWmj-Kj(7 znxV()uZzCl^Jd?vZTK2Sum)|?*_rvi$ zaAtnLT+e);o8K#E#`nCb&G??U{C>IAbo@R!zrT*z@2P|NemnOtOHXZ=S>!&~+dgpS z%=-=3ikZ_hyUlf8uN64kJJfmJ2X(&p>zrS&^S=Mkhd%U1egFTp&;8ub-LHQOX!QkO z@CB>S|NPJ2q5gf4Rrz3@_?*xAoOOpy%>e(nv7U^NPNr`zo9A9Wo*m{@A=mda`{=no z*$h@^t|sGgFYCE>SslPEyGFLNXdPzsyfIqn!HGU+o^>7i)8>;U@XgfyOdoI3(D%lX z(aElBdd@wvk7hp}(>1yOsO9jT^ik!2wRV%u;ltL2?ck%ccTh9PKHB+49xWno=Fud2H)^o+M@zL_4}!!Aq) ztC>aag*Pz28m49|{!G8tGD^wD~mr$;AYmY#ZE-5#^H9v|KFw0X&B zFlp?Zo>_9Qa~{`Tz&*$Wz8ZFx&HCBysI4());nrhdTRKvKnF0Z^^=G6L9M};(Fyz; zEmt$U2A#Oxy1mEjdOFO>=-rtNzScCXrZc3k)j8cO>=)42>KyOazX7~Mo$viR=X-VD z_aFAKhwXjs*M9B(*MI%jU#p)5wEWg@{no{|e9N~izxkWLdG~WszVREsaZy+mmf!FV z-vCzkf$XfS+k^Fbsr8b5EcYbSgL|J@&^6b)jNOxbQDBx`!>qO^lg-$!uXz+*)+Eewugr(E*TGtF)Iit$%raM-vFY!Gw^Etti@~fa~K!#a~K!(^HcL@n=T&y@P{uiL1wGy zq-Jf-YB+V@%g6L_WY(db?dI&>nPuMVdF+`P>z!eH`aBNatg*QsYsi3_3{1mU+lBGK zr1f&fbC&V+hZt|%I?3u$%X%iqgVoHJd1i91;Tl{wl;a&XppOcyhXI*v4?bv_d3JJb z_FRvrf1_!=e#XZW*Gms!zx-)UlE$J+~5;}79>UOz|mYQtWg=WF%zRj)nb z5s%obbG}#SeXo9|?A7|2tk>%2v+g~zehw@@+m)Z`T0hHm_cNCHIm`94T<3*l0nN`{ zo)_RA%jUsi_j8(K=I7L!C1;P0d(-JP9@ijyJ$m%f`mUGLPwl#VO!txL%o_02upOA6 ze`}V#KC=g3hDpnk$K{FMXP?Z_bb#6%9yMQ&Ig$QRWk3&Y_b{}cY%f_&2Q3b|eee%k z4g)%{=x2TTM(e_KMf%snCnxJcXTSL{Js3a1I{bud_4*nAT3eHh278UKHq8u}#m=j9 zdbME>u5-Kx>Rex~^SxK+ob!IQezyAFqaO9Bz2E-r-@f{!Cp~HQ#3w#+{)8tyVgC5X zKYmtNJnnIin?LrkkNqG#<}r_%7Z!njUbakM)^}|`>nFQbk2$?roAoo(W34^3zTA6s z6ZZ7_*}bQ=4w$Q5C)=B}{80MQGkdiGy;tY>YMp1WSLgd`o%6jq?|V;v@{{+T@|36SJ@u(i-Fwb+o-=*+v!6YE z*0Y{9f95lvIeW%4p0UHzpZ@fjc-qsRHfxv%s~6>=?*uvtyRMb-)yvR6K5R~xdD=KT zsqN|c*fPGIWHtNeW8{pU1kCW%a(b>Ab!+wEaRVK6@=@mv<@U+wGwU(;Ft-aIcD;k< z;U}`|n#|GcpFQ?shJ|bT$GOpU?Bff(?CI;VH~M<8TAz8p0WI)SJ7-sYt-63&E$@Y= zhSl`Yu0>xhTxqP%Sr5KiXZAMgEMF~LsdIg`&i7uO^Q(2^x-t>X+Qa!-BMxQ^Ue&zb(XVbqvRPtFY8uXBw(Sg^-Y%=pa0 z`LK21ggyA6t+ShJ@$AwA?xXJ6e2Cq{HJ5d+$K%{+kBf(v(IP!HEcUy#`Y;*1*Vx$( zKDbsOOW*-={G455?hJ#gt*>^z(lTarBE4Q;turgG)Hw!M>s(){^L?ex`IS2FS6}|} zmtT3sD_(Ksm9Ko|)z`oN^^@1V?se1GzV@}#*SzL6(^tRx)nf9hSG{W5Fbk~*&m*VP z_w;1e*wK^C*wYT4*CFExdiZ9SY5SR{cYpR7#bdG0xFPkB=Q=X9ouj5R$Fl6SM z;SF!N^2Rs5@yeUt^rkCsfBW0VZ+qL@z~rrOee2{cZ+XiQrf+`pnXOw$ZxdFPS5nSgLYP5Z+kGK&DGBKc?>ljd+D3Q=IH&l7Iv+Ct>rR4J-e`3 z>b+P;4)E;etmk^>K4-1C+G%FJE2TyHYO;IVdV9>~Xgg?dPlMS#b$0J9z*m~y&2_Ht zt@FJ@o%eg+@s4-g`_6a1^WJy8>s?pg_rCXy-}~P8?(m-Xyk{)l{qA><3zGrH6Lh9+ zhFxPW+sPSEzt{B4a!<8PM?EUdI%d7pyT6(}?CZft%~v0GvpGyAoaKYa z?BFHv`(DmBB1a24YWaHWG7shWbnL11d(M16*6I&=Wcuufc3*uu*9vy=nfD54fX2&= z*`7I^+T1;^Ru1shvTL1_$*vS+w7EL@-pTs`k@lxNS5YmU0dVm3RB{qV?o&;j^EY<^I=z#Gzf$=TJ%yAgY+;nde_2K&uN zlk2C}lUbvNos(1B%{|TWuEl8?zNa9oonb)+?rw0_bB*&ZuXBBO;oipg{L?@E6JY+I_4ft)^=E+_fB*M?fBm2T z`JWH|^T*V=lzXu&L4 zgYQ~>*P7eOJ%+U2UhN5(f2z;KuyZ*d?cl|x!-H(3sqyI;Mw`i(%`cSbpCVUGYX$x__ScO_|(vN%%Y$5 z;ZKQPKa>6c;*)DFV7f{e?KG({<<2A)O;H(MG&!-f4U6Ox7o$pVqbN=yl-an?kAMk$B~D|38cM$^5hK`oAft7*zlO literal 0 HcmV?d00001 diff --git a/plugins/Details_Compare2/Details_Compare2.lua b/plugins/Details_Compare2/Details_Compare2.lua index 3e11b752c..a2fb83e26 100644 --- a/plugins/Details_Compare2/Details_Compare2.lua +++ b/plugins/Details_Compare2/Details_Compare2.lua @@ -20,6 +20,7 @@ do local compareTwo = Details:NewPluginObject ("Details_Compare2", _G.DETAILSPLUGIN_ALWAYSENABLED) --> just localizing here the plugin's main frame local frame = compareTwo.Frame + --> set the description compareTwo:SetPluginDescription("Replaces the default comparison window on the player breakdown.") @@ -1328,6 +1329,10 @@ do return newComparisonFrame end + if (not frame.__background) then + DetailsFramework:ApplyStandardBackdrop(frame) + frame.__background:SetAlpha(0.6) + end end local buildSpellAndTargetTables = function (player, combat, attribute) @@ -1375,7 +1380,7 @@ do --main tab function to be executed when the tab is shown local playerComparisonFill = function (tab, player, combat) local frame = tab.frame - + --update player name frame.mainPlayerName.text = player:GetDisplayName() diff --git a/startup.lua b/startup.lua index e14452e48..1e06a1067 100644 --- a/startup.lua +++ b/startup.lua @@ -543,14 +543,16 @@ function Details:StartMeUp() --I'll never stop! Details.cached_specs[UnitGUID("player")] = GetSpecializationInfo(GetSpecialization() or 0) end - if (not Details.data_wipes_exp["9"]) then - wipe(Details.encounter_spell_pool or {}) - wipe(Details.boss_mods_timers or {}) - wipe(Details.spell_school_cache or {}) - wipe(Details.spell_pool or {}) - wipe(Details.npcid_pool or {}) - wipe(Details.current_exp_raid_encounters or {}) - Details.data_wipes_exp["9"] = true + if (GetExpansionLevel() == 9) then + if (not Details.data_wipes_exp["10"]) then + wipe(Details.encounter_spell_pool or {}) + wipe(Details.boss_mods_timers or {}) + wipe(Details.spell_school_cache or {}) + wipe(Details.spell_pool or {}) + wipe(Details.npcid_pool or {}) + wipe(Details.current_exp_raid_encounters or {}) + Details.data_wipes_exp["10"] = true + end end Details.boss_mods_timers.encounter_timers_dbm = Details.boss_mods_timers.encounter_timers_dbm or {}