public void ClearUI() { // sieutoc btSieuToc.SetupAll(!isSieuToc); _machine.SetSpeed(isSieuToc ? 3 : 1); isAutoSpin = false; lastResult = null; StopAllCoroutines(); playLastResult = null; waitMachineFinish = null; gNotifyMoneyWin.SetActive(false); gNotifyMoneyWin.SetActive(false); gMenuContent.SetActive(false); vkTxtTotalWin.SetNumber(0); _machine.ClearUI(); if (gEvent.activeSelf) { vkEventNoticeRun.StopRunNotice(); gEvent.SetActive(false); } LoadAutoSpinState(); EnableToPlay(); }
public void HandleSpinResult(object[] data) { //setup Button auto btAutoSpin.enabled = isAutoSpin; //data string json = LitJson.JsonMapper.ToJson(data[0]); SRSSlot20LineResultSpin result = JsonUtility.FromJson <SRSSlot20LineResultSpin>(json); if (result.ResponseStatus != (int)GameResponseStatus.SUCCESS) { isAutoSpin = false; LoadAutoSpinState(); EnableToPlay(); return; } // Reset StopAnimLastResult(); SetNotifyMoney(""); vkTxtTotalWin.UpdateNumber(0); _machine.HideItemWin(); _machine.HideLineWin(); if (waitMachineFinish != null) { StopCoroutine(waitMachineFinish); } //updatejackpot jackpot = result.Jackpot; UpdateJackpot(); // spin waitMachineFinish = WaitMachineFinish(result); StartCoroutine(waitMachineFinish); }
IEnumerator PlayLastSpinResult(SRSSlot20LineResultSpin result) { while (true) { yield return(new WaitForSeconds(1.5f)); SetNotifyMoney(""); List <int> lineTemps = new List <int>(); List <int> itemWins = new List <int>(); foreach (var lineWin in result.PrizesData) { //_machine.HideItemWin(); lineTemps.Add(lineWin.LineID); itemWins.AddRange(lineWin.Items); _machine.ShowLineAndItemWin(new List <int> { lineWin.LineID }, lineWin.Items); SetNotifyMoney(lineWin.PrizeValue > 0 ? VKCommon.ConvertStringMoney(lineWin.PrizeValue) : ""); yield return(new WaitForSeconds(2.5f)); } if (result.TotalPrizeValue > 0) { SetNotifyMoney(VKCommon.ConvertStringMoney(result.TotalPrizeValue)); } _machine.ShowLineAndItemWin(lineTemps, itemWins); yield return(new WaitForSeconds(1.5f)); _machine.HideLineWin(); _machine.HideItemWin(); } }
// quay spin IEnumerator WaitMachineFinish(SRSSlot20LineResultSpin result) { _machine.StartMachineLeftToRight(result.GetSlotData()); if (!isSieuToc) { yield return(new WaitForSeconds(0.5f)); AudioAssistant.Instance.PlaySoundGame(_config.gameId, _config.audioSpin); } lastResult = result; yield return(new WaitUntil(() => !_machine.isRunning)); if (accountSpin.FreeSpin <= 0 || result.Balance > 0) { Database.Instance.UpdateUserMoney(moneyType, result.Balance); } if (result.PrizesData != null && result.PrizesData.Count > 0) { // show line win List <int> lineTemps = new List <int>(); List <int> itemWins = new List <int>(); foreach (var lineWin in result.PrizesData) { lineTemps.Add(lineWin.LineID); itemWins.AddRange(lineWin.Items); } itemWins = itemWins.Distinct().ToList(); _machine.ShowLineAndItemWin(lineTemps, itemWins); // free if (result.TotalFreeSpin > 0) { if (accountSpin.FreeSpin <= 0) { bool isShowing = true; UILayerController.Instance.ShowLayer(UILayerKey.LGameSlot20LineWin, _assetBundleConfig.name, (layer) => { ((LGameSlot20LineWin)layer).Init(LGameSlot20LineWin.Slot20LineWinType.FREE, _config, () => { isShowing = false; }, accountSpin.FreeSpin); }); yield return(new WaitUntil(() => !isShowing)); yield return(new WaitForSeconds(0.5f)); } } // free accountSpin.FreeSpin = result.TotalFreeSpin; SetNotifyFree(); if (result.IsJackpot) { if (result.TotalJackpot <= 0) { result.TotalJackpot = 1; } var jackpoValues = result.PrizesData.OrderByDescending(a => a.PrizeValue).Select(b => b.PrizeValue).ToList(); for (int i = 0; i < result.TotalJackpot; i++) { bool isShowing = true; UILayerController.Instance.ShowLayer(UILayerKey.LGameSlot20LineWin, _assetBundleConfig.name, (layer) => { ((LGameSlot20LineWin)layer).Init(LGameSlot20LineWin.Slot20LineWinType.JACKPOT, _config, () => { isShowing = false; }, jackpoValues[i]); }); yield return(new WaitUntil(() => !isShowing)); yield return(new WaitForSeconds(0.5f)); } } else { int xBet = (int)(result.TotalPrizeValue / (roomBetValue * _machine.idLineSelecteds.Count)); // bigwin if (xBet >= 25) { bool isShowing = true; UILayerController.Instance.ShowLayer(UILayerKey.LGameSlot20LineWin, _assetBundleConfig.name, (layer) => { ((LGameSlot20LineWin)layer).Init(LGameSlot20LineWin.Slot20LineWinType.PERFECT, _config, () => { isShowing = false; }, result.TotalPrizeValue); }); yield return(new WaitUntil(() => !isShowing)); yield return(new WaitForSeconds(0.5f)); } else if (xBet >= 10) { bool isShowing = true; UILayerController.Instance.ShowLayer(UILayerKey.LGameSlot20LineWin, _assetBundleConfig.name, (layer) => { ((LGameSlot20LineWin)layer).Init(LGameSlot20LineWin.Slot20LineWinType.BIGWIN, _config, () => { isShowing = false; }, result.TotalPrizeValue); }); yield return(new WaitUntil(() => !isShowing)); yield return(new WaitForSeconds(0.5f)); } } if (result.BonusGame != null && result.BonusGame.StartBonus > 0) { bonusResult = null; // show win bonus bool isShowing = true; UILayerController.Instance.ShowLayer(UILayerKey.LGameSlot20LineWin, _assetBundleConfig.name, (layer) => { ((LGameSlot20LineWin)layer).Init(LGameSlot20LineWin.Slot20LineWinType.BONUS, _config, () => { isShowing = false; }); }); yield return(new WaitUntil(() => !isShowing)); // show game bonus isShowing = true; UILayerController.Instance.ShowLayer(UILayerKey.LGameSlot20LineBonus, _assetBundleConfig.name, (layer) => { ((LGameSlot20LineBonus)layer).Init(_config, result.BonusGame, roomBetValue, () => { isShowing = false; _server.HubCallFinishBonusGame(moneyType, result.SpinID); }); }); yield return(new WaitUntil(() => !isShowing)); yield return(new WaitUntil(() => bonusResult != null)); yield return(new WaitUntil(() => bonusResult == null)); } // Money if (result.TotalPrizeValue > 0) { AudioAssistant.Instance.PlaySoundGame(_config.gameId, _config.audioWin); } SetNotifyMoney(result.TotalPrizeValue > 0 ? VKCommon.ConvertStringMoney(result.TotalPrizeValue) : ""); if (result.BonusGame != null && result.BonusGame.PrizeValue > 0) { vkTxtTotalWin.UpdateNumber(result.TotalPrizeValue + result.BonusGame.PrizeValue); } else { vkTxtTotalWin.UpdateNumber(result.TotalPrizeValue); } //yield return new WaitForSeconds(2f); } else { // ko trung gi // free accountSpin.FreeSpin = result.TotalFreeSpin; SetNotifyFree(); } waitMachineFinish = null; if (isAutoSpin) { if (result.TotalPrizeValue > 0) { yield return(new WaitForSeconds(_config.timeWaitNextAuto / _machine.speed)); } else { yield return(new WaitForSeconds(0.2f)); } ButtonSpinClickListener(); } else { EnableToPlay(); StartAnimLastResult(); } }