public Playability GetPlayabilityStatus(CardPlayerData cpd) { if (!cpd.HasUser) { return(Playability.NoPlayer); } int scrapAmount = cpd.GetScrapAmount(); if (cpd.HasUserInGame) { if (scrapAmount <= 0) { return(Playability.RanOutOfScrap); } } else { if (scrapAmount < MinBuyIn) { return(Playability.NotEnoughBuyIn); } if (scrapAmount > MaxBuyIn) { return(Playability.TooMuchBuyIn); } } return(Playability.OK); }
protected override int GetAvailableInputsForPlayer(CardPlayerData playerData) { PokerInputOption pokerInputOption = PokerInputOption.None; if (playerData == null || isWaitingBetweenTurns) { return((int)pokerInputOption); } if (!base.HasRoundInProgress) { if (!playerData.LeftRoundEarly && playerData.Cards.Count > 0 && !playerData.SendCardDetails) { pokerInputOption |= PokerInputOption.RevealHand; } return((int)pokerInputOption); } CardPlayerData activePlayer; if (!TryGetActivePlayer(out activePlayer) || playerData != activePlayer) { return((int)pokerInputOption); } int scrapAmount = playerData.GetScrapAmount(); if (scrapAmount > 0) { pokerInputOption |= PokerInputOption.AllIn; pokerInputOption |= PokerInputOption.Fold; int currentBet = GetCurrentBet(); if (playerData.betThisTurn >= currentBet) { pokerInputOption |= PokerInputOption.Check; } if (currentBet > playerData.betThisTurn && scrapAmount >= currentBet - playerData.betThisTurn) { pokerInputOption |= PokerInputOption.Call; } if (scrapAmount >= GetCurrentMinRaise(playerData)) { pokerInputOption = ((BiggestRaiseThisTurn != 0) ? (pokerInputOption | PokerInputOption.Raise) : (pokerInputOption | PokerInputOption.Bet)); } } return((int)pokerInputOption); }