public void RefreshUIPanelListHistory() { if (AnimalRacing_GamePlay_Manager.instance.animalRacingData == null) { Debug.LogError(">>> animalRacingData is NULL"); return; } if (myCurrentState != State.Show) { Debug.LogError(">>> Không ở trong trang đặt cược nên ko RefreshUIPanelCurrentScore"); return; } if (AnimalRacing_GamePlay_Manager.instance.animalRacingData.listHistoryData != null) { betHistoryController.ResetData(); for (int i = 0; i < AnimalRacing_GamePlay_Manager.instance.animalRacingData.listHistoryData.Count; i++) { AnimalRacingData.HistoryData _tmpHistory = AnimalRacing_GamePlay_Manager.instance.animalRacingData.listHistoryData[i]; betHistoryController.SetDataHistory(_tmpHistory.animalType, _tmpHistory.score, i); } } }
///<summary> /// DoActionShowResult: Show màn hình cho thú chạy ///</summary> IEnumerator DoActionShowResultScreen() { if (currentState == State.ShowResult) { Debug.LogError("Đang show result rồi"); yield break; } currentState = State.ShowResult; bool _isFinished = false; shadowChangeScreen.gameObject.SetActive(true); Color _c = shadowChangeScreen.color; _c.a = 0f; shadowChangeScreen.color = _c; LeanTween.alpha(shadowChangeScreen.rectTransform, 1f, 0.1f).setOnComplete(() => { _isFinished = true; }); yield return(new WaitUntil(() => _isFinished)); if (callbackManager != null && callbackManager.onStartShowResult != null) { callbackManager.onStartShowResult(); } yield return(Yielders.EndOfFrame); betManager.Hide(); resultManager.gameObject.SetActive(true); yield return(Yielders.EndOfFrame); resultManager.Show(); yield return(Yielders.Get(0.3f)); _isFinished = false; LeanTween.alpha(shadowChangeScreen.rectTransform, 0f, 0.2f).setOnComplete(() => { shadowChangeScreen.gameObject.SetActive(false); _isFinished = true; }); yield return(new WaitUntil(() => _isFinished)); if (animalRacingData.currentResultData == null) { yield return(new WaitUntil(() => animalRacingData.currentResultData != null)); } // ---- Merge dữ liệu ---- // #if TEST Debug.Log(">>> AnimalIndexWin: " + animalRacingData.currentResultData.animalWin); #endif if (animalRacingData.currentResultData.valueCheck == 1) { for (int i = 0; i < animalRacingData.currentResultData.listGoldUpdate.Count; i++) { if (animalRacingData.currentResultData.listGoldUpdate[i].caseCheck == 1) { // --- Cập nhật số tiền hiện có cho chính mình --- // if (animalRacingData.currentResultData.listGoldUpdate[i].sessionId == DataManager.instance.userData.sessionId) { DataManager.instance.userData.gold = animalRacingData.currentResultData.listGoldUpdate[i].GOLD; AchievementDetail _achievementDetail = DataManager.instance.achievementData.GetAchievementDetail(IMiniGameInfo.Type.AnimalRacing); if (_achievementDetail != null) { if (animalRacingData.currentResultData.listGoldUpdate[i].goldProcess > 0) { _achievementDetail.countWin = animalRacingData.currentResultData.listGoldUpdate[i].achievement; } else if (animalRacingData.currentResultData.listGoldUpdate[i].goldProcess < 0) { _achievementDetail.countLose = animalRacingData.currentResultData.listGoldUpdate[i].achievement; } else { _achievementDetail.countDraw = animalRacingData.currentResultData.listGoldUpdate[i].achievement; } } else { Debug.LogError(">>> _achievementDetail is null"); } continue; } for (int j = 0; j < animalRacingData.listOtherPlayerData.Count; j++) { if (animalRacingData.listOtherPlayerData[j].IsEqual(animalRacingData.currentResultData.listGoldUpdate[i].sessionId)) { animalRacingData.listOtherPlayerData[j].gold = animalRacingData.currentResultData.listGoldUpdate[i].GOLD; if (animalRacingData.currentResultData.listGoldUpdate[i].goldProcess > 0) { animalRacingData.listOtherPlayerData[j].win = animalRacingData.currentResultData.listGoldUpdate[i].achievement; } else if (animalRacingData.currentResultData.listGoldUpdate[i].goldProcess < 0) { animalRacingData.listOtherPlayerData[j].lose = animalRacingData.currentResultData.listGoldUpdate[i].achievement; } else { animalRacingData.listOtherPlayerData[j].tie = animalRacingData.currentResultData.listGoldUpdate[i].achievement; } break; } } } else if (animalRacingData.currentResultData.listGoldUpdate[i].caseCheck == -88) { if (animalRacingData.currentResultData.listGoldUpdate[i].sessionId == DataManager.instance.userData.sessionId) { DataManager.instance.userData.gold = animalRacingData.currentResultData.listGoldUpdate[i].GOLD; continue; } for (int j = 0; j < animalRacingData.listOtherPlayerData.Count; j++) { if (animalRacingData.listOtherPlayerData[j].IsEqual(animalRacingData.currentResultData.listGoldUpdate[i].sessionId)) { animalRacingData.listOtherPlayerData[j].gold = animalRacingData.currentResultData.listGoldUpdate[i].GOLD; break; } } } } } else { if (animalRacingData.currentResultData.valueCheck == -99) { PopupManager.Instance.CreatePopupMessage(MyLocalize.GetString(MyLocalize.kError) , MyLocalize.GetString(MyLocalize.kConnectionError) , string.Empty , MyLocalize.GetString(MyLocalize.kOk)); } } // --- Cập nhật lại history và tỉ lệ cược mới --- // AnimalRacingData.HistoryData _tmpHistoryData = new AnimalRacingData.HistoryData(); _tmpHistoryData.animalType = animalRacingData.currentResultData.animalWin; _tmpHistoryData.score = animalRacingData.listCurrentScore[(int)_tmpHistoryData.animalType]; animalRacingData.listHistoryData.Insert(0, _tmpHistoryData); animalRacingData.CheckListHistoryAgain(); animalRacingData.listCurrentScore = animalRacingData.currentResultData.newListCurrentScore; animalRacingData.listGlobalBets = animalRacingData.currentResultData.newListGlobalBet; animalRacingData.listMyBets = animalRacingData.currentResultData.newListMyBet; // ----------------------------------------------- // callbackManager.onStartSetUpAfterShowResult = betManager.SetUpAfterShowResult; callbackManager.onEndSetUpAfterShowResult = () => { animalRacingData.currentResultData = null; currentState = State.Bet; }; // ----------------------- // yield return(null); // #if TEST // Debug.Log(">>> ShowResultScreen"); // #endif yield return(resultManager.StartRun()); _isFinished = false; shadowChangeScreen.gameObject.SetActive(true); _c = shadowChangeScreen.color; _c.a = 0f; shadowChangeScreen.color = _c; LeanTween.alpha(shadowChangeScreen.rectTransform, 1f, 0.1f).setOnComplete(() => { resultManager.Hide(); animalRacingData.nextTimeToShowResult = animalRacingData.currentResultData.nextTimeToShowResult; if (callbackManager != null && callbackManager.onEndShowResult != null) { callbackManager.onEndShowResult(); } ShowBetScreenAgain(); LeanTween.alpha(shadowChangeScreen.rectTransform, 0f, 0.1f).setOnComplete(() => { shadowChangeScreen.gameObject.SetActive(false); _isFinished = true; }); }); yield return(new WaitUntil(() => _isFinished)); }