From e4d5d40870a0852fd942720541fce4b7b50bf265 Mon Sep 17 00:00:00 2001 From: tercio Date: Wed, 24 Dec 2014 00:57:31 -0200 Subject: [PATCH] - Added Fast Dps/Hps Updates, enable in on Rows: Advanced -> Fast Updates. - Added custom spell for Mirror Images Fireball and Frostbolt. - Added new skin: 'ElvUI Style II'. - Added Observer channel for Raid Tools, it only reports the cooldown/interrupt/death to you in your chat window. - Added new plugin: Raid Check: it tracks raid members checking food, flask and pre-potions usage. - Changed DPS display, now it shows onyl the player's Dps and the Dps difference between him and the top ranked. - Changed Overheal display, now its percentage shows the player's overheal percent. - Player Detail Window now shows the amount of multistrike on normal and critical hits. - Removed skin: 'ElvUI Frame Style BW'. - The tooltip for Scale option under options panel, now shows the real value for the scale. - Fixed a problem where multistrike was counting towards critical strike amount. - Fixed death display's report where it was't showing any death. - Fixed a small issue with Encounter Details plugin where sometimes gets a error right after a boss encounter. - Fixed bugs on sending messages to chat for Raid Tools. --- boot.lua | 41 ++++--- classes/classe_damage.lua | 49 +++++++-- classes/classe_damage_habilidade.lua | 100 ++++++++++-------- classes/classe_energy.lua | 2 +- classes/classe_heal.lua | 21 ++-- classes/classe_instancia.lua | 48 ++++++--- classes/classe_instancia_include.lua | 2 + classes/classe_others.lua | 2 +- core/control.lua | 6 +- core/parser.lua | 8 +- core/util.lua | 10 +- functions/spellcache.lua | 3 + gumps/janela_options.lua | 68 ++++++++---- gumps/janela_principal.lua | 90 ++++++++++++++++ images/skins/classic_skin.tga | Bin 173072 -> 173242 bytes images/skins/classic_skin_v1.tga | Bin 134812 -> 134506 bytes images/skins/default_skin.tga | Bin 198474 -> 198332 bytes images/skins/elvui.tga | Bin 174579 -> 174458 bytes images/skins/elvui_opaque.tga | Bin 187478 -> 187332 bytes images/skins/flat_skin.tga | Bin 178181 -> 177821 bytes plugins/Details_EncounterDetails/frames.lua | 5 + .../Details_RaidCheck/Details_RaidCheck.lua | 21 ++-- 22 files changed, 341 insertions(+), 135 deletions(-) diff --git a/boot.lua b/boot.lua index d01b52e9..a0855bee 100644 --- a/boot.lua +++ b/boot.lua @@ -1,11 +1,11 @@ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --> global name declaration - + _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") - _detalhes.build_counter = 287 --it's 287 for release - _detalhes.userversion = "v3.6.4" - _detalhes.realversion = 51 --core version + _detalhes.build_counter = 310 --it's 310 for release + _detalhes.userversion = "3.6.7" + _detalhes.realversion = 53 --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -18,30 +18,25 @@ do local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) --[[ -|cFFFFFF00v3.6.4 |cFF55FF55(beta)|r (|cFFFFCC00Dec 21, 2014|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Removed skin: 'ElvUI Frame Style BW'.\n\n + +|cFFFFFF00v3.6.7 (|cFFFFCC00Dec 24, 2014|r|cFFFFFF00)|r:\n\n +|cFFFFFF00-|r Added Fast Dps/Hps Updates, enable in on Rows: Advanced -> Fast Updates.\n\n +|cFFFFFF00-|r Added custom spell for Mirror Images Fireball and Frostbolt.\n\n |cFFFFFF00-|r Added new skin: 'ElvUI Style II'.\n\n -|cFFFFFF00-|r The tooltip for Scale option under options panel, now shows the real value for the scale.\n\n - -|cFFFFFF00v3.6.3 |cFF55FF55(beta)|r (|cFFFFCC00Dec 19, 2014|r|cFFFFFF00)|r:\n\n |cFFFFFF00-|r Added Observer channel for Raid Tools, it only reports the cooldown/interrupt/death to you in your chat window.\n\n -|cFFFFFF00-|r More updates on the new plugin Raid Check.\n\n - -|cFFFFFF00v3.6.2 |cFF55FF55(beta)|r (|cFFFFCC00Dec 17, 2014|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Continuing the implementation of RaidCheck, plugin for check food, flasks and pre-pots.\n\n +|cFFFFFF00-|r Added new plugin: Raid Check: it tracks raid members checking food, flask and pre-potions usage.\n\n +|cFFFFFF00-|r Changed DPS display, now it shows onyl the player's Dps and the Dps difference between him and the top ranked.\n\n +|cFFFFFF00-|r Changed Overheal display, now its percentage shows the player's overheal percent.\n\n +|cFFFFFF00-|r Player Detail Window now shows the amount of multistrike on normal and critical hits.\n\n +|cFFFFFF00-|r Removed skin: 'ElvUI Frame Style BW'.\n\n +|cFFFFFF00-|r The tooltip for Scale option under options panel, now shows the real value for the scale.\n\n +|cFFFFFF00-|r Fixed a problem where multistrike was counting towards critical strike amount.\n\n +|cFFFFFF00-|r Fixed death display's report where it was't showing any death.\n\n +|cFFFFFF00-|r Fixed a small issue with Encounter Details plugin where sometimes gets a error right after a boss encounter.\n\n |cFFFFFF00-|r Fixed bugs on sending messages to chat for Raid Tools.\n\n - -|cFFFFFF00v3.6.1 (|cFFFFCC00Dec 17, 2014|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Started coding the new plugin for check flasks, food, pre potion.\n\n -|cFFFFFF00-|r Death time seems to be bugged due to Combat elapsed time change.\n\n - -|cFFFFFF00v3.6.0 (|cFFFFCC00Dec 16, 2014|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Elapsed combat time now uses Float numbers instead of Integer, this might bug something, be aware of anomalies.\n -This change makes fun things, now we can make Dps and Hps update really quick and also increase the accuracy with warcraftlogs.\n\n - --]] - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.6.4 |cFF55FF55(beta)|r (|cFFFFCC00Dec 21, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Removed skin: 'ElvUI Frame Style BW'.\n\n|cFFFFFF00-|r Added new skin: 'ElvUI Style II'.\n\n|cFFFFFF00-|r The tooltip for Scale option under options panel, now shows the real value for the scale.\n\n|cFFFFFF00v3.6.3 |cFF55FF55(beta)|r (|cFFFFCC00Dec 19, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Observer channel for Raid Tools, it only reports the cooldown/interrupt/death to you at your chat window.\n\n|cFFFFFF00-|r More updates on the new plugin Raid Check.\n\n|cFFFFFF00v3.6.2 |cFF55FF55(beta)|r (|cFFFFCC00Dec 17, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Continuing the implementation of RaidCheck, plugin for check food, flasks and pre-pots.\n\n|cFFFFFF00-|r Fixed bugs on sending messages to chat for Raid Tools.\n\n|cFFFFFF00v3.6.1 |cFF55FF55(beta)|r (|cFFFFCC00Dec 17, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Started coding the new plugin for check flasks, food, pre potion.\n\n|cFFFFFF00-|r Death time seems to be bugged due to Combat elapsed time change.\n\n|cFFFFFF00v3.6.0 |cFF55FF55(beta)|r (|cFFFFCC00Dec 16, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Elapsed combat time now uses Float numbers instead of Integer, this might bug something, be aware of anomalies.\nThis change makes fun things, now we can make Dps and Hps update really quick and also increase the accuracy with warcraftlogs.\n\n|cFFFFFF00v3.5.1 (|cFFFFCC00Dec 16, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed few accuracy on miss spells.\n\n|cFFFFFF00v3.5.0 (|cFFFFCC00Dec 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed tooltip for Auras and Voidzones, now shows sorted by damage and time.\n\n|cFFFFFF00-|r More fixes for Korgath encounter on Highmaul.\n\n|cFFFFFF00-|r Added slash commands: 'reset' 'config'.\n\n|cFFFFFF00-|r Spell bars on Player Details Window now is painted with the spell spellschool color.\n\n|cFFFFFF00-|r Multistrike doesn't count any more for spell's Minimal Damage.\n\n|cFFFFFF00-|r Resource display got an tooltip which shows what resource is and resource gained per minute.\n\n|cFFFFFF00-|r Clicking on report button when the report window is already open, make it close.\n\n|cFFFFFF00v3.4.7 (|cFFFFCC00Dec 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Advanced Death Logs plugin got updates on Endurance Player Value and few bug fixes.\n\n|cFFFFFF00-|r Max Window Amount options can new be set to 1, before the minimum was 3.\n\n|cFFFFFF00-|r Fixed a problem with friendly fire tooltip where sometimes it wasn't showing up.\n\n|cFFFFFF00-|r Fixed cooldowns tooltip which wasn't showing rounded numbers (49.99 instead of 50).\n\n|cFFFFFF00-|r Fixed Warrior's Shield Block which wasn't being count as a cooldown.\n\n|cFFFFFF00-|r Fixed a problem where sometimes when a hunter pull and reset the boss right after, was causing segments to merge.\n\n|cFFFFFF00v3.4.4 (|cFFFFCC00Dec 05, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a issue with Ko'Ragh boss on Highmaul raid.\n\n|cFFFFFF00-|r Few changes on Bookmark panel.\n\n|cFFFFFF00v3.4.3 (|cFFFFCC00Dec 02, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Removed 'Simple Gray' skin.\n\n|cFFFFFF00-|r Addde new skin: 'Forced Square'.\n\n|cFFFFFF00-|r 'Default Skin' got renamed to 'WoW Interface'.\n\n|cFFFFFF00v3.4.2 (|cFFFFCC00Dec 01, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a bug with menu desaturation where erase and close buttons stay colored after clicking on it.\n\n|cFFFFFF00-|r Fixed stretch where sometimes after release the window, all exceeded bars shows up and fade in again.\n\n|cFFFFFF00-|r Fixed a bug with the +- buttons on the window's scale option.\n\n|cFFFFFF00-|r Fixed the border for sub menus on mode menu.\n\n|cFFFFFF00v3.4.0 (|cFFFFCC00Nov 29, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed custom displays ignoring 'target' setted.\n\n|cFFFFFF00-|r Fixed plugins showing its icon even when auto hide menus is enabled.\n\n|cFFFFFF00-|r .Updates slash command 'worldboss' now it shows Draenor bosses.\n\n|cFFFFFF00v3.3.0 (|cFFFFCC00Nov 25, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 3D models for the bars in the window. The options are at Appearance -> Rows: Advanced.\n\n|cFFFFFF00-|r Now when showing custom displays, clicking on a bar report what is shown on bar's tooltip.\n\n|cFFFFFF00-|r More fixes for dungeon bosses identification.\n\n|cFFFFFF00-|r Fixed a tooltip bug with Debuff Uptime and Aura & Voidzone displays.\n\n|cFFFFFF00-|r Fixed Player Details Window for friendly fire and damage taken.\n\n|cFFFFFF00-|r Fixed Molten Core Raid Finder version where all bosses was considered trash segments.\n\n|cFFFFFF00v3.2.4 (|cFFFFCC00Nov 19, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r More fixes for dungeon bosses recognition.\n\n|cFFFFFF00-|r Fixes for few errors during combat parser.\n\n|cFFFFFF00v3.2.3 (|cFFFFCC00Nov 18, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk's Stagger ability which was counting as damage done.\n\n|cFFFFFF00-|r Added WoD dungeon information, this fixes dungeon bosses being assigned as 'trash cleanup'.\n\n|cFFFFFF00-|r Added more information on API.txt document (is in Details! root folder).\n\n|cFFFFFF00v3.2.1 (|cFFFFCC00Nov 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Custom Displays updated to track WoD potions.\n\n|cFFFFFF00-|r Added Feedback panel at options panel.\n\n|cFFFFFF00v3.2.0 (|cFFFFCC00Nov 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major changes on the way Details! store information, these changes saves up to 40% memory and 4% cpu usage.\n\n|cFFFFFF00-|r Fixed problem with pet's healing messing with the owner activity time.\n\n|cFFFFFF00-|r Added Energy -> Resources.\n\n|cFFFFFF00-|r Fixed combat initialization when the player start casting a Dot spell.\n\n|cFFFFFF00-|r Added new custom display: Damage Taken By Spell.\n\n|cFFFFFF00v2.2.3 (|cFFFFCC00Oct 26, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the healing done problem with Priest's Spirit of Redemption.\n\n|cFFFFFF00-|r Fixed avoidance by absorb when the hit missed was a multistrike hit.\n\n|cFFFFFF00-|r Fixed a script time out problem when erasing data while in combat.\n\n|cFFFFFF00-|r Fixed bug with interrupt tooltip when the player have a pet.\n\n|cFFFFFF00v2.2.1 (|cFFFFCC00Oct 22, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the gap between the button and its menu which sometimes traveling the mouse between them was activating tooltips from window's bars.\n\n|cFFFFFF00-|r Fixed an annoying menu blink when the window was near the right side of the screen.\n\n|cFFFFFF00-|r Fixed the stretch grab which was over other windows even with the 'stretch always on top' option disabled.\n\n|cFFFFFF00-|r Few fixes on healing done from absorbs.\n\n|cFFFFFF00v2.1.6 (|cFFFFCC00Oct 21, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed death's tooltip which wasn't respecting tooltip's configuration set on options panel.\n\n|cFFFFFF00-|r Now when the window is close to the top of the screen, menus will anchor on bottom side of the menu icons.\n\n|cFFFFFF00-|r Added micro displays options on Window Settings bracket.\n\n|cFFFFFF00-|r Fixed the problem with bar's custom texts." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.6.7 (|cFFFFCC00Dec 24, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Fast Dps/Hps Updates, enable in on Rows: Advanced -> Fast Updates.\n\n|cFFFFFF00-|r Added custom spell for Mirror Images Fireball and Frostbolt.\n\n|cFFFFFF00-|r Added new skin: 'ElvUI Style II'.\n\n|cFFFFFF00-|r Added Observer channel for Raid Tools, it only reports the cooldown/interrupt/death to you in your chat window.\n\n|cFFFFFF00-|r Added new plugin: Raid Check: it tracks raid members checking food, flask and pre-potions usage.\n\n|cFFFFFF00-|r Changed DPS display, now it shows onyl the player's Dps and the Dps difference between him and the top ranked.\n\n|cFFFFFF00-|r Changed Overheal display, now its percentage shows the player's overheal percent.\n\n|cFFFFFF00-|r Player Detail Window now shows the amount of multistrike on normal and critical hits.\n\n|cFFFFFF00-|r Removed skin: 'ElvUI Frame Style BW'.\n\n|cFFFFFF00-|r The tooltip for Scale option under options panel, now shows the real value for the scale.\n\n|cFFFFFF00-|r Fixed a problem where multistrike was counting towards critical strike amount.\n\n|cFFFFFF00-|r Fixed death display's report where it was't showing any death.\n\n|cFFFFFF00-|r Fixed a small issue with Encounter Details plugin where sometimes gets a error right after a boss encounter.\n\n|cFFFFFF00-|r Fixed bugs on sending messages to chat for Raid Tools.\n\n\n\n|cFFFFFF00v3.5.1 (|cFFFFCC00Dec 16, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed few accuracy on miss spells.\n\n|cFFFFFF00v3.5.0 (|cFFFFCC00Dec 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed tooltip for Auras and Voidzones, now shows sorted by damage and time.\n\n|cFFFFFF00-|r More fixes for Korgath encounter on Highmaul.\n\n|cFFFFFF00-|r Added slash commands: 'reset' 'config'.\n\n|cFFFFFF00-|r Spell bars on Player Details Window now is painted with the spell spellschool color.\n\n|cFFFFFF00-|r Multistrike doesn't count any more for spell's Minimal Damage.\n\n|cFFFFFF00-|r Resource display got an tooltip which shows what resource is and resource gained per minute.\n\n|cFFFFFF00-|r Clicking on report button when the report window is already open, make it close.\n\n|cFFFFFF00v3.4.7 (|cFFFFCC00Dec 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Advanced Death Logs plugin got updates on Endurance Player Value and few bug fixes.\n\n|cFFFFFF00-|r Max Window Amount options can new be set to 1, before the minimum was 3.\n\n|cFFFFFF00-|r Fixed a problem with friendly fire tooltip where sometimes it wasn't showing up.\n\n|cFFFFFF00-|r Fixed cooldowns tooltip which wasn't showing rounded numbers (49.99 instead of 50).\n\n|cFFFFFF00-|r Fixed Warrior's Shield Block which wasn't being count as a cooldown.\n\n|cFFFFFF00-|r Fixed a problem where sometimes when a hunter pull and reset the boss right after, was causing segments to merge.\n\n|cFFFFFF00v3.4.4 (|cFFFFCC00Dec 05, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a issue with Ko'Ragh boss on Highmaul raid.\n\n|cFFFFFF00-|r Few changes on Bookmark panel.\n\n|cFFFFFF00v3.4.3 (|cFFFFCC00Dec 02, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Removed 'Simple Gray' skin.\n\n|cFFFFFF00-|r Addde new skin: 'Forced Square'.\n\n|cFFFFFF00-|r 'Default Skin' got renamed to 'WoW Interface'.\n\n|cFFFFFF00v3.4.2 (|cFFFFCC00Dec 01, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a bug with menu desaturation where erase and close buttons stay colored after clicking on it.\n\n|cFFFFFF00-|r Fixed stretch where sometimes after release the window, all exceeded bars shows up and fade in again.\n\n|cFFFFFF00-|r Fixed a bug with the +- buttons on the window's scale option.\n\n|cFFFFFF00-|r Fixed the border for sub menus on mode menu.\n\n|cFFFFFF00v3.4.0 (|cFFFFCC00Nov 29, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed custom displays ignoring 'target' setted.\n\n|cFFFFFF00-|r Fixed plugins showing its icon even when auto hide menus is enabled.\n\n|cFFFFFF00-|r .Updates slash command 'worldboss' now it shows Draenor bosses.\n\n|cFFFFFF00v3.3.0 (|cFFFFCC00Nov 25, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added 3D models for the bars in the window. The options are at Appearance -> Rows: Advanced.\n\n|cFFFFFF00-|r Now when showing custom displays, clicking on a bar report what is shown on bar's tooltip.\n\n|cFFFFFF00-|r More fixes for dungeon bosses identification.\n\n|cFFFFFF00-|r Fixed a tooltip bug with Debuff Uptime and Aura & Voidzone displays.\n\n|cFFFFFF00-|r Fixed Player Details Window for friendly fire and damage taken.\n\n|cFFFFFF00-|r Fixed Molten Core Raid Finder version where all bosses was considered trash segments.\n\n|cFFFFFF00v3.2.4 (|cFFFFCC00Nov 19, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r More fixes for dungeon bosses recognition.\n\n|cFFFFFF00-|r Fixes for few errors during combat parser.\n\n|cFFFFFF00v3.2.3 (|cFFFFCC00Nov 18, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed Monk's Stagger ability which was counting as damage done.\n\n|cFFFFFF00-|r Added WoD dungeon information, this fixes dungeon bosses being assigned as 'trash cleanup'.\n\n|cFFFFFF00-|r Added more information on API.txt document (is in Details! root folder).\n\n|cFFFFFF00v3.2.1 (|cFFFFCC00Nov 14, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Custom Displays updated to track WoD potions.\n\n|cFFFFFF00-|r Added Feedback panel at options panel.\n\n|cFFFFFF00v3.2.0 (|cFFFFCC00Nov 11, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Major changes on the way Details! store information, these changes saves up to 40% memory and 4% cpu usage.\n\n|cFFFFFF00-|r Fixed problem with pet's healing messing with the owner activity time.\n\n|cFFFFFF00-|r Added Energy -> Resources.\n\n|cFFFFFF00-|r Fixed combat initialization when the player start casting a Dot spell.\n\n|cFFFFFF00-|r Added new custom display: Damage Taken By Spell.\n\n|cFFFFFF00v2.2.3 (|cFFFFCC00Oct 26, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the healing done problem with Priest's Spirit of Redemption.\n\n|cFFFFFF00-|r Fixed avoidance by absorb when the hit missed was a multistrike hit.\n\n|cFFFFFF00-|r Fixed a script time out problem when erasing data while in combat.\n\n|cFFFFFF00-|r Fixed bug with interrupt tooltip when the player have a pet.\n\n|cFFFFFF00v2.2.1 (|cFFFFCC00Oct 22, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed the gap between the button and its menu which sometimes traveling the mouse between them was activating tooltips from window's bars.\n\n|cFFFFFF00-|r Fixed an annoying menu blink when the window was near the right side of the screen.\n\n|cFFFFFF00-|r Fixed the stretch grab which was over other windows even with the 'stretch always on top' option disabled.\n\n|cFFFFFF00-|r Few fixes on healing done from absorbs.\n\n|cFFFFFF00v2.1.6 (|cFFFFCC00Oct 21, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed death's tooltip which wasn't respecting tooltip's configuration set on options panel.\n\n|cFFFFFF00-|r Now when the window is close to the top of the screen, menus will anchor on bottom side of the menu icons.\n\n|cFFFFFF00-|r Added micro displays options on Window Settings bracket.\n\n|cFFFFFF00-|r Fixed the problem with bar's custom texts." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " diff --git a/classes/classe_damage.lua b/classes/classe_damage.lua index 2002525b..6eaf4fe7 100644 --- a/classes/classe_damage.lua +++ b/classes/classe_damage.lua @@ -20,6 +20,7 @@ local _rawget= rawget --lua local local _math_min = math.min --lua local local _math_max = math.max --lua local + local _math_abs = math.abs --lua local local _bit_band = bit.band --lua local local _unpack = unpack --lua local local _type = type --lua local @@ -1144,6 +1145,11 @@ function atributo_damage:RefreshWindow (instancia, tabela_do_combate, forcar, ex end + if (sub_atributo == 2) then --> dps + instancia.player_top_dps = conteudo [1].last_dps + instancia.player_top_dps_threshold = instancia.player_top_dps - (instancia.player_top_dps * 0.65) + end + if (instancia.bars_sort_direction == 1) then --top to bottom if (use_total_bar and instancia.barraS[1] == 1) then @@ -1354,7 +1360,7 @@ function atributo_damage:AtualizaBarra (instancia, barras_container, qual_barra, esta_barra.ps_text = formated_dps if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_damage, formated_dps, porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_damage, formated_dps, porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_damage .. " (" .. formated_dps .. ", " .. porcentagem .. "%)") --seta o texto da direita end @@ -1362,15 +1368,40 @@ function atributo_damage:AtualizaBarra (instancia, barras_container, qual_barra, elseif (sub_atributo == 2) then --> mostrando dps + local raw_dps = dps dps = _math_floor (dps) + local formated_damage = SelectedToKFunction (_, damage_total) local formated_dps = SelectedToKFunction (_, dps) esta_barra.ps_text = formated_dps + local diff_from_topdps + + if (lugar > 1) then + diff_from_topdps = instancia.player_top_dps - raw_dps + end + if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_dps, formated_damage, porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_dps, formated_damage, porcentagem, self, instancia.showing)) else - esta_barra.texto_direita:SetText (formated_dps .. " (" .. formated_damage .. ", " .. porcentagem .. "%)") --seta o texto da direita + + if (diff_from_topdps) then + local threshold = diff_from_topdps / instancia.player_top_dps_threshold * 100 + if (threshold < 100) then + threshold = _math_abs (threshold - 100) + else + threshold = 5 + end + + local rr, gg, bb = _detalhes:percent_color ( threshold ) + + rr, gg, bb = _detalhes:hex (_math_floor (rr*255)), _detalhes:hex (_math_floor (gg*255)), "28" + local color_percent = "" .. rr .. gg .. bb .. "" + + esta_barra.texto_direita:SetText (formated_dps .. " (|cFFFF4444-|r|cFF" .. color_percent .. SelectedToKFunction (_, _math_floor (diff_from_topdps)) .. "|r)") --seta o texto da direita + else + esta_barra.texto_direita:SetText (formated_dps .. " |TInterface\\GROUPFRAME\\UI-Group-LeaderIcon:14:14:0:0:16:16:0:16:0:16|t ") --seta o texto da direita + end end esta_porcentagem = _math_floor ((dps/instancia.top) * 100) --> determina qual o tamanho da barra @@ -1383,7 +1414,7 @@ function atributo_damage:AtualizaBarra (instancia, barras_container, qual_barra, esta_barra.ps_text = formated_dtps if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_damage_taken, formated_dtps, porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_damage_taken, formated_dtps, porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_damage_taken .." (" .. formated_dtps .. ", " .. porcentagem .. "%)") --seta o texto da direita -- end @@ -1394,7 +1425,7 @@ function atributo_damage:AtualizaBarra (instancia, barras_container, qual_barra, local formated_friendly_fire = SelectedToKFunction (_, self.friendlyfire_total) if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_friendly_fire, "", porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_friendly_fire, "", porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_friendly_fire .. " (" .. porcentagem .. "%)") --seta o texto da direita -- end @@ -1408,7 +1439,7 @@ function atributo_damage:AtualizaBarra (instancia, barras_container, qual_barra, esta_barra.ps_text = formated_dps if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_damage, formated_dps, porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_damage, formated_dps, porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_damage .. " (" .. formated_dps .. ", " .. porcentagem .. "%)") --seta o texto da direita end @@ -2998,12 +3029,12 @@ function atributo_damage:MontaDetalhesDamageDone (spellid, barra, instancia) data[#data+1] = t4 multistrike_table.p = esta_magia.m_amt/total_hits*100 - + t4[1] = esta_magia.m_amt t4[2] = multistrike_table t4[3] = Loc ["STRING_MULTISTRIKE_HITS"] - t4[4] = "" - t4[5] = "" + t4[4] = "On Critical: " .. esta_magia.m_crit + t4[5] = "On Normals: " .. (esta_magia.m_amt - esta_magia.m_crit) t4[6] = Loc ["STRING_AVERAGE"] .. ": " .. _detalhes:comma_value (esta_magia.m_dmg/esta_magia.m_amt) t4[7] = Loc ["STRING_DPS"] .. ": " .. _detalhes:comma_value (esta_magia.m_dmg/T) t4[8] = esta_magia.m_amt .. " / " .. _cstr ("%.1f", esta_magia.m_amt/total_hits*100) .. "%" diff --git a/classes/classe_damage_habilidade.lua b/classes/classe_damage_habilidade.lua index 96230999..826ec186 100644 --- a/classes/classe_damage_habilidade.lua +++ b/classes/classe_damage_habilidade.lua @@ -35,6 +35,7 @@ --> multistrike m_amt = 0, m_dmg = 0, + m_crit = 0, --off_amt = 0, --off_dmg = 0, --main_amt = 0, @@ -86,63 +87,63 @@ function habilidade_dano:Add (serial, nome, flag, amount, who_nome, resisted, blocked, absorbed, critical, glacing, token, multistrike, isoffhand) - self.counter = self.counter + 1 + self.total = self.total + amount self.targets [nome] = (self.targets [nome] or 0) + amount if (multistrike) then + self.m_amt = self.m_amt + 1 self.m_dmg = self.m_dmg + amount - end - - --[[ - if (isoffhand) then - self.off_amt = self.off_amt + 1 - self.off_dmg = self.off_dmg + amount + + if (critical) then + self.m_crit = self.m_crit + 1 + end + else - self.main_amt = self.main_amt + 1 - end - --]] - - if (resisted and resisted > 0) then - self.r_dmg = self.r_dmg+amount --> tabela.total é o total de dano - self.r_amt = self.r_amt+1 --> tabela.total é o total de dano - end - if (blocked and blocked > 0) then - self.b_dmg = self.b_dmg+amount --> amount é o total de dano - self.b_amt = self.b_amt+1 --> amount é o total de dano - end + self.counter = self.counter + 1 - if (absorbed and absorbed > 0) then - self.a_dmg = self.a_dmg+amount --> amount é o total de dano - self.a_amt = self.a_amt+1 --> amount é o total de dano - end + if (resisted and resisted > 0) then + self.r_dmg = self.r_dmg+amount --> tabela.total é o total de dano + self.r_amt = self.r_amt+1 --> tabela.total é o total de dano + end + + if (blocked and blocked > 0) then + self.b_dmg = self.b_dmg+amount --> amount é o total de dano + self.b_amt = self.b_amt+1 --> amount é o total de dano + end + + if (absorbed and absorbed > 0) then + self.a_dmg = self.a_dmg+amount --> amount é o total de dano + self.a_amt = self.a_amt+1 --> amount é o total de dano + end - self.total = self.total + amount + if (glacing) then + self.g_dmg = self.g_dmg+amount --> amount é o total de dano + self.g_amt = self.g_amt+1 --> amount é o total de dano - if (glacing) then - self.g_dmg = self.g_dmg+amount --> amount é o total de dano - self.g_amt = self.g_amt+1 --> amount é o total de dano - - elseif (critical) then - self.c_dmg = self.c_dmg+amount --> amount é o total de dano - self.c_amt = self.c_amt+1 --> amount é o total de dano - if (amount > self.c_max) then - self.c_max = amount - end - if ((self.c_min > amount or self.c_min == 0) and not multistrike) then - self.c_min = amount - end - else - self.n_dmg = self.n_dmg+amount - self.n_amt = self.n_amt+1 - if (amount > self.n_max) then - self.n_max = amount - end - if ((self.n_min > amount or self.n_min == 0) and not multistrike) then - self.n_min = amount + elseif (critical) then + self.c_dmg = self.c_dmg+amount --> amount é o total de dano + self.c_amt = self.c_amt+1 --> amount é o total de dano + if (amount > self.c_max) then + self.c_max = amount + end + if (self.c_min > amount or self.c_min == 0) then + self.c_min = amount + end + + else + self.n_dmg = self.n_dmg+amount + self.n_amt = self.n_amt+1 + if (amount > self.n_max) then + self.n_max = amount + end + if (self.n_min > amount or self.n_min == 0) then + self.n_min = amount + end end + end if (_recording_ability_with_buffs) then @@ -205,3 +206,12 @@ function _detalhes:UpdateDamageAbilityGears() _recording_ability_with_buffs = _detalhes.RecordPlayerAbilityWithBuffs end + +--[[ +if (isoffhand) then + self.off_amt = self.off_amt + 1 + self.off_dmg = self.off_dmg + amount +else + self.main_amt = self.main_amt + 1 +end +--]] \ No newline at end of file diff --git a/classes/classe_energy.lua b/classes/classe_energy.lua index 45c6237d..26d993b6 100644 --- a/classes/classe_energy.lua +++ b/classes/classe_energy.lua @@ -635,7 +635,7 @@ function atributo_energy:AtualizaBarra (instancia, barras_container, qual_barra, local formated_energy = SelectedToKFunction (_, esta_e_energy_total) if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_energy, "", porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_energy, "", porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_energy .. " (" .. porcentagem .. "%)") --seta o texto da direita end diff --git a/classes/classe_heal.lua b/classes/classe_heal.lua index d0d90fc3..15816e30 100644 --- a/classes/classe_heal.lua +++ b/classes/classe_heal.lua @@ -614,7 +614,7 @@ function atributo_heal:AtualizaBarra (instancia, barras_container, qual_barra, l esta_barra.ps_text = formated_hps if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_heal, formated_hps, porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_heal, formated_hps, porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_heal .." (" .. formated_hps .. ", " .. porcentagem .. "%)") --seta o texto da direita end @@ -628,7 +628,7 @@ function atributo_heal:AtualizaBarra (instancia, barras_container, qual_barra, l esta_barra.ps_text = formated_hps if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_hps, formated_heal, porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_hps, formated_heal, porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_hps .. " (" .. formated_heal .. ", " .. porcentagem .. "%)") --seta o texto da direita end @@ -638,10 +638,17 @@ function atributo_heal:AtualizaBarra (instancia, barras_container, qual_barra, l local formated_overheal = SelectedToKFunction (_, self.totalover) + local percent = self.totalover / (self.totalover + self.total) * 100 + local overheal_percent = _cstr ("%.1f", percent) + + local rr, gg, bb = _detalhes:percent_color (percent, true) + rr, gg, bb = _detalhes:hex (_math_floor (rr*255)), _detalhes:hex (_math_floor (gg*255)), _detalhes:hex (_math_floor (bb*255)) + overheal_percent = "|cFF" .. rr .. gg .. bb .. overheal_percent .. "|r" + if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_overheal, "", porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_overheal, "", overheal_percent, self, instancia.showing)) else - esta_barra.texto_direita:SetText (formated_overheal .." (" .. porcentagem .. "%)") --seta o texto da direita --_cstr("%.1f", dps) .. " - ".. DPS do damage taken não será possivel correto? + esta_barra.texto_direita:SetText (formated_overheal .." (" .. overheal_percent .. "%)") --seta o texto da direita --_cstr("%.1f", dps) .. " - ".. DPS do damage taken não será possivel correto? end esta_porcentagem = _math_floor ((self.totalover/instancia.top) * 100) --> determina qual o tamanho da barra @@ -650,7 +657,7 @@ function atributo_heal:AtualizaBarra (instancia, barras_container, qual_barra, l local formated_healtaken = SelectedToKFunction (_, self.healing_taken) if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_healtaken, "", porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_healtaken, "", porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_healtaken .. " (" .. porcentagem .. "%)") --seta o texto da direita --_cstr("%.1f", dps) .. " - ".. DPS do damage taken não será possivel correto? end @@ -661,7 +668,7 @@ function atributo_heal:AtualizaBarra (instancia, barras_container, qual_barra, l local formated_enemyheal = SelectedToKFunction (_, self.heal_enemy_amt) if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_enemyheal, "", porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_enemyheal, "", porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_enemyheal .. " (" .. porcentagem .. "%)") --seta o texto da direita --_cstr("%.1f", dps) .. " - ".. DPS do damage taken não será possivel correto? end @@ -672,7 +679,7 @@ function atributo_heal:AtualizaBarra (instancia, barras_container, qual_barra, l local formated_absorbs = SelectedToKFunction (_, self.totalabsorb) if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_absorbs, "", porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, formated_absorbs, "", porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (formated_absorbs .. " (" .. porcentagem .. "%)") --seta o texto da direita --_cstr("%.1f", dps) .. " - ".. DPS do damage taken não será possivel correto? end diff --git a/classes/classe_instancia.lua b/classes/classe_instancia.lua index 935061b3..2567d03e 100644 --- a/classes/classe_instancia.lua +++ b/classes/classe_instancia.lua @@ -2100,6 +2100,7 @@ function _detalhes:TrocaTabela (instancia, segmento, atributo, sub_atributo, ini end end + _detalhes:InstanceCall (_detalhes.CheckPsUpdate) _detalhes:SendEvent ("DETAILS_INSTANCE_CHANGEATTRIBUTE", nil, instancia, atributo, sub_atributo) end @@ -2117,6 +2118,7 @@ function _detalhes:TrocaTabela (instancia, segmento, atributo, sub_atributo, ini instancia:ChangeIcon() end + _detalhes:InstanceCall (_detalhes.CheckPsUpdate) _detalhes:SendEvent ("DETAILS_INSTANCE_CHANGEATTRIBUTE", nil, instancia, atributo, sub_atributo) end @@ -2673,12 +2675,14 @@ function _detalhes:monta_relatorio (este_relatorio, custom) total, keyName, first, container_amount = _detalhes.atributo_energy:RefreshWindow (self, self.showing, true, true) elseif (atributo == 4) then --> misc if (self.sub_atributo == 5) then --> mortes + local mortes = self.showing.last_events_tables local reportarMortes = {} for index, morte in ipairs (mortes) do reportarMortes [#reportarMortes+1] = {dead = morte [6], nome = morte [3]:gsub (("%-.*"), "")} end container = reportarMortes + container_amount = #reportarMortes keyName = "dead" else total, keyName, first, container_amount = _detalhes.atributo_misc:RefreshWindow (self, self.showing, true, true) @@ -2697,18 +2701,20 @@ function _detalhes:monta_relatorio (este_relatorio, custom) --print (total, keyName, first, atributo, container_amount) end - amt = math.min (amt, container_amount or 0) + amt = math.min (amt, container_amount or 0) +--amt é zero for i = 1, amt do local _thisActor = container [i] if (_thisActor) then - - local amount + + local amount, is_string if (type (_thisActor [keyName]) == "number") then amount = _math_floor (_thisActor [keyName]) else amount = _thisActor [keyName] + is_string = true end local name = _thisActor.nome.." " @@ -2725,21 +2731,29 @@ function _detalhes:monta_relatorio (este_relatorio, custom) stringlen = _detalhes.fontstring_len:GetStringWidth() end + local percent + + if (self.atributo == 2 and self.sub_atributo == 3) then --overheal + percent = _cstr ("%.1f", _thisActor.totalover / (_thisActor.totalover + _thisActor.total) * 100) + elseif (not is_string) then + percent = _cstr ("%.1f", amount/total*100) + end + if (_type (amount) == "number" and amount > 0) then if (keyNameSec) then local dps = GetDpsHps (_thisActor, keyNameSec) if (_detalhes.report_schema == 1) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _cstr ("%.2f", amount/total*100) .. "%)" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. percent .. "%)" elseif (_detalhes.report_schema == 2) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")" elseif (_detalhes.report_schema == 3) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")" end else if (_detalhes.report_schema == 1) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. _cstr ("%.1f", amount/total*100) .. "%)" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. percent .. "%)" else - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.1f", amount/total*100) .. "% (" .. _detalhes:ToKReport (amount) .. ")" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKReport (amount) .. ")" end end @@ -2850,20 +2864,28 @@ function _detalhes:monta_relatorio (este_relatorio, custom) if (_type (amount) == "number") then if (amount > 0) then + local percent + + if (self.atributo == 2 and self.sub_atributo == 3) then --overheal + percent = _cstr ("%.1f", _thisActor.totalover / (_thisActor.totalover + _thisActor.total) * 100) + else + percent = _cstr ("%.1f", amount/total*100) + end + if (keyNameSec) then local dps = GetDpsHps (_thisActor, keyNameSec) if (_detalhes.report_schema == 1) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _cstr ("%.2f", amount/total*100) .. "%)" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKMin ( _math_floor (amount) ) .. " (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. percent .. "%)" elseif (_detalhes.report_schema == 2) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin (_math_floor (dps)) .. ", " .. _detalhes:ToKMin ( _math_floor (amount)) .. ")" elseif (_detalhes.report_schema == 3) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.2f", amount/total*100) .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. percent .. "% (" .. _detalhes:ToKMin ( _math_floor (amount) ) .. ", " .. _detalhes:ToKMin (_math_floor (dps)) .. ")" end else if (_detalhes.report_schema == 1) then - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. _cstr ("%.1f", amount/total*100) .. "%)" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _detalhes:ToKReport (amount) .. " (" .. percent .. "%)" else - report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.1f", amount/total*100) .. "% (" .. _detalhes:ToKReport (amount) .. ")" + report_lines [#report_lines+1] = i .. ". " .. name .. " " .. _cstr ("%.1f", amount/total*100) .. "% (" .. percent .. ")" end end diff --git a/classes/classe_instancia_include.lua b/classes/classe_instancia_include.lua index da532bd9..c9bc7e1f 100644 --- a/classes/classe_instancia_include.lua +++ b/classes/classe_instancia_include.lua @@ -176,6 +176,8 @@ _detalhes.instance_defaults = { lower_model = [[World\EXPANSION02\DOODADS\Coldarra\COLDARRALOCUS.m2]], lower_alpha = 0.10, }, + --fast hps/dps updates + fast_ps_update = false, }, --instance window color color = {1, 1, 1, 1}, diff --git a/classes/classe_others.lua b/classes/classe_others.lua index 79da286c..bc441558 100644 --- a/classes/classe_others.lua +++ b/classes/classe_others.lua @@ -753,7 +753,7 @@ function atributo_misc:AtualizaBarra (instancia, barras_container, qual_barra, l local esta_porcentagem = _math_floor ((meu_total/instancia.top) * 100) if (UsingCustomRightText) then - esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, meu_total, "", porcentagem, self)) + esta_barra.texto_direita:SetText (_string_replace (instancia.row_info.textR_custom_text, meu_total, "", porcentagem, self, instancia.showing)) else esta_barra.texto_direita:SetText (meu_total .." (" .. porcentagem .. "%)") --seta o texto da direita end diff --git a/core/control.lua b/core/control.lua index 48e54ef3..ad598023 100644 --- a/core/control.lua +++ b/core/control.lua @@ -233,7 +233,7 @@ --> internal functions -- _detalhes.statistics = {container_calls = 0, container_pet_calls = 0, container_unknow_pet = 0, damage_calls = 0, heal_calls = 0, absorbs_calls = 0, energy_calls = 0, pets_summons = 0} - -- ~start + -- ~start ~inicio function _detalhes:EntrarEmCombate (...) if (_detalhes.debug) then @@ -332,6 +332,8 @@ end end + _detalhes:InstanceCall (_detalhes.CheckPsUpdate) + _detalhes:SendEvent ("COMBAT_PLAYER_ENTER", nil, _detalhes.tabela_vigente) _detalhes:HaveOneCurrentInstance() @@ -610,6 +612,8 @@ _detalhes.pre_pot_used = nil _table_wipe (_detalhes.encounter_table) + _detalhes:InstanceCall (_detalhes.CheckPsUpdate) + if (invalid_combat) then _detalhes:SendEvent ("COMBAT_INVALID") _detalhes:SendEvent ("COMBAT_PLAYER_LEAVE", nil, invalid_combat) diff --git a/core/parser.lua b/core/parser.lua index 7e2dc2f2..912392cf 100644 --- a/core/parser.lua +++ b/core/parser.lua @@ -1,7 +1,3 @@ ---File Revision: 1 ---Last Modification: 27/07/2013 --- Change Log: - -- 27/07/2013: Finished alpha version. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -163,6 +159,10 @@ who_name = "[*] "..spellname end + if (absorbed) then + amount = absorbed + (amount or 0) + end + --> Fix for mage prismatic crystal --local npcId = _detalhes:GetNpcIdFromGuid (alvo_serial) --if (npcId == 76933) then diff --git a/core/util.lua b/core/util.lua index a44d3216..5c29eb78 100644 --- a/core/util.lua +++ b/core/util.lua @@ -160,7 +160,7 @@ return args [tonumber(i)] end local run_function = function (str) - local okey, value = _pcall (loadstring (str), args[4]) + local okey, value = _pcall (loadstring (str), args[4], args[5]) if (not okey) then _detalhes:Msg ("|cFFFF9900error on custom text function|r:", value) return 0 @@ -233,7 +233,7 @@ return s end - function _detalhes:percent_color (value) + function _detalhes:percent_color (value, inverted) local r, g if (value < 50) then r = 255 @@ -247,7 +247,11 @@ g = _math_floor ( (value * 2) * 255 / 100) end - return r/255, g/255, 0 + if (inverted) then + return g/255, r/255, 0 + else + return r/255, g/255, 0 + end end --> unpack more than 1 table diff --git a/functions/spellcache.lua b/functions/spellcache.lua index 34096867..a3c0102f 100644 --- a/functions/spellcache.lua +++ b/functions/spellcache.lua @@ -65,6 +65,9 @@ do [7] = {name = Loc ["STRING_ENVIRONMENTAL_LAVA"], icon = [[Interface\ICONS\Ability_Rhyolith_Volcano]]}, [8] = {name = Loc ["STRING_ENVIRONMENTAL_SLIME"], icon = [[Interface\ICONS\Ability_Creature_Poison_02]]}, + [59638] = {name = GetSpellInfo (59638) .. " (" .. Loc ["STRING_MIRROR_IMAGE"] .. ")"}, --> Mirror Image's Frost Bolt (mage) + [88082] = {name = GetSpellInfo (88082) .. " (" .. Loc ["STRING_MIRROR_IMAGE"] .. ")"}, --> Mirror Image's Fireball (mage) + [94472] = {name = GetSpellInfo (94472) .. " (" .. Loc ["STRING_CRITICAL_ONLY"] .. ")"}, --> Atonement critical hit (priest) [140816] = {name = GetSpellInfo (140816) .. " (" .. Loc ["STRING_CRITICAL_ONLY"] .. ")"}, --> Power Word: Solace critical hit (priest) diff --git a/gumps/janela_options.lua b/gumps/janela_options.lua index 972d38ef..619ad23c 100644 --- a/gumps/janela_options.lua +++ b/gumps/janela_options.lua @@ -5027,19 +5027,6 @@ function window:CreateFrame4() frame4.BackdropColorPick:SetPoint ("left", frame4.BackdropColorLabel, "right", 2, 0) local background = window:CreateLineBackground2 (frame4, "BackdropColorPick", "BackdropColorLabel", Loc ["STRING_OPTIONS_BAR_BACKDROP_COLOR_DESC"]) - - --player bar - - g:NewLabel (frame4, _, "$parentPlayerBarAnchor", "PlayerBarAnchor", Loc ["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"], "GameFontNormal") - - g:NewLabel (frame4, _, "$parentShowMeLabel", "ShowMeLabel", Loc ["STRING_OPTIONS_BAR_FOLLOWING"], "GameFontHighlightLeft") - g:NewSwitch (frame4, _, "$parentShowMeSlider", "ShowMeSlider", 60, 20, _, _, instance.following.enabled) - frame4.ShowMeSlider:SetPoint ("left", frame4.ShowMeLabel, "right", 2, -1) - frame4.ShowMeSlider.OnSwitch = function (self, instance, value) - --instance.following.enabled = value - instance:SetBarFollowPlayer (value) - end - window:CreateLineBackground2 (frame4, "ShowMeSlider", "ShowMeLabel", Loc ["STRING_OPTIONS_BAR_FOLLOWING_DESC"]) --> Anchors: local x = window.left_start_at @@ -5074,8 +5061,7 @@ function window:CreateFrame4() {frame4.rowLowerTextureLabel, 4, true}, {frame4.rowBackgroundLabel, 5}, {frame4.rowBackgroundPickLabel, 6}, - {"PlayerBarAnchor", 7, true}, - {"ShowMeLabel", 8}, + } window:arrange_menu (frame4, left_side, x, -90) @@ -5083,6 +5069,7 @@ function window:CreateFrame4() end + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- Appearance - Texts ~5 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -6347,7 +6334,36 @@ function window:CreateFrame8() end) window:CreateLineBackground2 (frame8, "ModelLowerAlphaSlider", "ModelLowerAlphaLabel", Loc ["STRING_OPTIONS_3D_LALPHA_DESC"]) - + + --> fast updates + + --> anchor + g:NewLabel (frame8, _, "$parentBarUpdateRateAnchor", "BarUpdateRateAnchor", Loc ["STRING_OPTIONS_BARUR_ANCHOR"], "GameFontNormal") + + --> enable fast updates + + g:NewLabel (frame8, _, "$parentBarUpdateRateLabel", "BarUpdateRateLabel", Loc ["STRING_OPTIONS_BARUR_ENABLED"], "GameFontHighlightLeft") + g:NewSwitch (frame8, _, "$parentBarUpdateRateSlider", "BarUpdateRateSlider", 60, 20, _, _, _G.DetailsOptionsWindow.instance.row_info.fast_ps_update) + frame8.BarUpdateRateSlider:SetPoint ("left", frame8.BarUpdateRateLabel, "right", 2, -1) + frame8.BarUpdateRateSlider.OnSwitch = function (self, instance, value) + instance:FastPSUpdate (value) + end + window:CreateLineBackground2 (frame8, "BarUpdateRateSlider", "BarUpdateRateLabel", Loc ["STRING_OPTIONS_BARUR_DESC"]) + + --> player bar + + --> anchor + g:NewLabel (frame8, _, "$parentPlayerBarAnchor", "PlayerBarAnchor", Loc ["STRING_OPTIONS_BAR_FOLLOWING_ANCHOR"], "GameFontNormal") + + --> enable player bar + g:NewLabel (frame8, _, "$parentShowMeLabel", "ShowMeLabel", Loc ["STRING_OPTIONS_BAR_FOLLOWING"], "GameFontHighlightLeft") + g:NewSwitch (frame8, _, "$parentShowMeSlider", "ShowMeSlider", 60, 20, _, _, instance.following.enabled) + frame8.ShowMeSlider:SetPoint ("left", frame8.ShowMeLabel, "right", 2, -1) + frame8.ShowMeSlider.OnSwitch = function (self, instance, value) + instance:SetBarFollowPlayer (value) + end + window:CreateLineBackground2 (frame8, "ShowMeSlider", "ShowMeLabel", Loc ["STRING_OPTIONS_BAR_FOLLOWING_DESC"]) + --> anchors local x = window.left_start_at @@ -6368,7 +6384,16 @@ function window:CreateFrame8() } window:arrange_menu (frame8, left_side, x, -90) - + + local right_side = { + {"BarUpdateRateAnchor", 1, true}, + {"BarUpdateRateLabel", 2}, + {"PlayerBarAnchor", 3, true}, + {"ShowMeLabel", 4}, + } + + window:arrange_menu (frame8, right_side, window.right_start_at, window.top_start_at) + end --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -8468,10 +8493,6 @@ end --> if not window _G.DetailsOptionsWindow4BarStartSlider.MyObject:SetFixedParameter (editing_instance) _G.DetailsOptionsWindow4BarStartSlider.MyObject:SetValue (editing_instance.row_info.start_after_icon) - _G.DetailsOptionsWindow4ShowMeSlider.MyObject:SetFixedParameter (editing_instance) - _G.DetailsOptionsWindow4ShowMeSlider.MyObject:SetValue (editing_instance.following.enabled) - - _G.DetailsOptionsWindow4BackdropBorderTextureDropdown.MyObject:SetFixedParameter (editing_instance) _G.DetailsOptionsWindow4BackdropEnabledSlider.MyObject:SetFixedParameter (editing_instance) _G.DetailsOptionsWindow4BackdropSizeHeight.MyObject:SetFixedParameter (editing_instance) @@ -8577,7 +8598,12 @@ end --> if not window _G.DetailsOptionsWindow8ModelLowerAlphaSlider.MyObject:SetFixedParameter (editing_instance) _G.DetailsOptionsWindow8ModelLowerAlphaSlider.MyObject:SetValue (editing_instance.row_info.models.lower_alpha) + + _G.DetailsOptionsWindow8BarUpdateRateSlider.MyObject:SetFixedParameter (editing_instance) + _G.DetailsOptionsWindow8BarUpdateRateSlider.MyObject:SetValue (editing_instance.row_info.fast_ps_update) + _G.DetailsOptionsWindow8ShowMeSlider.MyObject:SetFixedParameter (editing_instance) + _G.DetailsOptionsWindow8ShowMeSlider.MyObject:SetValue (editing_instance.following.enabled) --> window 10 _G.DetailsOptionsWindow10SliderMemory.MyObject:SetValue (_detalhes.memory_threshold) diff --git a/gumps/janela_principal.lua b/gumps/janela_principal.lua index 323c1a1f..8c2e913e 100644 --- a/gumps/janela_principal.lua +++ b/gumps/janela_principal.lua @@ -35,6 +35,8 @@ local modo_alone = _detalhes._detalhes_props["MODO_ALONE"] local modo_grupo = _detalhes._detalhes_props["MODO_GROUP"] local modo_all = _detalhes._detalhes_props["MODO_ALL"] +local tok_functions = _detalhes.ToKFunctions + --constants local baseframe_strata = "LOW" local gump_fundo_backdrop = { @@ -3550,6 +3552,94 @@ end --/script _detalhes:InstanceRefreshRows (_detalhes.tabela_instancias[1]) +--> on update function +local fast_ps_func = function (self) + local instance = self.instance + local combat_time = instance.showing:GetCombatTime() + local ps_type = _detalhes.ps_abbreviation + + for i = 1, instance.rows_fit_in_window do --instance:GetNumRows() + local row = instance.barras [i] --instance:GetRow (i) + if (row and row:IsShown()) then + local actor = row.minha_tabela + if (actor) then + local dps_text = row.ps_text + if (dps_text) then + local new_dps = _math_floor (actor.total / combat_time) + local formated_dps = tok_functions [ps_type] (_, new_dps) + + row.texto_direita:SetText (row.texto_direita:GetText():gsub (dps_text, formated_dps)) + row.ps_text = formated_dps + end + end + end + end +end + +--> check if can start or need to stop +function _detalhes:CheckPsUpdate() + + local is_enabled = self.row_info.fast_ps_update + + if (is_enabled) then + --> check if the frame is created + if (not self.ps_update_frame) then + self.ps_update_frame = CreateFrame ("frame", "DetailsInstance" .. self.meu_id .. "PsUpdate", self.baseframe) + self.ps_update_frame.instance = self + end + + --> if isn't in combat, just stop + if (not _detalhes.in_combat) then + if (self.ps_update_frame.is_running) then + self.ps_update_frame.is_running = nil + self.ps_update_frame:Hide() + self.ps_update_frame:SetScript ("OnUpdate", nil) + end + return + end + + --> check if needs to start + local attribute, sub_attribute = self:GetDisplay() + + --> check if the instance is showing damage done/dps or healing done/hps + if ( (attribute == 1 and (sub_attribute == 1 or sub_attribute == 2)) or (attribute == 2 and (sub_attribute == 1 or sub_attribute == 2))) then + if (not self.ps_update_frame.is_running) then + self.ps_update_frame.is_running = true + self.ps_update_frame:Show() + self.ps_update_frame:SetScript ("OnUpdate", fast_ps_func) + end + else + --> check if needs to stop + if (self.ps_update_frame.is_running) then + self.ps_update_frame.is_running = nil + self.ps_update_frame:Hide() + self.ps_update_frame:SetScript ("OnUpdate", nil) + end + end + + else + if (self.ps_update_frame and self.ps_update_frame.is_running) then + self.ps_update_frame.is_running = nil + self.ps_update_frame:Hide() + self.ps_update_frame:SetScript ("OnUpdate", nil) + end + end +end + +-- /run _detalhes:GetInstance(1):FastPSUpdate (true) +-- /dump (_detalhes:GetInstance(1).fast_ps_update) + +function _detalhes:FastPSUpdate (enabled) + if (type (enabled) ~= "boolean") then + enabled = self.row_info.fast_ps_update + end + + self.row_info.fast_ps_update = enabled + + self:CheckPsUpdate() +end + + -- search key: ~row function _detalhes:InstanceRefreshRows (instancia) diff --git a/images/skins/classic_skin.tga b/images/skins/classic_skin.tga index 044696b2155f4d8e4dfcb7ee4e4b515d44186e9e..6924013759610c5a6628b805ee872de0a2f49eb9 100644 GIT binary patch delta 2590 zcmY*adu$YC5Z^g&?|Lo07OdqV)V3;7#0ULDB_*+>QL08F+}&QUoC-erz*q#Y1*25= z8hS!8qNhv`6`=)9)tF)R7w$B5tWAuruaw{MNBlrIL_?12c^mO=KJ=W-#7D{ zncuG6m-%6TX4l!n$=8?bd1hs0m>?VulVKQShKvyD-PvE=5Q4T}}*rqHvBB>lx;sn7Fj^ozJ zJa|CI*6}b#=hGujW|@W&=Jc6^xb@CNSmPNxD#W4Nb>!3-LZ!u(kb+A{W`L{iksiUS z!%$$oR|K=Xkd1#`4LAA(E*v(}PGMd$ag`K_RFWBqR1sJ!u7M?97>&Q*2-AG?=STT` z*r|7pSzTRCP*YP&b#=95T8~YK)B4y^b+vU=S6fRr=FT{d#`bmUUZ-(Y7|gO?ZD3OmdLg+uI2?@xS)=O=Pxrw3B9)&Veaj zD8NtWL8Eswb#!zn$J_Eu%i2b;&9Z148@#fZ%^3zP@Io%0tAd%n4?p^dwr{tX&6BJ6 zrn?#;C(pBU=Pv5)?ct}FdiZzmp1rtn7)q?_`@r%Pcm{`tXlQVd28Rae3$_m(`ho@q z4)D{@K(n5JJ1z5J@J0QrB>T~<1DdD=uH6kk`Xg0QYL$J6R8-vQKFC1ofrk}d_uytxY#9j(RETv>T9x@}gtbm$P!_F}ecXhxl+;{~;Ub_!sPGmg(3bJz_yizhs zRKgC3<2WB8h$S=HEYrsG#Y!i$XUEC(InZ5Ka?+po!$Vm%{{pMUamIew;1^l4BW3P5 zw-fu}GPiBLaDd6b=W=$OGXPHEJm=Hw8h{V7Whj*|Tge$T$t^p`p6{pGP3LgWXYkh4 zi_R0vhC!TwQu%mTR#Gb)BV8*uK5`K1M}*ys!w2DwY3CVmi&}&Rl&;F z)pI5@cf(jLUE&&zmk&aPiqTdxky>0b2<9cMc*3t!KGq_x5ez{g-!rmW7vO$*(lr5_ zGF+MX>QUB(vO&D9sLq& z({4uC9uurM48z%hxlS>C^XAUOyNjX7EnCW~YzNO@=U1>uxn{8BvMWXZhAxz6raI!w2BS`Z5?_(!v|EshVCaQ-mK9EeU$o zUhzMdd=Jtmof>`%TNQJ;EaaMqKQ8+Ye)YHU7eLiYEPV8Pu9a=Q@ICyjJiJ@BY}Q!8 z371K|N3wV9 z_}BqqYh4(MNAbo8V%Kbke4I86^PLb_$~Bg99_?WctH1w%^47(|#3?9n+m>BwyE1>A Of(m%mD*q8a`}lt%1{tpa delta 2137 zcmY*ZeQZ-z6z_TTwOjcZ3o<6++>pUWkg&uI2+O1jOvAz^?R#(QIuqiEEFdGMERevG zGS?b0u%y9bM`W0&fA9xv=^qbFNJKz}FlaaDU`b@6I|p`y4$Fhiu&z`Z@5M6Yy4K*)Mi`Xx$E{3ON%GSaA1Aa7IpD9kzijH1$S4 z`dgtKJ7`OG`05#`h-|+5y9&9XJNH&tHBDm} z+XO3wuW1U$>W0DicfZ^1Vit_|!Q4pk!!i}rP|c%!feuYQ@0g+ppso?v%|4DqAJ3<| zgr5Fe5$Zis9$LOloi6xTo0^)KQD?BaI-QXTK0gP=k;Bi6R26hXX9=`ph6vu+*vNQX zzsv1rz;|Ye6;u^Rzkx^Q*f#t&~KQglDhU%SZ;? zX@@yxehwIFns~026K^0yl04Q7K&ko93s9*}RyaXTr^VfJwK)GQrQTD|blt$mgD}@T zJrg$BvK5W4&EZK6a)kzpq1O?AgX@4NhoIQ(DFUY*CgFn;Sd>&iwTo2m8-^k?SPD&c zn25CtVL_USstQEsWhgMWmqA?3R+=|7v*ryOl60-gVjNryPMP+$wl>z<+KPLxK%QB) z1S;)d!!2*XEY6})6|Ax1DwLQrmc#jkAd6N(k!^&R;uM^A9h@evf?|8FH5?AJa95ah zb#>7SGc0QZ!!Cg8*H|(NZ=0=a;JyuB#{RY7c7lmY#g#WHWXpSC+NP_~Sd7J@Q5KCw*#PYa2L}Yv8gtKj$oATHry6FwkSp^U z|8HsVcv!oK9uxS^Q%9@b!?5=jRN-Gw!HQ3QfOf~H9GYsb_-t-3{8{+UZ|DZI7*wC_ z2K56NMjgY^`O0d%bP9Z##?*NuFQtrS2WeF4)EFH)wH?MDLN$K>H^uG#5n80Fq&n*i z^p^THLW_$hY&BuKOCtw#rZM1Ey`-`dduJ%qKfeVlv9|C3R~YDn{jX6w@~8%_gg-%! zduZnsN$pG>#p^S}*E{&^EHp_S{kZWbI4~!rqXh2zltu)e)YEPytrgD_OWP3iGhJABr+1 z{-PfaO-V^C@`JS(AYUdVasf6^6xkFfyKuop_%;ofMIOHhGdX-6wtPfk-j71Hj3AGX zN5P+CNo69N2g7$`P&ncB@})`Pow9l^#Gu(BDn(Y$$^kf7E=CV$$R};ek8tjGxtQkS z0@9)>vWssl{OfIWUITZ^YXL6rfm}Q^2ur1o3f>=tOO8}VvT*okD3pa9^(h7D9fCDU z=+Pk<%Y;_XPC`Y^*XC2QUL1zal6Gp;JWDGjS$AI|J5lM5%dpK6xk4LJ;hFOXTdu%iu;bn(Q22^$R8Fkj=kqa(&$pHNw{GP-dfdjc zN8rU1zru%7XqhA$RL54>f*lbAS zahmTvH(+0;;xq)Gq&1X^H;hTe6B>q(lB7qjQS7lXa7p9TXuOp+mPuJQPOXznKs9b* N;DDg{$2jyK{|^&D?vwxk diff --git a/images/skins/classic_skin_v1.tga b/images/skins/classic_skin_v1.tga index 0d9cf51583abd3550d813c902c2f444735340b6d..39f4354061c0488541df17787f1e9e9056318b1b 100644 GIT binary patch delta 1418 zcmd6mUuaTc6u>=nwaZ4+$RKTr^&FvtAr1VLpKk=Q?z(Y9}S z!nUaoy?7xkV|$5E2;6#U)NG7IeDJA1Frl%Bu-o^kW9USE?7}_w-1GgubG~!Fb7p4w z??FEHE=@viDakJ>rJg__Ad=UshH4Ay4?!16d~Mr?>X_(0CDC5!CfeK8-s)RxV*Kw> zQ8fbw;{4XTU4u%(I^x_^)v+elr6j!3saccIM+^poVvX=H8!7x8YAYci2!a^@lTq*H z1R=^648)aJaH&*EjGxaxl5vZvMX^%&b)`(qWHRC$>G@%kjx)8q;@m96!y6We7k`=U zvL`Hd1poHI0XeeE^)rKyX&8A9X4Fjshl+73%qyVA%yGC35iDBZ$WH!Q6~B4{t~W$u z-PG&aNpMqY%vk3DlSUZDHzv?v?jc2Y8DXRWnrxm7jmTrpM}55-fsVi_`Zw`~{>9u> zeEbX@m^FhO_nF{ub7x~-x_#aRR~sf-s^3H(^*`U!993h&Owr{mb-mIHXB(tD%&w-y z^Z4mBxLQKbHBW2nz!zIYZ=8XfEmq*J1#UG!t$5!`yDNmht)Sh}U9=g7(bdJOvrNT< zez*p6SnLPAe7dG_w@@BK15n9h7Wde|u%EDz@>3!4F>Q)zX_CC7$9qGt7sEDq*b`ARRYBjMBICjh1x^2qK5NK{&>j*P|ki+Cf8NId0+cAXorA%6tY)85;w$2l(UFrraxWG^w)Ge`P+*x?<98a|KEj7 z7f`|sGga(OTY5}TfjgSbf^CW(j{#+@DYQ5Jv%rVw^?Jn(6MMScu936C#B3;I7aLzL zXPqkv>KzHXQDMUV&8eYi9?Dt#LIU$IY1E-mNc6Fs1-p7!3K=4k?8(A;Dli~UI*RER zkFmw&=~cp8cQkI|d8Eg#xhF|@K)Y*@L?4Y%Cwur11?iY!Ddm)w)YS|dEfqmUu2S6A z$Z46hPov;zpb}}c(gLf5P|^J|T>c|$sDs1$Iyo$}6?@232`%**`Shq9EiqQN8ENp) zCkv8P!XcxPx(AR#eg|sk`e9u8E3B5TR-k8_{+5oTo?OLTQIi{~!&DsQ!l$}8E71(c zCM?X+Y!+JAqvL63^|o!wT`&;lHmC9sPhYEH-e!T;`o}ZKE9*P5wRg08A1NP?*^0gqpR0jeZERCj818d+Z>hKJqm;S2ZfQ%mIYeN95yN0^8AO7HF+ee4Zc_)s$kq;sU$D{k zZtjCIrWbvIsWg5Nhk`aykKjiPnNf%VLi_FpqI& z>tb3m02Lh+sKnFct;AYu&`?}lZ2HBUTKKE!%t8B4vOCDEfJ!9?aVMRq#B8B#nUBMC zd_Ee+h>U2+XOtZq!#4VRv#56gCRq!r@CSn?KeZ66!9Q4tSFDks1_iuNsB@@p5gtj^ z!e3Zu^28#XRFZKDKhAP!PZgFbRw!JJLyUj86kSl{1XQ{lP07%V$8eVMo)zdx&Yduv ztpW0X#@rNMjtA02np~>^z>ls(MQY4d^Zh|HSWsxnD#+hLu>*;TYCM6qv|vGy->k(p z#;4b#1{!Y1Uw#tLr&7%K=bJq9DV$2P=G#XiHpM7u^ih1bsA1`9FY++()*3rU=3=w$Kx@n+`tU#ZNfyO{x>`Al^^oR zbx!MW2=;Eb+bxd!%N?RAK6;30lDb#SH8+GcJl+gNP}0-WldI*@PzdYsF2%#Rn_dlL zrZuPuhr?kSuD87u`9?Hg|7I_ZgfNxLTM*Dr+r$Hh;xOq%3%;e14QN(u;_s;7elpLo zarDP}O!*&j;Ixl^8D{AeKgNQT*oa~!{!ZNFXEtIpQ+JBbgyGsgQF128_SUHHIaDf5 zp(fKPyL#C0T^*LMhIK7rbCp07G_*761RtH>f;<}O5TfaAaF46%5L>Pit-A>|RNIPW zbYe65XnU(@Pw}PwC#K3=tEu`vcU}K?AM1nX870iwDQ^=C>7t4K9PmpT06$C zUq=IT-X_L)=!W2UV*ijz3r2-sseA<{^R&Nk9a*tk3rD4U8F$^pz0BQy3yw)RDjZJd z>M-k*ZR`p%ll#$S#3m#28ZeC?Wb8*VpEuu|N>MsAO5QaH@FNPl2xm;X(c1G4e#FkM z!J|v-F;P;;x{3##a%|`49847{N!z6aH#DX&=S$LN7V-w4kj^f{soy>Xo|VZURAZ2U zi}{2~dc#t+^GDt6F2Pw9S~rU5*=#1mGX7}}t7a(Uj$C#YnnjnJDdHEs?1wRcix1_q N3jpKq`Pf@O{SC7E9z_5E delta 1709 zcmZuwe{54_6n*E?meP%_W$RWpM&GPkiUJl$3~`Qa8Hxda3`J08+{O=;RcJxP05aBg zV|7F6d}MdQ=}<{Dndp|Np8=DZ7$FjsA2A`2C>s9|gBg1BhewsL7z$ zR-y;Yz@25L5~<#0Wo0IN`cQ1>Ed}f@qC5B(Kb1-oU3RD%qM;EXh||yF3$kn1={<|7 zl1H0Rnvon`jcp_rtj2OoqU(iAyWy8ij}dD2bK^g-^P=Zam`U02JZvPwFCbgFl+S|^ zWN}p(ik-`KKaq_Ot;1bv;C!qZ4g7gCUb4WI^!a?IrrP7#VXU*p5f{B-970wyFE1}0 z8{%*GrfqX^Lm2tow;pfW(`kbnaDk^r5O*XePo6C2{cZ%iInoY04sc@>Pjg2Ua~*?D zr_&rT=5!VrKU^!|(6HPB_bE)_;~tvW6GeVctF+*(T3MdGN%mN^S&IB>BTmVM^~)TO zp^E@V&e0?u*@U}qOXWF7@FXAHjB;yg;`C;`O02&Rx$#G&9o0v2Ir$1|)z~?;6<-_v zOTVg*3*n7XQ`s=YCwkLIki(%xG>eB%kc%7JrReVMSS1#0$9lp55A8sTw1n8%f(hW3 z7ToVh$lfcgND*J0ftl8VjxLmo?`|2dPdwTRA6R0LPtJs{$R5_uQ)aTmG0aQL6aKhj zN(>q&TMLX-vy1B!Xn@9O!%9A$z=J%x4@)?efKzv-@%n(Qa#TEEsW1ZVAuC*!Zn8o+k zFq29WH-{~EVk#b!$H-MpnDOHXE)Fj}B)d_KQ3Qd(Atc`?CO~OsF o3;8scpo!^)v{b#LQ|V`<|4TeoOh1l&zqf>bgNzsX>Am0o2P=f`q5uE@ diff --git a/images/skins/elvui.tga b/images/skins/elvui.tga index d9635a8618fae8aabe496e93cbef57b4c5193162..54626b61907d3294d3b846b6576340ca96e35366 100644 GIT binary patch delta 936 zcmb7>O=uHQ6ouctI)P3#(`l!qW24j3BK=!5p%Sbq9e3`mTNhGrtHfPFx=36}e_i!# zq$bPOjX`N3i%Md)@j*X)uV-J- zSh?+i(Y`K3R0oPhnz9>0h(>71c^b?Nr7wgk{+8t9e>_KFg|1+Co2*FAah!5M(0svz zSjcbDq~CRdm<~0m{W0`0;RI~U0RQimfW5{k{C-JSLpiOrr!)>{kL+*(?mk^Y?G?r8 zBP!d}^Dk-=*$VZymNne0lHtRemwoq*lIW<=X{_#&;k24d)*G9U<8AnJNO*}XEVyJ* z4el2jZpQp8e#VV?x()X=X(bu)=e5X!B!~h&o#72CV7!yhW8*9rDUaDG@5$G*E?z-B z${MN$k163kYSW})+2%IPckqOwExj! z!eSRY%EN1v-a)Gai-!WJkd=n@ZXRvc-*$63K-MrAV^;~Q_!Z-{!pAXU^DXo(k&b$d z4ZP{$$v|mS@t$Dc=4z8IubIO@FJD%?MSSn&lqLi<^6C%DeFAfFo{4xv6OUo`@nPxS Vb-s8C?zFVZ+#$Wx-p^kj{sD?oG~ECI delta 773 zcmbV|%}-N76veqWw2=b7Vks?B(uN%gCKjwOsAvm~zzPystA7AOS>VD5LX3$?6Cft` zgax#0{fLqn8Ziw}K7(Na?qtJ;hPX8lBO7k}c#ny=VpeB+6k z*b@29)6xw|GvBHk8R0Bxh^c!@@d~)H-{8Dgd;b%m>GrA7%g5Z;;H_13XmC&5X;COD0~yO!ceNm`|q^XE8;lh7o9R8=jv3IP{HQ-LZZ zitq*mw5Xy;gi$5bq!-FHEs`lvpc063ASD+ zJOAJK+YdsYmqNw&Vb{m>y9Xxa&qK6P4~0TvN85hkx~|sP*r>fXzk+>fp=p}fc--cz z77mAnm&s%V$cNV4+^j9pp~KKeKi+_7#Mi{*aSZ_0HSELm_-i^c3p4ciCwy;jZ?C;C zJq`WU`pP|^@E3enY@kN)9~L)zWQ#^jI;Ss2@DaL|#@3Sf3~mIBWKssC)R0Og>4`C% zEIoe(EXzzLlfrjxwxsNoD1CVq_F1NF+rGG)j$Ogs^x7)q4cl=XyG4-1U%Pugi-qRIy`Ebb9^Zyc1gsgo6u5sP1Z}(-Lxx8$A5y;mf@z; zD!d+g@lV)cu%3p`LsPl3GH|6a>G~f~?{;)_2*GXI^eC#<>AGHSQ1==Xx-<={`m8#B zi`xYa4GlaKRSkC>N49lo4aVr#A&4ecIZQJc463BB)-pr(GbBlEQ$qxA4I zFytG2w;y}q4E>hF&d6Ily}m&;$1*qxeF?Jk# znY`@%*dX?7=}T1xlRnDfc4`^IjEt-;hr4Sc+elSHqx9Dhwr>gA`Twa_sv@o41zM?! zOfa*h+^VZ$jbK+u&4tG_)Mc_<+HZs_Br))lp{wdjlTx-lC@pcv3q5yMPC_E0J;@ zlu9~Wz*Z`bqhT<#%E)H@ zXNfIu{#)(|f7B}Vm)7gZo5U>4(d9|J)~&XQZ;|(k>$vh;`C}UMMQ1{_VPs|CB5p%PJ(T?%>5K9QW-lFu{N>4PeW? vz-K1o9avZ0yc5%spm(M5!5PU-e^=D}vp6X2 delta 1614 zcmb7EUu;ul6yG`QcG)WHLS4E#HrmpA?-q-?YF5Ttx^}Q`KzSfQMzUnl2NR>>P~#I4 zN`jd9k451ZAh7x51Bo&<-aROe=)>ZR8WTtsqurA;sLP`9L5^zE0o0C4CT-q=Rz=%NVx9mO(}LEGea#n9pwG^>=O#o zWlWCKFioNSDYaqo3WZTVMw{;xJfN+$>pM?(_2rwYlV2Ez2YC;&-5hl`T%%9;% zK>`1zI;`Kxo3PZ)NeA=vw-13h4;Ue(au&X%{S8Xci-%$y#@qqw#DyD_uh;6u8+2a- zwd1evXhM=X@;!|iKJD|j5gu>?W$JA3m2BH`FN4~7814#f^ew0tvGev1bgn_YqZbp) z6r}~c{yz1f9OBIw{heC>jl~qk{~!bJ{wkCSpREYSIf>~nxCw_>gx;|~sf|uz`b9dl zTH4`USfM9|eXpqa(UH%2%f{m6DV8bb^OG(9M4C^J~o|3GEVA(j4j}byk*dsl%(X z)p=-j{SlKv-sizTN^_4F^CBj4yruQcSS(fxP*(wrQxR`GFWk5}HgGh<4|};@L{FZ# z+^bPKf{t}cq44NI$*cluLV7zV*91x{!dh@O%j;2}5hqG(jB_w5AETCUsHaoFRx}e)Ku+D{M5&7x5q;ZqD9VlHMq9szh2~i g&)yp+cyOz!}+@zTrx0Q?Z**Z=?k diff --git a/images/skins/flat_skin.tga b/images/skins/flat_skin.tga index e4b273df7358c4b3e26202547aaa82d765266f64..87ba087f90538ef44a1587dbaba28df0eafd7d8c 100644 GIT binary patch delta 1010 zcmcJNPbh<79LIg1-Z$G?j6@T%RvdQWyo-_+H7DXEPEJZ8N@}Y~+Sq1ozk{%YoFr=H z?6}LgQWCQHx7osO%-^?73z-sO zG#vJYaM6z_x$n?iO&*VD+^d8vD~bZL=%)QANOW+8ZKlR@X#YW3Dpe|VjXe#@L1*u% zr;aWmMeblE=M4gkcc##6`d0du#?CPiu?mT1lZch4Z1bXx9#WWMwA3sPDp-Y%GPhXK zq_|=WS?)2-l;*@bvOQo`n-W|xaEV&-F9{<}JYtghk|PgC6o)peI4J2CHB>MO1MR0V z_@^Kft)4(ni3~=VFJ;5$N`vJ9iQ-wTF;&KaTnW7NF9$Sx_|`h{;s zsdoo*{t1f4)}s;Xw|47z6<)80L6795V+FM=`Hk_LBReUzuzfx*70}G=4gT1t;=0f{=+`W&l#&y@TC*m%CObUeH9}Jl3(rK;Ha1!?K E$N0&U*8l(j diff --git a/plugins/Details_EncounterDetails/frames.lua b/plugins/Details_EncounterDetails/frames.lua index adac599a..b6debf2a 100644 --- a/plugins/Details_EncounterDetails/frames.lua +++ b/plugins/Details_EncounterDetails/frames.lua @@ -1723,6 +1723,11 @@ do } emote_frame:SetScript ("OnEvent", function (...) + + if (not EncounterDetails.current_whisper_table) then + return + end + local combat = EncounterDetails:GetCombat ("current") --local arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 = ... --print ("2 =", arg2, "3 =", arg3, "4 =", arg4, "5 =", arg5, "6 =", arg6, "7 =", arg7, "8 =", arg8, "9 =", arg9) diff --git a/plugins/Details_RaidCheck/Details_RaidCheck.lua b/plugins/Details_RaidCheck/Details_RaidCheck.lua index 16cfcf35..5a546c99 100644 --- a/plugins/Details_RaidCheck/Details_RaidCheck.lua +++ b/plugins/Details_RaidCheck/Details_RaidCheck.lua @@ -280,16 +280,23 @@ local food_list = { elseif (button == "RightButton") then --> link no pre-pot latest segment - local s = "No Pre-Pot Last Try: " + local s = "Details!: No Pre-Pot Last Try: " for i = 1, GetNumGroupMembers(), 1 do - local playerName, realmName = _UnitName ("raid" .. i) - if (realmName and realmName ~= "") then - playerName = playerName .. "-" .. realmName - end + + local role = _UnitGroupRolesAssigned ("raid" .. i) + + if (role == "DAMAGER" or (role == "HEALER" and DetailsRaidCheck.db.pre_pot_healers) or (role == "TANK" and DetailsRaidCheck.db.pre_pot_tanks)) then + + local playerName, realmName = _UnitName ("raid" .. i) + if (realmName and realmName ~= "") then + playerName = playerName .. "-" .. realmName + end + + if (not DetailsRaidCheck.usedprepot_table [playerName]) then + s = s .. DetailsRaidCheck:GetOnlyName (playerName) .. " " + end - if (not DetailsRaidCheck.usedprepot_table [playerName]) then - s = s .. DetailsRaidCheck:GetOnlyName (playerName) .. " " end end