From 53d37eca16b28226a89b17e2823bf43137e08439 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Mon, 21 Jan 2019 16:19:10 +0400 Subject: [PATCH] Improved target messages fot multi-mode cards --- Mage.Sets/src/mage/cards/d/DawnToDusk.java | 12 ++++----- Mage.Sets/src/mage/cards/f/FissureVent.java | 11 ++++---- .../src/mage/cards/f/FortuitousFind.java | 9 +++---- Mage.Sets/src/mage/cards/g/GrimDiscovery.java | 9 +++---- Mage.Sets/src/mage/cards/r/RainOfThorns.java | 16 ++++++------ .../src/mage/cards/r/RememberTheFallen.java | 9 +++---- .../src/mage/cards/r/RevivingMelody.java | 9 +++---- .../src/mage/cards/s/SaheelisArtistry.java | 11 ++++---- .../src/mage/cards/s/SavageAlliance.java | 21 ++++++++-------- .../src/mage/cards/s/SoulManipulation.java | 9 +++---- Mage.Sets/src/mage/cards/s/SubtleStrike.java | 12 ++++----- .../src/mage/cards/s/SwirlingTorrent.java | 6 ++--- Mage.Sets/src/mage/cards/v/Vandalize.java | 15 ++++++----- .../src/mage/cards/v/VindictiveLich.java | 25 +++++++++---------- Mage.Sets/src/mage/cards/w/Winterflame.java | 15 ++++++----- 15 files changed, 87 insertions(+), 102 deletions(-) diff --git a/Mage.Sets/src/mage/cards/d/DawnToDusk.java b/Mage.Sets/src/mage/cards/d/DawnToDusk.java index 8b6ffa80cb..beb9a5d6f3 100644 --- a/Mage.Sets/src/mage/cards/d/DawnToDusk.java +++ b/Mage.Sets/src/mage/cards/d/DawnToDusk.java @@ -1,7 +1,5 @@ - package mage.cards.d; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; @@ -13,19 +11,21 @@ import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; import mage.target.common.TargetEnchantmentPermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class DawnToDusk extends CardImpl { private static final FilterCard filterCard = new FilterCard("enchantment card from your graveyard"); + static { filterCard.add(new CardTypePredicate(CardType.ENCHANTMENT)); } public DawnToDusk(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{2}{W}{W}"); // Choose one or both - @@ -33,11 +33,11 @@ public final class DawnToDusk extends CardImpl { this.getSpellAbility().getModes().setMaxModes(2); // Return target enchantment card from your graveyard to your hand; this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); - this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(filterCard)); + this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(filterCard).withChooseHint("return from graveyard to hand")); // and/or destroy target enchantment. Mode mode = new Mode(); mode.addEffect(new DestroyTargetEffect()); - mode.addTarget(new TargetEnchantmentPermanent()); + mode.addTarget(new TargetEnchantmentPermanent().withChooseHint("destroy")); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/f/FissureVent.java b/Mage.Sets/src/mage/cards/f/FissureVent.java index 8e522fa5ab..b874f6eaf8 100644 --- a/Mage.Sets/src/mage/cards/f/FissureVent.java +++ b/Mage.Sets/src/mage/cards/f/FissureVent.java @@ -1,7 +1,5 @@ - package mage.cards.f; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -10,25 +8,26 @@ import mage.constants.CardType; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetNonBasicLandPermanent; +import java.util.UUID; + /** - * * @author BetaSteward_at_googlemail.com */ public final class FissureVent extends CardImpl { public FissureVent(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{R}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{R}{R}"); // Choose one or both - Destroy target artifact; and/or destroy target nonbasic land. this.getSpellAbility().getModes().setMinModes(1); this.getSpellAbility().getModes().setMaxModes(2); - this.getSpellAbility().addTarget(new TargetArtifactPermanent()); this.getSpellAbility().addEffect(new DestroyTargetEffect()); + this.getSpellAbility().addTarget(new TargetArtifactPermanent().withChooseHint("destroy")); Mode mode1 = new Mode(); - mode1.addTarget(new TargetNonBasicLandPermanent()); mode1.addEffect(new DestroyTargetEffect()); + mode1.addTarget(new TargetNonBasicLandPermanent().withChooseHint("destroy")); this.getSpellAbility().addMode(mode1); } diff --git a/Mage.Sets/src/mage/cards/f/FortuitousFind.java b/Mage.Sets/src/mage/cards/f/FortuitousFind.java index 6b1c528497..7abe29c978 100644 --- a/Mage.Sets/src/mage/cards/f/FortuitousFind.java +++ b/Mage.Sets/src/mage/cards/f/FortuitousFind.java @@ -1,7 +1,5 @@ - package mage.cards.f; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -11,8 +9,9 @@ import mage.filter.StaticFilters; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** - * * @author fireshoes */ public final class FortuitousFind extends CardImpl { @@ -26,12 +25,12 @@ public final class FortuitousFind extends CardImpl { // Return target artifact card from your graveyard to your hand.; this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); - this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard"))); + this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")).withChooseHint("return to hand")); // or Return target creature card from your graveyard to your hand. Mode mode = new Mode(); mode.addEffect(new ReturnToHandTargetEffect()); - mode.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + mode.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD).withChooseHint("return to hand")); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/g/GrimDiscovery.java b/Mage.Sets/src/mage/cards/g/GrimDiscovery.java index c6dab5f4a2..f6be8e6c03 100644 --- a/Mage.Sets/src/mage/cards/g/GrimDiscovery.java +++ b/Mage.Sets/src/mage/cards/g/GrimDiscovery.java @@ -1,7 +1,5 @@ - package mage.cards.g; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -11,8 +9,9 @@ import mage.filter.StaticFilters; import mage.filter.common.FilterLandCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** - * * @author North */ public final class GrimDiscovery extends CardImpl { @@ -27,11 +26,11 @@ public final class GrimDiscovery extends CardImpl { this.getSpellAbility().getModes().setMaxModes(2); // Return target creature card from your graveyard to your hand; this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); - this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD).withChooseHint("return to hand")); // and/or return target land card from your graveyard to your hand. Mode mode1 = new Mode(); mode1.addEffect(new ReturnToHandTargetEffect()); - mode1.addTarget(new TargetCardInYourGraveyard(filterLandCard)); + mode1.addTarget(new TargetCardInYourGraveyard(filterLandCard).withChooseHint("return to hand")); this.getSpellAbility().addMode(mode1); } diff --git a/Mage.Sets/src/mage/cards/r/RainOfThorns.java b/Mage.Sets/src/mage/cards/r/RainOfThorns.java index 28f11b316e..45c6aacf32 100644 --- a/Mage.Sets/src/mage/cards/r/RainOfThorns.java +++ b/Mage.Sets/src/mage/cards/r/RainOfThorns.java @@ -1,7 +1,5 @@ - package mage.cards.r; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -11,31 +9,31 @@ import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetEnchantmentPermanent; import mage.target.common.TargetLandPermanent; -/** - * - * @author noxx +import java.util.UUID; +/** + * @author noxx */ public final class RainOfThorns extends CardImpl { public RainOfThorns(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{G}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{G}{G}"); // Choose one or more - Destroy target artifact; destroy target enchantment; and/or destroy target land. this.getSpellAbility().addEffect(new DestroyTargetEffect()); - this.getSpellAbility().addTarget(new TargetArtifactPermanent()); + this.getSpellAbility().addTarget(new TargetArtifactPermanent().withChooseHint("destroy")); this.getSpellAbility().getModes().setMaxModes(1); this.getSpellAbility().getModes().setMaxModes(3); Mode mode1 = new Mode(); mode1.addEffect(new DestroyTargetEffect()); - mode1.addTarget(new TargetEnchantmentPermanent()); + mode1.addTarget(new TargetEnchantmentPermanent().withChooseHint("destroy")); this.getSpellAbility().addMode(mode1); Mode mode2 = new Mode(); mode2.addEffect(new DestroyTargetEffect()); - mode2.addTarget(new TargetLandPermanent()); + mode2.addTarget(new TargetLandPermanent().withChooseHint("destroy")); this.getSpellAbility().addMode(mode2); } diff --git a/Mage.Sets/src/mage/cards/r/RememberTheFallen.java b/Mage.Sets/src/mage/cards/r/RememberTheFallen.java index 657a43e97c..1233a0bb6a 100644 --- a/Mage.Sets/src/mage/cards/r/RememberTheFallen.java +++ b/Mage.Sets/src/mage/cards/r/RememberTheFallen.java @@ -1,7 +1,5 @@ - package mage.cards.r; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.cards.CardImpl; @@ -11,8 +9,9 @@ import mage.filter.StaticFilters; import mage.filter.common.FilterArtifactCard; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** - * * @author North */ public final class RememberTheFallen extends CardImpl { @@ -28,12 +27,12 @@ public final class RememberTheFallen extends CardImpl { // • Return target creature card from your graveyard to your hand. this.getSpellAbility().addEffect(new ReturnToHandTargetEffect()); - this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD).withChooseHint("return to hand")); // • Return target artifact card from your graveyard to your hand. Mode mode = new Mode(); mode.addEffect(new ReturnToHandTargetEffect()); - mode.addTarget(new TargetCardInYourGraveyard(filterArtifact)); + mode.addTarget(new TargetCardInYourGraveyard(filterArtifact).withChooseHint("return to hand")); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/r/RevivingMelody.java b/Mage.Sets/src/mage/cards/r/RevivingMelody.java index 3c3be8d8bb..b9e3573fa3 100644 --- a/Mage.Sets/src/mage/cards/r/RevivingMelody.java +++ b/Mage.Sets/src/mage/cards/r/RevivingMelody.java @@ -1,7 +1,5 @@ - package mage.cards.r; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; @@ -12,8 +10,9 @@ import mage.filter.StaticFilters; import mage.filter.predicate.mageobject.CardTypePredicate; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class RevivingMelody extends CardImpl { @@ -33,11 +32,11 @@ public final class RevivingMelody extends CardImpl { //Return target creature card from your graveyard to your hand; this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); - this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD).withChooseHint("return to hand")); // and/or return target enchantment card from your graveyard to your hand. Mode mode = new Mode(); mode.addEffect(new ReturnFromGraveyardToHandTargetEffect()); - mode.addTarget(new TargetCardInYourGraveyard(filterCard)); + mode.addTarget(new TargetCardInYourGraveyard(filterCard).withChooseHint("return to hand")); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/s/SaheelisArtistry.java b/Mage.Sets/src/mage/cards/s/SaheelisArtistry.java index 3e8e2fa6a2..b318a6dd4c 100644 --- a/Mage.Sets/src/mage/cards/s/SaheelisArtistry.java +++ b/Mage.Sets/src/mage/cards/s/SaheelisArtistry.java @@ -1,7 +1,5 @@ - package mage.cards.s; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.CreateTokenCopyTargetEffect; import mage.cards.CardImpl; @@ -10,30 +8,31 @@ import mage.constants.CardType; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class SaheelisArtistry extends CardImpl { public SaheelisArtistry(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}"); // Choose one or both — this.getSpellAbility().getModes().setMinModes(1); this.getSpellAbility().getModes().setMaxModes(2); // • Create a token that's a copy of target artifact. - this.getSpellAbility().addTarget(new TargetArtifactPermanent()); CreateTokenCopyTargetEffect effect = new CreateTokenCopyTargetEffect(); effect.setText("Create a token that's a copy of target artifact"); this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetArtifactPermanent().withChooseHint("create copy of that")); // • Create a token that's a copy of target creature, except that it's an artifact in addition to its other types. Mode mode1 = new Mode(); - mode1.addTarget(new TargetCreaturePermanent()); effect = new CreateTokenCopyTargetEffect(); effect.setBecomesArtifact(true); effect.setText("Create a token that's a copy of target creature, except that it's an artifact in addition to its other types"); mode1.addEffect(effect); + mode1.addTarget(new TargetCreaturePermanent().withChooseHint("create copy of that, artifact type")); this.getSpellAbility().addMode(mode1); } diff --git a/Mage.Sets/src/mage/cards/s/SavageAlliance.java b/Mage.Sets/src/mage/cards/s/SavageAlliance.java index 1743fba75b..3566b20362 100644 --- a/Mage.Sets/src/mage/cards/s/SavageAlliance.java +++ b/Mage.Sets/src/mage/cards/s/SavageAlliance.java @@ -1,8 +1,5 @@ - package mage.cards.s; -import java.util.List; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.costs.mana.GenericManaCost; @@ -29,22 +26,24 @@ import mage.players.Player; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.List; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class SavageAlliance extends CardImpl { - private static final FilterPlayer filterPlayer = new FilterPlayer("player whose creatures gain trample"); - private static final FilterCreaturePermanent filterCreature = new FilterCreaturePermanent("creature to deal 2 damage to"); - private static final FilterPlayer filterOpponent = new FilterPlayer("opponent whose creatures get dealt damage"); + private static final FilterPlayer filterPlayer = new FilterPlayer(); + private static final FilterCreaturePermanent filterCreature = new FilterCreaturePermanent(); + private static final FilterPlayer filterOpponent = new FilterPlayer(); static { filterOpponent.add(new PlayerPredicate(TargetController.OPPONENT)); } public SavageAlliance(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{2}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{R}"); // Escalate {1} this.addAbility(new EscalateAbility(new GenericManaCost(1))); @@ -55,20 +54,20 @@ public final class SavageAlliance extends CardImpl { // Creatures target player controls gain trample until end of turn. this.getSpellAbility().addEffect(new SavageAllianceGainTrampleEffect()); - this.getSpellAbility().addTarget(new TargetPlayer(1, 1, false, filterPlayer)); + this.getSpellAbility().addTarget(new TargetPlayer(1, 1, false, filterPlayer).withChooseHint("whose creatures gain trample")); // Savage Alliance deals 2 damage to target creature.; Mode mode = new Mode(); Effect effect = new DamageTargetEffect(2); effect.setText("{this} deals 2 damage to target creature"); mode.addEffect(effect); - mode.addTarget(new TargetCreaturePermanent(filterCreature)); + mode.addTarget(new TargetCreaturePermanent(filterCreature).withChooseHint("deals 2 damage to")); this.getSpellAbility().addMode(mode); // Savage Alliance deals 1 damage to each creature target opponent controls. mode = new Mode(); mode.addEffect(new SavageAllianceDamageEffect()); - mode.addTarget(new TargetPlayer(1, 1, false, filterOpponent)); + mode.addTarget(new TargetPlayer(1, 1, false, filterOpponent).withChooseHint("whose creatures get dealt 1 damage")); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/s/SoulManipulation.java b/Mage.Sets/src/mage/cards/s/SoulManipulation.java index fa0025b248..9341546527 100644 --- a/Mage.Sets/src/mage/cards/s/SoulManipulation.java +++ b/Mage.Sets/src/mage/cards/s/SoulManipulation.java @@ -1,7 +1,5 @@ - package mage.cards.s; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; @@ -12,8 +10,9 @@ import mage.filter.StaticFilters; import mage.target.TargetSpell; import mage.target.common.TargetCardInYourGraveyard; +import java.util.UUID; + /** - * * @author jeffwadsworth */ public final class SoulManipulation extends CardImpl { @@ -27,12 +26,12 @@ public final class SoulManipulation extends CardImpl { // Counter target creature spell; this.getSpellAbility().addEffect(new CounterTargetEffect()); - this.getSpellAbility().addTarget(new TargetSpell(StaticFilters.FILTER_SPELL_CREATURE)); + this.getSpellAbility().addTarget(new TargetSpell(StaticFilters.FILTER_SPELL_CREATURE).withChooseHint("counter it")); // and/or return target creature card from your graveyard to your hand. Mode mode = new Mode(); mode.addEffect(new ReturnFromGraveyardToHandTargetEffect()); - mode.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + mode.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD).withChooseHint("return it to hand")); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/s/SubtleStrike.java b/Mage.Sets/src/mage/cards/s/SubtleStrike.java index 4001b19b15..78e8b675cf 100644 --- a/Mage.Sets/src/mage/cards/s/SubtleStrike.java +++ b/Mage.Sets/src/mage/cards/s/SubtleStrike.java @@ -1,7 +1,5 @@ - package mage.cards.s; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.abilities.effects.common.counter.AddCountersTargetEffect; @@ -12,14 +10,15 @@ import mage.constants.Duration; import mage.counters.CounterType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class SubtleStrike extends CardImpl { public SubtleStrike(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{B}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}"); // Choose one or both — this.getSpellAbility().getModes().setMinModes(1); @@ -28,15 +27,14 @@ public final class SubtleStrike extends CardImpl { BoostTargetEffect minusOneMinusOne = new BoostTargetEffect(-1, -1, Duration.EndOfTurn); minusOneMinusOne.setText("Target creature gets -1/-1 until end of turn"); this.getSpellAbility().addEffect(minusOneMinusOne); - this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent().withChooseHint("gets -1/-1 until end of turn")); // • Put a +1/+1 counter on target creature. Mode mode1 = new Mode(); AddCountersTargetEffect plusOnePlusOneCounter = new AddCountersTargetEffect(CounterType.P1P1.createInstance()); plusOnePlusOneCounter.setText("Put a +1/+1 counter on target creature"); mode1.addEffect(plusOnePlusOneCounter); - mode1.addTarget(new TargetCreaturePermanent()); + mode1.addTarget(new TargetCreaturePermanent().withChooseHint("gets +1/+1 counter")); this.getSpellAbility().addMode(mode1); - } public SubtleStrike(final SubtleStrike card) { diff --git a/Mage.Sets/src/mage/cards/s/SwirlingTorrent.java b/Mage.Sets/src/mage/cards/s/SwirlingTorrent.java index a2c2837a26..4514148335 100644 --- a/Mage.Sets/src/mage/cards/s/SwirlingTorrent.java +++ b/Mage.Sets/src/mage/cards/s/SwirlingTorrent.java @@ -21,14 +21,14 @@ public final class SwirlingTorrent extends CardImpl { // Choose one or both — this.getSpellAbility().getModes().setMinModes(1); this.getSpellAbility().getModes().setMaxModes(2); - + // • Put target creature on top of its owner's library. this.getSpellAbility().addEffect(new PutOnLibraryTargetEffect(true)); - this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent().withChooseHint("put on library top")); // • Return target creature to its owner's hand. Mode mode = new Mode(new ReturnToHandTargetEffect()); - mode.addTarget(new TargetCreaturePermanent()); + mode.addTarget(new TargetCreaturePermanent().withChooseHint("return to hand")); this.getSpellAbility().addMode(mode); } diff --git a/Mage.Sets/src/mage/cards/v/Vandalize.java b/Mage.Sets/src/mage/cards/v/Vandalize.java index 473c5f5bcf..622feb14ea 100644 --- a/Mage.Sets/src/mage/cards/v/Vandalize.java +++ b/Mage.Sets/src/mage/cards/v/Vandalize.java @@ -1,7 +1,5 @@ - package mage.cards.v; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; @@ -10,25 +8,26 @@ import mage.constants.CardType; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetLandPermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class Vandalize extends CardImpl { public Vandalize(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{R}"); // Choose one or both - Destroy target artifact; or Destroy target land. this.getSpellAbility().getModes().setMinModes(1); this.getSpellAbility().getModes().setMaxModes(2); - - this.getSpellAbility().addTarget(new TargetArtifactPermanent()); + // Destroy target artifact this.getSpellAbility().addEffect(new DestroyTargetEffect()); - + this.getSpellAbility().addTarget(new TargetArtifactPermanent().withChooseHint("destroy")); + // Destroy target land Mode mode1 = new Mode(); - mode1.addTarget(new TargetLandPermanent()); mode1.addEffect(new DestroyTargetEffect()); + mode1.addTarget(new TargetLandPermanent().withChooseHint("destroy")); this.getSpellAbility().addMode(mode1); } diff --git a/Mage.Sets/src/mage/cards/v/VindictiveLich.java b/Mage.Sets/src/mage/cards/v/VindictiveLich.java index c6b32671fb..281345c030 100644 --- a/Mage.Sets/src/mage/cards/v/VindictiveLich.java +++ b/Mage.Sets/src/mage/cards/v/VindictiveLich.java @@ -1,7 +1,5 @@ - package mage.cards.v; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.Mode; @@ -19,8 +17,9 @@ import mage.filter.predicate.mageobject.AnotherTargetPredicate; import mage.target.Target; import mage.target.common.TargetOpponent; +import java.util.UUID; + /** - * * @author anonymous */ public final class VindictiveLich extends CardImpl { @@ -33,37 +32,37 @@ public final class VindictiveLich extends CardImpl { this.toughness = new MageInt(1); // When Vindictive Lich dies, choose one or more. Each mode must target a different player. - // *Target opponent sacrifices a creature. + + // * Target opponent sacrifices a creature. Ability ability = new DiesTriggeredAbility(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "target opponent")); ability.getModes().setMinModes(1); ability.getModes().setMaxModes(3); ability.getModes().setEachModeOnlyOnce(true); ability.getModes().setMaxModesFilter(new FilterOpponent("a different player")); - - FilterOpponent filter = new FilterOpponent("opponent (sacrifice)"); + FilterOpponent filter = new FilterOpponent(); filter.add(new AnotherTargetPredicate(1, true)); - Target target = new TargetOpponent(filter, false); + Target target = new TargetOpponent(filter, false).withChooseHint("who sacrifice a creature"); target.setTargetTag(1); ability.addTarget(target); - // *Target opponent discards two cards. + // * Target opponent discards two cards. Mode mode = new Mode(); mode.addEffect(new DiscardTargetEffect(2, false)); - filter = new FilterOpponent("opponent (discard)"); + filter = new FilterOpponent(); filter.add(new AnotherTargetPredicate(2, true)); target = new TargetOpponent(filter, false); target.setTargetTag(2); - mode.addTarget(target); + mode.addTarget(target.withChooseHint("who discard a card")); ability.addMode(mode); - // *Target opponent loses 5 life. + // * Target opponent loses 5 life. mode = new Mode(); mode.addEffect(new LoseLifeTargetEffect(5)); - filter = new FilterOpponent("opponent (life loss)"); + filter = new FilterOpponent(); filter.add(new AnotherTargetPredicate(3, true)); target = new TargetOpponent(filter, false); target.setTargetTag(3); - mode.addTarget(target); + mode.addTarget(target.withChooseHint("who lose 5 life")); ability.addMode(mode); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/Winterflame.java b/Mage.Sets/src/mage/cards/w/Winterflame.java index b287d97ac8..a78d177c03 100644 --- a/Mage.Sets/src/mage/cards/w/Winterflame.java +++ b/Mage.Sets/src/mage/cards/w/Winterflame.java @@ -1,7 +1,5 @@ - package mage.cards.w; -import java.util.UUID; import mage.abilities.Mode; import mage.abilities.effects.common.DamageTargetEffect; import mage.abilities.effects.common.TapTargetEffect; @@ -10,26 +8,27 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** - * * @author LevelX2 */ public final class Winterflame extends CardImpl { public Winterflame(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{1}{U}{R}"); + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{U}{R}"); // Choose one or both - this.getSpellAbility().getModes().setMinModes(1); this.getSpellAbility().getModes().setMaxModes(2); - // *Tap target creature + // * Tap target creature this.getSpellAbility().addEffect(new TapTargetEffect()); - this.getSpellAbility().addTarget(new TargetCreaturePermanent()); - // *Winterflame deals 2 damage to target creature + this.getSpellAbility().addTarget(new TargetCreaturePermanent().withChooseHint("tap")); + // * Winterflame deals 2 damage to target creature Mode mode = new Mode(); mode.addEffect(new DamageTargetEffect(2)); - mode.addTarget(new TargetCreaturePermanent()); + mode.addTarget(new TargetCreaturePermanent().withChooseHint("deals 2 damage to")); this.getSpellAbility().addMode(mode); }