1import { SingleColorToken } from "@tokens-studio/types"
2import { ColorScheme, Players } from "../../common"
3import { colorToken } from "./token"
4
5export type PlayerToken = Record<"selection" | "cursor", SingleColorToken>
6
7export type PlayersToken = Record<keyof Players, PlayerToken>
8
9function buildPlayerToken(
10 colorScheme: ColorScheme,
11 index: number
12): PlayerToken {
13 const playerNumber = index.toString() as keyof Players
14
15 return {
16 selection: colorToken(
17 `player${index}Selection`,
18 colorScheme.players[playerNumber].selection
19 ),
20 cursor: colorToken(
21 `player${index}Cursor`,
22 colorScheme.players[playerNumber].cursor
23 ),
24 }
25}
26
27export const playersToken = (colorScheme: ColorScheme): PlayersToken => ({
28 "0": buildPlayerToken(colorScheme, 0),
29 "1": buildPlayerToken(colorScheme, 1),
30 "2": buildPlayerToken(colorScheme, 2),
31 "3": buildPlayerToken(colorScheme, 3),
32 "4": buildPlayerToken(colorScheme, 4),
33 "5": buildPlayerToken(colorScheme, 5),
34 "6": buildPlayerToken(colorScheme, 6),
35 "7": buildPlayerToken(colorScheme, 7),
36})