From 82933aaf1e0d1e925704273230985bed1a6ccd61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 24 May 2024 13:48:50 -0500 Subject: [PATCH] fix: heat doesn't actually ricochet lol --- .../tankopedia/[id]/components/Characteristics/index.tsx | 2 +- .../Armor/components/CoreArmorSceneComponent/index.tsx | 4 +++- .../components/SpacedArmorSubSpaced/index.tsx | 5 ++++- .../Armor/components/SpacedArmorSceneComponent/index.tsx | 4 +++- src/core/blitz/canRicochet.ts | 7 ------- src/hooks/useWideFormat.ts | 3 +++ 6 files changed, 14 insertions(+), 11 deletions(-) delete mode 100644 src/core/blitz/canRicochet.ts 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;