forked from External/mage
fix some text and StaticFilters (#10698)
* StaticFilters: "a noncreature spell" * StaticFilters: "other creatures you control" * unrelated text fixes * CMM text fixes * fix error * fix apostrophe * adjustments
This commit is contained in:
parent
f476c6864b
commit
ba9ede4d66
50 changed files with 115 additions and 359 deletions
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -6,7 +5,7 @@ import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.common.FilterNonlandPermanent;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetNonlandPermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -21,7 +20,7 @@ public final class AetherGale extends CardImpl {
|
|||
|
||||
// Return six target nonland permanents to their owners' hands.
|
||||
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
|
||||
this.getSpellAbility().addTarget(new TargetNonlandPermanent(6,6, new FilterNonlandPermanent(), false));
|
||||
this.getSpellAbility().addTarget(new TargetNonlandPermanent(6,6, StaticFilters.FILTER_PERMANENTS_NON_LAND, false));
|
||||
}
|
||||
|
||||
private AetherGale(final AetherGale card) {
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public final class AncientOoze extends CardImpl {
|
|||
Zone.ALL,
|
||||
new SetBasePowerToughnessSourceEffect(
|
||||
new TotalPermanentsManaValue(StaticFilters.FILTER_OTHER_CONTROLLED_CREATURES)
|
||||
)
|
||||
).setText("{this}'s power and toughness are each equal to the total mana value of other creatures you control")
|
||||
));
|
||||
}
|
||||
|
||||
|
|
@ -43,4 +43,4 @@ public final class AncientOoze extends CardImpl {
|
|||
public AncientOoze copy() {
|
||||
return new AncientOoze(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,19 +1,16 @@
|
|||
|
||||
package mage.cards.a;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.Effect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.IndestructibleAbility;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.filter.common.FilterControlledPermanent;
|
||||
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
* @author noxx
|
||||
|
|
@ -33,11 +30,9 @@ public final class AvacynAngelOfHope extends CardImpl {
|
|||
this.addAbility(VigilanceAbility.getInstance());
|
||||
this.addAbility(IndestructibleAbility.getInstance());
|
||||
|
||||
// Other permanents you control are indestructible.
|
||||
FilterControlledPermanent filter = new FilterControlledPermanent("Other permanents you control");
|
||||
Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, filter, true);
|
||||
effect.setText("Other permanents you control are indestructible");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
// Other permanents you control have indestructible.
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(IndestructibleAbility.getInstance(),
|
||||
Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENTS, true)));
|
||||
}
|
||||
|
||||
private AvacynAngelOfHope(final AvacynAngelOfHope card) {
|
||||
|
|
|
|||
|
|
@ -10,9 +10,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.TargetPermanent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -22,12 +20,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class BasrisAcolyte extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterControlledCreaturePermanent("other creatures you control");
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
public BasrisAcolyte(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}{W}");
|
||||
|
||||
|
|
@ -44,7 +36,7 @@ public final class BasrisAcolyte extends CardImpl {
|
|||
new AddCountersTargetEffect(CounterType.P1P1.createInstance())
|
||||
.setText("put a +1/+1 counter on each of up to two other target creatures you control")
|
||||
);
|
||||
ability.addTarget(new TargetPermanent(0, 2, filter, false));
|
||||
ability.addTarget(new TargetPermanent(0, 2, StaticFilters.FILTER_OTHER_CONTROLLED_CREATURES, false));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -13,10 +12,8 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -25,11 +22,9 @@ import mage.target.common.TargetControlledCreaturePermanent;
|
|||
public final class BloodFunnel extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("Noncreature spells");
|
||||
private static final FilterSpell filterNoncreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
filterNoncreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public BloodFunnel(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
@ -43,7 +38,7 @@ public final class BloodFunnel extends CardImpl {
|
|||
effect.setText("counter that spell unless you sacrifice a creature");
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(Zone.BATTLEFIELD,
|
||||
effect,
|
||||
filterNoncreature,
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE,
|
||||
false,
|
||||
true));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -11,19 +10,13 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
|
||||
*/
|
||||
public final class CatharsCompanion extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public CatharsCompanion(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{W}");
|
||||
|
|
@ -32,7 +25,8 @@ public final class CatharsCompanion extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever you cast a noncreature spell, Cathar's Companion gains indestructible until end of turn.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn), filter, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private CatharsCompanion(final CatharsCompanion card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.c;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -11,20 +10,13 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class CunningBreezedancer extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public CunningBreezedancer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{U}");
|
||||
|
|
@ -36,7 +28,8 @@ public final class CunningBreezedancer extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever you cast a noncreature spell, Cunning Breezedancer gets +2/+2 until end of turn.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn), filter, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private CunningBreezedancer(final CunningBreezedancer card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -10,8 +9,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -19,12 +17,6 @@ import mage.filter.predicate.Predicates;
|
|||
*/
|
||||
public final class DeeprootChampion extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public DeeprootChampion(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}");
|
||||
|
||||
|
|
@ -34,7 +26,8 @@ public final class DeeprootChampion extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever you cast a noncreature spell, put a +1/+1 counter on Deeproot Champion.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private DeeprootChampion(final DeeprootChampion card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.d;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -12,7 +11,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
|
||||
|
|
@ -23,12 +22,9 @@ import mage.filter.predicate.mageobject.AnotherPredicate;
|
|||
public final class DesolationGiant extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creatures");
|
||||
private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("other creatures you control");
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
filter2.add(AnotherPredicate.instance);
|
||||
filter2.add(TargetController.YOU.getControllerPredicate());
|
||||
}
|
||||
|
||||
public DesolationGiant(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
@ -41,7 +37,7 @@ public final class DesolationGiant extends CardImpl {
|
|||
this.addAbility(new KickerAbility("{W}{W}"));
|
||||
// When Desolation Giant enters the battlefield, destroy all other creatures you control. If it was kicked, destroy all other creatures instead.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new ConditionalOneShotEffect(new DestroyAllEffect(filter),
|
||||
new DestroyAllEffect(filter2), KickedCondition.ONCE, "destroy all other creatures you control. If it was kicked, destroy all other creatures instead.")));
|
||||
new DestroyAllEffect(StaticFilters.FILTER_OTHER_CONTROLLED_CREATURES), KickedCondition.ONCE, "destroy all other creatures you control. If it was kicked, destroy all other creatures instead.")));
|
||||
}
|
||||
|
||||
private DesolationGiant(final DesolationGiant card) {
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.watchers.common.CastFromHandWatcher;
|
||||
|
||||
/**
|
||||
|
|
@ -23,12 +20,6 @@ import mage.watchers.common.CastFromHandWatcher;
|
|||
*/
|
||||
public final class DreadCacodemon extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent otherCreaturesYouControl = new FilterCreaturePermanent("other creatures you control");
|
||||
static {
|
||||
otherCreaturesYouControl.add(TargetController.YOU.getControllerPredicate());
|
||||
otherCreaturesYouControl.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
public DreadCacodemon(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{7}{B}{B}{B}");
|
||||
this.subtype.add(SubType.DEMON);
|
||||
|
|
@ -38,7 +29,7 @@ public final class DreadCacodemon extends CardImpl {
|
|||
// When Dread Cacodemon enters the battlefield,
|
||||
// if you cast it from your hand, destroy all creatures your opponents control, then tap all other creatures you control.
|
||||
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyAllEffect(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURES));
|
||||
ability.addEffect(new TapAllEffect(otherCreaturesYouControl));
|
||||
ability.addEffect(new TapAllEffect(StaticFilters.FILTER_OTHER_CONTROLLED_CREATURES));
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, CastFromHandSourcePermanentCondition.instance,
|
||||
"When {this} enters the battlefield, if you cast it from your hand, destroy all creatures your opponents control, then tap all other creatures you control."), new CastFromHandWatcher());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,8 +27,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class EarthquakeDragon extends CardImpl {
|
||||
|
||||
|
||||
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.DRAGON);
|
||||
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.DRAGON, "Dragons you control");
|
||||
|
||||
private static final TotalPermanentsManaValue xValue = new TotalPermanentsManaValue(filter);
|
||||
|
||||
|
|
@ -69,4 +68,4 @@ public final class EarthquakeDragon extends CardImpl {
|
|||
public EarthquakeDragon copy() {
|
||||
return new EarthquakeDragon(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.e;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -13,20 +12,13 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class ElusiveSpellfist extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public ElusiveSpellfist(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{U}");
|
||||
|
|
@ -36,7 +28,8 @@ public final class ElusiveSpellfist extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever you cast a noncreature spell, Elusive Spellfist gets +1/+0 until end of turn and can't be blocked this turn.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new BoostSourceEffect(1,0,Duration.EndOfTurn), filterNonCreature, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new BoostSourceEffect(1,0,Duration.EndOfTurn),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
Effect effect = new CantBeBlockedSourceEffect(Duration.EndOfTurn);
|
||||
effect.setText("and can't be blocked this turn");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class EzurisPredationEffect extends OneShotEffect {
|
|||
|
||||
public EzurisPredationEffect() {
|
||||
super(Outcome.PutCreatureInPlay);
|
||||
this.staticText = "For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those Beasts fights a different one of those creatures";
|
||||
this.staticText = "For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those tokens fights a different one of those creatures";
|
||||
}
|
||||
|
||||
public EzurisPredationEffect(final EzurisPredationEffect effect) {
|
||||
|
|
|
|||
|
|
@ -1,23 +1,22 @@
|
|||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.constants.Outcome;
|
||||
import mage.game.Game;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.constants.CardType;
|
||||
import mage.abilities.effects.common.search.SearchLibraryGraveyardWithLessMVPutIntoPlay;
|
||||
import mage.abilities.effects.ContinuousEffect;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.constants.Duration;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
|
||||
import mage.abilities.effects.common.search.SearchLibraryGraveyardWithLessMVPutIntoPlay;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Outcome;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.common.FilterCreaturePermanent;
|
||||
import mage.game.Game;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -25,16 +24,10 @@ import mage.abilities.keyword.HasteAbility;
|
|||
*/
|
||||
public final class FinaleOfDevastation extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("creature");
|
||||
|
||||
static {
|
||||
filter.add(CardType.CREATURE.getPredicate());
|
||||
}
|
||||
|
||||
public FinaleOfDevastation(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{G}{G}");
|
||||
// Search your library and/or graveyard for a creature card with converted mana cost X or less and put it onto the battlefield. If you search your library this way, shuffle it.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryGraveyardWithLessMVPutIntoPlay(filter));
|
||||
this.getSpellAbility().addEffect(new SearchLibraryGraveyardWithLessMVPutIntoPlay(StaticFilters.FILTER_CARD_CREATURE));
|
||||
// If X is 10 or more, creatures you control get +X/+X and gain haste until end of turn.
|
||||
this.getSpellAbility().addEffect(new FinaleOfDevastationEffect());
|
||||
}
|
||||
|
|
@ -76,4 +69,4 @@ class FinaleOfDevastationEffect extends OneShotEffect {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.f;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -10,8 +9,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -19,12 +17,6 @@ import mage.filter.predicate.Predicates;
|
|||
*/
|
||||
public final class FirebrandArcher extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public FirebrandArcher(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}");
|
||||
|
||||
|
|
@ -34,7 +26,8 @@ public final class FirebrandArcher extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Whenever you cast a noncreature spell, Firebrand Archer deals 1 damage to each opponent.
|
||||
addAbility(new SpellCastControllerTriggeredAbility(new DamagePlayersEffect(1, TargetController.OPPONENT), filter, false));
|
||||
addAbility(new SpellCastControllerTriggeredAbility(new DamagePlayersEffect(1, TargetController.OPPONENT),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private FirebrandArcher(final FirebrandArcher card) {
|
||||
|
|
|
|||
|
|
@ -11,8 +11,7 @@ import mage.abilities.keyword.VigilanceAbility;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -21,13 +20,6 @@ import mage.target.common.TargetControlledCreaturePermanent;
|
|||
*/
|
||||
public final class GuardianOfFaith extends CardImpl {
|
||||
|
||||
private static final FilterControlledCreaturePermanent filter
|
||||
= new FilterControlledCreaturePermanent("other creatures you control");
|
||||
|
||||
static {
|
||||
filter.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
public GuardianOfFaith(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}{W}");
|
||||
|
||||
|
|
@ -46,7 +38,7 @@ public final class GuardianOfFaith extends CardImpl {
|
|||
Ability ability = new EntersBattlefieldTriggeredAbility(new PhaseOutTargetEffect(
|
||||
"any number of other target creatures you control"
|
||||
));
|
||||
ability.addTarget(new TargetControlledCreaturePermanent(0, Integer.MAX_VALUE, filter, false));
|
||||
ability.addTarget(new TargetControlledCreaturePermanent(0, Integer.MAX_VALUE, StaticFilters.FILTER_OTHER_CONTROLLED_CREATURES, false));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.j;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -12,9 +11,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -22,18 +19,12 @@ import mage.filter.predicate.Predicates;
|
|||
*/
|
||||
public final class JeskaiAscendancy extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public JeskaiAscendancy(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}{R}{W}");
|
||||
|
||||
// Whenever you cast a noncreature spell, creatures you control get +1/+1 until end of turn. Untap those creatures.
|
||||
Effect effect = new BoostControlledEffect(1, 1, Duration.EndOfTurn);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(effect, filterNonCreature, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
effect = new UntapAllControllerEffect(StaticFilters.FILTER_PERMANENT_CREATURE, "Untap those creatures");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
|
|
@ -41,7 +32,7 @@ public final class JeskaiAscendancy extends CardImpl {
|
|||
// Whenever you cast a noncreature spell, you may draw a card. If you do, discard a card.
|
||||
effect = new DrawDiscardControllerEffect(1, 1);
|
||||
effect.setText("you may draw a card. If you do, discard a card");
|
||||
ability = new SpellCastControllerTriggeredAbility(effect, filterNonCreature, true);
|
||||
ability = new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_NON_CREATURE, true);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,8 +69,7 @@ class KahoMinamoHistorianEffect extends SearchEffect {
|
|||
|
||||
public KahoMinamoHistorianEffect() {
|
||||
super(new TargetCardInLibrary(0, 3, filter), Outcome.Benefit);
|
||||
this.staticText = "search your library for up to three instant cards "
|
||||
+ "and exile them. Then shuffle";
|
||||
this.staticText = "search your library for up to three instant cards, exile them, then shuffle";
|
||||
}
|
||||
|
||||
public KahoMinamoHistorianEffect(final KahoMinamoHistorianEffect effect) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.k;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -15,8 +14,7 @@ import mage.constants.SubType;
|
|||
import mage.constants.SetTargetPointer;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -24,11 +22,6 @@ import mage.filter.predicate.Predicates;
|
|||
*/
|
||||
public final class KambalConsulOfAllocation extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public KambalConsulOfAllocation(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}{B}");
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
|
|
@ -38,7 +31,8 @@ public final class KambalConsulOfAllocation extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Whenever an opponent casts a noncreature spell, that player loses 2 life and you gain 2 life.
|
||||
Ability ability = new SpellCastOpponentTriggeredAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2), filter, false, SetTargetPointer.PLAYER);
|
||||
Ability ability = new SpellCastOpponentTriggeredAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false, SetTargetPointer.PLAYER);
|
||||
Effect effect = new GainLifeEffect(2);
|
||||
effect.setText("and you gain 2 life");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -12,17 +12,10 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.TargetController;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
public final class Magmaroth extends CardImpl{
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public Magmaroth(UUID ownerId, CardSetInfo cardSetInfo){
|
||||
super(ownerId, cardSetInfo, new CardType[]{CardType.CREATURE}, "{3}{R}");
|
||||
subtype.add(SubType.ELEMENTAL);
|
||||
|
|
@ -33,7 +26,8 @@ public final class Magmaroth extends CardImpl{
|
|||
addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance()), TargetController.YOU, false));
|
||||
|
||||
// Whenever you cast a noncreature spell, remove a -1/-1 counter from Magmaroth
|
||||
addAbility(new SpellCastControllerTriggeredAbility(new RemoveCounterSourceEffect(CounterType.M1M1.createInstance()), filterNonCreature, false));
|
||||
addAbility(new SpellCastControllerTriggeredAbility(new RemoveCounterSourceEffect(CounterType.M1M1.createInstance()),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class MelekIzzetParagon extends CardImpl {
|
||||
|
||||
private static final FilterCard filter = new FilterCard("cast instant or sorcery spells");
|
||||
private static final FilterCard filter = new FilterCard("cast instant and sorcery spells");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.or(
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
package mage.cards.m;
|
||||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
|
|
@ -47,8 +48,11 @@ public final class MikaeusTheUnhallowed extends CardImpl {
|
|||
this.addAbility(new MikaeusTheUnhallowedAbility());
|
||||
|
||||
// Other non-Human creatures you control get +1/+1 and have undying.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(new UndyingAbility(), Duration.WhileOnBattlefield, filter, true)));
|
||||
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter, true));
|
||||
ability.addEffect(new GainAbilityControlledEffect(new UndyingAbility(), Duration.WhileOnBattlefield, filter, true)
|
||||
.setText("and have undying. <i>(When a creature with undying dies, if it had no +1/+1 counters on it," +
|
||||
" return it to the battlefield under its owner's control with a +1/+1 counter on it.)</i>"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
private MikaeusTheUnhallowed(final MikaeusTheUnhallowed card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -13,8 +12,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -22,11 +20,6 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
* @author emerald000
|
||||
*/
|
||||
public final class MistfireAdept extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public MistfireAdept(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}");
|
||||
|
|
@ -39,7 +32,8 @@ public final class MistfireAdept extends CardImpl {
|
|||
this.addAbility(new ProwessAbility());
|
||||
|
||||
// Whenever you cast a noncreature spell, target creature gains flying until end of turn.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), filter, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -10,8 +9,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.MonasteryMentorToken;
|
||||
|
||||
/**
|
||||
|
|
@ -20,12 +18,6 @@ import mage.game.permanent.token.MonasteryMentorToken;
|
|||
*/
|
||||
public final class MonasteryMentor extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public MonasteryMentor(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}");
|
||||
this.subtype.add(SubType.HUMAN);
|
||||
|
|
@ -37,7 +29,8 @@ public final class MonasteryMentor extends CardImpl {
|
|||
this.addAbility(new ProwessAbility());
|
||||
|
||||
// Whenever you cast a noncreature spell, create a 1/1 white Monk creature token with prowess.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new MonasteryMentorToken()), filter, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new MonasteryMentorToken()),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private MonasteryMentor(final MonasteryMentor card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.m;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -17,8 +16,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.*;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
|
||||
/**
|
||||
|
|
@ -28,17 +26,13 @@ import mage.game.permanent.token.TokenImpl;
|
|||
public final class MythRealized extends CardImpl {
|
||||
|
||||
private static final DynamicValue loreCounterCount = new CountersSourceCount(CounterType.LORE);
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public MythRealized(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{W}");
|
||||
|
||||
// Whenever you cast a noncreature spell, put a lore counter on Myth Realized.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.LORE.createInstance()), filterNonCreature, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.LORE.createInstance()),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
|
||||
// {2}{W}: Put a lore counter on Myth Realized.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.LORE.createInstance()), new ManaCostsImpl<>("{2}{W}")));
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class NarsetEnlightenedMasterExileEffect extends OneShotEffect {
|
|||
|
||||
public NarsetEnlightenedMasterExileEffect() {
|
||||
super(Outcome.Discard);
|
||||
staticText = "exile the top four cards of your library. Until end of turn, you may cast noncreature cards exiled with {this} this turn without paying their mana costs";
|
||||
staticText = "exile the top four cards of your library. Until end of turn, you may cast noncreature spells from among those cards without paying their mana costs";
|
||||
}
|
||||
|
||||
public NarsetEnlightenedMasterExileEffect(final NarsetEnlightenedMasterExileEffect effect) {
|
||||
|
|
|
|||
|
|
@ -20,10 +20,7 @@ import mage.constants.SetTargetPointer;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.target.common.TargetCardInHand;
|
||||
|
||||
/**
|
||||
|
|
@ -32,12 +29,6 @@ import mage.target.common.TargetCardInHand;
|
|||
*/
|
||||
public final class NezahalPrimalTide extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public NezahalPrimalTide(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{5}{U}{U}");
|
||||
|
||||
|
|
@ -56,7 +47,7 @@ public final class NezahalPrimalTide extends CardImpl {
|
|||
|
||||
// Whenever an opponent casts a noncreature spell, draw a card.
|
||||
this.addAbility(new SpellCastOpponentTriggeredAbility(Zone.BATTLEFIELD,
|
||||
new DrawCardSourceControllerEffect(1), filter, false, SetTargetPointer.NONE));
|
||||
new DrawCardSourceControllerEffect(1), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false, SetTargetPointer.NONE));
|
||||
|
||||
// Discard three cards: Exile Nezahal. Return it to the battlefield tapped under its owner's control at the beginning of the next end step.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileReturnBattlefieldOwnerNextEndStepSourceEffect(true),
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ import mage.target.common.TargetCardInLibrary;
|
|||
* @author Plopman
|
||||
*/
|
||||
public final class PersonalTutor extends CardImpl {
|
||||
private static final FilterCard filter = new FilterCard("Sorcery card");
|
||||
private static final FilterCard filter = new FilterCard("sorcery card");
|
||||
static{
|
||||
filter.add(CardType.SORCERY.getPredicate());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,7 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.game.permanent.token.BeastToken;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
|
|
@ -23,12 +21,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class PrimevalBounty extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public PrimevalBounty(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{5}{G}");
|
||||
|
||||
|
|
@ -40,7 +32,7 @@ public final class PrimevalBounty extends CardImpl {
|
|||
// Whenever you cast a noncreature spell, put three +1/+1 counters on target creature you control.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(
|
||||
new AddCountersTargetEffect(CounterType.P1P1.createInstance(3)),
|
||||
filterNonCreature, false
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false
|
||||
);
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.p;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -13,20 +12,13 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class PristineSkywise extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public PristineSkywise(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}{U}");
|
||||
|
|
@ -38,7 +30,7 @@ public final class PristineSkywise extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever you cast a noncreature spell, untap Pristine Skywise. It gains protection from the color of your choice until the end of turn.
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), filter, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
ability.addEffect(new GainProtectionFromColorSourceEffect(Duration.EndOfTurn));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.q;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -12,9 +11,7 @@ import mage.abilities.effects.common.TapTargetEffect;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -22,12 +19,6 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
* @author LevelX2
|
||||
*/
|
||||
public final class QuietContemplation extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public QuietContemplation(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{U}");
|
||||
|
|
@ -38,7 +29,7 @@ public final class QuietContemplation extends CardImpl {
|
|||
Effect effect = new DontUntapInControllersNextUntapStepTargetEffect();
|
||||
effect.setText("and it doesn't untap during its controller's next untap step");
|
||||
doIfCostPaid.addEffect(effect);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(doIfCostPaid, filterNonCreature, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(doIfCostPaid, StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.r;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -15,8 +14,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.common.FilterControlledCreaturePermanent;
|
||||
import mage.filter.predicate.mageobject.AnotherPredicate;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -24,12 +22,6 @@ import mage.filter.predicate.mageobject.AnotherPredicate;
|
|||
*/
|
||||
public final class RecklessBushwhacker extends CardImpl {
|
||||
|
||||
private static final FilterControlledCreaturePermanent FILTER = new FilterControlledCreaturePermanent("other creatures you control");
|
||||
|
||||
static {
|
||||
FILTER.add(AnotherPredicate.instance);
|
||||
}
|
||||
|
||||
public RecklessBushwhacker(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{R}");
|
||||
this.subtype.add(SubType.GOBLIN);
|
||||
|
|
@ -46,7 +38,7 @@ public final class RecklessBushwhacker extends CardImpl {
|
|||
|
||||
// When Reckless Bushwhacker enters the battlefield, if its surge cost was paid, other creatures you control get +1/+0 and gain haste until end of turn.
|
||||
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new BoostControlledEffect(1, 0, Duration.EndOfTurn, true), false);
|
||||
ability.addEffect(new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn, FILTER, true));
|
||||
ability.addEffect(new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_OTHER_CONTROLLED_CREATURES, true));
|
||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, SurgedCondition.instance,
|
||||
"When {this} enters the battlefield, if its surge cost was paid, other creatures you control get +1/+0 and gain haste until end of turn."));
|
||||
|
||||
|
|
|
|||
|
|
@ -81,6 +81,6 @@ class RegalBehemothTriggeredManaAbility extends TriggeredManaAbility {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever you tap a land for mana while you're the monarch, add one mana of any color.";
|
||||
return "Whenever you tap a land for mana while you're the monarch, add an additional one mana of any color.";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.TokenImpl;
|
||||
|
||||
/**
|
||||
|
|
@ -27,18 +26,12 @@ import mage.game.permanent.token.TokenImpl;
|
|||
*/
|
||||
public final class Riddleform extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public Riddleform(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}");
|
||||
|
||||
// Whenever you cast a noncreature spell, you may have Riddleform become a 3/3 Sphinx creature with flying in addition to its other types until end of turn.
|
||||
Effect effect = new BecomesCreatureSourceEffect(new RiddleformToken(), CardType.ENCHANTMENT, Duration.EndOfTurn);
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(Zone.BATTLEFIELD, effect, filterNonCreature, true, true));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(Zone.BATTLEFIELD, effect, StaticFilters.FILTER_SPELL_A_NON_CREATURE, true, true));
|
||||
|
||||
// {2}{U}: Scry 1.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new ManaCostsImpl<>("{2}{U}"));
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class RiseFromTheTides extends CardImpl {
|
||||
|
||||
private static final DynamicValue cardsCount = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_INSTANT_OR_SORCERY);
|
||||
private static final DynamicValue cardsCount = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_INSTANT_AND_SORCERY);
|
||||
|
||||
public RiseFromTheTides(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{U}");
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -12,9 +11,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.filter.predicate.Predicates;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -22,12 +19,6 @@ import mage.filter.predicate.Predicates;
|
|||
*/
|
||||
public final class SageOfTheInwardEye extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public SageOfTheInwardEye(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{R}{W}");
|
||||
this.subtype.add(SubType.DJINN);
|
||||
|
|
@ -41,7 +32,7 @@ public final class SageOfTheInwardEye extends CardImpl {
|
|||
// Whenever you cast a noncreature spell, creatures you control gain lifelink until end of turn.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(
|
||||
new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false),
|
||||
filterNonCreature, false));
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -18,8 +17,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.Duration;
|
||||
import mage.constants.Zone;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -28,17 +26,12 @@ import mage.target.common.TargetControlledCreaturePermanent;
|
|||
*/
|
||||
public final class ScrollOfTheMasters extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public ScrollOfTheMasters(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
|
||||
|
||||
// Whenever you cast a noncreature spell, put a lore counter on Scroll of the Masters.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.LORE.createInstance()), filterNonCreature, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.LORE.createInstance()),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
|
||||
// {3}, {T}: Target creature you control gets +1/+1 until end of turn for each lore counter on Scroll of the Masters.
|
||||
DynamicValue xValue = new CountersSourceCount(CounterType.LORE);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -12,19 +11,13 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author emerald000
|
||||
*/
|
||||
public final class SeekerOfTheWay extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public SeekerOfTheWay(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{W}");
|
||||
|
|
@ -38,7 +31,8 @@ public final class SeekerOfTheWay extends CardImpl {
|
|||
this.addAbility(new ProwessAbility());
|
||||
|
||||
// Whenever you cast a noncreature spell, Seeker of the Way gains lifelink until end of turn.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), filter, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainAbilitySourceEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn)
|
||||
.setText("{this} gains lifelink until end of turn"), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private SeekerOfTheWay(final SeekerOfTheWay card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -16,8 +15,7 @@ import mage.constants.CardType;
|
|||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
|
||||
/**
|
||||
|
|
@ -26,12 +24,6 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public final class ShuYunTheSilentTempest extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public ShuYunTheSilentTempest(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}");
|
||||
this.supertype.add(SuperType.LEGENDARY);
|
||||
|
|
@ -48,7 +40,7 @@ public final class ShuYunTheSilentTempest extends CardImpl {
|
|||
new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn),
|
||||
new ManaCostsImpl<>("{R/W}{R/W}"),
|
||||
"Pay to let target creature gain double strike?"),
|
||||
filter, false);
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -9,8 +8,7 @@ import mage.abilities.effects.common.DoIfCostPaid;
|
|||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.permanent.token.DjinnMonkToken;
|
||||
|
||||
/**
|
||||
|
|
@ -19,17 +17,12 @@ import mage.game.permanent.token.DjinnMonkToken;
|
|||
*/
|
||||
public final class SkywiseTeachings extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public SkywiseTeachings(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{U}");
|
||||
|
||||
// Whenever you cast a noncreature spell, you may pay {1}{U}. If you do, create a 2/2 blue Djinn Monk creature token with flying.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new CreateTokenEffect(new DjinnMonkToken()), new ManaCostsImpl<>("{1}{U}")), filter, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new CreateTokenEffect(new DjinnMonkToken()), new ManaCostsImpl<>("{1}{U}")),
|
||||
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -13,20 +12,13 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class SoulbladeDjinn extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public SoulbladeDjinn(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{U}{U}");
|
||||
|
|
@ -39,7 +31,7 @@ public final class SoulbladeDjinn extends CardImpl {
|
|||
|
||||
// Whenever you cast a noncreature spell, creatures you control get +1/+1 until end of turn.
|
||||
Effect effect = new BoostControlledEffect(1,1,Duration.EndOfTurn);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(effect, filterNonCreature, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,8 +61,7 @@ class SparkDoubleCopyApplier extends CopyApplier {
|
|||
@Override
|
||||
public String getText() {
|
||||
return ", except it enters with an additional +1/+1 counter on it if it's a creature, it enters with "
|
||||
+ "an additional loyalty counter on it if it's a planeswalker, and it isn't legendary if "
|
||||
+ "that permanent is legendary";
|
||||
+ "an additional loyalty counter on it if it's a planeswalker, and it isn't legendary";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -10,8 +10,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.counters.CounterType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
|
|
@ -20,12 +19,6 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class SpriteDragon extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public SpriteDragon(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{U}{R}");
|
||||
|
||||
|
|
@ -42,7 +35,7 @@ public final class SpriteDragon extends CardImpl {
|
|||
|
||||
// Whenever you cast a noncreature spell, put a +1/+1 counter on Sprite Dragon.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), filter, false
|
||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance()), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,9 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.abilities.effects.common.ReturnSourceFromGraveyardToHandEffect;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -28,7 +27,8 @@ public final class SqueeGoblinNabob extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// At the beginning of your upkeep, you may return Squee, Goblin Nabob from your graveyard to your hand.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.GRAVEYARD, new ReturnToHandSourceEffect(), TargetController.YOU, true));
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), TargetController.YOU, true)
|
||||
.setTriggerPhrase("At the beginning of your upkeep, "));
|
||||
}
|
||||
|
||||
private SqueeGoblinNabob(final SqueeGoblinNabob card) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -12,20 +11,13 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Duration;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class StrongarmMonk extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public StrongarmMonk(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{4}{W}");
|
||||
|
|
@ -36,7 +28,7 @@ public final class StrongarmMonk extends CardImpl {
|
|||
|
||||
// Whenever you cast a noncreature spell, creatures you control get +1/+1 until end of turn.
|
||||
Effect effect = new BoostControlledEffect(1,1,Duration.EndOfTurn);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(effect, filterNonCreature, false);
|
||||
Ability ability = new SpellCastControllerTriggeredAbility(effect, StaticFilters.FILTER_SPELL_A_NON_CREATURE, false);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.s;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -9,20 +8,13 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author fireshoes
|
||||
*/
|
||||
public final class StudentOfOjutai extends CardImpl {
|
||||
|
||||
private static final FilterSpell filterNonCreature = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filterNonCreature.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public StudentOfOjutai(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{W}");
|
||||
|
|
@ -32,7 +24,7 @@ public final class StudentOfOjutai extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Whenever you cast a noncreature spell, you gain 2 life.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainLifeEffect(2), filterNonCreature, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new GainLifeEffect(2), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private StudentOfOjutai(final StudentOfOjutai card) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class TemptWithVengeanceEffect extends OneShotEffect {
|
|||
|
||||
public TemptWithVengeanceEffect() {
|
||||
super(Outcome.PutLandInPlay);
|
||||
this.staticText = "<i>Tempting offer</i> — create X 1/1 red Elemental creature tokens with haste. Each opponent may create X 1/1 red Elemental creature tokens with haste. For each opponent who does, create X 1/1 red Elemental creature tokens with haste";
|
||||
this.staticText = "<i>Tempting offer</i> — Create X 1/1 red Elemental creature tokens with haste. Each opponent may create X 1/1 red Elemental creature tokens with haste. For each opponent who does, create X 1/1 red Elemental creature tokens with haste";
|
||||
}
|
||||
|
||||
public TemptWithVengeanceEffect(final TemptWithVengeanceEffect effect) {
|
||||
|
|
|
|||
|
|
@ -34,7 +34,8 @@ public final class TombOfTheSpiritDragon extends CardImpl {
|
|||
// T: Add 1
|
||||
this.addAbility(new ColorlessManaAbility());
|
||||
// 2, T: You gain 1 life for each colorless creature you control
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(new PermanentsOnBattlefieldCount(filter)), new GenericManaCost(2));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(new PermanentsOnBattlefieldCount(filter))
|
||||
.setText("you gain 1 life for each colorless creature you control"), new GenericManaCost(2));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ class TorrentialGearhulkEffect extends OneShotEffect {
|
|||
TorrentialGearhulkEffect() {
|
||||
super(Outcome.PlayForFree);
|
||||
this.staticText = "you may cast target instant card from your graveyard without paying its mana cost. "
|
||||
+ "If that card would be put into your graveyard this turn, exile it instead";
|
||||
+ "If that spell would be put into your graveyard, exile it instead";
|
||||
}
|
||||
|
||||
TorrentialGearhulkEffect(final TorrentialGearhulkEffect effect) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
package mage.cards.z;
|
||||
|
||||
import java.util.UUID;
|
||||
|
|
@ -15,8 +14,7 @@ import mage.cards.CardSetInfo;
|
|||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.Zone;
|
||||
import mage.filter.FilterSpell;
|
||||
import mage.filter.predicate.Predicates;
|
||||
import mage.filter.StaticFilters;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -24,12 +22,6 @@ import mage.filter.predicate.Predicates;
|
|||
*/
|
||||
public final class ZephyrScribe extends CardImpl {
|
||||
|
||||
private static final FilterSpell filter = new FilterSpell("a noncreature spell");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(CardType.CREATURE.getPredicate()));
|
||||
}
|
||||
|
||||
public ZephyrScribe(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}");
|
||||
this.subtype.add(SubType.HUMAN, SubType.MONK);
|
||||
|
|
@ -42,7 +34,7 @@ public final class ZephyrScribe extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Whenever you cast a noncreature spell, untap Zephyr Scribe.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), filter, false));
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false));
|
||||
}
|
||||
|
||||
private ZephyrScribe(final ZephyrScribe card) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue