import { ChevronRightIcon } from '@radix-ui/react-icons'; import { ChevronDownIcon, Flex, Text } from '@radix-ui/themes'; import Link from 'next/link'; import { ComponentProps, use } from 'react'; import PageWrapper from '../../../../../../components/PageWrapper'; import { asset } from '../../../../../../core/blitzkit/asset'; import { tankDefinitions } from '../../../../../../core/blitzkit/tankDefinitions'; import { TIER_ROMAN_NUMERALS } from '../../../../../../core/blitzkit/tankDefinitions/constants'; import { useWideFormat } from '../../../../../../hooks/useWideFormat'; import { useDuel } from '../../../../../../stores/duel'; export function TreeArrow({ style, down = false, ...props }: ComponentProps & { down?: boolean }) { const Icon = down ? ChevronDownIcon : ChevronRightIcon; return ( ); } export function TechTreeSection() { const wideFormat = useWideFormat(720); const awaitedTankDefinitions = use(tankDefinitions); const tank = useDuel((state) => state.protagonist!.tank); if (tank.treeType !== 'researchable') return null; function Card({ id }: { id: number }) { const ancestor = awaitedTankDefinitions[id]; return ( {ancestor.name} {TIER_ROMAN_NUMERALS[ancestor.tier]} {ancestor.name} XP {ancestor.xp?.toLocaleString()} Silver {ancestor.price.value?.toLocaleString()} ); } return ( {/* Tech tree */} {tank.ancestors && ( <> {tank.ancestors.map((id) => ( ))} )} {tank.nation} {tank.successors && ( <> {tank.successors.map((id) => ( ))} )} ); }