mirror of
https://github.com/correl/mage.git
synced 2024-12-25 03:00:15 +00:00
Improved target messages fot multi-mode cards
This commit is contained in:
parent
6f4d04121d
commit
53d37eca16
15 changed files with 87 additions and 102 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue