import { asset } from '@blitzkit/core'; import { Box, Flex, Heading, Text } from '@radix-ui/themes'; import { awaitableConsumableDefinitions } from '../../core/awaitables/consumableDefinitions'; import { awaitableGameDefinitions } from '../../core/awaitables/gameDefinitions'; import { awaitableProvisionDefinitions } from '../../core/awaitables/provisionDefinitions'; import { useLocale } from '../../hooks/useLocale'; import { Duel } from '../../stores/duel'; const [gameDefinitions, consumableDefinitions, provisionDefinitions] = await Promise.all([ awaitableGameDefinitions, awaitableConsumableDefinitions, awaitableProvisionDefinitions, ]); export function GameModeSection() { const { unwrap, strings } = useLocale(); const tank = Duel.use((state) => state.protagonist.tank); const roles = Object.entries(tank.roles); if (roles.length === 0) return null; return ( {strings.website.tools.tankopedia.game_modes.title} {roles.map(([key, value]) => { const id = Number(key); const gameMode = gameDefinitions.gameModes[id]; return ( {unwrap(gameMode.name)} {gameDefinitions.roles[value].provisions.map((id) => { const provisions = provisionDefinitions.provisions[id]; return ( {unwrap(provisions.name)} {unwrap(provisions.name)} ); })} {gameDefinitions.roles[value].consumables.map((id) => { const consumable = consumableDefinitions.consumables[id]; return ( {unwrap(consumable.name)} {unwrap(consumable.name)} ); })} ); })} ); }