IEnumerator DoActionPlayerAddBet(AnimalRacingData.AnimalRacing_PlayerAddBet_Data _playerAddBetData)
    {
        // ---- Merge dữ liệu ---- //
        animalRacingData.listGlobalBets[_playerAddBetData.indexBet] = _playerAddBetData.globalBet;

        if (DataManager.instance.userData.sessionId == _playerAddBetData.sessionid)
        {
            animalRacingData.listMyBets[_playerAddBetData.indexBet] = _playerAddBetData.playerBet;
            DataManager.instance.userData.gold = _playerAddBetData.myGOLD;
            DataManager.instance.userData.SetTotalBetInGameInfo(IMiniGameInfo.Type.AnimalRacing, _playerAddBetData.totalBet);
        }
        else
        {
            int _tmpIndex = -1;
            for (int i = 0; i < animalRacingData.listOtherPlayerData.Count; i++)
            {
                if (animalRacingData.listOtherPlayerData[i].sessionId == _playerAddBetData.sessionid)
                {
                    _tmpIndex = i;
                    break;
                }
            }
            if (_tmpIndex != -1)
            {
                animalRacingData.listOtherPlayerData[_tmpIndex].gold = _playerAddBetData.myGOLD;
                animalRacingData.listOtherPlayerData[_tmpIndex].SetTotalBetInGameInfo(IMiniGameInfo.Type.AnimalRacing, _playerAddBetData.totalBet);
            }
        }
        // ----------------------- //

        betManager.SetUpPlayerAddBet(_playerAddBetData.sessionid, _playerAddBetData.chipIndex, _playerAddBetData.indexBet, _playerAddBetData.myGOLD);
        betManager.RefreshUIPanelTableBet();
        yield break;
    }
    IEnumerator DoActionCheckPlayerAddBet()
    {
        AnimalRacingData.AnimalRacing_PlayerAddBet_Data _playerAddBetData = animalRacingData.processPlayerAddBet[0];
        System.Action _onFinished = () => {
            _playerAddBetData = null;
            animalRacingData.processPlayerAddBet.RemoveAt(0);
        };

        if (currentState == State.Bet)
        {
            yield return(StartCoroutine(DoActionPlayerAddBet(_playerAddBetData)));
        }
        else
        {
            listProcessPlaying.Add(DoActionPlayerAddBet(_playerAddBetData));
        }

        if (_onFinished != null)
        {
            _onFinished();
        }
        yield break;
    }