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',