diff --git a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
index 92062c337..088514414 100644
--- a/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
+++ b/src/app/tools/tankopedia/[id]/components/Characteristics/index.tsx
@@ -311,7 +311,7 @@ export function Characteristics() {
{stats.shellNormalization}
- {shell.type !== 'he' && (
+ {!isExplosive(shell.type) && (
{
async function handleShellChange(shell: ShellDefinition) {
material.uniforms.caliber.value = shell.caliber;
- material.uniforms.ricochet.value = degToRad(shell.ricochet ?? 90);
+ material.uniforms.ricochet.value = degToRad(
+ isExplosive(shell.type) ? 90 : shell.ricochet!,
+ );
material.uniforms.normalization.value = degToRad(
shell.normalization ?? 0,
);
diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx b/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx
index f45438576..4c45704f7 100644
--- a/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx
+++ b/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx
@@ -7,6 +7,7 @@ import {
} from 'three';
import { degToRad } from 'three/src/math/MathUtils';
import { ArmorUserData } from '../..';
+import { isExplosive } from '../../../../../../core/blitz/isExplosive';
import { resolveNearPenetration } from '../../../../../../core/blitz/resolveNearPenetration';
import { hasEquipment } from '../../../../../../core/blitzkit/hasEquipment';
import { jsxTree } from '../../../../../../core/blitzkit/jsxTree';
@@ -53,7 +54,9 @@ export function SpacedArmorSubSpaced({
shell.penetration,
);
material.uniforms.caliber.value = shell.caliber;
- material.uniforms.ricochet.value = degToRad(shell.ricochet ?? 90);
+ material.uniforms.ricochet.value = degToRad(
+ isExplosive(shell.type) ? 90 : shell.ricochet!,
+ );
material.uniforms.normalization.value = degToRad(
shell.normalization ?? 0,
);
diff --git a/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx b/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx
index 4ba5687ae..c080f0188 100644
--- a/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx
+++ b/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx
@@ -268,7 +268,9 @@ export function SpacedArmorSceneComponent({
} else {
const type = intersection.object.userData.type;
const angle = surfaceNormal.angleTo(shellNormal);
- const ricochet = degToRad(shell.ricochet ?? 90);
+ const ricochet = degToRad(
+ isExplosive(shell.type) ? 90 : shell.ricochet!,
+ );
const normalization = degToRad(shell.normalization ?? 0);
const threeCalibersRule =
shell.caliber > thickness * 3 || layerIndex > 0;
diff --git a/src/core/blitz/canRicochet.ts b/src/core/blitz/canRicochet.ts
deleted file mode 100644
index 56568f868..000000000
--- a/src/core/blitz/canRicochet.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { ShellDefinition } from '../blitzkit/tankDefinitions';
-
-export function canRicochet(
- type: ShellDefinition['type'],
-): type is Exclude {
- return type !== 'he';
-}
diff --git a/src/hooks/useWideFormat.ts b/src/hooks/useWideFormat.ts
index 483f358a2..d7cc4f9ee 100644
--- a/src/hooks/useWideFormat.ts
+++ b/src/hooks/useWideFormat.ts
@@ -1,5 +1,8 @@
import { useEffect, useState } from 'react';
+/**
+ * @deprecated DO NOT USE; CAUSES NEXT JS HYDRATION ISSUES
+ */
export function useWideFormat(size = 880) {
function hasWideFormat() {
return typeof window !== 'undefined' && window.innerWidth > size;