diff --git a/config/i18n.json b/config/i18n.json index d6b019e15d..1012070bd0 100644 --- a/config/i18n.json +++ b/config/i18n.json @@ -353,6 +353,7 @@ "Tagged": "Shows items that have any tag." }, "Tier": "Shows items based on their tier from 0-5.", + "TieredWeapon": "Shows weapons with tiers.", "Timelost": "\\(Timelost\\)", "Tracked": "Shows quests/bounties based on their tracked status.", "Transferable": "Items that can be moved between characters.", @@ -1599,4 +1600,4 @@ }, "wrong-level": "wrong-level", "no-space": "no-space" -} \ No newline at end of file +} diff --git a/src/app/search/items/search-filters/sockets.ts b/src/app/search/items/search-filters/sockets.ts index f6b66e4d62..aba534bb80 100644 --- a/src/app/search/items/search-filters/sockets.ts +++ b/src/app/search/items/search-filters/sockets.ts @@ -364,6 +364,17 @@ const socketFilters: ItemFilterDefinition[] = [ s.plugged?.plugDef.itemCategoryHashes?.includes(ItemCategoryHashes.WeaponModsOriginTraits), ), }, + { + keywords: 'tieredweapon', + description: tl('Filter.TieredWeapon'), + destinyVersion: 2, + filter: () => (item) => + // only legendary weapons + item.rarity === 'Legendary' && + // non-exotic craftable weapons & weapons with tier upgrade slots + (Boolean(item.patternUnlockRecord) || + item.sockets?.allSockets?.some((s) => s.socketDefinition.socketTypeHash === 1236068212)), + }, ]; export default socketFilters; diff --git a/src/locale/en.json b/src/locale/en.json index c565019a43..455a6b51c0 100644 --- a/src/locale/en.json +++ b/src/locale/en.json @@ -339,6 +339,7 @@ "Tagged": "Shows items that have any tag." }, "Tier": "Shows items based on their tier from 0-5.", + "TieredWeapon": "Shows weapons with tiers.", "Timelost": "\\(Timelost\\)", "Tracked": "Shows quests/bounties based on their tracked status.", "Transferable": "Items that can be moved between characters.",