From bef33659e547ffaa40e0f2e60bf395c46e81d0ef Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Sun, 1 Dec 2024 19:31:47 -0600 Subject: [PATCH] feat: remove 2d visualizer --- .../components/DispersionVisualizer.tsx | 213 ------------------ .../components/Characteristics/index.tsx | 2 - 2 files changed, 215 deletions(-) delete mode 100644 packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/DispersionVisualizer.tsx diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/DispersionVisualizer.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/DispersionVisualizer.tsx deleted file mode 100644 index bcf966629..000000000 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/components/DispersionVisualizer.tsx +++ /dev/null @@ -1,213 +0,0 @@ -import { ChevronUpIcon, PlayIcon } from '@radix-ui/react-icons'; -import { - Box, - Button, - Card, - Checkbox, - Code, - Flex, - Select, - Text, -} from '@radix-ui/themes'; -import { useEffect, useRef, useState } from 'react'; -import type { TankCharacteristics } from '../../../../../../core/blitzkit/tankCharacteristics'; -import { Var } from '../../../../../../core/radix/var'; - -interface DispersionVisualizerProps { - stats: TankCharacteristics; -} - -const BASE_SIZE = 10; // rem -const REFRESH_RATE = 1000 / 60; // ms -const VISUALIZER_TYPES = [ - 'afterMove', - 'afterHullTraverse', - 'afterTurretTraverse', - 'afterShot', -] as const; - -type VisualizerType = (typeof VISUALIZER_TYPES)[number]; - -export function DispersionVisualizer({ stats }: DispersionVisualizerProps) { - const timeText = useRef(null); - const dispersionText = useRef(null); - const serverSideCircle = useRef(null); - const [visualize, setVisualize] = useState('afterMove'); - const [gunDamaged, setGunDamaged] = useState(false); - const [stateDiscriminator, setStateDiscriminator] = useState(false); - - useEffect(() => { - const tau = stats.aimTime; - let t = 0; - let coefficient: number; - const dispersionBase = stats.dispersion; - let dispersionAdditive: number; - - if (gunDamaged) { - coefficient = stats.dispersionGunDamaged; - } else { - coefficient = 1; - } - - switch (visualize) { - case 'afterMove': - dispersionAdditive = stats.dispersionMoving; - break; - - case 'afterHullTraverse': - dispersionAdditive = stats.dispersionHullTraversing; - break; - - case 'afterTurretTraverse': - dispersionAdditive = stats.dispersionTurretTraversing; - break; - - case 'afterShot': - dispersionAdditive = stats.dispersion * (stats.dispersionShooting - 1); - break; - } - - const interval = setInterval(() => { - if ( - !timeText.current || - !dispersionText.current || - !serverSideCircle.current - ) - return; - - t += REFRESH_RATE / 1000; // ms -> s - const dispersion = - coefficient * - (dispersionBase + dispersionAdditive * Math.exp(-t / tau)); - timeText.current.innerText = `t = ${t.toFixed(1)}s`; - dispersionText.current.innerText = `a = ${dispersion.toFixed(3)}m`; - - const serverSideSize = `${(dispersion / coefficient / dispersionBase) * BASE_SIZE}rem`; - serverSideCircle.current.style.width = serverSideSize; - serverSideCircle.current.style.height = serverSideSize; - }, REFRESH_RATE); - - return () => { - clearInterval(interval); - }; - }, [visualize, gunDamaged, stateDiscriminator]); - - return ( - - - - - After - setVisualize(value as VisualizerType)} - > - - - - move - - - hull traverse - - - turret traverse - - - shot - - - - - - setGunDamaged((state) => !state)} - style={{ cursor: 'pointer', userSelect: 'none' }} - > - Gun damaged - - - - - - - - - - - - - - - - t = 0s - - - - a = 0.000m - - - - - - - - - - ); -} diff --git a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/index.tsx b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/index.tsx index 8d6064481..7f67c23da 100644 --- a/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/index.tsx +++ b/packages/website/src/components/Tankopedia/CharacteristicsSection/components/Characteristics/index.tsx @@ -30,7 +30,6 @@ import { useEquipment } from '../../../../../hooks/useEquipment'; import { useTankModelDefinition } from '../../../../../hooks/useTankModelDefinition'; import { Duel } from '../../../../../stores/duel'; import { TankopediaEphemeral } from '../../../../../stores/tankopediaEphemeral'; -import { DispersionVisualizer } from './components/DispersionVisualizer'; import { Info } from './components/Info'; import { InfoWithDelta } from './components/InfoWithDelta'; @@ -398,7 +397,6 @@ export function Characteristics() { value="aimTime" /> -