Dominion.PlayerState.RequestPlayerTopDeckCardFromDiscard C# (CSharp) Method

RequestPlayerTopDeckCardFromDiscard() private method

private RequestPlayerTopDeckCardFromDiscard ( GameState gameState, bool isOptional ) : Dominion.Card
gameState GameState
isOptional bool
return Dominion.Card
        internal Card RequestPlayerTopDeckCardFromDiscard(GameState gameState, bool isOptional)
        {
            if (this.Discard.Count == 0)
                return null;

            Card cardTypeToTopDeck = this.actions.GetCardFromDiscardToTopDeck(gameState, isOptional);
            if (cardTypeToTopDeck == null && !isOptional)
            {
                throw new Exception("Must choose a card to top deck");
            }

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

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

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

Usage Example

Beispiel #1
0
 public override void OverpayOnPurchase(PlayerState currentPlayer, GameState gameState, int overpayAmount)
 {
     for (int i = 0; i < overpayAmount; ++i)
     {
         currentPlayer.RequestPlayerTopDeckCardFromDiscard(gameState, isOptional: false);
     }
 }
All Usage Examples Of Dominion.PlayerState::RequestPlayerTopDeckCardFromDiscard
PlayerState