From 17755641a16d5c22298e82bec459778e8ba60255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Sun, 27 Jul 2025 20:31:21 -0500 Subject: [PATCH] feat: sorting by he shell penetratoin --- packages/i18n/strings/en.json | 1 + .../src/components/TankSearch/components/Card.tsx | 3 +++ .../src/components/TankSearch/components/Sort.tsx | 1 + packages/website/src/components/TankSearch/index.tsx | 10 ++++++++++ .../src/stores/tankopediaPersistent/constants.ts | 1 + 5 files changed, 16 insertions(+) diff --git a/packages/i18n/strings/en.json b/packages/i18n/strings/en.json index caa25ce0f..65bdf40fc 100644 --- a/packages/i18n/strings/en.json +++ b/packages/i18n/strings/en.json @@ -790,6 +790,7 @@ "fire.caliber": "caliber", "fire.standardPenetration": "standard penetration", "fire.premiumPenetration": "premium penetration", + "fire.tertiaryPenetration": "tertiary penetration", "fire.damage": "damage", "fire.moduleDamage": "module damage", "fire.shellVelocity": "shell velocity", diff --git a/packages/website/src/components/TankSearch/components/Card.tsx b/packages/website/src/components/TankSearch/components/Card.tsx index f5531692a..34d9234ec 100644 --- a/packages/website/src/components/TankSearch/components/Card.tsx +++ b/packages/website/src/components/TankSearch/components/Card.tsx @@ -27,6 +27,7 @@ export function TankSearchCard({ tank, onSelect }: TankSearchCardProps) { const gun = turret.guns.at(-1)!; const shell0 = gun.gun_type!.value.base.shells[0]; const shell1 = gun.gun_type!.value.base.shells[1]; + const shell2 = gun.gun_type!.value.base.shells[2]; const tracks = tank.tracks.at(-1)!; const engine = tank.engines.at(-1)!; const tankModelDefinition = modelDefinitions.models[tank.id]; @@ -57,6 +58,8 @@ export function TankSearchCard({ tank, onSelect }: TankSearchCardProps) { return shell0.penetration.near.toFixed(0); case 'fire.premiumPenetration': return shell1 ? shell1.penetration.near.toFixed(0) : '--'; + case 'fire.tertiaryPenetration': + return shell1 ? shell2.penetration.near.toFixed(0) : '--'; case 'fire.shellVelocity': return shell0.velocity.toFixed(0); case 'fire.shellCapacity': diff --git a/packages/website/src/components/TankSearch/components/Sort.tsx b/packages/website/src/components/TankSearch/components/Sort.tsx index 7a43836a5..8a201c849 100644 --- a/packages/website/src/components/TankSearch/components/Sort.tsx +++ b/packages/website/src/components/TankSearch/components/Sort.tsx @@ -63,6 +63,7 @@ export function Sort() { + diff --git a/packages/website/src/components/TankSearch/index.tsx b/packages/website/src/components/TankSearch/index.tsx index 0d03cc671..1c8245725 100644 --- a/packages/website/src/components/TankSearch/index.tsx +++ b/packages/website/src/components/TankSearch/index.tsx @@ -238,6 +238,16 @@ export const TankSearch = memo( ); break; + case 'fire.tertiaryPenetration': + sorted = filtered.sort( + (a, b) => + (a.turrets.at(-1)!.guns.at(-1)!.gun_type!.value.base.shells[2] + ?.penetration.near ?? 0) - + (b.turrets.at(-1)!.guns.at(-1)!.gun_type!.value.base.shells[2] + ?.penetration.near ?? 0), + ); + break; + case 'fire.damage': sorted = filtered.sort( (a, b) => diff --git a/packages/website/src/stores/tankopediaPersistent/constants.ts b/packages/website/src/stores/tankopediaPersistent/constants.ts index 49bc4bda1..52f03f645 100644 --- a/packages/website/src/stores/tankopediaPersistent/constants.ts +++ b/packages/website/src/stores/tankopediaPersistent/constants.ts @@ -14,6 +14,7 @@ export const SORT_UNITS: Record = { 'fire.gunDepression': '°', 'fire.gunElevation': '°', 'fire.premiumPenetration': 'mm', + 'fire.tertiaryPenetration': 'mm', 'fire.reload': 's', 'fire.shellVelocity': 'm/s', 'fire.shellRange': 'm',