/// 回合结束,下一回合 private void nextRound() { int curIndex = -1; for (int i = 0; i < roomPlayers.Count; ++i) { if (curRoundPlayer == roomPlayers[i]) { curIndex = i; break; } } curRoundPlayer = roomPlayers[(curIndex + 1) % roomPlayers.Count]; roundStateEnum = RoundStateEnum.Ready; }
private void onFlipCard(CardControl control) { if (curFlipCard == null) { curFlipCard = control; curFlipCard.Flip(); roundStateEnum = RoundStateEnum.FlipAnimal; chooseTime = 0; // 如果是 驴,需要从银行各发[100]给玩家 if (curFlipCard.cardData.GetData <Animals>().Id == RoomData.SendCoinCardId) { sendCoinForDonkey(); sendCardControl.MoveCardPosEnum(curFlipCard.cardData.UUID, RoomCardPosEnum.WillDestroy); curFlipCard = null; nextRound(); return; } List <PlayerControl> hasSameAnimalPlayers = getSameAnimalPlayers(); if (hasSameAnimalPlayers.Count == 0) { curSaleEnum = SaleCardEnum.SaleAnimal; } else { // TODO 需要做成玩家选择使用那种方式拍卖 curSaleEnum = Random.value < 0.5f ? SaleCardEnum.SaleAnimal : SaleCardEnum.BehindBusiness; } CustomDebug.Log("准备拍卖模式:" + curSaleEnum.ToString()); if (curSaleEnum == SaleCardEnum.BehindBusiness) { behindBusinessPlayer = hasSameAnimalPlayers[Random.Range(0, hasSameAnimalPlayers.Count)]; } else { // 通知其他玩家出价 RoomData.CurBidPrice = 0; SignalManager.Instance.Create <NotifyBidSignal>().Dispatch(); } } else { Debug.LogWarning("本回合已翻牌,无法继续翻牌"); } }
public void OnbuttonPressed() { //print("End button pressed"); button.interactable = false; //anim.Play(); //button.interactable = false; //timerNumber.text = "00"; switch (roundState) { case RoundStateEnum.PrepareState: FindObjectOfType <PrepareStateEvent>().RoundEndInvoke(); roundState = RoundStateEnum.ProposalState; break; case RoundStateEnum.ProposalState: FindObjectOfType <ProposalStateEvent>().RoundEndInvoke(); roundState = RoundStateEnum.NegociateState; break; case RoundStateEnum.NegociateState: FindObjectOfType <VoteState>().RoundEndInvoke(); roundState = RoundStateEnum.VoteState; break; case RoundStateEnum.VoteState: FindObjectOfType <AccountState>().RoundEndInvoke(); roundState = RoundStateEnum.AccountState; break; case RoundStateEnum.AccountState: FindObjectOfType <PrepareStateEvent>().RoundEndInvoke(); roundState = RoundStateEnum.PrepareState; break; default: break; } }
private PokerGame(AbstractDealer dealer, PokerTable table) { Observer = new PokerGameObserver(this); m_Dealer = dealer; Table = table; Params = table.Params; m_State = GameStateEnum.Init; m_RoundState = RoundStateEnum.Cards; }
private void AdvanceToNextRoundState() { if (m_State != GameStateEnum.Playing) return; if (m_RoundState == RoundStateEnum.Cumul) return; m_RoundState = (RoundStateEnum)(((int)m_RoundState) + 1); StartRound(); }
private void AdvanceToNextRound() { if (m_State != GameStateEnum.Playing) return; if (Table.Round == RoundTypeEnum.River) AdvanceToNextGameState(); //Advancing to Showdown State else { m_RoundState = RoundStateEnum.Cards; Table.ChangeCurrentPlayerTo(Table.DealerSeat); Table.Round = (RoundTypeEnum)(((int)Table.Round) + 1); StartRound(); } }
private void AdvanceToNextGameState() { if (m_State == GameStateEnum.End) return; m_State = (GameStateEnum)(((int)m_State) + 1); switch (m_State) { case GameStateEnum.Init: break; case GameStateEnum.WaitForPlayers: TryToBegin(); break; case GameStateEnum.WaitForBlinds: Table.HigherBet = 0; //If we got all the blinds, what are we waiting for ?! if (GameTable.TotalBlindNeeded == 0) AdvanceToNextGameState(); //Advancing to Playing State break; case GameStateEnum.Playing: Table.Round = RoundTypeEnum.Preflop; m_RoundState = RoundStateEnum.Cards; StartRound(); break; case GameStateEnum.Showdown: ShowAllCards(); break; case GameStateEnum.DecideWinners: DecideWinners(); break; case GameStateEnum.DistributeMoney: DistributeMoney(); StartANewGame(); break; case GameStateEnum.End: Observer.RaiseEverythingEnded(); break; } }