filter.add(new SubtypePredicate("Aura"));
Card card = null;
Zone zone = null;
if (player.chooseUse(Outcome.Neutral, "Search your graveyard for an Aura card?", game)) {
TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(filter);
if (player.choose(Outcome.PutCardInPlay, player.getGraveyard(), target, game)) {
card = game.getCard(target.getFirstTarget());
if (card != null) {
zone = Zone.GRAVEYARD;
}
}
}
if (card == null && player.chooseUse(Outcome.Neutral, "Search your Hand for an Aura card?", game)) {
TargetCardInHand target = new TargetCardInHand(filter);
if (player.choose(Outcome.PutCardInPlay, player.getHand(), target, game)) {
card = game.getCard(target.getFirstTarget());
if (card != null) {
zone = Zone.HAND;
}
}
}
if (card == null) {
TargetCardInLibrary target = new TargetCardInLibrary(filter);
if (player.searchLibrary(target, game)) {
card = game.getCard(target.getFirstTarget());
if (card != null) {
zone = Zone.LIBRARY;
}
}
player.shuffleLibrary(game);