diff --git a/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java b/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java index 594e077713..558cfe4241 100644 --- a/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java +++ b/Mage.Sets/src/mage/cards/a/AbzanAscendancy.java @@ -23,7 +23,7 @@ import mage.game.permanent.token.SpiritWhiteToken; */ public final class AbzanAscendancy extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("nontoken creature you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a nontoken creature you control"); static { filter.add(TargetController.YOU.getControllerPredicate()); diff --git a/Mage.Sets/src/mage/cards/a/ArtifactMutation.java b/Mage.Sets/src/mage/cards/a/ArtifactMutation.java index 43c0240f8e..416308846b 100644 --- a/Mage.Sets/src/mage/cards/a/ArtifactMutation.java +++ b/Mage.Sets/src/mage/cards/a/ArtifactMutation.java @@ -25,7 +25,7 @@ public final class ArtifactMutation extends CardImpl { this.getSpellAbility().addEffect(new DestroyTargetEffect(true)); this.getSpellAbility().addTarget(new TargetArtifactPermanent()); // create X 1/1 green Saproling creature tokens, where X is that artifact's converted mana cost. - this.getSpellAbility().addEffect(new CreateTokenEffect(new SaprolingToken(), TargetConvertedManaCost.instance)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new SaprolingToken(), TargetConvertedManaCost.instance).setText("create X 1/1 green Saproling creature tokens, where X is that artifact's converted mana cost")); } public ArtifactMutation(final ArtifactMutation card) { diff --git a/Mage.Sets/src/mage/cards/b/BlightedWoodland.java b/Mage.Sets/src/mage/cards/b/BlightedWoodland.java index b69438215f..6bc7cc86d3 100644 --- a/Mage.Sets/src/mage/cards/b/BlightedWoodland.java +++ b/Mage.Sets/src/mage/cards/b/BlightedWoodland.java @@ -31,7 +31,7 @@ public final class BlightedWoodland extends CardImpl { // {3}{G}, {T}, Sacrifice Blighted Woodland: Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true), + new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS), true, true), new ManaCostsImpl<>("{3}{G}")); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); diff --git a/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java b/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java index 2c76cf9d58..f3e58623e0 100644 --- a/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java +++ b/Mage.Sets/src/mage/cards/c/CataclysmicGearhulk.java @@ -1,9 +1,6 @@ package mage.cards.c; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; @@ -13,8 +10,8 @@ import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Outcome; +import mage.constants.SubType; import mage.filter.common.FilterControlledArtifactPermanent; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledEnchantmentPermanent; @@ -26,14 +23,17 @@ import mage.players.Player; import mage.target.Target; import mage.target.common.TargetControlledPermanent; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + /** - * * @author fireshoes */ public final class CataclysmicGearhulk extends CardImpl { public CataclysmicGearhulk(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}{W}{W}"); + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}{W}{W}"); this.subtype.add(SubType.CONSTRUCT); this.power = new MageInt(4); this.toughness = new MageInt(5); @@ -80,8 +80,8 @@ class CataclysmicGearhulkEffect extends OneShotEffect { public CataclysmicGearhulkEffect() { super(Outcome.DestroyPermanent); - staticText = "Each player chooses from among the non-land permanents they control an artifact, a creature, an enchantment, and a planeswalker, " - + "then sacrifices the rest"; + staticText = "each player chooses an artifact, a creature, an enchantment, and a planeswalker " + + "from among the nonland permanents they control then sacrifices the rest"; } public CataclysmicGearhulkEffect(CataclysmicGearhulkEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/CometStorm.java b/Mage.Sets/src/mage/cards/c/CometStorm.java index 4ec4f69d54..97fbbb1fe4 100644 --- a/Mage.Sets/src/mage/cards/c/CometStorm.java +++ b/Mage.Sets/src/mage/cards/c/CometStorm.java @@ -58,7 +58,7 @@ class CometStormEffect extends OneShotEffect { public CometStormEffect() { super(Outcome.Damage); - staticText = "Choose any target, then choose another target for each time Comet Storm was kicked. Comet Storm deals X damage to each of them"; + staticText = "Choose any target, then choose another target for each time this spell was kicked. {this} deals X damage to each of them"; } public CometStormEffect(final CometStormEffect effect) { diff --git a/Mage.Sets/src/mage/cards/d/Deathsprout.java b/Mage.Sets/src/mage/cards/d/Deathsprout.java index e7a64af570..3e470d1f6f 100644 --- a/Mage.Sets/src/mage/cards/d/Deathsprout.java +++ b/Mage.Sets/src/mage/cards/d/Deathsprout.java @@ -20,7 +20,7 @@ public final class Deathsprout extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{B}{B}{G}"); // Destroy target creature. Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. - this.getSpellAbility().addEffect(new DestroyTargetEffect().setText("Destroy target creature.")); + this.getSpellAbility().addEffect(new DestroyTargetEffect().setText("Destroy target creature. ")); this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect( new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true )); diff --git a/Mage.Sets/src/mage/cards/d/DriftingMeadow.java b/Mage.Sets/src/mage/cards/d/DriftingMeadow.java index 0aad8815f3..a980ba89dc 100644 --- a/Mage.Sets/src/mage/cards/d/DriftingMeadow.java +++ b/Mage.Sets/src/mage/cards/d/DriftingMeadow.java @@ -22,8 +22,8 @@ public final class DriftingMeadow extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); this.addAbility(new EntersBattlefieldTappedAbility()); - this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); this.addAbility(new WhiteManaAbility()); + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); } public DriftingMeadow(final DriftingMeadow card) { diff --git a/Mage.Sets/src/mage/cards/e/EvolutionCharm.java b/Mage.Sets/src/mage/cards/e/EvolutionCharm.java index d552e8ff70..b8ed70aac1 100644 --- a/Mage.Sets/src/mage/cards/e/EvolutionCharm.java +++ b/Mage.Sets/src/mage/cards/e/EvolutionCharm.java @@ -1,8 +1,7 @@ - package mage.cards.e; import mage.abilities.Mode; -import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; import mage.abilities.keyword.FlyingAbility; @@ -18,7 +17,6 @@ import mage.target.common.TargetCreaturePermanent; import java.util.UUID; /** - * * @author fireshoes */ public final class EvolutionCharm extends CardImpl { @@ -27,11 +25,11 @@ public final class EvolutionCharm extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{1}{G}"); // Choose one - Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library; - this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true)); + this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD_BASIC_LAND), true, true).setText("Search your library for a basic land card, reveal it, put it into your hand, then shuffle your library")); // or return target creature card from your graveyard to your hand; Mode mode = new Mode(); - mode.addEffect(new ReturnToHandTargetEffect()); + mode.addEffect(new ReturnFromGraveyardToHandTargetEffect()); mode.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); this.getSpellAbility().addMode(mode); diff --git a/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java b/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java index 221994fa05..511d2639f9 100644 --- a/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java +++ b/Mage.Sets/src/mage/cards/f/FlawlessManeuver.java @@ -8,6 +8,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; +import mage.filter.StaticFilters; import java.util.UUID; @@ -24,7 +25,8 @@ public final class FlawlessManeuver extends CardImpl { // Creatures you control gain indestructible until end of turn. this.getSpellAbility().addEffect(new GainAbilityControlledEffect( - IndestructibleAbility.getInstance(), Duration.EndOfTurn + IndestructibleAbility.getInstance(), Duration.EndOfTurn, + StaticFilters.FILTER_PERMANENT_CREATURES )); } diff --git a/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java b/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java index 148f68f513..e79ecc0ae2 100644 --- a/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java +++ b/Mage.Sets/src/mage/cards/f/FumikoTheLowblood.java @@ -33,7 +33,7 @@ public final class FumikoTheLowblood extends CardImpl { this.toughness = new MageInt(2); // Fumiko the Lowblood has bushido X, where X is the number of attacking creatures. - this.addAbility(new BushidoAbility(new AttackingCreatureCount("the number of attacking creatures"))); + this.addAbility(new BushidoAbility(new AttackingCreatureCount("the number of attacking creatures."))); // Creatures your opponents control attack each turn if able. FilterCreaturePermanent filter = new FilterCreaturePermanent("Creatures your opponents control"); diff --git a/Mage.Sets/src/mage/cards/h/HaldanAvidArcanist.java b/Mage.Sets/src/mage/cards/h/HaldanAvidArcanist.java index e946f7fff6..278edcae98 100644 --- a/Mage.Sets/src/mage/cards/h/HaldanAvidArcanist.java +++ b/Mage.Sets/src/mage/cards/h/HaldanAvidArcanist.java @@ -54,7 +54,7 @@ class HaldanAvidArcanistCastFromExileEffect extends AsThoughEffectImpl { HaldanAvidArcanistCastFromExileEffect() { super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.Custom, Outcome.Benefit); - staticText = "You may play noncreature cards from exile with fetch counters on them if you exiled them, and"; + staticText = "You may play noncreature cards from exile with fetch counters on them if you exiled them"; } private HaldanAvidArcanistCastFromExileEffect(final HaldanAvidArcanistCastFromExileEffect effect) { @@ -87,7 +87,7 @@ class HaldanAvidArcanistSpendAnyManaEffect extends AsThoughEffectImpl implements HaldanAvidArcanistSpendAnyManaEffect() { super(AsThoughEffectType.SPEND_OTHER_MANA, Duration.Custom, Outcome.Benefit); - staticText = "you may spend mana as though it were mana of any color to cast those spells"; + staticText = ", and you may spend mana as though it were mana of any color to cast those spells"; } private HaldanAvidArcanistSpendAnyManaEffect(final HaldanAvidArcanistSpendAnyManaEffect effect) { diff --git a/Mage.Sets/src/mage/cards/h/Harrow.java b/Mage.Sets/src/mage/cards/h/Harrow.java index c02b637224..27d536df96 100644 --- a/Mage.Sets/src/mage/cards/h/Harrow.java +++ b/Mage.Sets/src/mage/cards/h/Harrow.java @@ -27,7 +27,7 @@ public final class Harrow extends CardImpl { this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_LAND_SHORT_TEXT))); // Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library. - TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND); + TargetCardInLibrary target = new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS); this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, false, Outcome.PutLandInPlay)); } diff --git a/Mage.Sets/src/mage/cards/h/HeroesBane.java b/Mage.Sets/src/mage/cards/h/HeroesBane.java index 07be3f80bf..9cc3086757 100644 --- a/Mage.Sets/src/mage/cards/h/HeroesBane.java +++ b/Mage.Sets/src/mage/cards/h/HeroesBane.java @@ -34,7 +34,7 @@ public final class HeroesBane extends CardImpl { "with four +1/+1 counters on it")); // {2}{G}{G}: Put X +1/+1 counters on Heroe's Bane, where X is its power. Effect effect = new AddCountersSourceEffect(CounterType.P1P1.createInstance(0), new SourcePermanentPowerCount(), true); - effect.setText("Put X +1/+1 counters on Heroe's Bane, where X is its power"); + effect.setText("Put X +1/+1 counters on {this}, where X is its power"); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{2}{G}{G}"))); } diff --git a/Mage.Sets/src/mage/cards/j/JirinaKudro.java b/Mage.Sets/src/mage/cards/j/JirinaKudro.java index 93fb8d661f..2869c9b253 100644 --- a/Mage.Sets/src/mage/cards/j/JirinaKudro.java +++ b/Mage.Sets/src/mage/cards/j/JirinaKudro.java @@ -36,7 +36,7 @@ public final class JirinaKudro extends CardImpl { // When Jirina Kudro enters the battlefield, create a 1/1 white Human Soldier creature token for each time you've cast a commander from the command zone this game. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect( new HumanSoldierToken(), CommanderCastCountValue.instance - ))); + ).setText("create a 1/1 white Human Soldier creature token for each time you've cast a commander from the command zone this game"))); // Other Humans you control get +2/+0. this.addAbility(new SimpleStaticAbility(new BoostControlledEffect( diff --git a/Mage.Sets/src/mage/cards/k/KessigWolfRun.java b/Mage.Sets/src/mage/cards/k/KessigWolfRun.java index 787bae0044..138ec4808e 100644 --- a/Mage.Sets/src/mage/cards/k/KessigWolfRun.java +++ b/Mage.Sets/src/mage/cards/k/KessigWolfRun.java @@ -1,7 +1,5 @@ - package mage.cards.k; -import java.util.UUID; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; @@ -16,29 +14,34 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Duration; -import mage.constants.Zone; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * @author nantuko */ public final class KessigWolfRun extends CardImpl { public KessigWolfRun(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.LAND},""); + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); // {T}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{X}{R}{G}")); + Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect( + TrampleAbility.getInstance(), Duration.EndOfTurn + ).setText("Target creature gets +X/+0"), new ManaCostsImpl("{X}{R}{G}")); + ability.addEffect(new BoostTargetEffect( + ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn + ).setText("and gains trample until end of turn")); ability.addCost(new TapSourceCost()); - ability.addEffect(new BoostTargetEffect(ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn)); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } - public KessigWolfRun(final KessigWolfRun card) { + private KessigWolfRun(final KessigWolfRun card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/l/LavabrinkFloodgates.java b/Mage.Sets/src/mage/cards/l/LavabrinkFloodgates.java index f08023b8d1..a3f4e93fd3 100644 --- a/Mage.Sets/src/mage/cards/l/LavabrinkFloodgates.java +++ b/Mage.Sets/src/mage/cards/l/LavabrinkFloodgates.java @@ -57,7 +57,7 @@ class LavabrinkFloodgatesEffect extends OneShotEffect { LavabrinkFloodgatesEffect() { super(Outcome.Benefit); staticText = "that player may put a doom counter on {this} or remove a doom counter from it. " + - "Then if it has three or more doom counters on it, sacrifice it. " + + "Then if it has three or more doom counters on it, sacrifice {this}. " + "When you do, it deals 6 damage to each creature."; } diff --git a/Mage.Sets/src/mage/cards/m/MoltenEchoes.java b/Mage.Sets/src/mage/cards/m/MoltenEchoes.java index 23a8c70c9e..a21876d3f2 100644 --- a/Mage.Sets/src/mage/cards/m/MoltenEchoes.java +++ b/Mage.Sets/src/mage/cards/m/MoltenEchoes.java @@ -46,7 +46,7 @@ public final class MoltenEchoes extends CardImpl { filter, false, SetTargetPointer.PERMANENT, "Whenever a nontoken creature of the chosen type enters the battlefield under your control, " + "create a token that's a copy of that creature. " - + "That token gains haste. Exile it at the beginning of the next end step"); + + "That token gains haste. Exile it at the beginning of the next end step."); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/m/MortuaryMire.java b/Mage.Sets/src/mage/cards/m/MortuaryMire.java index 841529273d..17d2473647 100644 --- a/Mage.Sets/src/mage/cards/m/MortuaryMire.java +++ b/Mage.Sets/src/mage/cards/m/MortuaryMire.java @@ -26,7 +26,7 @@ public final class MortuaryMire extends CardImpl { this.addAbility(new EntersBattlefieldTappedAbility()); // When Mortuary Mire enters the battlefield, you may put target creature card from your graveyard on top of your library. - Ability ability = new EntersBattlefieldTriggeredAbility(new PutOnLibraryTargetEffect(true), true); + Ability ability = new EntersBattlefieldTriggeredAbility(new PutOnLibraryTargetEffect(true).setText("put target creature card from your graveyard on top of your library"), true); ability.addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/p/PainfulTruths.java b/Mage.Sets/src/mage/cards/p/PainfulTruths.java index 7ce04d18b1..f0e585b4a7 100644 --- a/Mage.Sets/src/mage/cards/p/PainfulTruths.java +++ b/Mage.Sets/src/mage/cards/p/PainfulTruths.java @@ -26,7 +26,7 @@ public final class PainfulTruths extends CardImpl { effect.setText("You draw X cards"); getSpellAbility().addEffect(effect); effect = new LoseLifeSourceControllerEffect(ColorsOfManaSpentToCastCount.getInstance()); - effect.setText("and lose X life, where X is the number of colors of mana spent to cast {this}"); + effect.setText("and lose X life, where X is the number of colors of mana spent to cast this spell"); getSpellAbility().addEffect(effect); } diff --git a/Mage.Sets/src/mage/cards/p/PathOfAncestry.java b/Mage.Sets/src/mage/cards/p/PathOfAncestry.java index 82a171c7a7..5750db49fb 100644 --- a/Mage.Sets/src/mage/cards/p/PathOfAncestry.java +++ b/Mage.Sets/src/mage/cards/p/PathOfAncestry.java @@ -56,7 +56,7 @@ public final class PathOfAncestry extends CardImpl { class PathOfAncestryTriggeredAbility extends TriggeredAbilityImpl { public PathOfAncestryTriggeredAbility(Effect effect) { - super(Zone.ALL, effect, true); + super(Zone.ALL, effect, false); } public PathOfAncestryTriggeredAbility(final PathOfAncestryTriggeredAbility ability) { diff --git a/Mage.Sets/src/mage/cards/p/PredatorOoze.java b/Mage.Sets/src/mage/cards/p/PredatorOoze.java index ff472f3e56..4f5bd58b25 100644 --- a/Mage.Sets/src/mage/cards/p/PredatorOoze.java +++ b/Mage.Sets/src/mage/cards/p/PredatorOoze.java @@ -30,7 +30,7 @@ public final class PredatorOoze extends CardImpl { this.addAbility(IndestructibleAbility.getInstance()); // Whenever Predator Ooze attacks, put a +1/+1 counter on it. - this.addAbility(new AttacksTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false)); + this.addAbility(new AttacksTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()).setText("put a +1/+1 counter on it"), false)); // Whenever a creature dealt damage by Predator Ooze this turn dies, put a +1/+1 counter on Predator Ooze. this.addAbility(new DealtDamageAndDiedTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()))); diff --git a/Mage.Sets/src/mage/cards/p/PredatoryImpetus.java b/Mage.Sets/src/mage/cards/p/PredatoryImpetus.java index 4422d7bacb..6ef24a6429 100644 --- a/Mage.Sets/src/mage/cards/p/PredatoryImpetus.java +++ b/Mage.Sets/src/mage/cards/p/PredatoryImpetus.java @@ -39,7 +39,7 @@ public final class PredatoryImpetus extends CardImpl { // Enchanted creature gets +3/+3, must be blocked if able, and is goaded. this.addAbility(new GoadAttachedAbility( new BoostEnchantedEffect(3, 3) - .setText("Enchanted creature gets +3/+3,"), + .setText("Enchanted creature gets +3/+3"), new PredatoryImpetusEffect() )); } @@ -58,7 +58,7 @@ class PredatoryImpetusEffect extends RequirementEffect { PredatoryImpetusEffect() { super(Duration.WhileOnBattlefield); - staticText = "must be blocked if able,"; + staticText = ", must be blocked if able"; } private PredatoryImpetusEffect(final PredatoryImpetusEffect effect) { diff --git a/Mage.Sets/src/mage/cards/p/ProfaneCommand.java b/Mage.Sets/src/mage/cards/p/ProfaneCommand.java index 9e9b5172f9..53826990e3 100644 --- a/Mage.Sets/src/mage/cards/p/ProfaneCommand.java +++ b/Mage.Sets/src/mage/cards/p/ProfaneCommand.java @@ -1,4 +1,3 @@ - package mage.cards.p; import mage.abilities.Ability; @@ -48,7 +47,7 @@ public final class ProfaneCommand extends CardImpl { // * Return target creature card with converted mana cost X or less from your graveyard to the battlefield. Mode mode = new Mode(); - mode.addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); + mode.addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect(false, false)); mode.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card with converted mana cost X or less from your graveyard"))); this.getSpellAbility().addMode(mode); diff --git a/Mage.Sets/src/mage/cards/s/Skullclamp.java b/Mage.Sets/src/mage/cards/s/Skullclamp.java index 5c348e7009..59e53ea608 100644 --- a/Mage.Sets/src/mage/cards/s/Skullclamp.java +++ b/Mage.Sets/src/mage/cards/s/Skullclamp.java @@ -28,7 +28,7 @@ public final class Skullclamp extends CardImpl { // Equipped creature gets +1/-1. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, -1))); // Whenever equipped creature dies, draw two cards. - this.addAbility(new DiesAttachedTriggeredAbility(new DrawCardSourceControllerEffect(2), "equipped")); + this.addAbility(new DiesAttachedTriggeredAbility(new DrawCardSourceControllerEffect(2), "equipped creature")); // Equip {1} this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); } diff --git a/Mage.Sets/src/mage/cards/s/SoaringSeacliff.java b/Mage.Sets/src/mage/cards/s/SoaringSeacliff.java index 557065395f..32cd8f810f 100644 --- a/Mage.Sets/src/mage/cards/s/SoaringSeacliff.java +++ b/Mage.Sets/src/mage/cards/s/SoaringSeacliff.java @@ -23,10 +23,10 @@ public final class SoaringSeacliff extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); this.addAbility(new EntersBattlefieldTappedAbility()); - this.addAbility(new BlueManaAbility()); EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn)); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); + this.addAbility(new BlueManaAbility()); } public SoaringSeacliff(final SoaringSeacliff card) { diff --git a/Mage.Sets/src/mage/cards/s/StrengthOfTheTajuru.java b/Mage.Sets/src/mage/cards/s/StrengthOfTheTajuru.java index 73a007d69f..49e269ffd8 100644 --- a/Mage.Sets/src/mage/cards/s/StrengthOfTheTajuru.java +++ b/Mage.Sets/src/mage/cards/s/StrengthOfTheTajuru.java @@ -58,7 +58,7 @@ class StrengthOfTheTajuruAddCountersTargetEffect extends OneShotEffect { public StrengthOfTheTajuruAddCountersTargetEffect() { super(Outcome.BoostCreature); - staticText = "Choose target creature, then choose another target creature for each time Strength of the Tajuru was kicked. Put X +1/+1 counters on each of them"; + staticText = "Choose target creature, then choose another target creature for each time this spell was kicked. Put X +1/+1 counters on each of them"; } public StrengthOfTheTajuruAddCountersTargetEffect(final StrengthOfTheTajuruAddCountersTargetEffect effect) { diff --git a/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java b/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java index 4616b64a74..98470b8cbe 100644 --- a/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java +++ b/Mage.Sets/src/mage/cards/t/TalrandSkySummoner.java @@ -1,7 +1,5 @@ - package mage.cards.t; -import java.util.UUID; import mage.MageInt; import mage.abilities.common.SpellCastControllerTriggeredAbility; import mage.abilities.effects.common.CreateTokenEffect; @@ -10,26 +8,18 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; -import mage.filter.FilterSpell; -import mage.filter.predicate.Predicates; +import mage.filter.StaticFilters; import mage.game.permanent.token.DrakeToken; +import java.util.UUID; + /** - * * @author North */ public final class TalrandSkySummoner extends CardImpl { - private static final FilterSpell filter = new FilterSpell("instant or sorcery card"); - - static { - filter.add(Predicates.or( - CardType.INSTANT.getPredicate(), - CardType.SORCERY.getPredicate())); - } - public TalrandSkySummoner(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.MERFOLK); this.subtype.add(SubType.WIZARD); @@ -38,10 +28,10 @@ public final class TalrandSkySummoner extends CardImpl { this.toughness = new MageInt(2); // Whenever you cast an instant or sorcery spell, create a 2/2 blue Drake creature token with flying. - this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new DrakeToken()), filter, false)); + this.addAbility(new SpellCastControllerTriggeredAbility(new CreateTokenEffect(new DrakeToken()), StaticFilters.FILTER_SPELL_AN_INSTANT_OR_SORCERY, false)); } - public TalrandSkySummoner(final TalrandSkySummoner card) { + private TalrandSkySummoner(final TalrandSkySummoner card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/t/TemurCharm.java b/Mage.Sets/src/mage/cards/t/TemurCharm.java index 5f5744beab..86160d8301 100644 --- a/Mage.Sets/src/mage/cards/t/TemurCharm.java +++ b/Mage.Sets/src/mage/cards/t/TemurCharm.java @@ -44,7 +44,7 @@ public final class TemurCharm extends CardImpl { Effect effect = new BoostTargetEffect(1, 1, Duration.EndOfTurn); this.getSpellAbility().addEffect(effect); effect = new FightTargetsEffect(); - effect.setText("That creature fights target creature you don't control"); + effect.setText("It fights target creature you don't control"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); Target target = new TargetCreaturePermanent(filter); diff --git a/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java b/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java index a22addd19b..2f13d3d180 100644 --- a/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java +++ b/Mage.Sets/src/mage/cards/t/ThaliasLieutenant.java @@ -21,7 +21,7 @@ import mage.filter.predicate.permanent.AnotherPredicate; */ public final class ThaliasLieutenant extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("each other Human you control"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Human you control"); static { filter.add(AnotherPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/v/VillainousWealth.java b/Mage.Sets/src/mage/cards/v/VillainousWealth.java index d404f5b112..8b8366c186 100644 --- a/Mage.Sets/src/mage/cards/v/VillainousWealth.java +++ b/Mage.Sets/src/mage/cards/v/VillainousWealth.java @@ -50,8 +50,8 @@ class VillainousWealthEffect extends OneShotEffect { public VillainousWealthEffect() { super(Outcome.PlayForFree); this.staticText = "Target opponent exiles the top X cards of their library. " - + "You may cast any number of nonland cards with converted mana cost X " - + "or less from among them without paying their mana cost"; + + "You may cast any number of spells with converted mana cost X " + + "or less from among them without paying their mana costs"; } public VillainousWealthEffect(final VillainousWealthEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java index 5dc5cec55c..36aa72e858 100644 --- a/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/AttacksCreatureYouControlTriggeredAbility.java @@ -79,9 +79,9 @@ public class AttacksCreatureYouControlTriggeredAbility extends TriggeredAbilityI if (who.startsWith("another")) { an = ""; } else if (who.startsWith("a")) { - an = "an"; + an = "an "; } else { - an = "a"; + an = "a "; } return "When" + (once ? "" : "ever") diff --git a/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java b/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java index 6ebfd1dc90..ebe0fdd501 100644 --- a/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java @@ -25,7 +25,8 @@ public class GoadAttachedAbility extends StaticAbility { } this.addEffect(new AttacksIfAbleAttachedEffect( Duration.WhileOnBattlefield, AttachmentType.AURA - ).setText("and")); + ).setText(", and is")); + this.addEffect(new GoadAttackEffect()); } private GoadAttachedAbility(final GoadAttachedAbility ability) { @@ -42,7 +43,7 @@ class GoadAttackEffect extends RestrictionEffect { GoadAttackEffect() { super(Duration.WhileOnBattlefield); - staticText = "is goaded. (It attacks each combat if able and attacks a player other than you if able.)"; + staticText = "goaded. (It attacks each combat if able and attacks a player other than you if able.)"; } private GoadAttackEffect(final GoadAttackEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/costs/common/ExileSourceFromGraveCost.java b/Mage/src/main/java/mage/abilities/costs/common/ExileSourceFromGraveCost.java index 0cf07fb3bd..2fcc873a16 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/ExileSourceFromGraveCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/ExileSourceFromGraveCost.java @@ -17,7 +17,7 @@ import mage.players.Player; public class ExileSourceFromGraveCost extends CostImpl { public ExileSourceFromGraveCost() { - this.text = "Exile this card from your graveyard"; + this.text = "Exile {this} from your graveyard"; } public ExileSourceFromGraveCost(ExileSourceFromGraveCost cost) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/DiscardCardControllerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/effects/common/DiscardCardControllerTriggeredAbility.java index 71482262d6..e13214695f 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DiscardCardControllerTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DiscardCardControllerTriggeredAbility.java @@ -17,7 +17,7 @@ public class DiscardCardControllerTriggeredAbility extends TriggeredAbilityImpl private final FilterCard filter; public DiscardCardControllerTriggeredAbility(Effect effect, boolean isOptional) { - this(effect, isOptional, StaticFilters.FILTER_CARD); + this(effect, isOptional, StaticFilters.FILTER_CARD_A); } public DiscardCardControllerTriggeredAbility(Effect effect, boolean isOptional, FilterCard filter) { diff --git a/Mage/src/main/java/mage/abilities/keyword/MeleeAbility.java b/Mage/src/main/java/mage/abilities/keyword/MeleeAbility.java index af26a6192c..5964d47642 100644 --- a/Mage/src/main/java/mage/abilities/keyword/MeleeAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/MeleeAbility.java @@ -37,7 +37,7 @@ public class MeleeAbility extends AttacksTriggeredAbility { @Override public String getRule() { - return "Melee (Whenever this creature attacks, it gets +1/+1 until end of turn for each opponent you attacked this combat.)"; + return "melee (Whenever this creature attacks, it gets +1/+1 until end of turn for each opponent you attacked this combat.)"; } } diff --git a/Mage/src/main/java/mage/filter/StaticFilters.java b/Mage/src/main/java/mage/filter/StaticFilters.java index 7e71f5e9cf..8b6bb73bb2 100644 --- a/Mage/src/main/java/mage/filter/StaticFilters.java +++ b/Mage/src/main/java/mage/filter/StaticFilters.java @@ -148,6 +148,12 @@ public final class StaticFilters { FILTER_CARD_BASIC_LAND.setLockedFilter(true); } + public static final FilterBasicLandCard FILTER_CARD_BASIC_LANDS = new FilterBasicLandCard("basic land cards"); + + static { + FILTER_CARD_BASIC_LANDS.setLockedFilter(true); + } + public static final FilterBasicLandCard FILTER_CARD_BASIC_LAND_A = new FilterBasicLandCard("a basic land card"); static {