From d93fa5248f17230ceb6ef99df9fbe3f20a54feaa Mon Sep 17 00:00:00 2001 From: Tercio Jose Date: Sat, 16 Jan 2021 15:57:59 -0300 Subject: [PATCH] More fixes and development --- Libs/DF/fw.lua | 4 +- Libs/DF/spells.lua | 2 - Libs/DF/timebar.lua | 31 +++- Libs/LibRaidStatus/LibRaidStatus.lua | 140 +++++++++----- boot.lua | 55 +++--- classes/class_instance.lua | 10 +- core/gears.lua | 4 +- frames/window_cdtracker.lua | 246 +++++++++++++++++++++---- frames/window_news.lua | 19 +- frames/window_playerbreakdown.lua | 1 + frames/window_playerbreakdown_list.lua | 47 +++-- functions/playerclass.lua | 2 +- functions/profiles.lua | 27 +-- images/news_images.tga | Bin 0 -> 1048620 bytes startup.lua | 2 + 15 files changed, 444 insertions(+), 146 deletions(-) create mode 100644 images/news_images.tga diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index afe4c410..f118d64b 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -1,6 +1,6 @@ -local dversion = 228 +local dversion = 229 local major, minor = "DetailsFramework-1.0", dversion local DF, oldminor = LibStub:NewLibrary (major, minor) @@ -4238,3 +4238,5 @@ end _G.setfenv(func, newEnvironment) end + +----------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/Libs/DF/spells.lua b/Libs/DF/spells.lua index 2ee6c5d4..921ba1e7 100644 --- a/Libs/DF/spells.lua +++ b/Libs/DF/spells.lua @@ -974,8 +974,6 @@ DF.PotionIDs = { -- [] = true, -- [307165] = true, --Spiritual Anti-Venom - - } DF.FeastIDs = { diff --git a/Libs/DF/timebar.lua b/Libs/DF/timebar.lua index 0544ae79..77659df2 100644 --- a/Libs/DF/timebar.lua +++ b/Libs/DF/timebar.lua @@ -197,23 +197,27 @@ function TimeBarMetaFunctions:SetDirection(direction) self.direction = direction end +function TimeBarMetaFunctions:HasTimer() + return self.statusBar.hasTimer +end + function TimeBarMetaFunctions:StopTimer() if (self.statusBar.hasTimer) then + self.statusBar.hasTimer = nil local kill = self:RunHooksForWidget("OnTimerEnd", self.statusBar, self) if (kill) then return end - - local statusBar = self.statusBar - statusBar:SetScript("OnUpdate", nil) - - statusBar:SetMinMaxValues(0, 100) - statusBar:SetValue(100) - statusBar.rightText:SetText("") - - statusBar.spark:Hide() - statusBar.hasTimer = nil end + + local statusBar = self.statusBar + statusBar:SetScript("OnUpdate", nil) + + statusBar:SetMinMaxValues(0, 100) + statusBar:SetValue(100) + statusBar.rightText:SetText("") + + statusBar.spark:Hide() end local OnUpdateFunc = function(self, deltaTime) @@ -249,6 +253,12 @@ local OnUpdateFunc = function(self, deltaTime) end function TimeBarMetaFunctions:SetTimer(currentTime, startTime, endTime) + + if (not currentTime or currentTime == 0) then + self:StopTimer() + return + end + if (startTime and endTime) then if (self.statusBar.hasTimer and currentTime == self.statusBar.timeLeft1) then --it is the same timer called again @@ -266,6 +276,7 @@ function TimeBarMetaFunctions:SetTimer(currentTime, startTime, endTime) self.statusBar.timeLeft2 = currentTime end + --print("min|max values:", self.statusBar.starTime, self.statusBar.endTime) self.statusBar:SetMinMaxValues(self.statusBar.starTime, self.statusBar.endTime) if (self.direction == "right") then diff --git a/Libs/LibRaidStatus/LibRaidStatus.lua b/Libs/LibRaidStatus/LibRaidStatus.lua index 40ccc0a9..9cd80fa0 100644 --- a/Libs/LibRaidStatus/LibRaidStatus.lua +++ b/Libs/LibRaidStatus/LibRaidStatus.lua @@ -1,6 +1,6 @@ local major = "LibRaidStatus-1.0" -local CONST_LIB_VERSION = 11 +local CONST_LIB_VERSION = 13 LIB_RAID_STATUS_CAN_LOAD = false --declae the library within the LibStub @@ -17,7 +17,7 @@ LIB_RAID_STATUS_CAN_LOAD = false raidStatusLib.CanReceiveComms = false --print failures (when the function return an error) results to chat - local CONST_DIAGNOSTIC_ERRORS = true + local CONST_DIAGNOSTIC_ERRORS = false --print the data to be sent and data received from comm local CONST_DIAGNOSTIC_COMM = false @@ -120,15 +120,6 @@ LIB_RAID_STATUS_CAN_LOAD = false return newString end - --stract some indexes of a table - local selectIndexes = function(table, startIndex, amountIndexes) - local values = {} - for i = startIndex, startIndex+amountIndexes do - values[#values+1] = tonumber(table[i]) or 0 - end - return values - end - --return is a number is almost equal to another within a tolerance range function raidStatusLib.isNearlyEqual(value1, value2, tolerance) tolerance = tolerance or CONST_FRACTION_OF_A_SECOND @@ -140,6 +131,15 @@ LIB_RAID_STATUS_CAN_LOAD = false return raidStatusLib.CanReceiveComms end + --stract some indexes of a table + local selectIndexes = function(table, startIndex, amountIndexes) + local values = {} + for i = startIndex, startIndex+amountIndexes do + values[#values+1] = tonumber(table[i]) or 0 + end + return values + end + --transform a string table into a regular table --@table: a table with unknown values --@index: where in the table is the information we want @@ -160,7 +160,7 @@ LIB_RAID_STATUS_CAN_LOAD = false for i = indexStart, indexEnd, amountOfValues do if (valueIsTable) then local key = tonumber(table[i]) - local values = selectIndexes(table, i+1, 1) + local values = selectIndexes(table, i+1, max(amountOfValues-2, 1)) result[key] = values else local key = tonumber(table[i]) @@ -220,7 +220,6 @@ LIB_RAID_STATUS_CAN_LOAD = false --remove the first index (prefix) tremove(dataAsTable, 1) - --Details:Dump(dataAsTable) --trigger callbacks for i = 1, #callbackTable do @@ -659,19 +658,19 @@ LIB_RAID_STATUS_CAN_LOAD = false local cooldownTimeLeftCheck = function(tickerObject) local spellId = tickerObject.spellId tickerObject.cooldownTimeLeft = tickerObject.cooldownTimeLeft - CONST_COOLDOWN_CHECK_INTERVAL - local timeLeft, charges = raidStatusLib.cooldownManager.GetCooldownStatus(spellId) + local timeLeft, charges, startTime, duration = raidStatusLib.cooldownManager.GetCooldownStatus(spellId) --is the spell ready to use? if (timeLeft == 0) then --it's ready - raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, 0, charges) + raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, 0, charges, 0, 0) raidStatusLib.cooldownManager.cooldownTickers[spellId] = nil tickerObject:Cancel() else --check if the time left has changed if (not raidStatusLib.isNearlyEqual(tickerObject.cooldownTimeLeft, timeLeft, CONST_COOLDOWN_TIMELEFT_HAS_CHANGED)) then --there's a deviation, send a comm to communicate the change in the time left - raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, timeLeft, charges) + raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, timeLeft, charges, startTime, duration) tickerObject.cooldownTimeLeft = timeLeft end end @@ -724,11 +723,14 @@ LIB_RAID_STATUS_CAN_LOAD = false --update a single spell time and charges --called when the player casted a cooldown and when received a cooldown update from another player - local singleCooldownUpdate = function(unitName, spellId, newTimeLeft, newCharges) + --only update the db, no other action is taken + local singleCooldownUpdate = function(unitName, spellId, newTimeLeft, newCharges, startTime, duration) local unitCooldownTable = cooldownGetUnitTable(unitName) local spellIdTable = unitCooldownTable[spellId] or {} spellIdTable[1] = newTimeLeft spellIdTable[2] = newCharges + spellIdTable[3] = startTime + spellIdTable[4] = duration unitCooldownTable[spellId] = spellIdTable end @@ -736,6 +738,7 @@ LIB_RAID_STATUS_CAN_LOAD = false return raidStatusLib.cooldownManager.playerData end + --@playerName: name of the player function raidStatusLib.cooldownManager.GetPlayerCooldownTable(playerName) return raidStatusLib.cooldownManager.playerData[playerName] end @@ -746,18 +749,17 @@ LIB_RAID_STATUS_CAN_LOAD = false if (playerSpec) then if (LIB_RAID_STATUS_COOLDOWNS_BY_SPEC[playerSpec] and LIB_RAID_STATUS_COOLDOWNS_BY_SPEC[playerSpec][spellId]) then --get the cooldown time for this spell - local timeLeft, charges = raidStatusLib.cooldownManager.GetCooldownStatus(spellId) - + local timeLeft, charges, startTime, duration = raidStatusLib.cooldownManager.GetCooldownStatus(spellId) local playerName = UnitName("player") --update the time left - singleCooldownUpdate(playerName, spellId, timeLeft, charges) + singleCooldownUpdate(playerName, spellId, timeLeft, charges, startTime, duration) --trigger a public callback - raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", playerName, spellId, timeLeft, charges, raidStatusLib.cooldownManager.playerData) + raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", playerName, spellId, timeLeft, charges, startTime, duration, raidStatusLib.cooldownManager.playerData) --send to comm - raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, timeLeft, charges) + raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, timeLeft, charges, startTime, duration) --create a timer to monitor the time of this cooldown --as there's just a few of them to monitor, there's no issue on creating one timer per spell @@ -774,6 +776,8 @@ LIB_RAID_STATUS_CAN_LOAD = false local spellId = tonumber(dataAsArray[1]) local cooldownTimer = tonumber(dataAsArray[2]) local charges = tonumber(dataAsArray[3]) + local startTime = tonumber(dataAsArray[4]) + local duration = tonumber(dataAsArray[5]) --check integraty if (not spellId or spellId == 0) then @@ -784,13 +788,19 @@ LIB_RAID_STATUS_CAN_LOAD = false elseif (not charges) then return diagnosticError("cooldownManager|comm received|charges is invalid") + + elseif (not startTime) then + return diagnosticError("cooldownManager|comm received|startTime is invalid") + + elseif (not duration) then + return diagnosticError("cooldownManager|comm received|duration is invalid") end --update - singleCooldownUpdate(sourceName, spellId, cooldownTimer, charges) + singleCooldownUpdate(sourceName, spellId, cooldownTimer, charges, startTime, duration) --trigger a public callback - raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", sourceName, spellId, cooldownTimer, charges, raidStatusLib.cooldownManager.playerData) + raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", sourceName, spellId, cooldownTimer, charges, startTime, duration, raidStatusLib.cooldownManager.playerData) end) --when the player is ressed while in a group, send the cooldown list @@ -836,20 +846,22 @@ LIB_RAID_STATUS_CAN_LOAD = false local chargesAvailable, chargesTotal, start, duration = GetSpellCharges(spellId) if (chargesAvailable == chargesTotal) then - return 0, chargesTotal --all charges are ready to use + return 0, chargesTotal, 0, 0 --all charges are ready to use else --return the time to the next charge local timeLeft = start + duration - GetTime() - return ceil(timeLeft), chargesAvailable + local startTimeOffset = start - GetTime() + return ceil(timeLeft), chargesAvailable, startTimeOffset, duration --time left, charges, startTime end else local start, duration = GetSpellCooldown(spellId) if (start == 0) then --cooldown is ready - return 0, 1 + return 0, 1, 0, 0 --time left, charges, startTime else local timeLeft = start + duration - GetTime() - return ceil(timeLeft), 0 + local startTimeOffset = start - GetTime() + return ceil(timeLeft), 0, ceil(startTimeOffset), duration --time left, charges, startTime, duration end end else @@ -862,8 +874,8 @@ LIB_RAID_STATUS_CAN_LOAD = false --get the full cooldown list local playerCooldownList = raidStatusLib.cooldownManager.GetPlayerCooldownList() local dataToSend = CONST_COMM_COOLDOWNFULLLIST_PREFIX .. "," - --pack + --pack local playerCooldownString = raidStatusLib.PackTable(playerCooldownList) dataToSend = dataToSend .. playerCooldownString @@ -873,8 +885,8 @@ LIB_RAID_STATUS_CAN_LOAD = false end --send to comm a specific cooldown that was just used, a charge got available or its cooldown is over (ready to use) - function raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, cooldownTimeLeft, charges) - local dataToSend = CONST_COMM_COOLDOWNUPDATE_PREFIX .. "," .. spellId .. "," .. cooldownTimeLeft .. "," .. charges + function raidStatusLib.cooldownManager.SendCooldownUpdate(spellId, cooldownTimeLeft, charges, startTime, duration) + local dataToSend = CONST_COMM_COOLDOWNUPDATE_PREFIX .. "," .. spellId .. "," .. cooldownTimeLeft .. "," .. charges .. "," .. startTime .. "," .. duration raidStatusLib.commHandler.SendCommData(dataToSend) diagnosticComm("SendCooldownUpdate| " .. dataToSend) --debug end @@ -883,15 +895,14 @@ LIB_RAID_STATUS_CAN_LOAD = false --@data: table received from comm --@source: player name function raidStatusLib.cooldownManager.OnReceiveCooldowns(data, source) - --unpack the table as a pairs table - local unpackedTable = raidStatusLib.UnpackTable(data, 1, true, true, 3) + --unpack the table as a pairs table | the cooldown info uses 5 indexes + local unpackedTable = raidStatusLib.UnpackTable(data, 1, true, true, 5) --add the list of cooldowns raidStatusLib.cooldownManager.AddUnitCooldownsList(source, unpackedTable) end raidStatusLib.commHandler.RegisterComm(CONST_COMM_COOLDOWNFULLLIST_PREFIX, raidStatusLib.cooldownManager.OnReceiveCooldowns) - --build a list with the local player cooldowns function raidStatusLib.cooldownManager.GetPlayerCooldownList() --get the player specId @@ -917,15 +928,19 @@ LIB_RAID_STATUS_CAN_LOAD = false --check if the player has the talent selected if (talentsHash[talentId]) then cooldowns[#cooldowns+1] = cooldownSpellId - local timeLeft, charges = raidStatusLib.cooldownManager.GetCooldownStatus(cooldownSpellId) + local timeLeft, charges, startTime, duration = raidStatusLib.cooldownManager.GetCooldownStatus(cooldownSpellId) cooldowns[#cooldowns+1] = timeLeft cooldowns[#cooldowns+1] = charges + cooldowns[#cooldowns+1] = startTime + cooldowns[#cooldowns+1] = duration end else cooldowns[#cooldowns+1] = cooldownSpellId - local timeLeft, charges = raidStatusLib.cooldownManager.GetCooldownStatus(cooldownSpellId) + local timeLeft, charges, startTime, duration = raidStatusLib.cooldownManager.GetCooldownStatus(cooldownSpellId) cooldowns[#cooldowns+1] = timeLeft cooldowns[#cooldowns+1] = charges + cooldowns[#cooldowns+1] = startTime + cooldowns[#cooldowns+1] = duration end end end @@ -935,6 +950,47 @@ LIB_RAID_STATUS_CAN_LOAD = false end end +--> vintage cooldown tracker +C_Timer.After(0.1, function() + local vintageCDTrackerFrame = CreateFrame("frame") + vintageCDTrackerFrame:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") + local allCooldownsFromLib = LIB_RAID_STATUS_COOLDOWNS_INFO + local recentCastedSpells = {} + + vintageCDTrackerFrame:SetScript("OnEvent", function(self, event, ...) + if (event == "UNIT_SPELLCAST_SUCCEEDED") then + local unit, castGUID, spellId = ... + if (UnitInParty(unit) or UnitInRaid(unit)) then + local unitName = UnitName(unit) + local cooldownInfo = allCooldownsFromLib[spellId] + if (cooldownInfo and unitName and not raidStatusLib.cooldownManager.GetPlayerCooldownTable(unitName)) then + --check for cast_success spam from channel spells + local unitCastCooldown = recentCastedSpells[UnitGUID(unit)] + if (not unitCastCooldown) then + unitCastCooldown = {} + recentCastedSpells[UnitGUID(unit)] = unitCastCooldown + end + + if (not unitCastCooldown[spellId] or unitCastCooldown[spellId]+5 < GetTime()) then + unitCastCooldown[spellId] = GetTime() + --trigger a cooldown usage + + local duration = cooldownInfo.duration + --time left, charges, startTimeDeviation, duration + singleCooldownUpdate(unitName, spellId, duration, 0, 0, duration) + + --trigger a public callback + raidStatusLib.publicCallback.TriggerCallback("CooldownUpdate", unitName, spellId, duration, 0, 0, duration, raidStatusLib.cooldownManager.playerData) + end + end + end + end + end) +end) + + + + -------------------------------------------------------------------------------------------------------------------------------- --> ~equipment @@ -1227,9 +1283,9 @@ LIB_RAID_STATUS_CAN_LOAD = false local playerInfo = raidStatusLib.playerInfoManager.playerData[playerName] if (not playerInfo and createNew) then playerInfo = { - specId = 0, - renown = 1, - talents = {}, + specId = 0, + renown = 1, + talents = {}, conduits = {}, } raidStatusLib.playerInfoManager.playerData[playerName] = playerInfo @@ -1393,8 +1449,10 @@ function raidStatusLib.playerInfoManager.GetPlayerFullInfo() end - - +function raidStatusLib.playerInfoManager.onEnterWorld() + raidStatusLib.playerInfoManager.GetPlayerFullInfo() +end +raidStatusLib.internalCallback.RegisterCallback("onEnterWorld", raidStatusLib.playerInfoManager.onEnterWorld) -------------------------------------------------------------------------------------------------------------------------------- --> data diff --git a/boot.lua b/boot.lua index c381a7ef..be9a2da2 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 = 8102 - _detalhes.alpha_build_counter = 8102 --if this is higher than the regular counter, use it instead + _detalhes.build_counter = 8154 + _detalhes.alpha_build_counter = 8154 --if this is higher than the regular counter, use it instead _detalhes.game_version = "v9.0.2" _detalhes.userversion = "v9.0.2." .. _detalhes.build_counter _detalhes.realversion = 144 --core version, this is used to check API version for scripts and plugins (see alias below) @@ -28,7 +28,18 @@ do local Loc = _G.LibStub("AceLocale-3.0"):GetLocale( "Details" ) local news = { - {"v9.0.1.8001.144", "December 19th, 2020"}, + {"v9.0.2.8154.144", "January 14th, 2021"}, + "Added total damage bars into the player list in the Breakdown window.", + "Added 'Square' or 'Roll' mode to Details! Streamer plugin, to change the statusbar mode to Squares, visit the options panel for the plugin.", + "Added Binding Shot to crowd control (Hunter)", + "Merged all whirlwind damage (Warrior).", + "Fixed errors on the 1-10 tutorial levels while playing Demon Hunters.", + "Fixed some cases of DeathLog not showing healing", + "Fixed windows making a group after '/details toggle', while the option to not make groups enabled.", + "Fixed some issues with the custom display 'Potion Used' and 'Health Potion & Stone'.", + "Fixed the breakdown window where using the comparisson tab sometimes made the frame to overlap with the aura tab.", + + {"v9.0.2.8001.144", "December 19th, 2020"}, "Added Details! Coach as a new experimental feature, you may want to test using /details coach", "Coach feature allows the raid leader to stay outside the raid while seeing in real time player deaths and damage information.", "Fixed issues with some raid encounters in Castle Nathria.", @@ -492,29 +503,31 @@ do --> plugins container _detalhes.StatusBar = {} --> maintain plugin menu - _detalhes.StatusBar.Menu = {} + _detalhes.StatusBar.Menu = {} --> plugins object - _detalhes.StatusBar.Plugins = {} + _detalhes.StatusBar.Plugins = {} --> name to plugin object - _detalhes.StatusBar.NameTable = {} + _detalhes.StatusBar.NameTable = {} --> constants - --[[global]] DETAILS_HEALTH_POTION_LIST = { - [250870] = true, --Coastal Healing Potion - [250872] = true, --Coastal Rejuvenation Potion - [6262] = true, --Warlock's Healthstone - [301308] = true, --Abyssal Healing Potion - [323436] = true --Phial of Serenity from Kyrians - } - --[[global]] DETAILS_HEALTH_POTION_ID = 250870 - --[[global]] DETAILS_REJU_POTION_ID = 250872 - --[[global]] DETAILS_MANA_POTION_ID = 250871 - --[[global]] DETAILS_FOCUS_POTION_ID = 252753 + --[[global]] DETAILS_HEALTH_POTION_ID = 307192 + --[[global]] DETAILS_REJU_POTION_ID = 307194 + --[[global]] DETAILS_MANA_POTION_ID = 307193 + --[[global]] DETAILS_FOCUS_POTION_ID = 307161 + --[[global]] DETAILS_HEALTHSTONE_ID = 6262 - --[[global]] DETAILS_INT_POTION_ID = 279151 - --[[global]] DETAILS_AGI_POTION_ID = 279152 - --[[global]] DETAILS_STR_POTION_ID = 279153 - --[[global]] DETAILS_STAMINA_POTION_ID = 279154 + --[[global]] DETAILS_INT_POTION_ID = 307162 + --[[global]] DETAILS_AGI_POTION_ID = 307159 + --[[global]] DETAILS_STR_POTION_ID = 307164 + --[[global]] DETAILS_STAMINA_POTION_ID = 307163 + + --[[global]] DETAILS_HEALTH_POTION_LIST = { + [DETAILS_HEALTH_POTION_ID] = true, --Healing Potion + [DETAILS_HEALTHSTONE_ID] = true, --Warlock's Healthstone + [DETAILS_REJU_POTION_ID] = true, --Rejuvenation Potion + [DETAILS_MANA_POTION_ID] = true, --Mana Potion + [323436] = true --Phial of Serenity (from Kyrians) + } _detalhes._detalhes_props = { DATA_TYPE_START = 1, --> Something on start diff --git a/classes/class_instance.lua b/classes/class_instance.lua index e6996e50..bc33345d 100644 --- a/classes/class_instance.lua +++ b/classes/class_instance.lua @@ -520,12 +520,14 @@ end else _detalhes:ReabrirTodasInstancias() - local instance1 = _detalhes:GetInstance (1) - local instance2 = _detalhes:GetInstance (2) + local instance1 = _detalhes:GetInstance(1) + local instance2 = _detalhes:GetInstance(2) if (instance1 and instance2) then - if (not instance1.ignore_mass_showhide and not instance2.ignore_mass_showhide) then - _detalhes:CheckCoupleWindows (instance1, instance2) + if (not Details.disable_window_groups) then + if (not instance1.ignore_mass_showhide and not instance2.ignore_mass_showhide) then + _detalhes:CheckCoupleWindows (instance1, instance2) + end end end end diff --git a/core/gears.lua b/core/gears.lua index 29dac3ce..56185da3 100644 --- a/core/gears.lua +++ b/core/gears.lua @@ -1761,11 +1761,9 @@ function Details.Database.StoreEncounter(combat) local myrole = UnitGroupRolesAssigned ("player") local mybest, onencounter = _detalhes.storage:GetBestFromPlayer (diff, encounter_id, myrole, _detalhes.playername, true) --> get dps or hps - local mybest2 = mybest[1] or 0 + local mybest2 = mybest and mybest[1] or 0 local myBestDps = mybest2 / onencounter.elapsed - --[12:18:37] Details!: error occurred on Details.Database.StoreEncounter(): Interface\AddOns\Details\core\gears.lua:1758: attempt to index local 'mybest' (a nil value) - if (mybest) then local d_one = 0 if (myrole == "DAMAGER" or myrole == "TANK") then diff --git a/frames/window_cdtracker.lua b/frames/window_cdtracker.lua index a2969866..5addc8bb 100644 --- a/frames/window_cdtracker.lua +++ b/frames/window_cdtracker.lua @@ -46,7 +46,7 @@ function Details.CooldownTracking.EnableTracker() raidStatusLib.RegisterCallback(Details.CooldownTracking, "CooldownListWiped", "CooldownListWipedFunc") raidStatusLib.RegisterCallback(Details.CooldownTracking, "CooldownUpdate", "CooldownUpdateFunc") - Details.CooldownTracking.RefreshScreenPanel() + Details.CooldownTracking.RefreshCooldownFrames() end function Details.CooldownTracking.DisableTracker() @@ -65,21 +65,100 @@ end function Details.CooldownTracking.CooldownListUpdateFunc() --print("CooldownListUpdate") - Details.CooldownTracking.RefreshScreenPanel() + Details.CooldownTracking.RefreshCooldowns() end function Details.CooldownTracking.CooldownListWipedFunc() --print("CooldownListWiped") - Details.CooldownTracking.RefreshScreenPanel() + Details.CooldownTracking.RefreshCooldowns() end function Details.CooldownTracking.CooldownUpdateFunc() - --print("CooldownUpdate") - Details.CooldownTracking.RefreshScreenPanel() + print("CooldownUpdate") + Details.CooldownTracking.RefreshCooldowns() end -function Details.CooldownTracking.RefreshScreenPanel() +function Details.CooldownTracking.HideAllBars() + for _, bar in ipairs (DetailsOnlineCDTrackerScreenPanel.bars) do + bar:ClearAllPoints() + bar:Hide() + end +end +function Details.CooldownTracking.GetOrCreateNewCooldownFrame(screenPanel, frameId) + local cooldownFrame = screenPanel.bars[frameId] + if (cooldownFrame) then + return cooldownFrame + end + + local cooldownFrame = DF:CreateTimeBar(screenPanel, [[Interface\AddOns\Details\images\bar_serenity]], width-2, bar_height-2, 100, nil, screenPanel:GetName() .. "CDFrame" .. frameId) + tinsert(screenPanel.bars, cooldownFrame) + return cooldownFrame +end + +function Details.CooldownTracking.SetupCooldownFrame(cooldownFrame, unitName, class, spellId) + local spellIcon = GetSpellTexture(spellId) + if (spellIcon) then + cooldownFrame:SetIcon(spellIcon, .1, .9, .1, .9) + + local classColor = C_ClassColor.GetClassColor(class) + cooldownFrame:SetStatusBarColor(classColor.r, classColor.g, classColor.b) + + cooldownFrame:SetLeftText(DF:RemoveRealmName(unitName)) + + cooldownFrame.spellId = spellId + cooldownFrame.class = class + cooldownFrame.unitName = unitName + end +end + + +function Details.CooldownTracking.SetupCooldownFrameTimer(cooldownFrame, startTime, endTime, currentTime) + if (currentTime == 0) then + cooldownFrame:StopTimer() + + else + cooldownFrame:SetTimer(currentTime, startTime, endTime) + end +end + +function Details.CooldownTracking.ProcessUnitCooldowns(unitId, statusBarFrameId, cooldownsOrganized) + local screenPanel = DetailsOnlineCDTrackerScreenPanel + if (not screenPanel) then + return + end + + local playerInfo = raidStatusLib.playerInfoManager.GetPlayerInfo() + local allCooldownsFromLib = LIB_RAID_STATUS_COOLDOWNS_BY_SPEC + local cooldownsEnabled = Details.ocd_tracker.cooldowns + + local unitName = UnitName(unitId) + local thisPlayerInfo = playerInfo[unitName] + local GUID = UnitGUID(unitId) + local _, unitClassEng, classId = UnitClass(unitId) + local unitSpec = (thisPlayerInfo and thisPlayerInfo.specId) or (Details:GetSpecFromSerial(GUID)) or 0 + + if (unitSpec and unitSpec ~= 0) then + local unitCooldowns = allCooldownsFromLib[unitSpec] + for spellId, cooldownType in pairs(unitCooldowns) do + if (cooldownsEnabled[spellId]) then + + local spellName = GetSpellInfo(spellId) + --print("CD:", spellName, unitName) --problema com shadowfiend do shadowpriest the mostra 2 vezes + + local cooldownFrame = Details.CooldownTracking.GetOrCreateNewCooldownFrame(screenPanel, statusBarFrameId) + Details.CooldownTracking.SetupCooldownFrame(cooldownFrame, unitName, unitClassEng, spellId) + tinsert(cooldownsOrganized[classId], cooldownFrame) + statusBarFrameId = statusBarFrameId + 1 + + screenPanel.playerCache[unitName] = screenPanel.playerCache[unitName] or {} + screenPanel.playerCache[unitName][spellId] = cooldownFrame + end + end + end +end + +function Details.CooldownTracking.RefreshCooldownFrames() local screenPanel = DetailsOnlineCDTrackerScreenPanel if (not screenPanel) then @@ -100,15 +179,29 @@ function Details.CooldownTracking.RefreshScreenPanel() libWindow.MakeDraggable(screenPanel) libWindow.RestorePosition(screenPanel) + screenPanel:RegisterEvent("GROUP_ROSTER_UPDATE") + screenPanel:SetScript("OnShow", function() + screenPanel:RegisterEvent("GROUP_ROSTER_UPDATE") + end) + screenPanel:SetScript("OnHide", function() + screenPanel:UnregisterEvent("GROUP_ROSTER_UPDATE") + end) + + screenPanel:SetScript("OnEvent", function(self, event) + if (event == "GROUP_ROSTER_UPDATE") then + if (screenPanel.scheduleRosterUpdate) then + return + end + screenPanel.scheduleRosterUpdate = C_Timer.NewTimer(1, Details.CooldownTracking.RefreshCooldownFrames) + end + end) + screenPanel.bars = {} + screenPanel.cooldownCache = Details.ocd_tracker.current_cooldowns + screenPanel.playerCache = {} end - function screenPanel.HideAllBars() - for _, bar in ipairs (screenPanel.bars) do - bar:ClearAllPoints() - bar:Hide() - end - end + screenPanel.scheduleRosterUpdate = nil if (Details.ocd_tracker.show_conditions.only_in_group) then if (not IsInGroup()) then @@ -125,31 +218,115 @@ function Details.CooldownTracking.RefreshScreenPanel() end end - local cooldownsAvailable = raidStatusLib.cooldownManager.GetCooldownTable() - local cooldownsEnabled = Details.ocd_tracker.cooldowns local cooldownsOrganized = {} - for classId = 1, 12 do --12 classes cooldownsOrganized[classId] = {} end + local numGroupMembers = GetNumGroupMembers() + local statusBarFrameId = 1 - for playerName, allPlayerCooldowns in pairs(cooldownsAvailable) do - local _, classEngName, classId = UnitClass(playerName) - if (classId) then - for spellId, cooldownInfo in pairs(allPlayerCooldowns) do - if (cooldownsEnabled[spellId]) then - cooldownsOrganized[classId][#cooldownsOrganized[classId]+1] = {playerName, cooldownInfo[1], cooldownInfo[2], classId, spellId, classEngName} + wipe(screenPanel.playerCache) + + if (IsInRaid()) then + for i = 1, numGroupMembers do + local unitId = "raid"..i + Details.CooldownTracking.ProcessUnitCooldowns(unitId, statusBarFrameId, cooldownsOrganized) + end + + elseif (IsInGroup()) then + for i = 1, numGroupMembers - 1 do + local unitId = "party"..i + Details.CooldownTracking.ProcessUnitCooldowns(unitId, statusBarFrameId, cooldownsOrganized) + end + + --player + Details.CooldownTracking.ProcessUnitCooldowns("player", statusBarFrameId, cooldownsOrganized) + end + + for classId = 1, 12 do --12 classes + table.sort(cooldownsOrganized[classId], function(t1, t2) return t1.spellId < t2.spellId end) + end + + Details.CooldownTracking.RefreshCooldowns() +end + +--esta passando NIL no startTime para o SetTimer +--o numero de frames criados é menor que o numero de frames mostrados, esta dando erro em local bar = screenPanel.bars[barIndex] 381 + +function Details.CooldownTracking.RefreshCooldowns() + local screenPanel = DetailsOnlineCDTrackerScreenPanel + if (not screenPanel) then + return + end + + --local cache saved with the character savedVariables + local cooldownCache = screenPanel.cooldownCache + local cooldownStatus = raidStatusLib.cooldownManager.GetCooldownTable() + local cooldownIndex = 1 + + for unitName, allPlayerCooldowns in pairs(cooldownStatus) do + for spellId, cooldownInfo in pairs(allPlayerCooldowns) do + local cooldownFrame = screenPanel.playerCache[unitName] and screenPanel.playerCache[unitName][spellId] + if (cooldownFrame) then + + local cooldownCache = cooldownCache[unitName] and cooldownCache[unitName][spellId] + if (not cooldownCache) then + --a cache with cooldown timers is saved within the host addon + screenPanel.cooldownCache[unitName] = screenPanel.cooldownCache[unitName] or {} + screenPanel.cooldownCache[unitName][spellId] = screenPanel.cooldownCache[unitName][spellId] or {} + cooldownCache = screenPanel.cooldownCache[unitName][spellId] end + + local timeLeft = cooldownInfo[1] + local charges = cooldownInfo[2] + local startTime = GetTime() - cooldownInfo[3] + local duration = cooldownInfo[4] + local endTime = startTime + duration + + --save the cooldown data in the host addon + cooldownCache[1] = timeLeft + cooldownCache[2] = charges + cooldownCache[3] = startTime + cooldownCache[4] = endTime + + cooldownFrame:Show() + + if (cooldownFrame.spellId ~= spellId or unitName ~= cooldownFrame.unitName) then + --there's a different spell showing or player using this frame + if (timeLeft ~= 0) then + local spellName = GetSpellInfo(spellId) + --print("set timer 3", spellName, startTime + timeLeft, startTime, endTime) + --cooldownFrame:SetTimer(startTime + timeLeft, startTime, endTime) + end + else + --spell and player are the same + if (timeLeft ~= 0) then + if (cooldownFrame:HasTimer()) then + if (cooldownFrame.timeLeft ~= timeLeft) then + local spellName = GetSpellInfo(spellId) + --print("set timer 1", spellName, startTime + timeLeft, startTime, endTime) + --cooldownFrame:SetTimer(startTime + timeLeft, startTime, endTime) + end + else + if (timeLeft ~= 0) then + local spellName = GetSpellInfo(spellId) + --print("set timer 2", spellName, startTime + timeLeft, startTime, endTime) + --cooldownFrame:SetTimer(startTime + timeLeft, startTime, endTime) + end + end + else + if (cooldownFrame:GetValue() ~= 100) then + cooldownFrame:StopTimer() + end + end + end + + cooldownIndex = cooldownIndex + 1 end end end - for classId = 1, 12 do --12 classes - local t = cooldownsOrganized[classId] - table.sort(t, function(t1, t2) return t1[5] < t2[5] end) --sort by spellId - end - - screenPanel.HideAllBars() + --[=[]] local cooldownIndex = 1 @@ -157,17 +334,8 @@ function Details.CooldownTracking.RefreshScreenPanel() local t = cooldownsOrganized[classId] for i = 1, #t do local bar = screenPanel.bars[cooldownIndex] - - if (not bar) then - local newBar = DF:CreateTimeBar(screenPanel, [[Interface\AddOns\Details\images\bar_serenity]], width-2, bar_height-2, 100, nil, "DetailsOCDBar" .. cooldownIndex) - tinsert(screenPanel.bars, newBar) - bar = newBar - end - cooldownIndex = cooldownIndex + 1 - bar:Show() - local cooldownTable = t[i] local classColor = C_ClassColor.GetClassColor(cooldownTable[6]) @@ -193,8 +361,10 @@ function Details.CooldownTracking.RefreshScreenPanel() end end end + --]=] cooldownIndex = cooldownIndex - 1 + print("total frames:", cooldownIndex) local xAnchor = 1 local defaultY = 0 @@ -263,7 +433,7 @@ function Details.OpenCDTrackerWindow() get = function() return Details.ocd_tracker.show_conditions.only_in_group end, set = function (self, fixedparam, value) Details.ocd_tracker.show_conditions.only_in_group = value - Details.CooldownTracking.RefreshScreenPanel() + Details.CooldownTracking.RefreshCooldownFrames() end, name = "Only in Group", desc = "Only in Group", @@ -274,7 +444,7 @@ function Details.OpenCDTrackerWindow() get = function() return Details.ocd_tracker.show_conditions.only_inside_instance end, set = function (self, fixedparam, value) Details.ocd_tracker.show_conditions.only_inside_instance = value - Details.CooldownTracking.RefreshScreenPanel() + Details.CooldownTracking.RefreshCooldownFrames() end, name = "Only Inside Instances", desc = "Only Inside Instances", diff --git a/frames/window_news.lua b/frames/window_news.lua index a117c6ed..7842b5ec 100644 --- a/frames/window_news.lua +++ b/frames/window_news.lua @@ -12,7 +12,6 @@ function Details:OpenNewsWindow(textToShow, dumpValues, keeptext) if (dumpValues == "change_log" or textToShow == "LeftButton") then newsFrame:Text (Loc ["STRING_VERSION_LOG"]) - --newsFrame:Icon ([[Interface\AddOns\Details\images\icons2]], {108/512, 189/512, 319/512, 400/512}) newsFrame:Show() return end @@ -46,7 +45,15 @@ function Details:OpenNewsWindow(textToShow, dumpValues, keeptext) if (keeptext) then newsFrame:Text ((DetailsNewsWindowText:GetText() or "") .. "\n\n" .. (textToShow or Loc ["STRING_VERSION_LOG"])) else + --show news newsFrame:Text (textToShow or Loc["STRING_VERSION_LOG"]) + --show textures + if (_detalhes.build_counter == 8154) then + newsFrame.imageFrame:Show() + newsFrame.imageFrame.texture:SetTexture([[interface/addons/details/images/news_images]]) + newsFrame.imageFrame.texture:SetSize(279, 452) + newsFrame.imageFrame.texture:SetTexCoord(0, 279/512, 0, 452/512) + end end end @@ -65,6 +72,16 @@ function Details:CreateOrOpenNewsWindow() frame:SetFrameStrata("FULLSCREEN") frame:SetMovable(true) frame:Hide() + DetailsFramework:ApplyStandardBackdrop(frame) + + frame.imageFrame = CreateFrame("frame", "DetailsNewsWindowImageFrame", frame, "BackdropTemplate") + frame.imageFrame:SetPoint("topleft", frame, "topright", 2, 0) + frame.imageFrame:SetPoint("bottomleft", frame, "bottomright", 2, 0) + frame.imageFrame:SetWidth(256) + DetailsFramework:ApplyStandardBackdrop(frame.imageFrame) + frame.imageFrame:Hide() + frame.imageFrame.texture = frame.imageFrame:CreateTexture(nil, "overlay") + frame.imageFrame.texture:SetPoint("topleft", frame.imageFrame, "topleft") local dumpFrame = g:CreateTextEntry(frame, function()end, 500, 512, "DumpTable", "$parentDumpTable") dumpFrame.editbox:SetMultiLine (true) diff --git a/frames/window_playerbreakdown.lua b/frames/window_playerbreakdown.lua index 38c45f7e..b892f07a 100644 --- a/frames/window_playerbreakdown.lua +++ b/frames/window_playerbreakdown.lua @@ -243,6 +243,7 @@ function _detalhes:AbreJanelaInfo (jogador, from_att_change, refresh, ShiftKeyDo info:ShowTabs() gump:Fade (info, 0) + Details:UpdateBreakdownPlayerList() --check which tab was selected and reopen that tab if (info.selectedTab == "Summary") then diff --git a/frames/window_playerbreakdown_list.lua b/frames/window_playerbreakdown_list.lua index c45ec0f6..1c800a2d 100644 --- a/frames/window_playerbreakdown_list.lua +++ b/frames/window_playerbreakdown_list.lua @@ -11,7 +11,7 @@ local scrollbox_size = {200, 405} local scrollbox_lines = 25 local player_line_height = 21.7 - local scrollbox_line_backdrop_color = {0, 0, 0, 0.5} + local scrollbox_line_backdrop_color = {0.2, 0.2, 0.2, 0.5} local scrollbox_line_backdrop_color_selected = {.6, .6, .1, 0.7} local scrollbox_line_backdrop_color_highlight = {.9, .9, .9, 0.5} local player_scroll_size = {180, 288} @@ -21,13 +21,17 @@ local refreshPlayerList = function(self, data, offset, totalLines) --update the scroll + local topResult = data[1] + if (topResult) then + topResult = topResult.total + end for i = 1, totalLines do local index = i + offset - local playerObject = data [index] + local playerObject = data[index] if (playerObject) then local line = self:GetLine(i) line.playerObject = playerObject - line:UpdateLine() + line:UpdateLine(topResult) end end end @@ -55,7 +59,7 @@ self.roleIcon:SetBlendMode("BLEND") end - local updatePlayerLine = function(self) + local updatePlayerLine = function(self, topResult) local playerSelected = Details:GetPlayerObjectFromBreakdownWindow() if (playerSelected and playerSelected == self.playerObject) then @@ -99,6 +103,12 @@ --set the player class name self.className:SetText(string.lower(_G.UnitClass(self.playerObject.nome) or self.playerObject:Class())) + + --set the statusbar + local r, g, b = self.playerObject:GetClassColor() + self.totalStatusBar:SetStatusBarColor(r, g, b, 1) + self.totalStatusBar:SetMinMaxValues(0, topResult) + self.totalStatusBar:SetValue(self.playerObject.total) end local createPlayerLine = function(self, index) @@ -127,20 +137,28 @@ playerName.textcolor = {1, 1, 1, .9} playerName.textsize = 11 local className = DF:CreateLabel(line, "", "GameFontNormal") - className.textcolor = {.5, .5, .5, .5} + className.textcolor = {.95, .8, .2, 0} className.textsize = 9 - + + local totalStatusBar = CreateFrame("statusbar", nil, line) + totalStatusBar:SetSize(scrollbox_size[1]-19-player_line_height, 4) + totalStatusBar:SetMinMaxValues(0, 100) + totalStatusBar:SetStatusBarTexture([[Interface\AddOns\Details\images\bar_skyline]]) + totalStatusBar:SetFrameLevel(line:GetFrameLevel()-1) + --setup anchors specIcon:SetPoint("topleft", line, "topleft", 0, 0) roleIcon:SetPoint("topleft", specIcon, "topright", 2, 0) --playerName:SetPoint("left", roleIcon, "right", 2, 0) playerName:SetPoint("topleft", specIcon, "topright", 2, -1) className:SetPoint("topleft", roleIcon, "bottomleft", 0, -2) - + totalStatusBar:SetPoint("bottomleft", specIcon, "bottomright", 0, 0) + line.specIcon = specIcon line.roleIcon = roleIcon line.playerName = playerName line.className = className + line.totalStatusBar = totalStatusBar line.UpdateLine = updatePlayerLine @@ -193,12 +211,12 @@ local unitClassID = classIds [playerObject:Class()] or 13 local unitName = playerObject:Name() local playerPosition = (((unitClassID or 0) + 128) ^ 4) + tonumber (string.byte (unitName, 1) .. "" .. string.byte (unitName, 2)) - tinsert(playerTable, {playerObject, playerPosition}) + tinsert(playerTable, {playerObject, playerPosition, playerObject.total}) end end end - table.sort (playerTable, DF.SortOrder2R) + table.sort (playerTable, DF.SortOrder3) local resultTable = {} for i = 1, #playerTable do @@ -208,7 +226,7 @@ return resultTable end - f:HookScript("OnShow", function() + function Details:UpdateBreakdownPlayerList() --run the update on the next tick C_Timer.After(0, function() local playerList = breakdownWindowPlayerList.BuildPlayerList() @@ -216,7 +234,12 @@ playerScroll:Refresh() playerScroll:Show() end) + end + + f:HookScript("OnShow", function() + Details:UpdateBreakdownPlayerList() end) end - - breakdownWindowPlayerList.CreatePlayerListFrame() \ No newline at end of file + + breakdownWindowPlayerList.CreatePlayerListFrame() + diff --git a/functions/playerclass.lua b/functions/playerclass.lua index a3aef963..b2932caf 100644 --- a/functions/playerclass.lua +++ b/functions/playerclass.lua @@ -95,7 +95,7 @@ do function _detalhes:GetSpecIcon (spec, useAlpha) if (spec) then - if (spec > 500) then --hack to new spec ids on new leveling zones from level 1-10 + if (spec > 600) then --hack to new spec ids on new leveling zones from level 1-10 spec = 65 end if (useAlpha) then diff --git a/functions/profiles.lua b/functions/profiles.lua index 713529f0..f65f2554 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -225,6 +225,8 @@ function _detalhes:ApplyProfile (profile_name, nosave, is_copy) _detalhes:Msg ("Profile Not Found.") return false end + + profile.ocd_tracker = nil --moved to local character saved --> always save the previous profile, except if nosave flag is up if (not nosave) then @@ -834,18 +836,6 @@ local default_profile = { 0, -- [3] }, }, - - --> ocd tracker test - ocd_tracker = { - enabled = false, - cooldowns = {}, - pos = {}, - show_conditions = { - only_in_group = true, - only_inside_instance = true, - }, - show_options = false, - }, --> minimap minimap = {hide = false, radius = 160, minimapPos = 220, onclick_what_todo = 1, text_type = 1, text_format = 3}, @@ -1116,6 +1106,19 @@ local default_player_data = { last_coach_name = false, }, + --> ocd tracker test + ocd_tracker = { + enabled = false, + cooldowns = {}, + pos = {}, + show_conditions = { + only_in_group = true, + only_inside_instance = true, + }, + show_options = false, + current_cooldowns = {}, + }, + --> force all fonts to have this outline force_font_outline = "", diff --git a/images/news_images.tga b/images/news_images.tga new file mode 100644 index 0000000000000000000000000000000000000000..e0787cf9d29345ac8caf820bb3f3f732a09741e9 GIT binary patch literal 1048620 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