internal void DoPlayTreasure(Card currentCard, GameState gameState)
{
if (!currentCard.isTreasure)
{
throw new Exception("Can't play a card that isn't a treasure");
}
this.gameLog.PlayedCard(this, currentCard);
this.gameLog.PushScope();
this.cardsBeingPlayed.AddCardToTop(currentCard);
gameState.cardContextStack.PushCardContext(this, currentCard, CardContextReason.CardBeingPlayed);
this.AddBuys(currentCard.plusBuy);
this.AddCoins(currentCard.plusCoin);
if (currentCard == Cards.Copper)
{
this.AddCoins(this.turnCounters.copperAdditionalValue);
}
currentCard.DoSpecializedAction(gameState.players.CurrentPlayer, gameState);
CardHasBeenPlayed(currentCard, 1);
gameState.cardContextStack.Pop();
this.gameLog.PopScope();
}