Dominion.PlayerState.RequestPlayerTopDeckCardFromRevealed C# (CSharp) Method

RequestPlayerTopDeckCardFromRevealed() private method

private RequestPlayerTopDeckCardFromRevealed ( GameState gameState, bool isOptional ) : Dominion.Card
gameState GameState
isOptional bool
return Dominion.Card
        internal Card RequestPlayerTopDeckCardFromRevealed(GameState gameState, bool isOptional)
        {
            Card cardTypeToTopDeck = this.actions.GetCardFromRevealedCardsToTopDeck(gameState, isOptional);
            if (cardTypeToTopDeck == null && !isOptional)
            {
                throw new Exception("Must choose a card to top deck");
            }

            if (cardTypeToTopDeck == null)
            {
                return null;
            }

            Card cardToTopDeck = this.cardsBeingRevealed.RemoveCard(cardTypeToTopDeck);
            if (cardToTopDeck == null)
            {
                throw new Exception("Selected a card that wasn't being revealed");
            }

            this.gameLog.PlayerTopDeckedCard(this, cardToTopDeck);
            this.deck.AddCardToTop(cardToTopDeck);
            return cardToTopDeck;
        }

Usage Example

Beispiel #1
0
        public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState)
        {
            currentPlayer.RevealCardsFromDeck(4);

            while (currentPlayer.cardsBeingRevealed.Any())
            {
                if (currentPlayer.RequestPlayerTopDeckCardFromRevealed(gameState, true) == null)
                {
                    break;
                }
            }

            currentPlayer.MoveRevealedCardsToDiscard(gameState);
        }
PlayerState