Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
bdb6ce4
Watcher's eye trade search
bornaivankovic Dec 25, 2023
05c6930
Improvements per comments
bornaivankovic Jan 30, 2024
bd1173a
Merge remote-tracking branch 'upstream/dev' into dev
bornaivankovic Jan 30, 2024
0dd17a2
fix merge mistake
bornaivankovic Jan 30, 2024
ef32c2c
remove debugger setup -.-
bornaivankovic Jan 30, 2024
c2ce9d3
Fix getting unweighted mods
bornaivankovic Feb 2, 2024
bbb2626
Actually include corrupted mods
bornaivankovic Feb 2, 2024
c555a45
Merge remote-tracking branch 'upstream/dev' into dev
vaisest Mar 16, 2026
abfef51
fix checkboxcontrol for watchers eye
vaisest Mar 16, 2026
6ede9c8
show tooltips for watcher's eye search. either against all jewels or …
vaisest Mar 16, 2026
61a5ee2
remove mirrored button from eye and megalomaniac search because it is…
vaisest Mar 16, 2026
ebfe541
fix valid slot for watcher's eye
vaisest Mar 23, 2026
c5dd88c
Merge branch 'PathOfBuildingCommunity:dev' into dev
vaisest Apr 3, 2026
fec4aa7
add "include in person" setting
vaisest Mar 16, 2026
07429bf
change in person selection to be a dropdown of the ones that are on t…
vaisest Mar 16, 2026
688f277
add button to find exact search result for trade tool
vaisest Mar 17, 2026
5797837
trade query result filtering via trader name
vaisest Mar 23, 2026
0366588
fix trader tool item slot anchor
vaisest Mar 23, 2026
7d02e1e
improvements to timeless jewel tool: trade type and realm selections
vaisest Mar 24, 2026
688515e
trader tool: option to use current implicits and enchants
vaisest Apr 4, 2026
e48cf3c
as per comments: move implicit and enchant overrides to query options
vaisest Apr 6, 2026
0151db3
trader tool: add option to omit "while" eldritch mods and clarify ano…
vaisest Apr 7, 2026
ed2519d
trader tool: fix #9678 crash
vaisest Apr 7, 2026
2cbcfa2
trader tool: fix price based sorting #9678
vaisest Apr 7, 2026
b29ac92
fix watcher's eye search crash on empty socket
vaisest Apr 7, 2026
3ffe199
fix test for poe.ninja currencies
vaisest Apr 8, 2026
c398ca9
trader tool: add price next to item name
vaisest Apr 9, 2026
bb83ede
fix empty check in PriceBuilderProcessPoENinjaResponse
vaisest Apr 9, 2026
e82969f
trader tool: use result - klog10(price) estimation for value sorting
vaisest Apr 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions spec/System/TestTradeQueryCurrency_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,18 @@ describe("TradeQuery Currency Conversion", function()
end)

describe("PriceBuilderProcessPoENinjaResponse", function()
-- Pass: Processes without error, restoring map
-- Pass: Processes without error, restoring map while adding a notice
-- Fail: Corrupts map or crashes, indicating fragile API response handling, breaking future conversions
it("handles unmapped currency", function()
local orig_conv = mock_tradeQuery.currencyConversionTradeMap
mock_tradeQuery.currencyConversionTradeMap = { div = "id" }
mock_tradeQuery.controls.pbNotice = { label = ""}
local resp = { exotic = 10 }
mock_tradeQuery:PriceBuilderProcessPoENinjaResponse(resp)
-- No crash expected
assert.is_true(true)
mock_tradeQuery.currencyConversionTradeMap = orig_conv
assert.is_true(mock_tradeQuery.controls.pbNotice.label == "No currencies received from PoE Ninja")
mock_tradeQuery.currencyConversionTradeMap = orig_conv
end)
end)

Expand Down
28 changes: 20 additions & 8 deletions src/Classes/ItemsTab.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1585,14 +1585,14 @@ function ItemsTabClass:DeleteItem(item, deferUndoState)
end
end

local function copyAnointsAndEldritchImplicits(newItem, activeItemSet, items)
local newItemType = newItem.base.type
if activeItemSet[newItemType] then
local currentItem = activeItemSet[newItemType].selItemId and items[activeItemSet[newItemType].selItemId]
function ItemsTabClass:CopyAnointsAndEldritchImplicits(newItem, copyEldritchImplicits, overwrite)
local newItemType = newItem.base.weapon and "Weapon 1" or newItem.base.type
if self.activeItemSet[newItemType] then
local currentItem = self.activeItemSet[newItemType].selItemId and self.items[self.activeItemSet[newItemType].selItemId]
-- if you don't have an equipped item that matches the type of the newItem, no need to do anything
if currentItem then
-- if the new item is anointable and does not have an anoint and your current respective item does, apply that anoint to the new item
if isAnointable(newItem) and #newItem.enchantModLines == 0 and activeItemSet[newItemType].selItemId > 0 then
if isAnointable(newItem) and (#newItem.enchantModLines == 0 or overwrite) and self.activeItemSet[newItemType].selItemId > 0 then
local currentAnoint = currentItem.enchantModLines
if currentAnoint and #currentAnoint == 1 then -- skip if amulet has more than one anoint e.g. Stranglegasp
newItem.enchantModLines = currentAnoint
Expand All @@ -1607,12 +1607,24 @@ local function copyAnointsAndEldritchImplicits(newItem, activeItemSet, items)
return
end
end
if main.migrateEldritchImplicits and isValueInTable(eldritchBaseTypes, newItem.base.type) and isValueInTable(eldritchRarities, newItem.rarity)
and #newItem.implicitModLines == 0 and not newItem.corrupted and (currentItem.cleansing or currentItem.tangle) and currentItem.implicitModLines then

local modifiableItem = not (newItem.corrupted or newItem.mirrored)
if copyEldritchImplicits and isValueInTable(eldritchBaseTypes, newItem.base.type) and isValueInTable(eldritchRarities, newItem.rarity)
and (#newItem.implicitModLines == 0 or overwrite) and modifiableItem and (currentItem.cleansing or currentItem.tangle) and currentItem.implicitModLines then
newItem.implicitModLines = currentItem.implicitModLines
newItem.tangle = currentItem.tangle
newItem.cleansing = currentItem.cleansing
end

-- harvest and heist enchantments on modifiable body armour or weapons
if newItem.base.weapon or newItem.base.type == "Body Armour"
and (#newItem.enchantModLines == 0 or overwrite)
and self.activeItemSet[newItemType].selItemId > 0
and modifiableItem and currentItem.enchantModLines
then
newItem.enchantModLines = currentItem.enchantModLines
end

newItem:BuildAndParseRaw()
end
end
Expand All @@ -1622,7 +1634,7 @@ end
function ItemsTabClass:CreateDisplayItemFromRaw(itemRaw, normalise)
local newItem = new("Item", itemRaw)
if newItem.base then
copyAnointsAndEldritchImplicits(newItem, self.activeItemSet, self.items)
self:CopyAnointsAndEldritchImplicits(newItem, main.migrateEldritchImplicits, false)
if normalise then
newItem:NormaliseQuality()
newItem:BuildModList()
Expand Down
236 changes: 186 additions & 50 deletions src/Classes/TradeQuery.lua

Large diffs are not rendered by default.

Loading