private RequestPlayerTrashRevealedCard ( |
||
gameState | ||
acceptableCard | CardPredicate | |
return | Dominion.Card |
internal Card RequestPlayerTrashRevealedCard(GameState gameState, CardPredicate acceptableCard)
{
if (!this.cardsBeingRevealed.AnyWhere(acceptableCard))
{
return null;
}
Card cardtoTrash = this.actions.GetCardFromRevealedCardsToTrash(gameState, acceptableCard);
if (cardtoTrash == null)
{
throw new Exception("Player must choose a card to trash");
}
if (!acceptableCard(cardtoTrash))
{
throw new Exception("Card did not meet constraint");
}
this.MoveRevealedCardToTrash(cardtoTrash, gameState);
return cardtoTrash;
}
private static void AttackAction(PlayerState currentPlayer, PlayerState otherPlayer, GameState gameState) { otherPlayer.RevealCardsFromDeck(2, gameState); otherPlayer.RequestPlayerTrashRevealedCard(gameState, card => Card.DoesCardCost3To6(card, otherPlayer)); otherPlayer.MoveRevealedCardsToDiscard(gameState); }