From 2fca196f79e87a6f4370add5a255f56b730ec218 Mon Sep 17 00:00:00 2001 From: Jeff Date: Fri, 21 Dec 2018 11:46:30 -0600 Subject: [PATCH] - Fixed #5468 --- Mage.Sets/src/mage/cards/i/IridescentDrake.java | 10 +++++++++- .../other/AuraCardCanAttachToPermanentId.java | 16 +++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Mage.Sets/src/mage/cards/i/IridescentDrake.java b/Mage.Sets/src/mage/cards/i/IridescentDrake.java index 348549ee278..d9f08f524a0 100644 --- a/Mage.Sets/src/mage/cards/i/IridescentDrake.java +++ b/Mage.Sets/src/mage/cards/i/IridescentDrake.java @@ -14,6 +14,8 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.SubtypePredicate; import mage.filter.predicate.other.AuraCardCanAttachToPermanentId; import mage.game.Game; import mage.game.permanent.Permanent; @@ -26,6 +28,12 @@ import mage.target.common.TargetCardInGraveyard; * @author TheElk801 */ public final class IridescentDrake extends CardImpl { + + private static final FilterCard filter = new FilterCard("Aura from a graveyard"); + + static { + filter.add(new SubtypePredicate(SubType.AURA)); + } public IridescentDrake(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}"); @@ -39,7 +47,7 @@ public final class IridescentDrake extends CardImpl { // When Iridescent Drake enters the battlefield, put target Aura card from a graveyard onto the battlefield under your control attached to Iridescent Drake. Ability ability = new EntersBattlefieldTriggeredAbility(new IridescentDrakeEffect()); - ability.addTarget(new TargetCardInGraveyard()); + ability.addTarget(new TargetCardInGraveyard(filter)); this.addAbility(ability); } diff --git a/Mage/src/main/java/mage/filter/predicate/other/AuraCardCanAttachToPermanentId.java b/Mage/src/main/java/mage/filter/predicate/other/AuraCardCanAttachToPermanentId.java index 54e8e558536..54d3c490ed4 100644 --- a/Mage/src/main/java/mage/filter/predicate/other/AuraCardCanAttachToPermanentId.java +++ b/Mage/src/main/java/mage/filter/predicate/other/AuraCardCanAttachToPermanentId.java @@ -1,4 +1,3 @@ - package mage.filter.predicate.other; import java.util.UUID; @@ -14,7 +13,6 @@ import mage.target.Target; * @author jeffwadsworth */ // Use this predicate if a aura card comes into play attached to a permanent without targeting - public class AuraCardCanAttachToPermanentId implements Predicate { private final UUID toBeCheckedPermanentId; @@ -27,10 +25,14 @@ public class AuraCardCanAttachToPermanentId implements Predicate { public boolean apply(Card input, Game game) { final Permanent permanent = game.getPermanent(toBeCheckedPermanentId); Filter filter; - for (Target target : input.getSpellAbility().getTargets()) { - filter = target.getFilter(); - if (filter.match(permanent, game)) { - return true; + if (permanent != null + && input != null + && input.isEnchantment()) { + for (Target target : input.getSpellAbility().getTargets()) { + filter = target.getFilter(); + if (filter.match(permanent, game)) { + return true; + } } } return false; @@ -40,4 +42,4 @@ public class AuraCardCanAttachToPermanentId implements Predicate { public String toString() { return "AuraCardCanAttachToPermanentId(" + toBeCheckedPermanentId + ')'; } -} \ No newline at end of file +}