diff --git a/Details.toc b/Details.toc index cd8dbe0e..611d7bb4 100644 --- a/Details.toc +++ b/Details.toc @@ -5,7 +5,7 @@ ## SavedVariables: _detalhes_global, __details_backup, __details_debug ## SavedVariablesPerCharacter: _detalhes_database ## OptionalDeps: Ace3, LibSharedMedia-3.0, LibWindow-1.1, LibDBIcon-1.0, NickTag-1.0, LibDataBroker-1.1, LibGraph-2.0 -## Version: #Details.20240508.12892.160 +## Version: #Details.20240508.12893.160 ## X-IconTexture: Interface\AddOns\Details\images\minimap ## X-Curse-Project-ID: 61284 diff --git a/boot.lua b/boot.lua index 19e14806..4813b6e3 100644 --- a/boot.lua +++ b/boot.lua @@ -223,6 +223,11 @@ do local Loc = _G.LibStub("AceLocale-3.0"):GetLocale("Details") local news = { + {"Ascension.12893.160", "December 9th, 2024"}, + "Added Separate Extra Attacks option in Options -> Combat Log -> Parser Options.", + " - Separates on hit effects such as Fiery Weapon as uniquely tracked spells.", + "Cont. Possible fix for errors during combat related to absorb spells sorting.", + {"Ascension.12892.160", "November 15th, 2024"}, "Possible fix for errors during combat related to absorb spells sorting.", "Removed end of run window from Mythic Plus for the time being since it was causing lua errors and did not work.", diff --git a/core/parser.lua b/core/parser.lua index 0e3de261..3e4dc52b 100755 --- a/core/parser.lua +++ b/core/parser.lua @@ -1780,21 +1780,22 @@ -- https://github.com/TrinityCore/TrinityCore/blob/d81a9e5bc3b3e13b47332b3e7817bd0a0b228cbc/src/server/game/Spells/Auras/SpellAuraEffects.h#L313-L367 -- absorb order from trinitycore local function AbsorbAuraOrderPred(a, b) - if a == nil and b == nil then - return false - end - if a == nil then - return false - end - if b == nil then - return true - end - local spellA = a[1] - local spellB = b[2] + local spellA, _, _, _, spellNameA, _, timeA, buffExpTimeA = unpack(a) + local spellB, _, _, _, spellNameB, _, timeB, buffExpTimeB = unpack(b) -- puts oldest absorb first if there is two with the same id. if spellA == spellB then - return a[7] < b[7] + if timeA ~= timeB then + return timeA < timeB + end + + if buffExpTimeA ~= buffExpTimeB then + return buffExpTimeA < buffExpTimeB + end + + if spellNameA ~= spellNameB then + return spellNameA < spellNameB + end end -- twin val'kyr light essence @@ -1878,7 +1879,19 @@ end -- sort oldest buffs to the top - return a[7] < b[7] + if timeA ~= timeB then + return timeA < timeB + end + + if buffExpTimeA ~= buffExpTimeB then + return buffExpTimeA < buffExpTimeB + end + + if spellNameA ~= spellNameB then + return spellNameA < spellNameB + end + + return true end local ignored_shields = {