コード例 #1
0
    IEnumerator DoActionDealPlayerCard(Poker_PlayerGroup _playerGroup)
    {
        List <PanelCardDetailController> _tmpListCard = new List <PanelCardDetailController>();
        PanelCardDetailController        _card        = null;

        for (int i = 0; i < 2; i++)
        {
            _card = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, Poker_GamePlay_Manager.instance.panelCardContainer).GetComponent <PanelCardDetailController>();
            _card.transform.position = placeHolder_SpawnCard_Catched.position;
            _card.ResizeAgain(Poker_GamePlay_Manager.instance.sizeCard.x, Poker_GamePlay_Manager.instance.sizeCard.y);
            _tmpListCard.Add(_card);
        }

        yield return(Yielders.Get(0.1f));

        for (int i = 0; i < _tmpListCard.Count; i++)
        {
            if (!_playerGroup.isMe)
            {
                if (Poker_GamePlay_Manager.instance.CanPlayMusicAndSfx())
                {
                    MyAudioManager.instance.PlaySfx(Poker_GamePlay_Manager.instance.myAudioInfo.sfx_DealCard);
                }
                CoroutineChain.Start
                .Parallel(_tmpListCard[i].Move(_playerGroup.cardCoverHoldersCatched[i].position, 0.1f, LeanTweenType.easeOutSine)
                          , _tmpListCard[i].Rotate(_playerGroup.cardCoverHoldersCatched[i].rotation.eulerAngles, 0.1f)
                          , _tmpListCard[i].ScaleTo(_playerGroup.cardCoverHoldersCatched[i].localScale, 0.1f, LeanTweenType.notUsed));
            }
            else
            {
                ICardInfo _cardInfo = null;

                for (int j = 0; j < pokerGamePlayData.listPlayerPlayingData.Count; j++)
                {
                    if (pokerGamePlayData.listPlayerPlayingData[j].isMe &&
                        pokerGamePlayData.listPlayerPlayingData[j].userData.IsEqual(_playerGroup.userData))
                    {
                        _cardInfo = Poker_GamePlay_Manager.instance.GetCardInfo(pokerGamePlayData.listPlayerPlayingData[j].ownCards[i]);
                        if (_cardInfo == null)
                        {
                                                        #if TEST
                            Debug.LogError("_cardInfo is NULL : " + pokerGamePlayData.listPlayerPlayingData[j].ownCards[i]);
                                                        #endif
                            continue;
                        }
                        break;
                    }
                }

                CoroutineChain.Start
                .Parallel(_tmpListCard[i].Move(_playerGroup.ownCardHoldersCatched[i].position, 0.1f, LeanTweenType.easeOutSine
                                               , Poker_GamePlay_Manager.instance.CanPlayMusicAndSfx() ? Poker_GamePlay_Manager.instance.myAudioInfo.sfx_DealCard : null)
                          , _tmpListCard[i].Rotate(_playerGroup.ownCardHoldersCatched[i].rotation.eulerAngles, 0.1f)
                          , _tmpListCard[i].ScaleTo(_playerGroup.ownCardHoldersCatched[i].localScale, 0.1f, LeanTweenType.notUsed))
                .Sequential(_tmpListCard[i].Show(_cardInfo));
            }
            _playerGroup.ownCardPoolManager.AddObject(_tmpListCard[i]);
            yield return(Yielders.Get(0.1f));
        }
    }
コード例 #2
0
    void RefreshGlobalCardUINow()
    {
        if (pokerGamePlayData.globalCards.Count == 0)
        {
            return;
        }
        ICardInfo _cardInfo             = null;
        PanelCardDetailController _card = null;
        Vector3 _pos = Vector3.zero;

        for (int i = 0; i < pokerGamePlayData.globalCards.Count; i++)
        {
            _cardInfo = Poker_GamePlay_Manager.instance.GetCardInfo(pokerGamePlayData.globalCards[i]);
            if (_cardInfo == null)
            {
                                #if TEST
                Debug.LogError("_cardInfo is NULL : " + pokerGamePlayData.globalCards[i]);
                                #endif
                continue;
            }

            _pos = placeHolder_GlobalCards_Catched[globalCardsPoolManager.listObjects.Count].position;

            _card = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, Poker_GamePlay_Manager.instance.panelCardContainer).GetComponent <PanelCardDetailController>();
            _card.transform.position = _pos;
            _card.ResizeAgain(Poker_GamePlay_Manager.instance.sizeCard.x, Poker_GamePlay_Manager.instance.sizeCard.y);
            _card.ShowNow(_cardInfo);
            globalCardsPoolManager.AddObject(_card);
        }
    }
コード例 #3
0
    IEnumerator DoActionDealGlobalCard(List <sbyte> _valueCards)
    {
        List <ICardInfo> _tmpListCardInfo             = new List <ICardInfo>();
        ICardInfo        _cardInfo                    = null;
        List <PanelCardDetailController> _tmpListCard = new List <PanelCardDetailController>();
        PanelCardDetailController        _card        = null;

        for (int i = 0; i < _valueCards.Count; i++)
        {
            _cardInfo = Poker_GamePlay_Manager.instance.GetCardInfo(_valueCards[i]);
            if (_cardInfo == null)
            {
                                #if TEST
                Debug.LogError("_cardInfo is NULL : " + _valueCards[i]);
                                #endif
                continue;
            }
            _tmpListCardInfo.Add(_cardInfo);

            _card = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, Poker_GamePlay_Manager.instance.panelCardContainer).GetComponent <PanelCardDetailController>();
            _card.transform.position = placeHolder_SpawnCard_Catched.position;
            _card.ResizeAgain(Poker_GamePlay_Manager.instance.sizeCard.x, Poker_GamePlay_Manager.instance.sizeCard.y);
            _tmpListCard.Add(_card);
        }
        yield return(Yielders.Get(0.1f));

        for (int i = 0; i < _tmpListCard.Count; i++)
        {
            CoroutineChain.Start
            .Sequential(_tmpListCard[i].Move(placeHolder_GlobalCards_Catched[globalCardsPoolManager.listObjects.Count].position, 0.1f, LeanTweenType.easeOutSine, Poker_GamePlay_Manager.instance.CanPlayMusicAndSfx() ? Poker_GamePlay_Manager.instance.myAudioInfo.sfx_DealCard : null)
                        , _tmpListCard[i].Show(_tmpListCardInfo[i]));
            globalCardsPoolManager.AddObject((MySimplePoolObjectController)_tmpListCard[i]);
            yield return(Yielders.Get(0.1f));
        }
    }
