diff --git a/Mage.Sets/src/mage/cards/a/AbandonHope.java b/Mage.Sets/src/mage/cards/a/AbandonHope.java index a36a92f52d0..16365813b9d 100644 --- a/Mage.Sets/src/mage/cards/a/AbandonHope.java +++ b/Mage.Sets/src/mage/cards/a/AbandonHope.java @@ -35,7 +35,7 @@ public final class AbandonHope extends CardImpl { this.addAbility(ability); // Look at target opponent's hand and choose X cards from it. That player discards those cards. - this.getSpellAbility().addEffect(new LookTargetHandChooseDiscardEffect(false, GetXValue.instance)); + this.getSpellAbility().addEffect(new LookTargetHandChooseDiscardEffect(false, GetXValue.instance, StaticFilters.FILTER_CARD_CARDS)); this.getSpellAbility().addTarget(new TargetOpponent()); this.getSpellAbility().setCostAdjuster(AbandonHopeAdjuster.instance); } diff --git a/Mage.Sets/src/mage/cards/c/CrackedSkull.java b/Mage.Sets/src/mage/cards/c/CrackedSkull.java index 3ebc091b072..979da861bb4 100644 --- a/Mage.Sets/src/mage/cards/c/CrackedSkull.java +++ b/Mage.Sets/src/mage/cards/c/CrackedSkull.java @@ -3,9 +3,10 @@ package mage.cards.c; import mage.abilities.Ability; import mage.abilities.common.DealtDamageAttachedTriggeredAbility; import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.effects.common.discard.DiscardCardYouChooseTargetEffect; +import mage.abilities.effects.common.discard.LookTargetHandChooseDiscardEffect; import mage.abilities.keyword.EnchantAbility; import mage.cards.CardImpl; import mage.cards.CardSetInfo; @@ -35,7 +36,8 @@ public final class CrackedSkull extends CardImpl { // When Cracked Skull enters, look at target player's hand. You may choose a nonland card from it. That player discards that card. Ability ability = new EntersBattlefieldTriggeredAbility( - new DiscardCardYouChooseTargetEffect(StaticFilters.FILTER_CARD_NON_LAND).setOptional(true) + new LookTargetHandChooseDiscardEffect(true, StaticValue.get(1), StaticFilters.FILTER_CARD_NON_LAND) + .setText("look at target player's hand. You may choose a nonland card from it. That player discards that card") ); ability.addTarget(new TargetPlayer()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/m/MindWarp.java b/Mage.Sets/src/mage/cards/m/MindWarp.java index 8be54dd06d4..bdd02b05fe9 100644 --- a/Mage.Sets/src/mage/cards/m/MindWarp.java +++ b/Mage.Sets/src/mage/cards/m/MindWarp.java @@ -5,6 +5,7 @@ import mage.abilities.effects.common.discard.LookTargetHandChooseDiscardEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; +import mage.filter.StaticFilters; import mage.target.TargetPlayer; import java.util.UUID; @@ -18,7 +19,7 @@ public final class MindWarp extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{3}{B}"); // Look at target player's hand and choose X cards from it. That player discards those cards. - this.getSpellAbility().addEffect(new LookTargetHandChooseDiscardEffect(false, GetXValue.instance)); + this.getSpellAbility().addEffect(new LookTargetHandChooseDiscardEffect(false, GetXValue.instance, StaticFilters.FILTER_CARD_CARDS)); this.getSpellAbility().addTarget(new TargetPlayer()); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/discard/LookTargetHandChooseDiscardEffect.java b/Mage/src/main/java/mage/abilities/effects/common/discard/LookTargetHandChooseDiscardEffect.java index 23e11e36107..e8dc09bd813 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/discard/LookTargetHandChooseDiscardEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/discard/LookTargetHandChooseDiscardEffect.java @@ -7,6 +7,7 @@ import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.effects.OneShotEffect; import mage.cards.CardsImpl; import mage.constants.Outcome; +import mage.filter.FilterCard; import mage.filter.StaticFilters; import mage.game.Game; import mage.players.Player; @@ -21,25 +22,28 @@ public class LookTargetHandChooseDiscardEffect extends OneShotEffect { private final boolean upTo; private final DynamicValue numberToDiscard; + private final FilterCard filter; public LookTargetHandChooseDiscardEffect() { this(false, 1); } public LookTargetHandChooseDiscardEffect(boolean upTo, int numberToDiscard) { - this(upTo, StaticValue.get(numberToDiscard)); + this(upTo, StaticValue.get(numberToDiscard), numberToDiscard == 1 ? StaticFilters.FILTER_CARD : StaticFilters.FILTER_CARD_CARDS); } - public LookTargetHandChooseDiscardEffect(boolean upTo, DynamicValue numberToDiscard) { + public LookTargetHandChooseDiscardEffect(boolean upTo, DynamicValue numberToDiscard, FilterCard filter) { super(Outcome.Discard); this.upTo = upTo; this.numberToDiscard = numberToDiscard; + this.filter = filter; } protected LookTargetHandChooseDiscardEffect(final LookTargetHandChooseDiscardEffect effect) { super(effect); this.upTo = effect.upTo; this.numberToDiscard = effect.numberToDiscard; + this.filter = effect.filter; } @Override @@ -56,7 +60,7 @@ public class LookTargetHandChooseDiscardEffect extends OneShotEffect { } return true; } - TargetCard target = new TargetCardInHand(upTo ? 0 : num, num, num > 1 ? StaticFilters.FILTER_CARD_CARDS : StaticFilters.FILTER_CARD); + TargetCard target = new TargetCardInHand(upTo ? 0 : num, num, filter); if (controller.choose(Outcome.Discard, player.getHand(), target, source, game)) { player.discard(new CardsImpl(target.getTargets()), false, source, game); }