public Card GetCardFromHandToTopDeck(GameState gameState, CardPredicate acceptableCard, bool isOptional)
{
var saved = gameState.self;
gameState.self = this.self;
var result = this.playerAction.GetCardFromHandToTopDeck(gameState, acceptableCard, isOptional);
gameState.self = saved;
return result;
}