From 9061335292c2dc68c41c550a0d7f80d4ffbd92e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Wed, 7 Jan 2026 20:11:54 -0600 Subject: [PATCH] feat: deduplicate game mode consumales and powers --- .../TankSearch/components/FilterControl.tsx | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/website/src/components/TankSearch/components/FilterControl.tsx b/packages/website/src/components/TankSearch/components/FilterControl.tsx index 3991366a1..75f50318f 100644 --- a/packages/website/src/components/TankSearch/components/FilterControl.tsx +++ b/packages/website/src/components/TankSearch/components/FilterControl.tsx @@ -83,11 +83,36 @@ for (const gameModeIdString in gameModeRoleSets) { for (const roleId of roles) { const role = gameDefinitions.roles[roleId]; - for (const id of role.consumables) { + outerLoop: for (const id of role.consumables) { + const name = + consumableDefinitions.consumables[id].name.locales[locales.default]; + + for (const otherConsumable of consumables.values()) { + const otherName = + consumableDefinitions.consumables[otherConsumable].name.locales[ + locales.default + ]; + + if (name === otherName) continue outerLoop; + } + consumables.add(id); allGameModeConsumables.add(id); } - for (const id of role.provisions) { + + outerLoop: for (const id of role.provisions) { + const name = + provisionDefinitions.provisions[id].name.locales[locales.default]; + + for (const otherProvision of provisions.values()) { + const otherName = + provisionDefinitions.provisions[otherProvision].name.locales[ + locales.default + ]; + + if (name === otherName) continue outerLoop; + } + provisions.add(id); allGameModeProvisions.add(id); }