public override void OverpayOnPurchase(PlayerState currentPlayer, GameState gameState, int overpayAmount)
{
for (int i = 0; i < overpayAmount; ++i)
{
if (!currentPlayer.deck.Any())
break;
currentPlayer.LookAtCardsFromDeck(1, gameState);
DeckPlacement deckPlacement = currentPlayer.actions.ChooseBetweenTrashTopDeckDiscard(gameState, currentPlayer.CardsBeingLookedAt.SomeCard());
switch (deckPlacement)
{
case DeckPlacement.Trash:
currentPlayer.RequestPlayerTrashLookedAtCard(gameState);
break;
case DeckPlacement.Discard:
currentPlayer.MoveLookedAtCardsToDiscard(gameState);
break;
case DeckPlacement.Deck:
currentPlayer.MoveLookedAtCardToTopOfDeck();
break;
default:
throw new Exception("Invalid option");
}
}
}