From c228e85acf630a7c5134a2c4393aad43b026509d Mon Sep 17 00:00:00 2001 From: Tercio Date: Sat, 6 Oct 2018 17:39:20 -0300 Subject: [PATCH] - Added a macro section with useful macros. - More polish done to the Encounter Details! window. --- Libs/DF/normal_bar.lua | 2 + Libs/DF/panel.lua | 2 +- boot.lua | 26 ++- classes/classe_combate.lua | 31 ++- classes/classe_instancia.lua | 14 ++ core/parser.lua | 55 +++-- core/plugins.lua | 9 +- core/windows.lua | 147 +++++++++++++ functions/link.lua | 2 + functions/savedata.lua | 7 + .../Details_EncounterDetails.lua | 206 ++++++++++-------- plugins/Details_EncounterDetails/frames.lua | 95 ++++---- startup.lua | 1 + 13 files changed, 434 insertions(+), 163 deletions(-) diff --git a/Libs/DF/normal_bar.lua b/Libs/DF/normal_bar.lua index a0b65203..11bce593 100644 --- a/Libs/DF/normal_bar.lua +++ b/Libs/DF/normal_bar.lua @@ -487,6 +487,8 @@ local BarMetaFunctions = _G [DF.GlobalWidgetControlNames ["normal_bar"]] return end + frame.MyObject.background:Hide() + if (frame.MyObject.have_tooltip) then GameCooltip2:ShowMe (false) end diff --git a/Libs/DF/panel.lua b/Libs/DF/panel.lua index 79b3af74..d87a5fcb 100644 --- a/Libs/DF/panel.lua +++ b/Libs/DF/panel.lua @@ -5606,7 +5606,7 @@ function DF:CreateLoadFilterParser (callback) DF.CurrentPlayerRole = assignedRole end - print ("Plater Script Update:", event, ...) + --print ("Plater Script Update:", event, ...) DF:QuickDispatch (callback, f.EncounterIDCached) end) diff --git a/boot.lua b/boot.lua index 2762fadf..dfbdd790 100644 --- a/boot.lua +++ b/boot.lua @@ -3,7 +3,7 @@ _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") - _detalhes.build_counter = 6538 + _detalhes.build_counter = 6553 _detalhes.userversion = "v8.0.1." .. _detalhes.build_counter _detalhes.realversion = 135 --core version _detalhes.APIVersion = _detalhes.realversion --core version @@ -24,13 +24,13 @@ do --[[ |cFFFFFF00v8.0.1.6538.135 (|cFFFFCC00September 30th, 2018|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Updated to BFA 'Potion Used' and 'Health Potion and Stone' custom displays.\n\n +|cFFFFFF00-|r Added a 'Macros' section in the options panel.\n\n |cFFFFFF00-|r .\n\n |cFFFFFF00-|r .\n\n --]] - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v8.0.1.6538.135 (|cFFFFCC00September 30th, 2018|r|cFFFFFF00)|r:|cFFFFFF00-|r Updated to BFA 'Potion Used' and 'Health Potion and Stone' custom displays.\n\n|cFFFFFF00-|r Backfire damage from Light of the Martyr now shows on death logs as friendly fire.\n\n|cFFFFFF00-|r Deprecated rules for friendly fire has been removed, this might fix some random issues with mind controlled players in the Lord Stormsong encounter in the Shrine of the Storm dungeon.\n\n|cFFFFFF00-|r Fixed DBM/BigWigs aura creation from the Spell List panel.\n\n|cFFFFFF00-|r Chart scripts now receives the envTable, use local envTable = ... .\n\n|cFFFFFF00-|r Polymorth (Black Cat) and Between the Eyes got added to Crowd Control list.\n\n|cFFFFFF00-|r Fixed Timeline plugin not showing the cooldown panel.\n\n|cFFFFFF00-|r Overall data setting won't reset on every logout.\n\n|cFFFFFF00-|r Slash command '/details merge' won't flag the merged combat as a trash segment anymore.\n\n|cFFFFFF00-|r Added function to use on macros to open the Player Details Window: /script Details:OpenPlayerDetails(1).\n\n|cFFFFFF00-|r Done more improvements on the Death Recap window.\n\n|cFFFFFF00v8.0.1.6449.134 (|cFFFFCC00September 11th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! is ready for Uldir mythic raiding!.\n\n|cFFFFFF00-|r Several improvements on Encounter Details plugin.\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." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v8.0.1.6553.135 (|cFFFFCC00October 06th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added a 'Macros' section in the options panel.\n\n|cFFFFFF00-|r Updated to BFA 'Potion Used' and 'Health Potion and Stone' custom displays.\n\n|cFFFFFF00-|r Backfire damage from Light of the Martyr now shows on death logs as friendly fire.\n\n|cFFFFFF00-|r Deprecated rules for friendly fire has been removed, this might fix some random issues with mind controlled players in the Lord Stormsong encounter in the Shrine of the Storm dungeon.\n\n|cFFFFFF00-|r Fixed DBM/BigWigs aura creation from the Spell List panel.\n\n|cFFFFFF00-|r Chart scripts now receives the envTable, use local envTable = ... .\n\n|cFFFFFF00-|r Polymorth (Black Cat) and Between the Eyes got added to Crowd Control list.\n\n|cFFFFFF00-|r Fixed Timeline plugin not showing the cooldown panel.\n\n|cFFFFFF00-|r Overall data setting won't reset on every logout.\n\n|cFFFFFF00-|r Slash command '/details merge' won't flag the merged combat as a trash segment anymore.\n\n|cFFFFFF00-|r Added function to use on macros to open the Player Details Window: /script Details:OpenPlayerDetails(1).\n\n|cFFFFFF00-|r Done more improvements on the Death Recap window.\n\n|cFFFFFF00v8.0.1.6449.134 (|cFFFFCC00September 11th, 2018|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Details! is ready for Uldir mythic raiding!.\n\n|cFFFFFF00-|r Several improvements on Encounter Details plugin.\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." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " @@ -52,6 +52,16 @@ do _detalhes.pvp_parser_frame = CreateFrame ("Frame") _detalhes.parser_frame:Hide() + _detalhes.MacroList = { + {Name = "Click on Your Own Bar", Desc = "To open the player details window on your character, like if you click on your bar in the damage window. The number '1' is the window number where it'll click.", MacroText = "/script Details:OpenPlayerDetails(1)"}, + {Name = "Open Encounter Summary", Desc = "Open the encounter plugin in the summary tab. Details! Encounter (plugin) must be enabled.", MacroText = "/script Details:OpenPlugin ('Encounter Details')"}, + {Name = "Open Damage per Phase", Desc = "Open the encounter plugin in the phase tab.. Details! Encounter (plugin) must be enabled.", MacroText = "/script Details:OpenPlugin ('Encounter Details'); local a=Details_EncounterDetails and Details_EncounterDetails.buttonSwitchPhases:Click()"}, + {Name = "Reset Data", Desc = "Reset the overall and regular segments data. Use 'ResetSegmentOverallData' to reset only the overall.", MacroText = "/script Details:ResetSegmentData()"}, + {Name = "Change What the Window Shows", Desc = "Make a window show different data. SetDisplay uses (segment, displayGroup, displayID), the menu from the sword icon is in order (damage = group 1, overheal is: displayGroup 2 displayID 3.", MacroText = "/script Details:GetWindow(1):SetDisplay( DETAILS_SEGMENTID_CURRENT, 4, 5 )"}, + {Name = "Toggle Window Height to Max Size", Desc = "Make a window be 450 pixel height, pressing the macro again toggle back to the original size. The number '1' if the window number. Hold a click in any window to show their number.", MacroText = "/script Details:GetWindow(1):ToggleMaxSize()"}, + -- /script Details:OpenPlugin ('Advanced Death Logs'); local a = Details_DeathGraphsModeEnduranceButton and Details_DeathGraphsModeEnduranceButton.MyObject:Click() + } + --> quais raides devem ser guardadas no hist�rico _detalhes.InstancesToStoreData = { --> mapIDs [1148] = true, --Uldir (BFA) uiMapID @@ -67,6 +77,16 @@ do --[1136] = true, --SoO } + _detalhes.BitfieldSwapDebuffsIDs = { + 265646, --BFA Uldir Zek'Voz Will of the Corruptor + 272407, --BFA Uldir Mythrax Oblivion Sphere + 269691, --BFA Uldir G'Huun Mind Thrall + 273401, --BFA Uldir G'Huun Mind Thrall (normal) + 269131, --BFA Shrine of the Storm Ancient Mindbender + 260900, --BFA Waycrest Manor Heartsbane Triad Soul Manipulation + 260926, --BFA Waycrest Manor Heartsbane Triad Soul Manipulation + } + _detalhes.EncountersToStoreData = { --> encounterIDs --CLEU [2144] = 1, --Taloc - Taloc diff --git a/classes/classe_combate.lua b/classes/classe_combate.lua index 188ebb65..4ccfd31b 100644 --- a/classes/classe_combate.lua +++ b/classes/classe_combate.lua @@ -163,29 +163,28 @@ return Loc ["STRING_UNKNOW"] end - DETAILS_SEGMENTID_OVERALL = -1 - DETAILS_SEGMENTID_CURRENT = 0 + --[[global]] DETAILS_SEGMENTID_OVERALL = -1 + --[[global]] DETAILS_SEGMENTID_CURRENT = 0 --enum segments type + --[[global]] DETAILS_SEGMENTTYPE_GENERIC = 0 - DETAILS_SEGMENTTYPE_GENERIC = 0 + --[[global]] DETAILS_SEGMENTTYPE_OVERALL = 1 - DETAILS_SEGMENTTYPE_OVERALL = 1 + --[[global]] DETAILS_SEGMENTTYPE_DUNGEON_TRASH = 5 + --[[global]] DETAILS_SEGMENTTYPE_DUNGEON_BOSS = 6 - DETAILS_SEGMENTTYPE_DUNGEON_TRASH = 5 - DETAILS_SEGMENTTYPE_DUNGEON_BOSS = 6 + --[[global]] DETAILS_SEGMENTTYPE_RAID_TRASH = 7 + --[[global]] DETAILS_SEGMENTTYPE_RAID_BOSS = 8 - DETAILS_SEGMENTTYPE_RAID_TRASH = 7 - DETAILS_SEGMENTTYPE_RAID_BOSS = 8 + --[[global]] DETAILS_SEGMENTTYPE_MYTHICDUNGEON_GENERIC = 10 + --[[global]] DETAILS_SEGMENTTYPE_MYTHICDUNGEON_TRASH = 11 + --[[global]] DETAILS_SEGMENTTYPE_MYTHICDUNGEON_OVERALL = 12 + --[[global]] DETAILS_SEGMENTTYPE_MYTHICDUNGEON_TRASHOVERALL = 13 + --[[global]] DETAILS_SEGMENTTYPE_MYTHICDUNGEON_BOSS = 14 - DETAILS_SEGMENTTYPE_MYTHICDUNGEON_GENERIC = 10 - DETAILS_SEGMENTTYPE_MYTHICDUNGEON_TRASH = 11 - DETAILS_SEGMENTTYPE_MYTHICDUNGEON_OVERALL = 12 - DETAILS_SEGMENTTYPE_MYTHICDUNGEON_TRASHOVERALL = 13 - DETAILS_SEGMENTTYPE_MYTHICDUNGEON_BOSS = 14 - - DETAILS_SEGMENTTYPE_PVP_ARENA = 20 - DETAILS_SEGMENTTYPE_PVP_BATTLEGROUND = 21 + --[[global]] DETAILS_SEGMENTTYPE_PVP_ARENA = 20 + --[[global]] DETAILS_SEGMENTTYPE_PVP_BATTLEGROUND = 21 function combate:GetCombatType() --> mythic dungeon diff --git a/classes/classe_instancia.lua b/classes/classe_instancia.lua index 63a5d4da..9618d4dc 100644 --- a/classes/classe_instancia.lua +++ b/classes/classe_instancia.lua @@ -1899,6 +1899,20 @@ function _detalhes:Resize (w, h) return true end +--/run Details:GetWindow(1):ToggleMaxSize() +function _detalhes:ToggleMaxSize() + if (self.is_in_max_size) then + self.is_in_max_size = false + self:SetSize (self.original_width, self.original_height) + else + local original_width, original_height = self:GetSize() + self.original_width, self.original_height = original_width, original_height + self.is_in_max_size = true + self:SetSize (original_width, 450) + + end +end + ------------------------------------------------------------------------------------------------------------------------ function _detalhes:PostponeSwitchToCurrent (instance) diff --git a/core/parser.lua b/core/parser.lua index ca28c6a0..5506c4af 100644 --- a/core/parser.lua +++ b/core/parser.lua @@ -86,6 +86,8 @@ local raid_members_cache = setmetatable ({}, _detalhes.weaktable) --> tanks local tanks_members_cache = setmetatable ({}, _detalhes.weaktable) + --> bitfield swap cache + local bitfield_swap_cache = {} --> damage and heal last events local last_events_cache = {} --> initialize table (placeholder) --> pets @@ -164,6 +166,17 @@ [280719] = 282449, --rogue Secret Technique } + local bitfield_debuffs_ids = _detalhes.BitfieldSwapDebuffsIDs + local bitfield_debuffs = {} + for _, spellid in ipairs (bitfield_debuffs_ids) do + local spellname = GetSpellInfo (spellid) + if (spellname) then + bitfield_debuffs [spellname] = true + else + bitfield_debuffs [spellid] = true + end + end + _detalhes.OverridedSpellIds = override_spellId --> ignore soul link (damage from the warlock on his pet - current to demonology only) @@ -659,18 +672,24 @@ end end end - + ------------------------------------------------------------------------------------------------ --> firendly fire ~friendlyfire - if ( - --removed deprecated friendly fire rules (25/09/2018) - --general rules for friendly fire - ( - (_bit_band (alvo_flags, REACTION_FRIENDLY) ~= 0 and _bit_band (who_flags, REACTION_FRIENDLY) ~= 0) or - (raid_members_cache [who_serial] and _bit_band (who_flags, OBJECT_TYPE_ENEMY) ~= 0 and _bit_band (alvo_flags, REACTION_FRIENDLY) ~= 0) - ) - ) then - + local is_friendly_fire = false + if (bitfield_swap_cache [who_serial] or meu_dono and bitfield_swap_cache [meu_dono.serial]) then + if (jogador_alvo.grupo or alvo_dono and alvo_dono.grupo) then + is_friendly_fire = true + end + else + if (bitfield_swap_cache [alvo_serial] or alvo_dono and bitfield_swap_cache [alvo_dono.serial]) then + else + if ((jogador_alvo.grupo or alvo_dono and alvo_dono.grupo) and (este_jogador.grupo or meu_dono and meu_dono.grupo)) then + is_friendly_fire = true + end + end + end + + if (is_friendly_fire) then if (este_jogador.grupo) then --> se tiver ele n�o adiciona o evento l� em cima local t = last_events_cache [alvo_name] @@ -1770,6 +1789,10 @@ if (cc_spell_list [spellid]) then parser:add_cc_done (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname) end + + if (bitfield_debuffs [spellname] and raid_members_cache [alvo_serial]) then + bitfield_swap_cache [alvo_serial] = true + end if (raid_members_cache [who_serial]) then --> call record debuffs uptime @@ -2014,7 +2037,7 @@ parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, "DEBUFF_UPTIME_REFRESH", amount) end end - + if (_recording_ability_with_buffs) then if (who_name == _detalhes.playername) then @@ -2092,7 +2115,6 @@ local damage_prevented = monk_guard_talent [who_serial] - (amount or 0) parser:heal (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, damage_prevented, _math_ceil (amount or 0), 0, 0, true) end - end ------------------------------------------------------------------------------------------------ @@ -2146,7 +2168,11 @@ parser:add_bad_debuff_uptime (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spellschool, "DEBUFF_UPTIME_OUT") end end - + + if (bitfield_debuffs [spellname] and alvo_serial) then + bitfield_swap_cache [alvo_serial] = nil + end + if (_recording_ability_with_buffs) then if (who_name == _detalhes.playername) then @@ -4238,6 +4264,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 _detalhes:CaptureSet (false, "spellcast", false, 10) end + _table_wipe (bitfield_swap_cache) + _detalhes:DispatchAutoRunCode ("on_leavecombat") end @@ -4718,6 +4746,7 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 _table_wipe (raid_members_cache) _table_wipe (tanks_members_cache) + _table_wipe (bitfield_swap_cache) local roster = _detalhes.tabela_vigente.raid_roster diff --git a/core/plugins.lua b/core/plugins.lua index d46d0be5..1d7a7dde 100644 --- a/core/plugins.lua +++ b/core/plugins.lua @@ -562,10 +562,7 @@ --> show the plugin window if (pluginObject.RefreshWindow and callRefresh) then - local okay, errortext = pcall (pluginObject.RefreshWindow) - if (not okay) then - f.DebugMsg (errortext) - end + DetailsFramework:QuickDispatch (pluginObject.RefreshWindow) end --> highlight the plugin button on the menu @@ -708,6 +705,8 @@ --]=] function _detalhes:OpenPlugin (wildcard) + local originalName = wildcard + if (type (wildcard) == "string") then --> check if passed a plugin absolute name @@ -740,6 +739,8 @@ return true end end + + Details:Msg ("|cFFFF7700plugin not found|r:|cFFFFFF00", (originalName or wildcard), "|rcheck if it is enabled in the addons control panel.") --localize-me end diff --git a/core/windows.lua b/core/windows.lua index 7c0cd91d..09cdc48c 100644 --- a/core/windows.lua +++ b/core/windows.lua @@ -3885,6 +3885,153 @@ end +------------------------------------------------------------------------------------------------------------------------------------------------------------------------ +-- ~macros + + function _detalhes:InitializeMacrosWindow() + local DetailsMacrosPanel = gump:CreateSimplePanel (UIParent, 700, 480, "Details! Useful Macros", "DetailsMacrosPanel") + DetailsMacrosPanel.Frame = DetailsMacrosPanel + DetailsMacrosPanel.__name = "Macros" + DetailsMacrosPanel.real_name = "DETAILS_MACROSWINDOW" + DetailsMacrosPanel.__icon = [[Interface\MacroFrame\MacroFrame-Icon]] + DetailsMacrosPanel.__iconcoords = {0, 1, 0, 1} + DetailsMacrosPanel.__iconcolor = "white" + DetailsPluginContainerWindow.EmbedPlugin (DetailsMacrosPanel, DetailsMacrosPanel, true) + + function DetailsMacrosPanel.RefreshWindow() + _detalhes.OpenMacrosWindow() + end + + DetailsMacrosPanel:Hide() + end + + function _detalhes.OpenMacrosWindow() + + if (not DetailsMacrosPanel or not DetailsMacrosPanel.Initialized) then + local DF = DetailsFramework + + DetailsMacrosPanel.Initialized = true + local f = DetailsMacrosPanel or gump:CreateSimplePanel (UIParent, 700, 480, "Details! Useful Macros", "DetailsMacrosPanel") + + local scrollbox_line_backdrop_color = {0, 0, 0, 0.2} + local scrollbox_line_backdrop_color_onenter = {.3, .3, .3, 0.5} + local scrollbox_lines = 7 + local scrollbox_line_height = 79.5 + local scrollbox_size = {890, 563} + + f.bg1 = f:CreateTexture (nil, "background") + f.bg1:SetTexture ([[Interface\AddOns\Details\images\background]], true) + f.bg1:SetAlpha (0.8) + f.bg1:SetVertexColor (0.27, 0.27, 0.27) + f.bg1:SetVertTile (true) + f.bg1:SetHorizTile (true) + f.bg1:SetSize (790, 454) + f.bg1:SetAllPoints() + f:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\AddOns\Details\images\background]], tileSize = 64, tile = true}) + f:SetBackdropColor (.5, .5, .5, .7) + f:SetBackdropBorderColor (0, 0, 0, 1) + + local macrosAvailable = _detalhes.MacroList + + local OnEnterMacroButton = function (self) + self:SetBackdropColor (unpack (scrollbox_line_backdrop_color_onenter)) + end + + local onLeaveMacroButton = function (self) + self:SetBackdropColor (unpack (scrollbox_line_backdrop_color)) + end + + local updateMacroLine = function (self, index, title, desc, macroText) + self.Title:SetText (title) + self.Desc:SetText (desc) + self.MacroTextEntry:SetText (macroText) + end + + local textEntryOnFocusGained = function (self) + self:HighlightText() + end + + local textEntryOnFocusLost = function (self) + self:HighlightText (0, 0) + end + + local refreshMacroScrollbox = function (self, data, offset, totalLines) + for i = 1, totalLines do + local index = i + offset + local macro = macrosAvailable [index] + if (macro) then + local line = self:GetLine (i) + line:UpdateLine (index, macro.Name, macro.Desc, macro.MacroText) + end + end + end + + local macroListCreateLine = function (self, index) + --create a new line + local line = CreateFrame ("button", "$parentLine" .. index, self) + + --set its parameters + line:SetPoint ("topleft", self, "topleft", 0, -((index-1) * (scrollbox_line_height+1))) + line:SetSize (scrollbox_size[1], scrollbox_line_height) + line:SetScript ("OnEnter", OnEnterMacroButton) + line:SetScript ("OnLeave", onLeaveMacroButton) + line:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true, edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1}) + line:SetBackdropColor (unpack (scrollbox_line_backdrop_color)) + line:SetBackdropBorderColor (0, 0, 0, 0.3) + + local titleLabel = DF:CreateLabel (line, "", DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")) + titleLabel.textsize = 14 + titleLabel.textcolor = "yellow" + local descLabel = DF:CreateLabel (line, "", DF:GetTemplate ("font", "ORANGE_FONT_TEMPLATE")) + descLabel.textsize = 12 + + local options_dropdown_template = DF:GetTemplate ("dropdown", "OPTIONS_DROPDOWN_TEMPLATE") + options_dropdown_template = DF.table.copy ({}, options_dropdown_template) + options_dropdown_template.backdropcolor = {.51, .51, .51, .3} + options_dropdown_template.onenterbordercolor = {.51, .51, .51, .2} + + local textEntry = DF:CreateTextEntry (line, function()end, scrollbox_size[1] - 10, 40, "MacroTextEntry", _, _, options_dropdown_template) + textEntry:SetHook ("OnEditFocusGained", textEntryOnFocusGained) + textEntry:SetHook ("OnEditFocusLost", textEntryOnFocusLost) + textEntry:SetJustifyH ("left") + textEntry:SetTextInsets (8, 8, 0, 0) + + titleLabel:SetPoint ("topleft", line, "topleft", 5, -5) + descLabel:SetPoint ("topleft", titleLabel, "bottomleft", 0, -2) + textEntry:SetPoint ("topleft", descLabel, "bottomleft", 0, -4) + + line.Title = titleLabel + line.Desc = descLabel + line.MacroTextEntry = textEntry + + line.UpdateLine = updateMacroLine + line:Hide() + + return line + end + + local macroScrollbox = DF:CreateScrollBox (f, "$parentMacroScrollbox", refreshMacroScrollbox, macrosAvailable, scrollbox_size[1], scrollbox_size[2], scrollbox_lines, scrollbox_line_height) + macroScrollbox:SetPoint ("topleft", f, "topleft", 5, -30) + macroScrollbox:SetBackdrop ({edgeFile = [[Interface\Buttons\WHITE8X8]], edgeSize = 1, bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) + macroScrollbox:SetBackdropColor (0, 0, 0, 0) + macroScrollbox:SetBackdropBorderColor (0, 0, 0, 1) + f.MacroScrollbox = macroScrollbox + DF:ReskinSlider (macroScrollbox) + + macroScrollbox.__background:Hide() + + --create the scrollbox lines + for i = 1, scrollbox_lines do + macroScrollbox:CreateLine (macroListCreateLine) + end + end + + DetailsPluginContainerWindow.OpenPlugin (DetailsMacrosPanel) + DetailsMacrosPanel.MacroScrollbox:Refresh() + DetailsMacrosPanel:Show() + end + + ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -- ~plater diff --git a/functions/link.lua b/functions/link.lua index 02ebbbf3..0ca8146e 100644 --- a/functions/link.lua +++ b/functions/link.lua @@ -2532,6 +2532,8 @@ DetailsAuraPanel.IconSizeSlider:SetValue (DetailsAuraPanel.other_values.text_size) end + spellname = spellname or "" + DetailsAuraPanel.name.text = spellname .. " (d!)" DetailsAuraPanel.spellname.text = spellname DetailsAuraPanel.AuraSpellId.text = tostring (spellid) diff --git a/functions/savedata.lua b/functions/savedata.lua index 515b81b3..70700efa 100644 --- a/functions/savedata.lua +++ b/functions/savedata.lua @@ -21,6 +21,13 @@ local is_exception = { function _detalhes:SaveLocalInstanceConfig() for index, instance in _detalhes:ListInstances() do + --> check for the max size toggle, don't save it + if (instance.is_in_max_size) then + instance.is_in_max_size = false + instance:SetSize (instance.original_width, instance.original_height) + end + + --> save local instance data local a1, a2 = instance:GetDisplay() local t = { diff --git a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua index a11b5807..2aae2e2d 100644 --- a/plugins/Details_EncounterDetails/Details_EncounterDetails.lua +++ b/plugins/Details_EncounterDetails/Details_EncounterDetails.lua @@ -33,6 +33,9 @@ local EncounterDetails = _detalhes:NewPluginObject ("Details_EncounterDetails", tinsert (UISpecialFrames, "Details_EncounterDetails") --> Main Frame local EncounterDetailsFrame = EncounterDetails.Frame +EncounterDetailsFrame.DefaultBarHeight = 20 +EncounterDetailsFrame.CooltipStatusbarAlpha = .65 +EncounterDetailsFrame.DefaultBarTexture = "Interface\\AddOns\\Details\\images\\bar_serenity" EncounterDetails:SetPluginDescription ("Raid encounters summary, show basic stuff like dispels, interrupts and also graphic charts, boss emotes and the Weakaura Creation Tool.") @@ -49,6 +52,20 @@ local CLASS_ICON_TCOORDS = _G.CLASS_ICON_TCOORDS EncounterDetails.name = "Encounter Details" EncounterDetails.debugmode = false +function EncounterDetails:FormatCooltipSettings() + GameCooltip:SetType ("tooltip") + GameCooltip:SetOption ("StatusBarTexture", [[Interface\AddOns\Details\images\bar_serenity]]) + GameCooltip:SetOption ("StatusBarHeightMod", 0) + GameCooltip:SetOption ("FixedWidth", 280) + GameCooltip:SetOption ("TextSize", 11) + GameCooltip:SetOption ("LeftBorderSize", -4) + GameCooltip:SetOption ("RightBorderSize", 5) + GameCooltip:SetOption ("ButtonsYMod", 0) + GameCooltip:SetOption ("YSpacingMod", -1) +end + +EncounterDetails.CooltipLineHeight = 18 + local ability_type_table = { [0x1] = "|cFF00FF00"..Loc ["STRING_HEAL"].."|r", [0x2] = "|cFF710000"..Loc ["STRING_LOWDPS"].."|r", @@ -615,28 +632,6 @@ local function CreatePluginFrames (data) end -local IsShiftKeyDown = IsShiftKeyDown - -local shift_monitor = function (self) - if (IsShiftKeyDown()) then - local spellname = GetSpellInfo (self.spellid) - if (spellname) then - if (GameCooltip) then - GameCooltip:Hide() - end - GameTooltip:SetOwner (self, "ANCHOR_TOPLEFT") - GameTooltip:SetSpellByID (self.spellid) - GameTooltip:Show() - self.showing_spelldesc = true - end - else - if (self.showing_spelldesc) then - self:GetScript ("OnEnter") (self) - self.showing_spelldesc = false - end - end -end - local sort_damage_from = function (a, b) if (a[3] ~= "PET" and b[3] ~= "PET") then return a[2] > b[2] @@ -766,13 +761,13 @@ end GameCooltip:AddStatusBar (0, 1, 1, 1, 1, 1, false, {value = 100, color = {.3, .3, .3, 1}, specialSpark = false, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) end + --death log cooltip settings GameCooltip:SetOption ("StatusBarHeightMod", -6) GameCooltip:SetOption ("FixedWidth", 300) GameCooltip:SetOption ("TextSize", 9) GameCooltip:SetOption ("LeftBorderSize", -4) GameCooltip:SetOption ("RightBorderSize", 5) GameCooltip:SetOption ("StatusBarTexture", [[Interface\AddOns\Details\images\bar_serenity]]) - --GameCooltip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], {.6, 0.1, 0.64453125, 0}, {.8, .8, .8, 0.2}, true) GameCooltip:SetBackdrop (1, _detalhes.cooltip_preset2_backdrop, bgColor, borderColor) GameCooltip:ShowCooltip() @@ -793,11 +788,18 @@ local function DispellInfo (dispell, barra) for index, tabela in _ipairs (tabela_jogadores) do local coords = EncounterDetails.class_coords [tabela[3]] if (not coords) then - GameCooltip:AddLine (tabela[1], tabela[2], 1, "white", "orange") + GameCooltip:AddLine (EncounterDetails:GetOnlyName (tabela[1]), tabela[2], 1, "white", "orange") GameCooltip:AddIcon ("Interface\\GossipFrame\\DailyActiveQuestIcon") else - GameCooltip:AddLine (tabela[1], tabela[2], 1, "white", "orange") - GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + GameCooltip:AddLine (EncounterDetails:GetOnlyName (tabela[1]), tabela[2], 1, "white", "orange") + + local specID = Details:GetSpec (tabela[1]) + if (specID) then + local texture, l, r, t, b = Details:GetSpecIcon (specID, false) + GameCooltip:AddIcon (texture, 1, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, l, r, t, b) + else + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + end end end @@ -826,13 +828,21 @@ local function KickBy (magia, barra) local spellName, _, spellIcon = GetSpellInfo (barra.texto_esquerdo:GetText()) GameCooltip:AddLine (barra.texto_esquerdo:GetText()) if (spellIcon) then - GameCooltip:AddIcon (spellIcon, nil, 1, 14, 14, 5/64, 59/64, 5/64, 59/64) + GameCooltip:AddIcon (spellIcon, nil, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, 5/64, 59/64, 5/64, 59/64) end for index, tabela in _ipairs (tabela_jogadores) do local coords = EncounterDetails.class_coords [tabela[3]] - GameCooltip:AddLine (EncounterDetails:GetOnlyName (tabela[1]) .. ": ", tabela[2], 1, "white") - GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + GameCooltip:AddLine (EncounterDetails:GetOnlyName (tabela[1]), tabela[2], 1, "white") + + local specID = Details:GetSpec (tabela[1]) + if (specID) then + local texture, l, r, t, b = Details:GetSpecIcon (specID, false) + GameCooltip:AddIcon (texture, 1, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, l, r, t, b) + else + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + end + GameCooltip:AddStatusBar (100, 1, .3, .3, .3, .3, false, false, false) end @@ -872,12 +882,25 @@ local function EnemySkills (habilidade, barra) for index, tabela in _ipairs (tabela_jogadores) do local coords = EncounterDetails.class_coords [tabela[3]] - GameCooltip:AddLine (EncounterDetails:GetOnlyName (tabela[1]) .. ": ", ToK (_, tabela[2]) .. " (" .. format ("%.1f", tabela[2] / total * 100) .. "%)", 1, "white") + GameCooltip:AddLine (EncounterDetails:GetOnlyName (tabela[1]), ToK (_, tabela[2]) .. " (" .. format ("%.1f", tabela[2] / total * 100) .. "%)", 1, "white") local r, g, b, a = unpack (_detalhes.tooltip.background) - GameCooltip:AddStatusBar (tabela[2] / topValue * 100, 1, r, g, b, a, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) - if (coords) then - GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + local actorClass = Details:GetClass (tabela[1]) + if (actorClass) then + local r, g, b = Details:GetClassColor (actorClass) + GameCooltip:AddStatusBar (tabela[2] / topValue * 100, 1, r, g, b, EncounterDetailsFrame.CooltipStatusbarAlpha, false, {value = 100, color = {.21, .21, .21, 0.5}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + else + GameCooltip:AddStatusBar (tabela[2] / topValue * 100, 1, r, g, b, a, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + end + + local specID = Details:GetSpec (tabela[1]) + if (specID) then + local texture, l, r, t, b = Details:GetSpecIcon (specID, false) + GameCooltip:AddIcon (texture, 1, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, l, r, t, b) + else + if (coords) then + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small", nil, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + end end end @@ -885,7 +908,7 @@ local function EnemySkills (habilidade, barra) if (spellname) then GameTooltip:SetOwner (GameCooltipFrame1, "ANCHOR_NONE") GameTooltip:SetSpellByID (barra.spellid) - GameTooltip:SetPoint ("topright", GameCooltipFrame1, "topleft", -2, 0) + GameTooltip:SetPoint ("right", barra, "left", -2, 0) GameTooltip:Show() end @@ -907,7 +930,6 @@ local function DamageTakenDetails (jogador, barra) if (este_agressor) then --> checagem por causa do total e do garbage collector que não limpa os nomes que deram dano local habilidades = este_agressor.spells._ActorTable for id, habilidade in _pairs (habilidades) do - --print ("oi - " .. este_agressor.nome) local alvos = habilidade.targets for target_name, amount in _pairs (alvos) do if (target_name == jogador.nome) then @@ -940,10 +962,10 @@ local function DamageTakenDetails (jogador, barra) teve_melee = true end - GameCooltip:AddLine (nome_magia..": ", ToK (_, meus_agressores[i][2]) .. " (".._cstr("%.1f", (meus_agressores[i][2]/damage_taken) * 100).."%)", 1, "white") - GameCooltip:AddStatusBar (meus_agressores[i][2] / topDamage * 100, 1, .3, .3, .3, .3, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + GameCooltip:AddLine (nome_magia, ToK (_, meus_agressores[i][2]) .. " (".._cstr("%.1f", (meus_agressores[i][2]/damage_taken) * 100).."%)", 1, "white") + GameCooltip:AddStatusBar (meus_agressores[i][2] / topDamage * 100, 1, .3, .3, .3, .6, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) - GameCooltip:AddIcon (icone_magia, nil, 1, 14, 14) + GameCooltip:AddIcon (icone_magia, nil, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, .1, .9, .1, .9) end if (teve_melee) then @@ -1062,23 +1084,15 @@ function EncounterDetails:SetRowScripts (barra, index, container) self.mouse_over = true - self:SetHeight (17) - self:SetAlpha(1) + self:SetHeight (EncounterDetails.Frame.DefaultBarHeight + 1) + self:SetAlpha (1) EncounterDetails.SetBarBackdrop_OnEnter (self) --GameTooltip:SetOwner (self, "ANCHOR_TOPRIGHT") GameCooltip:Preset (2) GameCooltip:SetOwner (self) - - GameCooltip:SetOption ("StatusBarTexture", [[Interface\AddOns\Details\images\bar_background]]) - GameCooltip:SetOption ("StatusBarHeightMod", 0) - GameCooltip:SetOption ("FixedWidth", 280) - GameCooltip:SetOption ("TextSize", 10) - GameCooltip:SetOption ("LeftBorderSize", -4) - GameCooltip:SetOption ("RightBorderSize", 5) - GameCooltip:SetOption ("ButtonsYMod", 0) - GameCooltip:SetOption ("YSpacingMod", -1) + EncounterDetails:FormatCooltipSettings() if (not self.TTT) then --> tool tip type return @@ -1086,8 +1100,6 @@ function EncounterDetails:SetRowScripts (barra, index, container) if (self.TTT == "damage_taken") then --> damage taken DamageTakenDetails (self.jogador, barra) - - elseif (self.TTT == "adds_container") then elseif (self.TTT == "habilidades_inimigas") then --> enemy abilytes self.spellid = self.jogador [4] @@ -1104,8 +1116,6 @@ function EncounterDetails:SetRowScripts (barra, index, container) elseif (self.TTT == "morte") then --> deaths KillInfo (self.jogador, self) --> aqui 2 end - - --GameTooltip:Show() GameCooltip:Show() end) @@ -1119,7 +1129,7 @@ function EncounterDetails:SetRowScripts (barra, index, container) return end - self:SetHeight (16) + self:SetHeight (EncounterDetails.Frame.DefaultBarHeight) self:SetAlpha (0.9) EncounterDetails.SetBarBackdrop_OnLeave (self) @@ -1295,11 +1305,18 @@ function EncounterDetails:OpenAndRefresh (_, segment) barra.textura:SetValue (jogador.damage_taken/dano_do_primeiro *100) end - barra.icone:SetTexture ("Interface\\AddOns\\Details\\images\\classes_small") - if (EncounterDetails.class_coords [jogador.classe]) then - barra.icone:SetTexCoord (_unpack (EncounterDetails.class_coords [jogador.classe])) + local specID = Details:GetSpec (jogador.nome) + if (specID) then + local texture, l, r, t, b = Details:GetSpecIcon (specID, false) + barra.icone:SetTexture (texture) + barra.icone:SetTexCoord (l, r, t, b) + else + barra.icone:SetTexture ("Interface\\AddOns\\Details\\images\\classes_small") + if (EncounterDetails.class_coords [jogador.classe]) then + barra.icone:SetTexCoord (_unpack (EncounterDetails.class_coords [jogador.classe])) + end end - + barra:Show() quantidade = quantidade + 1 end @@ -1322,6 +1339,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) local habilidades_poll = {} --> pega as magias contínuas presentes em todas as fases + --deprecated if (boss_info and boss_info.continuo) then for index, spellid in _ipairs (boss_info.continuo) do habilidades_poll [spellid] = true @@ -1329,6 +1347,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) end --> pega as habilidades que pertence especificamente a cada fase + --deprecated if (boss_info and boss_info.phases) then for fase_id, fase in _ipairs (boss_info.phases) do if (fase.spells) then @@ -1370,7 +1389,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) --> adiciona ao [1] total de dano que esta habilidade causou esta_habilidade[1] = esta_habilidade[1] + habilidade.total - --> adiciona ao [3] total do jogador que castou + --> adiciona ao [3] total do jogador que castou if (not esta_habilidade[3][jogador.nome]) then esta_habilidade[3][jogador.nome] = 0 end @@ -1603,7 +1622,6 @@ function EncounterDetails:OpenAndRefresh (_, segment) --> montou a tabela, agora precisa mostrar no painel local function _DanoFeito (self) - self.textura:SetBlendMode ("ADD") local barra = self:GetParent() @@ -1613,15 +1631,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) GameCooltip:Preset (2) GameCooltip:SetOwner (self) - GameCooltip:SetOption ("StatusBarTexture", [[Interface\AddOns\Details\images\bar_background]]) - GameCooltip:SetOption ("StatusBarHeightMod", 0) - GameCooltip:SetOption ("FixedWidth", 280) - GameCooltip:SetOption ("TextSize", 10) - GameCooltip:SetOption ("LeftBorderSize", -4) - GameCooltip:SetOption ("RightBorderSize", 5) - GameCooltip:SetOption ("ButtonsYMod", 0) - GameCooltip:SetOption ("YSpacingMod", -1) - GameCooltip:SetType ("tooltip") + EncounterDetails:FormatCooltipSettings() GameCooltip:AddLine (barra.texto_esquerdo:GetText().." ".. "Damage Done") @@ -1630,10 +1640,23 @@ function EncounterDetails:OpenAndRefresh (_, segment) local dano_em_total = tabela.dano_em_total for _, esta_tabela in _pairs (dano_em) do local coords = EncounterDetails.class_coords [esta_tabela[3]] + GameCooltip:AddLine (EncounterDetails:GetOnlyName (esta_tabela[1]), _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/dano_em_total*100) .."%)", 1, "white", "orange") - GameCooltip:AddLine (esta_tabela[1]..": ", _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/dano_em_total*100) .."%)", 1, "white", "orange") - GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) - GameCooltip:AddStatusBar (esta_tabela[2] / topDamage * 100, 1, .3, .3, .3, .3, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + local specID = Details:GetSpec (esta_tabela[1]) + if (specID) then + local texture, l, r, t, b = Details:GetSpecIcon (specID, false) + GameCooltip:AddIcon (texture, 1, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, l, r, t, b) + else + GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + end + + local actorClass = Details:GetClass (esta_tabela[1]) + if (actorClass) then + local r, g, b = Details:GetClassColor (actorClass) + GameCooltip:AddStatusBar (esta_tabela[2] / topDamage * 100, 1, r, g, b, EncounterDetailsFrame.CooltipStatusbarAlpha, false, {value = 100, color = {.21, .21, .21, 0.5}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + else + GameCooltip:AddStatusBar (esta_tabela[2] / topDamage * 100, 1, .3, .3, .3, .3, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + end end GameCooltip:AddLine (" ") @@ -1650,15 +1673,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) GameCooltip:Preset (2) GameCooltip:SetOwner (self) - GameCooltip:SetOption ("StatusBarTexture", [[Interface\AddOns\Details\images\bar_background]]) - GameCooltip:SetOption ("StatusBarHeightMod", 0) - GameCooltip:SetOption ("FixedWidth", 280) - GameCooltip:SetOption ("TextSize", 10) - GameCooltip:SetOption ("LeftBorderSize", -4) - GameCooltip:SetOption ("RightBorderSize", 5) - GameCooltip:SetOption ("ButtonsYMod", 0) - GameCooltip:SetOption ("YSpacingMod", -1) - GameCooltip:SetType ("tooltip") + EncounterDetails:FormatCooltipSettings() GameCooltip:AddLine (barra.texto_esquerdo:GetText().." "..Loc ["STRING_DAMAGE_TAKEN"]) @@ -1669,12 +1684,25 @@ function EncounterDetails:OpenAndRefresh (_, segment) local coords = EncounterDetails.class_coords [esta_tabela[3]] if (coords) then - GameCooltip:AddLine (esta_tabela[1]..": ", _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/damage_from_total*100) .."%)", 1, "white", "orange") - GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, 14, 14, (coords[1]), (coords[2]), (coords[3]), (coords[4])) - GameCooltip:AddStatusBar (esta_tabela[2] / topDamage * 100, 1, .3, .3, .3, .3, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + GameCooltip:AddLine (EncounterDetails:GetOnlyName (esta_tabela[1]), _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/damage_from_total*100) .."%)", 1, "white", "orange", nil, nil, "MONOCHRONE") + local specID = Details:GetSpec (esta_tabela[1]) + if (specID) then + local texture, l, r, t, b = Details:GetSpecIcon (specID, false) + GameCooltip:AddIcon (texture, 1, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, l, r, t, b) + else + GameCooltip:AddIcon ([[Interface\AddOns\Details\images\classes_small]], 1, 1, EncounterDetails.CooltipLineHeight, EncounterDetails.CooltipLineHeight, (coords[1]), (coords[2]), (coords[3]), (coords[4])) + end + + local actorClass = Details:GetClass (esta_tabela[1]) + if (actorClass) then + local r, g, b = Details:GetClassColor (actorClass) + GameCooltip:AddStatusBar (esta_tabela[2] / topDamage * 100, 1, r, g, b, EncounterDetailsFrame.CooltipStatusbarAlpha, false, {value = 100, color = {.21, .21, .21, 0.5}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + else + GameCooltip:AddStatusBar (esta_tabela[2] / topDamage * 100, 1, .3, .3, .3, .3, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) + end else - GameCooltip:AddLine (esta_tabela[1]..": ", _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/damage_from_total*100) .."%)") + GameCooltip:AddLine (esta_tabela[1], _detalhes:ToK (esta_tabela[2]).." (".. _cstr ("%.1f", esta_tabela[2]/damage_from_total*100) .."%)") GameCooltip:AddStatusBar (esta_tabela[2] / topDamage * 100, 1, .3, .3, .3, .3, false, {value = 100, color = {.21, .21, .21, 0.8}, texture = [[Interface\AddOns\Details\images\bar_serenity]]}) end end @@ -1717,8 +1745,8 @@ function EncounterDetails:OpenAndRefresh (_, segment) barra.report_text = "Details! Tamage Taken of " add_damage_done.report_text = "Details! Damage Done of " add_damage_done.barra = barra - add_damage_done:SetWidth (16) - add_damage_done:SetHeight (16) + add_damage_done:SetWidth (EncounterDetails.CooltipLineHeight) + add_damage_done:SetHeight (EncounterDetails.CooltipLineHeight) add_damage_done:EnableMouse (true) add_damage_done:SetResizable (false) add_damage_done:SetPoint ("left", barra, "left", 0, 0) @@ -1863,7 +1891,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) end barra.icone:SetTexture (icone_magia) - --barra.icone:SetTexCoord (_unpack (EncounterDetails.class_coords [jogador.classe])) + barra.icone:SetTexCoord (.1, .9, .1, .9) barra:Show() @@ -1966,7 +1994,7 @@ function EncounterDetails:OpenAndRefresh (_, segment) end barra.icone:SetTexture (icone_magia) - --barra.icone:SetTexCoord (_unpack (EncounterDetails.class_coords [jogador.classe])) + barra.icone:SetTexCoord (.1, .9, .1, .9) barra:Show() diff --git a/plugins/Details_EncounterDetails/frames.lua b/plugins/Details_EncounterDetails/frames.lua index b727db54..d24bc29b 100644 --- a/plugins/Details_EncounterDetails/frames.lua +++ b/plugins/Details_EncounterDetails/frames.lua @@ -182,12 +182,12 @@ _detalhes.EncounterDetailsTempWindow = function (EncounterDetails) row.textura = CreateFrame ("StatusBar", nil, row) row.textura:SetAllPoints (row) local t = row.textura:CreateTexture (nil, "overlay") - t:SetTexture ("Interface\\AddOns\\Details\\images\\bar_serenity") - --t:SetTexture ("Interface\\AddOns\\Details\\images\\bar_skyline") + t:SetTexture (EncounterDetails.Frame.DefaultBarTexture) + row.t = t row.textura:SetStatusBarTexture (t) - row.textura:SetStatusBarColor(.5, .5, .5, 0) - row.textura:SetMinMaxValues(0,100) + row.textura:SetStatusBarColor (.5, .5, .5, 0) + row.textura:SetMinMaxValues (0,100) row.texto_esquerdo = row.textura:CreateFontString (nil, "OVERLAY", "GameFontHighlightSmall") row.texto_esquerdo:SetPoint ("LEFT", row.textura, "LEFT", 22, -1) @@ -209,10 +209,12 @@ _detalhes.EncounterDetailsTempWindow = function (EncounterDetails) x_mod = x_mod or 0 width_mod = width_mod or 0 - barra:SetWidth (200+width_mod) --> tamanho da barra de acordo com o tamanho da janela - barra:SetHeight (16) --> altura determinada pela instância + local default_height = EncounterDetails.Frame.DefaultBarHeight - local y = (index-1)*17 + barra:SetWidth (200 + width_mod) --> tamanho da barra de acordo com o tamanho da janela + barra:SetHeight (default_height) --> altura determinada pela instância + + local y = (index-1)*(default_height + 1) y_mod = y_mod or 0 y = y + y_mod y = y*-1 --> baixo @@ -232,9 +234,9 @@ _detalhes.EncounterDetailsTempWindow = function (EncounterDetails) --> icone barra.icone = barra.textura:CreateTexture (nil, "OVERLAY") - barra.icone:SetWidth (16) - barra.icone:SetHeight (16) - barra.icone:SetPoint ("RIGHT", barra.textura, "LEFT", 0+20, 0) + barra.icone:SetWidth (default_height) + barra.icone:SetHeight (default_height) + barra.icone:SetPoint ("RIGHT", barra.textura, "LEFT", 20, 0) barra:SetAlpha (0.9) barra.icone:SetAlpha (0.8) @@ -1366,9 +1368,16 @@ _detalhes.EncounterDetailsTempWindow = function (EncounterDetails) BossFrame.buttonSwitchNormal:SetTemplate (DetailsFrameWork:GetTemplate ("button", "DETAILS_PLUGIN_BUTTONSELECTED_TEMPLATE")) BossFrame.buttonSwitchNormal:SetWidth (BUTTON_WIDTH) + --phases + BossFrame.buttonSwitchPhases = _detalhes.gump:CreateButton (BossFrame, BossFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Phases", "phases") + BossFrame.buttonSwitchPhases:SetPoint ("left", BossFrame.buttonSwitchNormal, "right", HEADER_MENUBUTTONS_SPACEMENT, 0) + BossFrame.buttonSwitchPhases:SetIcon ("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {151/256, 176/256, 0, 0.505625}) + BossFrame.buttonSwitchPhases:SetTemplate (DetailsFrameWork:GetTemplate ("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE")) + BossFrame.buttonSwitchPhases:SetWidth (BUTTON_WIDTH) + --chart BossFrame.buttonSwitchGraphic = _detalhes.gump:CreateButton (BossFrame, BossFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Charts", "graph") - BossFrame.buttonSwitchGraphic:SetPoint ("left", BossFrame.buttonSwitchNormal, "right", HEADER_MENUBUTTONS_SPACEMENT, 0) + BossFrame.buttonSwitchGraphic:SetPoint ("left", BossFrame.buttonSwitchPhases, "right", HEADER_MENUBUTTONS_SPACEMENT, 0) BossFrame.buttonSwitchGraphic:SetIcon ("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {0.1271875, 0.21875, 0, 0.505625}) BossFrame.buttonSwitchGraphic:SetTemplate (DetailsFrameWork:GetTemplate ("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE")) BossFrame.buttonSwitchGraphic:SetWidth (BUTTON_WIDTH) @@ -1386,14 +1395,6 @@ _detalhes.EncounterDetailsTempWindow = function (EncounterDetails) BossFrame.buttonSwitchSpellsAuras:SetIcon ("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {121/256, 146/256, 0, 0.505625}) BossFrame.buttonSwitchSpellsAuras:SetTemplate (DetailsFrameWork:GetTemplate ("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE")) BossFrame.buttonSwitchSpellsAuras:SetWidth (BUTTON_WIDTH) - - --phases - BossFrame.buttonSwitchPhases = _detalhes.gump:CreateButton (BossFrame, BossFrame.switch, BUTTON_WIDTH, BUTTON_HEIGHT, "Phases", "phases") - BossFrame.buttonSwitchPhases:SetPoint ("left", BossFrame.buttonSwitchSpellsAuras, "right", HEADER_MENUBUTTONS_SPACEMENT, 0) - BossFrame.buttonSwitchPhases:SetIcon ("Interface\\AddOns\\Details_EncounterDetails\\images\\boss_frame_buttons", 18, 18, "overlay", {151/256, 176/256, 0, 0.505625}) - BossFrame.buttonSwitchPhases:SetTemplate (DetailsFrameWork:GetTemplate ("button", "DETAILS_PLUGIN_BUTTON_TEMPLATE")) - BossFrame.buttonSwitchPhases:SetWidth (BUTTON_WIDTH) - BossFrame.AllButtons = {BossFrame.buttonSwitchNormal, BossFrame.buttonSwitchGraphic, BossFrame.buttonSwitchBossEmotes, BossFrame.buttonSwitchSpellsAuras, BossFrame.buttonSwitchPhases} @@ -2155,7 +2156,7 @@ PhaseFrame.CurrentSegment = {} PhaseFrame.PhaseButtons = {} EncounterDetailsPhaseFrame:Hide() -local ScrollWidth, ScrollHeight, ScrollLineAmount, ScrollLineHeight = 250, 410, 20, 20 +local ScrollWidth, ScrollHeight, ScrollLineAmount, ScrollLineHeight = 250, 420, 20, 20 local PhasesY = -88 local AnchorY = -120 @@ -2233,6 +2234,7 @@ function PhaseFrame.OnSelectPhase (phaseSelected) tinsert (PhaseFrame.DamageTable, {charName, amount}) end table.sort (PhaseFrame.DamageTable, function(a, b) return a[2] > b[2] end) + table.wipe (PhaseFrame.HealingTable) for charName, amount in pairs (phaseData.heal [phaseSelected]) do tinsert (PhaseFrame.HealingTable, {charName, amount}) @@ -2249,7 +2251,7 @@ end local PhaseSelectLabel = _detalhes.gump:CreateLabel (PhaseFrame, "Select Phase:", 12, "orange") local DamageLabel = _detalhes.gump:CreateLabel (PhaseFrame, "Damage Done") local HealLabel = _detalhes.gump:CreateLabel (PhaseFrame, "Healing Done") -local PhaseTimersLabel = _detalhes.gump:CreateLabel (PhaseFrame, "Phase Timers") +local PhaseTimersLabel = _detalhes.gump:CreateLabel (PhaseFrame, "Time Spent on Each Phase") local report_damage = function (IsCurrent, IsReverse, AmtLines) local result = {} @@ -2314,8 +2316,11 @@ for i = 1, 10 do end local ScrollRefresh = function (self, data, offset, total_lines) - local ToK = _detalhes.ToKFunctions [_detalhes.ps_abbreviation] - local RemoveRealm = _detalhes.GetOnlyName + local formatToK = Details:GetCurrentToKFunction() + local removeRealm = _detalhes.GetOnlyName + + local topValue = data [1] and data [1][2] + for i = 1, ScrollLineAmount do local index = i + offset local player = data [index] @@ -2325,8 +2330,15 @@ local ScrollRefresh = function (self, data, offset, total_lines) line.icon:SetTexture (texture) line.icon:SetTexCoord (L, R, T, B) - line.name:SetText (RemoveRealm (_, player[1])) - line.done:SetText (ToK (_, player[2])) + line.name:SetText (index .. ". " .. removeRealm (_, player[1])) + line.done:SetText (formatToK (_, player[2]) .. " (" .. format ("%.1f", player[2] / topValue * 100) .. "%)") + line.statusbar:SetValue (player[2] / topValue * 100) + local actorClass = Details:GetClass (player[1]) + if (actorClass) then + line.statusbar:SetColor (actorClass) + else + line.statusbar:SetColor ("silver") + end end end end @@ -2339,7 +2351,6 @@ local line_onleave = function (self) self:SetBackdropColor (unpack (BGColorDefault)) end - local ScrollCreateLine = function (self, index) local line = CreateFrame ("button", "$parentLine" .. index, self) line:SetPoint ("topleft", self, "topleft", 0, -((index-1)*(ScrollLineHeight+1))) @@ -2350,20 +2361,30 @@ local ScrollCreateLine = function (self, index) line:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) line:SetBackdropColor (unpack (BGColorDefault)) + + local statusBar = DetailsFrameWork:CreateBar (line, EncounterDetails.Frame.DefaultBarTexture, 1, 1, 100) + statusBar:SetAllPoints (line) + statusBar.backgroundtexture = EncounterDetails.Frame.DefaultBarTexture + statusBar.backgroundcolor = {.3, .3, .3, .3} - local icon = line:CreateTexture ("$parentIcon", "overlay") + local icon = statusBar:CreateTexture ("$parentIcon", "overlay") icon:SetSize (ScrollLineHeight, ScrollLineHeight) - local name = line:CreateFontString ("$parentName", "overlay", "GameFontNormal") - _detalhes.gump:SetFontSize (name, 9) + + local name = statusBar:CreateFontString ("$parentName", "overlay", "GameFontNormal") + _detalhes.gump:SetFontSize (name, 10) icon:SetPoint ("left", line, "left", 2, 0) name:SetPoint ("left", icon, "right", 2, 0) _detalhes.gump:SetFontColor (name, "white") - local done = line:CreateFontString ("$parentDone", "overlay", "GameFontNormal") - _detalhes.gump:SetFontSize (done, 9) + + local done = statusBar:CreateFontString ("$parentDone", "overlay", "GameFontNormal") + _detalhes.gump:SetFontSize (done, 10) + _detalhes.gump:SetFontColor (done, "white") done:SetPoint ("right", line, "right", -2, 0) + line.icon = icon line.name = name line.done = done + line.statusbar = statusBar name:SetHeight (10) name:SetJustifyH ("left") return line @@ -2410,10 +2431,11 @@ local PhaseBarOnClick = function (self) --report end +--cria as linhas mostrando o tempo decorride de cada phase for i = 1, 10 do local line = CreateFrame ("button", "$parentPhaseBar" .. i, PhaseFrame) line:SetPoint ("topleft", PhaseTimersLabel.widget, "bottomleft", 0, -((i-1)*(31)) - 4) - line:SetSize (ScrollWidth, 30) + line:SetSize (175, 30) line:SetScript ("OnEnter", PhaseBarOnEnter) line:SetScript ("OnLeave", PhaseBarOnLeave) line:SetScript ("OnClick", PhaseBarOnClick) @@ -2431,7 +2453,7 @@ for i = 1, 10 do icon:SetPoint ("left", line, "left", 2, 0) name:SetPoint ("left", icon, "right", 2, 0) - done:SetPoint ("right", line, "right", -2, 0) + done:SetPoint ("right", line, "right", -3, 0) line.icon = icon line.name = name @@ -2442,12 +2464,12 @@ for i = 1, 10 do tinsert (PhaseFrame.PhasesBars, line) end ---cria a linha do segmento para a compara ção, é o que fica na parte direita da tela +--cria a linha do segmento para a comparação, é o que fica na parte direita da tela --ele é acessado para mostrar quando passar o mouse sobre uma das barras de phase for i = 1, 20 do local line = CreateFrame ("button", "$parentSegmentCompareBar" .. i, PhaseFrame) - line:SetPoint ("topleft", PhaseTimersLabel.widget, "bottomleft", ScrollWidth+10, -((i-1)*(ScrollLineHeight+1)) - 4) - line:SetSize (ScrollWidth, ScrollLineHeight) + line:SetPoint ("topleft", PhaseTimersLabel.widget, "bottomleft", 175+10, -((i-1)*(ScrollLineHeight+1)) - 4) + line:SetSize (150, ScrollLineHeight) line:SetBackdrop ({bgFile = [[Interface\Tooltips\UI-Tooltip-Background]], tileSize = 64, tile = true}) line:SetBackdropColor (unpack (BGColorDefault)) @@ -2701,7 +2723,6 @@ end container_habilidades_frame.barras = {} --label titulo % background - local habilidades_inimigas_bg = CreateFrame ("Frame", nil, frame) habilidades_inimigas_bg:SetWidth (BOX_WIDTH) habilidades_inimigas_bg:SetHeight (16) diff --git a/startup.lua b/startup.lua index ea852a5f..6d33db3d 100644 --- a/startup.lua +++ b/startup.lua @@ -90,6 +90,7 @@ function _G._detalhes:Start() self:InitializeAPIWindow() self:InitializeRunCodeWindow() self:InitializePlaterIntegrationWindow() + self:InitializeMacrosWindow() --> bookmarks if (self.switch.InitSwitch) then