From b6d51315a5c43eff9a74860b9cf67c265730152b Mon Sep 17 00:00:00 2001 From: Tercio Date: Fri, 16 Jan 2015 03:44:29 -0200 Subject: [PATCH] - Plugin Vanguard: got full rewrite and now it is more easy to use. - Plugin TimeAttack: fixed problem where sometimes required a reload to start a new time. - Plugin Damage the Game!: fixed a problem where sometimes the time didn't started after level 2. - Custom display 'Health Potion & Stone' now also track Healing Tonic. - Custom display 'Damage Taken by Spell' now track more spells and also melee hits. - Menus now uses 'Friz Quadrata TT' font as default, also added an option to change it on options panel -> miscellaneous. - 'Switch to Current' feature now switches all windows which have this option enabled. - The message telling to use '/details reinstall' now only shows if a problem happen during the addon load process. - Segments Saved option now can be set to 25, up from 5. - Attempt to fix the bug with the monk spell 'Storm, Earth, and Fire'. - Fixed 'Icon Pick' panel. - Fixed bug when reporting friendly fire through player detail window. - Fixed bug with report window where sometimes it was reporting on a wrong channel. --- boot.lua | 51 +- classes/classe_custom.lua | 208 ++- classes/classe_damage.lua | 13 +- classes/classe_energy.lua | 12 +- classes/classe_heal.lua | 12 +- classes/classe_instancia.lua | 24 +- classes/classe_instancia_include.lua | 3 + classes/classe_others.lua | 12 +- classes/container_combatentes.lua | 31 +- classes/container_historico.lua | 1 + core/control.lua | 2 +- core/gears.lua | 116 ++ core/meta.lua | 3 + core/parser.lua | 50 +- core/windows.lua | 73 + framework/panel.lua | 208 ++- functions/loaddata.lua | 12 + functions/playerclass.lua | 145 +- functions/profiles.lua | 49 + functions/skins.lua | 2 + functions/spells.lua | 392 ++++ gumps/fw_mods.lua | 10 +- gumps/janela_custom.lua | 1 + gumps/janela_info.lua | 10 +- gumps/janela_options.lua | 264 ++- gumps/janela_principal.lua | 76 +- gumps/janela_report.lua | 116 +- gumps/janela_welcome.lua | 114 +- images/icons.tga | Bin 387558 -> 383915 bytes images/spec_icons_normal.tga | Bin 0 -> 325901 bytes images/spec_icons_normal_alpha.tga | Bin 0 -> 465720 bytes plugins/Details_DmgRank/Details_DmgRank.lua | 78 +- .../Details_TimeAttack/Details_TimeAttack.lua | 53 +- plugins/Details_Vanguard/Details_Vanguard.lua | 1606 +++++------------ plugins/Details_Vanguard/Details_Vanguard.toc | 3 - startup.lua | 31 +- 36 files changed, 2169 insertions(+), 1612 deletions(-) create mode 100644 images/spec_icons_normal.tga create mode 100644 images/spec_icons_normal_alpha.tga diff --git a/boot.lua b/boot.lua index 0a2a2ac2..82ad8831 100644 --- a/boot.lua +++ b/boot.lua @@ -4,8 +4,8 @@ _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") _detalhes.build_counter = 389 --it's 389 for release - _detalhes.userversion = "v3.7.1" - _detalhes.realversion = 57 --core version + _detalhes.userversion = "v3.8c" + _detalhes.realversion = 58 --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -18,34 +18,23 @@ do local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) --[[ -|cFFFFFF00v3.7.1 (|cFFFFCC00Jan 08, 2015|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Plugin 'Damage Rank': is now called 'Damage, the Game!' and had its levels adjusted for WoD.\n\n -|cFFFFFF00-|r Plugin 'Tiny Threat': fixed player name where it was showing the realm name too.\n\n -|cFFFFFF00-|r Plugin 'Vanguard': fixed frame details (clicking on a bar) shown behind the Vanguard panel.\n\n -|cFFFFFF00-|r Plugin 'Vanguard': fixed a problem when clicking with right button wasn't opening the bookmark panel.\n\n -|cFFFFFF00-|r Plugin 'Vanguard': incoming heals now count shield amount on the player too.\n\n -|cFFFFFF00-|r Plugin 'Vanguard' Known Bug: incoming damage and melee vs avoidance seems to be inaccurate by now, we need more time to study and fix it.\n\n -|cFFFFFF00-|r Added Twins Ogron's Charge as custom spells, one for the charge by him self and other for the copies (mythic only).\n\n -|cFFFFFF00-|r Added option panel for Raid Check plugin.\n\n -|cFFFFFF00-|r Added key bindings for open a window, close a window and select a bookmark.\n\n -|cFFFFFF00-|r Added 'CTRL + RightClick' closes a window.\n\n -|cFFFFFF00-|r Fixed wallpaper transparency after releasing the window from a stretch. -|cFFFFFF00-|r Fixed few issues when using class text colors.\n\n -|cFFFFFF00-|r Fixed characters name outside instances, now it replaces the realm name with a * and show the complete name on tooltip.\n\n -|cFFFFFF00-|r Fixed damage mitigation on damage taken, this affects only specific classes like monk tank.\n\n -|cFFFFFF00-|r Fixed auto erase poping up when the player enters on its garrison.\n\n -|cFFFFFF00-|r Fixed combat on garrison training dummies which was being marked as Trash Segment.\n\n -|cFFFFFF00-|r Fixed command /details disable, wasn't disabling the capture of cooldowns.\n\n -|cFFFFFF00-|r Fixed a problem with fast dps/hps when the window is in a empty segment.\n\n -|cFFFFFF00-|r Fixed an issue using bookmark panel where it wasn't changing the display when the window is in a plugin mode.\n\n -|cFFFFFF00-|r Fixed a bug when bars isn't using class colors on Frags, Auras & Void Zones, Resources and Deaths.\n\n -|cFFFFFF00-|r Fixed bar animations when 'Sort Direction' is set to bottom.\n\n -|cFFFFFF00-|r Fixed the spam 'you are not in a guild' when checking for new versions.\n\n -|cFFFFFF00-|r Fixed translations for Auto Hide Settings bracket under options panel.\n\n -|cFFFFFF00-|r Fixed Auto Hide -> Mouse Interaction tool where wans't able to work okey during combat.\n\n +|cFFFFFF00v3.8 (|cFFFFCC00Jan 16, 2015|r|cFFFFFF00)|r:\n\n +|cFFFFFF00-|r Plugin Vanguard: got full rewrite and now it is more easy to use.\n\n +|cFFFFFF00-|r Plugin TimeAttack: fixed problem where sometimes required a reload to start a new time.\n\n +|cFFFFFF00-|r Plugin Damage the Game!: fixed a problem where sometimes the time didn't started after level 2.\n\n +|cFFFFFF00-|r Custom display 'Health Potion & Stone' now also track Healing Tonic.\n\n +|cFFFFFF00-|r Custom display 'Damage Taken by Spell' now track more spells and also melee hits.\n\n +|cFFFFFF00-|r Menus now uses 'Friz Quadrata TT' font as default, also added an option to change it on options panel -> miscellaneous.\n\n +|cFFFFFF00-|r 'Switch to Current' feature now switches all windows which have this option enabled.\n\n +|cFFFFFF00-|r The message telling to use '/details reinstall' now only shows if a problem happen during the addon load process.\n\n +|cFFFFFF00-|r Segments Saved option now can be set to 25, up from 5.\n\n +|cFFFFFF00-|r Attempt to fix the bug with the monk spell 'Storm, Earth, and Fire'.\n\n +|cFFFFFF00-|r Fixed 'Icon Pick' panel.\n\n +|cFFFFFF00-|r Fixed bug when reporting friendly fire through player detail window.\n\n +|cFFFFFF00-|r Fixed bug with report window where sometimes it was reporting on a wrong channel.\n\n --]] - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.7.1 (|cFFFFCC00Jan 08, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Plugin 'Damage Rank': is now called 'Damage, the Game!' and had its levels adjusted for WoD.\n\n|cFFFFFF00-|r Plugin 'Tiny Threat': fixed player name where it was showing the realm name too.\n\n|cFFFFFF00-|r Plugin 'Vanguard': fixed frame details (clicking on a bar) shown behind the Vanguard panel.\n\n|cFFFFFF00-|r Plugin 'Vanguard': fixed a problem when clicking with right button wasn't opening the bookmark panel.\n\n|cFFFFFF00-|r Plugin 'Vanguard': incoming heals now count shield amount on the player too.\n\n|cFFFFFF00-|r Plugin 'Vanguard' Known Bug: incoming damage and melee vs avoidance seems to be inaccurate by now, we need more time to study and fix it.\n\n|cFFFFFF00-|r Added Twins Ogron's Charge as custom spells, one for the charge by him self and other for the copies (mythic only).\n\n|cFFFFFF00-|r Added option panel for Raid Check plugin.\n\n|cFFFFFF00-|r Added key bindings for open a window, close a window and select a bookmark.\n\n|cFFFFFF00-|r Added 'CTRL + RightClick' closes a window.\n\n|cFFFFFF00-|r Fixed wallpaper transparency after releasing the window from a stretch.|cFFFFFF00-|r Fixed few issues when using class text colors.\n\n|cFFFFFF00-|r Fixed characters name outside instances, now it replaces the realm name with a * and show the complete name on tooltip.\n\n|cFFFFFF00-|r Fixed damage mitigation on damage taken, this affects only specific classes like monk tank.\n\n|cFFFFFF00-|r Fixed auto erase poping up when the player enters on its garrison.\n\n|cFFFFFF00-|r Fixed combat on garrison training dummies which was being marked as Trash Segment.\n\n|cFFFFFF00-|r Fixed command /details disable, wasn't disabling the capture of cooldowns.\n\n|cFFFFFF00-|r Fixed a problem with fast dps/hps when the window is in a empty segment.\n\n|cFFFFFF00-|r Fixed an issue using bookmark panel where it wasn't changing the display when the window is in a plugin mode.\n\n|cFFFFFF00-|r Fixed a bug when bars isn't using class colors on Frags, Auras & Void Zones, Resources and Deaths.\n\n|cFFFFFF00-|r Fixed bar animations when 'Sort Direction' is set to bottom.\n\n|cFFFFFF00-|r Fixed the spam 'you are not in a guild' when checking for new versions.\n\n|cFFFFFF00-|r Fixed translations for Auto Hide Settings bracket under options panel.\n\n|cFFFFFF00-|r Fixed Auto Hide -> Mouse Interaction tool where wans't able to work okey during combat.\n\n|cFFFFFF00v3.6.14b (|cFFFFCC00Jan 01, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added custom display 'My Spells' which shows your spells in the window.\n\n|cFFFFFF00-|r Added new custom display: Health Potion & Stone.\n\n|cFFFFFF00-|r Added overkill on death's tooltip.\n\n|cFFFFFF00-|r Created custom spells for Twin Ogron's Pulverize. Now it has 3 spells one for each wave.\n\n|cFFFFFF00-|r Created custom spells for Ko'ragh Overflowing Energy. Now it has 2 spells one for when the ball is catched and other when it reaches the ground and explodes.\n\n|cFFFFFF00-|r Changed healing multistrike to use the same format as damage done.\n\n|cFFFFFF00-|r Few improvements on Tiny Threat plugin: color gradient green-red is fixed, texts and bar texture now correctly uses the window settings.\n\n|cFFFFFF00-|r Damage Taken by Spell won't show pets in its tooltip any more.\n\n|cFFFFFF00-|r Enemies display won't show any more mirror images and spirit link totems.\n\n|cFFFFFF00-|r Enemies's tooltip now only show players and show all players instead of only 6.\n\n|cFFFFFF00-|r Few cooldowns shown as raid wide now shows as personal cooldowns.\n\n|cFFFFFF00-|r Fixed dispell tagets on dispell's tooltip.\n\n|cFFFFFF00-|r Fixed 'First Hit' raid tool.\n\n|cFFFFFF00-|r Fixed 'Open Options Panel' from interface panel.\n\n|cFFFFFF00v3.6.8 (|cFFFFCC00Dec 24, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Fast (i mean, really fast) Dps/Hps update rate, its option is under Rows: Advanced -> Fast Updates.\n\n|cFFFFFF00-|r Created a custom spell for Mirror Image's Fireball and Frostbolt, with that Player Detail window distinguishes spells from the player and images.\n\n|cFFFFFF00-|r Added new skin: 'ElvUI Style II'.\n\n|cFFFFFF00-|r Added Observer mode for Raid Tools: report cooldown/interrupt/death of entire raid only to you in your chat window.\n\n|cFFFFFF00-|r Added new plugin 'Raid Check': 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 Imperator Mar'gok's adds damage taken.\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'." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.8.0 (|cFFFFCC00Jan 16, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Plugin Vanguard: got full rewrite and now it is more easy to use.\n\n|cFFFFFF00-|r Plugin TimeAttack: fixed problem where sometimes required a reload to start a new time.\n\n|cFFFFFF00-|r Plugin Damage the Game!: fixed a problem where sometimes the time didn't started after level 2.\n\n|cFFFFFF00-|r Added specialization icons.\n\n|cFFFFFF00-|r Custom display 'Health Potion & Stone' now also track Healing Tonic.\n\n|cFFFFFF00-|r Custom display 'Damage Taken by Spell' now track more spells and also melee hits.\n\n|cFFFFFF00-|r Menus now uses 'Friz Quadrata TT' font as default, also added an option to change it on options panel -> miscellaneous.\n\n|cFFFFFF00-|r 'Switch to Current' feature now switches all windows which have this option enabled.\n\n|cFFFFFF00-|r The message telling to use '/details reinstall' now only shows if a problem happen during the addon load process.\n\n|cFFFFFF00-|r Segments Saved option now can be set to 25, up from 5.\n\n|cFFFFFF00-|r Attempt to fix the bug with the monk spell 'Storm, Earth, and Fire'.\n\n|cFFFFFF00-|r Fixed 'Icon Pick' panel.\n\n|cFFFFFF00-|r Fixed bug when reporting friendly fire through player detail window.\n\n|cFFFFFF00-|r Fixed bug with report window where sometimes it was reporting on a wrong channel.\n\n|cFFFFFF00v3.7.1 (|cFFFFCC00Jan 08, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Plugin 'Damage Rank': is now called 'Damage, the Game!' and had its levels adjusted for WoD.\n\n|cFFFFFF00-|r Plugin 'Tiny Threat': fixed player name where it was showing the realm name too.\n\n|cFFFFFF00-|r Plugin 'Vanguard': fixed frame details (clicking on a bar) shown behind the Vanguard panel.\n\n|cFFFFFF00-|r Plugin 'Vanguard': fixed a problem when clicking with right button wasn't opening the bookmark panel.\n\n|cFFFFFF00-|r Plugin 'Vanguard': incoming heals now count shield amount on the player too.\n\n|cFFFFFF00-|r Plugin 'Vanguard' Known Bug: incoming damage and melee vs avoidance seems to be inaccurate by now, we need more time to study and fix it.\n\n|cFFFFFF00-|r Added Twins Ogron's Charge as custom spells, one for the charge by him self and other for the copies (mythic only).\n\n|cFFFFFF00-|r Added option panel for Raid Check plugin.\n\n|cFFFFFF00-|r Added key bindings for open a window, close a window and select a bookmark.\n\n|cFFFFFF00-|r Added 'CTRL + RightClick' closes a window.\n\n|cFFFFFF00-|r Fixed wallpaper transparency after releasing the window from a stretch.|cFFFFFF00-|r Fixed few issues when using class text colors.\n\n|cFFFFFF00-|r Fixed characters name outside instances, now it replaces the realm name with a * and show the complete name on tooltip.\n\n|cFFFFFF00-|r Fixed damage mitigation on damage taken, this affects only specific classes like monk tank.\n\n|cFFFFFF00-|r Fixed auto erase poping up when the player enters on its garrison.\n\n|cFFFFFF00-|r Fixed combat on garrison training dummies which was being marked as Trash Segment.\n\n|cFFFFFF00-|r Fixed command /details disable, wasn't disabling the capture of cooldowns.\n\n|cFFFFFF00-|r Fixed a problem with fast dps/hps when the window is in a empty segment.\n\n|cFFFFFF00-|r Fixed an issue using bookmark panel where it wasn't changing the display when the window is in a plugin mode.\n\n|cFFFFFF00-|r Fixed a bug when bars isn't using class colors on Frags, Auras & Void Zones, Resources and Deaths.\n\n|cFFFFFF00-|r Fixed bar animations when 'Sort Direction' is set to bottom.\n\n|cFFFFFF00-|r Fixed the spam 'you are not in a guild' when checking for new versions.\n\n|cFFFFFF00-|r Fixed translations for Auto Hide Settings bracket under options panel.\n\n|cFFFFFF00-|r Fixed Auto Hide -> Mouse Interaction tool where wans't able to work okey during combat.\n\n|cFFFFFF00v3.6.14b (|cFFFFCC00Jan 01, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added custom display 'My Spells' which shows your spells in the window.\n\n|cFFFFFF00-|r Added new custom display: Health Potion & Stone.\n\n|cFFFFFF00-|r Added overkill on death's tooltip.\n\n|cFFFFFF00-|r Created custom spells for Twin Ogron's Pulverize. Now it has 3 spells one for each wave.\n\n|cFFFFFF00-|r Created custom spells for Ko'ragh Overflowing Energy. Now it has 2 spells one for when the ball is catched and other when it reaches the ground and explodes.\n\n|cFFFFFF00-|r Changed healing multistrike to use the same format as damage done.\n\n|cFFFFFF00-|r Few improvements on Tiny Threat plugin: color gradient green-red is fixed, texts and bar texture now correctly uses the window settings.\n\n|cFFFFFF00-|r Damage Taken by Spell won't show pets in its tooltip any more.\n\n|cFFFFFF00-|r Enemies display won't show any more mirror images and spirit link totems.\n\n|cFFFFFF00-|r Enemies's tooltip now only show players and show all players instead of only 6.\n\n|cFFFFFF00-|r Few cooldowns shown as raid wide now shows as personal cooldowns.\n\n|cFFFFFF00-|r Fixed dispell tagets on dispell's tooltip.\n\n|cFFFFFF00-|r Fixed 'First Hit' raid tool.\n\n|cFFFFFF00-|r Fixed 'Open Options Panel' from interface panel.\n\n|cFFFFFF00v3.6.8 (|cFFFFCC00Dec 24, 2014|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added Fast (i mean, really fast) Dps/Hps update rate, its option is under Rows: Advanced -> Fast Updates.\n\n|cFFFFFF00-|r Created a custom spell for Mirror Image's Fireball and Frostbolt, with that Player Detail window distinguishes spells from the player and images.\n\n|cFFFFFF00-|r Added new skin: 'ElvUI Style II'.\n\n|cFFFFFF00-|r Added Observer mode for Raid Tools: report cooldown/interrupt/death of entire raid only to you in your chat window.\n\n|cFFFFFF00-|r Added new plugin 'Raid Check': 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 Imperator Mar'gok's adds damage taken.\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." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " @@ -88,6 +77,8 @@ do --> cache de grupo _detalhes.cache_damage_group = {} _detalhes.cache_healing_group = {} + --> cache de specs + _detalhes.cached_specs = {} --> ignored pets _detalhes.pets_ignored = {} _detalhes.pets_no_owner = {} @@ -360,9 +351,9 @@ do --> welcome function _detalhes:WelcomeMsgLogon() - _detalhes:Msg ("|cffb0b0b0you can always reset the addon running the command '/details reinstall' if it does fail to load after being updated.|r") + _detalhes:Msg ("you can always reset the addon running the command |cFFFFFF00'/details reinstall'|r if it does fail to load after being updated.") end - _detalhes:ScheduleTimer ("WelcomeMsgLogon", 8) + _detalhes.failed_to_load = _detalhes:ScheduleTimer ("WelcomeMsgLogon", 20) --> key binds --> header diff --git a/classes/classe_custom.lua b/classes/classe_custom.lua index 60b08784..6eed61bc 100644 --- a/classes/classe_custom.lua +++ b/classes/classe_custom.lua @@ -625,7 +625,7 @@ else if (self.id) then - esta_barra.icone_classe:SetTexCoord (0, 1, 0, 1) + esta_barra.icone_classe:SetTexCoord (0.078125, 0.921875, 0.078125, 0.921875) esta_barra.icone_classe:SetTexture (self.icon) else esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) @@ -1250,7 +1250,7 @@ end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - +-- /run _detalhes:AddDefaultCustomDisplays() local Healthstone = { name = Loc ["STRING_CUSTOM_HEALTHSTONE_DEFAULT"], icon = [[Interface\ICONS\warlock_ healthstone]], @@ -1272,7 +1272,7 @@ local AllSpells = character:GetSpellList() local found = false for spellid, spell in pairs (AllSpells) do - if (spellid == 6262 or spellid == 156445) then + if (spellid == 6262 or spellid == 156445 or spellid == 156438) then --healthstone, reju potion, health potion instance_container:AddValue (character, spell.total) total = total + spell.total if (top < spell.total) then @@ -1297,6 +1297,7 @@ --get the cooltip object (we dont use the convencional GameTooltip here) local GameCooltip = GameCooltip local R, G, B, A = 0, 0, 0, 0.75 + local hs = actor:GetSpell (6262) if (hs) then GameCooltip:AddLine (select (1, GetSpellInfo(6262)), _detalhes:ToK(hs.total)) @@ -1310,11 +1311,19 @@ GameCooltip:AddIcon (select (3, GetSpellInfo (156445)), 1, 1, 16, 16) GameCooltip:AddStatusBar (100, 1, R, G, B, A) end + + local pot = actor:GetSpell (156438) + if (pot) then + GameCooltip:AddLine (select (1, GetSpellInfo(156438)), _detalhes:ToK(pot.total)) + GameCooltip:AddIcon (select (3, GetSpellInfo (156438)), 1, 1, 16, 16) + GameCooltip:AddStatusBar (100, 1, R, G, B, A) + end + --Cooltip code ]], percent_script = false, total_script = false, - script_version = 3, + script_version = 9, } -- /run_detalhes:AddDefaultCustomDisplays() local have = false @@ -1476,14 +1485,12 @@ desc = Loc ["STRING_CUSTOM_DTBS_DESC"], source = false, target = false, - script_version = 8, + script_version = 13, script = [[ --> get the parameters passed local combat, instance_container, instance = ... - --> declade the values to return local total, top, amount = 0, 0, 0 - --> get a list of all damage actors local AllDamageCharacters = combat:GetActorList (DETAILS_ATTRIBUTE_DAMAGE) @@ -1492,49 +1499,77 @@ --> do a loop amoung the actors for index, character in ipairs (AllDamageCharacters) do + + --> is the actor a enemy? + if (character:IsPlayer()) then - --> is the actor a enemy? - if (character:IsEnemy()) then - - local AllSpells = character:GetSpellList() + local taken_from = character.damage_from + + for source_name, _ in pairs (taken_from) do + + local source = combat (1, source_name) + + if (source) then + local AllSpells = source:GetSpellList() for spellid, spell in pairs (AllSpells) do - - if (spell.total >= 1 and spellid > 10) then - instance_container:AddValue (spell, spell.total) - - total = total + spell.total - - if (top < spell.total) then - top = spell.total - end - - if (not NoRepeat [spellid]) then - amount = amount + 1 - NoRepeat [spellid] = true - end + local on_player = spell.targets [character.nome] + + if (on_player and on_player >= 1) then + instance_container:AddValue (spell, on_player) + total = total + on_player + local value = instance_container:GetValue (spell) + if (value > top) then + top = value end + if (not NoRepeat [spellid]) then + amount = amount + 1 + NoRepeat [spellid] = true + end + end end - end - + ------------- + + local friendlyfire = source.friendlyfire [character.nome] + if (friendlyfire and friendlyfire.total >= 1) then + for _spellid, _on_player in pairs (friendlyfire.spells) do + local _spellname = GetSpellInfo (_spellid) + local _object + local _index = instance_container._NameIndexTable [_spellname] + if (_index) then + _object = instance_container._ActorTable [_index] + else + _object = {id = _spellid, spellschool = 1} + end + + instance_container:AddValue (_object, _on_player) + total = total + _on_player + local _value = instance_container:GetValue (_object) + if (_value > top) then + top = _value + end + if (not NoRepeat [_spellid]) then + amount = amount + 1 + NoRepeat [_spellid] = true + end + end + end + + ------------ + end + end + end end - --> return return total, top, amount ]], tooltip = [[ --get the parameters passed local actor, combat, instance = ... - local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) - - --get the cooltip object (we do not use the convencional GameTooltip here) local GameCooltip = GameCooltip - - --Cooltip code - local from_spell = actor.id --> get a list of all damage actors @@ -1542,60 +1577,72 @@ --> hold the targets local Targets = {} + local total = 0 + local top = 0 for index, character in ipairs (AllDamageCharacters) do - if (character:IsEnemy()) then - local AllSpells = character:GetSpellList() - - for spellid, spell in pairs (AllSpells) do - if (spellid == from_spell) then - for targetname, amount in pairs (spell.targets) do - local got = false - - local damage_actor = combat (1, targetname) - local heal_actor = combat (2, targetname) - - if ( (damage_actor or heal_actor) and ( (damage_actor and damage_actor:IsPlayer()) or (heal_actor and heal_actor:IsPlayer()) ) ) then - for index, t in ipairs (Targets) do - if (t[1] == targetname) then - t[2] = t[2] + amount - got = true - break - end - end - if (not got) then - Targets [#Targets+1] = {targetname, amount} - end - else - for index, t in ipairs (Targets) do - if (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then - t[2] = t[2] + amount - got = true - break - end - end - if (not got) then - Targets [#Targets+1] = {Loc ["STRING_TARGETS_OTHER1"], amount} - end - end - end + + local spell = character.spells._ActorTable [from_spell] + + if (spell) then + for targetname, amount in pairs (spell.targets) do + + local got = false + + local damage_actor = combat (1, targetname) + local heal_actor = combat (2, targetname) + + if ( (damage_actor or heal_actor) and ( (damage_actor and damage_actor:IsPlayer()) or (heal_actor and heal_actor:IsPlayer()) ) ) then + for index, t in ipairs (Targets) do + if (t[1] == targetname) then + t[2] = t[2] + amount + if (t[2] > top) then + top = t[2] end + got = true + break + end end + if (not got) then + Targets [#Targets+1] = {targetname, amount} + if (amount > top) then + top = amount + end + end + else + for index, t in ipairs (Targets) do + if (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then + t[2] = t[2] + amount + got = true + break + end + end + if (not got) then + Targets [#Targets+1] = {Loc ["STRING_TARGETS_OTHER1"], amount} + end + end end + end end table.sort (Targets, _detalhes.Sort2) + GameCooltip:SetOption ("StatusBarTexture", "Interface\\AddOns\\Details\\images\\bar_serenity") + + local bar_background = {value = 100, color = {0, 0, 0, 0.7}, texture = "Interface\\AddOns\\Details\\images\\bar4"} + for index, t in ipairs (Targets) do - GameCooltip:AddLine (t[1], _detalhes:ToK2 (t[2])) - _detalhes:AddTooltipBackgroundStatusbar() - local class = _detalhes:GetClass (t[1]) - if (class) then - local texture, l, r, t, b = _detalhes:GetClassIcon (class) - GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, l, r, t, b) - elseif (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then - GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, 0.25, 0.49609375, 0.75, 1) - end + GameCooltip:AddLine (_detalhes:GetOnlyName(t[1]), _detalhes:ToK (t[2])) + local class, _, _, _, _, r, g, b = _detalhes:GetClass (t[1]) + + GameCooltip:AddStatusBar (t[2]/top*100, 1, r, g, b, 0.6, true, bar_background) + + if (class) then + local texture, l, r, t, b = _detalhes:GetClassIcon (class) + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, l, r, t, b) + elseif (t[1] == Loc ["STRING_TARGETS_OTHER1"]) then + GameCooltip:AddIcon ("Interface\\AddOns\\Details\\images\\classes_small_alpha", 1, 1, 14, 14, 0.25, 0.49609375, 0.75, 1) + end end ]], } @@ -1845,7 +1892,6 @@ self.custom [#self.custom+1] = MySpells end + _detalhes:ResetCustomFunctionsCache() + end - - - diff --git a/classes/classe_damage.lua b/classes/classe_damage.lua index bd4bec30..125f9269 100644 --- a/classes/classe_damage.lua +++ b/classes/classe_damage.lua @@ -1622,9 +1622,16 @@ end esta_barra.icone_classe:SetVertexColor (actor_class_color_r, actor_class_color_g, actor_class_color_b) else - esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) - esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) --very slow method - esta_barra.icone_classe:SetVertexColor (1, 1, 1) + + if (instancia.row_info.use_spec_icons and self.spec) then + esta_barra.icone_classe:SetTexture (instancia.row_info.spec_file) + esta_barra.icone_classe:SetTexCoord (_unpack (_detalhes.class_specs_coords [self.spec])) + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + else + esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) + esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + end end --texture and text diff --git a/classes/classe_energy.lua b/classes/classe_energy.lua index 42510dc2..44d627e7 100644 --- a/classes/classe_energy.lua +++ b/classes/classe_energy.lua @@ -764,9 +764,15 @@ function atributo_energy:RefreshBarra (esta_barra, instancia, from_resize) esta_barra.icone_classe:SetVertexColor (actor_class_color_r, actor_class_color_g, actor_class_color_b) else - esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) - esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) --very slow method - esta_barra.icone_classe:SetVertexColor (1, 1, 1) + if (instancia.row_info.use_spec_icons and self.spec) then + esta_barra.icone_classe:SetTexture (instancia.row_info.spec_file) + esta_barra.icone_classe:SetTexCoord (_unpack (_detalhes.class_specs_coords [self.spec])) + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + else + esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) + esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) --very slow method + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + end end --texture and text diff --git a/classes/classe_heal.lua b/classes/classe_heal.lua index bc9b8c6c..99a8bc5f 100644 --- a/classes/classe_heal.lua +++ b/classes/classe_heal.lua @@ -823,9 +823,15 @@ function atributo_heal:RefreshBarra (esta_barra, instancia, from_resize) esta_barra.icone_classe:SetVertexColor (actor_class_color_r, actor_class_color_g, actor_class_color_b) else - esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) - esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) --very slow method - esta_barra.icone_classe:SetVertexColor (1, 1, 1) + if (instancia.row_info.use_spec_icons and self.spec) then + esta_barra.icone_classe:SetTexture (instancia.row_info.spec_file) + esta_barra.icone_classe:SetTexCoord (_unpack (_detalhes.class_specs_coords [self.spec])) --very slow method + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + else + esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) + esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) --very slow method + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + end end --texture and text diff --git a/classes/classe_instancia.lua b/classes/classe_instancia.lua index 970b1b2e..110b5fd4 100644 --- a/classes/classe_instancia.lua +++ b/classes/classe_instancia.lua @@ -1742,31 +1742,13 @@ end ------------------------------------------------------------------------------------------------------------------------ -function _detalhes:HaveOneCurrentInstance() - - local have = false +function _detalhes:CheckSwitchToCurrent() for _, instance in _ipairs (_detalhes.tabela_instancias) do - if (instance.ativa and instance.baseframe and instance.segmento == 0) then - return - end - end - - local lower = _detalhes:GetLowerInstanceNumber() - if (lower) then - local instance = _detalhes:GetInstance (lower) - if (instance and instance.auto_current) then + if (instance.ativa and instance.baseframe and instance.segmento ~= 0 and instance.auto_current) then instance:TrocaTabela (0) --> muda o segmento pra current - return instance:InstanceAlert (Loc ["STRING_CHANGED_TO_CURRENT"], {[[Interface\GossipFrame\TrainerGossipIcon]], 18, 18, false}, 6) - else - for _, instance in _ipairs (_detalhes.tabela_instancias) do - if (instance.ativa and instance.baseframe and instance.segmento ~= 0 and instance.auto_current) then - instance:TrocaTabela (0) --> muda o segmento pra current - return instance:InstanceAlert (Loc ["STRING_CHANGED_TO_CURRENT"], {[[Interface\GossipFrame\TrainerGossipIcon]], 18, 18, false}, 6) - end - end + instance:InstanceAlert (Loc ["STRING_CHANGED_TO_CURRENT"], {[[Interface\AddOns\Details\images\toolbar_icons]], 18, 18, false, 32/256, 64/256, 0, 1}, 6) end end - end function _detalhes:Freeze (instancia) diff --git a/classes/classe_instancia_include.lua b/classes/classe_instancia_include.lua index c9bc7e1f..11c81cb2 100644 --- a/classes/classe_instancia_include.lua +++ b/classes/classe_instancia_include.lua @@ -178,6 +178,9 @@ _detalhes.instance_defaults = { }, --fast hps/dps updates fast_ps_update = false, + --show spec icons + use_spec_icons = false, + spec_file = [[Interface\AddOns\Details\images\spec_icons_normal]], }, --instance window color color = {1, 1, 1, 1}, diff --git a/classes/classe_others.lua b/classes/classe_others.lua index 81a98056..7e4ea891 100644 --- a/classes/classe_others.lua +++ b/classes/classe_others.lua @@ -903,9 +903,15 @@ function atributo_misc:RefreshBarra (esta_barra, instancia, from_resize) esta_barra.icone_classe:SetVertexColor (actor_class_color_r, actor_class_color_g, actor_class_color_b) else - esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) - esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) --very slow method - esta_barra.icone_classe:SetVertexColor (1, 1, 1) + if (instancia.row_info.use_spec_icons and self.spec) then + esta_barra.icone_classe:SetTexture (instancia.row_info.spec_file) + esta_barra.icone_classe:SetTexCoord (_unpack (_detalhes.class_specs_coords [self.spec])) + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + else + esta_barra.icone_classe:SetTexture (instancia.row_info.icon_file) + esta_barra.icone_classe:SetTexCoord (_unpack (CLASS_ICON_TCOORDS [self.classe])) --very slow method + esta_barra.icone_classe:SetVertexColor (1, 1, 1) + end end --texture and text diff --git a/classes/container_combatentes.lua b/classes/container_combatentes.lua index 239171a0..5df01a03 100644 --- a/classes/container_combatentes.lua +++ b/classes/container_combatentes.lua @@ -42,6 +42,7 @@ local container_enemydebufftarget_target = _detalhes.container_type.CONTAINER_ENEMYDEBUFFTARGET_CLASS local container_pets = {} + local cached_specs = _detalhes.cached_specs --> flags local REACTION_HOSTILE = 0x00000040 @@ -118,7 +119,19 @@ end --> try to get the actor class from name - local function get_actor_class (novo_objeto, nome, flag) + local function get_actor_class (novo_objeto, nome, flag, serial) + + --> get spec + if (_detalhes.track_specs) then + local have_cached = cached_specs [serial] + if (have_cached) then + novo_objeto.spec = have_cached + _detalhes:ScheduleTimer ("GuessSpec", 15, {novo_objeto, self, 10}) + else + _detalhes:ScheduleTimer ("GuessSpec", 3, {novo_objeto, self, 1}) + end + end + local _, engClass = _UnitClass (nome) if (engClass) then @@ -296,6 +309,12 @@ --[[statistics]]-- _detalhes.statistics.container_calls = _detalhes.statistics.container_calls + 1 + --if (flag and nome:find ("Kastfall") and bit.band (flag, 0x2000) ~= 0) then + --print ("PET:", nome, _detalhes.tabela_pets.pets [serial], container_pets [serial]) + --else + --print (nome, flag) + --end + --> verifica se é um pet, se for confere se tem o nome do dono, se não tiver, precisa por local dono_do_pet serial = serial or "ns" @@ -342,7 +361,7 @@ if (self.tipo == container_damage) then --> CONTAINER DAMAGE - get_actor_class (novo_objeto, nome, flag) + get_actor_class (novo_objeto, nome, flag, serial) read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "damage") if (dono_do_pet) then @@ -372,7 +391,7 @@ elseif (self.tipo == container_heal) then --> CONTAINER HEALING - get_actor_class (novo_objeto, nome, flag) + get_actor_class (novo_objeto, nome, flag, serial) read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "heal") if (dono_do_pet) then @@ -399,7 +418,7 @@ elseif (self.tipo == container_energy) then --> CONTAINER ENERGY - get_actor_class (novo_objeto, nome, flag) + get_actor_class (novo_objeto, nome, flag, serial) read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "energy") if (dono_do_pet) then @@ -419,7 +438,7 @@ elseif (self.tipo == container_misc) then --> CONTAINER MISC - get_actor_class (novo_objeto, nome, flag) + get_actor_class (novo_objeto, nome, flag, serial) read_actor_flag (novo_objeto, dono_do_pet, serial, flag, nome, "misc") --local teste_classe = @@ -459,7 +478,7 @@ elseif (self.tipo == container_friendlyfire) then --> CONTAINER FRIENDLY FIRE - get_actor_class (novo_objeto, nome) + get_actor_class (novo_objeto, nome, serial) end diff --git a/classes/container_historico.lua b/classes/container_historico.lua index 8b6978ab..09d3208c 100644 --- a/classes/container_historico.lua +++ b/classes/container_historico.lua @@ -279,6 +279,7 @@ function historico:resetar() _table_wipe (_detalhes.spellcache) _detalhes:LimparPets() + _detalhes:ResetSpecCache (true) --> forçar -- novo container de historico _detalhes.tabela_historico = historico:NovoHistorico() --joga fora a tabela antiga e cria uma nova diff --git a/core/control.lua b/core/control.lua index 8ec8f224..8347bccc 100644 --- a/core/control.lua +++ b/core/control.lua @@ -337,7 +337,7 @@ _detalhes:InstanceCall (_detalhes.CheckPsUpdate) _detalhes:SendEvent ("COMBAT_PLAYER_ENTER", nil, _detalhes.tabela_vigente) - _detalhes:HaveOneCurrentInstance() + _detalhes:CheckSwitchToCurrent() end diff --git a/core/gears.lua b/core/gears.lua index 41983b0c..8cb9cff5 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -15,6 +15,122 @@ function _detalhes:UpdateGears() end +function _detalhes:TrackSpecsNow (track_everything) + + local spelllist = _detalhes.SpecSpellList + + if (not track_everything) then + for _, actor in _detalhes.tabela_vigente[1]:ListActors() do + if (actor:IsPlayer()) then + for spellid, spell in pairs (actor:GetSpellList()) do + if (spelllist [spell.id]) then + actor.spec = spelllist [spell.id] + _detalhes.cached_specs [actor.serial] = actor.spec + break + end + end + end + end + + for _, actor in _detalhes.tabela_vigente[2]:ListActors() do + if (actor:IsPlayer()) then + for spellid, spell in pairs (actor:GetSpellList()) do + if (spelllist [spell.id]) then + actor.spec = spelllist [spell.id] + _detalhes.cached_specs [actor.serial] = actor.spec + break + end + end + end + end + else + local combatlist = {} + for _, combat in ipairs (_detalhes.tabela_historico.tabelas) do + tinsert (combatlist, combat) + end + tinsert (combatlist, _detalhes.tabela_vigente) + tinsert (combatlist, _detalhes.tabela_overall) + + for _, combat in ipairs (combatlist) do + for _, actor in combat[1]:ListActors() do + if (actor:IsPlayer()) then + for spellid, spell in pairs (actor:GetSpellList()) do + if (spelllist [spell.id]) then + actor.spec = spelllist [spell.id] + _detalhes.cached_specs [actor.serial] = actor.spec + break + end + end + end + end + + for _, actor in combat[2]:ListActors() do + if (actor:IsPlayer()) then + for spellid, spell in pairs (actor:GetSpellList()) do + if (spelllist [spell.id]) then + actor.spec = spelllist [spell.id] + _detalhes.cached_specs [actor.serial] = actor.spec + break + end + end + end + end + end + end + +end + +function _detalhes:ResetSpecCache (forced) + + local isininstance = IsInInstance() + + if (forced or (not isininstance and not _detalhes.in_group)) then + table.wipe (_detalhes.cached_specs) + + if (_detalhes.track_specs) then + local my_spec = GetSpecialization() + if (type (my_spec) == "number") then + local spec_number = GetSpecializationInfo (my_spec) + if (type (spec_number) == "number") then + local pguid = UnitGUID (_detalhes.playername) + if (pguid) then + _detalhes.cached_specs [pguid] = spec_number + end + end + end + end + + elseif (_detalhes.in_group and not isininstance) then + table.wipe (_detalhes.cached_specs) + + if (_detalhes.track_specs) then + if (IsInRaid()) then + local c_combat_dmg = _detalhes.tabela_vigente [1] + local c_combat_heal = _detalhes.tabela_vigente [2] + for i = 1, GetNumGroupMembers(), 1 do + local name = GetUnitName ("raid" .. i, true) + local index = c_combat_dmg._NameIndexTable [name] + if (index) then + local actor = c_combat_dmg._ActorTable [index] + if (actor and actor.grupo and actor.spec) then + _detalhes.cached_specs [actor.serial] = actor.spec + end + else + index = c_combat_heal._NameIndexTable [name] + if (index) then + local actor = c_combat_heal._ActorTable [index] + if (actor and actor.grupo and actor.spec) then + _detalhes.cached_specs [actor.serial] = actor.spec + end + end + end + end + end + end + end + +end + function _detalhes:SetWindowUpdateSpeed (interval, nosave) if (not interval) then interval = _detalhes.update_speed diff --git a/core/meta.lua b/core/meta.lua index e311443e..1936f763 100644 --- a/core/meta.lua +++ b/core/meta.lua @@ -646,6 +646,9 @@ _detalhes:ClearCCPetsBlackList() end + --> reseta cache de specs + _detalhes:ResetSpecCache() + --> wipa container de escudos _table_wipe (_detalhes.escudos) diff --git a/core/parser.lua b/core/parser.lua index 2c661d62..17f29b6b 100644 --- a/core/parser.lua +++ b/core/parser.lua @@ -159,6 +159,7 @@ elseif (not who_name) then --> no actor name, use spell name instead who_name = "[*] "..spellname + who_serial = "" end if (absorbed) then @@ -224,7 +225,7 @@ --> get actors --> damager - local este_jogador, meu_dono = damage_cache [who_name] or damage_cache_pets [who_serial], damage_cache_petsOwners [who_serial] + local este_jogador, meu_dono = damage_cache [who_serial] or damage_cache_pets [who_serial], damage_cache_petsOwners [who_serial] if (not este_jogador) then --> pode ser um desconhecido ou um pet @@ -234,17 +235,21 @@ damage_cache_pets [who_serial] = este_jogador damage_cache_petsOwners [who_serial] = meu_dono --conferir se o dono já esta no cache - if (not damage_cache [meu_dono.nome]) then - damage_cache [meu_dono.nome] = meu_dono + if (not damage_cache [meu_dono.serial]) then + damage_cache [meu_dono.serial] = meu_dono end else if (who_flags) then --> ter certeza que não é um pet - damage_cache [who_name] = este_jogador - --> se for spell actor - if (who_name:find ("[*]")) then - local _, _, icon = _GetSpellInfo (spellid or 1) - este_jogador.spellicon = icon - --print ("spell actor:", who_name, "icon:", icon) + if (who_serial ~= "") then + damage_cache [who_serial] = este_jogador + else + if (who_name:find ("%[")) then + local _, _, icon = _GetSpellInfo (spellid or 1) + este_jogador.spellicon = icon + --print ("Spell Actor:", who_name) + else + --print ("No Serial Actor:", who_name) + end end end end @@ -255,7 +260,7 @@ end --> his target - local jogador_alvo, alvo_dono = damage_cache [alvo_name] or damage_cache_pets [alvo_serial], damage_cache_petsOwners [alvo_serial] + local jogador_alvo, alvo_dono = damage_cache [alvo_serial] or damage_cache_pets [alvo_serial], damage_cache_petsOwners [alvo_serial] if (not jogador_alvo) then @@ -265,12 +270,12 @@ damage_cache_pets [alvo_serial] = jogador_alvo damage_cache_petsOwners [alvo_serial] = alvo_dono --conferir se o dono já esta no cache - if (not damage_cache [alvo_dono.nome]) then - damage_cache [alvo_dono.nome] = alvo_dono + if (not damage_cache [alvo_dono.serial]) then + damage_cache [alvo_dono.serial] = alvo_dono end else if (alvo_flags) then --> ter certeza que não é um pet - damage_cache [alvo_name] = jogador_alvo + damage_cache [alvo_serial] = jogador_alvo end end @@ -522,7 +527,10 @@ ------------------------------------------------------------------------------------------------ --> early checks and fixes - if (not who_name or not alvo_name) then + if (not who_name) then + --> no actor name, use spell name instead + who_name = "[*] " .. spellname + elseif (not who_name or not alvo_name) then return --> just return end @@ -531,7 +539,7 @@ --print ("MISS", "|", missType, "|", isOffHand, "|", multistrike, "|", amountMissed, "|", arg1) --> 'misser' - local este_jogador = damage_cache [who_name] + local este_jogador = damage_cache [who_serial] if (not este_jogador) then --este_jogador, meu_dono, who_name = _current_damage_container:PegarCombatente (nil, who_name) este_jogador, meu_dono, who_name = _current_damage_container:PegarCombatente (who_serial, who_name, who_flags, true) @@ -542,7 +550,7 @@ if (tanks_members_cache [alvo_serial]) then --> only track tanks - local TargetActor = damage_cache [alvo_name] + local TargetActor = damage_cache [alvo_serial] if (TargetActor) then local avoidance = TargetActor.avoidance @@ -620,6 +628,10 @@ --[[statistics]]-- _detalhes.statistics.pets_summons = _detalhes.statistics.pets_summons + 1 + --if (who_name:find ("Kastfall")) then + -- print ("SUMMON", who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags) + --end + if (not who_name) then who_name = "[*] " .. spellName end @@ -1672,11 +1684,11 @@ if (who_name == alvo_name) then - local damage_actor = damage_cache [who_name] + local damage_actor = damage_cache [who_serial] if (not damage_actor) then --> pode ser um desconhecido ou um pet damage_actor = _current_damage_container:PegarCombatente (who_serial, who_name, who_flags, true) if (who_flags) then --> se não for um pet, adicionar no cache - damage_cache [who_name] = damage_actor + damage_cache [who_serial] = damage_actor end end @@ -1867,7 +1879,7 @@ --> enemy successful casts (not interrupted) if (_bit_band (who_flags, 0x00000040) ~= 0 and who_name) then --> byte 2 = 4 (enemy) --> damager - local este_jogador = damage_cache [who_name] + local este_jogador = damage_cache [who_serial] if (not este_jogador) then este_jogador = _current_damage_container:PegarCombatente (who_serial, who_name, who_flags, true) end diff --git a/core/windows.lua b/core/windows.lua index 9afdfc11..a365c1c3 100644 --- a/core/windows.lua +++ b/core/windows.lua @@ -2232,7 +2232,44 @@ for i = 1, 10 do local robot = current_combat[1]:PegarCombatente (0x0000000000000, actors_name [math.random (1, #actors_name)], 0x114, true) robot.grupo = true + robot.classe = actors_classes [math.random (1, #actors_classes)] + + if (robot.classe == "DEATHKNIGHT") then + local specs = {250, 251, 252} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "DRUID") then + local specs = {102, 103, 104, 105} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "HUNTER") then + local specs = {253, 254, 255} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "MAGE") then + local specs = {62, 63, 64} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "MONK") then + local specs = {268, 269, 270} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "PALADIN") then + local specs = {65, 66, 70} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "PRIEST") then + local specs = {256, 257, 258} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "ROGUE") then + local specs = {259, 260, 261} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "SHAMAN") then + local specs = {262, 263, 264} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "WARLOCK") then + local specs = {265, 266, 267} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "WARRIOR") then + local specs = {71, 72, 73} + robot.spec = specs [math.random (1, #specs)] + end + robot.total = math.random (10000000, 60000000) robot.damage_taken = math.random (10000000, 60000000) robot.friendlyfire_total = math.random (10000000, 60000000) @@ -2256,6 +2293,42 @@ local robot = current_combat[2]:PegarCombatente (0x0000000000000, actors_name [math.random (1, #actors_name)], 0x114, true) robot.grupo = true robot.classe = actors_classes [math.random (1, #actors_classes)] + + if (robot.classe == "DEATHKNIGHT") then + local specs = {250, 251, 252} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "DRUID") then + local specs = {102, 103, 104, 105} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "HUNTER") then + local specs = {253, 254, 255} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "MAGE") then + local specs = {62, 63, 64} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "MONK") then + local specs = {268, 269, 270} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "PALADIN") then + local specs = {65, 66, 70} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "PRIEST") then + local specs = {256, 257, 258} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "ROGUE") then + local specs = {259, 260, 261} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "SHAMAN") then + local specs = {262, 263, 264} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "WARLOCK") then + local specs = {265, 266, 267} + robot.spec = specs [math.random (1, #specs)] + elseif (robot.classe == "WARRIOR") then + local specs = {71, 72, 73} + robot.spec = specs [math.random (1, #specs)] + end + robot.total = math.random (10000000, 60000000) robot.totalover = math.random (10000000, 60000000) robot.totalabsorb = math.random (10000000, 60000000) diff --git a/framework/panel.lua b/framework/panel.lua index be3ab1b4..a70ef8b3 100644 --- a/framework/panel.lua +++ b/framework/panel.lua @@ -910,7 +910,13 @@ function gump:IconPick (callback, close_when_select) gump.IconPickFrame.emptyFunction = function() end gump.IconPickFrame.callback = gump.IconPickFrame.emptyFunction - gump.IconPickFrame.preview = gump:NewImage (gump.IconPickFrame, nil, 76, 76) + gump.IconPickFrame.preview = CreateFrame ("frame", nil, UIParent) + gump.IconPickFrame.preview:SetFrameStrata ("tooltip") + gump.IconPickFrame.preview:SetSize (76, 76) + local preview_image = gump:NewImage (gump.IconPickFrame.preview, nil, 76, 76) + preview_image:SetAllPoints (gump.IconPickFrame.preview) + gump.IconPickFrame.preview.icon = preview_image + gump.IconPickFrame.preview:Hide() gump.IconPickFrame.searchLabel = gump:NewLabel (gump.IconPickFrame, nil, "$parentSearchBoxLabel", nil, "search:", font, size, color) gump.IconPickFrame.searchLabel:SetPoint ("topleft", gump.IconPickFrame, "topleft", 12, -20) @@ -924,6 +930,8 @@ function gump:IconPick (callback, close_when_select) gump.IconPickFrame.updateFunc() else gump.IconPickFrameScroll:Hide() + FauxScrollFrame_SetOffset (gump.IconPickFrame, 1) + gump.IconPickFrame.last_filter_index = 1 gump.IconPickFrame.updateFunc() end end) @@ -971,6 +979,8 @@ function gump:IconPick (callback, close_when_select) end end + GetLooseMacroItemIcons (MACRO_ICON_FILENAMES) + GetLooseMacroIcons (MACRO_ICON_FILENAMES) GetMacroIcons (MACRO_ICON_FILENAMES) GetMacroItemIcons (MACRO_ICON_FILENAMES ) @@ -983,10 +993,8 @@ function gump:IconPick (callback, close_when_select) gump.IconPickFrame.buttons = {} - local OnClickFunction = function (index) - local button = gump.IconPickFrame.buttons [index] - local texture = button:GetNormalTexture() - gump.IconPickFrame.callback (button.icon_texture) + local OnClickFunction = function (self) + gump.IconPickFrame.callback (self.icon:GetTexture()) if (gump.IconPickFrame.click_close) then close_button:Click() end @@ -994,119 +1002,197 @@ function gump:IconPick (callback, close_when_select) local onenter = function (self) gump.IconPickFrame.preview:SetPoint ("bottom", self, "top", 0, 2) - gump.IconPickFrame.preview:SetTexture (self.icon_texture) - gump.IconPickFrame.preview:SetParent (self) + gump.IconPickFrame.preview.icon:SetTexture (self.icon:GetTexture()) gump.IconPickFrame.preview:Show() + self.icon:SetBlendMode ("ADD") end local onleave = function (self) gump.IconPickFrame.preview:Hide() + self.icon:SetBlendMode ("BLEND") end + local backdrop = {bgFile = [[Interface\AddOns\Details\images\background]], tile = true, tileSize = 16, + insets = {left = 0, right = 0, top = 0, bottom = 0}, edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]], edgeSize = 10} + for i = 0, 9 do - local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i+1, i+1, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..(i+1)) + local newcheck = CreateFrame ("Button", "DetailsIconPickFrameButton"..(i+1), gump.IconPickFrame) + local image = newcheck:CreateTexture ("DetailsIconPickFrameButton"..(i+1).."Icon", "overlay") + newcheck.icon = image + image:SetPoint ("topleft", newcheck, "topleft", 2, -2); image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2) + newcheck:SetSize (30, 28) + newcheck:SetBackdrop (backdrop) + + newcheck:SetScript ("OnClick", OnClickFunction) + newcheck.param1 = i+1 + newcheck:SetPoint ("topleft", gump.IconPickFrame, "topleft", 12 + (i*30), -40) newcheck:SetID (i+1) gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck - newcheck.MouseOnEnterHook = onenter - newcheck.MouseOnLeaveHook = onleave + newcheck:SetScript ("OnEnter", onenter) + newcheck:SetScript ("OnLeave", onleave) end - for i = 11, 20 do - local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i) + for i = 11, 20 do + local newcheck = CreateFrame ("Button", "DetailsIconPickFrameButton"..i, gump.IconPickFrame) + local image = newcheck:CreateTexture ("DetailsIconPickFrameButton"..i.."Icon", "overlay") + newcheck.icon = image + image:SetPoint ("topleft", newcheck, "topleft", 2, -2); image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2) + newcheck:SetSize (30, 28) + newcheck:SetBackdrop (backdrop) + + newcheck:SetScript ("OnClick", OnClickFunction) + newcheck.param1 = i + newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1) newcheck:SetID (i) gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck - newcheck.MouseOnEnterHook = onenter - newcheck.MouseOnLeaveHook = onleave + newcheck:SetScript ("OnEnter", onenter) + newcheck:SetScript ("OnLeave", onleave) end for i = 21, 30 do - local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i) + local newcheck = CreateFrame ("Button", "DetailsIconPickFrameButton"..i, gump.IconPickFrame) + local image = newcheck:CreateTexture ("DetailsIconPickFrameButton"..i.."Icon", "overlay") + newcheck.icon = image + image:SetPoint ("topleft", newcheck, "topleft", 2, -2); image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2) + newcheck:SetSize (30, 28) + newcheck:SetBackdrop (backdrop) + + newcheck:SetScript ("OnClick", OnClickFunction) + newcheck.param1 = i + newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1) newcheck:SetID (i) gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck - newcheck.MouseOnEnterHook = onenter - newcheck.MouseOnLeaveHook = onleave + newcheck:SetScript ("OnEnter", onenter) + newcheck:SetScript ("OnLeave", onleave) end for i = 31, 40 do - local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i) + local newcheck = CreateFrame ("Button", "DetailsIconPickFrameButton"..i, gump.IconPickFrame) + local image = newcheck:CreateTexture ("DetailsIconPickFrameButton"..i.."Icon", "overlay") + newcheck.icon = image + image:SetPoint ("topleft", newcheck, "topleft", 2, -2); image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2) + newcheck:SetSize (30, 28) + newcheck:SetBackdrop (backdrop) + + newcheck:SetScript ("OnClick", OnClickFunction) + newcheck.param1 = i + newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1) newcheck:SetID (i) gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck - newcheck.MouseOnEnterHook = onenter - newcheck.MouseOnLeaveHook = onleave + newcheck:SetScript ("OnEnter", onenter) + newcheck:SetScript ("OnLeave", onleave) end for i = 41, 50 do - local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i) + local newcheck = CreateFrame ("Button", "DetailsIconPickFrameButton"..i, gump.IconPickFrame) + local image = newcheck:CreateTexture ("DetailsIconPickFrameButton"..i.."Icon", "overlay") + newcheck.icon = image + image:SetPoint ("topleft", newcheck, "topleft", 2, -2); image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2) + newcheck:SetSize (30, 28) + newcheck:SetBackdrop (backdrop) + + newcheck:SetScript ("OnClick", OnClickFunction) + newcheck.param1 = i + newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1) newcheck:SetID (i) gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck - newcheck.MouseOnEnterHook = onenter - newcheck.MouseOnLeaveHook = onleave + newcheck:SetScript ("OnEnter", onenter) + newcheck:SetScript ("OnLeave", onleave) end for i = 51, 60 do - local newcheck = gump:NewDetailsButton (gump.IconPickFrame, gump.IconPickFrame, _, OnClickFunction, i, i, 30, 28, "", "", "", "", _, "DetailsIconPickFrameButton"..i) + local newcheck = CreateFrame ("Button", "DetailsIconPickFrameButton"..i, gump.IconPickFrame) + local image = newcheck:CreateTexture ("DetailsIconPickFrameButton"..i.."Icon", "overlay") + newcheck.icon = image + image:SetPoint ("topleft", newcheck, "topleft", 2, -2); image:SetPoint ("bottomright", newcheck, "bottomright", -2, 2) + newcheck:SetSize (30, 28) + newcheck:SetBackdrop (backdrop) + + newcheck:SetScript ("OnClick", OnClickFunction) + newcheck.param1 = i + newcheck:SetPoint ("topleft", "DetailsIconPickFrameButton"..(i-10), "bottomleft", 0, -1) newcheck:SetID (i) gump.IconPickFrame.buttons [#gump.IconPickFrame.buttons+1] = newcheck - newcheck.MouseOnEnterHook = onenter - newcheck.MouseOnLeaveHook = onleave + newcheck:SetScript ("OnEnter", onenter) + newcheck:SetScript ("OnLeave", onleave) end local scroll = CreateFrame ("ScrollFrame", "DetailsIconPickFrameScroll", gump.IconPickFrame, "ListScrollFrameTemplate") local ChecksFrame_Update = function (self) - --self = self or MacroPopupFrame; - local numMacroIcons = #MACRO_ICON_FILENAMES; - local macroPopupIcon, macroPopupButton; - local macroPopupOffset = FauxScrollFrame_GetOffset (scroll); - local index; - - -- Icon list - local texture; - + + local numMacroIcons = #MACRO_ICON_FILENAMES + local macroPopupIcon, macroPopupButton + local macroPopupOffset = FauxScrollFrame_GetOffset (scroll) + local index + + local texture local filter if (gump.IconPickFrame.searching) then filter = string_lower (gump.IconPickFrame.searching) end if (filter and filter ~= "") then - local i = 1 - for o = 1, numMacroIcons do - local text = string_lower (MACRO_ICON_FILENAMES [o]) - if (text:find (filter)) then - macroPopupIcon = _G ["DetailsIconPickFrameButton"..i] - macroPopupButton = _G ["DetailsIconPickFrameButton"..i] - local texture = MACRO_ICON_FILENAMES [o] - macroPopupButton:ChangeIcon ("INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture) - macroPopupButton.IconID = index - macroPopupButton.icon_texture = "INTERFACE\\ICONS\\"..texture - macroPopupButton:Show(); - - i = i + 1 - if (i > 60) then - break + + local ignored = 0 + local tryed = 0 + local found = 0 + local type = type + local buttons = gump.IconPickFrame.buttons + index = 1 + + for i = 1, 60 do + + macroPopupIcon = buttons[i].icon + macroPopupButton = buttons[i] + + for o = index, numMacroIcons do + + tryed = tryed + 1 + + texture = MACRO_ICON_FILENAMES [o] + if (type (texture) == "number") then + macroPopupIcon:SetToFileData (texture) + texture = macroPopupIcon:GetTexture() + macroPopupIcon:SetTexture (nil) + else + texture = "INTERFACE\\ICONS\\" .. texture end + + if (texture and texture:find (filter)) then + macroPopupIcon:SetTexture (texture) + macroPopupButton:Show() + found = found + 1 + gump.IconPickFrame.last_filter_index = o + index = o+1 + break + else + ignored = ignored + 1 + end + end end - if (i == 1) then --no resutls - macroPopupButton = _G ["DetailsIconPickFrameButton"..i] - macroPopupButton:Hide() - end - - for o = i+1, 60 do + for o = found+1, 60 do macroPopupButton = _G ["DetailsIconPickFrameButton"..o] macroPopupButton:Hide() end else for i = 1, 60 do - macroPopupIcon = _G ["DetailsIconPickFrameButton"..i] + macroPopupIcon = _G ["DetailsIconPickFrameButton"..i.."Icon"] macroPopupButton = _G ["DetailsIconPickFrameButton"..i] - index = (macroPopupOffset * 10) + i; + index = (macroPopupOffset * 10) + i texture = MACRO_ICON_FILENAMES [index] if ( index <= numMacroIcons and texture ) then - macroPopupButton:ChangeIcon ("INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture, "INTERFACE\\ICONS\\"..texture) + + if (type (texture) == "number") then + macroPopupIcon:SetToFileData (texture) + else + macroPopupIcon:SetTexture ("INTERFACE\\ICONS\\" .. texture) + end + + macroPopupIcon:SetTexCoord (4/64, 60/64, 4/64, 60/64) macroPopupButton.IconID = index - macroPopupButton.icon_texture = "INTERFACE\\ICONS\\"..texture macroPopupButton:Show() else macroPopupButton:Hide() @@ -1115,7 +1201,7 @@ function gump:IconPick (callback, close_when_select) end -- Scrollbar stuff - FauxScrollFrame_Update (scroll, ceil (numMacroIcons / 10) , 5, 20 ); + FauxScrollFrame_Update (scroll, ceil (numMacroIcons / 10) , 5, 20 ) end gump.IconPickFrame.updateFunc = ChecksFrame_Update diff --git a/functions/loaddata.lua b/functions/loaddata.lua index 71b0f55c..93f53311 100644 --- a/functions/loaddata.lua +++ b/functions/loaddata.lua @@ -203,6 +203,18 @@ function _detalhes:LoadCombatTables() _detalhes.tabela_vigente = _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall) _detalhes.tabela_pets = _detalhes.container_pets:NovoContainer() _detalhes:UpdateContainerCombatentes() + else + --> check integrity + local combat = _detalhes.tabela_historico.tabelas [1] + if (combat) then + if (not combat[1] or not combat[2] or not combat[3] or not combat[4]) then + --> something went wrong in last logon, let's just reset and we are good to go + _detalhes.tabela_historico = _detalhes.historico:NovoHistorico() + _detalhes.tabela_vigente = _detalhes.combate:NovaTabela (_, _detalhes.tabela_overall) + _detalhes.tabela_pets = _detalhes.container_pets:NovoContainer() + _detalhes:UpdateContainerCombatentes() + end + end end --> re-build all indexes and metatables diff --git a/functions/playerclass.lua b/functions/playerclass.lua index d98de722..48c1f6eb 100644 --- a/functions/playerclass.lua +++ b/functions/playerclass.lua @@ -10,6 +10,8 @@ do local _select = select local _unpack = unpack + local unknown_class_coords = {0.75, 1, 0.75, 1} + -- try get the class from actor name function _detalhes:GetClass (name) local _, class = _UnitClass (name) @@ -20,12 +22,18 @@ do if (index) then local actor = container._ActorTable [index] if (actor.classe ~= "UNGROUPPLAYER") then - return actor.classe, _detalhes:unpacks (_detalhes.class_coords [actor.classe] or {0.75, 1, 0.75, 1}, _detalhes.class_colors [actor.classe]) + local left, right, top, bottom = unpack (_detalhes.class_coords [actor.classe] or unknown_class_coords) + local r, g, b = unpack (_detalhes.class_colors [actor.classe]) + return actor.classe, left, right, top, bottom, r or 1, g or 1, b or 1 end end end + + return "UNKNOW", 0.75, 1, 0.75, 1, 1, 1, 1, 1 else - return class, _detalhes:unpacks (_detalhes.class_coords [class] or {0.75, 1, 0.75, 1}, _detalhes.class_colors [class]) + local left, right, top, bottom = unpack (_detalhes.class_coords [class]) + local r, g, b = unpack (_detalhes.class_colors [class]) + return class, left, right, top, bottom, r or 1, g or 1, b or 1 end end @@ -122,5 +130,138 @@ do return false end + +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + -- try get the spec from actor name + function _detalhes:GetSpec (name) + + local guid = UnitGUID (name) + if (guid) then + local spec = _detalhes.cached_specs [guid] + if (spec) then + return spec + end + end + + for _, container in _ipairs (_detalhes.tabela_overall) do + local index = container._NameIndexTable [name] + if (index) then + local actor = container._ActorTable [index] + return actor and actor.spec + end + end + + end + + function _detalhes:GuessSpec (t) + + local Actor, container, tries = t[1], t[2], t[3] + + if (not Actor) then + return false + end + + local guid = UnitGUID (Actor.nome) + if (guid) then + local spec = _detalhes.cached_specs [guid] + if (spec) then + Actor.spec = spec + Actor.guessing_spec = nil + + if (container) then + container.need_refresh = true + end + + if (Actor.minha_barra and type (Actor.minha_barra) == "table") then + Actor.minha_barra.minha_tabela = nil + end + + return spec + end + end + + local SpecSpellList = _detalhes.SpecSpellList + + if (Actor.spells) then --> correcao pros containers misc, precisa pegar os diferentes tipos de containers de lá + for spellid, _ in _pairs (Actor.spells._ActorTable) do + local spec = SpecSpellList [spellid] + if (spec) then + + _detalhes.cached_specs [Actor.serial] = spec + + Actor.spec = spec + Actor.guessing_spec = nil + + if (container) then + container.need_refresh = true + end + + if (Actor.minha_barra and type (Actor.minha_barra) == "table") then + Actor.minha_barra.minha_tabela = nil + end + + return spec + end + end + end + + if (Actor.classe == "HUNTER") then + local container_misc = _detalhes.tabela_vigente[4] + local index = container_misc._NameIndexTable [Actor.nome] + if (index) then + local misc_actor = container_misc._ActorTable [index] + local buffs = misc_actor.buff_uptime_spells and misc_actor.buff_uptime_spells._ActorTable + if (buffs) then + for spellid, spell in _pairs (buffs) do + local spec = SpecSpellList [spellid] + if (spec) then + + _detalhes.cached_specs [Actor.serial] = spec + + Actor.spec = spec + Actor.guessing_spec = nil + + if (container) then + container.need_refresh = true + end + + if (Actor.minha_barra and type (Actor.minha_barra) == "table") then + Actor.minha_barra.minha_tabela = nil + end + + return spec + end + end + end + end + end + + local spec = _detalhes:GetSpec (Actor.nome) + if (spec) then + + _detalhes.cached_specs [Actor.serial] = spec + + Actor.spec = spec + Actor.need_refresh = true + Actor.guessing_spec = nil + + if (container) then + container.need_refresh = true + end + + if (Actor.minha_barra and type (Actor.minha_barra) == "table") then + Actor.minha_barra.minha_tabela = nil + end + + return spec + end + + if (tries and tries < 10) then + _detalhes:ScheduleTimer ("GuessSpec", 3, {Actor, container, tries+1}) + end + + return false + end end diff --git a/functions/profiles.lua b/functions/profiles.lua index bf312831..1479ddf7 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -567,6 +567,54 @@ end local default_profile = { + --> spec coords + class_specs_coords = { + [252] = {0, 64/512, 0, 64/512}, --> unholy dk + [251] = {64/512, 128/512, 0, 64/512}, --> frost dk + [250] = {128/512, 192/512, 0, 64/512}, --> blood dk + + [102] = {192/512, 256/512, 0, 64/512}, --> druid balance + [103] = {256/512, 320/512, 0, 64/512}, --> druid feral + [104] = {320/512, 384/512, 0, 64/512}, --> druid guardian + [105] = {384/512, 448/512, 0, 64/512}, --> druid resto + + [253] = {448/512, 512/512, 0, 64/512}, --> hunter bm + [254] = {0, 64/512, 64/512, 128/512}, --> hunter marks + [255] = {64/512, 128/512, 64/512, 128/512}, --> hunter survivor + + [62] = {128/512, 192/512, 64/512, 128/512}, --> mage arcane + [63] = {192/512, 256/512, 64/512, 128/512}, --> mage fire + [64] = {256/512, 320/512, 64/512, 128/512}, --> mage frost + + [268] = {320/512, 384/512, 64/512, 128/512}, --> monk bm + [269] = {384/512, 448/512, 64/512, 128/512}, --> monk mw + [270] = {448/512, 512/512, 64/512, 128/512}, --> monk ww + + [65] = {0, 64/512, 128/512, 192/512}, --> paladin holy + [66] = {64/512, 128/512, 128/512, 192/512}, --> paladin protect + [70] = {128/512, 192/512, 128/512, 192/512}, --> paladin ret + + [256] = {192/512, 256/512, 128/512, 192/512}, --> priest disc + [257] = {256/512, 320/512, 128/512, 192/512}, --> priest holy + [258] = {320/512, 384/512, 128/512, 192/512}, --> priest shadow + + [259] = {384/512, 448/512, 128/512, 192/512}, --> rogue assassination + [260] = {448/512, 512/512, 128/512, 192/512}, --> rogue combat + [261] = {0, 64/512, 192/512, 256/512}, --> rogue sub + + [262] = {64/512, 128/512, 192/512, 256/512}, --> shaman elemental + [263] = {128/512, 192/512, 192/512, 256/512}, --> shamel enhancement + [264] = {192/512, 256/512, 192/512, 256/512}, --> shaman resto + + [265] = {256/512, 320/512, 192/512, 256/512}, --> warlock aff + [266] = {320/512, 384/512, 192/512, 256/512}, --> warlock demo + [267] = {384/512, 448/512, 192/512, 256/512}, --> warlock destro + + [71] = {448/512, 512/512, 192/512, 256/512}, --> warrior arms + [72] = {0, 64/512, 256/512, 320/512}, --> warrior fury + [73] = {64/512, 128/512, 256/512, 320/512}, --> warrior protect + }, + --> class icons and colors class_icons_small = [[Interface\AddOns\Details\images\classes_small]], class_coords = { @@ -807,6 +855,7 @@ local default_profile = { --> text sizes font_sizes = {menus = 10}, + font_faces = {menus = "Friz Quadrata TT"}, ps_abbreviation = 3, total_abbreviation = 2, diff --git a/functions/skins.lua b/functions/skins.lua index 0b30bb06..161ae7bb 100644 --- a/functions/skins.lua +++ b/functions/skins.lua @@ -505,6 +505,8 @@ local _ ["window_scale"] = 1, ["bars_grow_direction"] = 1, ["row_info"] = { + ["use_spec_icons"] = true, + ["spec_file"] = [[Interface\AddOns\Details\images\spec_icons_normal]], ["textR_outline"] = false, ["textL_outline"] = false, ["percent_type"] = 1, diff --git a/functions/spells.lua b/functions/spells.lua index 44075c3d..580f6ab5 100644 --- a/functions/spells.lua +++ b/functions/spells.lua @@ -17,7 +17,399 @@ do } _detalhes.SpecSpellList = { + + -- Unholy Death Knight: + [165395] = 252, -- Necrosis + [49206] = 252, -- Summon Gargoyle + [63560] = 252, -- Dark Transformation + [85948] = 252, -- Festering Strike + [49572] = 252, -- Shadow Infusion + [55090] = 252, -- Scourge Strike + [46584] = 252, -- Raise Dead + [51160] = 252, -- Ebon Plaguebringer + -- Frost Death Knight: + [130735] = 251, -- Soul Reaper + [51271] = 251, -- Pillar of Frost + [49020] = 251, -- Obliterate + [49143] = 251, -- Frost Strike + [49184] = 251, -- Howling Blast + + -- Blood Death Knight: + [165394] = 250, -- Runic Strikes + [114866] = 250, -- Soul Reaper + [49222] = 250, -- Bone Shield + [55233] = 250, -- Vampiric Blood + [49028] = 250, -- Dancing Rune Weapon + [48982] = 250, -- Rune Tap + [56222] = 250, -- Dark Command + + -- Balance Druid: + [152221] = 102, -- Stellar Flare + [88747] = 102, -- Wild Mushroom + [33605] = 102, -- Astral Showers + [48505] = 102, -- Starfall + [112071] = 102, -- Celestial Alignment + [78675] = 102, -- Solar Beam + [93399] = 102, -- Shooting Stars + [78674] = 102, -- Starsurge + [2912] = 102, -- Starfire + + -- Feral Druid: + [171746] = 103, -- Claws of Shirvallah + [22570] = 103, -- Maim + [16974] = 103, -- Predatory Swiftness + [106785] = 103, -- Swipe + [1079] = 103, -- Rip + [52610] = 103, -- Savage Roar + [5217] = 103, -- Tiger's Fury + [1822] = 103, -- Rake + + -- Guardian Druid: + [155835] = 104, -- Bristling Fur + [155578] = 104, -- Guardian of Elune + [80313] = 104, -- Pulverize + [159232] = 104, -- Ursa Major + [33745] = 104, -- Lacerate + [135288] = 104, -- Tooth and Claw + [6807] = 104, -- Maul + [62606] = 104, -- Savage Defense + + -- Restoration Druid: + + [145518] = 105, -- Genesis + [145205] = 105, -- Wild Mushroom + [48438] = 105, -- Wild Growth + [740] = 105, -- Tranquility + [102342] = 105, -- Ironbark + [33763] = 105, -- Lifebloom + [88423] = 105, -- Nature's Cure + [8936] = 105, -- Regrowth + [18562] = 105, -- Swiftmend + + -- Beast Mastery Hunter: + [19574] = 253, -- Bestial Wrath + [82692] = 253, -- Focus Fire + [53257] = 253, -- Cobra Strikes + [19574] = 253, -- Bestial Wrath + --[34026] = 253, -- Kill Command + --[83381] = 253, -- Kill Command + + -- Marksmanship Hunter: + [53209] = 254, -- Chimaera Shot + [3045] = 254, -- Rapid Fire + [19434] = 254, -- Aimed Shot + + -- Survival Hunter: + [3674] = 255, -- Black Arrow + [53301] = 255, -- Explosive Shot + [87935] = 255, -- Serpent Sting + + -- Arcane Mage: + [153626] = 62, -- Arcane Orb + [114923] = 62, -- Nether Tempest + [157980] = 62, -- Supernova + [12042] = 62, -- Arcane Power + [12051] = 62, -- Evocation + [31589] = 62, -- Slow + [5143] = 62, -- Arcane Missiles + [1449] = 62, -- Arcane Explosion + [44425] = 62, -- Arcane Barrage + [30451] = 62, -- Arcane Blast + + -- Fire Mage: + [153561] = 63, -- Meteor + [11129] = 63, -- Combustion + [157981] = 63, -- Blast Wave + [44457] = 63, -- Living Bomb + [31661] = 63, -- Dragon's Breath + [2120] = 63, -- Flamestrike + [108853] = 63, -- Inferno Blast + [2948] = 63, -- Scorch + [133] = 63, -- Fireball + [11366] = 63, -- Pyroblast + + -- Frost Mage: + [153595] = 64, -- Comet Storm + [112948] = 64, -- Frost Bomb + [157997] = 64, -- Ice Nova + [84714] = 64, -- Frozen Orb + [10] = 64, -- Blizzard + [30455] = 64, -- Ice Lance + [116] = 64, -- Frostbolt + + -- Brewmaster Monk: + [157676] = 268, -- Chi Explosion + [119582] = 268, -- Purifying Brew + [115308] = 268, -- Elusive Brew + [115295] = 268, -- Guard + [115181] = 268, -- Breath of Fire + [121253] = 268, -- Keg Smash + [115180] = 268, -- Dizzying Haze + + -- Mistweaver Monk: + [115310] = 269, -- Revival + [116680] = 269, -- Thunder Focus Tea + [115460] = 269, -- Detonate Chi + [116670] = 269, -- Uplift + [115294] = 269, -- Mana Tea + [116849] = 269, -- Life Cocoon + [115151] = 269, -- Renewing Mist + [124682] = 269, -- Enveloping Mist + [115175] = 269, -- Soothing Mist + + -- Windwalker Monk: + [152175] = 270, -- Hurricane Strike + [116095] = 270, -- Disable + [122470] = 270, -- Touch of Karma + [124280] = 270, -- Touch of Karma + [128595] = 270, -- Combat Conditioning + [101545] = 270, -- Flying Serpent Kick + [113656] = 270, -- Fists of Fury + [117418] = 270, -- Fists of Fury + + -- Holy Paladin: + [156910] = 65, -- Beacon of Faith + [157007] = 65, -- Beacon of Insight + [85222] = 65, -- Light of Dawn + [31821] = 65, -- Devotion Aura + [82326] = 65, -- Holy Light + [148039] = 65, -- Sacred Shield + [53563] = 65, -- Beacon of Light + [82327] = 65, -- Holy Radiance + [2812] = 65, -- Denounce + [20473] = 65, -- Holy Shock + + -- Protection Paladin: + [53600] = 66, -- Shield of the Righteous + [26573] = 66, -- Consecration + [119072] = 66, -- Holy Wrath + [31935] = 66, -- Avenger's Shield + + -- Retribution Paladin: + [157048] = 70, -- Final Verdict + [20164] = 70, -- Seal of Justice + [879] = 70, -- Exorcism + [53385] = 70, -- Divine Storm + [85256] = 70, -- Templar's Verdict + + -- Discipline Priest: + [152118] = 256, -- Clarity of Will + [109964] = 256, -- Spirit Shell + [62618] = 256, -- Power Word: Barrier + [33206] = 256, -- Pain Suppression + [81751] = 256, -- Atonement + [94472] = 256, -- Atonement (crit) + [47753] = 256, -- Divine Aegis + [132157] = 256, -- Holy Nova + [47750] = 256, -- Penance + + -- Holy Priest: + [155245] = 257, -- Clarity of Purpose + [64843] = 257, -- Divine Hymn + [34861] = 257, -- Circle of Healing + [32546] = 257, -- Binding Heal + [596] = 257, -- Prayer of Healing + [126135] = 257, -- Lightwell + [139] = 257, -- Renew + [88625] = 257, -- Holy Word: Chastise + + -- Shadow Priest: + [127632] = 258, -- Cascade + [122121] = 258, -- Divine Star + [120644] = 258, -- Halo + [15286] = 258, -- Vampiric Embrace + [32379] = 258, -- Shadow Word: Death + [73510] = 258, -- Mind Spike + [78203] = 258, -- Shadowy Apparitions + [34914] = 258, -- Vampiric Touch + [2944] = 258, -- Devouring Plague + [8092] = 258, -- Mind Blast + [15407] = 258, -- Mind Flay + + -- Assassination Rogue: + [79140] = 259, -- Vendetta + [111240] = 259, -- Dispatch + [32645] = 259, -- Envenom + [1329] = 259, -- Mutilate + [79134] = 259, -- Venomous Wounds + + -- Combat Rogue: + [51690] = 260, -- Killing Spree + [84617] = 260, -- Revealing Strike + + -- Subtlety Rogue: + [53] = 261, -- Backstab + [16511] = 261, -- Hemorrhage + + -- Elemental Shaman: + [165399] = 262, -- Elemental Overload + [165477] = 262, -- Unleashed Fury + [165339] = 262, -- Ascendance + [165462] = 262, -- Unleash Flame + [170374] = 262, -- Mastery: Molten Earth + [61882] = 262, -- Earthquake + [77756] = 262, -- Lava Surge + [86108] = 262, -- Mail Specialization + [88766] = 262, -- Fulmination + [60188] = 262, -- Elemental Fury + [29000] = 262, -- Elemental Reach + [62099] = 262, -- Shamanism + [123099] = 262, -- Spiritual Insight + [51490] = 262, -- Thunderstorm + [8042] = 262, -- Earth Shock + + -- Enhancement Shaman: + [165368] = 263, -- Lightning Strikes + [117012] = 263, -- Unleashed Fury + [165341] = 263, -- Ascendance + [73680] = 263, -- Unleash Elements + [77223] = 263, -- Mastery: Enhanced Elements + [51533] = 263, -- Feral Spirit + [58875] = 263, -- Spirit Walk + [51530] = 263, -- Maelstrom Weapon + [86099] = 263, -- Mail Specialization + [1535] = 263, -- Fire Nova + [8190] = 263, -- Magma Totem + [166221] = 263, -- Enhanced Weapons + [33757] = 263, -- Windfury + [17364] = 263, -- Stormstrike + [16282] = 263, -- Flurry + [86629] = 263, -- Dual Wield + [10400] = 263, -- Flametongue + [60103] = 263, -- Lava Lash + [30814] = 263, -- Mental Quickness + [51522] = 263, -- Primal Wisdom + + -- Restoration Shaman: + [157153] = 264, -- Cloudburst Totem + [157154] = 264, -- High Tide + [165391] = 264, -- Purification + [165479] = 264, -- Unleashed Fury + [165344] = 264, -- Ascendance + [77226] = 264, -- Mastery: Deep Healing + [98008] = 264, -- Spirit Link Totem + [108280] = 264, -- Healing Tide Totem + [77472] = 264, -- Healing Wave + [86100] = 264, -- Mail Specialization + [51564] = 264, -- Tidal Waves + [1064] = 264, -- Chain Heal + [16196] = 264, -- Resurgence + [974] = 264, -- Earth Shield + [52127] = 264, -- Water Shield + [77130] = 264, -- Purify Spirit + [55453] = 264, -- Telluric Currents + [95862] = 264, -- Meditation + [16213] = 264, -- Restorative Waves + [61295] = 264, -- Riptide + [112858] = 264, -- Spiritual Insight + + -- Affliction Warlock: + [152109] = 265, -- Soulburn: Haunt + [165367] = 265, -- Eradication + [113860] = 265, -- Dark Soul: Misery + [77215] = 265, -- Mastery: Potent Afflictions + [86121] = 265, -- Soul Swap + [48181] = 265, -- Haunt + [980] = 265, -- Agony + [103103] = 265, -- Drain Soul + [27243] = 265, -- Seed of Corruption + [117198] = 265, -- Soul Shards + [74434] = 265, -- Soulburn + [108558] = 265, -- Nightfall + [30108] = 265, -- Unstable Affliction + + -- Demonology Warlock: + [157695] = 266, -- Demonbolt + [165392] = 266, -- Demonic Tactics + [113861] = 266, -- Dark Soul: Knowledge + [77219] = 266, -- Mastery: Master Demonologist + [171975] = 266, -- Grimoire of Synergy + [30146] = 266, -- Summon Felguard + [114592] = 266, -- Wild Imps + [1949] = 266, -- Hellfire + [105174] = 266, -- Hand of Gul'dan + [6353] = 266, -- Soul Fire + [109151] = 266, -- Demonic Leap + [108869] = 266, -- Decimation + [104315] = 266, -- Demonic Fury + [124913] = 266, -- Doom + [103958] = 266, -- Metamorphosis + [122351] = 266, -- Molten Core + + -- Destruction Warlock: + [157696] = 267, -- Charred Remains + [165363] = 267, -- Devastation + [113858] = 267, -- Dark Soul: Instability + [77220] = 267, -- Mastery: Emberstorm + [120451] = 267, -- Flames of Xoroth + [117896] = 267, -- Backdraft + [109784] = 267, -- Aftermath + [108683] = 267, -- Fire and Brimstone + [17877] = 267, -- Shadowburn + [80240] = 267, -- Havoc + [5740] = 267, -- Rain of Fire + [114635] = 267, -- Ember Tap + [174848] = 267, -- Searing Flames + [348] = 267, -- Immolate + [108647] = 267, -- Burning Embers + [116858] = 267, -- Chaos Bolt + [111546] = 267, -- Chaotic Energy + [17962] = 267, -- Conflagrate + [29722] = 267, -- Incinerate + + -- Arms Warrior: + [165365] = 71, -- Weapon Mastery + [167105] = 71, -- Colossus Smash + [12328] = 71, -- Sweeping Strikes + [86101] = 71, -- Plate Specialization + [1464] = 71, -- Slam + [56636] = 71, -- Taste for Blood + [12294] = 71, -- Mortal Strike + [12712] = 71, -- Seasoned Soldier + [772] = 71, -- Rend + [174737] = 71, -- Enhanced Rend + + -- Fury Warrior: + [165383] = 72, -- Cruelty + [12950] = 72, -- Meat Cleaver + [46915] = 72, -- Bloodsurge + [86110] = 72, -- Plate Specialization + [169679] = 72, -- Furious Strikes + [169683] = 72, -- Unquenchable Thirst + [81099] = 72, -- Single-Minded Fury + [85288] = 72, -- Raging Blow + [12323] = 72, -- Piercing Howl + [100130] = 72, -- Wild Strike + [23881] = 72, -- Bloodthirst + [23588] = 72, -- Crazed Berserker + [46917] = 72, -- Titan's Grip + [5308] = 72, -- Execute + + -- Protection Warrior: + [152276] = 73, -- Gladiator's Resolve + [159362] = 73, -- Blood Craze + [165393] = 73, -- Shield Mastery + [114192] = 73, -- Mocking Banner + [76857] = 73, -- Mastery: Critical Block + [161798] = 73, -- Riposte + [84608] = 73, -- Bastion of Defense + [1160] = 73, -- Demoralizing Shout + [86535] = 73, -- Plate Specialization + [871] = 73, -- Shield Wall + [169680] = 73, -- Heavy Repercussions + [169685] = 73, -- Unyielding Strikes + [12975] = 73, -- Last Stand + [6572] = 73, -- Revenge + [20243] = 73, -- Devastate + [2565] = 73, -- Shield Block + [161608] = 73, -- Bladed Armor + [23922] = 73, -- Shield Slam + [46953] = 73, -- Sword and Board + [122509] = 73, -- Ultimatum + [29144] = 73, -- Unwavering Sentinel + [157497] = 73, -- Improved Block + } _detalhes.ClassSpellList = { diff --git a/gumps/fw_mods.lua b/gumps/fw_mods.lua index 6cefb3a8..23e096c3 100644 --- a/gumps/fw_mods.lua +++ b/gumps/fw_mods.lua @@ -36,7 +36,7 @@ function gump:NewLabel2 (parent, container, member, text, font, size, color) return newFontString end -function gump:NewDetailsButton (parent, container, instancia, func, param1, param2, w, h, pic_up, pic_down, pic_disabled, pic_highlight, options, FrameName) +function gump:NewDetailsButton (parent, container, instancia, func, param1, param2, w, h, pic_up, pic_down, pic_disabled, pic_highlight, options, FrameName, inherits, ischeck) if (not parent) then return nil @@ -46,7 +46,13 @@ function gump:NewDetailsButton (parent, container, instancia, func, param1, para h = h or 16 options = options or {} - local new_button = CreateFrame ("Button", FrameName, parent) + local new_button + if (ischeck) then + new_button = CreateFrame ("CheckButton", FrameName, parent, inherits) + else + new_button = CreateFrame ("Button", FrameName, parent) + end + new_button:SetWidth (w) new_button:SetHeight (h) diff --git a/gumps/janela_custom.lua b/gumps/janela_custom.lua index c99d457e..a45b08b7 100644 --- a/gumps/janela_custom.lua +++ b/gumps/janela_custom.lua @@ -998,6 +998,7 @@ local pickicon_callback = function (texture) box0.icontexture:SetTexture (texture) + end local pickicon = function() gump:IconPick (pickicon_callback, true) diff --git a/gumps/janela_info.lua b/gumps/janela_info.lua index e390addf..2ef53e08 100644 --- a/gumps/janela_info.lua +++ b/gumps/janela_info.lua @@ -3033,6 +3033,11 @@ function _detalhes.janela_info:monta_relatorio (botao) local amt = _detalhes.report_lines + if (not player) then + _detalhes:Msg ("Player not found.") + return + end + local report_lines if (botao == 1) then --> botão da esquerda @@ -3040,7 +3045,10 @@ function _detalhes.janela_info:monta_relatorio (botao) for index, barra in _ipairs (info.barras1) do if (barra:IsShown()) then local spellid = barra.show - if (spellid > 10) then + if (atributo == 1 and sub_atributo == 4) then --> friendly fire + report_lines [#report_lines+1] = barra.texto_esquerdo:GetText() .. ": " .. barra.texto_direita:GetText() + + elseif (spellid > 10) then local link = GetSpellLink (spellid) report_lines [#report_lines+1] = index .. ". " .. link .. ": " .. barra.texto_direita:GetText() else diff --git a/gumps/janela_options.lua b/gumps/janela_options.lua index cf5d8f1b..069e3e26 100644 --- a/gumps/janela_options.lua +++ b/gumps/janela_options.lua @@ -1952,9 +1952,6 @@ function window:CreateFrame18() --> auto current segment g:NewSwitch (frame18, _, "$parentAutoCurrentSlider", "autoCurrentSlider", 60, 20, _, _, instance.auto_current) - - -- Auto Current Segment - g:NewLabel (frame18, _, "$parentAutoCurrentLabel", "autoCurrentLabel", Loc ["STRING_OPTIONS_INSTANCE_CURRENT"], "GameFontHighlightLeft") frame18.autoCurrentSlider:SetPoint ("left", frame18.autoCurrentLabel, "right", 2) @@ -1965,72 +1962,7 @@ function window:CreateFrame18() end window:CreateLineBackground2 (frame18, "autoCurrentSlider", "autoCurrentLabel", Loc ["STRING_OPTIONS_INSTANCE_CURRENT_DESC"]) - - --> show total bar - - g:NewLabel (frame18, _, "$parentTotalBarLabel", "totalBarLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR"], "GameFontHighlightLeft") - g:NewSwitch (frame18, _, "$parentTotalBarSlider", "totalBarSlider", 60, 20, _, _, instance.total_bar.enabled) - frame18.totalBarSlider:SetPoint ("left", frame18.totalBarLabel, "right", 2) - frame18.totalBarSlider.OnSwitch = function (self, instance, value) - instance.total_bar.enabled = value - instance:InstanceReset() - - _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) - end - - window:CreateLineBackground2 (frame18, "totalBarSlider", "totalBarLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_DESC"]) - - --> total bar color - local totalbarcolor_callback = function (button, r, g, b, a) - _G.DetailsOptionsWindow.instance.total_bar.color[1] = r - _G.DetailsOptionsWindow.instance.total_bar.color[2] = g - _G.DetailsOptionsWindow.instance.total_bar.color[3] = b - _G.DetailsOptionsWindow.instance:InstanceReset() - - _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) - end - g:NewColorPickButton (frame18, "$parentTotalBarColorPick", "totalBarColorPick", totalbarcolor_callback) - g:NewLabel (frame18, _, "$parentTotalBarColorPickLabel", "totalBarPickColorLabel", Loc ["STRING_OPTIONS_COLOR"], "GameFontHighlightLeft") - frame18.totalBarColorPick:SetPoint ("left", frame18.totalBarPickColorLabel, "right", 2, 0) - - window:CreateLineBackground2 (frame18, "totalBarColorPick", "totalBarPickColorLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"]) - - --> total bar only in group - g:NewLabel (frame18, _, "$parentTotalBarOnlyInGroupLabel", "totalBarOnlyInGroupLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"], "GameFontHighlightLeft") - g:NewSwitch (frame18, _, "$parentTotalBarOnlyInGroupSlider", "totalBarOnlyInGroupSlider", 60, 20, _, _, instance.total_bar.only_in_group) - - frame18.totalBarOnlyInGroupSlider:SetPoint ("left", frame18.totalBarOnlyInGroupLabel, "right", 2) - frame18.totalBarOnlyInGroupSlider.OnSwitch = function (self, instance, value) - instance.total_bar.only_in_group = value - instance:InstanceReset() - - _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) - end - - window:CreateLineBackground2 (frame18, "totalBarOnlyInGroupSlider", "totalBarOnlyInGroupLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"]) - - --> total bar icon - local totalbar_pickicon_callback = function (texture) - instance.total_bar.icon = texture - frame18.totalBarIconTexture:SetTexture (texture) - instance:InstanceReset() - - _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) - end - local totalbar_pickicon = function() - g:IconPick (totalbar_pickicon_callback, true) - _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) - end - g:NewLabel (frame18, _, "$parentTotalBarIconLabel", "totalBarIconLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_ICON"], "GameFontHighlightLeft") - g:NewImage (frame18, nil, 20, 20, nil, nil, "totalBarIconTexture", "$parentTotalBarIconTexture") - g:NewButton (frame18, _, "$parentTotalBarIconButton", "totalBarIconButton", 20, 20, totalbar_pickicon) - frame18.totalBarIconButton:InstallCustomTexture (nil, nil, nil, true) - frame18.totalBarIconButton:SetPoint ("left", frame18.totalBarIconLabel, "right", 2, 0) - frame18.totalBarIconTexture:SetPoint ("left", frame18.totalBarIconLabel, "right", 2, 0) - - window:CreateLineBackground2 (frame18, "totalBarIconButton", "totalBarIconLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"]) - --> instances g:NewLabel (frame18, _, "$parentDeleteInstanceLabel", "deleteInstanceLabel", Loc ["STRING_OPTIONS_INSTANCE_DELETE"], "GameFontHighlightLeft") @@ -2127,6 +2059,32 @@ function window:CreateFrame18() window:CreateLineBackground2 (frame18, "MenuTextSizeSlider", "MenuTextSizeLabel", Loc ["STRING_OPTIONS_MENU_FONT_SIZE_DESC"]) + --> menu text face + local onSelectFont = function (_, _, fontName) + _detalhes.font_faces.menus = fontName + end + + local buildFontMenu = function() + local fontObjects = SharedMedia:HashTable ("font") + local fontTable = {} + for name, fontPath in pairs (fontObjects) do + fontTable[#fontTable+1] = {value = name, label = name, icon = font_select_icon, texcoord = font_select_texcoord, onclick = onSelectFont, font = fontPath, descfont = name, desc = Loc ["STRING_MUSIC_DETAILS_ROBERTOCARLOS"]} + end + table.sort (fontTable, function (t1, t2) return t1.label < t2.label end) + return fontTable + end + + local d = g:NewDropDown (frame18, _, "$parentFontDropdown", "fontDropdown", DROPDOWN_WIDTH, 20, buildFontMenu, nil) + d.onenter_backdrop = dropdown_backdrop_onenter + d.onleave_backdrop = dropdown_backdrop_onleave + d:SetBackdrop (dropdown_backdrop) + d:SetBackdropColor (unpack (dropdown_backdrop_onleave)) + + g:NewLabel (frame18, _, "$parentFontLabel", "fontLabel", Loc ["STRING_OPTIONS_MENU_FONT_FACE"], "GameFontHighlightLeft") + frame18.fontDropdown:SetPoint ("left", frame18.fontLabel, "right", 2) + + window:CreateLineBackground2 (frame18, "fontDropdown", "fontLabel", Loc ["STRING_OPTIONS_MENU_FONT_FACE_DESC"]) + --> disable groups g:NewLabel (frame18, _, "$parentDisableGroupsLabel", "DisableGroupsLabel", Loc ["STRING_OPTIONS_DISABLE_GROUPS"], "GameFontHighlightLeft") g:NewSwitch (frame18, _, "$parentDisableGroupsSlider", "DisableGroupsSlider", 60, 20, _, _, _detalhes.disable_window_groups) @@ -2223,7 +2181,6 @@ function window:CreateFrame18() g:NewLabel (frame18, _, "$parentInstancesMiscAnchor", "instancesMiscLabel", Loc ["STRING_OPTIONS_INSTANCES"], "GameFontNormal") g:NewLabel (frame18, _, "$parentSwitchesAnchor", "switchesAnchorLabel", Loc ["STRING_OPTIONS_SWITCH_ANCHOR"], "GameFontNormal") - g:NewLabel (frame18, _, "$parentTotalBarAnchor", "totalBarAnchorLabel", Loc ["STRING_OPTIONS_TOTALBAR_ANCHOR"], "GameFontNormal") g:NewLabel (frame18, _, "$parentReportAnchor", "reportAnchorLabel", Loc ["STRING_OPTIONS_REPORT_ANCHOR"], "GameFontNormal") @@ -2260,14 +2217,11 @@ function window:CreateFrame18() {"instancesMiscLabel", 1, true}, {"deleteInstanceLabel", 2}, {"MenuTextSizeLabel", 3}, - {"DisableGroupsLabel", 4}, - {"DisableResetLabel", 5}, - {"scrollLabel", 6}, - {"totalBarAnchorLabel", 7, true}, - {"totalBarIconLabel", 8}, - {"totalBarPickColorLabel", 9}, - {"totalBarLabel", 10}, - {"totalBarOnlyInGroupLabel", 11}, + {"fontLabel", 4}, + {"DisableGroupsLabel", 5}, + {"DisableResetLabel", 6}, + {"scrollLabel", 7}, + } window:arrange_menu (frame18, right_side, window.right_start_at, -90) @@ -5017,6 +4971,17 @@ function window:CreateFrame4() local OnSelectIconFile = function (_, _, iconpath) _G.DetailsOptionsWindow.instance:SetBarSettings (nil, nil, nil, nil, nil, nil, nil, nil, iconpath) frame4.iconFileEntry:SetText (iconpath) + + if (_G.DetailsOptionsWindow.instance.row_info.use_spec_icons) then + _G.DetailsOptionsWindow.instance:SetBarSpecIconSettings (false) + end + + _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) + end + + local OnSelectIconFileSpec = function (_, _, iconpath) + _G.DetailsOptionsWindow.instance:SetBarSpecIconSettings (true, iconpath, true) + frame4.iconFileEntry:SetText (iconpath) _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) end @@ -5026,6 +4991,8 @@ function window:CreateFrame4() local list = { {value = [[]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE1"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize, iconcolor = {1, 1, 1, .3}}, {value = [[Interface\AddOns\Details\images\classes_small]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE2"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\spec_icons_normal]], label = "Specialization", onclick = OnSelectIconFileSpec, icon = [[Interface\AddOns\Details\images\icons]], texcoord = {2/512, 32/512, 480/512, 510/512}, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\spec_icons_normal_alpha]], label = "Specialization Alpha", onclick = OnSelectIconFileSpec, icon = [[Interface\AddOns\Details\images\icons]], texcoord = {2/512, 32/512, 480/512, 510/512}, iconsize = iconsize}, {value = [[Interface\AddOns\Details\images\classes_small_bw]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE3"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, {value = [[Interface\AddOns\Details\images\classes_small_alpha]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE4"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, {value = [[Interface\AddOns\Details\images\classes_small_alpha_bw]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE6"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, @@ -5035,7 +5002,14 @@ function window:CreateFrame4() return list end - local d = g:NewDropDown (frame4, _, "$parentIconSelectDropdown", "IconSelectDropdown", DROPDOWN_WIDTH, 20, BuiltIconList, instance.row_info.icon_file) + local default + if (instance.row_info.use_spec_icons) then + default = _G.DetailsOptionsWindow.instance.row_info.spec_file + else + default = instance.row_info.icon_file + end + + local d = g:NewDropDown (frame4, _, "$parentIconSelectDropdown", "IconSelectDropdown", DROPDOWN_WIDTH, 20, BuiltIconList, default) d.onenter_backdrop = dropdown_backdrop_onenter d.onleave_backdrop = dropdown_backdrop_onleave d:SetBackdrop (dropdown_backdrop) @@ -5050,16 +5024,33 @@ function window:CreateFrame4() frame4.iconFileEntry.tooltip = "- Press escape to restore default value.\n- Leave empty to hide icons." frame4.iconFileEntry:SetHook ("OnEnterPressed", function() - _G.DetailsOptionsWindow.instance:SetBarSettings (nil, nil, nil, nil, nil, nil, nil, nil, frame4.iconFileEntry.text) + + local instance = _G.DetailsOptionsWindow.instance + + local text = frame4.iconFileEntry.text + if (text:find ("spec_")) then + instance:SetBarSpecIconSettings (true, text, true) + else + if (instance.row_info.use_spec_icons) then + instance:SetBarSpecIconSettings (false) + end + instance:SetBarSettings (nil, nil, nil, nil, nil, nil, nil, nil, text) + end + d:Select (false) d:Select (frame4.iconFileEntry.text) _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) end) frame4.iconFileEntry:SetHook ("OnEscapePressed", function() - frame4.iconFileEntry:SetText ([[Interface\AddOns\Details\images\classes_small]]) + local instance = _G.DetailsOptionsWindow.instance + + if (instance.row_info.use_spec_icons) then + frame4.iconFileEntry:SetText (instance.row_info.spec_file) + else + frame4.iconFileEntry:SetText (instance.row_info.icon_file) + end + frame4.iconFileEntry:ClearFocus() - _G.DetailsOptionsWindow.instance:SetBarSettings (nil, nil, nil, nil, nil, nil, nil, nil, [[Interface\AddOns\Details\images\classes_small]]) - _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) return true end) @@ -6544,6 +6535,74 @@ function window:CreateFrame8() end window:CreateLineBackground2 (frame8, "ShowMeSlider", "ShowMeLabel", Loc ["STRING_OPTIONS_BAR_FOLLOWING_DESC"]) + --> show total bar + + g:NewLabel (frame8, _, "$parentTotalBarAnchor", "totalBarAnchorLabel", Loc ["STRING_OPTIONS_TOTALBAR_ANCHOR"], "GameFontNormal") + + g:NewLabel (frame8, _, "$parentTotalBarLabel", "totalBarLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR"], "GameFontHighlightLeft") + g:NewSwitch (frame8, _, "$parentTotalBarSlider", "totalBarSlider", 60, 20, _, _, instance.total_bar.enabled) + + frame8.totalBarSlider:SetPoint ("left", frame8.totalBarLabel, "right", 2) + frame8.totalBarSlider.OnSwitch = function (self, instance, value) + instance.total_bar.enabled = value + instance:InstanceReset() + + _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) + end + + window:CreateLineBackground2 (frame8, "totalBarSlider", "totalBarLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_DESC"]) + + --> total bar color + local totalbarcolor_callback = function (button, r, g, b, a) + _G.DetailsOptionsWindow.instance.total_bar.color[1] = r + _G.DetailsOptionsWindow.instance.total_bar.color[2] = g + _G.DetailsOptionsWindow.instance.total_bar.color[3] = b + _G.DetailsOptionsWindow.instance:InstanceReset() + + _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) + end + g:NewColorPickButton (frame8, "$parentTotalBarColorPick", "totalBarColorPick", totalbarcolor_callback) + g:NewLabel (frame8, _, "$parentTotalBarColorPickLabel", "totalBarPickColorLabel", Loc ["STRING_OPTIONS_COLOR"], "GameFontHighlightLeft") + frame8.totalBarColorPick:SetPoint ("left", frame8.totalBarPickColorLabel, "right", 2, 0) + + window:CreateLineBackground2 (frame8, "totalBarColorPick", "totalBarPickColorLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_COLOR_DESC"]) + + --> total bar only in group + g:NewLabel (frame8, _, "$parentTotalBarOnlyInGroupLabel", "totalBarOnlyInGroupLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP"], "GameFontHighlightLeft") + g:NewSwitch (frame8, _, "$parentTotalBarOnlyInGroupSlider", "totalBarOnlyInGroupSlider", 60, 20, _, _, instance.total_bar.only_in_group) + + frame8.totalBarOnlyInGroupSlider:SetPoint ("left", frame8.totalBarOnlyInGroupLabel, "right", 2) + frame8.totalBarOnlyInGroupSlider.OnSwitch = function (self, instance, value) + instance.total_bar.only_in_group = value + instance:InstanceReset() + + _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) + end + + window:CreateLineBackground2 (frame8, "totalBarOnlyInGroupSlider", "totalBarOnlyInGroupLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_INGROUP_DESC"]) + + --> total bar icon + local totalbar_pickicon_callback = function (texture) + instance.total_bar.icon = texture + frame8.totalBarIconTexture:SetTexture (texture) + instance:InstanceReset() + + _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) + end + local totalbar_pickicon = function() + g:IconPick (totalbar_pickicon_callback, true) + _detalhes:SendOptionsModifiedEvent (DetailsOptionsWindow.instance) + end + g:NewLabel (frame8, _, "$parentTotalBarIconLabel", "totalBarIconLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_ICON"], "GameFontHighlightLeft") + g:NewImage (frame8, nil, 20, 20, nil, nil, "totalBarIconTexture", "$parentTotalBarIconTexture") + g:NewButton (frame8, _, "$parentTotalBarIconButton", "totalBarIconButton", 20, 20, totalbar_pickicon) + frame8.totalBarIconButton:InstallCustomTexture (nil, nil, nil, true) + frame8.totalBarIconButton:SetPoint ("left", frame8.totalBarIconLabel, "right", 2, 0) + frame8.totalBarIconTexture:SetPoint ("left", frame8.totalBarIconLabel, "right", 2, 0) + + window:CreateLineBackground2 (frame8, "totalBarIconButton", "totalBarIconLabel", Loc ["STRING_OPTIONS_SHOW_TOTALBAR_ICON_DESC"]) + + --> anchors local x = window.left_start_at @@ -6561,6 +6620,12 @@ function window:CreateFrame8() {"ModelLowerEnabledLabel", 6}, {"ModelLowerAlphaLabel", 7}, {"ModelLowerSelect", 8}, + + {"totalBarAnchorLabel", 9, true}, + {"totalBarIconLabel", 10}, + {"totalBarPickColorLabel", 11}, + {"totalBarLabel", 12}, + {"totalBarOnlyInGroupLabel", 13}, } window:arrange_menu (frame8, left_side, x, -90) @@ -6759,9 +6824,6 @@ function window:CreateFrame9() {value = [[Interface\Glues\COMMON\GLUES-WOW-BCLOGO]], label = "Burning Cruzade Logo", onclick = onSelectSecTexture, icon = [[Interface\Glues\COMMON\GLUES-WOW-BCLOGO]], texcoord = nil}, {value = [[Interface\Glues\COMMON\GLUES-WOW-CCLOGO]], label = "Cataclysm Logo", onclick = onSelectSecTexture, icon = [[Interface\Glues\COMMON\GLUES-WOW-CCLOGO]], texcoord = nil}, {value = [[Interface\Glues\COMMON\Glues-WOW-WoltkLogo]], label = "WotLK Logo", onclick = onSelectSecTexture, icon = [[Interface\Glues\COMMON\Glues-WOW-WoltkLogo]], texcoord = nil}, - - - --{value = [[]], label = "", onclick = onSelectSecTexture, icon = [[]], texcoord = nil}, }, ["CREDITS"] = { @@ -7284,7 +7346,7 @@ function window:CreateFrame10() titulo_performance_general_desc.width = 320 --------------- Memory - local s = g:NewSlider (frame10, _, "$parentSliderSegmentsSave", "segmentsSliderToSave", SLIDER_WIDTH, 20, 1, 5, 1, _detalhes.segments_amount_to_save) + local s = g:NewSlider (frame10, _, "$parentSliderSegmentsSave", "segmentsSliderToSave", SLIDER_WIDTH, 20, 1, 25, 1, _detalhes.segments_amount_to_save) s:SetBackdrop (slider_backdrop) s:SetBackdropColor (unpack (slider_backdrop_color)) s:SetThumbSize (50) @@ -8711,9 +8773,15 @@ end --> if not window _G.DetailsOptionsWindow4BackdropSizeHeight.MyObject:SetValue (editing_instance.row_info.backdrop.size) _G.DetailsOptionsWindow4BackdropColorPick.MyObject:SetColor (unpack (editing_instance.row_info.backdrop.color)) - _G.DetailsOptionsWindow4IconFileEntry:SetText (editing_instance.row_info.icon_file) _G.DetailsOptionsWindow4IconSelectDropdown.MyObject:Select (false) - _G.DetailsOptionsWindow4IconSelectDropdown.MyObject:Select (editing_instance.row_info.icon_file) + local default + if (editing_instance.row_info.use_spec_icons) then + default = editing_instance.row_info.spec_file + else + default = editing_instance.row_info.icon_file + end + _G.DetailsOptionsWindow4IconSelectDropdown.MyObject:Select (default) + _G.DetailsOptionsWindow4IconFileEntry:SetText (default) --> window 5 @@ -8815,6 +8883,15 @@ end --> if not window _G.DetailsOptionsWindow8ShowMeSlider.MyObject:SetFixedParameter (editing_instance) _G.DetailsOptionsWindow8ShowMeSlider.MyObject:SetValue (editing_instance.following.enabled) + _G.DetailsOptionsWindow8TotalBarSlider.MyObject:SetFixedParameter (editing_instance) + _G.DetailsOptionsWindow8TotalBarSlider.MyObject:SetValue (editing_instance.total_bar.enabled) + + _G.DetailsOptionsWindow8TotalBarColorPick.MyObject:SetColor (unpack (editing_instance.total_bar.color)) + + _G.DetailsOptionsWindow8TotalBarOnlyInGroupSlider.MyObject:SetFixedParameter (editing_instance) + _G.DetailsOptionsWindow8TotalBarOnlyInGroupSlider.MyObject:SetValue (editing_instance.total_bar.only_in_group) + _G.DetailsOptionsWindow8TotalBarIconTexture.MyObject:SetTexture (editing_instance.total_bar.icon) + --> window 10 _G.DetailsOptionsWindow10SliderMemory.MyObject:SetValue (_detalhes.memory_threshold) _G.DetailsOptionsWindow10PanicModeSlider.MyObject:SetValue (_detalhes.segments_panic_mode) @@ -9018,17 +9095,10 @@ end --> if not window _G.DetailsOptionsWindow18AutoCurrentSlider.MyObject:SetFixedParameter (editing_instance) _G.DetailsOptionsWindow18AutoCurrentSlider.MyObject:SetValue (editing_instance.auto_current) - _G.DetailsOptionsWindow18TotalBarSlider.MyObject:SetFixedParameter (editing_instance) - _G.DetailsOptionsWindow18TotalBarSlider.MyObject:SetValue (editing_instance.total_bar.enabled) - - _G.DetailsOptionsWindow18TotalBarColorPick.MyObject:SetColor (unpack (editing_instance.total_bar.color)) - - _G.DetailsOptionsWindow18TotalBarOnlyInGroupSlider.MyObject:SetFixedParameter (editing_instance) - _G.DetailsOptionsWindow18TotalBarOnlyInGroupSlider.MyObject:SetValue (editing_instance.total_bar.only_in_group) - _G.DetailsOptionsWindow18TotalBarIconTexture.MyObject:SetTexture (editing_instance.total_bar.icon) - _G.DetailsOptionsWindow18MenuTextSizeSlider.MyObject:SetValue (_detalhes.font_sizes.menus) + _G.DetailsOptionsWindow18FontDropdown.MyObject:Select (_detalhes.font_faces.menus) + --> window 19 _G.DetailsOptionsWindow19MinimapSlider.MyObject:SetValue (not _detalhes.minimap.hide) _G.DetailsOptionsWindow19MinimapActionDropdown.MyObject:Select (_detalhes.minimap.onclick_what_todo) diff --git a/gumps/janela_principal.lua b/gumps/janela_principal.lua index b2a5b384..7b97fe8f 100644 --- a/gumps/janela_principal.lua +++ b/gumps/janela_principal.lua @@ -1556,6 +1556,7 @@ local resize_scripts_onenter = function (self) GameCooltip:SetType ("tooltip") GameCooltip:AddFromTable (resizeTooltip) GameCooltip:SetOption ("TextSize", _detalhes.font_sizes.menus) + GameCooltip:SetOption ("TextFont", _detalhes.font_faces.menus) GameCooltip:SetOption ("NoLastSelectedBar", true) GameCooltip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], menu_wallpaper_tex, menu_wallpaper_color, true) GameCooltip:SetBackdrop (1, _detalhes.tooltip_backdrop, nil, _detalhes.tooltip_border_color) @@ -1607,6 +1608,7 @@ local lockFunctionOnEnter = function (self) GameCooltip:AddFromTable (lockButtonTooltip) GameCooltip:SetOption ("NoLastSelectedBar", true) GameCooltip:SetOption ("TextSize", _detalhes.font_sizes.menus) + GameCooltip:SetOption ("TextFont", _detalhes.font_faces.menus) GameCooltip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], menu_wallpaper_tex, menu_wallpaper_color, true) GameCooltip:SetBackdrop (1, _detalhes.tooltip_backdrop, nil, _detalhes.tooltip_border_color) GameCooltip:SetOwner (self) @@ -1691,6 +1693,7 @@ local unSnapButtonOnEnter = function (self) GameCooltip:Reset() GameCooltip:AddFromTable (unSnapButtonTooltip) GameCooltip:SetOption ("TextSize", _detalhes.font_sizes.menus) + GameCooltip:SetOption ("TextFont", _detalhes.font_faces.menus) GameCooltip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], menu_wallpaper_tex, menu_wallpaper_color, true) GameCooltip:SetBackdrop (1, _detalhes.tooltip_backdrop, nil, _detalhes.tooltip_border_color) GameCooltip:ShowCooltip (self, "tooltip") @@ -2435,13 +2438,13 @@ function _detalhes:InstanceAlert (msg, icon, time, clickfunc) if (icon) then if (type (icon) == "table") then - local texture, w, h, animate, l, r, t, b, r, g, b, a = unpack (icon) + local texture, w, h, animate, left, right, top, bottom, r, g, b, a = unpack (icon) self.alert.icon:SetTexture (texture) self.alert.icon:SetWidth (w or 14) self.alert.icon:SetHeight (h or 14) - if (l and r and t and b) then - self.alert.icon:SetTexCoord (l, r, t, b) + if (left and right and top and bottom) then + self.alert.icon:SetTexCoord (left, right, top, bottom) end if (animate) then self.alert.rotate:Play() @@ -3475,6 +3478,44 @@ function _detalhes:SetBarModel (upper_enabled, upper_model, upper_alpha, lower_e _detalhes:AtualizaGumpPrincipal (-1, true) end +-- ~spec ~icons +function _detalhes:SetBarSpecIconSettings (enabled, iconfile, fulltrack) + + if (type (enabled) ~= "boolean") then + enabled = self.row_info.use_spec_icons + end + if (not iconfile) then + iconfile = self.row_info.spec_file + end + + self.row_info.use_spec_icons = enabled + self.row_info.spec_file = iconfile + + if (enabled) then + if (not _detalhes.track_specs) then + _detalhes.track_specs = true + _detalhes:TrackSpecsNow (fulltrack) + end + else + local have_enabled + for _, instance in _ipairs (_detalhes.tabela_instancias) do + if (instance:IsEnabled() and instance.row_info.use_spec_icons) then + have_enabled = true + break + end + end + if (not have_enabled) then + _detalhes.track_specs = false + _detalhes:ResetSpecCache (true) --> forçar + end + end + + self:InstanceReset() + self:InstanceRefreshRows() + self:ReajustaGump() + +end + function _detalhes:SetBarSettings (height, texture, colorclass, fixedcolor, backgroundtexture, backgroundcolorclass, backgroundfixedcolor, alpha, iconfile, barstart, spacement) --> bar start @@ -3691,6 +3732,10 @@ function _detalhes:InstanceRefreshRows (instancia) local icon_texture = self.row_info.icon_file local start_after_icon = self.row_info.start_after_icon + if (self.row_info.use_spec_icons) then + icon_texture = self.row_info.spec_file + end + --custom right text local custom_right_text_enabled = self.row_info.textR_enable_custom_text local custom_right_text = self.row_info.textR_custom_text @@ -4648,6 +4693,7 @@ local build_mode_list = function (self, elapsed) CoolTip:SetColor ("main", "transparent") CoolTip:SetOption ("TextSize", _detalhes.font_sizes.menus) + CoolTip:SetOption ("TextFont", _detalhes.font_faces.menus) CoolTip:SetOption ("ButtonHeightModSub", -2) CoolTip:SetOption ("ButtonHeightMod", -5) @@ -4804,14 +4850,15 @@ local build_mode_list = function (self, elapsed) end CoolTip:SetOption ("TextSize", _detalhes.font_sizes.menus) + CoolTip:SetOption ("TextFont", _detalhes.font_faces.menus) end end if (ClosedInstances > 0 or _detalhes:GetNumInstancesAmount() < _detalhes:GetMaxInstancesAmount()) then GameCooltip:AddLine ("$div", nil, 2, nil, -5, -11) end - - GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE"], nil, 2, "white", nil, _detalhes.font_sizes.menus, font) + + GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE"], nil, 2, "white", nil, _detalhes.font_sizes.menus, _detalhes.font_faces.menus) GameCooltip:AddIcon ([[Interface\Buttons\UI-Panel-MinimizeButton-Up]], 2, 1, 14, 14, 0.2, 0.8, 0.2, 0.8) GameCooltip:AddMenu (2, _detalhes.close_instancia_func, instancia.baseframe.cabecalho.fechar) @@ -5145,6 +5192,8 @@ local build_segment_list = function (self, elapsed) _detalhes:SetMenuOwner (self, instancia) CoolTip:SetOption ("TextSize", _detalhes.font_sizes.menus) + CoolTip:SetOption ("TextFont", _detalhes.font_faces.menus) + CoolTip:SetOption ("SubMenuIsTooltip", true) CoolTip:SetOption ("ButtonHeightMod", -4) @@ -5327,6 +5376,7 @@ function _detalhes:ChangeSkin (skin_name) ----------> call widgets handlers self:SetBarSettings (self.row_info.height) self:SetBarBackdropSettings() + self:SetBarSpecIconSettings() --> update toolbar self:ToolbarSide() @@ -6440,13 +6490,11 @@ end GameCooltip:SetOption ("ButtonsYMod", -7) GameCooltip:SetOption ("HeighMod", 8) - local font = SharedMedia:Fetch ("font", "Friz Quadrata TT") - - GameCooltip:AddLine (Loc ["STRING_ERASE_DATA"], nil, 1, "white", nil, _detalhes.font_sizes.menus, font) + GameCooltip:AddLine (Loc ["STRING_ERASE_DATA"], nil, 1, "white", nil, _detalhes.font_sizes.menus, _detalhes.font_faces.menus) GameCooltip:AddIcon ([[Interface\Buttons\UI-StopButton]], 1, 1, 14, 14, 0, 1, 0, 1, "red") GameCooltip:AddMenu (1, _detalhes.tabela_historico.resetar) - GameCooltip:AddLine (Loc ["STRING_ERASE_DATA_OVERALL"], nil, 1, "white", nil, _detalhes.font_sizes.menus, font) + GameCooltip:AddLine (Loc ["STRING_ERASE_DATA_OVERALL"], nil, 1, "white", nil, _detalhes.font_sizes.menus, _detalhes.font_faces.menus) GameCooltip:AddIcon ([[Interface\Buttons\UI-StopButton]], 1, 1, 14, 14, 0, 1, 0, 1, "orange") GameCooltip:AddMenu (1, _detalhes.tabela_historico.resetar_overall) @@ -6524,16 +6572,16 @@ end --GameCooltip:SetOption ("FixedHeight", 30) GameCooltip:SetOption ("HeighMod", 9) - + local font = SharedMedia:Fetch ("font", "Friz Quadrata TT") - GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE"], nil, 1, "white", nil, _detalhes.font_sizes.menus, font) + GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE"], nil, 1, "white", nil, _detalhes.font_sizes.menus, _detalhes.font_faces.menus) GameCooltip:AddIcon ([[Interface\Buttons\UI-Panel-MinimizeButton-Up]], 1, 1, 14, 14, 0.2, 0.8, 0.2, 0.8) GameCooltip:AddMenu (1, close_button_onclick, self) - GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE_DESC"], nil, 2, "white", nil, _detalhes.font_sizes.menus, font) + GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE_DESC"], nil, 2, "white", nil, _detalhes.font_sizes.menus, _detalhes.font_faces.menus) GameCooltip:AddIcon ([[Interface\CHATFRAME\UI-ChatIcon-Minimize-Up]], 2, 1, 18, 18) - GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE_DESC2"], nil, 2, "white", nil, _detalhes.font_sizes.menus, font) + GameCooltip:AddLine (Loc ["STRING_MENU_CLOSE_INSTANCE_DESC2"], nil, 2, "white", nil, _detalhes.font_sizes.menus, _detalhes.font_faces.menus) GameCooltip:AddIcon ([[Interface\PaperDollInfoFrame\UI-GearManager-LeaveItem-Transparent]], 2, 1, 18, 18) GameCooltip:SetWallpaper (1, [[Interface\SPELLBOOK\Spellbook-Page-1]], menu_wallpaper_tex, menu_wallpaper_color, true) @@ -7014,7 +7062,7 @@ function gump:CriaCabecalho (baseframe, instancia) GameCooltip:SetOption ("ButtonsYMod", -7) GameCooltip:SetOption ("HeighMod", 8) - GameCooltip:AddLine ("Report Results", nil, 1, "white", nil, _detalhes.font_sizes.menus, SharedMedia:Fetch ("font", "Friz Quadrata TT")) + GameCooltip:AddLine ("Report Results", nil, 1, "white", nil, _detalhes.font_sizes.menus, _detalhes.font_faces.menus) GameCooltip:AddIcon ([[Interface\Addons\Details\Images\report_button]], 1, 1, 12, 19) GameCooltip:AddMenu (1, _detalhes.Reportar, instancia, nil, "INSTANCE" .. instancia.meu_id) diff --git a/gumps/janela_report.lua b/gumps/janela_report.lua index 4da78bb1..9210f99b 100644 --- a/gumps/janela_report.lua +++ b/gumps/janela_report.lua @@ -3,6 +3,7 @@ local Loc = LibStub ("AceLocale-3.0"):GetLocale ( "Details" ) local _detalhes = _G._detalhes local gump = _detalhes.gump local _ + --lua locals local _cstr = tostring --> lua local local _math_ceil = math.ceil --> lua local @@ -17,18 +18,8 @@ local _IsInGuild = IsInGuild --> wow api locals local _GetChannelList = GetChannelList --> wow api locals local _UIParent = UIParent --> wow api locals ---> got weird errors with globals, not sure why -local _UIDropDownMenu_SetSelectedID = UIDropDownMenu_SetSelectedID --> wow api locals -local _UIDropDownMenu_CreateInfo = UIDropDownMenu_CreateInfo --> wow api locals -local _UIDropDownMenu_AddButton = UIDropDownMenu_AddButton --> wow api locals -local _UIDropDownMenu_Initialize = UIDropDownMenu_Initialize --> wow api locals -local _UIDropDownMenu_SetWidth = UIDropDownMenu_SetWidth --> wow api locals -local _UIDropDownMenu_SetButtonWidth = UIDropDownMenu_SetButtonWidth --> wow api locals -local _UIDropDownMenu_SetSelectedValue = UIDropDownMenu_SetSelectedValue --> wow api locals -local _UIDropDownMenu_JustifyText = UIDropDownMenu_JustifyText --> wow api locals local _UISpecialFrames = UISpecialFrames --> wow api locals - --> details API functions ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- function _detalhes:SendReportLines (lines) @@ -150,7 +141,7 @@ local _UISpecialFrames = UISpecialFrames --> wow api locals if (type (param2) == "string") then id = param2 end - + if (_detalhes.last_report_id and id and _detalhes.last_report_id == id) then _detalhes.last_report_id = nil _detalhes.janela_report.fechar:Click() @@ -257,18 +248,18 @@ BG Leader: 255 216 183 General/Trade: 255 189 192 --]] -local iconsize = {16, 16} + local iconsize = {16, 16} -local lista = { -{Loc ["STRING_REPORTFRAME_PARTY"], "PARTY", function() return GetNumSubgroupMembers() > 0 end, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.53125, 0.7265625, 0.078125, 0.40625}, color = {0.66, 0.65, 1}}}, -{Loc ["STRING_REPORTFRAME_RAID"], "RAID", _IsInRaid, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.53125, 0.7265625, 0.078125, 0.40625}, color = {1, 0.49, 0}}}, -{Loc ["STRING_REPORTFRAME_GUILD"], "GUILD", _IsInGuild, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.8046875, 0.96875, 0.125, 0.390625}, color = {0.25, 0.98, 0.25}}}, -{Loc ["STRING_REPORTFRAME_OFFICERS"], "OFFICER", _IsInGuild, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.8046875, 0.96875, 0.125, 0.390625}, color = {0.25, 0.74, 0.25}}}, -{Loc ["STRING_REPORTFRAME_WHISPER"], "WHISPER", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0546875, 0.1953125, 0.625, 0.890625}, color = {1, 0.49, 1}}}, -{Loc ["STRING_REPORTFRAME_WHISPERTARGET"], "WHISPER2", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0546875, 0.1953125, 0.625, 0.890625}, color = {1, 0.49, 1}}}, -{Loc ["STRING_REPORTFRAME_SAY"], "SAY", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0390625, 0.203125, 0.09375, 0.375}, color = {1, 1, 1}}}, -{Loc ["STRING_REPORTFRAME_COPY"], "COPY", nil, {iconsize = iconsize, icon = [[Interface\Buttons\UI-GuildButton-PublicNote-Disabled]], coords = {0, 1, 0, 1}, color = {1, 1, 1}}}, -} + local lista = { + {Loc ["STRING_REPORTFRAME_PARTY"], "PARTY", function() return GetNumSubgroupMembers() > 0 end, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.53125, 0.7265625, 0.078125, 0.40625}, color = {0.66, 0.65, 1}}}, + {Loc ["STRING_REPORTFRAME_RAID"], "RAID", _IsInRaid, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.53125, 0.7265625, 0.078125, 0.40625}, color = {1, 0.49, 0}}}, + {Loc ["STRING_REPORTFRAME_GUILD"], "GUILD", _IsInGuild, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.8046875, 0.96875, 0.125, 0.390625}, color = {0.25, 0.98, 0.25}}}, + {Loc ["STRING_REPORTFRAME_OFFICERS"], "OFFICER", _IsInGuild, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.8046875, 0.96875, 0.125, 0.390625}, color = {0.25, 0.74, 0.25}}}, + {Loc ["STRING_REPORTFRAME_WHISPER"], "WHISPER", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0546875, 0.1953125, 0.625, 0.890625}, color = {1, 0.49, 1}}}, + {Loc ["STRING_REPORTFRAME_WHISPERTARGET"], "WHISPER2", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0546875, 0.1953125, 0.625, 0.890625}, color = {1, 0.49, 1}}}, + {Loc ["STRING_REPORTFRAME_SAY"], "SAY", nil, {iconsize = iconsize, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], coords = {0.0390625, 0.203125, 0.09375, 0.375}, color = {1, 1, 1}}}, + {Loc ["STRING_REPORTFRAME_COPY"], "COPY", nil, {iconsize = iconsize, icon = [[Interface\Buttons\UI-GuildButton-PublicNote-Disabled]], coords = {0, 1, 0, 1}, color = {1, 1, 1}}}, + } local on_click = function (self, fixedParam, selectedOutput) _detalhes.report_where = selectedOutput @@ -286,10 +277,7 @@ local lista = { local channels = {_GetChannelList()} --> coloca o resultado em uma tabela .. {id1, canal1, id2, canal2} for i = 1, #channels, 2 do --> total de canais - output_array [#output_array + 1] = {iconsize = iconsize, value = "CHANNEL|"..channels [i+1], label = channels [i]..". "..channels [i+1], onclick = on_click, icon = [[Interface\FriendsFrame\UI-Toast-ToastIcons]], texcoord = {0.3046875, 0.4453125, 0.109375, 0.390625}, iconcolor = {149/255, 112/255, 112/255}} - - --lista [#lista+1] = {channels [i]..". "..channels [i+1], "CHANNEL|"..channels [i+1]} end local bnet_friends = {} @@ -304,51 +292,12 @@ local lista = { return output_array end + este_gump.dropdown_func = build_list local select_output = gump:NewDropDown (este_gump, _, "$parentOutputDropdown", "select", 185, 20, build_list, 1) select_output:SetPoint ("topleft", este_gump, "topleft", 107, -55) este_gump.select = select_output.widget - - local function initialize (self, level) - local info = _UIDropDownMenu_CreateInfo() - - for i = 9, #lista do - lista [i] = nil - end - - local channels = {_GetChannelList()} --> coloca o resultado em uma tabela .. {id1, canal1, id2, canal2} - for i = 1, #channels, 2 do --> total de canais - lista [#lista+1] = {channels [i]..". "..channels [i+1], "CHANNEL|"..channels [i+1]} - end - - local BnetFriends = BNGetNumFriends() - for i = 1, BnetFriends do - local presenceID, presenceName, battleTag, isBattleTagPresence, toonName, toonID, client, isOnline, lastOnline, isAFK, isDND, messageText, noteText, isRIDFriend, broadcastTime, canSoR = BNGetFriendInfo (i) - if (isOnline) then - lista [#lista+1] = {presenceName, "REALID|" .. presenceID, nil, [[Interface\FriendsFrame\Battlenet-Battleneticon]]} - end - end - - --BNSendWhisper - - for index, v in _pairs (lista) do - - if (not v[3] or (type (v[3]) == "function" and v[3]())) then - info = _UIDropDownMenu_CreateInfo() - info.text = v[1] - info.value = v[2] - - if (v[4]) then - info.icon = v[4] - end - - info.func = OnClick - _UIDropDownMenu_AddButton (info, level) - end - end - end - function select_output:CheckValid() local last_selected = _detalhes.report_where @@ -581,11 +530,48 @@ local lista = { local este_gump = _CreateFrame ("Frame", "DetailsReportWindow", _UIParent) este_gump:SetPoint ("CENTER", UIParent, "CENTER") este_gump:SetFrameStrata ("HIGH") + + este_gump:SetScript ("OnShow", function (self) + local dropdown = este_gump.select.MyObject + local where = _detalhes.report_where + + local list = este_gump.dropdown_func() + local found + + for index, option in ipairs (list) do + if (option.value == where) then + dropdown:Select (where) + found = true + break + end + end + + if (not found) then + if (_IsInRaid()) then + dropdown:Select ("RAID") + _detalhes.report_where = "RAID" + + elseif (GetNumSubgroupMembers() > 0) then + dropdown:Select ("PARTY") + _detalhes.report_where = "PARTY" + + elseif (_IsInGuild()) then + dropdown:Select ("GUILD") + _detalhes.report_where = "GUILD" + + else + dropdown:Select ("SAY") + _detalhes.report_where = "SAY" + end + end + + end) _tinsert (_UISpecialFrames, este_gump:GetName()) este_gump:SetScript ("OnHide", function (self) _detalhes.janela_report.ativa = false + _detalhes.last_report_id = nil end) este_gump:SetWidth (320) diff --git a/gumps/janela_welcome.lua b/gumps/janela_welcome.lua index da39f07b..bac4fb94 100644 --- a/gumps/janela_welcome.lua +++ b/gumps/janela_welcome.lua @@ -19,7 +19,7 @@ function _detalhes:OpenWelcomeWindow () window = CreateFrame ("frame", "DetailsWelcomeWindow", UIParent) window:SetPoint ("center", UIParent, "center", -200, 0) window:SetWidth (512) - window:SetHeight (256) + window:SetHeight (265) window:SetMovable (true) window:SetScript ("OnMouseDown", function() window:StartMoving() end) window:SetScript ("OnMouseUp", function() window:StopMovingOrSizing() end) @@ -56,8 +56,9 @@ function _detalhes:OpenWelcomeWindow () cancel:SetNormalTexture ([[Interface\Buttons\UI-GroupLoot-Pass-Up]]) cancel:SetScript ("OnClick", function() window:Hide() end) local cancelText = cancel:CreateFontString (nil, "overlay", "GameFontNormal") + cancelText:SetTextColor (1, 1, 1) cancelText:SetPoint ("left", cancel, "right", 2, 0) - cancelText:SetText ("Skip") + cancelText:SetText (Loc ["STRING_WELCOME_69"]) local forward = CreateFrame ("button", nil, window) forward:SetWidth (26) @@ -274,7 +275,7 @@ local window_openned_at = time() nickname:SetPoint ("center", avatar_bg, "center", 0, -15) end - local nicknamelabel = g:NewLabel (window, nil, "$parentNickNameLabel", "nicknameLabel", Loc ["STRING_OPTIONS_NICKNAME"] .. ":", "GameFontHighlightLeft") + local nicknamelabel = g:NewLabel (window, nil, "$parentNickNameLabel", "nicknameLabel", Loc ["STRING_OPTIONS_NICKNAME"] .. ":", "GameFontNormal") local nicknamebox = g:NewTextEntry (window, nil, "$parentNicknameEntry", "nicknameEntry", 140, 20, onPressEnter) nicknamebox:HighlightText() @@ -430,7 +431,7 @@ local window_openned_at = time() skins_image:SetTexCoord (0, 0.41796875, 0, 0.259765625) --0, 0, 214 133 --import settings - local import_label = g:NewLabel (window, _, "$parentImportSettingsLabel", "ImportLabel", Loc ["STRING_WELCOME_46"]) + local import_label = g:NewLabel (window, _, "$parentImportSettingsLabel", "ImportLabel", Loc ["STRING_WELCOME_46"] .. ":", "GameFontNormal") import_label:SetPoint ("topleft", window, "topleft", 30, -160) local convert_table = { @@ -520,8 +521,8 @@ local window_openned_at = time() import_dropdown.tooltip = Loc ["STRING_WELCOME_57"] --wallpapaer and skin - local wallpaper_label_switch = g:NewLabel (window, _, "$parentBackgroundLabel", "enablewallpaperLabel", Loc ["STRING_WELCOME_44"]) - wallpaper_label_switch:SetPoint ("topleft", window, "topleft", 30, -180) + local wallpaper_label_switch = g:NewLabel (window, _, "$parentBackgroundLabel", "enablewallpaperLabel", Loc ["STRING_WELCOME_44"] .. ":", "GameFontNormal") + wallpaper_label_switch:SetPoint ("topleft", window, "topleft", 30, -200) --skin local onSelectSkin = function (_, _, skin_name) @@ -541,20 +542,64 @@ local window_openned_at = time() local skin_dropdown = g:NewDropDown (window, _, "$parentSkinDropdown", "skinDropdown", 140, 20, buildSkinMenu, instance1.skin) skin_dropdown.tooltip = Loc ["STRING_WELCOME_58"] - local skin_label = g:NewLabel (window, _, "$parentSkinLabel", "skinLabel", Loc ["STRING_OPTIONS_INSTANCE_SKIN"]) + local skin_label = g:NewLabel (window, _, "$parentSkinLabel", "skinLabel", Loc ["STRING_OPTIONS_INSTANCE_SKIN"] .. ":", "GameFontNormal") skin_dropdown:SetPoint ("left", skin_label, "right", 2) skin_label:SetPoint ("topleft", window, "topleft", 30, -140) --skin_dropdown:Select ("WoW Interface") + + --> icon type + local OnSelectIconFile = function (_, _, iconpath) + instance1:SetBarSettings (nil, nil, nil, nil, nil, nil, nil, nil, iconpath) + if (instance1.row_info.use_spec_icons) then + instance1:SetBarSpecIconSettings (false) + end + end + local OnSelectIconFileSpec = function (_, _, iconpath) + instance1:SetBarSpecIconSettings (true, iconpath, true) + end + + local iconsize = {16, 16} + local icontexture = [[Interface\WorldStateFrame\ICONS-CLASSES]] + local iconcoords = {0.25, 0.50, 0, 0.25} + local list = { + {value = [[]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE1"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize, iconcolor = {1, 1, 1, .3}}, + {value = [[Interface\AddOns\Details\images\classes_small]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE2"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\spec_icons_normal]], label = "Specialization", onclick = OnSelectIconFileSpec, icon = [[Interface\AddOns\Details\images\icons]], texcoord = {2/512, 32/512, 480/512, 510/512}, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\spec_icons_normal_alpha]], label = "Specialization Alpha", onclick = OnSelectIconFileSpec, icon = [[Interface\AddOns\Details\images\icons]], texcoord = {2/512, 32/512, 480/512, 510/512}, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\classes_small_bw]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE3"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\classes_small_alpha]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE4"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\classes_small_alpha_bw]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE6"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, + {value = [[Interface\AddOns\Details\images\classes]], label = Loc ["STRING_OPTIONS_BAR_ICONFILE5"], onclick = OnSelectIconFile, icon = icontexture, texcoord = iconcoords, iconsize = iconsize}, + } + local BuiltIconList = function() + return list + end + local default + if (instance1.row_info.use_spec_icons) then + default = instance1.row_info.spec_file + else + default = instance1.row_info.icon_file + end + + local d = g:NewDropDown (window, _, "$parentIconSelectDropdown", "IconSelectDropdown", 140, 20, BuiltIconList, default) + + g:NewLabel (window, _, "$parentIconsAnchor", "rowIconsLabel", Loc ["STRING_OPTIONS_TEXT_ROWICONS_ANCHOR"], "GameFontNormal") + + d:SetPoint ("left", window.rowIconsLabel, "right", 2) + window.rowIconsLabel:SetPoint ("topleft", window, "topleft", 30, -180) + --wallpapper --> agora cria os 2 dropdown da categoria e wallpaper local onSelectSecTexture = function (_, _, texturePath) if (texturePath:find ("TALENTFRAME")) then - instance:InstanceWallpaper (texturePath, nil, nil, {0, 1, 0, 0.703125}) + instance1:InstanceWallpaper (texturePath, nil, nil, {0, 1, 0, 0.703125}, nil, nil, {1, 1, 1, 1}) + elseif (texturePath:find ("EncounterJournal")) then + instance1:InstanceWallpaper (texturePath, nil, nil, {0.06, 0.68, 0.1, 0.57}, nil, nil, {1, 1, 1, 1}) else - instance:InstanceWallpaper (texturePath, nil, nil, {0, 1, 0, 1}) + instance1:InstanceWallpaper (texturePath, nil, nil, {0, 1, 0, 1}, nil, nil, {1, 1, 1, 1}) end end @@ -584,6 +629,39 @@ local window_openned_at = time() {value = [[Interface\ARCHEOLOGY\ArchRare-TyrandesFavoriteDoll]], label = "Tyrandes Favorite Doll", onclick = onSelectSecTexture, icon = [[Interface\ARCHEOLOGY\ArchRare-TyrandesFavoriteDoll]], texcoord = nil}, {value = [[Interface\ARCHEOLOGY\ArchRare-ZinRokhDestroyer]], label = "ZinRokh Destroyer", onclick = onSelectSecTexture, icon = [[Interface\ARCHEOLOGY\ArchRare-ZinRokhDestroyer]], texcoord = nil}, }, + + ["RAIDS"] = { + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-BlackrockCaverns]], label = "Blackrock Caverns", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-BlackrockCaverns]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-BlackrockSpire]], label = "Blackrock Spire", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-BlackrockSpire]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-DragonSoul]], label = "Dragon Soul", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-DragonSoul]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-EndTime]], label = "End Time", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-EndTime]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-Firelands1]], label = "Firelands", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-Firelands1]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-HallsofReflection]], label = "Halls of Reflection", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-HallsofReflection]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-HellfireCitadel]], label = "Hellfire Citadel", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-HellfireCitadel]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-Pandaria]], label = "Pandaria", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-Pandaria]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-RagefireChasm]], label = "Ragefire Chasm", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-RagefireChasm]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-SiegeofOrgrimmar]], label = "Siege of Orgrimmar", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-SiegeofOrgrimmar]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-TheNexus]], label = "The Nexus", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-TheNexus]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-TheOculus]], label = "The Oculus", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-TheOculus]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-TheStonecore]], label = "The Stonecore", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-TheStonecore]], texcoord = nil}, + {value = [[Interface\EncounterJournal\UI-EJ-LOREBG-ThunderKingRaid]], label = "Throne of Thunder", onclick = onSelectSecTexture, icon = [[Interface\EncounterJournal\UI-EJ-LOREBG-ThunderKingRaid]], texcoord = nil}, + }, + + ["LOGOS"] = { + {value = [[Interface\Timer\Alliance-Logo]], label = "For the Alliance", onclick = onSelectSecTexture, icon = [[Interface\Timer\Alliance-Logo]], texcoord = nil}, + {value = [[Interface\Timer\Horde-Logo]], label = "For the Horde", onclick = onSelectSecTexture, icon = [[Interface\Timer\Horde-Logo]], texcoord = nil}, + {value = [[Interface\Destiny\EndscreenImage]], label = "Pandaria Logo", onclick = onSelectSecTexture, icon = [[Interface\Destiny\EndscreenImage]], texcoord = nil}, + {value = [[Interface\ARCHEOLOGY\ARCH-RACE-ORC]], label = "Orc Crest", onclick = onSelectSecTexture, icon = [[Interface\ARCHEOLOGY\ARCH-RACE-ORC]], texcoord = nil}, + {value = [[Interface\ARCHEOLOGY\ARCH-RACE-DWARF]], label = "Dwarf Crest", onclick = onSelectSecTexture, icon = [[Interface\ARCHEOLOGY\ARCH-RACE-DWARF]], texcoord = nil}, + {value = [[Interface\ARCHEOLOGY\ARCH-RACE-NIGHTELF]], label = "Night Elf Crest", onclick = onSelectSecTexture, icon = [[Interface\ARCHEOLOGY\ARCH-RACE-NIGHTELF]], texcoord = nil}, + {value = [[Interface\ARCHEOLOGY\Arch-Race-Pandaren]], label = "Padaren Crest", onclick = onSelectSecTexture, icon = [[Interface\ARCHEOLOGY\Arch-Race-Pandaren]], texcoord = nil}, + {value = [[Interface\ARCHEOLOGY\ARCH-RACE-TROLL]], label = "Troll Crest", onclick = onSelectSecTexture, icon = [[Interface\ARCHEOLOGY\ARCH-RACE-TROLL]], texcoord = nil}, + {value = [[Interface\FlavorImages\BloodElfLogo-small]], label = "Blood Elf Crest", onclick = onSelectSecTexture, icon = [[Interface\FlavorImages\BloodElfLogo-small]], texcoord = nil}, + {value = [[Interface\Glues\COMMON\Glues-Logo]], label = "Wow Logo", onclick = onSelectSecTexture, icon = [[Interface\Glues\COMMON\Glues-Logo]], texcoord = nil}, + {value = [[Interface\Glues\COMMON\GLUES-WOW-BCLOGO]], label = "Burning Cruzade Logo", onclick = onSelectSecTexture, icon = [[Interface\Glues\COMMON\GLUES-WOW-BCLOGO]], texcoord = nil}, + {value = [[Interface\Glues\COMMON\GLUES-WOW-CCLOGO]], label = "Cataclysm Logo", onclick = onSelectSecTexture, icon = [[Interface\Glues\COMMON\GLUES-WOW-CCLOGO]], texcoord = nil}, + {value = [[Interface\Glues\COMMON\Glues-WOW-WoltkLogo]], label = "WotLK Logo", onclick = onSelectSecTexture, icon = [[Interface\Glues\COMMON\Glues-WOW-WoltkLogo]], texcoord = nil}, + }, ["CREDITS"] = { {value = [[Interface\Glues\CREDITS\Arakkoa2]], label = "Arakkoa", onclick = onSelectSecTexture, icon = [[Interface\Glues\CREDITS\Arakkoa2]], texcoord = nil}, @@ -717,8 +795,10 @@ local window_openned_at = time() local backgroundTable = { {value = "ARCHEOLOGY", label = "Archeology", onclick = onSelectMainTexture, icon = [[Interface\ARCHEOLOGY\Arch-Icon-Marker]]}, {value = "CREDITS", label = "Burning Crusade", onclick = onSelectMainTexture, icon = [[Interface\ICONS\TEMP]]}, + {value = "LOGOS", label = "Logos", onclick = onSelectMainTexture, icon = [[Interface\WorldStateFrame\ColumnIcon-FlagCapture0]]}, + {value = "DRESSUP", label = "Race Background", onclick = onSelectMainTexture, icon = [[Interface\ICONS\INV_Chest_Cloth_17]]}, + {value = "RAIDS", label = "Dungeons & Raids", onclick = onSelectMainTexture, icon = [[Interface\COMMON\friendship-FistHuman]]}, {value = "DEATHKNIGHT", label = "Death Knight", onclick = onSelectMainTexture, icon = _detalhes.class_icons_small, texcoord = _detalhes.class_coords ["DEATHKNIGHT"]}, - {value = "DRESSUP", label = "Class Background", onclick = onSelectMainTexture, icon = [[Interface\ICONS\INV_Chest_Cloth_17]]}, {value = "DRUID", label = "Druid", onclick = onSelectMainTexture, icon = _detalhes.class_icons_small, texcoord = _detalhes.class_coords ["DRUID"]}, {value = "HUNTER", label = "Hunter", onclick = onSelectMainTexture, icon = _detalhes.class_icons_small, texcoord = _detalhes.class_coords ["HUNTER"]}, {value = "MAGE", label = "Mage", onclick = onSelectMainTexture, icon = _detalhes.class_icons_small, texcoord = _detalhes.class_coords ["MAGE"]}, @@ -799,7 +879,7 @@ local window_openned_at = time() end end) - pages [#pages+1] = {import_label, import_dropdown, skins_frame_alert, bg55, texto55, texto555, skins_image, changemind, texto_appearance, skin_dropdown, skin_label, wallpaper_label_switch, wallpaper_switch, wallpaper_dropdown1, wallpaper_dropdown2, } + pages [#pages+1] = {import_label, import_dropdown, skins_frame_alert, bg55, texto55, texto555, skins_image, changemind, texto_appearance, skin_dropdown, skin_label, wallpaper_label_switch, wallpaper_switch, wallpaper_dropdown1, wallpaper_dropdown2, window.rowIconsLabel, window.IconSelectDropdown} for _, widget in ipairs (pages[#pages]) do widget:Hide() @@ -928,7 +1008,7 @@ local window_openned_at = time() dance_text:SetPoint ("topleft", window, "topleft", 30, -175) --------------- Update Speed - g:NewLabel (window, _, "$parentUpdateSpeedLabel", "updatespeedLabel", Loc ["STRING_WELCOME_14"] .. ":") + g:NewLabel (window, _, "$parentUpdateSpeedLabel", "updatespeedLabel", Loc ["STRING_WELCOME_14"] .. ":", "GameFontNormal") window.updatespeedLabel:SetPoint (31, -150) -- @@ -963,7 +1043,7 @@ local window_openned_at = time() window.updatespeedSlider.tooltip = Loc ["STRING_WELCOME_15"] --------------- Animate Rows - g:NewLabel (window, _, "$parentAnimateLabel", "animateLabel", Loc ["STRING_WELCOME_16"] .. ":") + g:NewLabel (window, _, "$parentAnimateLabel", "animateLabel", Loc ["STRING_WELCOME_16"] .. ":", "GameFontNormal") window.animateLabel:SetPoint (31, -170) -- g:NewSwitch (window, _, "$parentAnimateSlider", "animateSlider", 60, 20, _, _, _detalhes.use_row_animations) -- ltext, rtext, defaultv @@ -975,7 +1055,7 @@ local window_openned_at = time() --------------- Fast Hps/Dps Updates --[ - g:NewLabel (window, _, "$parentDpsHpsLabel", "DpsHpsLabel", Loc ["STRING_WELCOME_63"] .. ":") + g:NewLabel (window, _, "$parentDpsHpsLabel", "DpsHpsLabel", Loc ["STRING_WELCOME_63"] .. ":", "GameFontNormal") window.DpsHpsLabel:SetPoint (31, -190) -- g:NewSwitch (window, _, "$parentDpsHpsSlider", "DpsHpsSlider", 60, 20, _, _, _detalhes:GetInstance(1).row_info.fast_ps_update) -- ltext, rtext, defaultv @@ -986,7 +1066,7 @@ local window_openned_at = time() window.DpsHpsSlider.tooltip = Loc ["STRING_WELCOME_64"] --]] --------------- Max Segments - g:NewLabel (window, _, "$parentSliderLabel", "segmentsLabel", Loc ["STRING_WELCOME_21"] .. ":") + g:NewLabel (window, _, "$parentSliderLabel", "segmentsLabel", Loc ["STRING_WELCOME_21"] .. ":", "GameFontNormal") window.segmentsLabel:SetPoint (31, -210) -- g:NewSlider (window, _, "$parentSlider", "segmentsSlider", 120, 20, 1, 25, 1, _detalhes.segments_amount) -- min, max, step, defaultv @@ -1006,7 +1086,7 @@ local window_openned_at = time() local mech_icon2 = window:CreateTexture (nil, "overlay") mech_icon2:SetTexture ([[Interface\Vehicles\UI-Vehicles-Trim-Alliance]]) - mech_icon2:SetPoint ("topright", window, "topright", -10, -142) + mech_icon2:SetPoint ("topright", window, "topright", -10, -151) mech_icon2:SetWidth (128*1.0) mech_icon2:SetHeight (128*0.6) mech_icon2:SetAlpha (0.6) @@ -1369,6 +1449,8 @@ local window_openned_at = time() end end + _detalhes:GetInstance(1):SetDisplay (0, 1, 1) + local bar1 = _detalhes:GetInstance(1):GetRow(1) frame_alert.alert:SetPoint ("topleft", bar1, "topleft", -60, 8) diff --git a/images/icons.tga b/images/icons.tga index 4a288ac0e89e407bd925c99d03416fa124c6b28a..bc9f7c45f610fa0417d88ca9cf4a67e0dbebb9fb 100644 GIT binary patch delta 4607 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≶t@^}* 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�s4H)dn$cnk6*Jki#Z!BjH$m}ux)sWzDG7!X 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

8A;RjOTpCTc*sR)`mVu zv$efl1_#p9Y>m{4>Ybk8@vD}u>YG0NQ7S!pDXk3gl%a{drVaHRm0ZMaiI2r?Tzxj9 zzF5~%_AYTp+9xHRv)-4ouj7p8cc#?us%CvO|2Bfi`8|eBT0?L$mJCULciO&;^V_OZ zP8K@s4-9%o*=&7DH2W_(ZO7x{U2BjqVMO{X?2SCKXG&kO%DduWO}+ewLQFZ{{az*p`)VYgyjX`Q|>;#}!4~(6Y`xmN{_S4pH8kG)IGX_J?w6>q-a{k{=qlJtQ~M&L}Aw8xSwec z#6_uJA?8HKW)_%IKhXY=bVHw?$zfYl+aYp1b8xz2=EUjMs~3J&OX`04{Gf}tx4yHn zZuR7X+MFG$ce+B4?>XaMJAb8f)ZN1`kn^~+m%YH5KCubq}fpES;B8x_s=wGci%tEgAj0e%L@><8!`x zS8C}p{f@w;A~Cd_3F(AyfpcVyBgiQH#2zktQOSHqayNBN*28LK@dsVsI=DM=Uwt)k z5j|J#-qAwl=-C5Q` z(Xuu5ucVtMJ1a&3TAFB-eNDm{3B(|Eb9hRy?K<-J34Qy_C|Z0D(;PaY(N$6UBJ7OX@Bd!7xP{v>6jNqZcMl@W+U#EV_n^# zlz3@9DoVM;y360KEA}ugm#4+QkA3?~59C$iU#+8blgCl^mAB-p8MS-fzW2gs`P#8> z-<3ENhSkZ;0wew zx|uoV?cUZONB0c-@b7lZ->@$P`

ZZ!k{m$)e$E4B1mR46`)!Gd8Hu#*fzJ`XzOX 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 literal 0 HcmV?d00001 diff --git a/plugins/Details_DmgRank/Details_DmgRank.lua b/plugins/Details_DmgRank/Details_DmgRank.lua index f48cb836..16f979bd 100644 --- a/plugins/Details_DmgRank/Details_DmgRank.lua +++ b/plugins/Details_DmgRank/Details_DmgRank.lua @@ -41,7 +41,7 @@ local function CreatePluginFrames (data) elseif (event == "REFRESH") then --> requested a refresh window DmgRank:Refresh() - elseif (event == "COMBAT_PLAYER_TIMESTARTED") then --> combat started + elseif (event == "COMBAT_PLAYER_ENTER") then --> combat started --print ("recebeu event start") local combat = select (1, ...) DmgRank:Start() @@ -402,53 +402,55 @@ local function CreatePluginFrames (data) --> Exec function local DoDmgRank = function (self, elapsed) - + DmgRank.Time.Elapsed = DmgRank.Time.Elapsed + elapsed update = update + elapsed if (_GetTime() > DmgRank.Time.EndTime) then --> reached the end time if (DmgRank.Time.Working and not DmgRank.Time.Done) then - DmgRank:Cancel() DmgRank:Finish() + else + DmgRank.Time.Working = false + DmgRank.Time.Done = true + DmgRank.Frame:SetScript ("OnUpdate", nil) end else - --> aqui vem as funções que verificam se o jogador esta em grupo ou se tem algum buff proibido + DmgRank.Time.Tick = DmgRank.Time.Tick + elapsed + if (DmgRank.Time.Tick > 1) then DmgRank.Time.Tick = 0 if (not _UFC ("player")) then --> isn't in combat - print (Loc ["STRING_CANCELLED_NOT_COMBAT"]) - DmgRank:Cancel() - elseif (_IsInRaid() or _IsInGroup()) then - print (Loc ["STRING_CANCELLED_IN_GROUP"]) - DmgRank:Cancel() - else - --> check for not allowed buffs: - for i = 1, 41 do - local auraName, _, _, _, _, _, _, _, _, _, spellId = _UnitAura ("player", i) - if (spellId and (spellId == 2825 or spellId == 80353 or spellId == 90355)) then --> bloodlust//timewarp//ancient hysteria - print (Loc ["STRING_CANCELLED_AURA"] .. auraName) - DmgRank:Cancel() - end - end + DmgRank:Finish() end else - if (update > 0.050) then + if (not player) then + player = _detalhes:GetActor() + end + if (player) then local minutos, segundos = _math_floor (DmgRank.Time.Elapsed/60), _math_floor (DmgRank.Time.Elapsed%60) if (segundos < 10) then segundos = "0"..segundos end + local mili = _cstr ("%.2f", DmgRank.Time.Elapsed - _math_floor (DmgRank.Time.Elapsed))*100 if (mili < 10) then mili = "0"..mili end + DmgRank.TimeMinutes:SetText ("0".. minutos .. ":") DmgRank.TimeSeconds:SetText (segundos ..":") DmgRank.TimeMiliSeconds:SetText (mili) + local DamageGoal = DmgRank.TimeGoal [DmgRank.rank.level].damage + if (player.total > DamageGoal) then --> yeah, you didit + DmgRank.MainDamageDisplay:SetTextColor (0.3, 1, 0.1) + else + DmgRank.MainDamageDisplay:SetTextColor (1, 1, 1) + end + DmgRank.MainDamageDisplay:SetText (_detalhes:comma_value (player.total)) - update = 0 end end end @@ -479,22 +481,31 @@ local function CreatePluginFrames (data) --> When the time is gone function DmgRank:Finish() - local DamageGoal = DmgRank.TimeGoal [DmgRank.rank.level].damage --> damage - if (player.total > DamageGoal) then --> yeah, you didit - DmgRank:LevelUpRank() - else - DmgRank:FailedLevelUpRank() + DmgRank.Frame:SetScript ("OnUpdate", nil) + + if (player) then + local DamageGoal = DmgRank.TimeGoal [DmgRank.rank.level].damage --> damage + if (player.total > DamageGoal) then --> yeah, you didit + DmgRank:LevelUpRank() + else + DmgRank:FailedLevelUpRank() + end end + + DmgRank.Time.Working = false + DmgRank.Time.Done = true end --> When a new combat is received by the PlugIn function DmgRank:Start() if (DmgRank.Time and DmgRank.Time.Working) then + DmgRank:Msg ("Plugin already in use.") return end if (not DmgRank.TimeGoal[DmgRank.rank.level].damage) then + DmgRank:Msg ("There is no goal for this level.") return end @@ -506,17 +517,22 @@ local function CreatePluginFrames (data) DmgRank.Time = {} DmgRank.Time.StartTime = _GetTime() - DmgRank.Time.EndTime = DmgRank.Time.StartTime + DmgRank.TimeGoal[DmgRank.rank.level].time - DmgRank.Time.Elapsed = 0 + DmgRank.Time.EndTime = DmgRank.Time.StartTime + DmgRank.TimeGoal [DmgRank.rank.level].time + DmgRank.Time.Elapsed = 3 DmgRank.Time.Done = nil DmgRank.Time.Working = true DmgRank.Time.Tick = 0 player = _detalhes:GetActor() --> param 1 = combat | param 2 = attribute | param 3 = player name update = 0 - DmgRank.Frame:SetScript ("OnUpdate", DoDmgRank) + DmgRank.starting = DmgRank:ScheduleTimer ("StartUpdate", 3) end + function DmgRank:StartUpdate() + player = _detalhes:GetActor() + DmgRank.Frame:SetScript ("OnUpdate", DoDmgRank) + end + end function DmgRank:OnEvent (_, event, ...) @@ -541,12 +557,10 @@ function DmgRank:OnEvent (_, event, ...) CreatePluginFrames() --> Register needed events - _G._detalhes:RegisterEvent (DmgRank, "COMBAT_PLAYER_TIMESTARTED") + _G._detalhes:RegisterEvent (DmgRank, "COMBAT_PLAYER_ENTER") end end - - elseif (event == "PLAYER_LOGOUT") then - _detalhes_databaseDmgRank = DmgRank.rank + end end \ No newline at end of file diff --git a/plugins/Details_TimeAttack/Details_TimeAttack.lua b/plugins/Details_TimeAttack/Details_TimeAttack.lua index 704e26f4..819747d5 100644 --- a/plugins/Details_TimeAttack/Details_TimeAttack.lua +++ b/plugins/Details_TimeAttack/Details_TimeAttack.lua @@ -146,8 +146,13 @@ local function CreatePluginFrames() TimeAmount2:SetPoint ("left", TimeDesc, "right", 4, 0) --> main time/damage/dps texts - local clock = DetailsFrameWork:NewLabel (TimeAttackFrame, TimeAttackFrame, nil, "TIMER", "00:00:00", "GameFontHighlightLarge") - clock:SetPoint ("center", TimeAttackFrame, 0, -20) + local clock = DetailsFrameWork:NewLabel (TimeAttackFrame, TimeAttackFrame, nil, "TIMER", "00:", "GameFontHighlightLarge") + clock:SetPoint ("center", TimeAttackFrame, -25, -20) + local clock2 = DetailsFrameWork:NewLabel (TimeAttackFrame, TimeAttackFrame, nil, "TIMER", "00:", "GameFontHighlightLarge") + clock2:SetPoint ("center", TimeAttackFrame, 0, -20) + local clock3 = DetailsFrameWork:NewLabel (TimeAttackFrame, TimeAttackFrame, nil, "TIMER", "00", "GameFontHighlightLarge") + clock3:SetPoint ("center", TimeAttackFrame, 23, -20) + local damage = DetailsFrameWork:NewLabel (TimeAttackFrame, TimeAttackFrame, nil, "DAMAGE", "00.000.000", "GameFontHighlightLarge") damage:SetPoint ("center", TimeAttackFrame, 0, -40) local persecond = DetailsFrameWork:NewLabel (TimeAttackFrame, TimeAttackFrame, nil, "DPS", "000.000", "GameFontHighlightLarge") @@ -776,7 +781,7 @@ local function CreatePluginFrames() --> Cancel function function TimeAttack:Cancel() - if (TimeAttack.Time and TimeAttack.Time.Working) then + if (TimeAttack.Time) then TimeAttack.Time.Working = false TimeAttack.Time.Done = true end @@ -792,6 +797,8 @@ local function CreatePluginFrames() if (TimeAttack.Time.Working and not TimeAttack.Time.Done) then TimeAttack:Cancel() TimeAttack:Finish() + else + TimeAttack:Cancel() end else --> aqui vem as funções que verificam se o jogador esta em grupo ou se tem algum buff proibido @@ -802,28 +809,24 @@ local function CreatePluginFrames() TimeAttack:Cancel() end else - if (update > 0.050) then - --> Update Timer Here - - local minutos, segundos = _math_floor (TimeAttack.Time.Elapsed/60), _math_floor (TimeAttack.Time.Elapsed%60) + local minutos, segundos = _math_floor (TimeAttack.Time.Elapsed/60), _math_floor (TimeAttack.Time.Elapsed%60) - if (segundos < 10) then - segundos = "0"..segundos - end - - local mili = _cstr ("%.2f", TimeAttack.Time.Elapsed-_math_floor (TimeAttack.Time.Elapsed))*100 - if (mili < 10) then - mili = "0"..mili - end - - clock:SetText ("0".. minutos .. ":"..segundos ..":"..mili) - damage:SetText (TimeAttack:comma_value (player.total)) - - if (TimeAttack.Time.Elapsed > 3) then - persecond:SetText (TimeAttack:comma_value (_math_floor (player.total/TimeAttack.Time.Elapsed))) - end - - update = 0 + if (segundos < 10) then + segundos = "0"..segundos + end + + local mili = _cstr ("%.2f", TimeAttack.Time.Elapsed-_math_floor (TimeAttack.Time.Elapsed))*100 + if (mili < 10) then + mili = "0"..mili + end + + clock:SetText ("0".. minutos .. ":") + clock2:SetText (segundos ..":") + clock3:SetText (mili) + damage:SetText (TimeAttack:comma_value (player.total)) + + if (TimeAttack.Time.Elapsed > 3) then + persecond:SetText (TimeAttack:comma_value (_math_floor (player.total/TimeAttack.Time.Elapsed))) end end end @@ -859,7 +862,7 @@ local function CreatePluginFrames() function TimeAttack:Start() if (TimeAttack.Time and TimeAttack.Time.Working) then - return + TimeAttack:Cancel() end TimeAttack.Time = {} diff --git a/plugins/Details_Vanguard/Details_Vanguard.lua b/plugins/Details_Vanguard/Details_Vanguard.lua index f533bae5..470faabf 100644 --- a/plugins/Details_Vanguard/Details_Vanguard.lua +++ b/plugins/Details_Vanguard/Details_Vanguard.lua @@ -1,12 +1,12 @@ local AceLocale = LibStub ("AceLocale-3.0") -local Loc = AceLocale:GetLocale ("Details_Vanguard") +local Loc = AceLocale:GetLocale ("Details") --------------------------------------------------------------------------------------------- + local _GetTime = GetTime --> wow api local local _UFC = UnitAffectingCombat --> wow api local local _IsInRaid = IsInRaid --> wow api local local _IsInGroup = IsInGroup --> wow api local -local _UnitAura = UnitAura --> wow api local local _UnitName = UnitName --> wow api local local _UnitGroupRolesAssigned = UnitGroupRolesAssigned --> wow api local local _UnitHealth = UnitHealth --> wow api local @@ -14,8 +14,11 @@ local _UnitHealthMax = UnitHealthMax --> wow api local local _UnitIsPlayer = UnitIsPlayer --> wow api local local _UnitClass = UnitClass --> wow api local local _UnitDebuff = UnitDebuff --> wow api local -local _UnitGetIncomingHeals = UnitGetIncomingHeals +local UnitGetIncomingHeals = UnitGetIncomingHeals +local _unpack = unpack +local UnitGetTotalAbsorbs = UnitGetTotalAbsorbs --------------------------------------------------------------------------------------------- + local _cstr = string.format --> lua library local local _table_insert = table.insert --> lua library local local _table_remove = table.remove --> lua library local @@ -25,6 +28,7 @@ local _math_floor = math.floor --> lua library local local _math_abs = math.abs --> lua library local local _math_min = math.min --> lua library local local _table_sort = table.sort + --------------------------------------------------------------------------------------------- --> Create plugin Object @@ -34,1267 +38,625 @@ local VanguardFrame = Vanguard.Frame Vanguard:SetPluginDescription ("Show debuffs on each tanks in the raid, also shows incoming heal and damage and the last hits you took.") ---> Create plugin objects, function and widgets + local function CreatePluginFrames (data) - --> catch Details! main object - local _detalhes = _G._detalhes - local DetailsFrameWork = _detalhes.gump - - --> any saved data cames here - Vanguard.data = data or {} + --> localize details functions + Vanguard.GetSpec = Vanguard.GetSpec + Vanguard.class_specs_coords = Vanguard.class_specs_coords - --> main locals - local _combat_object = nil --> demais current combat object - local _track_player_object = nil --> Damage Actor in current damage object - local _track_player_unit = "player" --> current tracking unit - local _track_player_name = _UnitName (_track_player_unit) --> current tracking unit name - local instancia --> instancia object (details window) - local MyName = _UnitName ("player") --> player name - - --> running yes or not - Vanguard.Running = false - - --> window size requirements - Vanguard.MinWidth = 300 - Vanguard.MinHeight = 100 + local framework = Vanguard:GetFramework() --> OnDetailsEvent Parser function Vanguard:OnDetailsEvent (event, ...) if (event == "HIDE") then --> plugin hidded, disabled - VanguardFrame:SetScript ("OnUpdate", nil) VanguardFrame:UnregisterEvent ("ROLE_CHANGED_INFORM") VanguardFrame:UnregisterEvent ("GROUP_ROSTER_UPDATE") VanguardFrame:UnregisterEvent ("PLAYER_TARGET_CHANGED") - Vanguard:Cancel() + Vanguard:CombatEnd() elseif (event == "SHOW") then --> plugin shown, enabled - instancia = Vanguard:GetInstance (Vanguard.instance_id) - - for index, tankframe in _ipairs (Vanguard.TankFrames) do - DetailsFrameWork:RegisterForDetailsMove (tankframe.Frame.frame, instancia) - end - DetailsFrameWork:RegisterForDetailsMove (VanguardFrame ["DamageRowBackground"].frame, instancia) - - Vanguard:OnResize() + Vanguard.CurrentInstance = Vanguard:GetInstance (Vanguard.instance_id) VanguardFrame:RegisterEvent ("ROLE_CHANGED_INFORM") VanguardFrame:RegisterEvent ("GROUP_ROSTER_UPDATE") VanguardFrame:RegisterEvent ("PLAYER_TARGET_CHANGED") Vanguard:ResetBars() - Vanguard:ResetDamage() - Vanguard:ResetDebuffs() + --Vanguard:ResetDebuffs() -- ?? Vanguard:IdentifyTanks() + Vanguard.CurrentInstance = Vanguard:GetInstance (Vanguard.instance_id) + Vanguard.CurrentCombat = _detalhes:GetCombat ("current") + + VanguardFrame:SetFrameStrata (Vanguard.CurrentInstance.baseframe:GetFrameStrata()) + VanguardFrame:SetFrameLevel (Vanguard.CurrentInstance.baseframe:GetFrameLevel()+5) if (Vanguard:IsInCombat()) then - instancia = Vanguard:GetInstance (Vanguard.instance_id) - _combat_object = _detalhes.tabela_vigente - _track_player_object = nil - _track_player_name = nil - Vanguard.Running = true - - VanguardFrame:RegisterEvent ("PLAYER_TARGET_CHANGED") - - Vanguard:Start() + Vanguard:CombatStart() end - - VanguardFrame:SetFrameStrata (instancia.strata) - VanguardFrame:SetFrameLevel (instancia.baseframe:GetFrameLevel()+5) - elseif (event == "REFRESH") then --> requested a refresh window - --> + VanguardFrame:SetPoint ("topleft", Vanguard.CurrentInstance.baseframe, "topleft") + VanguardFrame:SetPoint ("bottomright", Vanguard.CurrentInstance.baseframe, "bottomright") elseif (event == "COMBAT_PLAYER_ENTER") then --> a new combat has been started - --instancia = _detalhes.RaidTables.instancia - instancia = Vanguard:GetInstance (Vanguard.instance_id) - _combat_object = select (1, ...) - _track_player_object = nil - _track_player_name = nil + Vanguard.CurrentInstance = Vanguard:GetInstance (Vanguard.instance_id) + Vanguard.CurrentCombat = select (1, ...) Vanguard.Running = true - VanguardFrame:RegisterEvent ("UNIT_HEALTH") + Vanguard:CombatStart() - Vanguard:Start() - - elseif (event == "DETAILS_INSTANCE_ENDRESIZE" or event == "DETAILS_INSTANCE_SIZECHANGED") then - Vanguard:OnResize() - - elseif (event == "DETAILS_INSTANCE_STARTSTRETCH") then - VanguardFrame:SetFrameStrata ("TOOLTIP") - VanguardFrame:SetFrameLevel (instancia.baseframe:GetFrameLevel()+1) - - elseif (event == "DETAILS_INSTANCE_ENDSTRETCH") then - local instance = Vanguard:GetInstance (Vanguard.instance_id) - VanguardFrame:SetFrameStrata (instance.strata) - VanguardFrame:SetFrameLevel (instance.baseframe:GetFrameLevel()+5) - Vanguard:OnResize() - elseif (event == "COMBAT_PLAYER_LEAVE") then --> current combat has finished - _combat_object = select (1, ...) - - Vanguard.Running = false - VanguardFrame:SetScript ("OnUpdate", nil) + Vanguard.CurrentCombat = select (1, ...) + Vanguard:CombatEnd() Vanguard:ResetBars() - Vanguard:ResetDamage() - Vanguard:ResetDebuffs() + Vanguard:ResetBlocks() - VanguardFrame:UnregisterEvent ("UNIT_HEALTH") - - for i = 1, 3 do - Vanguard.TankFrames [i].Life (100) + elseif (event == "GROUP_ONLEAVE") then + + if (Vanguard.Running) then + Vanguard:CombatEnd() + Vanguard:ResetBars() + Vanguard:ResetBlocks() end + Vanguard:IdentifyTanks() + + elseif (event == "DETAILS_INSTANCE_ENDRESIZE" or event == "DETAILS_INSTANCE_SIZECHANGED") then + --Vanguard:OnResize() + elseif (event == "PLUGIN_DISABLED") then elseif (event == "PLUGIN_ENABLED") then end end - - function Vanguard:OnResize() - - local w, h = instancia:GetSize() - VanguardFrame:SetHeight (h) - Vanguard:OnResizeDamageLabels() - Vanguard:OnResizeTankBoxes() - - Vanguard.DamageVsHeal.width = w - 6 - Vanguard.TookVsAvoid.width = w - 6 - - if (h >= 95) then - --> show two bars - Vanguard.DamageVsHeal:Show() - Vanguard.TookVsAvoid:Show() - --> show last hit box - Vanguard.LastHitsBackground:Show() - Vanguard.LastHitsBackground:SetPoint ("topleft", VanguardFrame, 2, -35) - --> show tank boxes - for i = 1, Vanguard.TankFrames.Spots do - Vanguard.TankFrames [i].Frame:SetPoint ("bottomleft", VanguardFrame, 2 + ((i-1)*95), 0) - end - return - end - - if (h < 95 and h >= 60) then - --> hide two bars - Vanguard.DamageVsHeal:Hide() - Vanguard.TookVsAvoid:Hide() - --> move up last hit box - Vanguard.LastHitsBackground:Show() - Vanguard.LastHitsBackground:SetPoint (3, -3) - --> move up the 3 tank boxes - for i = 1, Vanguard.TankFrames.Spots do - Vanguard.TankFrames [i].Frame:SetPoint ("bottomleft", VanguardFrame, 2 + ((i-1)*95), 0) - end - - return - end - - if (h < 60) then - --> hide two bars (hide again due stretch) - Vanguard.DamageVsHeal:Hide() - Vanguard.TookVsAvoid:Hide() - --> hide last hit box - Vanguard.LastHitsBackground:Hide() - --> move up the 3 tank boxes - for i = 1, Vanguard.TankFrames.Spots do - Vanguard.TankFrames [i].Frame:SetPoint ("bottomleft", VanguardFrame, 2 + ((i-1)*95), 0) - end - end - end + -- não vamos mais mostrar o jogador + -- somente barra de inc heal + absorbs + -- somente barra de vida + + -- option tank square size - function Vanguard:HealthChanged (unitId) - if (Vanguard.TankListHash [unitId]) then - Vanguard:UpdateHealth (Vanguard.TankListHash [unitId], unitId) - end - end --> list with tank names - Vanguard.TankList = {} --> indexes - Vanguard.TankListHash = {} --> name hash + Vanguard.TankList = {} --> tanks + Vanguard.TankHashNames = {} --> tanks + Vanguard.TankBlocks = {} --> tank frames --> search for tanks in the raid or party group function Vanguard:IdentifyTanks() table.wipe (Vanguard.TankList) - table.wipe (Vanguard.TankListHash) + table.wipe (Vanguard.TankHashNames) if (IsInRaid()) then - local playerName = _UnitName ("player") - for i = 1, GetNumGroupMembers(), 1 do - local role = _UnitGroupRolesAssigned ("raid"..i) + local role = _UnitGroupRolesAssigned ("raid" .. i) if (role == "TANK") then - local tankName = _UnitName ("raid"..i) - if (tankName == playerName) then - playerName = "SELFISTANK" - end - Vanguard.TankList [#Vanguard.TankList+1] = tankName - Vanguard.TankListHash ["raid"..i] = #Vanguard.TankList - if (#Vanguard.TankList == 5) then - break + local name, realm = UnitName ("raid"..i) + if (realm) then + name = name .. "-" .. realm end + Vanguard.TankList [#Vanguard.TankList+1] = name + Vanguard.TankHashNames [name] = #Vanguard.TankList end end - - if (#Vanguard.TankList < 5 and playerName ~= "SELFISTANK") then - Vanguard.TankList [#Vanguard.TankList+1] = _UnitName ("player") - Vanguard.TankListHash ["player"] = #Vanguard.TankList - end - + elseif (IsInGroup()) then - local playerName = _UnitName ("player") - for i = 1, GetNumGroupMembers()-1, 1 do local role = _UnitGroupRolesAssigned ("party"..i) if (role == "TANK") then - local tankName = _UnitName ("party"..i) - if (tankName == playerName) then - playerName = "SELFISTANK" - end - Vanguard.TankList [#Vanguard.TankList+1] = tankName - Vanguard.TankListHash ["party"..i] = #Vanguard.TankList - if (#Vanguard.TankList == 5) then - break + local name, realm = UnitName ("party"..i) + if (realm) then + name = name .. "-" .. realm end + Vanguard.TankList [#Vanguard.TankList+1] = name + Vanguard.TankHashNames [name] = #Vanguard.TankList end end - if (#Vanguard.TankList < 5 and playerName ~= "SELFISTANK") then - Vanguard.TankList [#Vanguard.TankList+1] = _UnitName ("player") - Vanguard.TankListHash ["player"] =#Vanguard.TankList + local role = _UnitGroupRolesAssigned ("player") + if (role == "TANK") then + local name, realm = UnitName ("player") + if (realm) then + name = name .. "-" .. realm + end + Vanguard.TankList [#Vanguard.TankList+1] = name + Vanguard.TankHashNames [name] = #Vanguard.TankList end else - Vanguard.TankList [#Vanguard.TankList+1] = _UnitName ("player") - Vanguard.TankListHash ["player"] =#Vanguard.TankList + local name, realm = UnitName ("player") + if (realm) then + name = name .. "-" .. realm + end + Vanguard.TankList [#Vanguard.TankList+1] = name + Vanguard.TankHashNames [name] = #Vanguard.TankList end - for index, tankname in _ipairs (Vanguard.TankList) do - Vanguard.TankFrames [index]:SetTank (tankname) - end - - for i = #Vanguard.TankList+1, 5 do - Vanguard.TankFrames [i]:SetTank (nil, i) - end + Vanguard:RefreshTanks() end - ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---> Build Frames and Gadgets ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - --> Vanguard frame attributes - --[[ - VanguardFrame:SetBackdrop ({ - bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", - tile = true, tileSize = 16, - insets = {left = 1, right = 1, top = 0, bottom = 1},}) - VanguardFrame:SetBackdropColor (.3, .3, .3, .3) ---]] - - VanguardFrame:SetWidth (300) - VanguardFrame:SetHeight (100) - --------> Build two splits bars for damage vs heal and avoid vs hits -------------------------------------------------------------------------------------------------- - - --> Damage Vs Healing bar - local infoFrame = DetailsFrameWork:NewPanel (VanguardFrame, VanguardFrame, "VanguardInfoFrame", "infoFrame", 300, 100) - infoFrame:SetPoint ("topleft", VanguardFrame, "topleft") - infoFrame:Hide() - infoFrame:SetFrameLevel (VanguardFrame:GetFrameLevel() + 10) - - VanguardFrame.InfoShown = false - - infoFrame:SetBackdrop ("Interface\\DialogFrame\\UI-DialogBox-Background-Dark") - infoFrame:SetBackdropColor ("black") - infoFrame:SetGradient ("OnEnter", "black") - - local c = infoFrame:CreateRightClickLabel() - c:SetPoint ("bottomright", infoFrame, "bottomright", -3, 1) - - --> report button - local reportFunc = function (IsCurrent, IsReverse, AmtLines) - local lines = { Loc ["STRING_REPORT"]..": " .. Loc ["STRING_REPORT_AVOIDANCE"] .. ": " .. MyName, - Loc ["STRING_HITS"] .. ": " .. infoFrame ["hitsReceivedAmount"].text, - Loc ["STRING_DODGE"] .. ": " .. infoFrame ["dodgeAmount"].text, - Loc ["STRING_PARRY"] .. ": " .. infoFrame ["parryAmount"].text, - Loc ["STRING_DAMAGETAKEN"] .. ": " .. infoFrame ["damageTakenAmount"].text, - Loc ["STRING_DTPS"] .. ": " .. infoFrame ["damageTakenSecAmount"].text - } - Vanguard:SendReportLines (lines) + function Vanguard:ResetBars() + for i, tankblock in ipairs (Vanguard.TankBlocks) do + local bar = tankblock.heal_inc + bar:SetSplit (50) + bar:SetLeftText (tankblock.tankname_string) + bar:SetRightText ("") + bar:SetRightColor (.25, 0, 0, 1) + bar:SetLeftColor (0, .25, 0, 1) end - - --[1] fucntion wich will build report lines after click on 'Send Button' [2] enable current button [3] enable reverse button - local ReportButton = DetailsFrameWork:NewButton (infoFrame, nil, "DetailsVanguardAvoidanceReportButton", "ReportButton", 20, 20, function() Vanguard:SendReportWindow (reportFunc) end) - ReportButton.texture = "Interface\\COMMON\\VOICECHAT-ON" - ReportButton:SetPoint ("topright", infoFrame, "topright", -5, -1) - ReportButton.tooltip = Loc ["STRING_REPORT_AVOIDANCE_TOOLTIP"] - - infoFrame:SetHook ("OnMouseUp", function (_, button) - --if (string.lower (button):find ("right")) then - VanguardFrame.InfoShown = false - infoFrame:Hide() - if (infoFrame.refreshTick) then - Vanguard:CancelTimer (infoFrame.refreshTick) - infoFrame.refreshTick = nil - end - --end - end) - - local funcInfo = function (self, button) - if (button == "LeftButton") then - VanguardFrame.InfoShown = true - Vanguard:VanguardRefreshInfoFrame() - local w, h = instancia:GetSize() - infoFrame.width = w - infoFrame.height = h - infoFrame:Show() - infoFrame.refreshTick = Vanguard:ScheduleRepeatingTimer ("VanguardRefreshInfoFrame", 1) - - elseif (button == "RightButton") then - local instance = Vanguard:GetPluginInstance() - if (instance) then - _detalhes.switch:ShowMe (instance) - end - - end - end - - --> Info frame widgets: - local healReceived = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealReceived", nil, Loc ["STRING_HEALRECEIVED"]..":", "GameFontHighlightSmall", 9.5) - healReceived:SetPoint (10, -5) - local healReceivedNumber = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealReceivedAmount", nil, "0", "GameFontHighlightSmall", 9.5) - healReceivedNumber:SetPoint ("left", healReceived, "right", 2) - - local healPerSecond = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealHps", nil, Loc ["STRING_HPS"]..":", "GameFontHighlightSmall", 9.5) - healPerSecond:SetPoint (10, -20) - local healPerSecondNumber = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealHealHpsAmount", nil, "0", "GameFontHighlightSmall", 9.5) - healPerSecondNumber:SetPoint ("left", healPerSecond, "right", 2) - - local icon1 = DetailsFrameWork:NewImage (infoFrame, nil, 14, 14, nil, nil, nil, "VanguardInfoHealTop1Icon") - local topHealer1 = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop1", nil, "", "GameFontHighlightSmall", 9.5) - topHealer1:SetWidth (80) - topHealer1:SetHeight (10) - local topHealer1Amount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop1Amount", nil, "", "GameFontHighlightSmall", 9.5) - icon1:SetPoint (10, -35) - topHealer1:SetPoint ("left", icon1, "right", 2) - topHealer1Amount:SetPoint ("left", topHealer1, "right", 2) - - local icon2 = DetailsFrameWork:NewImage (infoFrame, nil, 14, 14, nil, nil, nil, "VanguardInfoHealTop2Icon") - local topHealer2 = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop2", nil, "", "GameFontHighlightSmall", 9.5) - topHealer2:SetWidth (80) - topHealer2:SetHeight (10) - local topHealer2Amount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop2Amount", nil, "", "GameFontHighlightSmall", 9.5) - icon2:SetPoint (10, -50) - topHealer2:SetPoint ("left", icon2, "right", 2) - topHealer2Amount:SetPoint ("left", topHealer2, "right", 2) - - local icon3 = DetailsFrameWork:NewImage (infoFrame, nil, 14, 14, nil, nil, nil, "VanguardInfoHealTop3Icon") - local topHealer3 = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop3", nil, "", "GameFontHighlightSmall", 9.5) - topHealer3:SetWidth (80) - topHealer3:SetHeight (10) - local topHealer3Amount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop3Amount", nil, "", "GameFontHighlightSmall", 9.5) - icon3:SetPoint (10, -64) - topHealer3:SetPoint ("left", icon3, "right", 2) - topHealer3Amount:SetPoint ("left", topHealer3, "right", 2) - - local icon4 = DetailsFrameWork:NewImage (infoFrame, nil, 14, 14, nil, nil, nil, "VanguardInfoHealTop4Icon") - local topHealer4 = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop4", nil, "", "GameFontHighlightSmall", 9.5) - topHealer4:SetWidth (80) - topHealer4:SetHeight (10) - local topHealer4Amount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHealTop4Amount", nil, "", "GameFontHighlightSmall", 9.5) - icon4:SetPoint (10, -80) - topHealer4:SetPoint ("left", icon4, "right", 2) - topHealer4Amount:SetPoint ("left", topHealer4, "right", 2) - - local iconTable = {icon1, icon2, icon3, icon4} - local healerTable = {topHealer1, topHealer2, topHealer3, topHealer4} - local healerAmountTable = {topHealer1Amount, topHealer2Amount, topHealer3Amount, topHealer4Amount} - - local hitsReceived = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHitsReceived", nil, Loc ["STRING_HITS"], "GameFontHighlightSmall", 9.5) - hitsReceived:SetPoint (150, -5) - local hitsReceivedAmount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoHitsReceivedAmount", "hitsReceivedAmount", "0", "GameFontHighlightSmall", 9.5) - hitsReceivedAmount:SetPoint ("left", hitsReceived, "right", 2) - - local dodge = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoDodge", nil, Loc ["STRING_DODGE"], "GameFontHighlightSmall", 9.5) - dodge:SetPoint (150, -20) - local dodgeAmount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoDodgeAmount", "dodgeAmount", "0", "GameFontHighlightSmall", 9.5) - dodgeAmount:SetPoint ("left", dodge, "right", 2) - - local parry = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoParry", nil, Loc ["STRING_PARRY"], "GameFontHighlightSmall", 9.5) - parry:SetPoint (150, -35) - local parryAmount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoParryAmount", "parryAmount", "0", "GameFontHighlightSmall", 9.5) - parryAmount:SetPoint ("left", parry, "right", 2) - - local damageTaken = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoDamageTaken", nil, Loc ["STRING_DAMAGETAKEN"], "GameFontHighlightSmall", 9.5) - damageTaken:SetPoint (150, -50) - local damageTakenAmount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoDamageTakenAmount", "damageTakenAmount", "0", "GameFontHighlightSmall", 9.5) - damageTakenAmount:SetPoint ("left", damageTaken, "right", 2) - - local damageTakenSec = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoDamageSec", nil, Loc ["STRING_DTPS"], "GameFontHighlightSmall", 9.5) - damageTakenSec:SetPoint (150, -65) - local damageTakenSecAmount = DetailsFrameWork:NewLabel (infoFrame, nil, "VanguardInfoDamageTakenSecAmount", "damageTakenSecAmount", "0", "GameFontHighlightSmall", 9.5) - damageTakenSecAmount:SetPoint ("left", damageTakenSec, "right", 2) - ---------- - --> need to be a member of _detalhes bacause we want to use a schedule timer - --> once a member of _detalhes we can call through plugin object like Vanguard:VanguardRefreshInfoFrame() - _detalhes.VanguardRefreshInfoFrame = function() - - --> data mine - - --> Get heal actor - local actorHeal = Vanguard:GetActor ("current", DETAILS_ATTRIBUTE_HEAL, _track_player_name) --> [1] combat [2] attribute [3] name - local combat = Vanguard:GetCombat ("current") - - if (actorHeal) then - --> members can be found at details/classes/classe_heal line 75 - healReceivedNumber.text = Vanguard:ToK (actorHeal.healing_taken or 0) - healPerSecondNumber.text = Vanguard:ToK (actorHeal.healing_taken / combat:GetCombatTime()) - - local heal_from = actorHeal.healing_from --> table with [name] = true - local myReceivedHeal = {} - - for actorName, _ in pairs (heal_from) do - local thisActor = Vanguard:GetActor ("current", DETAILS_ATTRIBUTE_HEAL, actorName) - local targets = thisActor.targets --> targets is a container with target classes - local amount = targets [_track_player_name] or 0 - myReceivedHeal [#myReceivedHeal+1] = {actorName, amount} - end - - _table_sort (myReceivedHeal, Vanguard.Sort2) --> Sort2 sort by second index - - for i = 1, 4 do - if (myReceivedHeal[i]) then - healerTable [i].text = myReceivedHeal[i][1]..":" - healerAmountTable[i].text = Vanguard:ToK (myReceivedHeal[i][2] or 0) - iconTable [i].texture = Vanguard.class_icons_small - - local _, L, R, T, B = Vanguard:GetClass (myReceivedHeal[i][1]) - if (L) then - iconTable [i]:SetTexCoord (L, R, T, B) - end - else - iconTable [i].texture = nil - healerTable [i].text = "-- -- --" - healerAmountTable[i].text = "" - end - end - else - --> reset - healReceivedNumber.text = "0" - healPerSecondNumber.text = "0" - for i = 1, 4 do - iconTable [i].texture = nil - healerTable [i].text = "-- -- --" - healerAmountTable[i].text = "" - end - end - - --> Get damage actor - local actorDamage = Vanguard:GetActor ("current", DETAILS_ATTRIBUTE_DAMAGE, _track_player_name) --> [1] combat [2] attribute [3] name - if (actorDamage and actorDamage.avoidance) then - --> members can be found at details/classes/classe_damage line 75 - local avoidance = actorDamage.avoidance --> table with DODGE, PARRY, HITS members - - local totalAvoid = avoidance.overall.DODGE + avoidance.overall.PARRY - local totalOver = totalAvoid + avoidance.overall.HITS - - if (totalOver > 0) then - hitsReceivedAmount.text = avoidance.overall.HITS .. " (" .. _math_floor (avoidance.overall.HITS / totalOver * 100) .. "%)" - dodgeAmount.text = avoidance.overall.DODGE .. " (" .. _math_floor (avoidance.overall.DODGE / totalOver * 100) .. "%)" - parryAmount.text = avoidance.overall.PARRY .. " (" .. _math_floor (avoidance.overall.PARRY / totalOver * 100) .. "%)" - else - hitsReceivedAmount.text = "0 (0%)" - dodgeAmount.text = "0 (0%)" - parryAmount.text = "0 (0%)" - end - - damageTakenAmount.text = Vanguard:ToK (actorDamage.damage_taken) - damageTakenSecAmount.text = Vanguard:ToK (actorDamage.damage_taken / combat:GetCombatTime()) - else - hitsReceivedAmount.text = "0" - dodgeAmount.text = "0" - parryAmount.text = "0" - damageTakenAmount.text = "0" - damageTakenSecAmount.text = "0" - end - - end - - local DamageVsHeal = DetailsFrameWork:NewSplitBar (VanguardFrame, VanguardFrame, "VanguardDamageVsHealBar", "DamageVsHealBar", 294, 14) - - DamageVsHeal:SetPoint (3, -3) - - DamageVsHeal.fontsize = 10 - DamageVsHeal.lefticon = "Interface\\ICONS\\misc_arrowright" - DamageVsHeal.righticon = "Interface\\ICONS\\misc_arrowleft" - DamageVsHeal.tooltip = Loc ["STRING_HEALVSDAMAGETOOLTIP"] - DamageVsHeal:SetHook ("OnMouseUp", funcInfo) - - DamageVsHeal.iconleft:SetVertexColor (.5, 1, .5, 1) - DamageVsHeal.iconright:SetVertexColor (1, .5, .5, 1) - - Vanguard.DamageVsHeal = DamageVsHeal - - --> Hits vs Avoidance bar - local TookVsAvoid = DetailsFrameWork:NewSplitBar (VanguardFrame, VanguardFrame, "VanguardTookVsAvoidBar", "TookVsAvoidBar", 294, 14) - TookVsAvoid:SetPoint ("topleft", VanguardFrame, 3, -18) - TookVsAvoid.lefticon = "Interface\\TIMEMANAGER\\RWButton" - TookVsAvoid.righticon = "Interface\\TIMEMANAGER\\FFButton" - TookVsAvoid.tooltip = Loc ["STRING_AVOIDVSHITSTOOLTIP"] - TookVsAvoid:SetHook ("OnMouseUp", funcInfo) - - TookVsAvoid.iconleft:SetWidth (18) - TookVsAvoid.iconleft:SetHeight (18) - TookVsAvoid.iconleft:SetPoint ("left", VanguardTookVsAvoidBar, "left", -2, 0) - TookVsAvoid.iconright:SetWidth (18) - TookVsAvoid.iconright:SetHeight (18) - TookVsAvoid.iconright:SetPoint ("right", VanguardTookVsAvoidBar, "right", 3, 0) - - Vanguard.TookVsAvoid = TookVsAvoid - - --> Reset both splits bars - function Vanguard:ResetBars() - - TookVsAvoid:SetSplit (50) - TookVsAvoid:SetLeftText ("Avoid") --> localize-me - TookVsAvoid:SetRightText ("Hits") --> localize-me - TookVsAvoid:SetRightColor (.25, 0, 0, 1) --> .1, .5, .5, 1 cor boa pr pet - TookVsAvoid:SetLeftColor (0, .25, 0, 1) - - DamageVsHeal:SetSplit (50) - DamageVsHeal:SetLeftText ("Inc Heal") --> localize-me - DamageVsHeal:SetRightText ("Inc Damage") --> localize-me - DamageVsHeal:SetLeftColor (.1, .9, .1, 1) - DamageVsHeal:SetRightColor (.9, .1, .1, 1) - end - ----------> build damage text entries --------------------------------------------------------------------------------------------------------------------------------------------------------- - - --> entry functions - Vanguard.DamageLabels = {} - Vanguard.DamageLabels.Spots = 6 - - function Vanguard:InsertDamage (damage, index, hp) - Vanguard.DamageLabels [index]:SetText (_detalhes:ToK (damage)) - local percent = damage / hp - local abs = _math_abs (percent-1) - Vanguard.DamageLabels [index]:SetTextColor (1, abs, abs, 1) - end - - function Vanguard:ResetDamage() - for i = 1, Vanguard.DamageLabels.Spots do - Vanguard.DamageLabels [i]:SetText ("0.0k") - Vanguard.DamageLabels [i]:SetTextColor (1, 1, 1, 1) - Vanguard.DamageLabels [i]:Show() - end - for i = Vanguard.DamageLabels.Spots + 1, #Vanguard.DamageLabels do - Vanguard.DamageLabels [i]:Hide() - end - end - - --> bg frame - local LastHitsBackground = DetailsFrameWork:NewPanel (VanguardFrame, _, "DetailsVanguardRowBackground", "DamageRowBackground", 296, 20) - LastHitsBackground:SetPoint ("topleft", VanguardFrame, 2, -35) - LastHitsBackground.tooltip = Loc ["STRING_DAMAGESCROLL"] - Vanguard.LastHitsBackground = LastHitsBackground - - --> labels - - for i = 1, Vanguard.DamageLabels.Spots do - local ThisLabel = DetailsFrameWork:NewLabel (LastHitsBackground, Vanguard, nil, "DamageLabel"..i, "0.0k", "GameFontHighlightSmall", 11, {1, 1, 1, 1}) - Vanguard.DamageLabels [i] = ThisLabel - ThisLabel:SetPoint ("left", LastHitsBackground.frame, 9 + ((i-1)*50), 0) - end - - function Vanguard:OnResizeDamageLabels() - local w, h = instancia:GetSize() - LastHitsBackground.width = w - 6 - - local amt = math.floor (w / 50) - - if (amt > Vanguard.DamageLabels.Spots) then - for i = Vanguard.DamageLabels.Spots + 1, amt do - local ThisLabel = DetailsFrameWork:NewLabel (LastHitsBackground, Vanguard, nil, "DamageLabel"..i, "0.0k", "GameFontHighlightSmall", 11, {1, 1, 1, 1}) - Vanguard.DamageLabels [i] = ThisLabel - ThisLabel:SetPoint ("left", LastHitsBackground.frame, 9 + ((i-1)*50), 0) - end - end - - Vanguard.DamageLabels.Spots = amt - Vanguard:ResetDamage() - end - - ----------> build 3 tanks debuff frames ------------------------------------------------------------------------------------------------------------------------------------------------------- - - local tankframemeta = {} - tankframemeta.__index = tankframemeta - - - - --> update tank information - function tankframemeta:SetTank (name, index) - if (not name) then - self.name = nil - self.TankName:SetText ("Tank "..index) - self.Frame:SetBackdropBorderColor (.5, .5, .5, 1) - - else - self.name = name - self.TankName:SetText (name) - - -- GetClass return [1] unlocalized class [2-5] TexCoords [6-8] RGB colors - local class, L, R, T, B, Red, Green, Blue = Vanguard:GetClass (name) - if (class) then - local color = RAID_CLASS_COLORS [class] - self.Frame:SetBackdropBorderColor (Red, Green, Blue, 1) - self.Frame:SetBackdropColor (Red, Green, Blue, 1) - self.Frame.tanknamebg:SetVertexColor (Red, Green, Blue, .8) - end - end - - self:Disable() - end - - --> refresh debuff information - function tankframemeta:Update (index, icon, expire, count, name) - - if (not icon) then - self ["Icon"..index]:SetTexture (nil) - self ["Icon"..index.."DurationText"]:SetText ("") - self ["Icon"..index.."StackText"]:SetText ("") - self ["BlackBG"..index]:Hide() - self ["Icon"..index.."Frame"].tooltip = nil - - local debuffName = self.DebuffsName [index] - self.DebuffsName [index] = nil - self.DebuffsIndex [debuffName] = nil - self.FreeSpots [index] = true - self.InUse = self.InUse - 1 - return - end - - self ["Icon"..index]:SetTexture (icon) - local minutos, segundos = _math_floor (expire/60), _math_floor (expire%60) - if (minutos > 0) then - self ["Icon"..index.."DurationText"]:SetText (minutos..":"..segundos) - Vanguard:SetFontSize (self ["Icon"..index.."DurationText"], 10) - self ["Icon"..index.."Frame"].tooltip = Loc ["STRING_DEBUFF"] .. ": " .. name .. "\n" .. Loc ["STRING_DURATION"] .. ":" .. minutos..":"..segundos - else - self ["Icon"..index.."DurationText"]:SetText (_math_floor (expire)) - Vanguard:SetFontSize (self ["Icon"..index.."DurationText"], 18) - self ["Icon"..index.."Frame"].tooltip = Loc ["STRING_DEBUFF"] .. ": " .. name .. "\n" .. Loc ["STRING_DURATION"] .. ":" .. _math_floor (expire) - end - self ["Icon"..index.."StackText"]:SetText (count) - self ["BlackBG"..index]:Show() - end - - --> clear all texts and icons - function tankframemeta:Disable() - self.Icon1:SetTexture (nil) - self.Icon1DurationText:SetText ("") - self.Icon1StackText:SetText ("") - self.Icon1Frame.tooltip = nil - self.BlackBG1:Hide() - - self.Icon2:SetTexture (nil) - self.Icon2DurationText:SetText ("") - self.Icon2StackText:SetText ("") - self.Icon2Frame.tooltip = nil - self.BlackBG2:Hide() - - self.Icon3:SetTexture (nil) - self.Icon3DurationText:SetText ("") - self.Icon3StackText:SetText ("") - self.Icon3Frame.tooltip = nil - self.BlackBG3:Hide() - - table.wipe (self.DebuffsName) - table.wipe (self.DebuffsIndex) - for i = 1, 3 do - self.FreeSpots [i] = true - end - self.InUse = 0 - end - - function Vanguard:ResetDebuffs() - for _, TankFrame in _ipairs (Vanguard.TankFrames) do - TankFrame:Disable() - end - end - - function Vanguard:UpdateHealth (index, unit) - local percent = _UnitHealth (unit) / _UnitHealthMax (unit) * 100 - Vanguard.TankFrames [index].Life (percent) - end - - --> build the boxes - Vanguard.TankFrames = {} - Vanguard.TankFrames.Spots = 5 - - local iconMouseOver = function (iconFrame) - iconFrame.icon:SetBlendMode ("ADD") - local OnEnterColors = iconFrame.parent.Gradient.OnEnter - local _r, _g, _b, _a = iconFrame.parent:GetBackdropColor() - DetailsFrameWork:GradientEffect (iconFrame.parent, "frame", _r, _g, _b, _a, OnEnterColors[1], OnEnterColors[2], OnEnterColors[3], OnEnterColors[4], .3) - end - local iconMouseOut = function (iconFrame) - iconFrame.icon:SetBlendMode ("BLEND") - local _r, _g, _b, _a = iconFrame.parent:GetBackdropColor() - if (_r) then - local OnLeaveColors = iconFrame.parent.Gradient.OnLeave - DetailsFrameWork:GradientEffect (iconFrame.parent, "frame", _r, _g, _b, _a, OnLeaveColors[1], OnLeaveColors[2], OnLeaveColors[3], OnLeaveColors[4], .3) - end - end - - for i = 1, Vanguard.TankFrames.Spots do - - local ThisBoxObject = {} - setmetatable (ThisBoxObject, tankframemeta) - - ThisBoxObject.DebuffsIndex = {} - ThisBoxObject.DebuffsName = {} - ThisBoxObject.FreeSpots = {true, true, true} - ThisBoxObject.InUse = 0 - - local Frame = DetailsFrameWork:NewPanel (VanguardFrame, nil, "DetailsVanguardFrameBox"..i, _, 95, 40) - Frame:SetPoint ("bottomleft", VanguardFrame, 2 + ((i-1)*95), 0) - Frame.color = {.1, .1, .1, 1} - ThisBoxObject.Frame = Frame - - local life = DetailsFrameWork:NewBar (Frame, Frame, "DetailsVanguardFrameBox"..i.."Life", nil, 91, 36, 100) - life:SetPoint (Frame, 2, -2) - life:SetFrameLevel (-1, Frame) - ThisBoxObject.Life = life - - local tanknameTexture = DetailsFrameWork:NewImage (Frame, "Interface\\ACHIEVEMENTFRAME\\UI-Achievement-Parchment-Highlight", 80, 10, nil, nil, "tanknamebg", "DetailsVanguardTankName"..i.."bG" ) - - tanknameTexture:SetTexCoord (0.15234375, 0.82421875, 0, 0.2734375) - tanknameTexture:SetPoint ("center", Frame) - tanknameTexture:SetPoint ("top", Frame, "top", 0, -3) - - - local tankname = DetailsFrameWork:NewLabel (Frame, Vanguard, nil, "DetailsVanguardTankName"..i, "Tank "..i, "GameFontHighlightSmall", 10, {1, 1, 1, 1}) - tankname:SetPoint ("center", Frame) - tankname:SetPoint ("top", Frame, "top", 0, -2) - ThisBoxObject.TankName = tankname - - ------------------------------------------------------------------------------------- - - local Icon1 = DetailsFrameWork:NewImage (Frame, "Interface\\ICONS\\Ability_Creature_Amber_02", 24, 24, nil, nil, nil, "DetailsVanguardFrameBox"..i.."Icon1") - Icon1:SetDrawLayer ("overlay", 1) - Icon1:SetPoint ("bottomleft", ThisBoxObject.Frame.frame, 4, 3) - - local frameIcon1 = DetailsFrameWork:NewPanel (Frame, VanguardFrame, "DetailsVanguardFrameBox"..i.."IconBG1", nil, 24, 24, false) - frameIcon1:SetPoint (Icon1) - frameIcon1.widget.icon = Icon1 - frameIcon1.widget.parent = Frame.widget - frameIcon1:SetHook ("OnEnter", iconMouseOver) - frameIcon1:SetHook ("OnLeave", iconMouseOut) - - local Icon1Text = DetailsFrameWork:NewLabel (ThisBoxObject.Frame.frame, Vanguard, "DetailsVanguardFrameBox"..i.."Text1", nil, "25", "GameFontHighlightLarge", 18, {1, 1, 0, 1}) - Icon1Text:SetPoint ("center", Icon1, "center") - - local blackbg1 = DetailsFrameWork:NewImage (Frame, nil, 12, 12, nil, nil, nil, "DetailsVanguardFrameBox"..i.."BlackBG1") - blackbg1:SetDrawLayer ("overlay", 2) - blackbg1:SetTexture (0, 0, 0, 1) - blackbg1:SetPoint ("bottomright", Icon1, 5, -5) - - local Icon1Text2 = DetailsFrameWork:NewLabel (Frame, Vanguard, "DetailsVanguardFrameBox"..i.."Text21", nil, "1", "GameFontHighlightSmall", 13, {1, 1, 1, 1}) - Icon1Text2:SetPoint ("center", blackbg1, "center") - - ThisBoxObject.Icon1 = Icon1 - ThisBoxObject.Icon1Frame = frameIcon1 - ThisBoxObject.Icon1DurationText = Icon1Text - ThisBoxObject.Icon1StackText = Icon1Text2 - ThisBoxObject.BlackBG1 = blackbg1 - - ------------------------------------------------------------------------------------- - - local Icon2 = DetailsFrameWork:NewImage (Frame, "Interface\\ICONS\\Ability_Creature_Amber_02", 24, 24, nil, nil, nil, "DetailsVanguardFrameBox"..i.."Icon2") - Icon2:SetDrawLayer ("overlay", 1) - Icon2:SetPoint ("bottomleft", Frame, 37, 3) - - local frameIcon2 = DetailsFrameWork:NewPanel (Frame, VanguardFrame, "DetailsVanguardFrameBox"..i.."IconBG2", nil, 24, 24, false) - frameIcon2:SetPoint (Icon2) - frameIcon2.widget.icon = Icon2 - frameIcon2.widget.parent = Frame.widget - frameIcon2:SetHook ("OnEnter", iconMouseOver) - frameIcon2:SetHook ("OnLeave", iconMouseOut) - - local Icon2Text = DetailsFrameWork:NewLabel (Frame, Vanguard, "DetailsVanguardFrameBox"..i.."Text2", nil, "3", "GameFontHighlightLarge", 18, {1, 1, 0, 1}) - Icon2Text:SetPoint ("center", Icon2, "center") - - local blackbg2 = DetailsFrameWork:NewImage (Frame, nil, 12, 12, nil, nil, nil, "DetailsVanguardFrameBox"..i.."BlackBG2") - blackbg2:SetDrawLayer ("overlay", 2) - blackbg2:SetTexture (0, 0, 0, 1) - blackbg2:SetPoint ("bottomright", Icon2, 5, -5) - - local Icon2Text2 = DetailsFrameWork:NewLabel (Frame, Vanguard, "DetailsVanguardFrameBox"..i.."Text22", nil, "2", "GameFontHighlightSmall", 13, {1, 1, 1, 1}) - Icon2Text2:SetPoint ("center", blackbg2, "center") - - ThisBoxObject.Icon2 = Icon2 - ThisBoxObject.Icon2Frame = frameIcon2 - ThisBoxObject.Icon2DurationText = Icon2Text - ThisBoxObject.Icon2StackText = Icon2Text2 - ThisBoxObject.BlackBG2 = blackbg2 - - ------------------------------------------------------------------------------------- - - local Icon3 = DetailsFrameWork:NewImage (Frame, "Interface\\ICONS\\Ability_Creature_Amber_02", 24, 24, nil, nil, nil, "DetailsVanguardFrameBox"..i.."Icon3") - Icon3:SetDrawLayer ("overlay", 1) - Icon3:SetPoint ("bottomleft", ThisBoxObject.Frame.frame, 70, 3) - - local frameIcon3 = DetailsFrameWork:NewPanel (Frame, VanguardFrame, "DetailsVanguardFrameBox"..i.."IconBG3", nil, 24, 24, false) - frameIcon3:SetPoint (Icon3) - frameIcon3.widget.icon = Icon3 - frameIcon3.widget.parent = Frame.widget - frameIcon3:SetHook ("OnEnter", iconMouseOver) - frameIcon3:SetHook ("OnLeave", iconMouseOut) - - local Icon3Text = DetailsFrameWork:NewLabel (ThisBoxObject.Frame.frame, Vanguard, "DetailsVanguardFrameBox"..i.."Text3", nil, "5", "GameFontHighlightLarge", 18, {1, 1, 0, 1}) - Icon3Text:SetPoint ("center", Icon3, "center") - - local blackbg3 = DetailsFrameWork:NewImage (Frame, nil, 12, 12, nil, nil, nil, "DetailsVanguardFrameBox"..i.."BlackBG3") - blackbg3:SetDrawLayer ("overlay", 2) - blackbg3:SetTexture (0, 0, 0, 1) - blackbg3:SetPoint ("bottomright", Icon3, 5, -5) - - local Icon3Text2 = DetailsFrameWork:NewLabel (Frame, Vanguard, "DetailsVanguardFrameBox"..i.."Text23", nil, "3", "GameFontHighlightSmall", 13, {1, 1, 1, 1}) - Icon3Text2:SetPoint ("center", blackbg2, "center") - - ThisBoxObject.Icon3 = Icon3 - ThisBoxObject.Icon3Frame = frameIcon3 - ThisBoxObject.Icon3DurationText = Icon3Text - ThisBoxObject.Icon3StackText = Icon3Text2 - ThisBoxObject.BlackBG3 = blackbg3 - - Vanguard.TankFrames [#Vanguard.TankFrames+1] = ThisBoxObject - - blackbg1:Hide() - blackbg2:Hide() - blackbg3:Hide() - end - - function Vanguard:OnResizeTankBoxes() - local w, h = instancia:GetSize() - local amt = math.floor (w / 95) - - for i = 1, amt do - Vanguard.TankFrames [i].Frame:Show() - end - - for i = amt+1, #Vanguard.TankFrames do - Vanguard.TankFrames [i].Frame:Hide() - end - - Vanguard.TankFrames.Spots = amt - - end - --------> Core function -------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - --> cancel function - function Vanguard:Cancel() - VanguardFrame:SetScript ("OnUpdate", nil) - return true end - --> when target change, need to verify if the new target is a player, if true, cancel everething and restart - function Vanguard:TargetChanged() - - local NewTarget = _UnitName ("target") - if (NewTarget and _UnitIsPlayer ("target")) then - if (VanguardFrame.InfoShown and not Vanguard.Running) then - _track_player_name = NewTarget - Vanguard:VanguardRefreshInfoFrame() - return + function Vanguard:ResetBlocks() + for i, tblock in ipairs (Vanguard.TankBlocks) do + tblock.statusbar:SetValue (100) + tblock.debuffs_using = 0 + tblock.debuffs_next_index = 1 + + for i = 1, 3 do + local dblock = tblock.debuffs_blocks [i] + dblock.texture:SetTexture (nil) + dblock.stack:SetText ("") + dblock.stack_bg:Hide() + dblock:SetCooldown (0, 0, 0, 0) + dblock.in_use = nil + dblock.support.spellid = nil end + end + end + + local SetTank = function (self, index) + local name = Vanguard.TankList [index] + self.tankname:SetText (Vanguard:GetOnlyName (name)) + self.tankname_string = name - Vanguard:Cancel() - Vanguard:Start() + local bar = self.heal_inc + bar.tankname = name + + local class, left, right, top, bottom, r, g, b = Vanguard:GetClass (name) + + local spec = Vanguard:GetSpec (name) + + if (spec) then + self.specicon:SetTexture (Vanguard.CurrentInstance.row_info.spec_file) + self.specicon:SetTexCoord (_unpack (Vanguard.class_specs_coords [spec])) else - _track_player_name = UnitName ("player") + self.specicon:SetTexture (Vanguard.CurrentInstance.row_info.icon_file) + self.specicon:SetTexCoord (left, right, top, bottom) + end + + self.texture:SetVertexColor (r, g, b) + + bar.lefticon = Vanguard.CurrentInstance.row_info.icon_file + bar.iconleft:SetTexCoord (left, right, top, bottom) + bar:SetLeftText (Vanguard:GetOnlyName (name)) + bar:SetLeftText (name) + + end + + local debuff_on_enter = function (self) + if (self.spellid) then + GameTooltip:SetOwner (self, "ANCHOR_TOPLEFT") + GameTooltip:SetSpellByID (self.spellid) + GameTooltip:Show() + end + end + local debuff_on_leave = function (self) + if (self.spellid) then + GameTooltip:Hide() + end + end + + function Vanguard:CreateTankBlock (index) + --frame + local f = CreateFrame ("button", "VanguardTankBlock" .. index, VanguardFrame) + f.SetTank = SetTank + f:SetSize (150, 50) + f:SetPoint ("bottomleft", VanguardFrame, "bottomleft", 5 + ((index-1) * 155), 5) + f:SetBackdrop ({bgFile = [[Interface\AddOns\Details\images\background]], tile = true, tileSize = 16, insets = {left = 0, right = 0, top = 0, bottom = 0}, edgeFile = [[Interface\DialogFrame\UI-DialogBox-Border]], edgeSize = 10}) + + --statusbar + f.statusbar = CreateFrame ("statusbar", nil, f) + f.statusbar:SetPoint ("topleft", f, "topleft", 5, -5) + f.statusbar:SetPoint ("bottomright", f, "bottomright", -5, 5) + f.texture = f.statusbar:CreateTexture (nil, "artwork") + f.statusbar:SetStatusBarTexture (f.texture) + f.statusbar:SetMinMaxValues (0, 100) + f.statusbar:SetValue (100) + + f.texture:SetTexture ([[Interface\AddOns\Details\images\bar_serenity]]) + + --spec icon + f.specicon = f.statusbar:CreateTexture (nil, "overlay") + f.specicon:SetPoint ("topleft", f, "topleft", 5, -5) + f.specicon:SetSize (14, 14) + + --tank name + f.tankname = f.statusbar:CreateFontString (nil, "overlay", "GameFontNormal") + f.tankname:SetPoint ("left", f.specicon, "right", 2, 0) + + --debuff icons + f.debufficons = {} + + --inc heals inc damage + f.heal_inc = framework:NewSplitBar (VanguardFrame, VanguardFrame, "VanguardDamageVsHeal" .. index, "DamageVsHeal" .. index, 294, 14) + f.heal_inc:SetPoint ("topleft", VanguardFrame, "topleft", 3, -3 + ((index - 1) * -16)) + f.heal_inc:SetPoint ("topright", VanguardFrame, "topright", -3, -3 + ((index - 1) * -16)) + + f.heal_inc.fontsize = 10 + f.heal_inc.righticon = "Interface\\ICONS\\misc_arrowleft" + f.heal_inc.iconright:SetVertexColor (1, .5, .5, 1) + + --debuffs blocks + f.debuffs_blocks = {} + f.debuffs_using = 0 + f.debuffs_next_index = 1 + for i = 1, 3 do + local support_frame = CreateFrame ("frame", nil, f) + support_frame:SetFrameLevel (f:GetFrameLevel()+1) + support_frame:SetSize (24, 24) + support_frame:SetPoint ("bottomleft", f, "bottomleft", 5 + ((i-1) * 35), 5) + support_frame:SetScript ("OnEnter", debuff_on_enter) + support_frame:SetScript ("OnLeave", debuff_on_leave) + local texture = support_frame:CreateTexture (nil, "overlay") + texture:SetSize (24, 24) + texture:SetPoint ("bottomleft", f, "bottomleft", 5 + ((i-1) * 35), 5) + + local dblock = CreateFrame ("cooldown", "VanguardTankBlock" .. index.. "Cooldown" .. i, support_frame, "CooldownFrameTemplate") + dblock:SetPoint ("topleft", texture, "topleft") + dblock:SetPoint ("bottomright", texture, "bottomright") + dblock.texture = texture + + local stack = dblock:CreateFontString (nil, "overlay", "GameFontNormal") + stack:SetPoint ("bottomright", dblock, "bottomright", 8, 0) + local stack_bg = dblock:CreateTexture (nil, "artwork") + stack_bg:SetTexture (0, 0, 0) + stack_bg:SetPoint ("bottomright", dblock, "bottomright", 8, 0) + stack_bg:SetSize (12, 12) + + dblock.stack = stack + dblock.stack_bg = stack_bg + dblock.support = support_frame + + f.debuffs_blocks [i] = dblock + end + + Vanguard.TankBlocks [index] = f + return f + end + + function Vanguard:RefreshTanks() + + for i = 1, #Vanguard.TankList do + local block = Vanguard.TankBlocks [i] + if (not block) then + block = Vanguard:CreateTankBlock (i) + end + + block:SetTank (i) + end + + if (Vanguard.Running) then + Vanguard:CombatEnd() + Vanguard:CombatStart() end end - --> inject into details a delayed function for vanguard - function _detalhes:VanguardWait() - Vanguard:Start() + function Vanguard:TrackIncoming() + + for tank_name, block_index in pairs (Vanguard.TankHashNames) do + + local shields = UnitGetTotalAbsorbs (tank_name) or 0 + local heals = UnitGetIncomingHeals (tank_name) or 0 + + local events_table = Vanguard.CurrentCombat.player_last_events [tank_name] + local taken = 0 + if (events_table) then + for _, event in ipairs (events_table) do + if (event [1] and event [4]+5 > time()) then --> damage + taken = taken + event [3] + end + end + + taken = taken / 3.5 + end + + local tframe = Vanguard.TankBlocks [block_index] + tframe.heal_inc:SetLeftText (Vanguard:ToK (shields + heals) .. " (|cFFFFFF55A: " .. Vanguard:ToK (shields) .. "|r)") + tframe.heal_inc:SetRightText (Vanguard:ToK ( _math_floor (taken))) + + heals = heals + shields + + if (taken > 0 and heals > 0) then + if (taken > heals) then + local p = heals / taken * 100 + p = _math_abs (p - 100) + + p = p / 2 + p = p + 50 + p = _math_abs (p - 100) + tframe.heal_inc:SetSplit (p) + else + local p = taken / heals * 100 + p = _math_abs (p - 100) + p = p / 2 + p = p + 50 + + tframe.heal_inc:SetSplit (p) + end + elseif (taken > 0) then + tframe.heal_inc:SetSplit (6) + elseif (heals > 0) then + tframe.heal_inc:SetSplit (94) + end + + end end - --> main onupdate locals - local hits_last = 0 - local hits_taken = {} - local hits_now = 0 + function Vanguard:CombatStart() - local avoid_last = 0 - local avoid_taken = {} - local avoid_now = 0 - - local damage_last = 0 - local damage_taken = {} - local damage_now = 0 - - local on_second_tick = 0 - local half_second_tick = 0 - - -- úpdate - local onupdate = function (self, elapsed) - - half_second_tick = half_second_tick + elapsed - on_second_tick = on_second_tick + elapsed + Vanguard.Running = true + VanguardFrame:RegisterEvent ("UNIT_HEALTH") + --Vanguard:TrackDebuffsAlreadyApplied() + VanguardFrame:RegisterEvent ("COMBAT_LOG_EVENT_UNFILTERED") - if (on_second_tick >= 0.3) then - - --> capture debuffs - for TankIndex, TankName in _ipairs (Vanguard.TankList) do - - local ThisTankFrame = Vanguard.TankFrames [TankIndex] + if (Vanguard.track_incoming) then + Vanguard:CancelTimer (Vanguard.track_incoming) + end + Vanguard.track_incoming = Vanguard:ScheduleRepeatingTimer ("TrackIncoming", 0.1) + + end + + function Vanguard:CombatEnd() + + Vanguard.Running = false + VanguardFrame:UnregisterEvent ("UNIT_HEALTH") + VanguardFrame:UnregisterEvent ("COMBAT_LOG_EVENT_UNFILTERED") + + if (Vanguard.track_incoming) then + Vanguard:CancelTimer (Vanguard.track_incoming) + end + + end + + function Vanguard:DebuffRefreshed (who_name, spellid) + local tank_index = Vanguard.TankHashNames [who_name] + --print ("On Refres tank index:", tank_index) + if (tank_index) then + local tframe = Vanguard.TankBlocks [tank_index] + --print ("Tank index OKE, tframe:", tframe) + for i = 1, 3 do + local dblock = tframe.debuffs_blocks [i] + if (dblock.support.spellid == spellid) then + --print ("REFRESH OKEY!") - if (not ThisTankFrame) then - break + local debuff_name = GetSpellInfo (spellid) + local _, _, icon, count, _, duration, expirationTime = _UnitDebuff (who_name, debuff_name) + + dblock.texture:SetTexture (icon) + if (count and count > 0) then + dblock.stack:SetText (count) + dblock.stack_bg:Show() + else + dblock.stack:SetText ("") + dblock.stack_bg:Hide() end - local updated = {false, false, false} + dblock:SetCooldown (GetTime(), expirationTime-GetTime(), 0, 0) - for i = 1, 41 do - - -- pega o primeiro debuff - local name, _, icon, count, _, duration, expirationTime, _, _, _, spellId = _UnitDebuff (TankName, i) - - if (name) then - - --> already shown? - local debuffShowingIndex = ThisTankFrame.DebuffsIndex [name] - if (debuffShowingIndex) then - - local expire = expirationTime - _GetTime() - updated [debuffShowingIndex] = true - ThisTankFrame:Update (debuffShowingIndex, icon, expire, count, name) - - --> have a free slot? - elseif (ThisTankFrame.InUse < 3) then - - local expire = expirationTime - _GetTime() - if (expire < 180 and expire > 0) then - for o = 1, 3 do - if (ThisTankFrame.FreeSpots [o]) then - ThisTankFrame.DebuffsIndex [name] = o - ThisTankFrame.DebuffsName [o] = name - ThisTankFrame.FreeSpots [o] = false - ThisTankFrame.InUse = ThisTankFrame.InUse + 1 - updated [o] = true - ThisTankFrame:Update (o, icon, expire, count, name) - break - end - end - end - end - - else + break + end + end + end + end + + function Vanguard:DebuffRemoved (who_name, spellid) + local tank_index = Vanguard.TankHashNames [who_name] + if (tank_index) then + local tframe = Vanguard.TankBlocks [tank_index] + for i = 1, 3 do + local dblock = tframe.debuffs_blocks [i] + if (dblock.support.spellid == spellid) then + dblock.texture:SetTexture (nil) + dblock.stack:SetText ("") + dblock.stack_bg:Hide() + dblock:SetCooldown (0, 0, 0, 0) + dblock.in_use = nil + dblock.support.spellid = nil + for o = 1, 3 do + if (not tframe.debuffs_blocks [o].in_use) then + tframe.debuffs_next_index = o break end end + tframe.debuffs_using = tframe.debuffs_using - 1 + break + end + end + end + end + + function Vanguard:DebuffApplied (who_name, spellid) + local tank_index = Vanguard.TankHashNames [who_name] + + if (tank_index) then + local tframe = Vanguard.TankBlocks [tank_index] + if (tframe.debuffs_using < 3) then + local next_index = tframe.debuffs_next_index + if (next_index) then + local dblock = tframe.debuffs_blocks [next_index] + + local debuff_name = GetSpellInfo (spellid) + local _, _, icon, count, _, duration, expirationTime = _UnitDebuff (who_name, debuff_name) + + if (not icon) then + return + end + + if (not duration) then + duration = 999 + end + + dblock.texture:SetTexture (icon) + if (count and count > 0) then + dblock.stack:SetText (count) + dblock.stack_bg:Show() + else + dblock.stack:SetText ("") + dblock.stack_bg:Hide() + end + + dblock:SetCooldown (GetTime(), expirationTime-GetTime(), 0, 0) + dblock.in_use = true + dblock.support.spellid = spellid for i = 1, 3 do - if (not updated [i] and ThisTankFrame.DebuffsName [i]) then - ThisTankFrame:Update (i, false) - end - end - - end - - on_second_tick = 0 - end - - if (half_second_tick > 0.1 and _track_player_object.avoidance) then - - --> capture the amount of hits and avoids - - _table_insert (hits_taken, 1, _track_player_object.avoidance.overall.HITS - hits_last) - hits_now = hits_now + (_track_player_object.avoidance.overall.HITS - hits_last) - if (#hits_taken > 10) then - hits_now = hits_now - hits_taken [11] - _table_remove (hits_taken, 11) - end - hits_last = _track_player_object.avoidance.overall.HITS - - _table_insert (avoid_taken, 1, _track_player_object.avoidance.overall.DODGE + _track_player_object.avoidance.overall.PARRY - avoid_last) - avoid_now = avoid_now + (_track_player_object.avoidance.overall.DODGE + _track_player_object.avoidance.overall.PARRY - avoid_last) - if (#avoid_taken > 10) then - avoid_now = avoid_now - avoid_taken [11] - _table_remove (avoid_taken, 11) - end - avoid_last = _track_player_object.avoidance.overall.DODGE + _track_player_object.avoidance.overall.PARRY - - --> compute the hits vs avoid - - if (hits_now == 0 and avoid_now == 0) then - TookVsAvoid:SetLeftText ("50%") - TookVsAvoid:SetRightText ("50%") - TookVsAvoid:SetSplit (50) - else - local avoidance = avoid_now - - local avoid_percentage = _math_floor (avoidance / (hits_now+avoid_now) * 100) - local hit_percentage = _math_abs (avoid_percentage-100) - - avoid_percentage = avoid_percentage or 0 - hit_percentage = hit_percentage or 0 - - TookVsAvoid:SetLeftText (avoid_percentage.."%") - TookVsAvoid:SetRightText (hit_percentage.."%") - - TookVsAvoid:SetRightColor (hit_percentage/100, 0, 0, 1) - TookVsAvoid:SetLeftColor (0, avoid_percentage/100, 0, 1) - - if (hit_percentage > 0 and avoid_percentage > 0) then - if (hit_percentage > avoid_percentage) then - local p = avoid_percentage / hit_percentage * 100 - p = _math_abs (p - 100) - p = p / 2 - p = p + 50 - p = _math_abs (p - 100) - TookVsAvoid:SetSplit (p) - else - local p = hit_percentage / avoid_percentage * 100 - p = _math_abs (p - 100) - p = p / 2 - p = p + 50 - - TookVsAvoid:SetSplit (p) - end - elseif (hit_percentage > 0) then - TookVsAvoid:SetSplit (6) - elseif (avoid_percentage > 0) then - TookVsAvoid:SetSplit (96) - else - TookVsAvoid:SetSplit (50) - end - end - - --> capture the amount of damage taken in last 5 seconds - - _table_insert (damage_taken, 1, _track_player_object.damage_taken - damage_last) - damage_now = damage_now + (_track_player_object.damage_taken - damage_last) - if (#damage_taken > 10) then - damage_now = damage_now - damage_taken [11] - _table_remove (damage_taken, 11) - end - damage_last = _track_player_object.damage_taken - - --> compute the damage taken vs incoming heal - - local dmgAmt = damage_now / #damage_taken - DamageVsHeal:SetRightText (Vanguard:ToK ( _math_floor (dmgAmt))) - - local shields = UnitGetTotalAbsorbs (_track_player_name) or 0 - local IncomingHeal = _UnitGetIncomingHeals (_track_player_name) or 0 - DamageVsHeal:SetLeftText (Vanguard:ToK (IncomingHeal + shields) .. " (|cFFFFFF55A: " .. Vanguard:ToK (shields) .. "|r)") - - IncomingHeal = IncomingHeal + shields - - if (dmgAmt > 0 and IncomingHeal > 0) then - if (dmgAmt > IncomingHeal) then - local p = IncomingHeal / dmgAmt * 100 - - --DamageVsHeal:SetLeftColor (0, p/100, 0, 1) - p = _math_abs (p - 100) - --DamageVsHeal:SetRightColor (p/100, 0, 0, 1) - - p = p / 2 - p = p + 50 - p = _math_abs (p - 100) - DamageVsHeal:SetSplit (p) - else - local p = dmgAmt / IncomingHeal * 100 - --DamageVsHeal:SetRightColor (p/100, 0, 0, 1) - p = _math_abs (p - 100) - --DamageVsHeal:SetLeftColor (0, p/100, 0, 1) - p = p / 2 - p = p + 50 - - DamageVsHeal:SetSplit (p) - end - elseif (dmgAmt > 0) then - DamageVsHeal:SetSplit (6) - elseif (IncomingHeal > 0) then - DamageVsHeal:SetSplit (94) - end - - --> capture the last 6 hits taken - - local amt = 1 - local hp = _UnitHealthMax (_track_player_name)/3 - - local last_events_table = _combat_object.player_last_events [_track_player_name or MyName] or _combat_object.player_last_events [MyName] - if (last_events_table) then - for _, tabela in _ipairs (last_events_table) do - if (tabela[1]) then - Vanguard:InsertDamage (tabela[3], amt, hp) - if (amt == Vanguard.DamageLabels.Spots) then - break - end - amt = amt+1 + if (not tframe.debuffs_blocks [i].in_use) then + tframe.debuffs_next_index = i + break end end end - - half_second_tick = 0 + end end end - function Vanguard:Start() - - if (not Vanguard.Running) then - --print ("return 1") - return - else - --> reset widgets - Vanguard:ResetDamage() - Vanguard:ResetBars() - end - - --> first, we need to get what we want to track: - local MyTarget, Realm = _UnitName ("target") - if (MyTarget and _UnitIsPlayer ("target")) then - if (Realm and Realm ~= "") then - MyTarget = MyTarget.."-"..Realm - end - _track_player_object = _combat_object (1, MyTarget) - if (not _track_player_object) then - --print ("Vanguard: Object not found 1.") - _detalhes:ScheduleTimer ("VanguardWait", 1) - --print ("return 2") - return - end - - _track_player_name = MyTarget - - local role = UnitGroupRolesAssigned (_track_player_name) - --if (role ~= "TANK") then - -- _detalhes:ScheduleTimer ("VanguardWait", 1) - -- print ("return 3") - -- return - --end - - if (VanguardFrame.InfoShown) then - Vanguard:VanguardRefreshInfoFrame() - end - else - _track_player_object = _combat_object (1, MyName) - if (not _track_player_object) then - --print ("Vanguard: Object not found 2.") - _detalhes:ScheduleTimer ("VanguardWait", 1) - --print ("return 4") - return - end - - _track_player_name = MyName - - local role = UnitGroupRolesAssigned (_track_player_name) - --if (role ~= "TANK") then - -- _detalhes:ScheduleTimer ("VanguardWait", 1) - -- print ("return 5") - -- return - --end - - if (VanguardFrame.InfoShown) then - Vanguard:VanguardRefreshInfoFrame() - end - end - - if (not _track_player_object) then - _detalhes:ScheduleTimer ("VanguardWait", 1) - return - end - - --print ("Vanguard: playername: ".. _track_player_name) - - hits_last = 0 - hits_now = 0 - hits_taken = {} - - avoid_last = 0 - avoid_now = 0 - avoid_taken = {} - - damage_last = 0 - damage_now = 0 - damage_taken = {} + function Vanguard:UpdateHealth (blockid) + local block = Vanguard.TankBlocks [blockid] + block.statusbar:SetValue (UnitHealth (block.tankname_string) / UnitHealthMax (block.tankname_string) * 100) + end - --print ("vanguard starting... 3 ...") - VanguardFrame:SetScript ("OnUpdate", onupdate) - + function Vanguard:HealthChanged (unitId) + local name, realm = UnitName (unitId) + if (realm) then + name = name .. "-" .. realm + end + local block = Vanguard.TankHashNames [name] + if (block) then + Vanguard:UpdateHealth (block) + end end - --> identify tanks on startup - Vanguard:IdentifyTanks() - Vanguard:ResetBars() - end -function Vanguard:OnEvent (_, event, ...) +local ignored_debuffs = { + [80354] = true, --temporal displacement + [57724] = true, --sated + [6788] = true, --weakened soul + [124275] = true, --light stagger + [124274] = true, --moderate stagger +} - if (event == "UNIT_HEALTH") then - Vanguard:HealthChanged (...) +function Vanguard:TrackDebuffsAlreadyApplied() + for tank_name, block_index in pairs (Vanguard.TankHashNames) do + for i = 1, 41 do + local _, _, icon, count, _, duration, expirationTime, unitCaster, _, _, spellid = _UnitDebuff (tank_name, i) + if (icon and spellid and not ignored_debuffs [spellid]) then + Vanguard:DebuffApplied (tank_name, spellid) + end + end + end +end + +function Vanguard:OnEvent (_, event, arg1, token, time, who_serial, who_name, who_flags, _, alvo_serial, alvo_name, alvo_flags, _, spellid, spellname, spellschool, tipo) + + if (event == "COMBAT_LOG_EVENT_UNFILTERED") then + + if (token == "SPELL_AURA_APPLIED") then + if (Vanguard.TankHashNames [alvo_name] and tipo == "DEBUFF" and Vanguard.Running and not ignored_debuffs [spellid]) then + Vanguard:DebuffApplied (alvo_name, spellid) + end + + elseif (token == "SPELL_AURA_REMOVED") then + if (Vanguard.TankHashNames [alvo_name] and tipo == "DEBUFF" and Vanguard.Running and not ignored_debuffs [spellid]) then + Vanguard:DebuffRemoved (alvo_name, spellid) + end + + elseif (token == "SPELL_AURA_REFRESH") then + if (Vanguard.TankHashNames [alvo_name] and tipo == "DEBUFF" and Vanguard.Running and not ignored_debuffs [spellid]) then + Vanguard:DebuffRefreshed (alvo_name, spellid) + end + + elseif (token == "SPELL_AURA_APPLIED_DOSE") then + if (Vanguard.TankHashNames [alvo_name] and tipo == "DEBUFF" and Vanguard.Running and not ignored_debuffs [spellid]) then + Vanguard:DebuffRefreshed (alvo_name, spellid) + end + + elseif (token == "SPELL_AURA_REMOVED_DOSE") then + if (Vanguard.TankHashNames [alvo_name] and tipo == "DEBUFF" and Vanguard.Running and not ignored_debuffs [spellid]) then + Vanguard:DebuffRefreshed (alvo_name, spellid) + end + + end + + elseif (event == "UNIT_HEALTH") then + Vanguard:HealthChanged (arg1) elseif (event == "ADDON_LOADED") then - local AddonName = select (1, ...) + + local AddonName = arg1 if (AddonName == "Details_Vanguard") then if (_G._detalhes) then --> create widgets - CreatePluginFrames (data) + CreatePluginFrames() local MINIMAL_DETAILS_VERSION_REQUIRED = 1 + local default_saved_table = {} --> Install - local install = _G._detalhes:InstallPlugin ("TANK", Loc ["STRING_PLUGIN_NAME"], "Interface\\Icons\\INV_Shield_77", Vanguard, "DETAILS_PLUGIN_VANGUARD", MINIMAL_DETAILS_VERSION_REQUIRED, "Details! Team", "v1.07") + local install, saveddata = _G._detalhes:InstallPlugin ("TANK", "Vanguard", "Interface\\Icons\\INV_Shield_77", Vanguard, "DETAILS_PLUGIN_VANGUARD", MINIMAL_DETAILS_VERSION_REQUIRED, "Details! Team", "v2.0", default_saved_table) if (type (install) == "table" and install.error) then print (install.error) end - +-- DETAILS_PLUGIN_VANGUARD.TankHashNames --> Register needed events _G._detalhes:RegisterEvent (Vanguard, "COMBAT_PLAYER_ENTER") _G._detalhes:RegisterEvent (Vanguard, "COMBAT_PLAYER_LEAVE") _G._detalhes:RegisterEvent (Vanguard, "DETAILS_INSTANCE_ENDRESIZE") _G._detalhes:RegisterEvent (Vanguard, "DETAILS_INSTANCE_SIZECHANGED") - _G._detalhes:RegisterEvent (Vanguard, "DETAILS_INSTANCE_STARTSTRETCH") - _G._detalhes:RegisterEvent (Vanguard, "DETAILS_INSTANCE_ENDSTRETCH") + _G._detalhes:RegisterEvent (Vanguard, "GROUP_ONLEAVE") VanguardFrame:RegisterEvent ("ZONE_CHANGED_NEW_AREA") VanguardFrame:RegisterEvent ("PLAYER_ENTERING_WORLD") end end - - elseif (event == "PLAYER_LOGOUT") then - _detalhes_databaseVanguard = Vanguard.data - - elseif (event == "PLAYER_TARGET_CHANGED") then - Vanguard:TargetChanged() elseif (event == "ROLE_CHANGED_INFORM" or event == "GROUP_ROSTER_UPDATE") then --> raid changes - Vanguard:IdentifyTanks() + if (Vanguard.CurrentInstance) then + Vanguard:IdentifyTanks() + end elseif (event == "ZONE_CHANGED_NEW_AREA" or event == "PLAYER_ENTERING_WORLD") then --> logon or map changes - Vanguard:IdentifyTanks() + if (Vanguard.CurrentInstance) then + Vanguard:IdentifyTanks() + end end end + + + + + + + + + + + + + + diff --git a/plugins/Details_Vanguard/Details_Vanguard.toc b/plugins/Details_Vanguard/Details_Vanguard.toc index d10619a9..f60f3f6c 100644 --- a/plugins/Details_Vanguard/Details_Vanguard.toc +++ b/plugins/Details_Vanguard/Details_Vanguard.toc @@ -9,7 +9,4 @@ embeds.xml #@end-no-lib-strip@ -enUS.lua -ptBR.lua - Details_Vanguard.lua \ No newline at end of file diff --git a/startup.lua b/startup.lua index 5ee63b3a..86a9ef11 100644 --- a/startup.lua +++ b/startup.lua @@ -283,6 +283,11 @@ function _G._detalhes:Start() end self:ScheduleTimer ("AnnounceStartup", 5) + if (_detalhes.failed_to_load) then + _detalhes:CancelTimer (_detalhes.failed_to_load) + _detalhes.failed_to_load = nil + end + --function self:RunAutoHideMenu() -- local lower_instance = _detalhes:GetLowerInstanceNumber() -- local instance = self:GetInstance (lower_instance) @@ -325,6 +330,25 @@ function _G._detalhes:Start() --> check is this is the first run of this version if (self.is_version_first_run) then + if (_detalhes_database.last_version and _detalhes.userversion == "v3.8c") then + if (not _detalhes:GetTutorialCVar ("UPDATE_WARNING_SPECICONS1")) then + _detalhes:SetTutorialCVar ("UPDATE_WARNING_SPECICONS1", true) + local func = function() + local window1 = _detalhes:GetInstance(1) + if (window1 and window1:IsEnabled()) then + window1:SetBarSpecIconSettings (true, [[Interface\AddOns\Details\images\spec_icons_normal]], true) + end + local window2 = _detalhes:GetInstance(2) + if (window2 and window2:IsEnabled()) then + window2:SetBarSpecIconSettings (true, [[Interface\AddOns\Details\images\spec_icons_normal]], true) + end + + _detalhes:CreateTestBars() + end + _detalhes:GetFramework():ShowTutorialAlertFrame ("Spec Icons!", "Now Available, click here!", func) + end + end + local enable_reset_warning = true local lower_instance = _detalhes:GetLowerInstanceNumber() @@ -358,15 +382,18 @@ function _G._detalhes:Start() dev_icon:SetWidth (40) dev_icon:SetHeight (40) dev_icon:SetPoint ("bottomleft", instance.baseframe, "bottomleft", 4, 8) - dev_icon:SetTexture ([[Interface\DialogFrame\UI-Dialog-Icon-AlertOther]]) dev_icon:SetAlpha (.3) local dev_text = instance.bgdisplay:CreateFontString (nil, "overlay", "GameFontHighlightSmall") dev_text:SetHeight (64) dev_text:SetPoint ("left", dev_icon, "right", 5, 0) dev_text:SetTextColor (1, 1, 1) - dev_text:SetText ("Details is Under\nDevelopment") dev_text:SetAlpha (.3) + + if (self.tutorial.logons < 50) then + dev_text:SetText ("Details is Under\nDevelopment") + dev_icon:SetTexture ([[Interface\DialogFrame\UI-Dialog-Icon-AlertOther]]) + end --version self.gump:Fade (instance._version, 0)