diff --git a/.pkgmeta b/.pkgmeta index 84f3d452..382a2128 100644 --- a/.pkgmeta +++ b/.pkgmeta @@ -6,8 +6,7 @@ move-folders: Details/plugins/Details_TimeAttack: Details_TimeAttack Details/plugins/Details_TinyThreat: Details_TinyThreat Details/plugins/Details_Vanguard: Details_Vanguard - Details/plugins/Details_RaidInfo-BlackrockFoundry: Details_RaidInfo-BlackrockFoundry - Details/plugins/Details_RaidInfo-Highmaul: Details_RaidInfo-Highmaul + Details/plugins/Details_RaidInfo-HellfireCitadel: Details_RaidInfo-HellfireCitadel Details/plugins/Details_DataStorage: Details_DataStorage Details/plugins/Details_DungeonInfo-Warlords: Details_DungeonInfo-Warlords Details/plugins/Details_3DModelsPaths: Details_3DModelsPaths diff --git a/API General.txt b/API General.txt index 50570182..ab9294d4 100644 --- a/API General.txt +++ b/API General.txt @@ -35,22 +35,22 @@ return a new numeric table with sorted in decreasing order: Raid History ======================================= -_detalhes.storage:OpenRaidStorage() +Details.storage:OpenRaidStorage() get the table containing all stored data. -_detalhes.storage:ListDiffs() +Details.storage:ListDiffs() return a indexed table with dificulty numbers. -_detalhes.storage:ListEncounters (diff) +Details.storage:ListEncounters (diff) return a indexed table with all encounters stored for the dificulty. -_detalhes.storage:GetEncounterData (diff, encounterId, guildname) +Details.storage:GetEncounterData (diff, encounterId, guildname) return a indexed table with encounter tables playd by the guild. -_detalhes.storage:GetPlayerData (diff, encounterId, playername) +Details.storage:GetPlayerData (diff, encounterId, playername) return a indexed table with player tables for the player. -_detalhes.storage:GetBestFromPlayer (diff, encounterId, role, playername) +Details.storage:GetBestFromPlayer (diff, encounterId, role, playername) return the best result from the player. Structure: @@ -71,3 +71,15 @@ DB = hash{ encounter table = hash {["time"] = time(), ["guild"] = guild name, ["date"] = formated date, ["healing"] = {[playername] = playertable}, ["elapsed"] = combat time, ["damage"] = {[playername] = playertable}} player table = indexed {total done, item level, class index} +======================================= +Parser +======================================= + +/dump Details.parser.original_functions +will tell all internal tokens used by the parser. + +Details.parser:SetParserFunction (token, func) +replaces a original parser function with a customized one. +If no function passed, it uses the default function. + + diff --git a/API UI.txt b/API UI.txt index 905bb9d8..4a1a602b 100644 --- a/API UI.txt +++ b/API UI.txt @@ -150,6 +150,12 @@ no_save = boolean, if true, the values isn't set on the instance config table. instance:ShowSideBars() // instance:HideSideBars() Show or Hide the borders. +instance:CreatePositionTable() +Create a table with members: w, h, scale, point, x_legacy, y_legacy. + +instance:RestorePositionFromPositionTable (pos_table) +Restore the window position from a saved position table. + -------------------- instance:InstanceMsg (text, icon, textcolor, iconcoords, iconcolor) @@ -171,17 +177,17 @@ clickfunc = table {function, param1, param2, "left" or "right" button} -------------------- -_detalhes:SetTooltipBackdrop (border_texture, border_size, border_color) +Details:SetTooltipBackdrop (border_texture, border_size, border_color) border_texture = string, border name for SharedMedia. border_size = number, border size. border_color = table {r, g, b, a} -_detalhes:ReportSingleLine (instance, row object) +Details:ReportSingleLine (instance, row object) get the text on the chosen row and open report dialog for the player. -------------------- -framework = _detalhes:GetFramework() +framework = Details:GetFramework() returns the framework object. framework:RegisterForDetailsMove (frame, instance) @@ -203,20 +209,31 @@ set on off bar animations on all windows, if nosave is true, it won't save this -------------------- -_detalhes:OpenForge() +Details.chat_embed:SetTabSettings (tab_name, is_enabled, is_single) +set the tab embed stuff. + +Details.chat_embed:CheckChatEmbed() +refresh the embed status. + +Details.chat_embed:GetTab (tabname) +returns the ChatFrame, ChatFrameTab, ChatFrameBackground, TabIndex, of the tab. + +-------------------- + +Details:OpenForge() Open Forge Window. -_detalhes:OpenRaidHistoryWindow() +Details:OpenRaidHistoryWindow() Open Raid History Window. -_detalhes.switch:ShowMe (instance object) +Details.switch:ShowMe (instance object) Open the bookmark panel on the top of the desired window. -_detalhes.switch:CloseMe() +Details.switch:CloseMe() Closes the bookmark panel. -_detalhes:GetArenaInfo (mapid) +Details:GetArenaInfo (mapid) returns a table containing the texture file and coords for a arena. -_detalhes:GetBattlegroundInfo (mapid) +Details:GetBattlegroundInfo (mapid) returns a table containing the texture file and coords for a battleground. diff --git a/Details.toc b/Details.toc index 110c7209..82c2f48e 100644 --- a/Details.toc +++ b/Details.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details ## Notes: Computes detailed infos about combats. ## SavedVariables: _detalhes_global diff --git a/boot.lua b/boot.lua index 51944a0f..192dc157 100644 --- a/boot.lua +++ b/boot.lua @@ -3,8 +3,8 @@ _ = nil _detalhes = LibStub("AceAddon-3.0"):NewAddon("_detalhes", "AceTimer-3.0", "AceComm-3.0", "AceSerializer-3.0", "NickTag-1.0") - _detalhes.build_counter = 1095 --it's 1095 for release - _detalhes.userversion = "v3.15.6" + _detalhes.build_counter = 1150 --it's 1150 for release + _detalhes.userversion = "v3.15.7" _detalhes.realversion = 70 --core version _detalhes.version = _detalhes.userversion .. " (core " .. _detalhes.realversion .. ")" Details = _detalhes @@ -23,27 +23,11 @@ do --[[ |cFFFFFF00v3.15.5a (|cFFFFCC00Jun 11, 2015|r|cFFFFFF00)|r:\n\n |cFFFFFF00-|r Fixed an issue where sometimes tooltips wasn't being shown.\n\n -|cFFFFFF00-|r Fixed a problem with overall data where it was using, even on dungoens, the raid-only 30 delay rule.\n\n -|cFFFFFF00-|r Fixed an issue with spec detection (now it may detect even faster).\n\n - -|cFFFFFF00v3.15.5 (|cFFFFCC00Jun 08, 2015|r|cFFFFFF00)|r:\n\n -|cFFFFFF00-|r Fixed a problem with auto hide feature not hiding plugins hosted by the window.\n\n -|cFFFFFF00-|r Fixed an issue with stretch feature when the anchor button was anchored at the bottom side of the window.\n\n -|cFFFFFF00-|r Small interface tweaks on tooltips, bookmark and player detail window.\n\n -|cFFFFFF00-|r Custom display 'My Spells' now also show amount of casts and uptime.\n\n -|cFFFFFF00-|r Added an extra tooltip for the class icon at the player's bar.\n\n -|cFFFFFF00-|r Activity time now has only 3 seconds inactivity tolerance on battlegrounds and arenas.\n\n -|cFFFFFF00-|r Effective time will automatically be used when inside a battleground and using sync from the score board.\n\n -|cFFFFFF00-|r Added 'hide all' option on the minimap menu.\n\n -|cFFFFFF00-|r Added support for battlegrounds.\n\n -|cFFFFFF00-|r Added option for disable showing battleground enemies when the window is in group mode.\n\n -|cFFFFFF00-|r Added option to disable the sync from battleground score board.\n\n -|cFFFFFF00-|r Enemies from a battleground match segment won't be erased when the player logout.\n\n --]] -- - Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.15.6a (|cFFFFCC00Jun 18, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added support for embed on Chat Tabs.\n\n|cFFFFFF00v3.15.5a (|cFFFFCC00Jun 12, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue where sometimes tooltips wasn't being shown.\n\n|cFFFFFF00-|r Fixed a problem with overall data where it was using, even on dungoens, the raid-only 30 delay rule.\n\n|cFFFFFF00-|r Fixed an issue with spec detection (now it may detect even faster).\n\n|cFFFFFF00v3.15.5 (|cFFFFCC00Jun 09, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a problem with auto hide feature not hiding plugins hosted by the window.\n\n|cFFFFFF00-|r Fixed an issue with stretch feature when the anchor button was anchored at the bottom side of the window.\n\n|cFFFFFF00-|r Small interface tweaks on tooltips, bookmark and player detail window.\n\n|cFFFFFF00-|r Custom display 'My Spells' now also show amount of casts and uptime.\n\n|cFFFFFF00-|r Added an extra tooltip for the class icon at the player's bar.\n\n|cFFFFFF00-|r Activity time now has only 3 seconds inactivity tolerance on battlegrounds and arenas.\n\n|cFFFFFF00-|r Effective time will automatically be used when inside a battleground and using sync from the score board.\n\n|cFFFFFF00-|r Added 'hide all' option on the minimap menu.\n\n|cFFFFFF00-|r Added support for battlegrounds.\n\n|cFFFFFF00-|r Added option for disable showing battleground enemies when the window is in group mode.\n\n|cFFFFFF00-|r Added option to disable the sync from battleground score board.\n\n|cFFFFFF00-|r Enemies from a battleground match segment won't be erased when the player logout.\n\n|cFFFFFF00v3.14.4 (|cFFFFCC00May 27, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r TimeLine (plugin): now also shows marks symbolizing the player death.\n\n|cFFFFFF00-|r Added raid history panel. Open it through bookmark or /details history.\n\n|cFFFFFF00-|r Added support for skins for Player Detail Window.\n\n|cFFFFFF00-|r Added report history on report button.\n\n|cFFFFFF00-|r Added key bindings settings for report what is shown on window #1 or #2.\n\n|cFFFFFF00v3.14.0b (|cFFFFCC00May 13, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Several texture changes for a smaller download size.\n\n|cFFFFFF00v3.13.4a (|cFFFFCC00May 06, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Created 'Details! Forge' but is still under development: /details forge.\n\n|cFFFFFF00-|r Several improvements on combatlog reader and custom displays.\n\n|cFFFFFF00-|r Improvements on enemies damage taken tooltip.\n\n|cFFFFFF00v3.13.1 (|cFFFFCC00April 27, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added casted amount for healing and damage spells. The result is shown on Player Detail Window and Comparison Panel.\n\n|cFFFFFF00-|r Added uptime amount for healing spells on Player Detail Window.\n\n|cFFFFFF00-|r Added an option to disable lock/resize/ungroup buttons. It's under miscellaneous bracket on Options Panel.\n\n|cFFFFFF00-|r Wallpaper for menus on title bar got a customization option under tooltips bracket on Options Panel.\n\n|cFFFFFF00-|r Updated spell list for Crowd Control and class detection.\n\n|cFFFFFF00-|r Improved Weakaura creation tool under Encounter Details Plugin.\n\n|cFFFFFF00v3.12.10 (|cFFFFCC00April 18, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added the spell uptime on damage player detail window.\n\n|cFFFFFF00-|r Added Rune Tap as cooldown.\n\n|cFFFFFF00-|r Report lines for deaths is now inverted. No need to scroll up the chat to see the cause of death anymore.\n\n|cFFFFFF00-|r Fixed some annoyances with auto current feature where it was changing the segments even when the user were using the window.\n\n|cFFFFFF00v3.12.7 (|cFFFFCC00April 09, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added slash command /details profile .\n\n|cFFFFFF00v3.12.6 (|cFFFFCC00May 06, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Encounter Details (plugin): added a report button on Emotes tab.\n\n|cFFFFFF00-|r Encounter Details (plugin): improved Weakauras creation.\n\n|cFFFFFF00-|r Encounter Details (plugin): fixed the report text for interrupts and dispells.\n\n|cFFFFFF00-|r Crowd control by Pets now is merged with its owner.\n\n|cFFFFFF00-|r Truncated left text on bars now shows the entire text when hover over the bar.\n\n|cFFFFFF00-|r Added an extra option on minimap menu to disable the minimap icon.\n\n|cFFFFFF00-|r Fixed a problem when disabling the minimap icon through options panel.\n\n|cFFFFFF00-|r Fixed an issue with item level tracker feature.\n\n|cFFFFFF00v3.12.2 (|cFFFFCC00Mar 30, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Raid Check (plugin): added item level.\n\n|cFFFFFF00-|r Advanced Death Logs (plugin): bug fixes, it's important to update it.\n\n|cFFFFFF00-|r Time Line (plugin): bug fixes.\n\n|cFFFFFF00-|r Added option to disabled th eitem level tracker.\n\n|cFFFFFF00-|r Added item level on Raid Check plugin panel.\n\n|cFFFFFF00-|r Added Spirit Link Totem damage and healing on death log.\n\n|cFFFFFF00-|r Added the total of life exchanged by the Spirit Link Totem on player detail window.\n\n|cFFFFFF00-|r Added more spells for crowd control.\n\n|cFFFFFF00-|r Added scroll on bookmark panel.\n\n|cFFFFFF00-|r Fixed issue with Dps/Hps data broker which wasn't respecting the type of time (effective/activity) selected.\n\n|cFFFFFF00-|r Fixed few bugs when using the key bind to toggle windows.\n\n|cFFFFFF00v3.11.5 (|cFFFFCC00Mar 18, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with overall data where max/min amount for spells was being calculated wrong.\n\n|cFFFFFF00-|r Fixed a problem while reporting enemy damage taken.\n\n|cFFFFFF00-|r Fixed an issue with damage taken by spell where some spells wasn't shown.\n\n|cFFFFFF00-|r Few improvements on tooltips.\n\n|cFFFFFF00-|r Fixed a accuracy problem with shaman's spirit link toten where its life exchange was considered healing done.\n\n|cFFFFFF00-|r Boss segments now need to have at least 30 seconds to be added on the overall data.\n\n|cFFFFFF00-|r When the segment limit is reach, segments with less combat time will be erased instead of the olders.\n\n|cFFFFFF00-|r Added item level tracker.\n\n|cFFFFFF00-|r Fixed window positioning when changing from Solo mode to Group mode.\n\n|cFFFFFF00-|r Added an option for change the amount of lines on death log.\n\n|cFFFFFF00-|r Added custom display for CC done.\n\n|cFFFFFF00v3.10.10 (|cFFFFCC00Mar 10, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Advanced Death Logs (plugin): done a calibration on endurance calculation." + Loc ["STRING_VERSION_LOG"] = "|cFFFFFF00v3.15.7 (|cFFFFCC00Jun 23, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added support for Hellfire Citadel raid.\n\n|cFFFFFF00-|r Added support for custom CLEU parser functions.\n\n|cFFFFFF00-|r Tyrant Velhari encounter now has a custom CLEU parser function for healing where the heal absorbed by Aura of Contempt will count towards overheal and not healing done.\n\n|cFFFFFF00-|r Added support for embed on Chat Tabs.\n\n|cFFFFFF00-|r |cFFAAFFAAPS: We've made an addon for Shadow-Lord Iskar encounter called 'Iskar Assist' check it out|r.\n\n|cFFFFFF00v3.15.5a (|cFFFFCC00Jun 12, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue where sometimes tooltips wasn't being shown.\n\n|cFFFFFF00-|r Fixed a problem with overall data where it was using, even on dungoens, the raid-only 30 delay rule.\n\n|cFFFFFF00-|r Fixed an issue with spec detection (now it may detect even faster).\n\n|cFFFFFF00v3.15.5 (|cFFFFCC00Jun 09, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed a problem with auto hide feature not hiding plugins hosted by the window.\n\n|cFFFFFF00-|r Fixed an issue with stretch feature when the anchor button was anchored at the bottom side of the window.\n\n|cFFFFFF00-|r Small interface tweaks on tooltips, bookmark and player detail window.\n\n|cFFFFFF00-|r Custom display 'My Spells' now also show amount of casts and uptime.\n\n|cFFFFFF00-|r Added an extra tooltip for the class icon at the player's bar.\n\n|cFFFFFF00-|r Activity time now has only 3 seconds inactivity tolerance on battlegrounds and arenas.\n\n|cFFFFFF00-|r Effective time will automatically be used when inside a battleground and using sync from the score board.\n\n|cFFFFFF00-|r Added 'hide all' option on the minimap menu.\n\n|cFFFFFF00-|r Added support for battlegrounds.\n\n|cFFFFFF00-|r Added option for disable showing battleground enemies when the window is in group mode.\n\n|cFFFFFF00-|r Added option to disable the sync from battleground score board.\n\n|cFFFFFF00-|r Enemies from a battleground match segment won't be erased when the player logout.\n\n|cFFFFFF00v3.14.4 (|cFFFFCC00May 27, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r TimeLine (plugin): now also shows marks symbolizing the player death.\n\n|cFFFFFF00-|r Added raid history panel. Open it through bookmark or /details history.\n\n|cFFFFFF00-|r Added support for skins for Player Detail Window.\n\n|cFFFFFF00-|r Added report history on report button.\n\n|cFFFFFF00-|r Added key bindings settings for report what is shown on window #1 or #2.\n\n|cFFFFFF00v3.14.0b (|cFFFFCC00May 13, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Several texture changes for a smaller download size.\n\n|cFFFFFF00v3.13.4a (|cFFFFCC00May 06, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Created 'Details! Forge' but is still under development: /details forge.\n\n|cFFFFFF00-|r Several improvements on combatlog reader and custom displays.\n\n|cFFFFFF00-|r Improvements on enemies damage taken tooltip.\n\n|cFFFFFF00v3.13.1 (|cFFFFCC00April 27, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added casted amount for healing and damage spells. The result is shown on Player Detail Window and Comparison Panel.\n\n|cFFFFFF00-|r Added uptime amount for healing spells on Player Detail Window.\n\n|cFFFFFF00-|r Added an option to disable lock/resize/ungroup buttons. It's under miscellaneous bracket on Options Panel.\n\n|cFFFFFF00-|r Wallpaper for menus on title bar got a customization option under tooltips bracket on Options Panel.\n\n|cFFFFFF00-|r Updated spell list for Crowd Control and class detection.\n\n|cFFFFFF00-|r Improved Weakaura creation tool under Encounter Details Plugin.\n\n|cFFFFFF00v3.12.10 (|cFFFFCC00April 18, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added the spell uptime on damage player detail window.\n\n|cFFFFFF00-|r Added Rune Tap as cooldown.\n\n|cFFFFFF00-|r Report lines for deaths is now inverted. No need to scroll up the chat to see the cause of death anymore.\n\n|cFFFFFF00-|r Fixed some annoyances with auto current feature where it was changing the segments even when the user were using the window.\n\n|cFFFFFF00v3.12.7 (|cFFFFCC00April 09, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Added slash command /details profile .\n\n|cFFFFFF00v3.12.6 (|cFFFFCC00May 06, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Encounter Details (plugin): added a report button on Emotes tab.\n\n|cFFFFFF00-|r Encounter Details (plugin): improved Weakauras creation.\n\n|cFFFFFF00-|r Encounter Details (plugin): fixed the report text for interrupts and dispells.\n\n|cFFFFFF00-|r Crowd control by Pets now is merged with its owner.\n\n|cFFFFFF00-|r Truncated left text on bars now shows the entire text when hover over the bar.\n\n|cFFFFFF00-|r Added an extra option on minimap menu to disable the minimap icon.\n\n|cFFFFFF00-|r Fixed a problem when disabling the minimap icon through options panel.\n\n|cFFFFFF00-|r Fixed an issue with item level tracker feature.\n\n|cFFFFFF00v3.12.2 (|cFFFFCC00Mar 30, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Raid Check (plugin): added item level.\n\n|cFFFFFF00-|r Advanced Death Logs (plugin): bug fixes, it's important to update it.\n\n|cFFFFFF00-|r Time Line (plugin): bug fixes.\n\n|cFFFFFF00-|r Added option to disabled th eitem level tracker.\n\n|cFFFFFF00-|r Added item level on Raid Check plugin panel.\n\n|cFFFFFF00-|r Added Spirit Link Totem damage and healing on death log.\n\n|cFFFFFF00-|r Added the total of life exchanged by the Spirit Link Totem on player detail window.\n\n|cFFFFFF00-|r Added more spells for crowd control.\n\n|cFFFFFF00-|r Added scroll on bookmark panel.\n\n|cFFFFFF00-|r Fixed issue with Dps/Hps data broker which wasn't respecting the type of time (effective/activity) selected.\n\n|cFFFFFF00-|r Fixed few bugs when using the key bind to toggle windows.\n\n|cFFFFFF00v3.11.5 (|cFFFFCC00Mar 18, 2015|r|cFFFFFF00)|r:\n\n|cFFFFFF00-|r Fixed an issue with overall data where max/min amount for spells was being calculated wrong.\n\n|cFFFFFF00-|r Fixed a problem while reporting enemy damage taken.\n\n|cFFFFFF00-|r Fixed an issue with damage taken by spell where some spells wasn't shown.\n\n|cFFFFFF00-|r Few improvements on tooltips.\n\n|cFFFFFF00-|r Fixed a accuracy problem with shaman's spirit link toten where its life exchange was considered healing done.\n\n|cFFFFFF00-|r Boss segments now need to have at least 30 seconds to be added on the overall data.\n\n|cFFFFFF00-|r When the segment limit is reach, segments with less combat time will be erased instead of the olders.\n\n|cFFFFFF00-|r Added item level tracker.\n\n|cFFFFFF00-|r Fixed window positioning when changing from Solo mode to Group mode.\n\n|cFFFFFF00-|r Added an option for change the amount of lines on death log.\n\n|cFFFFFF00-|r Added custom display for CC done." Loc ["STRING_DETAILS1"] = "|cffffaeaeDetails!:|r " diff --git a/core/control.lua b/core/control.lua index c5f67e9a..ccfb84ce 100644 --- a/core/control.lua +++ b/core/control.lua @@ -632,7 +632,7 @@ end function _detalhes:GetPlayersInArena() - local aliados = GetNumGroupMembers (LE_PARTY_CATEGORY_HOME) + local aliados = GetNumGroupMembers() -- LE_PARTY_CATEGORY_HOME for i = 1, aliados-1 do local role = UnitGroupRolesAssigned ("party" .. i) if (role ~= "NONE") then diff --git a/core/gears.lua b/core/gears.lua index b043da99..4d8f5a87 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -73,6 +73,26 @@ end end if (is_enabled) then + --> was disabled, so we need to save the current window positions. + if (not current_enabled_state) then + local window1 = _detalhes:GetInstance (1) + if (window1) then + window1:SaveMainWindowPosition() + if (window1.libwindow) then + local pos = window1:CreatePositionTable() + _detalhes.chat_tab_embed.w1_pos = pos + end + end + local window2 = _detalhes:GetInstance (2) + if (window2) then + window2:SaveMainWindowPosition() + if (window2.libwindow) then + local pos = window2:CreatePositionTable() + _detalhes.chat_tab_embed.w2_pos = pos + end + end + end + --> need to make the embed _detalhes.chat_embed:DoEmbed() else @@ -224,6 +244,12 @@ end window2.baseframe:SetPoint ("center", UIParent, "center", 200, 0) window2.rowframe:SetPoint ("center", UIParent, "center", 200, 0) window2:LockInstance (false) + window2:SaveMainWindowPosition() + + local previous_pos = _detalhes.chat_tab_embed.w2_pos + if (previous_pos) then + window2:RestorePositionFromPositionTable (previous_pos) + end return end @@ -233,6 +259,12 @@ end window1.baseframe:SetPoint ("center", UIParent, "center") window1.rowframe:SetPoint ("center", UIParent, "center") window1:LockInstance (false) + window1:SaveMainWindowPosition() + + local previous_pos = _detalhes.chat_tab_embed.w1_pos + if (previous_pos) then + window1:RestorePositionFromPositionTable (previous_pos) + end if (not _detalhes.chat_tab_embed.single_window and window2) then window2.baseframe:ClearAllPoints() @@ -241,6 +273,12 @@ end window2.baseframe:SetPoint ("center", UIParent, "center", 200, 0) window2.rowframe:SetPoint ("center", UIParent, "center", 200, 0) window2:LockInstance (false) + window2:SaveMainWindowPosition() + + local previous_pos = _detalhes.chat_tab_embed.w2_pos + if (previous_pos) then + window2:RestorePositionFromPositionTable (previous_pos) + end end end diff --git a/core/parser.lua b/core/parser.lua index 06e41d67..fa26f081 100644 --- a/core/parser.lua +++ b/core/parser.lua @@ -308,10 +308,10 @@ amount = absorbed + (amount or 0) end - if (este_jogador.grupo) then + if (este_jogador.grupo and not este_jogador.arena_enemy) then --> source = friendly player _current_gtotal [1] = _current_gtotal [1]+amount - elseif (jogador_alvo.grupo) then + elseif (jogador_alvo.grupo) then --> source = arena enemy or friendly player --> record avoidance only for tank actors if (tanks_members_cache [alvo_serial]) then --> autoshot or melee hit @@ -2868,10 +2868,92 @@ token_list ["UNIT_DESTROYED"] = parser.dead end + + end + + parser.original_functions = { + ["spell_dmg"] = parser.spell_dmg, + ["swing"] = parser.swing, + ["range"] = parser.range, + ["rangemissed"] = parser.rangemissed, + ["swingmissed"] = parser.swingmissed, + ["missed"] = parser.missed, + ["environment"] = parser.environment, + ["heal"] = parser.heal, + ["heal_absorb"] = parser.heal_absorb, + ["buff"] = parser.buff, + ["unbuff"] = parser.unbuff, + ["buff_refresh"] = parser.buff_refresh, + ["energize"] = parser.energize, + ["spellcast"] = parser.spellcast, + ["dispell"] = parser.dispell, + ["break_cc"] = parser.break_cc, + ["ress"] = parser.ress, + ["interrupt"] = parser.interrupt, + ["dead"] = parser.dead, + } + + function parser:SetParserFunction (token, func) + if (parser.original_functions [token]) then + if (type (func) == "function") then + parser [token] = func + else + parser [token] = parser.original_functions [token] + end + parser:RefreshFunctions() + else + return _detalhes:Msg ("Invalid Token for SetParserFunction.") + end + end + + local all_parser_tokens = { + ["SPELL_PERIODIC_DAMAGE"] = "spell_dmg", + ["SPELL_EXTRA_ATTACKS"] = "spell_dmg", + ["SPELL_DAMAGE"] = "spell_dmg", + ["SPELL_BUILDING_DAMAGE"] = "spell_dmg", + ["SWING_DAMAGE"] = "swing", + ["RANGE_DAMAGE"] = "range", + ["DAMAGE_SHIELD"] = "spell_dmg", + ["DAMAGE_SPLIT"] = "spell_dmg", + ["RANGE_MISSED"] = "rangemissed", + ["SWING_MISSED"] = "swingmissed", + ["SPELL_MISSED"] = "missed", + ["SPELL_PERIODIC_MISSED"] = "missed", + ["SPELL_BUILDING_MISSED"] = "missed", + ["DAMAGE_SHIELD_MISSED"] = "missed", + ["ENVIRONMENTAL_DAMAGE"] = "environment", + + ["SPELL_HEAL"] = "heal", + ["SPELL_PERIODIC_HEAL"] = "heal", + ["SPELL_ABSORBED"] = "heal_absorb", + + ["SPELL_AURA_APPLIED"] = "buff", + ["SPELL_AURA_REMOVED"] = "unbuff", + ["SPELL_AURA_REFRESH"] = "buff_refresh", + ["SPELL_ENERGIZE"] = "energize", + ["SPELL_PERIODIC_ENERGIZE"] = "energize", + + ["SPELL_CAST_SUCCESS"] = "spellcast", + ["SPELL_DISPEL"] = "dispell", + ["SPELL_STOLEN"] = "dispell", + ["SPELL_AURA_BROKEN"] = "break_cc", + ["SPELL_AURA_BROKEN_SPELL"] = "break_cc", + ["SPELL_RESURRECT"] = "ress", + ["SPELL_INTERRUPT"] = "interrupt", + ["UNIT_DIED"] = "dead", + ["UNIT_DESTROYED"] = "dead", + } + + function parser:RefreshFunctions() + for CLUE_ID, token in pairs (all_parser_tokens) do + if (token_list [CLUE_ID]) then --> not disabled + token_list [CLUE_ID] = parser [token] + end + end end -- PARSER - --serach key: ~parser ~event ~start ~inicio + --serach key: ~parser ~events ~start ~inicio function _detalhes:GetZoneType() return _detalhes.zone_type end diff --git a/core/windows.lua b/core/windows.lua index 67789cfb..90e4f1bf 100644 --- a/core/windows.lua +++ b/core/windows.lua @@ -496,6 +496,48 @@ self.baseframe:SetPoint ("CENTER", _UIParent, "CENTER", novo_x + x, novo_y + y) self.baseframe.BoxBarrasAltura = self.baseframe:GetHeight() - end_window_spacement --> espaço para o final da janela end + + function _detalhes:CreatePositionTable() + local t = {pos_table = true} + + if (self.libwindow) then + t.x = self.libwindow.x + t.y = self.libwindow.y + t.scale = self.libwindow.scale + t.point = self.libwindow.point + end + + --> old way to save positions + t.x_legacy = self.posicao.normal.x + t.y_legacy = self.posicao.normal.y + + --> size + t.w = self.posicao.normal.w + t.h = self.posicao.normal.h + + return t + end + + function _detalhes:RestorePositionFromPositionTable (t) + if (not t.pos_table) then + return + end + + if (t.x) then + self.libwindow.x = t.x + self.libwindow.y = t.y + self.libwindow.scale = t.scale + self.libwindow.point = t.point + end + + self.posicao.normal.x = t.x_legacy + self.posicao.normal.y = t.y_legacy + + self.posicao.normal.w = t.w + self.posicao.normal.h = t.h + + return self:RestoreMainWindowPosition() + end function _detalhes:ResetaGump (instancia, tipo, segmento) if (not instancia or _type (instancia) == "boolean") then diff --git a/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc b/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc index 61bb9612..d0e5392b 100644 --- a/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc +++ b/plugins/Details_3DModelsPaths/Details_3DModelsPaths.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details! 3D Model Viewer ## Notes: When the 3d models option is enabled, this tool is used to select which model will be used on the window's rows. ## DefaultState: Enabled diff --git a/plugins/Details_DataStorage/Details_DataStorage.toc b/plugins/Details_DataStorage/Details_DataStorage.toc index 133e88bf..56a7c34e 100644 --- a/plugins/Details_DataStorage/Details_DataStorage.toc +++ b/plugins/Details_DataStorage/Details_DataStorage.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details Storage ## Notes: Stores information for Details! ## DefaultState: Enabled diff --git a/plugins/Details_DmgRank/Details_DmgRank.toc b/plugins/Details_DmgRank/Details_DmgRank.toc index 3c63a5fa..28d8cb12 100644 --- a/plugins/Details_DmgRank/Details_DmgRank.toc +++ b/plugins/Details_DmgRank/Details_DmgRank.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details Damage, the Game! (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_DpsTuning/Details_DpsTuning.toc b/plugins/Details_DpsTuning/Details_DpsTuning.toc index 82407d5a..c5ae4782 100644 --- a/plugins/Details_DpsTuning/Details_DpsTuning.toc +++ b/plugins/Details_DpsTuning/Details_DpsTuning.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details Dps Tuning (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_DungeonInfo-Warlords/Details_DungeonInfo-Warlords.toc b/plugins/Details_DungeonInfo-Warlords/Details_DungeonInfo-Warlords.toc index 326c1bc2..b8518e76 100644 --- a/plugins/Details_DungeonInfo-Warlords/Details_DungeonInfo-Warlords.toc +++ b/plugins/Details_DungeonInfo-Warlords/Details_DungeonInfo-Warlords.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details: Warlords of Draenor Dungeons ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_EncounterDetails/Details_EncounterDetails.toc b/plugins/Details_EncounterDetails/Details_EncounterDetails.toc index 0f43f348..48e9c386 100644 --- a/plugins/Details_EncounterDetails/Details_EncounterDetails.toc +++ b/plugins/Details_EncounterDetails/Details_EncounterDetails.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details Encounter (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_RaidCheck/Details_RaidCheck.toc b/plugins/Details_RaidCheck/Details_RaidCheck.toc index 5d552dde..14f9c3fe 100644 --- a/plugins/Details_RaidCheck/Details_RaidCheck.toc +++ b/plugins/Details_RaidCheck/Details_RaidCheck.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details Raid Check (plugin) ## Notes: Show a icon on Details title bar showing flask, food, pre-pots. ## RequiredDeps: Details diff --git a/plugins/Details_RaidInfo-BlackrockFoundry/Details_RaidInfo-BlackrockFoundry.lua b/plugins/Details_RaidInfo-BlackrockFoundry/Details_RaidInfo-BlackrockFoundry.lua deleted file mode 100644 index 7bb78cfa..00000000 --- a/plugins/Details_RaidInfo-BlackrockFoundry/Details_RaidInfo-BlackrockFoundry.lua +++ /dev/null @@ -1,277 +0,0 @@ - -local _detalhes = _G._detalhes - -local blackrock_foundry = { - - id = 1205, --994 = map id extracted from encounter journal - ej_id = 477, --encounter journal id - - name = "Blackrock Foundry", - - icons = [[Interface\AddOns\Details_RaidInfo-BlackrockFoundry\boss_faces]], - icon = [[Interface\AddOns\Details_RaidInfo-BlackrockFoundry\icon256x128]], - - is_raid = true, - - backgroundFile = {file = [[Interface\Glues\LOADINGSCREENS\LoadingScreen_BlackrockFoundry]], coords = {0, 1, 132/512, 439/512}}, - backgroundEJ = [[Interface\EncounterJournal\UI-EJ-LOREBG-BlackrockFoundry]], - - boss_names = { - --[[ 1 ]] "Gruul", - --[[ 2 ]] "Oregorger", - --[[ 3 ]] "Beastlord Darmac", - --[[ 4 ]] "Flamebender Ka'graz", - --[[ 5 ]] "Hans'gar and Franzok", - --[[ 6 ]] "Operator Thogar", - --[[ 7 ]] "The Blast Furnace", - --[[ 8 ]] "Kromog", - --[[ 9 ]] "The Iron Maidens", - --[[ 10 ]] "Blackhand", - }, - - encounter_ids = { --encounter journal encounter id - --> Ids by Index - 1161, 1202, 1122, 1123, 1155, 1147, 1154, 1162, 1203, 959, - - --> Boss Index - [1161] = 1, - [1202] = 2, - [1122] = 3, - [1123] = 4, - [1155] = 5, - [1147] = 6, - [1154] = 7, - [1162] = 8, - [1203] = 9, - [959] = 10, - }, - - encounter_ids2 = { - --combatlog encounter id - [1691] = 1, --Gruul - [1696] = 2, --Oregorger - [1694] = 3, --Beastlord Darmac - [1689] = 4, --Flamebender Ka'graz - [1693] = 5, --Hans'gar & Franzok - [1692] = 6, --Operator Thogar - [1690] = 7, --The Blast Furnace - [1713] = 8, --Kromog, Legend of the Mountain - [1695] = 9, --The Iron Maidens - [1704] = 10, --Blackhand - }, - - boss_ids = { - --npc ids - [76877] = 1, --Gruul - [77182] = 2, --Oregorger - [76865] = 3, --Beastlord Darmac - [76814] = 4, --Flamebender Ka'graz - [76974] = 5, --Franzok - [76973] = 5, --Hans'gar - [76906] = 6, --Operator Thogar - [76806] = 7, --Heart of the Mountain - [77692] = 8, --Kromog, Legend of the Mountain - [77557] = 9, -- Admiral Gar'an - [77231] = 9, --Enforcer Sorka - [77477] = 9, --Marak the Blooded - [77325] = 10, --Blackhand - }, - - encounters = { - - [1] = { - boss = "Gruul", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Gruul]], - - --> spell list - continuo = { - 155080, - 155301, - 155530, - 162322, - 165983, - 173190, - 173192, - }, - }, - - [2] = { - boss = "Oregorger", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Oregorger]], - - --> spell list - continuo = { - 155897, - 155900, - 156203, - 156297, - 156324, - 156374, - 156388, - 156879, - 165983, - 173471, - }, - }, - - [3] = { - boss = "Beastlord Darmac", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Beastlord Darmac]], - - --> spell list - continuo = { - 154956, - 154960, - 154981, - 154989, - 155030, - 155061, - 155198, - 155222, - 155247, - 155499, - 155531, - 155611, - 155657, - 155718, - 156823, - 156824, - 162275, - 162283, - }, - }, - - [4] = { - boss = "Flamebender Ka'graz", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Flamebender Kagraz]], - - --> spell list - continuo = { - 154938, - 155049, - 155074, - 155314, - 155318, - 155484, - 155511, - 156018, - 156040, - 156713, - 163284, - 163633, - 163822, - }, - }, - - [5] = { - boss = "Hans'gar and Franzok", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Franzok]], - - --> spell list - continuo = { - 153470, - 155818, - 156938, - 157853, - 158140, - 161570, - }, - }, - - [6] = { - boss = "Operator Thogar", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Operator Thogar]], - - --> spell list - continuo = { - 163754, - 156554, - 155921, - 158084, - 163752, - 155701, - 160050, - 156270, - 156655, - }, - }, - - [7] = { - boss = "The Blast Furnace", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-The Blast Furnace]], - - --> spell list - continuo = { - 155187, - 155201, - 155209, - 155223, - 155242, - 155743, - 156932, - 156937, - 158246, - 159408, - }, - }, - - [8] = { - boss = "Kromog", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Kromog]], - - --> spell list - continuo = { - 156704, - 156844, - 157055, - 157059, - 157247, - 157659, - 161893, - 161923, - 162349, - 162392, - }, - }, - - [9] = { - boss = "The Iron Maidens", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Iron Maidens]], - - --> spell list - continuo = { - 155841, - 156637, - 156669, - 157884, - 158078, - 158080, - 158683, - 159335, - 160436, - 160733, - }, - }, - - [10] = { - boss = "Blackhand", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Warlord Blackhand]], - - --> spell list - continuo = { - 155992, - 156044, - 156107, - 156401, - 156479, - 156497, - 156731, - 156743, - }, - }, - - }, - -} - -_detalhes:InstallEncounter (blackrock_foundry) \ No newline at end of file diff --git a/plugins/Details_RaidInfo-BlackrockFoundry/Details_RaidInfo-BlackrockFoundry.toc b/plugins/Details_RaidInfo-BlackrockFoundry/Details_RaidInfo-BlackrockFoundry.toc deleted file mode 100644 index fd660f34..00000000 --- a/plugins/Details_RaidInfo-BlackrockFoundry/Details_RaidInfo-BlackrockFoundry.toc +++ /dev/null @@ -1,6 +0,0 @@ -## Interface: 60100 -## Title: Details: Blackrock Foundry -## Notes: Plugin for Details -## RequiredDeps: Details - -Details_RaidInfo-BlackrockFoundry.lua diff --git a/plugins/Details_RaidInfo-BlackrockFoundry/boss_faces.tga b/plugins/Details_RaidInfo-BlackrockFoundry/boss_faces.tga deleted file mode 100644 index 4ef7e396..00000000 Binary files a/plugins/Details_RaidInfo-BlackrockFoundry/boss_faces.tga and /dev/null differ diff --git a/plugins/Details_RaidInfo-BlackrockFoundry/icon256x128.tga b/plugins/Details_RaidInfo-BlackrockFoundry/icon256x128.tga deleted file mode 100644 index de1b0f29..00000000 Binary files a/plugins/Details_RaidInfo-BlackrockFoundry/icon256x128.tga and /dev/null differ diff --git a/plugins/Details_RaidInfo-HellfireCitadel/Details_RaidInfo-HellfireCitadel.lua b/plugins/Details_RaidInfo-HellfireCitadel/Details_RaidInfo-HellfireCitadel.lua new file mode 100644 index 00000000..ad94efbd --- /dev/null +++ b/plugins/Details_RaidInfo-HellfireCitadel/Details_RaidInfo-HellfireCitadel.lua @@ -0,0 +1,390 @@ + +do + +--load encounter journal +if (not EJ_GetEncounterInfoByIndex (1, 669)) then + EJ_SelectInstance (669) +end + +local InstanceName = EJ_GetInstanceInfo (669) + +local boss_1_name = EJ_GetEncounterInfoByIndex (1, 669) +local boss_2_name = EJ_GetEncounterInfoByIndex (2, 669) +local boss_3_name = EJ_GetEncounterInfoByIndex (3, 669) +local boss_4_name = EJ_GetEncounterInfoByIndex (4, 669) +local boss_5_name = EJ_GetEncounterInfoByIndex (5, 669) +local boss_6_name = EJ_GetEncounterInfoByIndex (6, 669) +local boss_7_name = EJ_GetEncounterInfoByIndex (7, 669) +local boss_8_name = EJ_GetEncounterInfoByIndex (8, 669) +local boss_9_name = EJ_GetEncounterInfoByIndex (9, 669) +local boss_10_name = EJ_GetEncounterInfoByIndex (10, 669) +local boss_11_name = EJ_GetEncounterInfoByIndex (11, 669) +local boss_12_name = EJ_GetEncounterInfoByIndex (12, 669) +local boss_13_name = EJ_GetEncounterInfoByIndex (13, 669) + +_detalhes:InstallEncounter ({ + + id = 1448, --map id + ej_id = 669, --encounter journal id + name = InstanceName, + icons = [[Interface\AddOns\Details_RaidInfo-HellfireCitadel\boss_faces]], + icon = [[Interface\AddOns\Details_RaidInfo-HellfireCitadel\icon256x128]], + is_raid = true, + backgroundFile = {file = [[Interface\Glues\LOADINGSCREENS\LoadScreen_HellfireRaid]], coords = {0, 1, 296/1024, 880/1024}}, + backgroundEJ = [[Interface\EncounterJournal\UI-EJ-LOREBG-HellfireRaid]], + -- + boss_names = { + boss_1_name, --"Hellfire Assault" + boss_2_name, --"Iron Reaver" + boss_3_name, --"Kormrok" + boss_4_name, --"Hellfire High Council" + boss_5_name, --"Kilrogg Deadeye" + boss_6_name, --"Gorefiend" + boss_7_name, --"Shadow-Lord Iskar" + boss_8_name, --"Socrethar the Eternal" + boss_9_name, --"Fel Lord Zakuun" + boss_10_name, --"Xhul'horac" + boss_11_name, --"Tyrant Velhari" + boss_12_name, --"Mannoroth" + boss_13_name, --"Archimonde" + }, + + encounter_ids = { --encounter journal encounter id + 1426,1425,1392,1432,1396,1372,1433,1427,1391,1447,1394,1395,1438, + [1426] = 1, + [1425] = 2, + [1392] = 3, + [1432] = 4, + [1396] = 5, + [1372] = 6, + [1433] = 7, + [1427] = 8, + [1391] = 9, + [1447] = 10, + [1394] = 11, + [1395] = 12, + [1438] = 13, + }, + + encounter_ids2 = { --combatlog encounter id + [1778] = 1, --"Hellfire Assault" + [1785] = 2, --"Iron Reaver" + [1787] = 3, --"Kormrok" + [1798] = 4, --"Hellfire High Council" + [1786] = 5, --"Kilrogg Deadeye" + [1783] = 6, --"Gorefiend" + [1788] = 7, --"Shadow-Lord Iskar" + [1794] = 8, --"Socrethar the Eternal" + [1777] = 9, --"Fel Lord Zakuun" + [1800] = 10, --"Xhul'horac" + [1784] = 11, --"Tyrant Velhari" + [1795] = 12, --"Mannoroth" + [1799] = 13, --"Archimonde" + }, + + boss_ids = { --npc ids + + }, + encounters = { + [1] = { + boss = boss_1_name, --"Hellfire Assault" + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-hellfireassault]], + }, + [2] = { + boss = boss_2_name, --"Iron Reaver", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-felreaver]], + }, + [3] = { + boss = boss_3_name, --"Kormrok", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-kormok]], + }, + [4] = { + boss = boss_4_name, --"Hellfire High Council", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-gurtoggbloodboil]], + }, + [5] = { + boss = boss_5_name, --"Kilrogg Deadeye", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-kilroggdeadeye]], + }, + [6] = { + boss = boss_6_name, --"Gorefiend", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-gorefiend]], + }, + [7] = { + boss = boss_7_name, --"Shadow-Lord Iskar", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-shadowlordiskar]], + }, + [8] = { + boss = boss_8_name, --"Socrethar the Eternal", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-soulboundconstruct]], + }, + [9] = { + boss = boss_9_name, --"Fel Lord Zakuun", + portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-FelLordZakuun]], + }, + [10] = { + boss = boss_10_name, --"Xhul'horac", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-xhulhorac]], + }, + [11] = { + boss = boss_11_name, --"Tyrant Velhari", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-tyrantvelhari]], + }, + [12] = { + boss = boss_12_name, --"Mannoroth", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-mannorothwod]], + }, + [13] = { + boss = boss_13_name, --"Archimonde", + portrait = [[Interface\ENCOUNTERJOURNAL\ui-ej-boss-archimondewod]], + }, + }, +}) + +end + +--> replacement for healing function: +local Details = Details +local _bit_band = bit.band +local OBJECT_TYPE_PETS = 0x00003000 +local REACTION_FRIENDLY = 0x00000010 +local OBJECT_TYPE_ENEMY = 0x00000040 +local UnitDebuff = UnitDebuff +local ptime = time + +local Aura_of_Contempt = GetSpellInfo (179987) +if (not Aura_of_Contempt) then + return Detais:Msg ("Fail to get Aura of Contempt spellname from spell 179987.") +end + +local function parser_heal (_, token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, multistrike, is_shield) + +----------------------------------------------------------------------------------------------- +--> early checks and fixes + + --> only capture heal if is in combat + if (not Details.in_combat) then + return + end + + --> check invalid serial against pets + if (who_serial == "") then + if (who_flags and _bit_band (who_flags, OBJECT_TYPE_PETS) ~= 0) then --> é um pet + return + end + end + + --> no name, use spellname + if (not who_name) then + who_name = "[*] "..spellname + end + + --> no target, just ignore + if (not alvo_name) then + return + end + + --> spirit link toten + if (spellid == 98021) then + return Details.parser:SLT_healing (token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, spellid, spellname, spelltype, amount, overhealing, absorbed, critical, multistrike, is_shield) + end + + local cura_efetiva + local aura_of_contempt_overheal + overhealing = overhealing or 0 + amount = amount or 0 + absorbed = absorbed or 0 + + if (is_shield) then + cura_efetiva = amount + else + if (UnitDebuff (alvo_name, Aura_of_Contempt)) then + cura_efetiva = amount + aura_of_contempt_overheal = absorbed + cura_efetiva = cura_efetiva - overhealing + overhealing = overhealing + absorbed + else + cura_efetiva = absorbed + cura_efetiva = cura_efetiva + amount - overhealing + end + end + + Details.tabela_vigente[2].need_refresh = true + +------------------------------------------------------------------------------------------------ +--> get actors + + local este_jogador, meu_dono, who_name = Details.tabela_vigente[2]:PegarCombatente (who_serial, who_name, who_flags, true) + local jogador_alvo, alvo_dono, alvo_name = Details.tabela_vigente[2]:PegarCombatente (alvo_serial, alvo_name, alvo_flags, true) + + este_jogador.last_event = ptime() + +------------------------------------------------------------------------------------------------ +--> an enemy healing enemy or an player actor healing a enemy + + if (_bit_band (alvo_flags, REACTION_FRIENDLY) == 0 and not _detalhes.is_in_arena) then + if (not este_jogador.heal_enemy [spellid]) then + este_jogador.heal_enemy [spellid] = cura_efetiva + else + este_jogador.heal_enemy [spellid] = este_jogador.heal_enemy [spellid] + cura_efetiva + end + + este_jogador.heal_enemy_amt = este_jogador.heal_enemy_amt + cura_efetiva + + return + end + +------------------------------------------------------------------------------------------------ +--> group checks + + if (este_jogador.grupo) then + Details.tabela_vigente.totals_grupo [2] = Details.tabela_vigente.totals_grupo [2] + cura_efetiva + end + + if (jogador_alvo.grupo) then + + local t = Details.tabela_vigente.player_last_events [alvo_name] + + if (not t) then + t = Details.tabela_vigente:CreateLastEventsTable (alvo_name) + end + + local i = t.n + + local this_event = t [i] + + this_event [1] = false --> true if this is a damage || false for healing + this_event [2] = spellid --> spellid || false if this is a battle ress line + this_event [3] = amount --> amount of damage or healing + this_event [4] = time --> parser time + this_event [5] = UnitHealth (alvo_name) --> current unit heal + this_event [6] = who_name --> source name + this_event [7] = is_shield + this_event [8] = absorbed + + i = i + 1 + + if (i == Details.deadlog_events+1) then + t.n = 1 + else + t.n = i + end + + end + +------------------------------------------------------------------------------------------------ +--> timer + + if (not este_jogador.iniciar_hps) then + + este_jogador:Iniciar (true) --inicia o hps do jogador + + if (meu_dono and not meu_dono.iniciar_hps) then + meu_dono:Iniciar (true) + if (meu_dono.end_time) then + meu_dono.end_time = nil + else + meu_dono.start_time = ptime() + end + end + + if (este_jogador.end_time) then --> o combate terminou, reabrir o tempo + este_jogador.end_time = nil + else + este_jogador.start_time = ptime() + end + end + +------------------------------------------------------------------------------------------------ +--> add amount + + --> actor target + + if (cura_efetiva > 0) then + + --> combat total + Details.tabela_vigente.totals [2] = Details.tabela_vigente.totals [2] + cura_efetiva + + --> actor healing amount + este_jogador.total = este_jogador.total + cura_efetiva + este_jogador.total_without_pet = este_jogador.total_without_pet + cura_efetiva + + if (aura_of_contempt_overheal) then + este_jogador.aura_of_contempt_overheal = (este_jogador.aura_of_contempt_overheal or 0) + aura_of_contempt_overheal + end + + --> healing taken + jogador_alvo.healing_taken = jogador_alvo.healing_taken + cura_efetiva --> adiciona o dano tomado + if (not jogador_alvo.healing_from [who_name]) then --> adiciona a pool de dano tomado de quem + jogador_alvo.healing_from [who_name] = true + end + + if (is_shield) then + este_jogador.totalabsorb = este_jogador.totalabsorb + cura_efetiva + este_jogador.targets_absorbs [alvo_name] = (este_jogador.targets_absorbs [alvo_name] or 0) + cura_efetiva + end + + --> pet + if (meu_dono) then + meu_dono.total = meu_dono.total + cura_efetiva --> heal do pet + meu_dono.targets [alvo_name] = (meu_dono.targets [alvo_name] or 0) + amount + end + + --> target amount + este_jogador.targets [alvo_name] = (este_jogador.targets [alvo_name] or 0) + amount + end + + if (meu_dono) then + meu_dono.last_event = ptime() + end + + if (overhealing > 0) then + este_jogador.totalover = este_jogador.totalover + overhealing + este_jogador.targets_overheal [alvo_name] = (este_jogador.targets_overheal [alvo_name] or 0) + overhealing + + if (meu_dono) then + meu_dono.totalover = meu_dono.totalover + overhealing + end + end + + --> actor spells table + local spell = este_jogador.spells._ActorTable [spellid] + if (not spell) then + spell = este_jogador.spells:PegaHabilidade (spellid, true, token) + if (is_shield) then + spell.is_shield = true + end + if (Details.tabela_vigente.is_boss and who_flags and _bit_band (who_flags, OBJECT_TYPE_ENEMY) ~= 0) then + _detalhes.spell_school_cache [spellname] = spelltype or school + end + end + + if (is_shield) then + --return spell:Add (alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, 0, nil, overhealing, true) + return _detalhes.habilidade_cura.Add (spell, alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, 0, nil, overhealing, true, multistrike) + else + --return spell:Add (alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, absorbed, critical, overhealing) + return _detalhes.habilidade_cura.Add (spell, alvo_serial, alvo_name, alvo_flags, cura_efetiva, who_name, absorbed, critical, overhealing, nil, multistrike) + end +end + +local listener = CreateFrame ("frame") +listener:RegisterEvent ("ENCOUNTER_START") +listener:RegisterEvent ("ENCOUNTER_END") + +listener:SetScript ("OnEvent", function (self, event, ...) + + local encounterID, encounterName, difficultyID, raidSize, endStatus = select (1, ...) + + -- if (encounterID == 1721) then --kargath for testing + if (encounterID == 1784) then--"Tyrant Velhari" + if (event == "ENCOUNTER_START") then + --> replacing the healing done func + Details.parser:SetParserFunction ("heal", parser_heal) + else + --> restoring the func + Details.parser:SetParserFunction ("heal", nil) + end + end + +end) diff --git a/plugins/Details_RaidInfo-HellfireCitadel/Details_RaidInfo-HellfireCitadel.toc b/plugins/Details_RaidInfo-HellfireCitadel/Details_RaidInfo-HellfireCitadel.toc new file mode 100644 index 00000000..6fd3f7f7 --- /dev/null +++ b/plugins/Details_RaidInfo-HellfireCitadel/Details_RaidInfo-HellfireCitadel.toc @@ -0,0 +1,6 @@ +## Interface: 60200 +## Title: Details: Hellfire Citadel +## Notes: Plugin for Details +## RequiredDeps: Details + +Details_RaidInfo-HellfireCitadel.lua \ No newline at end of file diff --git a/plugins/Details_RaidInfo-HellfireCitadel/boss_faces.tga b/plugins/Details_RaidInfo-HellfireCitadel/boss_faces.tga new file mode 100644 index 00000000..5de49e72 Binary files /dev/null and b/plugins/Details_RaidInfo-HellfireCitadel/boss_faces.tga differ diff --git a/plugins/Details_RaidInfo-HellfireCitadel/icon256x128.tga b/plugins/Details_RaidInfo-HellfireCitadel/icon256x128.tga new file mode 100644 index 00000000..1c34b681 Binary files /dev/null and b/plugins/Details_RaidInfo-HellfireCitadel/icon256x128.tga differ diff --git a/plugins/Details_RaidInfo-Highmaul/Details_RaidInfo-Highmaul.lua b/plugins/Details_RaidInfo-Highmaul/Details_RaidInfo-Highmaul.lua deleted file mode 100644 index 49810d29..00000000 --- a/plugins/Details_RaidInfo-Highmaul/Details_RaidInfo-Highmaul.lua +++ /dev/null @@ -1,149 +0,0 @@ - -local _detalhes = _G._detalhes - -local trash_mobs_ids = { - -} - -local highmaul = { - - id = 1228, --994 = map id extracted from encounter journal - ej_id = 477, --encounter journal id - - name = "Highmaul", - - icons = [[Interface\AddOns\Details_RaidInfo-Highmaul\boss_faces]], - icon = [[Interface\AddOns\Details_RaidInfo-Highmaul\icon256x128]], - - is_raid = true, - - backgroundFile = {file = [[Interface\Glues\LOADINGSCREENS\LoadingScreen_HighMaulRaid]], coords = {0, 1, 265/1024, 875/1024}}, - backgroundEJ = [[Interface\EncounterJournal\UI-EJ-LOREBG-Highmaul]], - - boss_names = { - --[[ 1 ]] "Kargath Bladefist", - --[[ 2 ]] "The Butcher", - --[[ 3 ]] "Tectus", - --[[ 4 ]] "Brackenspore", - --[[ 5 ]] "Twin Ogron", - --[[ 6 ]] "Ko'ragh", - --[[ 7 ]] "Imperator Mar'gok", - }, - - encounter_ids = { --encounter journal encounter id - --> Ids by Index - 1128, 971, 1195, 1196, 1148, 1153, 1197, - - --> Boss Index - [1128] = 1, - [971] = 2, - [1195] = 3, - [1196] = 4, - [1148] = 5, - [1153] = 6, - [1197] = 7, - }, - - encounter_ids2 = { - --combatlog encounter id - [1721] = 1, --kargath - [1706] = 2, --the butcher - [1722] = 3, --tectus - [1720] = 4, --brakenspore - [1719] = 5, --twin ogron - [1723] = 6, --Koragh - [1705] = 7, --Margok - }, - - boss_ids = { - --npc ids - [78714] = 1, --Kargath - [77404] = 2, --The Butcher - [78948] = 3, --Tectus - [78491] = 4, --Brakenspore - [78238] = 5, --Pol - [78237] = 5, --Phemos - [79015] = 6, --Koragh - [77428] = 7, --Margok - }, - - encounters = { - - [1] = { - boss = "Kargath Bladefist", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Kargath Bladefist]], - - --> spell list - continuo = {}, - }, - - [2] = { - boss = "The Butcher", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-The Butcher]], - - --> spell list - continuo = {}, - }, - - [3] = { - boss = "Tectus", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Tectus The Living Mountain]], - - --> spell list - continuo = {}, - - funcType = 0x2, - func = function (combat) - local removed = false - local list = combat:GetActorList (DETAILS_ATTRIBUTE_DAMAGE) - for i = #list, 1, -1 do - local id = _detalhes:GetNpcIdFromGuid (list[i].serial) - if (trash_mobs_ids [id]) then - tremove (list, i) - combat.totals [DETAILS_ATTRIBUTE_DAMAGE] = combat.totals [DETAILS_ATTRIBUTE_DAMAGE] - list[i].total - removed = true - end - end - if (removed) then - combat[DETAILS_ATTRIBUTE_DAMAGE]:Remap() - end - end, - }, - - [4] = { - boss = "Brackenspore", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Brackenspore]], - - --> spell list - continuo = {}, - }, - - [5] = { - boss = "Twin Ogron", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Twin Ogron]], - - --> spell list - continuo = {}, - }, - - [6] = { - boss = "Ko'ragh", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Fel Breaker]], - - --> spell list - continuo = {}, - }, - - [7] = { - boss = "Imperator Mar'gok", - portrait = [[Interface\ENCOUNTERJOURNAL\UI-EJ-BOSS-Imperator Margok]], - - --> spell list - continuo = {}, - }, - - }, - -} - -_detalhes:InstallEncounter (highmaul) \ No newline at end of file diff --git a/plugins/Details_RaidInfo-Highmaul/Details_RaidInfo-Highmaul.toc b/plugins/Details_RaidInfo-Highmaul/Details_RaidInfo-Highmaul.toc deleted file mode 100644 index fb4114eb..00000000 --- a/plugins/Details_RaidInfo-Highmaul/Details_RaidInfo-Highmaul.toc +++ /dev/null @@ -1,6 +0,0 @@ -## Interface: 60100 -## Title: Details: Highmaul -## Notes: Plugin for Details -## RequiredDeps: Details - -Details_RaidInfo-Highmaul.lua diff --git a/plugins/Details_RaidInfo-Highmaul/boss_faces.tga b/plugins/Details_RaidInfo-Highmaul/boss_faces.tga deleted file mode 100644 index 6159dc74..00000000 Binary files a/plugins/Details_RaidInfo-Highmaul/boss_faces.tga and /dev/null differ diff --git a/plugins/Details_RaidInfo-Highmaul/icon256x128.tga b/plugins/Details_RaidInfo-Highmaul/icon256x128.tga deleted file mode 100644 index 90e1a721..00000000 Binary files a/plugins/Details_RaidInfo-Highmaul/icon256x128.tga and /dev/null differ diff --git a/plugins/Details_TimeAttack/Details_TimeAttack.toc b/plugins/Details_TimeAttack/Details_TimeAttack.toc index cc621d40..391aeb2a 100644 --- a/plugins/Details_TimeAttack/Details_TimeAttack.toc +++ b/plugins/Details_TimeAttack/Details_TimeAttack.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details TimeAttack (plugin) ## Notes: Plugin for Details ## SavedVariablesPerCharacter: _detalhes_databaseTimeAttack diff --git a/plugins/Details_TinyThreat/Details_TinyThreat.toc b/plugins/Details_TinyThreat/Details_TinyThreat.toc index db15ecf4..004c7af1 100644 --- a/plugins/Details_TinyThreat/Details_TinyThreat.toc +++ b/plugins/Details_TinyThreat/Details_TinyThreat.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details Tiny Threat (plugin) ## Notes: Plugin for Details ## RequiredDeps: Details diff --git a/plugins/Details_Vanguard/Details_Vanguard.lua b/plugins/Details_Vanguard/Details_Vanguard.lua index 9e456c5b..0b4298e5 100644 --- a/plugins/Details_Vanguard/Details_Vanguard.lua +++ b/plugins/Details_Vanguard/Details_Vanguard.lua @@ -91,10 +91,8 @@ local function CreatePluginFrames (data) VanguardFrame:RegisterEvent ("PLAYER_TARGET_CHANGED") Vanguard:ResetBars() - --Vanguard:ResetDebuffs() -- ?? Vanguard:IdentifyTanks() - Vanguard.CurrentInstance = Vanguard:GetInstance (Vanguard.instance_id) Vanguard.CurrentCombat = _detalhes:GetCombat ("current") VanguardFrame:SetFrameStrata (Vanguard.CurrentInstance.baseframe:GetFrameStrata()) diff --git a/plugins/Details_Vanguard/Details_Vanguard.toc b/plugins/Details_Vanguard/Details_Vanguard.toc index 02b171c7..707250bb 100644 --- a/plugins/Details_Vanguard/Details_Vanguard.toc +++ b/plugins/Details_Vanguard/Details_Vanguard.toc @@ -1,4 +1,4 @@ -## Interface: 60100 +## Interface: 60200 ## Title: Details Vanguard (plugin) ## Notes: Plugin for Details ## SavedVariablesPerCharacter: _detalhes_databaseVanguard