diff --git a/Libs/DF/colors.lua b/Libs/DF/colors.lua index e8f370da..ad7a94f4 100644 --- a/Libs/DF/colors.lua +++ b/Libs/DF/colors.lua @@ -6,7 +6,9 @@ do return end - DF.alias_text_colors = { + DF.alias_text_colors = DF.alias_text_colors or {} + + local defaultColors = { ["HUNTER"] = {0.67, 0.83, 0.45}, ["WARLOCK"] = {0.58, 0.51, 0.79}, ["PRIEST"] = {1.0, 1.0, 1.0}, @@ -164,4 +166,9 @@ do ["yellow"] = {1, 1, 0, 1}, ["yellowgreen"] = {0.603922, 0.803922, 0.196078, 1} } + + for colorName, colorTable in pairs (defaultColors) do + DF.alias_text_colors [colorName] = colorTable + end + end diff --git a/Libs/DF/cooltip.lua b/Libs/DF/cooltip.lua index 804bd548..a940d959 100644 --- a/Libs/DF/cooltip.lua +++ b/Libs/DF/cooltip.lua @@ -80,6 +80,7 @@ function DF:CreateCoolTip() ["FixedWidthSub"] = true, ["FixedHeightSub"] = true, ["AlignAsBlizzTooltip"] = true, + ["AlignAsBlizzTooltipFrameHeightOffset"] = true, ["IgnoreSubMenu"] = true, ["IgnoreButtonAutoHeight"] = true, ["TextHeightMod"] = true, @@ -1609,6 +1610,11 @@ function DF:CreateCoolTip() menuButton:SetPoint ("left", frame1, "left", -4, 0) menuButton:SetPoint ("right", frame1, "right", 4, 0) + if (menuButton.divbar) then + menuButton.divbar:Hide() + menuButton.isDiv = false + end + --> height if (CoolTip.OptionsTable.AlignAsBlizzTooltip) then local height = _math_max (8, menuButton.leftText:GetStringHeight(), menuButton.rightText:GetStringHeight(), menuButton.leftIcon:GetHeight(), menuButton.rightIcon:GetHeight()) @@ -1667,7 +1673,7 @@ function DF:CreateCoolTip() frame1:SetHeight (CoolTip.OptionsTable.FixedHeight) else if (CoolTip.OptionsTable.AlignAsBlizzTooltip) then - frame1:SetHeight ( (temp-10) * -1) + frame1:SetHeight ( ((temp-10) * -1) + (CoolTip.OptionsTable.AlignAsBlizzTooltipFrameHeightOffset or 0)) elseif (CoolTip.OptionsTable.IgnoreButtonAutoHeight) then frame1:SetHeight ( (temp+spacing) * -1) else diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index 738e595f..fa8a3553 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -1,5 +1,5 @@ -local dversion = 100 +local dversion = 105 local major, minor = "DetailsFramework-1.0", dversion local DF, oldminor = LibStub:NewLibrary (major, minor) diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua index 933d59d8..ad10b308 100644 --- a/Libs/DF/panel.lua +++ b/Libs/DF/panel.lua @@ -1165,6 +1165,8 @@ function DF:NewFillPanel (parent, rows, name, member, w, h, total_lines, fill_ro panel.scrollframe = scrollframe scrollframe.lines = {} + DF:ReskinSlider (scrollframe) + --create lines function panel:UpdateRowAmount() local size = options.rowheight @@ -4815,7 +4817,7 @@ DF.IconRowFunctions = { newIconFrame:SetBackdropBorderColor (0, 0, 0, 0) newIconFrame:EnableMouse (false) - local cooldownFrame = CreateFrame ("cooldown", "$parentIconCooldown" .. self.NextIcon, self, "CooldownFrameTemplate") + local cooldownFrame = CreateFrame ("cooldown", "$parentIconCooldown" .. self.NextIcon, newIconFrame, "CooldownFrameTemplate") cooldownFrame:SetAllPoints() cooldownFrame:EnableMouse (false) @@ -4823,6 +4825,10 @@ DF.IconRowFunctions = { newIconFrame.Text:SetPoint ("center") newIconFrame.Text:Hide() + newIconFrame.Desc = newIconFrame:CreateFontString (nil, "overlay", "GameFontNormal") + newIconFrame.Desc:SetPoint ("bottom", newIconFrame, "top", 0, 2) + newIconFrame.Desc:Hide() + newIconFrame.Cooldown = cooldownFrame self.IconPool [self.NextIcon] = newIconFrame @@ -4858,7 +4864,7 @@ DF.IconRowFunctions = { return iconFrame end, - SetIcon = function (self, spellId, borderColor, startTime, duration, forceTexture) + SetIcon = function (self, spellId, borderColor, startTime, duration, forceTexture, descText) local spellName, _, spellIcon @@ -4878,20 +4884,30 @@ DF.IconRowFunctions = { else iconFrame:SetBackdropBorderColor (0, 0, 0 ,0) end - + if (startTime) then CooldownFrame_Set (iconFrame.Cooldown, startTime, duration, true, true) if (self.options.show_text) then iconFrame.Text:Show() iconFrame.Text:SetText (floor (startTime + duration - GetTime())) + else iconFrame.Text:Hide() end else iconFrame.Text:Hide() end - + + if (descText and self.options.desc_text) then + iconFrame.Desc:Show() + iconFrame.Desc:SetText (descText.text) + iconFrame.Desc:SetTextColor (DF:ParseColors (descText.text_color or self.options.desc_text_color)) + DF:SetFontSize (iconFrame.Desc, descText.text_size or self.options.desc_text_size) + else + iconFrame.Desc:Hide() + end + iconFrame:SetSize (self.options.icon_width, self.options.icon_height) iconFrame:Show() @@ -4958,10 +4974,13 @@ local default_icon_row_options = { texcoord = {.1, .9, .1, .9}, show_text = true, text_color = {1, 1, 1, 1}, + desc_text = true, + desc_text_color = {1, 1, 1, 1}, + desc_text_size = 7, left_padding = 1, --distance between right and left top_padding = 1, --distance between top and bottom icon_padding = 1, --distance between each icon - backdrop = {edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}, + backdrop = {}, backdrop_color = {0, 0, 0, 0.5}, backdrop_border_color = {0, 0, 0, 1}, anchor = {side = 6, x = 2, y = 0}, @@ -4979,6 +4998,7 @@ function DF:CreateIconRow (parent, name, options) f:BuildOptionsTable (default_icon_row_options, options) f:SetSize (f.options.icon_width, f.options.icon_height + (f.options.top_padding * 2)) + f:SetBackdrop (f.options.backdrop) f:SetBackdropColor (unpack (f.options.backdrop_color)) f:SetBackdropBorderColor (unpack (f.options.backdrop_border_color)) diff --git a/Libs/DF/spells.lua b/Libs/DF/spells.lua index 3e3ca29f..b65ec1c4 100644 --- a/Libs/DF/spells.lua +++ b/Libs/DF/spells.lua @@ -623,7 +623,7 @@ DF.CrowdControlSpells = { [408] = "ROGUE", --Kidney Shot [6770] = "ROGUE", --Sap [1776] = "ROGUE", --Gouge - + [853] = "PALADIN", --Hammer of Justice [20066] = "PALADIN", --Repentance (talent) [105421] = "PALADIN", --Blinding Light (talent) @@ -643,7 +643,7 @@ DF.CrowdControlSpells = { [203123] = "DRUID", --Maim [50259] = "DRUID", --Dazed (from Wild Charge) [209753] = "DRUID", --Cyclone (from pvp talent) - + [3355] = "HUNTER", --Freezing Trap [19577] = "HUNTER", --Intimidation [190927] = "HUNTER", --Harpoon @@ -654,6 +654,7 @@ DF.CrowdControlSpells = { [115078] = "MONK", --Paralysis [198909] = "MONK", --Song of Chi-Ji (talent) [116706] = "MONK", --Disable + [107079] = "MONK", --Quaking Palm (racial) [118905] = "SHAMAN", --Static Charge (Capacitor Totem) [51514] = "SHAMAN", --Hex @@ -817,7 +818,46 @@ DF.RuneIDs = { -- /dump UnitAura ("player", 1) -- /dump UnitAura ("player", 2) - +function DF:GetSpellsForEncounterFromJournal (instanceEJID, encounterEJID) + + EJ_SelectInstance (instanceEJID) + local name, description, encounterID, rootSectionID, link = EJ_GetEncounterInfo (encounterEJID) --taloc (primeiro boss de Uldir) + + if (not name) then + print ("DetailsFramework: Encounter Info Not Found!", instanceEJID, encounterEJID) + return {} + end + + local spellIDs = {} + + --overview + local sectionInfo = C_EncounterJournal.GetSectionInfo (rootSectionID) + local nextID = {sectionInfo.siblingSectionID} + + while (nextID [1]) do + --> get the deepest section in the hierarchy + local ID = tremove (nextID) + local sectionInfo = C_EncounterJournal.GetSectionInfo (ID) + + if (sectionInfo) then + if (sectionInfo.spellID and type (sectionInfo.spellID) == "number" and sectionInfo.spellID ~= 0) then + tinsert (spellIDs, sectionInfo.spellID) + end + + local nextChild, nextSibling = sectionInfo.firstChildSectionID, sectionInfo.siblingSectionID + if (nextSibling) then + tinsert (nextID, nextSibling) + end + if (nextChild) then + tinsert (nextID, nextChild) + end + else + break + end + end + + return spellIDs +end diff --git a/boot.lua b/boot.lua index 62626b26..a896859d 100644 --- a/boot.lua +++ b/boot.lua @@ -3,9 +3,10 @@ _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") - _detalhes.build_counter = 6272 + _detalhes.build_counter = 6402 _detalhes.userversion = "v8.0.1." .. _detalhes.build_counter _detalhes.realversion = 134 --core version + _detalhes.APIVersion = _detalhes.realversion --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" _detalhes.BFACORE = 131 Details = _detalhes @@ -22,11 +23,20 @@ do local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) --[[ -|cFFFFFF00-|r .\n\n -|cFFFFFF00-|r .\n\n +|cFFFFFF00v8.0.1.6402.134 (|cFFFFCC00September 10th, 2018|r|cFFFFFF00)|r:\n\n +|cFFFFFF00-|r Details! is ready for Uldir mythic raiding!.\n\n +|cFFFFFF00-|r Details! Scroll Damage for training in dummies is now ready for more tests, access it |cFFFFFF00/details scrolldamage|r.\n\n +|cFFFFFF00-|r Damage and Healing tooltips now show a statusbar indicating the percent done by the ability.\n\n +|cFFFFFF00-|r Added a scale slider to the options panel.\n\n +|cFFFFFF00-|r Added monk's Quaking Palm to crowd control spells.\n\n +|cFFFFFF00-|r Fixed an issue with Plater integration.\n\n +|cFFFFFF00-|r Fixed tooltips not hiding when the cursor leaves the spell icon in the Damage Taken by Spell.\n\n +|cFFFFFF00-|r Framework: fixed an issue with tooltips and menus where the division line wasn't hiding properly.\n\n +|cFFFFFF00-|r Framework: fixed some buttons not showing its text in the options panel.\n\n --]] - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v8.0.1.6272.134 (|cFFFFCC00August 28th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Dynamic Overall Data custom display.\n\n|cFFFFFF00-|r Fixed friendly fire on some dungeon fights with mind control.\n\n|cFFFFFF00-|r Raid Check plugin fully revamped, now shows talents, spec and role.\n\n|cFFFFFF00-|r Updated flask and food list for BFA.\n\n|cFFFFFF00-|r Added NpcID listing at the Spell List window.\n\n|cFFFFFF00-|r Fixed an issue with Alliance or Horde icons showing at random in player bars.\n\n|cFFFFFF00-|r Small revamp in the Death Recap window.\n\n|cFFFFFF00-|r Fixed new segment creation when the option to use only one segment while in a battleground is disabled.\n\n|cFFFFFF00-|r Fixed east asian number format on several strings.\n\n|cFFFFFF00-|r 'Smart Score' option renamed to 'Unique Segment' under the PvP options for battlegrounds.\n\n|cFFFFFF00v8.0.1.6120.132 (|cFFFFCC00August 07th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Death Knight: Epidemic, Scourge Strike and Howling Blast now has a better description on the spell name.\n\n|cFFFFFF00-|r Fixed snap button showing when 'Hide Resize Buttons' are enabled.\n\n|cFFFFFF00-|r Fixed title bar icons not hiding when 'Auto Hide Buttons' is enabled.\n\n|cFFFFFF00-|r Several improvements to overall data, it should be more consistent now.\n\n|cFFFFFF00-|r Details! now passes to identify the tank role of the player even when out of a party or raid.\n\n|cFFFFFF00-|r Debug helper /run Details:DumpTable(table) now correctly shows the key name when it isn't a string.\n\n|cFFFFFF00-|r Improvements done on the Bookmark config frame accessed by the options panel > display section.\n\n|cFFFFFF00-|r New slash command: '/details spells'.\n\n|cFFFFFF00-|r Statistics for Legion has been closed! You can access statistics from the orange gear > statistics.\n\n|cFFFFFF00v8.0.1.6027.132 (|cFFFFCC00July 28th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added size offset options for the chat tab embed feature.\n\n|cFFFFFF00-|r Revamp on the editor for the custom line text.\n\n|cFFFFFF00v8.0.1.5985.131 (|cFFFFCC00July 17th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 'Auto Run Code' module.\n\n|cFFFFFF00-|r Added 'Plater Nameplates' integration.\n\n|cFFFFFF00-|r Weakauras integration with the Create Aura panel got great improvements.\n\n|cFFFFFF00-|r Many options has been renamed or moved from groups for better organization .\n\n|cFFFFFF00-|r Several skins got some revamp for 2018.\n\n|cFFFFFF00-|r Default settings for Arenas and Battlegrounds got changes and the experience should be more smooth now.\n\n|cFFFFFF00v7.3.5.5559.130 (|cFFFFCC00April 13th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added slash commands: /details 'softtoggle' 'softshow' 'softhide'. Use them to manipulate the window visibility while using auto hide.\n\n|cFFFFFF00-|r Mythic dungeon graphic window won't show up if the user leaves the dungeon before completing it.\n\n|cFFFFFF00v7.3.5.5529.130 (|cFFFFCC00April 06th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added minimize button on the mythic dungeon run chart.\n\n|cFFFFFF00-|r Added API calls: Details:ResetSegmentOverallData() and Details:ResetSegmentData().\n\n|cFFFFFF00v7.3.5.5499.130 (|cFFFFCC00Mar 30th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added outline option for the right text.\n\n|cFFFFFF00v7.3.5.5469.130 (|cFFFFCC00Mar 23th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a few things on the mythic dungeon chart.\n\n|cFFFFFF00v7.3.5.5424.129 (|cFFFFCC00Mar 10th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added macro support to open plugins. Example:\n /run Details:OpenPlugin ('Time Line')\n\n|cFFFFFF00v7.3.5.5351.129 (|cFFFFCC00Feb 26rd, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added a damage chart for mythic dungeon runs, it shows at the of the run. You may disable it at the Streamer Settings.\n\n|cFFFFFF00v7.3.5.5231.128 (|cFFFFCC00Feb 02nd, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with wasted shield absorbs where the wasted amount was subtracting the total healing done.\n\n|cFFFFFF00v7.3.5.5221.128 (|cFFFFCC00Jan 26th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Warlock mana from Life Tap won't show up any more under mana regen, this makes easy to see Soul Shard gain.\n\n|cFFFFFF00v7.3.2.5183.128 (|cFFFFCC00Jan 12th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r The new bar animation is now applied to all users by default.\n\n|cFFFFFF00-|r Fixed an issue with the threat plugin where sometimes it was triggering errors.\n\n|cFFFFFF00v7.3.2.5175.128 (|cFFFFCC00Jan 03rd, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r ElvUI skins should have now a more good looking scrollbar.\n\n|cFFFFFF00-|r When starting to edit a custom display, the code window now clear the code from the previous display.\n\n|cFFFFFF00v7.3.2.5154.128 (|cFFFFCC00Dec 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r API and Create Aura windows are now attached to the new plugin window.\n\n|cFFFFFF00v7.3.2.5101.128 (|cFFFFCC00Dec 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Moving the custom display window to the new plugins window.\n\n|cFFFFFF00-|r Major layout changes on the Encounter Details plugin window.\n\n|cFFFFFF00v7.3.2.4919.128 (|cFFFFCC00Dec 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with the statistics sharing among guild members.\n\n|cFFFFFF00-|r Fixed an issue with Argus encounter where two segments were created.\n\n|cFFFFFF00-|r Fixed aura type images on the Create Aura Panel.\n\n|cFFFFFF00-|r Create Aura Panel can now be closed with Right Click.\n\n|cFFFFFF00-|r Framework updated to r60, plugins should be more stable now.\n\n|cFFFFFF00v7.3.0.4830.126 (|cFFFFFF00v7.3.2.4836.126 (|cFFFFCC00Nov 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Removed some tutorial windows popups.\n\n|cFFFFCC00Oct 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed opening windows when streamer settings > no alerts is enabled.\n\n|cFFFFFF00v7.3.0.4823.126 (|cFFFFCC00Oct 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added new options section: Streamer Settings, focused on adjustments for streamers and youtubers.\n\n|cFFFFFF00-|r Animations now always run at the same speed regardless the framerate.\n\n|cFFFFFF00-|r Click-To-Open menus now close the menu if the menu is already open.\n\n|cFFFFFF00v7.3.0.4723.126 (|cFFFFCC00Set 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed overall dungeon segments being added to overall data.\n\n|cFFFFFF00v7.3.0.4705.126 (|cFFFFCC00Set 19th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed damage taken tooltip for Brewmaster Monk where sometimes the tooltip didn't open.\n\n|cFFFFFF00-|r Fixed overall data on mythic dungeon not adding trash segments even with the option enabled on the options panel.\n\n|cFFFFFF00-|r Fixed the guild selection dropdown reseting everytime the Guild Rank window is opened.\n\n|cFFFFFF00v7.3.0.4677.126 (|cFFFFCC00Set 10th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r During mythic dungeons, the trash segments will be merged into a new segment at the end of the boss encounter (instead of merging on the fly while cleaning up).\n\n|cFFFFFF00v7.3.0.4615.125 (|cFFFFCC00Set 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Setting up the dungeon stuff as opt-in for early adopters while we continue to make improvements on the system.\n\n|cFFFFFF00v7.3.0.4586.125 (|cFFFFCC00Set 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Formating mythic+ dungeon segments, each segment should count the boss trash + boss fight.\n\n|cFFFFFF00-|r At the end of the mythic+ dungeon, it should create a new segment adding up all segments described above.\n\n|cFFFFFF00v7.3.0.4499.124 (|cFFFFCC00Set 05th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an option to always show all players when using the standard mode. Option under PvP/PvE bracket on the options panel.\n\n|cFFFFFF00-|r Added a setting to exclude healing done lines from the death log below a certain healing amount. This options is also under PvP/PvE bracket.\n\n|cFFFFFF00-|r Fixed the guild selection on the ranking panel.\n\n|cFFFFFF00v7.3.0.4467.124 (|cFFFFCC00August 29th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Damage or Healing record for the encounter should be printed on chat on the boss pull.\nUse /run Details.announce_damagerecord.enabled = false; to disable.\n\n|cFFFFFF00v7.2.5.4437.124 (|cFFFFCC00August 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added healing done cap for death log. Use /run Details.deathlog_healingdone_min = 10000\n\n|cFFFFFF00-|r Fixed an issue where the alpha from the fixed bar color was used even when this option was disabled.\n\n|cFFFFFF00v7.2.5.4436.124 (|cFFFFCC00August 17th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Attempt to fix the issue where the window doesn't update after entering a raid or reseting data.\n\n|cFFFFFF00v7.2.5.4434.124 (|cFFFFCC00August 10th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added buttons to create an aura at Aura tab on the Player Details window.\n\n|cFFFFFF00-|r Fixes and improvements on the damage rank panel.\n\n|cFFFFFF00-|r Best damage or healing for the player on the current boss encounter is now shown on the spec icon tooltip.\n\n|cFFFFFF00-|r Major revamp on the aura creation panel.\n\n|cFFFFFF00v7.2.5.4369.124 (|cFFFFCC00August 1st, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! can now track debuff applications (stack) and refreshes.\n\n|cFFFFFF00-|r Added new tab on Player Detail Window called 'Auras', you can see your buffs and debuffs from there.\n\n|cFFFFFF00-|r Death log now show debuff applications.\n\n|cFFFFFF00v7.2.5.4275.123 (|cFFFFCC00July 18th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some issues with tooltiops popup when the user press SHIFT.\n\n|cFFFFFF00-|r Now is possible to change the bar durating when selecting Cast Start trigger on Details! Forge.\n\n|cFFFFFF00-|r Kil'Jaeden adds should be consolidated into only one actor instead of having one for each player targeted.\n\n|cFFFFFF00v7.2.5.4236.122 (|cFFFFCC00July 05th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r The alert to open the raid ranking after a boss kill, is now shown for 10 seconds (down from 40).\n\n|cFFFFFF00-|r Added a report button on the raid ranking panel and boss are sort alphabetically.\n\n|cFFFFFF00-|r Fixed some issues on the combatlog introduced on the wow patch 7.2.5 where sometimes the source of an event has no name.\n\n|cFFFFFF00-|r Ticket #209, fixed more issues with the comparison panel where are pets involved.\n\n|cFFFFFF00v7.2.5.4201.121 (|cFFFFCC00June 26th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk Stagger where it was only shown on the friendly fire and not under the Damage Taken display.\n\n|cFFFFFF00-|r Added Forge and Ranking options on the main menu (orange cogwheel).\n\n|cFFFFFF00v7.2.5.4102.121 (|cFFFFCC00June 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! Forge has updated and now is more usder friendly.\n\n|cFFFFFF00-|r Fixed an issue with player buff uptime where sometimes some buffs wans't showing in the tooltip.\n\n|cFFFFFF00v7.2.5.3968.120 (|cFFFFCC00June 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r New Death Recap implemented! replaces the default from Blizzard and can be configured at Options > Raid Tools.\n\n|cFFFFFF00-|r New Guild Damage and Heal rank on '/details ranking' panel.\n\n|cFFFFFF00-|r Added a Guild Sync button on the Details! Ranking Panel.\n\n|cFFFFFF00-|r Added Custom display 'Damage on Shields', useful for encounter like Maiden of Vigilance where there's big shields to be removed and you want to know who is doing more damage to it.\n\n|cFFFFFF00-|r Added Heal Absorbed display under Heal bracket.\n\nHeal Absorb are the heal denied by abilities such like DK's Necrotic Strike or raid boss Sisters of the Moon 'Embrace of the Eclipse' ability.\nThe tooltip of this display shows which players got heal denied, which abilities absorbed the heal, which abilities tried to heal but got the heal denied.\n\n|cFFFFFF00-|r Added Alternate Power display under Energy bracket, it shows the total of alternate power gain from each player, useful for encounters such as Demonic Inquisition.\n\n|cFFFFFF00-|r 'First Hit' message after pulling a boss, now also shows who the boss is targeting (almost always is who pulled).\n\n|cFFFFFF00-|r Raid Dps {rdps} and Hps {rhps} can now be used on the Broker Data Feed..\n\n|cFFFFFF00-|r Fixed an issue with Chromie from the scenario 'The Deaths of Chromie' where she wasn't being shown on the meter.\n\n|cFFFFFF00-|r Fixed Paladin 'Light of the Martyr' damage to self.\n\n|cFFFFFF00-|r Ticket #198 'Script Error' Fixed.\n\n|cFFFFFF00v7.2.0.3703.119 (|cFFFFCC00May 29th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an error while killing low level mobs with warrior class.\n\n|cFFFFFF00v7.2.0.3693.118 (|cFFFFCC00May 25th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fury Warrior shouldn't be assigned as Protection any more.\n\n|cFFFFFF00-|r Some parser fixes.\n\n|cFFFFFF00v7.2.0.3673.118 (|cFFFFCC00May 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #187: Fixed an issue when comparing hunter pets on the player detail window.\n\n|cFFFFFF00-|r Ticket #189 #186: Fixed a taint issue for some classes when using friendly nameplates on.\n\n|cFFFFFF00v7.2.0.3512.116 (|cFFFFCC00April 27th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Havoc Demon Hunter: your fury energy is being shown under Mana Restored (don't ask me why, the combat log is telling us it's mana).\n\n|cFFFFFF00-|r Pets now are shown on damage tooltips.\n\n|cFFFFFF00-|r Pets are now also shown on the comparison panel.\n\n|cFFFFFF00v7.2.0.3474.116 (|cFFFFCC00April 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Plugin: Raid Check > added some food buffs which wasn't being tracked.\n\n|cFFFFFF00v7.2.0.3467.116 (|cFFFFCC00April 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for the custom display window where apply and cancel buttons where over the edit window.\n\n|cFFFFFF00-|r Fix for an issue on editing a bookmark.\n\n|cFFFFFF00v7.1.5.3459.116 (|cFFFFCC00Mar 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue on dynamic overall data where it wasn't showing DPS.\n\n|cFFFFFF00-|r Fixed an issue with Apply, Save and Cancel buttons when editing a custom display.\n\n|cFFFFFF00-|r Removed the Damage and Healing presets for custom displays, now is only possible create custom displays by scripting them.\n\n|cFFFFFF00v7.1.5.3431.116 (|cFFFFCC00Mar 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with bar orientation right to left where fixed bar color isn't working.\n\n|cFFFFFF00-|r The nickname field now use FrizQuadrataTT font and shall be compatible with Cyrillic.\n\n|cFFFFFF00v7.1.5.3418.116 (|cFFFFCC00Mar 1st, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #167 fix: Light of the Martyr self-damage now does reduce the healing done (following WCL method).\n\n|cFFFFFF00-|r Ticket #169 fix: Damage Prevented is now working for new segments.\n\n|cFFFFFF00-|r Fixed an issue where sometimes BeastMaster's Hati pet wasn't detected correctly.\n\n|cFFFFFF00v7.1.5.3369.116 (|cFFFFCC00Feb 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added custom display 'Dynamic Overall Damage' for mythic dungeons.\n\n|cFFFFFF00-|r Fix for Ticket #168: 'Auto Hide While [Not] Inside Instance is broken'.\n\n|cFFFFFF00-|r The bar truncate frame 'DetailsLeftTextAntiTruncate' is now created on Details! load instead on demand.\n\n|cFFFFFF00v7.1.5.3315.116 (|cFFFFCC00Jan 23th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #162: 'no Monochrome font' available, added an experimental slash command: /run _detalhes:UseOutline ('MONOCHROME').\n\n|cFFFFFF00-|r Ticket #158: 'no elapsed time shown on report to chat', added the elapsed time when reporting a segment.\n\n|cFFFFFF00-|r Ticket #164: 'error when browsing segments', an attempt to fix the problem has been made.\n\n|cFFFFFF00v7.1.5.3305.116 (|cFFFFCC00Jan 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Another fix for mythic dungeons overall data reset (thanks Tharai @ Curseforge).\n\n|cFFFFFF00-|r Fix for spec detection on PvP Arenas (thanks Pas06 @ Curseforge).\n\n|cFFFFFF00v7.1.0.3276.115 (|cFFFFCC00Jan 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the overall data not reseting when starting a new mythic+ dungeon.\n\n|cFFFFFF00v7.1.0.3266.115 (|cFFFFCC00Dec 29th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with overall data not updating correctly at the end of the combat.\n\n|cFFFFFF00-|r Added a tutorial line on the window when the user access overall data.\n\n|cFFFFFF00v7.1.0.3236.115 (|cFFFFCC00Dec 19th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Integration with BigWigs should be working okay now.\n\n|cFFFFFF00v7.1.0.3231.115 (|cFFFFCC00Dec 15th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Disabled the link with BigWigs to avoid the 'RegisterMessage' error on every login.\n\n|cFFFFFF00v7.1.0.3229.115 (|cFFFFCC00Dec 09th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r When a window is locked, resize grips shouldn't be enabled messing with bar mouse over.\n\n|cFFFFFF00v7.0.3.3222.115 (|cFFFFCC00November 28th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Unstable Affliction to common spells with the same name.\n\n|cFFFFFF00-|r Fixed few issues with built-in plugins.\n\n|cFFFFFF00v7.0.3.3202.115 (|cFFFFCC00November 08th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Weakauras creator from the Encounter Details plugin and '/details forge' shall work correctly now with Trials of Valor.\n\n|cFFFFFF00-|r Raid history should now be recording your Trials of Valor kills.\n\n|cFFFFFF00-|r Added Trials of Valor raid info, good luck and have fun!.\n\n|cFFFFFF00v7.0.3.3201.115 (|cFFFFCC00November 04th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for Paladin holy icon.\n\n|cFFFFFF00-|r Fix for Rogue outlaw icon.\n\n|cFFFFFF00-|r Fixed misc displays with bar sorted by ascending order.\n\n|cFFFFFF00-|r Fix for '/details show' command while the window is on auto hide.\n\n|cFFFFFF00v7.0.3.3114.115 (|cFFFFCC00October 26th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Encounter Details (plugin): tooltip tutorial is now clamped to screen and its close button should be visible.\n\n|cFFFFFF00-|r Raid Check (plugin): now also works on dungeons.\n\n|cFFFFFF00-|r Added Potion of the Prolongued Power to the tracker.\n\n|cFFFFFF00v7.1.0.3097.115 (|cFFFFCC00October 25th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r renamed 'report history' to 'latest reports'.\n\n|cFFFFFF00-|r attempt to make all Details! users on the party or raid to track rogue's akaari's soul." + + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v8.0.1.6402.134 (|cFFFFCC00September 10th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! is ready for Uldir mythic raiding!.\n\n|cFFFFFF00-|r Details! Scroll Damage for training in dummies is now ready for more tests, access it |cFFFFFF00/details scrolldamage|r.\n\n|cFFFFFF00-|r Damage and Healing tooltips now show a statusbar indicating the percent done by the ability.\n\n|cFFFFFF00-|r Added a scale slider to the options panel.\n\n|cFFFFFF00-|r Added monk's Quaking Palm to crowd control spells.\n\n|cFFFFFF00-|r Fixed an issue with Plater integration.\n\n|cFFFFFF00-|r Fixed tooltips not hiding when the cursor leaves the spell icon in the Damage Taken by Spell.\n\n|cFFFFFF00-|r Framework: fixed an issue with tooltips and menus where the division line wasn't hiding properly.\n\n|cFFFFFF00-|r Framework: fixed some buttons not showing its text in the options panel.\n\n|cFFFFFF00v8.0.1.6272.134 (|cFFFFCC00August 28th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Dynamic Overall Data custom display.\n\n|cFFFFFF00-|r Fixed friendly fire on some dungeon fights with mind control.\n\n|cFFFFFF00-|r Raid Check plugin fully revamped, now shows talents, spec and role.\n\n|cFFFFFF00-|r Updated flask and food list for BFA.\n\n|cFFFFFF00-|r Added NpcID listing at the Spell List window.\n\n|cFFFFFF00-|r Fixed an issue with Alliance or Horde icons showing at random in player bars.\n\n|cFFFFFF00-|r Small revamp in the Death Recap window.\n\n|cFFFFFF00-|r Fixed new segment creation when the option to use only one segment while in a battleground is disabled.\n\n|cFFFFFF00-|r Fixed east asian number format on several strings.\n\n|cFFFFFF00-|r 'Smart Score' option renamed to 'Unique Segment' under the PvP options for battlegrounds.\n\n|cFFFFFF00v8.0.1.6120.132 (|cFFFFCC00August 07th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Death Knight: Epidemic, Scourge Strike and Howling Blast now has a better description on the spell name.\n\n|cFFFFFF00-|r Fixed snap button showing when 'Hide Resize Buttons' are enabled.\n\n|cFFFFFF00-|r Fixed title bar icons not hiding when 'Auto Hide Buttons' is enabled.\n\n|cFFFFFF00-|r Several improvements to overall data, it should be more consistent now.\n\n|cFFFFFF00-|r Details! now passes to identify the tank role of the player even when out of a party or raid.\n\n|cFFFFFF00-|r Debug helper /run Details:DumpTable(table) now correctly shows the key name when it isn't a string.\n\n|cFFFFFF00-|r Improvements done on the Bookmark config frame accessed by the options panel > display section.\n\n|cFFFFFF00-|r New slash command: '/details spells'.\n\n|cFFFFFF00-|r Statistics for Legion has been closed! You can access statistics from the orange gear > statistics.\n\n|cFFFFFF00v8.0.1.6027.132 (|cFFFFCC00July 28th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added size offset options for the chat tab embed feature.\n\n|cFFFFFF00-|r Revamp on the editor for the custom line text.\n\n|cFFFFFF00v8.0.1.5985.131 (|cFFFFCC00July 17th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 'Auto Run Code' module.\n\n|cFFFFFF00-|r Added 'Plater Nameplates' integration.\n\n|cFFFFFF00-|r Weakauras integration with the Create Aura panel got great improvements.\n\n|cFFFFFF00-|r Many options has been renamed or moved from groups for better organization .\n\n|cFFFFFF00-|r Several skins got some revamp for 2018.\n\n|cFFFFFF00-|r Default settings for Arenas and Battlegrounds got changes and the experience should be more smooth now.\n\n|cFFFFFF00v7.3.5.5559.130 (|cFFFFCC00April 13th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added slash commands: /details 'softtoggle' 'softshow' 'softhide'. Use them to manipulate the window visibility while using auto hide.\n\n|cFFFFFF00-|r Mythic dungeon graphic window won't show up if the user leaves the dungeon before completing it.\n\n|cFFFFFF00v7.3.5.5529.130 (|cFFFFCC00April 06th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added minimize button on the mythic dungeon run chart.\n\n|cFFFFFF00-|r Added API calls: Details:ResetSegmentOverallData() and Details:ResetSegmentData().\n\n|cFFFFFF00v7.3.5.5499.130 (|cFFFFCC00Mar 30th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added outline option for the right text.\n\n|cFFFFFF00v7.3.5.5469.130 (|cFFFFCC00Mar 23th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a few things on the mythic dungeon chart.\n\n|cFFFFFF00v7.3.5.5424.129 (|cFFFFCC00Mar 10th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added macro support to open plugins. Example:\n /run Details:OpenPlugin ('Time Line')\n\n|cFFFFFF00v7.3.5.5351.129 (|cFFFFCC00Feb 26rd, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added a damage chart for mythic dungeon runs, it shows at the of the run. You may disable it at the Streamer Settings.\n\n|cFFFFFF00v7.3.5.5231.128 (|cFFFFCC00Feb 02nd, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with wasted shield absorbs where the wasted amount was subtracting the total healing done.\n\n|cFFFFFF00v7.3.5.5221.128 (|cFFFFCC00Jan 26th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Warlock mana from Life Tap won't show up any more under mana regen, this makes easy to see Soul Shard gain.\n\n|cFFFFFF00v7.3.2.5183.128 (|cFFFFCC00Jan 12th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r The new bar animation is now applied to all users by default.\n\n|cFFFFFF00-|r Fixed an issue with the threat plugin where sometimes it was triggering errors.\n\n|cFFFFFF00v7.3.2.5175.128 (|cFFFFCC00Jan 03rd, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r ElvUI skins should have now a more good looking scrollbar.\n\n|cFFFFFF00-|r When starting to edit a custom display, the code window now clear the code from the previous display.\n\n|cFFFFFF00v7.3.2.5154.128 (|cFFFFCC00Dec 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r API and Create Aura windows are now attached to the new plugin window.\n\n|cFFFFFF00v7.3.2.5101.128 (|cFFFFCC00Dec 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Moving the custom display window to the new plugins window.\n\n|cFFFFFF00-|r Major layout changes on the Encounter Details plugin window.\n\n|cFFFFFF00v7.3.2.4919.128 (|cFFFFCC00Dec 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with the statistics sharing among guild members.\n\n|cFFFFFF00-|r Fixed an issue with Argus encounter where two segments were created.\n\n|cFFFFFF00-|r Fixed aura type images on the Create Aura Panel.\n\n|cFFFFFF00-|r Create Aura Panel can now be closed with Right Click.\n\n|cFFFFFF00-|r Framework updated to r60, plugins should be more stable now.\n\n|cFFFFFF00v7.3.0.4830.126 (|cFFFFFF00v7.3.2.4836.126 (|cFFFFCC00Nov 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Removed some tutorial windows popups.\n\n|cFFFFCC00Oct 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed opening windows when streamer settings > no alerts is enabled.\n\n|cFFFFFF00v7.3.0.4823.126 (|cFFFFCC00Oct 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added new options section: Streamer Settings, focused on adjustments for streamers and youtubers.\n\n|cFFFFFF00-|r Animations now always run at the same speed regardless the framerate.\n\n|cFFFFFF00-|r Click-To-Open menus now close the menu if the menu is already open.\n\n|cFFFFFF00v7.3.0.4723.126 (|cFFFFCC00Set 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed overall dungeon segments being added to overall data.\n\n|cFFFFFF00v7.3.0.4705.126 (|cFFFFCC00Set 19th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed damage taken tooltip for Brewmaster Monk where sometimes the tooltip didn't open.\n\n|cFFFFFF00-|r Fixed overall data on mythic dungeon not adding trash segments even with the option enabled on the options panel.\n\n|cFFFFFF00-|r Fixed the guild selection dropdown reseting everytime the Guild Rank window is opened.\n\n|cFFFFFF00v7.3.0.4677.126 (|cFFFFCC00Set 10th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r During mythic dungeons, the trash segments will be merged into a new segment at the end of the boss encounter (instead of merging on the fly while cleaning up).\n\n|cFFFFFF00v7.3.0.4615.125 (|cFFFFCC00Set 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Setting up the dungeon stuff as opt-in for early adopters while we continue to make improvements on the system.\n\n|cFFFFFF00v7.3.0.4586.125 (|cFFFFCC00Set 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Formating mythic+ dungeon segments, each segment should count the boss trash + boss fight.\n\n|cFFFFFF00-|r At the end of the mythic+ dungeon, it should create a new segment adding up all segments described above.\n\n|cFFFFFF00v7.3.0.4499.124 (|cFFFFCC00Set 05th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added an option to always show all players when using the standard mode. Option under PvP/PvE bracket on the options panel.\n\n|cFFFFFF00-|r Added a setting to exclude healing done lines from the death log below a certain healing amount. This options is also under PvP/PvE bracket.\n\n|cFFFFFF00-|r Fixed the guild selection on the ranking panel.\n\n|cFFFFFF00v7.3.0.4467.124 (|cFFFFCC00August 29th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Damage or Healing record for the encounter should be printed on chat on the boss pull.\nUse /run Details.announce_damagerecord.enabled = false; to disable.\n\n|cFFFFFF00v7.2.5.4437.124 (|cFFFFCC00August 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added healing done cap for death log. Use /run Details.deathlog_healingdone_min = 10000\n\n|cFFFFFF00-|r Fixed an issue where the alpha from the fixed bar color was used even when this option was disabled.\n\n|cFFFFFF00v7.2.5.4436.124 (|cFFFFCC00August 17th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Attempt to fix the issue where the window doesn't update after entering a raid or reseting data.\n\n|cFFFFFF00v7.2.5.4434.124 (|cFFFFCC00August 10th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added buttons to create an aura at Aura tab on the Player Details window.\n\n|cFFFFFF00-|r Fixes and improvements on the damage rank panel.\n\n|cFFFFFF00-|r Best damage or healing for the player on the current boss encounter is now shown on the spec icon tooltip.\n\n|cFFFFFF00-|r Major revamp on the aura creation panel.\n\n|cFFFFFF00v7.2.5.4369.124 (|cFFFFCC00August 1st, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! can now track debuff applications (stack) and refreshes.\n\n|cFFFFFF00-|r Added new tab on Player Detail Window called 'Auras', you can see your buffs and debuffs from there.\n\n|cFFFFFF00-|r Death log now show debuff applications.\n\n|cFFFFFF00v7.2.5.4275.123 (|cFFFFCC00July 18th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed some issues with tooltiops popup when the user press SHIFT.\n\n|cFFFFFF00-|r Now is possible to change the bar durating when selecting Cast Start trigger on Details! Forge.\n\n|cFFFFFF00-|r Kil'Jaeden adds should be consolidated into only one actor instead of having one for each player targeted.\n\n|cFFFFFF00v7.2.5.4236.122 (|cFFFFCC00July 05th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r The alert to open the raid ranking after a boss kill, is now shown for 10 seconds (down from 40).\n\n|cFFFFFF00-|r Added a report button on the raid ranking panel and boss are sort alphabetically.\n\n|cFFFFFF00-|r Fixed some issues on the combatlog introduced on the wow patch 7.2.5 where sometimes the source of an event has no name.\n\n|cFFFFFF00-|r Ticket #209, fixed more issues with the comparison panel where are pets involved.\n\n|cFFFFFF00v7.2.5.4201.121 (|cFFFFCC00June 26th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk Stagger where it was only shown on the friendly fire and not under the Damage Taken display.\n\n|cFFFFFF00-|r Added Forge and Ranking options on the main menu (orange cogwheel).\n\n|cFFFFFF00v7.2.5.4102.121 (|cFFFFCC00June 22th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! Forge has updated and now is more usder friendly.\n\n|cFFFFFF00-|r Fixed an issue with player buff uptime where sometimes some buffs wans't showing in the tooltip.\n\n|cFFFFFF00v7.2.5.3968.120 (|cFFFFCC00June 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r New Death Recap implemented! replaces the default from Blizzard and can be configured at Options > Raid Tools.\n\n|cFFFFFF00-|r New Guild Damage and Heal rank on '/details ranking' panel.\n\n|cFFFFFF00-|r Added a Guild Sync button on the Details! Ranking Panel.\n\n|cFFFFFF00-|r Added Custom display 'Damage on Shields', useful for encounter like Maiden of Vigilance where there's big shields to be removed and you want to know who is doing more damage to it.\n\n|cFFFFFF00-|r Added Heal Absorbed display under Heal bracket.\n\nHeal Absorb are the heal denied by abilities such like DK's Necrotic Strike or raid boss Sisters of the Moon 'Embrace of the Eclipse' ability.\nThe tooltip of this display shows which players got heal denied, which abilities absorbed the heal, which abilities tried to heal but got the heal denied.\n\n|cFFFFFF00-|r Added Alternate Power display under Energy bracket, it shows the total of alternate power gain from each player, useful for encounters such as Demonic Inquisition.\n\n|cFFFFFF00-|r 'First Hit' message after pulling a boss, now also shows who the boss is targeting (almost always is who pulled).\n\n|cFFFFFF00-|r Raid Dps {rdps} and Hps {rhps} can now be used on the Broker Data Feed..\n\n|cFFFFFF00-|r Fixed an issue with Chromie from the scenario 'The Deaths of Chromie' where she wasn't being shown on the meter.\n\n|cFFFFFF00-|r Fixed Paladin 'Light of the Martyr' damage to self.\n\n|cFFFFFF00-|r Ticket #198 'Script Error' Fixed.\n\n|cFFFFFF00v7.2.0.3703.119 (|cFFFFCC00May 29th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an error while killing low level mobs with warrior class.\n\n|cFFFFFF00v7.2.0.3693.118 (|cFFFFCC00May 25th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fury Warrior shouldn't be assigned as Protection any more.\n\n|cFFFFFF00-|r Some parser fixes.\n\n|cFFFFFF00v7.2.0.3673.118 (|cFFFFCC00May 09th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #187: Fixed an issue when comparing hunter pets on the player detail window.\n\n|cFFFFFF00-|r Ticket #189 #186: Fixed a taint issue for some classes when using friendly nameplates on.\n\n|cFFFFFF00v7.2.0.3512.116 (|cFFFFCC00April 27th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Havoc Demon Hunter: your fury energy is being shown under Mana Restored (don't ask me why, the combat log is telling us it's mana).\n\n|cFFFFFF00-|r Pets now are shown on damage tooltips.\n\n|cFFFFFF00-|r Pets are now also shown on the comparison panel.\n\n|cFFFFFF00v7.2.0.3474.116 (|cFFFFCC00April 20th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Plugin: Raid Check > added some food buffs which wasn't being tracked.\n\n|cFFFFFF00v7.2.0.3467.116 (|cFFFFCC00April 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for the custom display window where apply and cancel buttons where over the edit window.\n\n|cFFFFFF00-|r Fix for an issue on editing a bookmark.\n\n|cFFFFFF00v7.1.5.3459.116 (|cFFFFCC00Mar 21th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue on dynamic overall data where it wasn't showing DPS.\n\n|cFFFFFF00-|r Fixed an issue with Apply, Save and Cancel buttons when editing a custom display.\n\n|cFFFFFF00-|r Removed the Damage and Healing presets for custom displays, now is only possible create custom displays by scripting them.\n\n|cFFFFFF00v7.1.5.3431.116 (|cFFFFCC00Mar 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with bar orientation right to left where fixed bar color isn't working.\n\n|cFFFFFF00-|r The nickname field now use FrizQuadrataTT font and shall be compatible with Cyrillic.\n\n|cFFFFFF00v7.1.5.3418.116 (|cFFFFCC00Mar 1st, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #167 fix: Light of the Martyr self-damage now does reduce the healing done (following WCL method).\n\n|cFFFFFF00-|r Ticket #169 fix: Damage Prevented is now working for new segments.\n\n|cFFFFFF00-|r Fixed an issue where sometimes BeastMaster's Hati pet wasn't detected correctly.\n\n|cFFFFFF00v7.1.5.3369.116 (|cFFFFCC00Feb 07th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added custom display 'Dynamic Overall Damage' for mythic dungeons.\n\n|cFFFFFF00-|r Fix for Ticket #168: 'Auto Hide While [Not] Inside Instance is broken'.\n\n|cFFFFFF00-|r The bar truncate frame 'DetailsLeftTextAntiTruncate' is now created on Details! load instead on demand.\n\n|cFFFFFF00v7.1.5.3315.116 (|cFFFFCC00Jan 23th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Ticket #162: 'no Monochrome font' available, added an experimental slash command: /run _detalhes:UseOutline ('MONOCHROME').\n\n|cFFFFFF00-|r Ticket #158: 'no elapsed time shown on report to chat', added the elapsed time when reporting a segment.\n\n|cFFFFFF00-|r Ticket #164: 'error when browsing segments', an attempt to fix the problem has been made.\n\n|cFFFFFF00v7.1.5.3305.116 (|cFFFFCC00Jan 15th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Another fix for mythic dungeons overall data reset (thanks Tharai @ Curseforge).\n\n|cFFFFFF00-|r Fix for spec detection on PvP Arenas (thanks Pas06 @ Curseforge).\n\n|cFFFFFF00v7.1.0.3276.115 (|cFFFFCC00Jan 08th, 2017|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the overall data not reseting when starting a new mythic+ dungeon.\n\n|cFFFFFF00v7.1.0.3266.115 (|cFFFFCC00Dec 29th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with overall data not updating correctly at the end of the combat.\n\n|cFFFFFF00-|r Added a tutorial line on the window when the user access overall data.\n\n|cFFFFFF00v7.1.0.3236.115 (|cFFFFCC00Dec 19th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Integration with BigWigs should be working okay now.\n\n|cFFFFFF00v7.1.0.3231.115 (|cFFFFCC00Dec 15th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Disabled the link with BigWigs to avoid the 'RegisterMessage' error on every login.\n\n|cFFFFFF00v7.1.0.3229.115 (|cFFFFCC00Dec 09th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r When a window is locked, resize grips shouldn't be enabled messing with bar mouse over.\n\n|cFFFFFF00v7.0.3.3222.115 (|cFFFFCC00November 28th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Unstable Affliction to common spells with the same name.\n\n|cFFFFFF00-|r Fixed few issues with built-in plugins.\n\n|cFFFFFF00v7.0.3.3202.115 (|cFFFFCC00November 08th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Weakauras creator from the Encounter Details plugin and '/details forge' shall work correctly now with Trials of Valor.\n\n|cFFFFFF00-|r Raid history should now be recording your Trials of Valor kills.\n\n|cFFFFFF00-|r Added Trials of Valor raid info, good luck and have fun!.\n\n|cFFFFFF00v7.0.3.3201.115 (|cFFFFCC00November 04th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fix for Paladin holy icon.\n\n|cFFFFFF00-|r Fix for Rogue outlaw icon.\n\n|cFFFFFF00-|r Fixed misc displays with bar sorted by ascending order.\n\n|cFFFFFF00-|r Fix for '/details show' command while the window is on auto hide.\n\n|cFFFFFF00v7.0.3.3114.115 (|cFFFFCC00October 26th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Encounter Details (plugin): tooltip tutorial is now clamped to screen and its close button should be visible.\n\n|cFFFFFF00-|r Raid Check (plugin): now also works on dungeons.\n\n|cFFFFFF00-|r Added Potion of the Prolongued Power to the tracker.\n\n|cFFFFFF00v7.1.0.3097.115 (|cFFFFCC00October 25th, 2016|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r renamed 'report history' to 'latest reports'.\n\n|cFFFFFF00-|r attempt to make all Details! users on the party or raid to track rogue's akaari's soul." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " @@ -50,7 +60,8 @@ do --> quais raides devem ser guardadas no hist�rico _detalhes.InstancesToStoreData = { --> mapIDs - [1148] = true, --Uldir (BFA) + [1148] = true, --Uldir (BFA) uiMapID + [1861] = true, --Uldir (BFA) from GetInstanceInfo --[1712] = true, --Antorus, the Burning Throne --[1676] = true, --Tomb of Sargeras --[1648] = true, --Trial of Valor @@ -61,6 +72,28 @@ do --[1228] = true, --Highmaul --[1136] = true, --SoO } + + _detalhes.EncountersToStoreData = { --> encounterIDs + --CLEU + [2144] = 1, --Taloc - Taloc + [2141] = 2, --MOTHER - MOTHER + [2128] = 3, --Fetid Devourer - Fetid Devourer + [2136] = 4, --Zek'voz - Zek'voz, Herald of N'zoth + [2134] = 5, --Vectis - Vectis + [2145] = 6, --Zul - Zul, Reborn + [2135] = 7, --Mythrax the Unraveler - Mythrax the Unraveler + [2122] = 8, --G'huun - G'huun + --EJID + [2168] = 1, --Taloc + [2167] = 2, --MOTHER + [2146] = 3, --Fetid Devourer + [2169] = 4, --Zek'voz, Herald of N'zoth + [2166] = 5, --Vectis + [2195] = 6, --Zul, Reborn + [2194] = 7, --Mythrax the Unraveler + [2147] = 8, --G'huun + } + --> armazena os escudos - Shields information for absorbs _detalhes.escudos = {} --> armazena as fun��es dos frames - Frames functions diff --git a/classes/classe_damage.lua b/classes/classe_damage.lua index b12c77cd..46967f10 100644 --- a/classes/classe_damage.lua +++ b/classes/classe_damage.lua @@ -2873,6 +2873,10 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown) r, g, b = unpack (_detalhes.class_colors [self.classe]) end + --> habilidades + local icon_size = _detalhes.tooltip.icon_size + local icon_border = _detalhes.tooltip.icon_border_texcoord + do --> TOP HABILIDADES @@ -2945,9 +2949,7 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown) _detalhes:AddTooltipHeaderStatusbar (r, g, b, barAlha) end - --> habilidades - local icon_size = _detalhes.tooltip.icon_size - local icon_border = _detalhes.tooltip.icon_border_texcoord + local topAbility = ActorSkillsSortTable [1] and ActorSkillsSortTable [1][2] or 0 if (#ActorSkillsSortTable > 0) then for i = 1, _math_min (tooltip_max_abilities, #ActorSkillsSortTable) do @@ -2971,13 +2973,14 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown) end GameCooltip:AddIcon (icone_magia, nil, nil, icon_size.W, icon_size.H, icon_border.L, icon_border.R, icon_border.T, icon_border.B) - _detalhes:AddTooltipBackgroundStatusbar() + _detalhes:AddTooltipBackgroundStatusbar (false, totalDamage/topAbility*100) end else GameCooltip:AddLine (Loc ["STRING_NO_SPELL"]) end --> MOSTRA INIMIGOS + local topEnemy = ActorTargetsSortTable [1] and ActorTargetsSortTable [1][2] or 0 if (instancia.sub_atributo == 1 or instancia.sub_atributo == 6) then _detalhes:AddTooltipSpellHeaderText (Loc ["STRING_TARGETS"], headerColor, #ActorTargetsSortTable, [[Interface\Addons\Details\images\icons]], 0, 0.03125, 0.126953125, 0.15625) @@ -3001,11 +3004,8 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown) for i = 1, _math_min (max_targets, #ActorTargetsSortTable) do local este_inimigo = ActorTargetsSortTable [i] GameCooltip:AddLine (este_inimigo[1]..": ", FormatTooltipNumber (_, este_inimigo[2]) .." (".._cstr("%.1f", este_inimigo[2]/ActorDamageWithPet*100).."%)") - --GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\espadas", nil, nil, 14, 14) - --GameCooltip:AddIcon ([[Interface\CHARACTERFRAME\UI-StateIcon]], nil, nil, 14, 14, 33/64, 61/64, 31/64, 60/64) - --GameCooltip:AddIcon ([[Interface\FriendsFrame\StatusIcon-Offline]], nil, nil, 14, 14, 0, 1, 0, 15/16) - GameCooltip:AddIcon ([[Interface\PetBattles\PetBattle-StatIcons]], nil, nil, 12, 12, 0, 0.5, 0, 0.5, {.7, .7, .7, 1}, nil, true) - _detalhes:AddTooltipBackgroundStatusbar() + GameCooltip:AddIcon ([[Interface\PetBattles\PetBattle-StatIcons]], nil, nil, icon_size.W, icon_size.H, 0, 0.5, 0, 0.5, {.7, .7, .7, 1}, nil, true) + _detalhes:AddTooltipBackgroundStatusbar (false, este_inimigo[2] / topEnemy * 100) end end end @@ -3072,6 +3072,7 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown) ismaximized = true end + local topPet = totais [1] and totais [1][2] or 0 for index, _table in _ipairs (totais) do if (_table [2] > 0 and (index <= _detalhes.tooltip.tooltip_max_pets or ismaximized)) then @@ -3097,8 +3098,10 @@ function atributo_damage:ToolTip_DamageDone (instancia, numero, barra, keydown) else GameCooltip:AddLine (n, FormatTooltipNumber (_, _math_floor (_table [3])) .. " (" .. _math_floor (_table [2]/self.total*100) .. "%)") end - _detalhes:AddTooltipBackgroundStatusbar() - GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, 14, 14, 0.25, 0.49609375, 0.75, 1) + + _detalhes:AddTooltipBackgroundStatusbar (false, _table [2] / topPet * 100) + + GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, icon_size.W, icon_size.H, 0.25, 0.49609375, 0.75, 1) end end diff --git a/classes/classe_heal.lua b/classes/classe_heal.lua index a0fb6024..42fef5ab 100644 --- a/classes/classe_heal.lua +++ b/classes/classe_heal.lua @@ -1253,12 +1253,27 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown) local ActorTotal = self [actor_key] + --add actor spells for _spellid, _skill in _pairs (ActorSkillsContainer) do local SkillName, _, SkillIcon = _GetSpellInfo (_spellid) if (_skill [skill_key] > 0) then _table_insert (ActorHealingTable, {_spellid, _skill [skill_key], _skill [skill_key]/ActorTotal*100, {SkillName, nil, SkillIcon}, _skill [skill_key]/meu_tempo, _skill.total}) end end + + --add actor pets + for petIndex, petName in _ipairs (self:Pets()) do + local petActor = instancia.showing[class_type]:PegarCombatente (nil, petName) + if (petActor) then + for _spellid, _skill in _pairs (petActor:GetActorSpells()) do + if (_skill [skill_key] > 0) then + local SkillName, _, SkillIcon = _GetSpellInfo (_spellid) + ActorHealingTable [#ActorHealingTable+1] = {_spellid, _skill [skill_key], _skill [skill_key]/ActorTotal*100, {SkillName, nil, SkillIcon}, _skill [skill_key]/meu_tempo, _skill.total, petName:gsub ((" <.*"), "")} + end + end + end + end + _table_sort (ActorHealingTable, _detalhes.Sort2) --> TOP Curados @@ -1295,21 +1310,36 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown) local icon_size = _detalhes.tooltip.icon_size local icon_border = _detalhes.tooltip.icon_border_texcoord + local topAbility = ActorHealingTable [1] and ActorHealingTable [1][2] or 0 + for i = 1, _math_min (tooltip_max_abilities, #ActorHealingTable) do if (ActorHealingTable[i][2] < 1) then break end + + local spellName = ActorHealingTable[i][4][1] + + local petName = ActorHealingTable[i][7] + if (petName) then + spellName = spellName .. " (|cFFCCBBBB" .. petName .. "|r)" + end + if (instancia.sub_atributo == 2) then --> hps - GameCooltip:AddLine (ActorHealingTable[i][4][1]..": ", FormatTooltipNumber (_, _math_floor (ActorHealingTable[i][5])).." (".._cstr ("%.1f", ActorHealingTable[i][3]).."%)") + GameCooltip:AddLine (spellName ..": ", FormatTooltipNumber (_, _math_floor (ActorHealingTable[i][5])).." (".._cstr ("%.1f", ActorHealingTable[i][3]).."%)") + elseif (instancia.sub_atributo == 3) then --> overheal local overheal = ActorHealingTable[i][2] local total = ActorHealingTable[i][6] - GameCooltip:AddLine (ActorHealingTable[i][4][1] .." (|cFFFF3333" .. _math_floor ( (overheal / (overheal+total)) *100) .. "%|r):", FormatTooltipNumber (_, _math_floor (ActorHealingTable[i][2])).." (".._cstr ("%.1f", ActorHealingTable[i][3]).."%)") + GameCooltip:AddLine (spellName .." (|cFFFF3333" .. _math_floor ( (overheal / (overheal+total)) *100) .. "%|r):", FormatTooltipNumber (_, _math_floor (ActorHealingTable[i][2])).." (".._cstr ("%.1f", ActorHealingTable[i][3]).."%)") + else - GameCooltip:AddLine (ActorHealingTable[i][4][1]..": ", FormatTooltipNumber (_, ActorHealingTable[i][2]).." (".._cstr ("%.1f", ActorHealingTable[i][3]).."%)") + GameCooltip:AddLine (spellName ..": ", FormatTooltipNumber (_, ActorHealingTable[i][2]).." (".._cstr ("%.1f", ActorHealingTable[i][3]).."%)") + end + GameCooltip:AddIcon (ActorHealingTable[i][4][3], nil, nil, icon_size.W, icon_size.H, icon_border.L, icon_border.R, icon_border.T, icon_border.B) - _detalhes:AddTooltipBackgroundStatusbar() + + _detalhes:AddTooltipBackgroundStatusbar (false, ActorHealingTable[i][2] / topAbility * 100) end if (instancia.sub_atributo == 6) then @@ -1321,6 +1351,7 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown) end local container = instancia.showing [2] + local topTarget = ActorHealingTargets [1] and ActorHealingTargets [1][2] or 0 if (instancia.sub_atributo == 1) then -- 1 or 2 -> healing done or hps @@ -1351,7 +1382,7 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown) GameCooltip:AddStatusBar (100, 1, .5, .5, .5, .7) else GameCooltip:AddLine (ActorHealingTargets[i][1]..": ", FormatTooltipNumber (_, ActorHealingTargets[i][2]) .." (".._cstr ("%.1f", ActorHealingTargets[i][3]).."%)") - _detalhes:AddTooltipBackgroundStatusbar() + _detalhes:AddTooltipBackgroundStatusbar (false, ActorHealingTargets[i][2] / topTarget * 100) end local targetActor = container:PegarCombatente (nil, ActorHealingTargets[i][1]) @@ -1362,9 +1393,9 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown) classe = "UNKNOW" end if (classe == "UNKNOW") then - GameCooltip:AddIcon ("Interface\\LFGFRAME\\LFGROLE_BW", nil, nil, 14, 14, .25, .5, 0, 1) + GameCooltip:AddIcon ("Interface\\LFGFRAME\\LFGROLE_BW", nil, nil, icon_size.W, icon_size.H, .25, .5, 0, 1) else - GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, nil, 14, 14, _unpack (_detalhes.class_coords [classe])) + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, nil, icon_size.W, icon_size.H, _unpack (_detalhes.class_coords [classe])) end end end @@ -1442,7 +1473,7 @@ function atributo_heal:ToolTip_HealingDone (instancia, numero, barra, keydown) GameCooltip:AddLine (n, FormatTooltipNumber (_, _table [2]) .. " (" .. _math_floor (_table [2]/self.total*100) .. "%)") end _detalhes:AddTooltipBackgroundStatusbar() - GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, 14, 14, 0.25, 0.49609375, 0.75, 1) + GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, icon_size.W, icon_size.H, 0.25, 0.49609375, 0.75, 1) end end diff --git a/core/control.lua b/core/control.lua index 6996a348..12f806ab 100644 --- a/core/control.lua +++ b/core/control.lua @@ -1497,11 +1497,19 @@ GameCooltip:AddStatusBar (100, 1, 0, 0, 0, 0.8) end - function _detalhes:AddTooltipBackgroundStatusbar (side) + function _detalhes:AddTooltipBackgroundStatusbar (side, value, useSpark) + _detalhes.tooltip.background [4] = 0.8 + _detalhes.tooltip.icon_size.W = 16 + _detalhes.tooltip.icon_size.H = 16 + + value = value or 100 + if (not side) then - GameCooltip:AddStatusBar (100, 1, unpack (_detalhes.tooltip.background)) + local r, g, b, a = unpack (_detalhes.tooltip.background) + GameCooltip:AddStatusBar (value, 1, r, g, b, a, useSpark, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + else - GameCooltip:AddStatusBar (100, 2, unpack (_detalhes.tooltip.background)) + GameCooltip:AddStatusBar (value, 2, unpack (_detalhes.tooltip.background)) end end @@ -1524,13 +1532,16 @@ end end - local bgColor, borderColor = {0.37, 0.37, 0.37, .75}, {.30, .30, .30, .3} + local bgColor, borderColor = {0, 0, 0, 0.8}, {0, 0, 0, 0} --{0.37, 0.37, 0.37, .75}, {.30, .30, .30, .3} function _detalhes:BuildInstanceBarTooltip (frame) local GameCooltip = GameCooltip GameCooltip:Reset() GameCooltip:SetType ("tooltip") + + GameCooltip:SetOption ("MinWidth", _math_max (230, self.baseframe:GetWidth()*0.98)) + GameCooltip:SetOption ("StatusBarTexture", [[Interface\AddOns\Details\images\bar_background]]) GameCooltip:SetOption ("TextSize", _detalhes.tooltip.fontsize) GameCooltip:SetOption ("TextFont", _detalhes.tooltip.fontface) @@ -1540,14 +1551,13 @@ GameCooltip:SetOption ("LeftBorderSize", -4) GameCooltip:SetOption ("RightBorderSize", 4) - GameCooltip:SetOption ("ButtonsYMod", 4) - GameCooltip:SetOption ("RightTextMargin", 0) - - GameCooltip:SetOption ("MinWidth", _math_max (230, self.baseframe:GetWidth()*0.9)) - GameCooltip:SetOption ("StatusBarTexture", [[Interface\AddOns\Details\images\bar_background]]) + GameCooltip:SetOption ("VerticalOffset", 8) + GameCooltip:SetOption ("AlignAsBlizzTooltip", true) + GameCooltip:SetOption ("AlignAsBlizzTooltipFrameHeightOffset", -8) + GameCooltip:SetOption ("LineHeightSizeOffset", 4) + GameCooltip:SetOption ("VerticalPadding", -4) - --GameCooltip:SetBackdrop (1, _detalhes.tooltip_backdrop, backgroundColor, _detalhes.tooltip_border_color) --{.090, .090, .188, .1} GameCooltip:SetBackdrop (1, _detalhes.cooltip_preset2_backdrop, bgColor, borderColor) local myPoint = _detalhes.tooltip.anchor_point @@ -1556,6 +1566,7 @@ local y_Offset = _detalhes.tooltip.anchor_offset[2] if (_detalhes.tooltip.anchored_to == 1) then + GameCooltip:SetHost (frame, myPoint, anchorPoint, x_Offset, y_Offset) else GameCooltip:SetHost (DetailsTooltipAnchor, myPoint, anchorPoint, x_Offset, y_Offset) diff --git a/core/gears.lua b/core/gears.lua index 85b4ad7c..fb55477e 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -1448,7 +1448,9 @@ function _detalhes:StoreEncounter (combat) local name, type, difficulty, difficultyName, maxPlayers, playerDifficulty, isDynamicInstance, mapID, instanceGroupSize = GetInstanceInfo() - if (not store_instances [mapID]) then + local bossCLEUID = combat.boss_info and combat.boss_info.id + + if (not store_instances [mapID] and not _detalhes.EncountersToStoreData [bossCLEUID]) then if (_detalhes.debug) then print ("|cFFFFFF00Details! Storage|r: instance not allowed.") end diff --git a/core/windows.lua b/core/windows.lua index 9ed5b696..7c0cd91d 100644 --- a/core/windows.lua +++ b/core/windows.lua @@ -3960,6 +3960,10 @@ if (not value) then Details:Msg ("a /reload might be needed to disable this setting.") + else + if (Plater) then + Plater.RefreshDBUpvalues() + end end end, name = "Show Real Time Dps", @@ -4068,6 +4072,10 @@ if (not value) then Details:Msg ("a /reload might be needed to disable this setting.") + else + if (Plater) then + Plater.RefreshDBUpvalues() + end end end, name = "Show Real Time Dps (From You)", @@ -4176,6 +4184,10 @@ if (not value) then Details:Msg ("a /reload might be needed to disable this setting.") + else + if (Plater) then + Plater.RefreshDBUpvalues() + end end end, name = "Show Total Damage Taken", @@ -6589,3 +6601,223 @@ function Details:Dump (t) DetailsDumpFrame:Show() end + +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +--> damage scroll + +function Details:ScrollDamage() + if (not DetailsScrollDamage) then + local DF = DetailsFramework + DetailsScrollDamage = DetailsFramework:CreateSimplePanel (UIParent) + DetailsScrollDamage:SetSize (707, 505) + DetailsScrollDamage:SetTitle ("Details! Scroll Damage") + DetailsScrollDamage.Data = {} + DetailsScrollDamage:ClearAllPoints() + DetailsScrollDamage:SetPoint ("left", UIParent, "left", 10, 0) + DetailsScrollDamage:Hide() + + local scroll_width = 675 + local scroll_height = 450 + local scroll_lines = 21 + local scroll_line_height = 20 + + local backdrop_color = {.2, .2, .2, 0.2} + local backdrop_color_on_enter = {.8, .8, .8, 0.4} + local backdrop_color_is_critical = {.4, .4, .2, 0.2} + local backdrop_color_is_critical_on_enter = {1, 1, .8, 0.4} + + local y = -15 + local headerY = y - 15 + local scrollY = headerY - 20 + + --header + local headerTable = { + {text = "Icon", width = 32}, + {text = "Spell Name", width = 180}, + {text = "Amount", width = 80}, + + {text = "Time", width = 80}, + {text = "Token", width = 130}, + {text = "Spell ID", width = 80}, + {text = "School", width = 80}, + } + local headerOptions = { + padding = 2, + } + + DetailsScrollDamage.Header = DetailsFramework:CreateHeader (DetailsScrollDamage, headerTable, headerOptions) + DetailsScrollDamage.Header:SetPoint ("topleft", DetailsScrollDamage, "topleft", 5, headerY) + + local scroll_refresh = function (self, data, offset, total_lines) + + local ToK = _detalhes:GetCurrentToKFunction() + + for i = 1, total_lines do + local index = i + offset + local spellTable = data [index] + + if (spellTable) then + + local line = self:GetLine (i) + local time, token, hidding, sourceSerial, sourceName, sourceFlag, sourceFlag2, targetSerial, targetName, targetFlag, targetFlag2, spellID, spellName, spellType, amount, overKill, school, resisted, blocked, absorbed, isCritical = unpack (spellTable) + + local spellName, _, spellIcon + + if (token ~= "SWING_DAMAGE") then + spellName, _, spellIcon = GetSpellInfo (spellID) + else + spellName, _, spellIcon = GetSpellInfo (1) + end + + line.SpellID = spellID + line.IsCritical = isCritical + + if (isCritical) then + line:SetBackdropColor (unpack (backdrop_color_is_critical)) + else + line:SetBackdropColor (unpack (backdrop_color)) + end + + if (spellName) then + line.Icon:SetTexture (spellIcon) + line.Icon:SetTexCoord (.1, .9, .1, .9) + + line.DamageText.text = isCritical and "|cFFFFFF00" .. ToK (_, amount) or ToK (_, amount) + line.TimeText.text = format ("%.4f", time - DetailsScrollDamage.Data.Started) + line.TokenText.text = token:gsub ("SPELL_", "") + line.SchoolText.text = _detalhes:GetSpellSchoolFormatedName (school) + line.SpellIDText.text = spellID + line.SpellNameText.text = spellName + else + line:Hide() + end + end + end + end + + local lineOnEnter = function (self) + if (self.IsCritical) then + self:SetBackdropColor (unpack (backdrop_color_is_critical_on_enter)) + else + self:SetBackdropColor (unpack (backdrop_color_on_enter)) + end + + if (self.SpellID) then + GameTooltip:SetOwner (self, "ANCHOR_TOPLEFT") + GameTooltip:SetSpellByID (self.SpellID) + GameTooltip:AddLine (" ") + GameTooltip:Show() + end + end + + local lineOnLeave = function (self) + if (self.IsCritical) then + self:SetBackdropColor (unpack (backdrop_color_is_critical)) + else + self:SetBackdropColor (unpack (backdrop_color)) + end + + GameTooltip:Hide() + end + + local scroll_createline = function (self, index) + + local line = CreateFrame ("button", "$parentLine" .. index, self) + line:SetPoint ("topleft", self, "topleft", 1, -((index-1)*(scroll_line_height+1)) - 1) + line:SetSize (scroll_width - 2, scroll_line_height) + + line:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + line:SetBackdropColor (unpack (backdrop_color)) + + DF:Mixin (line, DF.HeaderFunctions) + + line:SetScript ("OnEnter", lineOnEnter) + line:SetScript ("OnLeave", lineOnLeave) + + --icon + local icon = line:CreateTexture ("$parentSpellIcon", "overlay") + icon:SetSize (scroll_line_height - 2, scroll_line_height - 2) + + --spellname + local spellNameText = DF:CreateLabel (line) + + --damage + local damageText = DF:CreateLabel (line) + + --time + local timeText = DF:CreateLabel (line) + + --token + local tokenText = DF:CreateLabel (line) + + --spell ID + local spellIDText = DF:CreateLabel (line) + + --school + local schoolText = DF:CreateLabel (line) + + line:AddFrameToHeaderAlignment (icon) + line:AddFrameToHeaderAlignment (spellNameText) + line:AddFrameToHeaderAlignment (damageText) + line:AddFrameToHeaderAlignment (timeText) + line:AddFrameToHeaderAlignment (tokenText) + line:AddFrameToHeaderAlignment (spellIDText) + line:AddFrameToHeaderAlignment (schoolText) + + line:AlignWithHeader (DetailsScrollDamage.Header, "left") + + line.Icon = icon + line.DamageText = damageText + line.TimeText = timeText + line.TokenText = tokenText + line.SchoolText = schoolText + line.SpellIDText = spellIDText + line.SpellNameText = spellNameText + + return line + end + + local damageScroll = DF:CreateScrollBox (DetailsScrollDamage, "$parentSpellScroll", scroll_refresh, DetailsScrollDamage.Data, scroll_width, scroll_height, scroll_lines, scroll_line_height) + DF:ReskinSlider (damageScroll) + damageScroll:SetPoint ("topleft", DetailsScrollDamage, "topleft", 5, scrollY) + + --create lines + for i = 1, scroll_lines do + damageScroll:CreateLine (scroll_createline) + end + + local combatLogReader = CreateFrame ("frame") + local playerSerial = UnitGUID ("player") + + combatLogReader:SetScript ("OnEvent", function (self) + local timew, token, hidding, sourceSerial, sourceName, sourceFlag, sourceFlag2, targetSerial, targetName, targetFlag, targetFlag2, spellID, spellName, spellType, amount, overKill, school, resisted, blocked, absorbed, isCritical = CombatLogGetCurrentEventInfo() + if (sourceSerial == playerSerial) then + if (token == "SPELL_DAMAGE" or token == "SPELL_PERIODIC_DAMAGE" or token == "RANGE_DAMAGE" or token == "DAMAGE_SHIELD") then + if (not DetailsScrollDamage.Data.Started) then + DetailsScrollDamage.Data.Started = time() + end + tinsert (DetailsScrollDamage.Data, 1, {timew, token, hidding, sourceSerial, sourceName, sourceFlag, sourceFlag2, targetSerial, targetName, targetFlag, targetFlag2, spellID, spellName, spellType, amount, overKill or 0, school or 1, resisted or 0, blocked or 0, absorbed or 0, isCritical}) + damageScroll:Refresh() + + elseif (token == "SWING_DAMAGE") then + -- amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand = spellID, spellName, spellType, amount, overKill, school, resisted, blocked, absorbed, isCritical + -- tinsert (DetailsScrollDamage.Data, 1, {timew, token, hidding, sourceSerial, sourceName, sourceFlag, sourceFlag2, targetSerial, targetName, targetFlag, targetFlag2, spellID, spellName, spellType, amount, overKill, school, resisted, blocked, absorbed, isCritical}) + -- damageScroll:Refresh() + end + end + end) + + DetailsScrollDamage:SetScript ("OnShow", function() + wipe (DetailsScrollDamage.Data) + damageScroll:Refresh() + combatLogReader:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED") + end) + + DetailsScrollDamage:SetScript ("OnHide", function() + combatLogReader:UnregisterEvent ("COMBAT_LOG_EVENT_UNFILTERED") + end) + end + + DetailsScrollDamage:Show() +end + diff --git a/functions/link.lua b/functions/link.lua index 97570d26..b657b5bc 100644 --- a/functions/link.lua +++ b/functions/link.lua @@ -3647,7 +3647,7 @@ header = { {name = L["STRING_FORGE_HEADER_INDEX"], width = 40, type = "text", func = no_func}, {name = "NpcID", width = 100, type = "entry", func = no_func}, - {name = "Npc Name", width = 200, type = "entry", func = no_func}, + {name = "Npc Name", width = 400, type = "entry", func = no_func}, }, fill_panel = false, @@ -4551,6 +4551,9 @@ function _detalhes.OpenDetailsDeathRecap (segment, RecapID) end --> remove the dot signal from the spell name + if (not spellName) then + spellName = "*?*" + end spellName = spellName:gsub (L["STRING_DOT"], "") line.sourceName:SetText (spellName .. " (" .. "|cFFC6B0D9" .. source .. "|r" .. ")") diff --git a/functions/profiles.lua b/functions/profiles.lua index 0df0cb27..224ac1be 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -926,6 +926,10 @@ local default_profile = { scale = 1, }, + options_window = { + scale = 1, + }, + --> segments segments_amount = 18, segments_amount_to_save = 18, diff --git a/functions/slash.lua b/functions/slash.lua index e9537a88..648e3b50 100644 --- a/functions/slash.lua +++ b/functions/slash.lua @@ -386,28 +386,6 @@ function SlashCmdList.DETAILS (msg, editbox) DEFAULT_CHAT_FRAME:AddMessage(msg, 1,0.7,0.5) end - elseif (msg == "ej") then - function PrintAllEncounterSections(encounterID, difficultyID) - EJ_SetDifficulty(difficultyID) - local stack, encounter, _, _, curSectionID = {}, EJ_GetEncounterInfo(encounterID) - print(stack, encounter, _, _, curSectionID) - repeat - local title, desc, depth, icon, model, siblingID, nextSectionID, filteredByDifficulty, link, _, f1, f2, f3, f4 = EJ_GetSectionInfo(curSectionID) - if not filteredByDifficulty then - --print((" "):rep(depth) .. link .. ": " .. desc) - --npcs nao tem icone e possuel modelo diferente de zero. - --spells tem icone e possuel modelo = zero - print (title, icon, model, siblingID) - end - table.insert(stack, siblingID) - table.insert(stack, nextSectionID) - curSectionID = table.remove(stack) - until not curSectionID - end - - -- Print everything in 25-man Normal Madness of Deathwing: - PrintAllEncounterSections (869, 4) - elseif (msg == "time") then print ("GetTime()", GetTime()) print ("time()", time()) @@ -1323,6 +1301,9 @@ Damage Update Status: @INSTANCEDAMAGESTATUS instance:InstanceAlert ("Boss Defeated! Show Ranking", icon, 10, func, true) + elseif (msg == "scroll" or msg == "scrolldamage" or msg == "scrolling") then + Details:ScrollDamage() + elseif (msg == "spec") then local spec = GetSpecialization() @@ -1437,6 +1418,47 @@ Damage Update Status: @INSTANCEDAMAGESTATUS _detalhes:InstanciaCallFunction (_detalhes.ResetaGump) _detalhes:AtualizaGumpPrincipal (-1, true) + elseif (msg == "ej") then + + local result = {} + local spellIDs = {} + + --uldir + EJ_SelectInstance (1031) + + -- pega o root section id do boss + local name, description, encounterID, rootSectionID, link = EJ_GetEncounterInfo (2168) --taloc (primeiro boss de Uldir) + + --overview + local sectionInfo = C_EncounterJournal.GetSectionInfo (rootSectionID) + local nextID = {sectionInfo.siblingSectionID} + + while (nextID [1]) do + --> get the deepest section in the hierarchy + local ID = tremove (nextID) + local sectionInfo = C_EncounterJournal.GetSectionInfo (ID) + + if (sectionInfo) then + tinsert (result, sectionInfo) + + if (sectionInfo.spellID and type (sectionInfo.spellID) == "number" and sectionInfo.spellID ~= 0) then + tinsert (spellIDs, sectionInfo.spellID) + end + + local nextChild, nextSibling = sectionInfo.firstChildSectionID, sectionInfo.siblingSectionID + if (nextSibling) then + tinsert (nextID, nextSibling) + end + if (nextChild) then + tinsert (nextID, nextChild) + end + else + break + end + end + + Details:DumpTable (result) + elseif (msg == "record") then diff --git a/gumps/janela_options.lua b/gumps/janela_options.lua index 60407b9b..0d7912bc 100644 --- a/gumps/janela_options.lua +++ b/gumps/janela_options.lua @@ -188,6 +188,9 @@ function _detalhes:OpenOptionsWindow (instance, no_reopen, section) window.using_skin = 1 + local scaleBar = Details.gump:CreateScaleBar (DetailsOptionsWindow, Details.options_window) + DetailsOptionsWindow:SetScale (Details.options_window.scale) + DetailsOptionsWindow.instance = instance DetailsOptionsWindow.loading_settings = true diff --git a/gumps/janela_principal.lua b/gumps/janela_principal.lua index b1e22a1e..0c2fd809 100644 --- a/gumps/janela_principal.lua +++ b/gumps/janela_principal.lua @@ -2160,7 +2160,7 @@ local icon_frame_on_enter = function (self) end elseif (actor.dead_at) then - + elseif (actor.name) then --ensure it's an actor table @@ -2289,7 +2289,10 @@ local icon_frame_on_enter = function (self) end local icon_frame_on_leave = function (self) GameCooltip:Hide() - --GameTooltip:Hide() + + if (GameTooltip and GameTooltip:IsShown()) then + GameTooltip:Hide() + end if (self.row.icone_classe:GetTexture() ~= "") then --self.row.icone_classe:SetSize (self.row.icone_classe:GetWidth()-1, self.row.icone_classe:GetWidth()-1) diff --git a/gumps/switch.lua b/gumps/switch.lua index 15ba4bf2..0a975427 100644 --- a/gumps/switch.lua +++ b/gumps/switch.lua @@ -156,6 +156,10 @@ do all_switch.wallpaper:SetPoint ("bottomright", all_switch, "bottomright", -4, 4) all_switch.buttons = {} + all_switch.ShowAnimation = _detalhes.gump:CreateAnimationHub (all_switch, function() all_switch:Show() end) + _detalhes.gump:CreateAnimation (all_switch.ShowAnimation, "scale", 1, 0.04, 1, 0, 1, 1, "BOTTOM", 0, 0) + _detalhes.gump:CreateAnimation (all_switch.ShowAnimation, "alpha", 1, 0.04, 0, 1) + all_switch:SetScript ("OnMouseDown", function (self, button) if (button == "RightButton") then self:Hide() @@ -232,7 +236,9 @@ do GameCooltip:Hide() all_switch:ClearAllPoints() all_switch:SetPoint ("bottom", self.baseframe.UPFrame, "top", 4) - all_switch:Show() + + all_switch.ShowAnimation:Play() + --all_switch:Show() if (_detalhes.switch.frame:IsShown()) then _detalhes.switch:CloseMe() diff --git a/startup.lua b/startup.lua index cf3794d7..e2abd0c5 100644 --- a/startup.lua +++ b/startup.lua @@ -1851,20 +1851,7 @@ function _G._detalhes:Start() --> override the overall data flag on this release only (remove on the release) Details.overall_flag = 0x10 - - --[=[ - --> suppress warnings for the first few seconds - CLOSE_SCRIPTERRORWINDOW = function() - if (ScriptErrorsFrame) then - ScriptErrorsFrame:Hide() - end - end - if (ScriptErrorsFrame) then - ScriptErrorsFrame:HookScript ("OnShow", CLOSE_SCRIPTERRORWINDOW) - ScriptErrorsFrame:Hide() - end - C_Timer.After (5, function() _G ["CLOSE_SCRIPTERRORWINDOW"] = nil end) - --]=] + end _detalhes.AddOnLoadFilesTime = GetTime()