In the real boardgame, at the beginning of the Round each player needs to roll Nd8 (N is a scenario property). The d8 have these faces: 3 Green, 2 Blue, 1 Red, 1 Purple, 1 Yellow. Once rolled, the player pick N tokens of the colours showed by the d8.
The module i’m modifying implemented this by creating a deck of tokens, from which you right-click to draw multiple cards, enter “N” in the popup that appears, drag from the deck, and finally right-click on the stack of tokens you just dragged and click “reveal”: this randomizes the 8-level layer in each of the tokens, and you finally know what tokens you got.
This is … “too far” from the real experience. And also, you dont have green/blue/red/purple/yellow tokens, but just “generic tokens”, forcing me to do tests and tricks if i want to allow specific action to different colour tokens.
Instead, i would like to have specific-colour tokens, and maybe a piece on the board that fires an action that sends (creates? summons? Clones?) these tokens to a specific zone in the board. The token are visible to all the players, but a bonus thing will be if they are owned by the player that fired the action (so they could be only moved/played by him).
I would put the tokens in separate decks, one for each colour, and use a random number from 1 to 8 to send a token from the correct colour deck into the stack of the player who picks the tokens.
There is a “Send to Location” trait you can use to send a token to a destination on the board.
As for the generic tokens, you probably will have to add a Marker trait to each token that indicates the colour of the token.
If the number to draw N is fixed by the scenario, it presumably does not change over the game. In that case, it can be set, and locked, in a ScenarioOption. It can of course also be set via a ChangePropertyButton. In any case, it can define a global property named NTokens.
Next, add a Turn counter, and add a Hotkey when entering a new round. That hotkey - say RollTokens is then send to some hidden piece.
and the token pieces should define a SendtoLocation trait with the key MoveToTokenStack to move the token piece to an appropriate place on the board or similar.