Skip to content

Latest commit

 

History

History
27 lines (24 loc) · 1.89 KB

File metadata and controls

27 lines (24 loc) · 1.89 KB

The gem strategy

The shortest search here. How a gem's name is resolved is under item/resolve in item-layer.md, and its reference price is in ninja.md.

item/plan's gem strategy (plan_gem) is the shortest search here and the only one whose filters are all numeric: the name, misc_filters.gem_level, misc_filters.quality, and the corruption every strategy already matches exactly. Everything a gem prints is what the skill does and is identical on every copy of it, so there is nothing to turn into a stat filter and nothing to leave a note about either. Level and quality are exact — min == max, the same reasoning as a map's tier. A level 21 gem is not a better level 20 one, it is what the gem sells as; a floor would put 21/23 corrupted gems into the results for a 20/20 and price a different item. Quality is filtered at zero as readily as at twenty, because an unquality gem is a different thing from a 20% one and no filter at all prices it as whichever quality is cheapest. Corruption is the hard split underneath both: it is what allows level 21 and quality 23 to exist. The name is the record's, never the printed one — see item/resolve in item-layer.md and Item::gem_name() — and a gem the bundle cannot name gets no search at all, only a note. That is trade::searchable returning false on an empty type for this strategy alone: every other strategy still has modifiers or a category to fall back on, while a gem falls back to every gem in the game at this level, whose cheapest listing would read as this gem's price. poe.ninja still prices it, so the check is not empty. In practice this only happens on a bundle older than data-20260807.23, the release that keys gems on their printed names, and then only for transfigured gems.