コード例 #4
0
    IEnumerator DoActionDealCards(float _timeDelay)
    {
        System.TimeSpan _tmpDeltaTime = dragonTigerCasinoData.nextTimeToShowResult - System.DateTime.Now;
        if (_tmpDeltaTime.TotalSeconds <= 5)
        {
            cardDragon = LeanPool.Spawn(cardPrefab, cardDragonDealPlaceHolder.position, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardDragon.transform.position = cardDragonDealPlaceHolder.position;
            cardDragon.ResizeAgain(100, 150f);
            cardTiger = LeanPool.Spawn(cardPrefab, cardTigerDealPlaceHolder.position, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardTiger.transform.position = cardTigerDealPlaceHolder.position;
            cardTiger.ResizeAgain(100, 150f);
        }
        else
        {
            cardDragon = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardDragon.transform.position = posistionSpawnCard;
            cardDragon.ResizeAgain(100, 150f);
            cardTiger = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, panelCardContainer).GetComponent <PanelCardDetailController>();
            cardTiger.transform.position = posistionSpawnCard;
            cardTiger.ResizeAgain(100, 150f);
            yield return(Yielders.Get(_timeDelay));

            yield return(CoroutineChain.Start
                         .Sequential(
                             cardDragon.Move(cardDragonDealPlaceHolder.position, 0.3f, LeanTweenType.easeOutSine, myAudioInfo.sfx_DealCard),
                             cardTiger.Move(cardTigerDealPlaceHolder.position, 0.3f, LeanTweenType.easeOutSine, myAudioInfo.sfx_DealCard)));
        }
    }
コード例 #5
0
    public override void InitData(bool _isFullScreen, bool _connectFirst, System.Action _onFinished = null)
    {
        currentGameState = GameState.Bet;

        panelUserInGame.InitData();
        iconNotificationChat.SetActive(false);

        effectPoolManager     = new MySimplePoolManager();
        listProcessPlaying    = new List <IEnumerator>();
        listProcessNonPlaying = new List <IEnumerator>();

        screenChat = ((GameObject)Instantiate(screenChatPrefab, transform)).GetComponent <ScreenChatController>();

        isFullScreen = _isFullScreen;
        if (isFullScreen)
        {
            ratioScale             = 1f;
            myContainer.localScale = Vector3.one * ratioScale;
            btnClose.gameObject.SetActive(false);
            btnMiniGame.SetActive(true);
            btnShop.SetActive(true);
            btnSetting.SetActive(true);
            btnChat.SetActive(true);
        }
        else
        {
            ratioScale             = 0.8f;
            myContainer.localScale = Vector3.one * ratioScale;
            btnClose.gameObject.SetActive(true);
            btnClose.transform.position = btnClose_PlaceHolder.position;

            Vector3 _tmpPosUserInfo = panelUserInGame.transform.position;
            _tmpPosUserInfo.x -= 0.4f;
            panelUserInGame.transform.position = _tmpPosUserInfo;

            btnMiniGame.SetActive(false);
            btnShop.SetActive(false);
            btnSetting.SetActive(true);
            btnChat.SetActive(true);
        }

        posistionSpawnCard    = CoreGameManager.instance.currentSceneManager.mainCamera.transform.position;
        posistionSpawnCard.y += CoreGameManager.instance.currentSceneManager.mainCamera.sizeOfCamera.y / 2 + 3f;
        posistionSpawnCard.z  = 0f;

        cardDragon = null;
        cardTiger  = null;

        dragonTigerCasinoData = new DragonTigerCasinoData();

        panelListChip.InitData();

        StartCoroutine(DoActionRun(_connectFirst, _onFinished));
    }
コード例 #6
0
    void InitAllCallback()
    {
        callbackManager = new DragonTiger_CallbackManager();

        callbackManager.onDestructAllObject = () => {
            effectPoolManager.ClearAllObjectsNow();
            panelListChip.SelfDestruction();
            if (cardDragon != null)
            {
                cardDragon.SelfDestruction();
                cardDragon = null;
            }
            if (cardTiger != null)
            {
                cardTiger.SelfDestruction();
                cardTiger = null;
            }
            screenChat.SelfDestruction();

            if (onPressBack != null)
            {
                CoreGameManager.instance.RemoveCurrentCallbackPressBackKey(onPressBack);
                onPressBack = null;
            }
        };

        callbackManager.onStartShowBet += () => {
            panelUserInGame.RefreshGoldInfo();
            panelListChip.SetFocusChipAgain();
            RefreshUITableBet();
            StartCountDown();
            DealCards(0.5f);
        };

        callbackManager.onStartShowResult += () => {
            panelHistory.Hide();
        };

        screenChat.onSendMessage = (_mess) =>
        {
            DragonTiger_RealTimeAPI.instance.SendMessageChat(_mess);
        };
        screenChat.onStartShow     += HideIconNotificationChat;
        screenChat.onHasNewMessage += ShowIconNotificationChat;
    }
コード例 #7
0
 IEnumerator DoActionClearAllPlayerCards()
 {
     for (int i = 0; i < Poker_GamePlay_Manager.instance.listPlayerGroup.Count; i++)
     {
         if (!Poker_GamePlay_Manager.instance.listPlayerGroup[i].isInitialized)
         {
             continue;
         }
         for (int j = 0; j < Poker_GamePlay_Manager.instance.listPlayerGroup[i].ownCardPoolManager.listObjects.Count; j++)
         {
             PanelCardDetailController _cardDetail = (PanelCardDetailController)Poker_GamePlay_Manager.instance.listPlayerGroup[i].ownCardPoolManager.listObjects[j];
             CoroutineChain.Start
             .Parallel(_cardDetail.Move(placeHolder_SpawnCard_Catched.position, 0.1f, LeanTweenType.easeOutSine, Poker_GamePlay_Manager.instance.CanPlayMusicAndSfx() ? Poker_GamePlay_Manager.instance.myAudioInfo.sfx_Card : null)
                       , _cardDetail.Rotate(placeHolder_SpawnCard_Catched.rotation.eulerAngles, 0.1f));
             yield return(null);
         }
     }
     yield return(Yielders.Get(0.5f));
 }
コード例 #8
0
    IEnumerator DoActionShowCard(List <sbyte> _valueCards, Poker_PlayerGroup _playerGroup)
    {
        ICardInfo _cardInfo = null;

        for (int i = 0; i < _valueCards.Count; i++)
        {
            _cardInfo = Poker_GamePlay_Manager.instance.GetCardInfo(_valueCards[i]);
            if (_cardInfo == null)
            {
                                #if TEST
                Debug.LogError("_cardInfo is NULL : " + _valueCards[i]);
                                #endif
                continue;
            }
            PanelCardDetailController _panelCardDetail = (PanelCardDetailController)_playerGroup.ownCardPoolManager.listObjects[i];
            CoroutineChain.Start
            .Parallel(_panelCardDetail.Move(_playerGroup.cardOpenHoldersCatched[i].position, 0.1f, LeanTweenType.easeOutSine)
                      , _panelCardDetail.Rotate(_playerGroup.cardOpenHoldersCatched[i].rotation.eulerAngles, 0.1f)
                      , _panelCardDetail.ScaleTo(_playerGroup.cardOpenHoldersCatched[i].localScale, 0.1f, LeanTweenType.notUsed))
            .Sequential(_panelCardDetail.Show(_cardInfo));
        }
        yield return(1f);
    }
コード例 #9
0
    void RefreshAllPlayerGroupUINow()
    {
        if (pokerGamePlayData.currentGameState == PokerGamePlayData.GameState.STATUS_WAIT_FOR_PLAYER)
        {
            for (int i = 0; i < pokerGamePlayData.listSessionIdOnChair.Count; i++)
            {
                if (pokerGamePlayData.listSessionIdOnChair[i] < 0)                 // ghế trống
                {
                    continue;
                }
                for (int j = 0; j < pokerGamePlayData.listGlobalPlayerData.Count; j++)
                {
                    if (pokerGamePlayData.listSessionIdOnChair[i] == pokerGamePlayData.listGlobalPlayerData[j].sessionId)
                    {
                        Poker_GamePlay_Manager.instance.listPlayerGroup[i].InitData(pokerGamePlayData.listGlobalPlayerData[j]);
                        break;
                    }
                }
            }
        }
        else           // đang chơi thì hiện thông tin người chơi và chia bài cho họ
        {
            List <int> _listIndexChairPlaying = new List <int>();
            Vector3    _pos = Vector3.zero;
            Quaternion _rot = Quaternion.identity;
            PanelCardDetailController _card = null;
            for (int i = 0; i < pokerGamePlayData.listPlayerPlayingData.Count; i++)
            {
                _listIndexChairPlaying.Add(pokerGamePlayData.listPlayerPlayingData[i].indexChair);
                int _indexChair = pokerGamePlayData.listPlayerPlayingData[i].indexChair;

                Poker_PlayerGroup _playerGroup = Poker_GamePlay_Manager.instance.listPlayerGroup[_indexChair];
                _playerGroup.InitData(pokerGamePlayData.listPlayerPlayingData[i].userData);
                _playerGroup.ShowPlayerState(pokerGamePlayData.listPlayerPlayingData[i].currentState, true);
                if (pokerGamePlayData.listPlayerPlayingData[i].turnBet > 0)
                {
                    _playerGroup.myPanelBet.SetBet(pokerGamePlayData.listPlayerPlayingData[i].turnBet, true);
                    _playerGroup.myPanelBet.Show();
                }

                if (pokerGamePlayData.listPlayerPlayingData[i].currentState != PokerGamePlayData.Poker_PlayerPlayingData.State.STATEPOKER_FOLD)
                {
                    for (int j = 0; j < _playerGroup.cardCoverHoldersCatched.Count; j++)
                    {
                        _pos = _playerGroup.cardCoverHoldersCatched[j].position;
                        _rot = _playerGroup.cardCoverHoldersCatched[j].rotation;

                        _card = LeanPool.Spawn(cardPrefab, Vector3.zero, Quaternion.identity, Poker_GamePlay_Manager.instance.panelCardContainer).GetComponent <PanelCardDetailController>();
                        _card.transform.position = _pos;
                        _card.transform.rotation = _rot;
                        _card.ResizeAgain(Poker_GamePlay_Manager.instance.sizeCard.x, Poker_GamePlay_Manager.instance.sizeCard.y);
                        _playerGroup.ownCardPoolManager.AddObject(_card);
                    }
                }

                if (i == 0)
                {
                    panelRoleSmallBlind.gameObject.SetActive(true);
                    panelRoleSmallBlind.position = _playerGroup.myPanelBet.imgIconChip.transform.position;
                }
                else if (i == 1)
                {
                    panelRoleBigBlind.gameObject.SetActive(true);
                    panelRoleBigBlind.position = _playerGroup.myPanelBet.imgIconChip.transform.position;
                }
            }
            // --- hiện các thông tin người chơi đang chờ --- //
            List <int> _listIndexChairWaiting = new List <int>();
            for (int i = 0; i < pokerGamePlayData.numberChairs; i++)
            {
                if (!_listIndexChairPlaying.Contains(i))
                {
                    _listIndexChairWaiting.Add(i);
                }
            }
            for (int i = 0; i < _listIndexChairWaiting.Count; i++)
            {
                int            _indexChair = _listIndexChairWaiting[i];
                short          _sessionId  = pokerGamePlayData.listSessionIdOnChair[_indexChair];
                UserDataInGame _userData   = pokerGamePlayData.GetUserDataInGameFromListGlobal(_sessionId);
                if (_userData == null)
                {
                    continue;
                }

                Poker_PlayerGroup _playerGroup = Poker_GamePlay_Manager.instance.listPlayerGroup[_indexChair];
                _playerGroup.InitAsIncognito(_userData);
            }
        }
    }
コード例 #10
0
    IEnumerator DoActionShowResult()
    {
        if (currentGameState == GameState.ShowResult)
        {
            Debug.LogError("Đang show result rồi");
            yield break;
        }

        DragonTigerCasinoData.DragonTiger_Result_Data _resultData = dragonTigerCasinoData.processResultData[0];

        currentGameState = GameState.ShowResult;

        // ---- Merge dữ liệu ---- //
        int _cardDragon = ((int)_resultData.cardDragon) % 13;
        int _cardTiger  = ((int)_resultData.cardTiger) % 13;

        if (_cardDragon > _cardTiger)
        {
            dragonTigerCasinoData.listHistory.Add((int)IndexBet.Dragon);
        }
        else if (_cardDragon < _cardTiger)
        {
            dragonTigerCasinoData.listHistory.Add((int)IndexBet.Tiger);
        }
        else
        {
            dragonTigerCasinoData.listHistory.Add((int)IndexBet.Tie);
        }
        dragonTigerCasinoData.CheckListHistoryAgain();

        dragonTigerCasinoData.ResetTableBet();
        dragonTigerCasinoData.nextTimeToShowResult = _resultData.nextTimeToShowResult;

        DataManager.instance.userData.gold = _resultData.GOLD;
        DataManager.instance.userData.SetTotalBetInGameInfo(IMiniGameInfo.Type.DragonTigerCasino, 0);

        if (_resultData.caseCheck == 1)
        {
            AchievementDetail _achievementDetail = DataManager.instance.achievementData.GetAchievementDetail(IMiniGameInfo.Type.DragonTigerCasino);
            if (_achievementDetail != null)
            {
                if (_resultData.goldProcess > 0)
                {
                    _achievementDetail.countWin = _resultData.achievement;
                }
                else if (_resultData.goldProcess < 0)
                {
                    _achievementDetail.countLose = _resultData.achievement;
                }
                else
                {
                    _achievementDetail.countDraw = _resultData.achievement;
                }
            }
            else
            {
                Debug.LogError(">>> _achievementDetail is null");
            }
        }
        else if (_resultData.caseCheck == -88)
        {
            PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kError)
                                                     , MyLocalize.GetString("Error/GamePlay_BetError_0")
                                                     , _resultData.caseCheck.ToString()
                                                     , MyLocalize.GetString(MyLocalize.kOk));
        }
        // ----------------------- //

        if (callbackManager != null && callbackManager.onStartShowResult != null)
        {
            callbackManager.onStartShowResult();
        }

        ICardInfo _cardDragonInfo = GetCardInfo(_resultData.cardDragon);

        if (_cardDragonInfo == null)
        {
            Debug.LogError("_cardDragonInfo is null");
        }
        ICardInfo _cardTigerInfo = GetCardInfo(_resultData.cardTiger);

        if (_cardTigerInfo == null)
        {
            Debug.LogError("_cardTigerInfo is null");
        }

        float _timeShow = 0.2f;

        yield return(CoroutineChain.Start
                     .Sequential(cardDragon.Move(cardDragonShowPlaceHolder.position, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card)
                                 , cardTiger.Move(cardTigerShowPlaceHolder.position, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card))
                     .Sequential(cardDragon.ScaleTo(Vector2.one * 2f, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card)
                                 , cardTiger.ScaleTo(Vector2.one * 2f, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card))
                     .Parallel(cardDragon.Show(_cardDragonInfo, myAudioInfo.sfx_Card)
                               , cardTiger.Show(_cardTigerInfo, myAudioInfo.sfx_Card)));

        yield return(Yielders.Get(1f));

        Vector2 _start      = Vector2.zero;
        bool    _isFinished = false;

        if (_cardDragon > _cardTiger)
        {
            _start = showEffWinGold_Dragon_PlaceHolder.position;
            yield return(cardTiger.ScaleTo(Vector2.one, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card));

            cardTiger.SetUpShadow(true);
            panelTableBetTiger.SetShadow(true);
            panelTableBetTie.SetShadow(true);

            MyAudioManager.instance.PlaySfx(myAudioInfo.sfx_ShowResult);
            cardDragon.SetUpLoopHighlight(() => {
                _isFinished = true;
            });
            yield return(new WaitUntil(() => _isFinished));

            yield return(cardDragon.ScaleTo(Vector2.one, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card));
            // panelTableBetDragon.SetUpHighlight();
        }
        else if (_cardDragon < _cardTiger)
        {
            _start = showEffWinGold_Tiger_PlaceHolder.position;
            yield return(cardDragon.ScaleTo(Vector2.one, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card));

            cardDragon.SetUpShadow(true);

            panelTableBetDragon.SetShadow(true);
            panelTableBetTie.SetShadow(true);

            MyAudioManager.instance.PlaySfx(myAudioInfo.sfx_ShowResult);
            cardTiger.SetUpLoopHighlight(() => {
                _isFinished = true;
            });
            yield return(new WaitUntil(() => _isFinished));

            yield return(cardTiger.ScaleTo(Vector2.one, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card));
            // panelTableBetTiger.SetUpHighlight();
        }
        else
        {
            _start = showEffWinGold_Tie_PlaceHolder.position;
            yield return(CoroutineChain.Start
                         .Parallel(cardDragon.ScaleTo(Vector2.one, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card)
                                   , cardTiger.ScaleTo(Vector2.one, _timeShow, LeanTweenType.easeInSine, myAudioInfo.sfx_Card)));

            panelTableBetDragon.SetShadow(true);
            panelTableBetTiger.SetShadow(true);

            MyAudioManager.instance.PlaySfx(myAudioInfo.sfx_ShowResult);
            panelTableBetTie.SetUpHighlight(() => {
                _isFinished = true;
            });
            yield return(new WaitUntil(() => _isFinished));
        }

        if (_resultData.betUnit > 0)
        {
            Vector2 _end = iconGoldHolder.position;
            StartCoroutine(MyConstant.DoActionShowPopupWinGold(panelBonusGoldPrefab, effectPoolManager, myCanvas.transform
                                                               , showEffPanelGoldBonusEffPlaceHolder.position, 1.1f, _resultData.betUnit
                                                               , () => {
                panelUserInGame.RefreshGoldInfo();
            }));
            yield return(StartCoroutine(MyConstant.DoActionShowEffectGoldFly(goldPrefab, effectPoolManager, sortingLayerManager.sortingLayerInfo_GoldObject
                                                                             , _start, _end, 10, ratioScale, 0.8f
                                                                             , () => {
                MyAudioManager.instance.PlaySfx(GameInformation.instance.globalAudioInfo.sfx_Gold);
            })));
        }

        panelTableBetDragon.SetShadow(false);
        panelTableBetTie.SetShadow(false);
        panelTableBetTiger.SetShadow(false);

        cardDragon.SetUpShadow(false);
        cardTiger.SetUpShadow(false);

        yield return(CoroutineChain.Start
                     .Parallel(cardDragon.Move(posistionSpawnCard, 0.3f, LeanTweenType.easeInSine, myAudioInfo.sfx_Card),
                               cardTiger.Move(posistionSpawnCard, 0.3f, LeanTweenType.easeInSine, myAudioInfo.sfx_Card)));

        cardDragon.SelfDestruction();
        cardDragon = null;
        cardTiger.SelfDestruction();
        cardTiger = null;

        if (callbackManager != null && callbackManager.onEndShowResult != null)
        {
            callbackManager.onEndShowResult();
        }

        _resultData = null;
        dragonTigerCasinoData.processResultData.RemoveAt(0);

        SetBetAgain();
    }