Skip to content

Commit ce60e29

Browse files
committed
Simplify eldritch implicit controls
1 parent f7889b6 commit ce60e29

2 files changed

Lines changed: 32 additions & 26 deletions

File tree

src/Classes/TradeQuery.lua

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,13 +1030,21 @@ function TradeQueryClass:PriceItemRowDisplay(row_idx, top_pane_alignment_ref, ro
10301030
local itemsSafe = self:FilterToSafeItems(items, selectedSlot and selectedSlot.slotName)
10311031
-- replace eldritch mods or enchants if the user requested
10321032
-- so in TradeQueryGenerator
1033-
if self.tradeQueryGenerator.lastCopyEldritch or
1033+
if self.tradeQueryGenerator.lastIncludeEldritch == "Copy Current" or
10341034
self.tradeQueryGenerator.lastCopyEnchantMode == "Copy Current" then
10351035
for i, _ in ipairs(itemsSafe) do
10361036
local item = new("Item", itemsSafe[i].item_string)
10371037
self.itemsTab:CopyAnointsAndEldritchImplicits(item, true, true, context.slotTbl.slotName)
10381038
itemsSafe[i].item_string = item:BuildRaw()
10391039
end
1040+
elseif self.tradeQueryGenerator.lastIncludeEldritch == "Remove" then
1041+
for i, _ in ipairs(itemsSafe) do
1042+
local item = new("Item", itemsSafe[i].item_string)
1043+
if item.tangle or item.cleansing then
1044+
item.implicitModLines = {}
1045+
itemsSafe[i].item_string = item:BuildRaw()
1046+
end
1047+
end
10401048
elseif self.tradeQueryGenerator.lastCopyEnchantMode == "Remove" then
10411049
for i, _ in ipairs(itemsSafe) do
10421050
local item = new("Item", itemsSafe[i].item_string)

src/Classes/TradeQueryGenerator.lua

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -772,12 +772,12 @@ function TradeQueryGeneratorClass:ExecuteQuery()
772772
if self.calcContext.options.includeScourge then
773773
self:GenerateModWeights(self.modData["Scourge"])
774774
end
775-
if self.calcContext.options.includeEldritch ~= "None" and
775+
if self.calcContext.options.includeEldritch:find("^Keep") and
776776
-- skip weights if we need an influenced item as they can produce really
777777
-- bad results due to the filter limit
778778
self.calcContext.options.influence1 == 1 and
779779
self.calcContext.options.influence2 == 1 then
780-
local omitConditional = self.calcContext.options.includeEldritch == "Omit While"
780+
local omitConditional = self.calcContext.options.includeEldritch == "Keep regular"
781781
local eaterMods = self.modData["Eater"]
782782
local exarchMods = self.modData["Exarch"]
783783
if omitConditional then
@@ -1122,27 +1122,26 @@ function TradeQueryGeneratorClass:RequestQuery(slot, context, statWeights, callb
11221122

11231123
-- Implicit mod and enchant behaviour in searching and sorting
11241124
if isEldritchModSlot then
1125-
local eldritchTooltip = [[Controls the inclusion of eldritch mod weights in the weighted sum.
1126-
None: no weights are generated.
1127-
All: weights are generated for all eldritch implicit modifiers.
1128-
Omit while: weights are generated, but conditional "While unique/atlas boss" modifiers are skipped.
1129-
It is often not recommended to use "All" as this includes a lot of high power modifiers,
1130-
which will cause other useful modifiers to be left out in the weighted sum.]]
1131-
controls.includeEldritch = new("DropDownControl", { "TOPLEFT", lastItemAnchor, "BOTTOMLEFT" }, { 0, 5, 92, 18 },
1132-
{ "None", "All", "Omit While" }, function(_state) end, eldritchTooltip)
1125+
local eldritchTooltip =
1126+
[[Controls the inclusion of eldritch mod weights in the weighted sum.
1127+
Copy Current: implicits in weights are skipped and augments are replaced with the
1128+
current implicits when possible. Usually the best opinion as this ensures the
1129+
augments make sense for your build.
1130+
1131+
Keep regular: weights are generated and implicits are kept, but conditional
1132+
"while unique/atlas boss" modifiers are removed from the items.
1133+
1134+
Keep regular + presence: weights are generated and implicits are kept. Not
1135+
recommended as many of these implicits are impractical and appear powerful
1136+
with default PoB enemy configs.
1137+
1138+
Remove: eldritch implicits are removed and ignored in the search.]]
1139+
controls.includeEldritch = new("DropDownControl", { "TOPLEFT", lastItemAnchor, "BOTTOMLEFT" }, { 0, 5, 140, 18 },
1140+
{ "Copy Current", "Keep regular", "Keep regular+presence", "Remove" }, function(_state) end, eldritchTooltip)
11331141
controls.includeEldritchLabel = new("LabelControl", { "RIGHT", controls.includeEldritch, "LEFT" },
11341142
{ -4, 0, 80, 16 }, "Eldritch Mods:")
1135-
controls.includeEldritch:SetSel(self.lastIncludeEldritch or 1)
1143+
controls.includeEldritch:SelByValue(self.lastIncludeEldritch)
11361144
updateLastAnchor(controls.includeEldritch)
1137-
1138-
local eldritchTooltip = "Replaces the eldritch modifiers on search results with the eldritch modifiers from your currently equipped item."
1139-
local labelText = "Copy Current Implicits:"
1140-
controls.copyEldritch = new("CheckBoxControl",
1141-
{ "TOPLEFT", lastItemAnchor, "BOTTOMLEFT" },
1142-
{ 0, 5, 18, 18 },
1143-
labelText, function(state) end, eldritchTooltip, false)
1144-
controls.copyEldritch.state = self.lastCopyEldritch or false
1145-
updateLastAnchor(controls.copyEldritch)
11461145
end
11471146
if isAmuletSlot or isBeltSlot or isWeaponSlot then
11481147
local term = isWeaponSlot and "enchants" or "anoints"
@@ -1178,10 +1177,10 @@ Remove: %s will be removed from the search results.]], term, term, term)
11781177
elseif slot and not isAbyssalJewelSlot and context.slotTbl.slotName ~= "Watcher's Eye" then
11791178
local selFunc = function()
11801179
-- influenced items can't have eldritch implicits
1181-
if controls.copyEldritch and isEldritchModSlot then
1180+
if controls.includeEldritch and isEldritchModSlot then
11821181
local hasInfluence1 = controls.influence1 and controls.influence1:GetSelValue() ~= "None"
11831182
local hasInfluence2 = controls.influence2 and controls.influence2:GetSelValue() ~= "None"
1184-
controls.copyEldritch.enabled = not hasInfluence1 and not hasInfluence2
1183+
controls.includeEldritch.enabled = not hasInfluence1 and not hasInfluence2
11851184
end
11861185
end
11871186
controls.influence1 = new("DropDownControl", { "TOPLEFT", lastItemAnchor, "BOTTOMLEFT" }, { 0, 5, 100, 18 },
@@ -1269,7 +1268,6 @@ Remove: %s will be removed from the search results.]], term, term, term)
12691268

12701269
self.tradeTypeIndex = context.controls.tradeTypeSelection.selIndex
12711270

1272-
self.lastCopyEldritch = controls.copyEldritch and controls.copyEldritch.state
12731271
self.lastCopyEnchantMode = controls.copyEnchantMode and controls.copyEnchantMode:GetSelValue()
12741272

12751273
if controls.includeMirrored then
@@ -1279,8 +1277,8 @@ Remove: %s will be removed from the search results.]], term, term, term)
12791277
self.lastIncludeCorrupted, options.includeCorrupted = controls.includeCorrupted.state, controls.includeCorrupted.state
12801278
end
12811279
if controls.includeEldritch then
1282-
self.lastIncludeEldritch, options.includeEldritch = controls.includeEldritch.selIndex,
1283-
controls.includeEldritch:GetSelValue()
1280+
self.lastIncludeEldritch, options.includeEldritch = controls.includeEldritch:GetSelValue(),
1281+
controls.includeEldritch:GetSelValue()
12841282
end
12851283
if controls.includeScourge then
12861284
self.lastIncludeScourge, options.includeScourge = controls.includeScourge.state, controls.includeScourge.state

0 commit comments

Comments
 (0)