Skip to content

chooseColor

Sent when an effect asks the player to choose a color — for example, the color named by Painter’s Servant, or the color half of a hybrid mana payment.

input.type is "chooseColor". The remaining fields:

interface ChooseColorInput {
validColors: Array<string>;
amount: number;
repeatAllowed: boolean;
}

The control depends on how many picks are needed.

A single color picked from coloured tiles

For a single pick (amount of 1) the colors are tiles — click one and the choice is sent immediately.

Per-color counters distributing several picks

For multiple picks (amount > 1 with repeatAllowed) it becomes a per-color counter — the player spreads amount across the colors, then confirms.

type ChooseColorOutput = { type: "colorDecision"; chosenColors: { [color: string]: number } };

Return a map of color → number of times chosen, with the counts summing to amount.

{
"promptId": 7,
"decidingPlayerId": "player-0",
"input": {
"type": "chooseColor",
"validColors": ["W", "U", "B", "R", "G"],
"amount": 1,
"repeatAllowed": false
}
}
{ "promptId": 7, "output": { "type": "colorDecision", "chosenColors": { "R": 1 } } }