@Override
                public void resolve() {
                    //name a card
                    String choice = JOptionPane.showInputDialog(null, "Name a card", cardName, JOptionPane.QUESTION_MESSAGE);
                    CardList hand = AllZoneUtil.getPlayerHand(getTargetPlayer());
                    int numCards = card.getXManaCostPaid();
                    numCards = Math.min(hand.size(), numCards);

                    CardList revealed = new CardList();
                    for (int i = 0; i < numCards; i++) {
                        Card random = CardUtil.getRandom(hand.toArray());
                        revealed.add(random);
                        hand.remove(random);
                    }
                    if (!revealed.isEmpty()) {
                        GuiUtils.getChoice("Revealed at random", revealed.toArray());
                    } else {
                        GuiUtils.getChoice("Revealed at random", new String[]{"Nothing to reveal"});
                    }

                    for (Card c : revealed) {
                        if (c.getName().equals(choice)) c.getController().discard(c, this);
                    }
                }