    'use strict';
    import { shuffleHeroes } from '../heroesHelper';
    export default function selectTournamentState(duelController) {
      let duelCtrl = duelController;
      let start = () => {
        /** @type {import('type/game').TH_GameDataStore} */
        let gameData = duelCtrl.getGameData();
        gameData.game['waitingFor/blue'] = true;
        gameData.game['waitingFor/red'] = true;
        gameData.game.currentPlayer = 'both';
        duelCtrl.storeData(gameData);
      };

      let update = (
        /** @type {import('type/comm').TH_MessageTournamentDeckStep} */ payload = null
      ) => {
        /** @type {import('type/game').TH_GameDataStore} */
        let gameData = duelCtrl.getGameData();
        if (payload) {
          let player = payload.color + 'player';
          let randomHeroes = shuffleHeroes(payload.twelveHeroes);
          // Init player twelve heroes
          gameData[player].twelveHeroes = randomHeroes;
          gameData.game['waitingFor/' + payload.color] = false;
          duelCtrl.storeData(gameData);
        }

        if (
          gameData.game['waitingFor/blue'] === false &&
          gameData.game['waitingFor/red'] === false
        ) {
          duelCtrl.endCurrentState();
        }
      };

      let end = () => {
        console.log('Go to next game state : 2_CHANGE_UP_TO_3_CARDS');

        duelCtrl.setCurrentState('2_CHANGE_UP_TO_3_CARDS');
        duelCtrl.startCurrentState();
      };
      return {
        start,
        update,
        end
      };
    }