Skip to content

Commit 118e0b4

Browse files
authored
Fix numerous fullDPS tooltip issues (#8247)
* FIX: numerous fullDPS issues * FIX: output reuse and acceleration without existing env * FIX: prevent calculation of fullDPS if it's not needed for item sorting
1 parent 03d0d31 commit 118e0b4

File tree

13 files changed

+53
-120
lines changed

13 files changed

+53
-120
lines changed

src/Classes/CalcsTab.lua

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ end
474474
-- Estimate the offensive and defensive power of all unallocated nodes
475475
function CalcsTabClass:PowerBuilder()
476476
--local timer_start = GetTime()
477-
GlobalCache.useFullDPS = self.powerStat and self.powerStat.stat == "FullDPS" or false
477+
local useFullDPS = self.powerStat and self.powerStat.stat == "FullDPS"
478478
local calcFunc, calcBase = self:GetMiscCalculator()
479479
local cache = { }
480480
local distanceMap = { }
@@ -514,7 +514,7 @@ function CalcsTabClass:PowerBuilder()
514514
for nodeId, node in pairs(nodes) do
515515
if not node.alloc and node.modKey ~= "" and not self.mainEnv.grantedPassives[nodeId] then
516516
if not cache[node.modKey] then
517-
cache[node.modKey] = calcFunc({ addNodes = { [node] = true } }, { requirementsItems = true, requirementsGems = true, skills = true })
517+
cache[node.modKey] = calcFunc({ addNodes = { [node] = true } }, useFullDPS)
518518
end
519519
local output = cache[node.modKey]
520520
if self.powerStat and self.powerStat.stat and not self.powerStat.ignoreForNodes then
@@ -527,7 +527,7 @@ function CalcsTabClass:PowerBuilder()
527527
pathNodes[node] = true
528528
end
529529
if node.pathDist > 1 then
530-
node.power.pathPower = self:CalculatePowerStat(self.powerStat, calcFunc({ addNodes = pathNodes }, { requirementsItems = true, requirementsGems = true, skills = true }), calcBase)
530+
node.power.pathPower = self:CalculatePowerStat(self.powerStat, calcFunc({ addNodes = pathNodes }, useFullDPS), calcBase)
531531
end
532532
end
533533
elseif not self.powerStat or not self.powerStat.ignoreForNodes then
@@ -542,7 +542,7 @@ function CalcsTabClass:PowerBuilder()
542542
end
543543
elseif node.alloc and node.modKey ~= "" and not self.mainEnv.grantedPassives[nodeId] then
544544
if not cache[node.modKey.."_remove"] then
545-
cache[node.modKey.."_remove"] = calcFunc({ removeNodes = { [node] = true } }, { requirementsItems = true, requirementsGems = true, skills = true })
545+
cache[node.modKey.."_remove"] = calcFunc({ removeNodes = { [node] = true } }, useFullDPS)
546546
end
547547
local output = cache[node.modKey.."_remove"]
548548
if self.powerStat and self.powerStat.stat and not self.powerStat.ignoreForNodes then
@@ -554,7 +554,7 @@ function CalcsTabClass:PowerBuilder()
554554
pathNodes[node] = true
555555
end
556556
if #node.depends > 1 then
557-
node.power.pathPower = self:CalculatePowerStat(self.powerStat, calcFunc({ removeNodes = pathNodes }, { requirementsItems = true, requirementsGems = true, skills = true }), calcBase)
557+
node.power.pathPower = self:CalculatePowerStat(self.powerStat, calcFunc({ removeNodes = pathNodes }, useFullDPS), calcBase)
558558
end
559559
end
560560
end
@@ -575,7 +575,7 @@ function CalcsTabClass:PowerBuilder()
575575
wipeTable(node.power)
576576
if not node.alloc and node.modKey ~= "" and not self.mainEnv.grantedPassives[nodeId] then
577577
if not cache[node.modKey] then
578-
cache[node.modKey] = calcFunc({ addNodes = { [node] = true } }, { requirementsItems = true, requirementsGems = true, skills = true })
578+
cache[node.modKey] = calcFunc({ addNodes = { [node] = true } }, useFullDPS)
579579
end
580580
local output = cache[node.modKey]
581581
if self.powerStat and self.powerStat.stat and not self.powerStat.ignoreForNodes then

src/Classes/GemSelectControl.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ local GemSelectClass = newClass("GemSelectControl", "EditControl", function(self
5858
}
5959
end)
6060

61-
function GemSelectClass:CalcOutputWithThisGem(calcFunc, gemData, qualityId)
61+
function GemSelectClass:CalcOutputWithThisGem(calcFunc, gemData, qualityId, useFullDPS)
6262
local gemList = self.skillsTab.displayGroup.gemList
6363
local oldGem
6464
if gemList[self.index] then
@@ -89,7 +89,7 @@ function GemSelectClass:CalcOutputWithThisGem(calcFunc, gemData, qualityId)
8989
-- Add hovered gem to tooltip
9090
self:AddGemTooltip(gemInstance)
9191
-- Calculate the impact of using this gem
92-
local output = calcFunc({ }, { allocNodes = true, requirementsItems = true })
92+
local output = calcFunc(nil, useFullDPS)
9393
-- Put the original gem back into the list
9494
if oldGem then
9595
gemInstance.gemData = oldGem.gemData
@@ -325,7 +325,7 @@ function GemSelectClass:UpdateSortCache()
325325
end
326326

327327
local dpsField = self.skillsTab.sortGemsByDPSField
328-
GlobalCache.useFullDPS = dpsField == "FullDPS"
328+
local useFullDPS = dpsField == "FullDPS"
329329
local calcFunc, calcBase = self.skillsTab.build.calcsTab:GetMiscCalculator(self.build)
330330
-- Check for nil because some fields may not be populated, default to 0
331331
local baseDPS = (dpsField == "FullDPS" and calcBase[dpsField] ~= nil and calcBase[dpsField]) or (calcBase.Minion and calcBase.Minion.CombinedDPS) or (calcBase[dpsField] ~= nil and calcBase[dpsField]) or 0
@@ -334,7 +334,7 @@ function GemSelectClass:UpdateSortCache()
334334
sortCache.dps[gemId] = baseDPS
335335
-- Ignore gems that don't support the active skill
336336
if sortCache.canSupport[gemId] or gemData.grantedEffect.hasGlobalEffect then
337-
local output = self:CalcOutputWithThisGem(calcFunc, gemData, self:GetQualityType(gemId))
337+
local output = self:CalcOutputWithThisGem(calcFunc, gemData, self:GetQualityType(gemId), useFullDPS)
338338
-- Check for nil because some fields may not be populated, default to 0
339339
sortCache.dps[gemId] = (dpsField == "FullDPS" and output[dpsField] ~= nil and output[dpsField]) or (output.Minion and output.Minion.CombinedDPS) or (output[dpsField] ~= nil and output[dpsField]) or 0
340340
end
@@ -477,7 +477,7 @@ function GemSelectClass:Draw(viewPort, noTooltip)
477477
local calcFunc, calcBase = self.skillsTab.build.calcsTab:GetMiscCalculator(self.build)
478478
if calcFunc then
479479
self.tooltip:Clear()
480-
local output, gemInstance = self:CalcOutputWithThisGem(calcFunc, self.gems[self.list[self.hoverSel]], self:GetQualityType(self.list[self.hoverSel]))
480+
local output, gemInstance = self:CalcOutputWithThisGem(calcFunc, self.gems[self.list[self.hoverSel]], self:GetQualityType(self.list[self.hoverSel]), self.skillsTab.sortGemsByDPSField == "FullDPS")
481481
self.tooltip:AddSeparator(10)
482482
self.skillsTab.build:AddStatComparesToTooltip(self.tooltip, calcBase, output, "^7Selecting this gem will give you:")
483483
self.tooltip:Draw(x, y + height + 2 + (self.hoverSel - 1) * (height - 4) - scrollBar.offset, width, height - 4, viewPort)

src/Classes/ItemDBControl.lua

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ local ItemDBClass = newClass("ItemDBControl", "ListControl", function(self, anch
3737
if dbType == "UNIQUE" then
3838
self.controls.sort = new("DropDownControl", {"BOTTOMLEFT",self,"TOPLEFT"}, {0, baseY + 20, 179, 18}, self.sortDropList, function(index, value)
3939
self:SetSortMode(value.sortMode)
40-
GlobalCache.useFullDPS = value.sortMode == "FullDPS"
4140
end)
4241
self.controls.league = new("DropDownControl", {"LEFT",self.controls.sort,"RIGHT"}, {2, 0, 179, 18}, self.leagueList, function(index, value)
4342
self.listBuildFlag = true
@@ -224,15 +223,14 @@ function ItemDBClass:ListBuilder()
224223
end
225224

226225
if self.sortDetail and self.sortDetail.stat then -- stat-based
226+
local useFullDPS = self.sortDetail.stat == "FullDPS"
227227
local start = GetTime()
228228
local calcFunc, calcBase = self.itemsTab.build.calcsTab:GetMiscCalculator(self.build)
229-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
230-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
231229
for itemIndex, item in ipairs(list) do
232230
item.measuredPower = 0
233231
for slotName, slot in pairs(self.itemsTab.slots) do
234232
if self.itemsTab:IsItemValidForSlot(item, slotName) and not slot.inactive and (not slot.weaponSet or slot.weaponSet == (self.itemsTab.activeItemSet.useSecondWeaponSet and 2 or 1)) then
235-
local output = calcFunc(item.base.flask and { toggleFlask = item } or item.base.tincture and { toggleTincture = item } or { repSlotName = slotName, repItem = item }, { nodeAlloc = true, requirementsGems = true })
233+
local output = calcFunc(item.base.flask and { toggleFlask = item } or item.base.tincture and { toggleTincture = item } or { repSlotName = slotName, repItem = item }, useFullDPS)
236234
local measuredPower = output.Minion and output.Minion[self.sortMode] or output[self.sortMode] or 0
237235
if self.sortDetail.transform then
238236
measuredPower = self.sortDetail.transform(measuredPower)
@@ -247,7 +245,6 @@ function ItemDBClass:ListBuilder()
247245
start = now
248246
end
249247
end
250-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
251248
end
252249

253250
table.sort(list, function(a, b)

src/Classes/ItemsTab.lua

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1859,11 +1859,8 @@ function ItemsTabClass:AddModComparisonTooltip(tooltip, mod)
18591859
newItem:BuildAndParseRaw()
18601860

18611861
local calcFunc = self.build.calcsTab:GetMiscCalculator()
1862-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
1863-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
1864-
local outputBase = calcFunc({ repSlotName = slotName, repItem = self.displayItem }, {})
1865-
local outputNew = calcFunc({ repSlotName = slotName, repItem = newItem }, {})
1866-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
1862+
local outputBase = calcFunc({ repSlotName = slotName, repItem = self.displayItem })
1863+
local outputNew = calcFunc({ repSlotName = slotName, repItem = newItem })
18671864
self.build:AddStatComparesToTooltip(tooltip, outputBase, outputNew, "\nAdding this mod will give: ")
18681865
end
18691866

@@ -2288,11 +2285,8 @@ function ItemsTabClass:AppendAnointTooltip(tooltip, node, actionText)
22882285
header = "^7"..actionText.." nothing will give you: "
22892286
end
22902287
local calcFunc = self.build.calcsTab:GetMiscCalculator()
2291-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
2292-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
2293-
local outputBase = calcFunc({ repSlotName = "Amulet", repItem = self.displayItem }, {})
2294-
local outputNew = calcFunc({ repSlotName = "Amulet", repItem = self:anointItem(node) }, {})
2295-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
2288+
local outputBase = calcFunc({ repSlotName = "Amulet", repItem = self.displayItem })
2289+
local outputNew = calcFunc({ repSlotName = "Amulet", repItem = self:anointItem(node) })
22962290
local numChanges = self.build:AddStatComparesToTooltip(tooltip, outputBase, outputNew, header)
22972291
if node and numChanges == 0 then
22982292
tooltip:AddLine(14, "^7"..actionText.." "..node.dn.." changes nothing.")
@@ -2303,11 +2297,8 @@ end
23032297
---@param tooltip table @The tooltip to append into
23042298
---@param node table @The passive tree node that will be added
23052299
function ItemsTabClass:AppendAddedNotableTooltip(tooltip, node)
2306-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
2307-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
23082300
local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator()
2309-
local outputNew = calcFunc({ addNodes = { [node] = true } }, { requirementsItems = true, requirementsGems = true, skills = true })
2310-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
2301+
local outputNew = calcFunc({ addNodes = { [node] = true } })
23112302
local numChanges = self.build:AddStatComparesToTooltip(tooltip, calcBase, outputNew, "^7Allocating "..node.dn.." will give you: ")
23122303
if numChanges == 0 then
23132304
tooltip:AddLine(14, "^7Allocating "..node.dn.." changes nothing.")
@@ -3650,10 +3641,7 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode)
36503641
tooltip:AddLine(14, stat)
36513642
end
36523643
end
3653-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
3654-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
3655-
local output = calcFunc({ toggleFlask = item }, {})
3656-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
3644+
local output = calcFunc({ toggleFlask = item })
36573645
local header
36583646
if self.build.calcsTab.mainEnv.flasks[item] then
36593647
header = "^7Deactivating this flask will give you:"
@@ -3689,10 +3677,7 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode)
36893677
tooltip:AddLine(14, stat)
36903678
end
36913679
end
3692-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
3693-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
3694-
local output = calcFunc({ toggleTincture = item }, {})
3695-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
3680+
local output = calcFunc({ toggleTincture = item })
36963681
local header
36973682
if self.build.calcsTab.mainEnv.tinctures[item] then
36983683
header = "^7Deactivating this tincture will give you:"
@@ -3739,10 +3724,7 @@ function ItemsTabClass:AddItemTooltip(tooltip, item, slot, dbMode)
37393724
for _, compareSlot in pairs(compareSlots) do
37403725
if not main.slotOnlyTooltips or (slot and (slot.nodeId == compareSlot.nodeId or slot.slotName == compareSlot.slotName)) or not slot or slot == compareSlot then
37413726
local selItem = self.items[compareSlot.selItemId]
3742-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
3743-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
3744-
local output = calcFunc({ repSlotName = compareSlot.slotName, repItem = item ~= selItem and item or nil}, {})
3745-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
3727+
local output = calcFunc({ repSlotName = compareSlot.slotName, repItem = item ~= selItem and item or nil})
37463728
local header
37473729
if item == selItem then
37483730
header = "^7Removing this item from "..compareSlot.label.." will give you:"

src/Classes/NotableDBControl.lua

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,14 +138,12 @@ function NotableDBClass:ListBuilder()
138138
local start = GetTime()
139139
local calcFunc = self.itemsTab.build.calcsTab:GetMiscCalculator()
140140
local itemType = self.itemsTab.displayItem.base.type
141-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
142-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
143-
local calcBase = calcFunc({ repSlotName = itemType, repItem = self.itemsTab:anointItem(nil) }, {})
141+
local calcBase = calcFunc({ repSlotName = itemType, repItem = self.itemsTab:anointItem(nil) })
144142
self.sortMaxPower = 0
145143
for nodeIndex, node in ipairs(list) do
146144
node.measuredPower = 0
147145
if node.modKey ~= "" then
148-
local output = calcFunc({ repSlotName = itemType, repItem = self.itemsTab:anointItem(node) }, {})
146+
local output = calcFunc({ repSlotName = itemType, repItem = self.itemsTab:anointItem(node) })
149147
node.measuredPower = self:CalculatePowerStat(self.sortDetail, output, calcBase)
150148
if node.measuredPower == m_huge then
151149
t_insert(infinites, node)
@@ -160,7 +158,6 @@ function NotableDBClass:ListBuilder()
160158
start = now
161159
end
162160
end
163-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
164161

165162
if #infinites > 0 then
166163
self.sortMaxPower = self.sortMaxPower * 2

src/Classes/PassiveTreeView.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1117,7 +1117,7 @@ function PassiveTreeViewClass:AddNodeTooltip(tooltip, node, build)
11171117
-- Calculated the differences caused by allocating this node and all nodes along the path to it
11181118
if node.type == "Mastery" and node.allMasteryOptions then
11191119
pathNodes[node] = nil
1120-
nodeOutput = calcFunc({})
1120+
nodeOutput = calcFunc()
11211121
else
11221122
nodeOutput = calcFunc({ addNodes = { [node] = true } })
11231123
end

src/Classes/SkillsTab.lua

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -792,10 +792,7 @@ function SkillsTabClass:CreateGemSlot(index)
792792
local tempQual = self.displayGroup.gemList[index].qualityId
793793
self.displayGroup.gemList[index].qualityId = hoveredQuality.type
794794
self:ProcessSocketGroup(self.displayGroup)
795-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
796-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
797-
local output = calcFunc({}, {})
798-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
795+
local output = calcFunc()
799796
self.displayGroup.gemList[index].qualityId = tempQual
800797
tooltip:AddSeparator(10)
801798
self.build:AddStatComparesToTooltip(tooltip, calcBase, output, "^7Switching to this quality variant will give you:")
@@ -827,10 +824,7 @@ function SkillsTabClass:CreateGemSlot(index)
827824
if calcFunc then
828825
local storedQuality = self.displayGroup.gemList[index].quality
829826
self.displayGroup.gemList[index].quality = 20
830-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
831-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
832-
local output = calcFunc({}, {})
833-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
827+
local output = calcFunc()
834828
self.displayGroup.gemList[index].quality = storedQuality
835829
self.build:AddStatComparesToTooltip(tooltip, calcBase, output, "^7Setting to 20 quality will give you:")
836830
end
@@ -872,10 +866,7 @@ function SkillsTabClass:CreateGemSlot(index)
872866
local calcFunc, calcBase = self.build.calcsTab:GetMiscCalculator(self.build)
873867
if calcFunc then
874868
self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
875-
local storedGlobalCacheDPSView = GlobalCache.useFullDPS
876-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
877-
local output = calcFunc({}, {})
878-
GlobalCache.useFullDPS = storedGlobalCacheDPSView
869+
local output = calcFunc()
879870
self.displayGroup.gemList[index].enabled = not self.displayGroup.gemList[index].enabled
880871
self.build:AddStatComparesToTooltip(tooltip, calcBase, output, self.displayGroup.gemList[index].enabled and "^7Disabling this gem will give you:" or "^7Enabling this gem will give you:")
881872
end

src/Classes/TradeQuery.lua

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ local TradeQueryClass = newClass("TradeQuery", function(self, itemsTab)
5353
end
5454

5555
-- set
56-
self.storedGlobalCacheDPSView = GlobalCache.useFullDPS
57-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
5856
self.hostName = "https://www.pathofexile.com/"
5957
end)
6058

@@ -503,9 +501,7 @@ Highest Weight - Displays the order retrieved from trade]]
503501
end
504502
end
505503
self.controls.fullPrice = new("LabelControl", {"BOTTOM", nil, "BOTTOM"}, {0, -row_height - pane_margins_vertical - row_vertical_padding, pane_width - 2 * pane_margins_horizontal, row_height}, "")
506-
GlobalCache.useFullDPS = GlobalCache.numActiveSkillInFullDPS > 0
507504
self.controls.close = new("ButtonControl", {"BOTTOM", nil, "BOTTOM"}, {0, -pane_margins_vertical, 90, row_height}, "Done", function()
508-
GlobalCache.useFullDPS = self.storedGlobalCacheDPSView
509505
main:ClosePopup()
510506
-- there's a case where if you have a socket(s) allocated, open TradeQuery, close it, dealloc, then open TradeQuery again
511507
-- the deallocated socket controls were still showing, so this will remove all dynamically created controls from items
@@ -693,13 +689,7 @@ end
693689
function TradeQueryClass:ReduceOutput(output)
694690
local smallOutput = {}
695691
for _, statTable in ipairs(self.statSortSelectionList) do
696-
if statTable.stat == "FullDPS" and GlobalCache.numActiveSkillInFullDPS == 0 then
697-
smallOutput.TotalDPS = output.TotalDPS
698-
smallOutput.TotalDotDPS = output.TotalDotDPS
699-
smallOutput.CombinedDPS = output.CombinedDPS
700-
else
701-
smallOutput[statTable.stat] = output[statTable.stat]
702-
end
692+
smallOutput[statTable.stat] = output[statTable.stat]
703693
end
704694
return smallOutput
705695
end
@@ -729,10 +719,10 @@ function TradeQueryClass:GetResultEvaluation(row_idx, result_index, calcFunc, ba
729719
for nodeName in (result.item_string.."\r\n"):gmatch("1 Added Passive Skill is (.-)\r?\n") do
730720
t_insert(addedNodes, self.itemsTab.build.spec.tree.clusterNodeMap[nodeName])
731721
end
732-
local output12 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[1]] = true, [addedNodes[2]] = true } }, { requirementsItems = true, requirementsGems = true, skills = true }))
733-
local output13 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[1]] = true, [addedNodes[3]] = true } }, { requirementsItems = true, requirementsGems = true, skills = true }))
734-
local output23 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[2]] = true, [addedNodes[3]] = true } }, { requirementsItems = true, requirementsGems = true, skills = true }))
735-
local output123 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[1]] = true, [addedNodes[2]] = true, [addedNodes[3]] = true } }), { requirementsItems = true, requirementsGems = true, skills = true })
722+
local output12 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[1]] = true, [addedNodes[2]] = true } }))
723+
local output13 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[1]] = true, [addedNodes[3]] = true } }))
724+
local output23 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[2]] = true, [addedNodes[3]] = true } }))
725+
local output123 = self:ReduceOutput(calcFunc({ addNodes = { [addedNodes[1]] = true, [addedNodes[2]] = true, [addedNodes[3]] = true } }))
736726
-- Sometimes the third node is as powerful as a wet noodle, so use weight per point spent, including the jewel socket
737727
local weight12 = self.tradeQueryGenerator.WeightedRatioOutputs(baseOutput, output12, self.statSortSelectionList) / 4
738728
local weight13 = self.tradeQueryGenerator.WeightedRatioOutputs(baseOutput, output13, self.statSortSelectionList) / 4

0 commit comments

Comments
 (0)