public PlayerDecisionResponse GetPlayerDecision(Player player, double minimumBet, DecisionType[] availableOptions) { PlayerDecisionResponse pd = new PlayerDecisionResponse(); pd.Type = DecisionType.TimeOutAndFold; PlayerDecisionRequest pdr = new PlayerDecisionRequest(); pdr.RequestId = Guid.NewGuid().ToString(); pdr.MinimumBet = minimumBet; pdr.AvailableOptions = availableOptions; AddToOutgoingMessageQueue(GameMessageType.Client_ReceivePlayerDecisionRequest, pdr, player.ToList()); int waitingFor = 0; while (waitingFor < Table.MAX_DECISION_TIME) { if (m_dicStorage.ContainsKey(pdr.RequestId)) { pd = (PlayerDecisionResponse)m_dicStorage[pdr.RequestId]; break; } //-- Perhaps the player has disconnected from the table if (Table.IsPlayerSittingAtTable(player.Name) == false) { pd.Type = DecisionType.DisconnectAndFold; break; } m_tcGameFlow.WaitHereFor(100); waitingFor += 100; } return pd; }
public void SendJoinTableResponse(Player recipient, JoinTableResponse jtres) { AddToOutgoingMessageQueue(GameMessageType.Client_ReceiveJoinTableResponse, jtres, recipient.ToList()); }
public void SendPersonalAnnouncement(Player recipient, string message) { AddToOutgoingMessageQueue(GameMessageType.Client_ReceivePersonalAnnouncement, message, recipient.ToList()); }
public void SendForcedTableDisconnectionNotice(Player recipient, string reason) { ForcedTableLeaveNotice fln = new ForcedTableLeaveNotice(); fln.TableId = Table.TableId; fln.Message = reason; fln.PlayerName = recipient.Name; AddToOutgoingMessageQueue(GameMessageType.Client_ReceiveForcedTableLeaveNotice, fln, recipient.ToList()); }