@Override
            public void resolve() {
                CardList cards = AllZoneUtil.getPlayerCardsInLibrary(sourceCard.getController());
                CardList sameCost = new CardList();

                for (int i = 0; i < cards.size(); i++) {
                    if (CardUtil.getConvertedManaCost(cards.get(i).getManaCost()) == CardUtil.getConvertedManaCost(sourceCard.getManaCost())) {
                        sameCost.add(cards.get(i));
                    }
                }


                if (sameCost.size() == 0) return;


                Object o = GuiUtils.getChoiceOptional("Select a card", sameCost.toArray());
                if (o != null) {
                    //ability.setTargetCard((Card)o);

                    sourceCard.getController().discard(sourceCard, this);
                    Card c1 = (Card) o;

                    AllZone.getGameAction().moveToHand(c1);

                }
                sourceCard.getController().shuffle();
            }