From 0eed951e86aa3132f8e29d417490b169d558bb7a Mon Sep 17 00:00:00 2001 From: Wires77 Date: Wed, 24 Jan 2024 09:01:26 -0600 Subject: [PATCH 1/3] Fix sorting for unrelated stats --- src/Classes/CalcBreakdownControl.lua | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/src/Classes/CalcBreakdownControl.lua b/src/Classes/CalcBreakdownControl.lua index 64e722f3ec..a03e68edf5 100644 --- a/src/Classes/CalcBreakdownControl.lua +++ b/src/Classes/CalcBreakdownControl.lua @@ -152,6 +152,9 @@ function CalcBreakdownClass:AddBreakdownSection(sectionData) local rowList = copyTable(breakdown.rowList, true) local colKey = breakdown.colList[1].key table.sort(rowList, function(a, b) + if a.reqNum then + return a.reqNum > b.reqNum + end return a[colKey] > b[colKey] end) @@ -300,25 +303,11 @@ function CalcBreakdownClass:AddModSection(sectionData, modList) } t_insert(self.sectionList, section) - table.sort(rowList, function(a, b) - -- Sort Modifiers by descending value - if type(a.value) == 'number' and type(b.value) == 'number' then - return b.value < a.value - end - if type(a.value) == 'boolean' and type(b.value) == 'boolean' then - return a.value and not b.value - end - return false - end) - if not modList and not sectionData.modType then -- Sort modifiers by type - for i, row in ipairs(rowList) do - row.index = i - end table.sort(rowList, function(a, b) if a.mod.type == b.mod.type then - return a.index < b.index + return a.mod.name > b.mod.name or a.mod.name == b.mod.name and a.value > b.value else return a.mod.type < b.mod.type end From 6f81dd1cb144a97a1b0a0b357c2806d20b7a515f Mon Sep 17 00:00:00 2001 From: Wires77 Date: Wed, 24 Jan 2024 09:10:22 -0600 Subject: [PATCH 2/3] Restore sorting pre-defined types --- src/Classes/CalcBreakdownControl.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Classes/CalcBreakdownControl.lua b/src/Classes/CalcBreakdownControl.lua index a03e68edf5..282b1d56ca 100644 --- a/src/Classes/CalcBreakdownControl.lua +++ b/src/Classes/CalcBreakdownControl.lua @@ -312,6 +312,10 @@ function CalcBreakdownClass:AddModSection(sectionData, modList) return a.mod.type < b.mod.type end end) + else -- Sort modifiers by value + table.sort(rowList, function(a, b) + return a.value > b.value + end) end local sourceTotals = { } From 53016c0401e38a4732303282fda94cb2565b0257 Mon Sep 17 00:00:00 2001 From: Wires77 Date: Wed, 24 Jan 2024 09:20:52 -0600 Subject: [PATCH 3/3] Sort all by stat first --- src/Classes/CalcBreakdownControl.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Classes/CalcBreakdownControl.lua b/src/Classes/CalcBreakdownControl.lua index 282b1d56ca..db59e37d18 100644 --- a/src/Classes/CalcBreakdownControl.lua +++ b/src/Classes/CalcBreakdownControl.lua @@ -314,7 +314,7 @@ function CalcBreakdownClass:AddModSection(sectionData, modList) end) else -- Sort modifiers by value table.sort(rowList, function(a, b) - return a.value > b.value + return a.mod.name > b.mod.name or a.mod.name == b.mod.name and a.value > b.value end) end