public override void DoSpecializedAction(PlayerState currentPlayer, GameState gameState)
{
Card namedCard = currentPlayer.RequestPlayerNameACard(gameState);
int cardFoundCount = 0;
while(true)
{
Card revealedCard = currentPlayer.DrawAndRevealOneCardFromDeck(gameState);
if (revealedCard == null)
break;
if (revealedCard == namedCard)
continue;
cardFoundCount++;
if (cardFoundCount >= 3)
break;
}
currentPlayer.MoveRevealedCardsToHand(card => card != namedCard);
currentPlayer.MoveRevealedCardsToDiscard(gameState);
}