public void resolve() {
                CardList cards = AllZoneUtil.getPlayerGraveyard(sourceCard.getController());
                CardList sameCost = new CardList();
                int Cost = CardUtil.getConvertedManaCost(Manacost);
                for (int i = 0; i < cards.size(); i++) {
                    if ((CardUtil.getConvertedManaCost(cards.get(i).getManaCost()) <= Cost)
                            && cards.get(i).isType("Spirit")) {
                        sameCost.add(cards.get(i));
                    }
                }

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

                if (sourceCard.getController().isHuman()) {
                    StringBuilder question = new StringBuilder();
                    question.append("Return target Spirit card with converted mana cost ");
                    question.append(Manacost).append(" or less from your graveyard to your hand?");

                    if (GameActionUtil.showYesNoDialog(sourceCard, question.toString())) {
                        Object o = GuiUtils.getChoiceOptional("Select a card", sameCost.toArray());
                        if (o != null) {

                            Card c1 = (Card) o;
                            AllZone.getGameAction().moveToHand(c1);
                        }
                    }
                } else {
                    //Wiser choice should be here
                    Card choice = null;
                    sameCost.shuffle();
                    choice = sameCost.getCard(0);

                    if (!(choice == null)) {
                        AllZone.getGameAction().moveToHand(choice);
                    }
                }
            }