import { alias } from "@blitzkit/core"; import { Box, Flex, Heading, Text } from "@radix-ui/themes"; import { api } from "../../core/blitzkit/api"; import { useLocale } from "../../hooks/useLocale"; import { Duel } from "../../stores/duel"; const [gameDefinitions, consumableDefinitions, provisionDefinitions] = await Promise.all([ api.gameDefinitions(), api.consumableDefinitions(), api.provisionDefinitions(), ]); 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!)} ); })} ); })} ); }