public void DoSettlement() { //執行結算 NowStatus = SicBoGameStatus.ShowWinArea; //切換狀態 WaitTimer = 0.0f; //設定計時器 SoundControl.PlayResultSound(RouletteTurnControl.RouletteDiceNumber, RouletteTurnControl.Roulette4DiceNumber); //播放音效 BetAreaControl.InitPayForWho(); //初始化派彩對象 BetAreaControl.CheckPayForWho(); //確認派彩對象 WinAreaControl.DetermineWinArea(); //判斷得獎區塊 //更新百局名單 RecentHundred.UpdateHundredArray(RouletteTurnControl.RouletteDiceNumber[0], RouletteTurnControl.RouletteDiceNumber[1], RouletteTurnControl.RouletteDiceNumber[2], RouletteTurnControl.Roulette4DiceNumber); LotteryRecord.UpdateLotteryRecord(RouletteTurnControl.RouletteDiceNumber[0], RouletteTurnControl.RouletteDiceNumber[1], RouletteTurnControl.RouletteDiceNumber[2], RouletteTurnControl.Roulette4DiceNumber); //更新未開局數 if (Update3and4[0]) { ButtonControl.UpdateNowAnyTriple = true; } else { ButtonControl.LotteryRecord[0] = 0; ButtonControl.UpdateNowAnyTriple = true; } if (Update3and4[1]) { ButtonControl.UpdateNowAnyQuadruple = true; } else { ButtonControl.LotteryRecord[1] = 0; ButtonControl.UpdateNowAnyQuadruple = true; } }
void DoReturnTable() { //恢復到桌檯畫面 CircularControl.transform.localPosition = new Vector3(0, 257, 0); //輪盤歸位 CircularControl.SelfPosition.ResetToBeginning(); CircularControl.SelfPosition.enabled = false; //TweenPosition關閉並初始化 CircularControl.RouletteScreenPanel.alpha = 0.0f; //輪盤區隱藏 CircularControl.MaskPanel.SetActive(false); //遮罩隱藏 CircularControl.MessageText.transform.localScale = Vector3.one; //調整訊息文字 CircularControl.MessageText.transform.localRotation = Quaternion.Euler(Vector3.zero); //調整訊息文字 RouletteTurnControl.Roulette4Sprite.transform.localScale = Vector3.zero; //隱藏四號輪盤 RouletteTurnControl.RouletteShadow.enabled = false; //隱藏輪盤陰影 WinAreaControl.DoFlashing(); //顯示得獎區塊 NowStatus = SicBoGameStatus.Payout; //設定狀態 - 派彩中 WaitTimer = 2.0f; //設定等待時間 }
// Update is called once per frame void Update() { if (FristTimer > 0) { FristTimer -= Time.deltaTime; if (FristTimer < 0.0f) { FristTimer = 0.0f; } } if (SicBoManager.SetTableType) { //進入遊戲先執行桌檯背景與籌碼設定 SicBoManager.SetTableType = false; DoSetTableType(); } if (FristTimer == 0.0f) { switch (NowStatus) { case SicBoGameStatus.Idle: //閒置 break; case SicBoGameStatus.NewRound: //新局開始 case SicBoGameStatus.WaitBet: //等待押注 (通常是Buyin時會收到此狀態) if (GetStatusUpdate) { GetStatusUpdate = false; if (SicBoManager.BuyInFrist) { //如果是進遊戲的第一個判斷 不管是新局開始或等待押注 都同一個處理 SicBoManager.BuyInFrist = false; if (StatusMSec / 1000 > 5.0f) { //如果等待投注時間 > 5秒 正常開放 BetAreaControl.OpenBet(); //開放投注 CircularControl.FristBetCountdownSetting(StatusMSec / 1000); //圓形顯示器 首次倒數設定 NowGamingPanel.SetActive(false); //目前正在遊戲中 遮罩關閉 } else //等待投注時間 <= 5秒 { //不做事 等待下一輪 } } else //第二次判斷以後 { if (NowStatus == SicBoGameStatus.NewRound) { if (NowGamingPanel.activeSelf) { NowGamingPanel.SetActive(false); //如果遮罩開啟中 遮罩關閉 } CircularControl.BetCountdownSetting(StatusMSec / 1000); //圓形顯示器 倒數設定 } else if (NowStatus == SicBoGameStatus.WaitBet) { //第二次判斷以後 通常不會給 WaitBet 所以不做事 } } } break; case SicBoGameStatus.StopBet: //停止押注 if (SicBoManager.BuyInFrist) { //如果是進遊戲的第一個判斷 持續遮擋畫面 SicBoManager.BuyInFrist = false; GetStatusUpdate = false; } else if (GetStatusUpdate && BetAreaControl.BetData_Hold.Count == 0) { //如果沒有投注資料待處理 GetStatusUpdate = false 並開始執行開獎動畫 GetStatusUpdate = false; PayoutResult.CheckBet(); //紀錄押注結果 RouletteTurnControl.RouletteTurnStart(); //開始移動輪盤 CircularControl.MoveCircularScreen(); //切換成開獎模式 if (ButtonControl.AutoTimes > 0) //如果在自動模式下 { BetAreaControl.CheckAutoBet(); //記錄目前押注區與金額 已利自動押注 } else //自動次數 = 0 { BetAreaControl.AutoBetArea.Clear(); //清空自動押注 } } break; case SicBoGameStatus.ShowAwards: //開獎中 if (GetStatusUpdate) { GetStatusUpdate = false; RouletteTurnControl.StartShowAwsrds = true; //輪盤開始開獎 } break; case SicBoGameStatus.ShowWinArea: //顯示中獎區域 if (WaitTimer != 0.0f) { WaitTimer -= Time.deltaTime; if (WaitTimer < 0.0f) { WaitTimer = 0.0f; DoReturnTable(); //恢復到桌檯畫面 } } break; case SicBoGameStatus.Payout: //派彩中 if (WaitTimer > 0.0f) { WaitTimer -= Time.deltaTime; if (WaitTimer < 0.0f) { WaitTimer = 0.0f; CircularControl.MessageText.spriteName = "text_balance"; //顯示訊息文字 - 派彩中 BetAreaControl.DoPayout(); //開始派彩 籌碼移動 CircularControl.MessageSound.clip = CircularControl.MessageClip[11].clip; CircularControl.MessageSound.Play(); //播放音效 NowStatus = SicBoGameStatus.ShowPayoutResult; //設定狀態 - 顯示派彩結果 WaitTimer = 2.3f; //設定等待時間 } } break; case SicBoGameStatus.ShowPayoutResult: //顯示派彩結果 if (WaitTimer > 0.0f) { WaitTimer -= Time.deltaTime; if (WaitTimer < 0.0f) { WaitTimer = 0.0f; WinAreaControl.CloseFlashing(); //關閉得獎區塊閃爍 CircularControl.MessageText.spriteName = "text_wait"; //顯示訊息文字 - 等待中 CircularControl.MessageSound.clip = CircularControl.MessageClip[12].clip; CircularControl.MessageSound.Play(); //播放音效 PayoutResult.ShowPanel(); //顯示派彩結果 ButtonControl.SetMoney(SicBoManager.NoitfyAwardData.m_ui64GameMoney); //設定金幣與押注 } } break; } } }