From a704b291fde227469d59145ad187d7936b5258fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Fri, 1 Aug 2025 12:37:40 -0500 Subject: [PATCH] fix: consider shells --- packages/core/src/protos/tank_definitions.ts | 2 +- .../components/Cursor/index.tsx | 10 ++++++++-- .../Characteristics/components/Firepower.tsx | 2 +- .../TankSandbox/components/SceneProps/index.tsx | 5 ++++- .../src/core/blitzkit/tankCharacteristics.ts | 13 +++++++------ .../website/src/core/blitzkit/tankToDuelMember.ts | 3 ++- .../src/pages/[...locale]/compare/_index.tsx | 2 +- 7 files changed, 24 insertions(+), 13 deletions(-) diff --git a/packages/core/src/protos/tank_definitions.ts b/packages/core/src/protos/tank_definitions.ts index 1861f7e4c..e30a2de75 100644 --- a/packages/core/src/protos/tank_definitions.ts +++ b/packages/core/src/protos/tank_definitions.ts @@ -294,7 +294,7 @@ export interface TankDefinition { crew: Crew[]; health: number; nation: string; - name: I18nString | undefined; + name: I18nString; type: TankType; max_consumables: number; max_provisions: number; diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx index 50f7a9ff6..22c377b1c 100644 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx +++ b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/AssaultRangesVisualizer/components/Cursor/index.tsx @@ -2,7 +2,10 @@ import { DragHandleDots2Icon } from '@radix-ui/react-icons'; import { Box, Flex, Text } from '@radix-ui/themes'; import { useEffect, useRef, useState } from 'react'; import { clamp } from 'three/src/math/MathUtils.js'; -import { fakeLogInverse } from '../../../../../../../../../core/blitzkit/fakeLog'; +import { + fakeLog, + fakeLogInverse, +} from '../../../../../../../../../core/blitzkit/fakeLog'; import { Var } from '../../../../../../../../../core/radix/var'; import { Duel } from '../../../../../../../../../stores/duel'; import './index.css'; @@ -13,7 +16,10 @@ interface Props { } export function AssaultCursor({ maxDistance, maxFakeDistance }: Props) { - const [x, setX] = useState(0.5); + const assaultDistance = Duel.use( + (state) => state.protagonist.assaultDistance, + ); + const [x, setX] = useState(fakeLog(assaultDistance / maxDistance, 2)); const cursor = useRef(null); const mutateDuel = Duel.useMutation(); diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/Firepower.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/Firepower.tsx index a3cbb3efc..19819e63e 100644 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/Firepower.tsx +++ b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/Firepower.tsx @@ -120,7 +120,7 @@ export function Firepower({ stats }: StatsAcceptorProps) { - {gun.gun_type!.value.base.assault_ranges && ( + {gun.gun_type!.value.base.assault_ranges?.types.includes(shell.type) && ( state.skills); const consumables = Duel.use((state) => state.protagonist.consumables); const provisions = Duel.use((state) => state.protagonist.provisions); + const assaultDistance = Duel.use( + (state) => state.protagonist.assaultDistance, + ); const equipmentMatrix = Duel.use( (state) => state.protagonist.equipmentMatrix, ); @@ -96,7 +99,7 @@ export function SceneProps() { stockTurret: tank.turrets[0], stockTrack: tank.tracks[0], track, - assaultDistance: 0, + assaultDistance, }, { equipmentDefinitions, provisionDefinitions, tankModelDefinition }, ); diff --git a/packages/website/src/core/blitzkit/tankCharacteristics.ts b/packages/website/src/core/blitzkit/tankCharacteristics.ts index 0c152cedf..e8e021203 100644 --- a/packages/website/src/core/blitzkit/tankCharacteristics.ts +++ b/packages/website/src/core/blitzkit/tankCharacteristics.ts @@ -159,12 +159,13 @@ export function tankCharacteristics( [applyDynamicArmor, -0.1], [applySpallLiner && shell.type === ShellType.HE, -0.2], ); - const assaultDamageCoefficient = gun.gun_type!.value.base.assault_ranges - ? // && gun.gun_type!.value.base.assault_ranges.types.includes(shell.type) - (gun.gun_type!.value.base.assault_ranges.ranges.find( - ({ distance }) => distance >= assaultDistance, - )?.factor ?? 0) - : 1; + const assaultDamageCoefficient = + gun.gun_type!.value.base.assault_ranges && + gun.gun_type!.value.base.assault_ranges.types.includes(shell.type) + ? (gun.gun_type!.value.base.assault_ranges.ranges.find( + ({ distance }) => distance >= assaultDistance, + )?.factor ?? 0) + : 1; const moduleDamageCoefficient = coefficient([hasTungsten, 0.15]) * assaultDamageCoefficient; const reloadCoefficient = diff --git a/packages/website/src/core/blitzkit/tankToDuelMember.ts b/packages/website/src/core/blitzkit/tankToDuelMember.ts index 9e6c9dc3e..3792b6d15 100644 --- a/packages/website/src/core/blitzkit/tankToDuelMember.ts +++ b/packages/website/src/core/blitzkit/tankToDuelMember.ts @@ -40,6 +40,7 @@ export function tankToDuelMember( yaw, pitch, turret, - assaultDistance: 0, + assaultDistance: + (gun.gun_type!.value.base.assault_ranges?.ranges[0].distance ?? 0) / 2, } satisfies DuelMember; } diff --git a/packages/website/src/pages/[...locale]/compare/_index.tsx b/packages/website/src/pages/[...locale]/compare/_index.tsx index f3a4773c6..be223f84a 100644 --- a/packages/website/src/pages/[...locale]/compare/_index.tsx +++ b/packages/website/src/pages/[...locale]/compare/_index.tsx @@ -85,7 +85,7 @@ function Content() { member.key !== thisMember.key && member.provisions.includes(101), ), - assaultDistance: 0, + assaultDistance: thisMember.assaultDistance, }, { equipmentDefinitions: equipmentDefinitions,