@Override public boolean apply(Game game, Ability source) { new PutTopCardOfLibraryIntoGraveControllerEffect(7).apply(game, source); Player controller = game.getPlayer(source.getControllerId()); if (controller == null) { return false; } controller.moveCards(controller.getGraveyard().getCards( filter, source.getSourceId(), source.getControllerId(), game ), Zone.BATTLEFIELD, source, game); controller.moveCards(controller.getGraveyard().getCards( filter2, source.getSourceId(), source.getControllerId(), game ), Zone.BATTLEFIELD, source, game); return true; } }
@Override public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller == null) { return false; } new PutTopCardOfLibraryIntoGraveControllerEffect(2).apply(game, source); TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD); target.setNotTarget(true); if (target.canChoose(source.getSourceId(), source.getControllerId(), game) && controller.chooseUse(outcome, "Return a creature card from your graveyard to hand?", source, game) && controller.choose(Outcome.ReturnToHand, target, source.getSourceId(), game)) { Card card = game.getCard(target.getFirstTarget()); if (card != null) { controller.moveCards(card, Zone.HAND, source, game); } } return true; } }