diff --git a/src/app/tools/tankopedia/[id]/components/VersusBar.tsx b/src/app/tools/tankopedia/[id]/components/VersusBar.tsx index ca5cd5f61..8b6067b2c 100644 --- a/src/app/tools/tankopedia/[id]/components/VersusBar.tsx +++ b/src/app/tools/tankopedia/[id]/components/VersusBar.tsx @@ -1,4 +1,8 @@ -import { CaretRightIcon, MagnifyingGlassIcon } from '@radix-ui/react-icons'; +import { + CaretRightIcon, + Cross1Icon, + MagnifyingGlassIcon, +} from '@radix-ui/react-icons'; import { Button, Card, @@ -17,6 +21,7 @@ import { use, useRef, useState } from 'react'; import { ModuleButtons } from '../../../../../components/ModuleButton'; import { asset } from '../../../../../core/blitzkrieg/asset'; import { + SHELL_NAMES, tankDefinitions, tankNamesDiacritics, } from '../../../../../core/blitzkrieg/tankDefinitions'; @@ -31,7 +36,6 @@ export function VersusBar() { const [versusTankTab, setVersusTankTab] = useState('search'); const versusTankSearchInput = useRef(null); const antagonist = useTankopedia((state) => { - // goofy ahh typescript discriminator hack if (!state.areTanksAssigned) return; return state.antagonist; }); @@ -56,7 +60,20 @@ export function VersusBar() { - + + + + + Search @@ -93,30 +110,37 @@ export function VersusBar() { {(versusTankSearchResults.length > 0 || versusTankSearchInput.current?.value) && ( - {versusTankSearchResults.map((id) => ( - - ))} + draft.antagonist.tank = tank; + draft.antagonist.turret = + tank.turrets.at(-1)!; + draft.antagonist.gun = + draft.antagonist.turret.guns.at(-1)!; + }); + setVersusTankSearchResults([]); + versusTankSearchInput.current!.value = ''; + setVersusTankTab('configure'); + }} + > + {tank.name} + + ))} {versusTankSearchResults.length === 0 && (versusTankSearchInput.current @@ -135,7 +159,9 @@ export function VersusBar() { - Configuration + + {antagonist.tank.name} modules + @@ -213,11 +239,25 @@ export function VersusBar() { - + Properties
    -
  • Penetration
  • +
  • + Turret: {antagonist.turret.name} +
  • +
  • + Gun: {antagonist.gun.name} +
  • +
  • Shells:
  • +
      + {antagonist.gun.shells.map((shell) => ( +
    • + {SHELL_NAMES[shell.type]}:{' '} + {shell.damage.armor} HP +
    • + ))} +
diff --git a/src/core/blitzkrieg/tankDefinitions.ts b/src/core/blitzkrieg/tankDefinitions.ts index d047584a8..157e731fe 100644 --- a/src/core/blitzkrieg/tankDefinitions.ts +++ b/src/core/blitzkrieg/tankDefinitions.ts @@ -4,6 +4,13 @@ import { asset } from './asset'; export type ShellType = 'ap' | 'ap_cr' | 'hc' | 'he'; +export const SHELL_NAMES: Record = { + ap: 'AP', + ap_cr: 'APCR', + hc: 'HEAT', + he: 'HE', +}; + export type TankDefinitions = Record; export interface TankDefinition { id: number;