if (!cardsToReveal.isEmpty() && sourceCard != null) {
player.revealCards(sourceCard.getName(), cardsToReveal, game);
}
for (Card card: cardsElf.getCards(game)) {
player.moveCardToHandWithInfo(card, source.getSourceId(), game, Zone.LIBRARY);
}
TargetCard target = new TargetCard(Zone.PICK, new FilterCard("card to put on the bottom of your library"));
while (player.isInGame() && cards2.size() > 0 && player.choose(Outcome.Detriment, cards2, target, game)) {
Card card = cards2.get(target.getFirstTarget(), game);