diff --git a/Mage.Sets/src/mage/cards/a/ArchmageOfEchoes.java b/Mage.Sets/src/mage/cards/a/ArchmageOfEchoes.java
index 4a3de97cfe8..60211eca07a 100644
--- a/Mage.Sets/src/mage/cards/a/ArchmageOfEchoes.java
+++ b/Mage.Sets/src/mage/cards/a/ArchmageOfEchoes.java
@@ -41,7 +41,7 @@ public final class ArchmageOfEchoes extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Ward {2}
- this.addAbility(new WardAbility(new ManaCostsImpl<>("{2}")));
+ this.addAbility(new WardAbility(new ManaCostsImpl<>("{2}"), false));
// Whenever you cast a Faerie or Wizard permanent spell, copy it.
this.addAbility(new SpellCastControllerTriggeredAbility(
diff --git a/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java b/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java
index 924b48deae8..320ec4c0499 100644
--- a/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java
+++ b/Mage.Sets/src/mage/cards/a/ArgothianEnchantress.java
@@ -28,8 +28,8 @@ public final class ArgothianEnchantress extends CardImpl {
// Shroud
this.addAbility(ShroudAbility.getInstance());
- // Whenever you cast an Enchantment spell, you draw a card.
- this.addAbility(new SpellCastControllerTriggeredAbility(new DrawCardSourceControllerEffect(1, "you"), StaticFilters.FILTER_SPELL_AN_ENCHANTMENT, false));
+ // Whenever you cast an enchantment spell, draw a card.
+ this.addAbility(new SpellCastControllerTriggeredAbility(new DrawCardSourceControllerEffect(1), StaticFilters.FILTER_SPELL_AN_ENCHANTMENT, false));
}
private ArgothianEnchantress(final ArgothianEnchantress card) {
diff --git a/Mage.Sets/src/mage/cards/b/BearerOfSilence.java b/Mage.Sets/src/mage/cards/b/BearerOfSilence.java
index 20d8fd6001f..17d4bb46864 100644
--- a/Mage.Sets/src/mage/cards/b/BearerOfSilence.java
+++ b/Mage.Sets/src/mage/cards/b/BearerOfSilence.java
@@ -34,7 +34,7 @@ public final class BearerOfSilence extends CardImpl {
this.addAbility(new DevoidAbility(this.color));
// When you cast Bearer of Silence, you may pay {1}{C}. If you do, target opponent sacrifices a creature.
- Ability ability = new CastSourceTriggeredAbility(new DoIfCostPaid(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "Target opponent"), new ManaCostsImpl<>("{1}{C}")));
+ Ability ability = new CastSourceTriggeredAbility(new DoIfCostPaid(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_CREATURE, 1, "target opponent"), new ManaCostsImpl<>("{1}{C}")));
ability.addTarget(new TargetOpponent());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java b/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java
index 97f584788c7..3f07550e1d4 100644
--- a/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java
+++ b/Mage.Sets/src/mage/cards/b/BeholdTheBeyond.java
@@ -1,4 +1,3 @@
-
package mage.cards.b;
import java.util.UUID;
@@ -8,7 +7,7 @@ import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.filter.FilterCard;
+import mage.filter.StaticFilters;
import mage.target.common.TargetCardInLibrary;
/**
@@ -22,9 +21,8 @@ public final class BeholdTheBeyond extends CardImpl {
// Discard your hand. Search your library for three cards and put those cards into your hand. Then shuffle your library.
this.getSpellAbility().addEffect(new DiscardHandControllerEffect());
- TargetCardInLibrary target = new TargetCardInLibrary(0, 3, new FilterCard("cards"));
+ TargetCardInLibrary target = new TargetCardInLibrary(3, 3, StaticFilters.FILTER_CARD_CARDS);
Effect effect = new SearchLibraryPutInHandEffect(target, false);
- effect.setText("Search your library for three cards, put those cards into your hand, then shuffle");
this.getSpellAbility().addEffect(effect);
}
diff --git a/Mage.Sets/src/mage/cards/c/CarnifexDemon.java b/Mage.Sets/src/mage/cards/c/CarnifexDemon.java
index 94e5e417fd9..bfce9049e28 100644
--- a/Mage.Sets/src/mage/cards/c/CarnifexDemon.java
+++ b/Mage.Sets/src/mage/cards/c/CarnifexDemon.java
@@ -25,7 +25,7 @@ import mage.filter.predicate.mageobject.AnotherPredicate;
*/
public final class CarnifexDemon extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each other creature");
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creature");
static {
filter.add(AnotherPredicate.instance);
diff --git a/Mage.Sets/src/mage/cards/c/ChitteringDoom.java b/Mage.Sets/src/mage/cards/c/ChitteringDoom.java
index cf805f0f967..31cf1bbee1e 100644
--- a/Mage.Sets/src/mage/cards/c/ChitteringDoom.java
+++ b/Mage.Sets/src/mage/cards/c/ChitteringDoom.java
@@ -65,6 +65,6 @@ class ChitteringDoomTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "Whenever you roll a 4 or higher on a die, create a 1/1 green Squirrel creature token";
+ return "Whenever you roll a 4 or higher on a die, create a 1/1 green Squirrel creature token.";
}
}
diff --git a/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java b/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java
index 4033e2222f8..933d08d7330 100644
--- a/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java
+++ b/Mage.Sets/src/mage/cards/c/CrushOfTentacles.java
@@ -26,7 +26,7 @@ public final class CrushOfTentacles extends CardImpl {
// Return all nonland permanents to their owners' hands. If Crush of Tentacles surge cost was paid, create an 8/8 blue Octopus creature token.
getSpellAbility().addEffect(new ReturnToHandFromBattlefieldAllEffect(new FilterNonlandPermanent("nonland permanents")));
Effect effect = new ConditionalOneShotEffect(new CreateTokenEffect(new CrushOfTentaclesToken()), SurgedCondition.instance);
- effect.setText("If {this} surge cost was paid, create an 8/8 blue Octopus creature token");
+ effect.setText("If this spell's surge cost was paid, create an 8/8 blue Octopus creature token");
getSpellAbility().addEffect(effect);
// Surge {3}{U}{U} (You may cast this spell for its surge cost if you or a teammate has cast another spell this turn)
diff --git a/Mage.Sets/src/mage/cards/e/EndlessWurm.java b/Mage.Sets/src/mage/cards/e/EndlessWurm.java
index dd08539c7a0..0b04ebeba9c 100644
--- a/Mage.Sets/src/mage/cards/e/EndlessWurm.java
+++ b/Mage.Sets/src/mage/cards/e/EndlessWurm.java
@@ -1,4 +1,3 @@
-
package mage.cards.e;
import java.util.UUID;
@@ -14,7 +13,6 @@ import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.common.FilterControlledEnchantmentPermanent;
import mage.filter.common.FilterControlledPermanent;
-import mage.target.common.TargetControlledPermanent;
/**
*
@@ -22,7 +20,7 @@ import mage.target.common.TargetControlledPermanent;
*/
public final class EndlessWurm extends CardImpl {
- private static final FilterControlledPermanent filter = new FilterControlledEnchantmentPermanent();
+ private static final FilterControlledPermanent filter = new FilterControlledEnchantmentPermanent("an enchantment");
public EndlessWurm(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
@@ -35,7 +33,7 @@ public final class EndlessWurm extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// At the beginning of your upkeep, sacrifice Endless Wurm unless you sacrifice an enchantment.
- this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))), TargetController.YOU, false));
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new SacrificeTargetCost(filter)), TargetController.YOU, false));
}
diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java b/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java
index b7d56b64a1b..6d0d74c77c8 100644
--- a/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java
+++ b/Mage.Sets/src/mage/cards/e/ExplosiveApparatus.java
@@ -24,7 +24,7 @@ public final class ExplosiveApparatus extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}");
// {3}, {T}, Sacrifice Explosive Apparatus: Explosive Apparatus deals 2 damage to any target.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new GenericManaCost(3));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2, "It"), new GenericManaCost(3));
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java b/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java
index e68aa231563..09d0756992e 100644
--- a/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java
+++ b/Mage.Sets/src/mage/cards/f/FanaticOfXenagos.java
@@ -36,11 +36,11 @@ public final class FanaticOfXenagos extends CardImpl {
this.addAbility(TrampleAbility.getInstance());
// Tribute 1
this.addAbility(new TributeAbility(1));
- // When Fanatic of Xenagos enters the battlefield, if its tribute wasn't paid, it gets +1/+1 and gains haste until end of turn.
+ // When Fanatic of Xenagos enters the battlefield, if tribute wasn't paid, it gets +1/+1 and gains haste until end of turn.
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new BoostSourceEffect(1, 1, Duration.EndOfTurn));
ability.addEffect(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn));
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, it gets +1/+1 and gains haste until end of turn."));
+ "When {this} enters the battlefield, if tribute wasn't paid, it gets +1/+1 and gains haste until end of turn."));
}
private FanaticOfXenagos(final FanaticOfXenagos card) {
diff --git a/Mage.Sets/src/mage/cards/f/FireAnts.java b/Mage.Sets/src/mage/cards/f/FireAnts.java
index eba7657b458..0cd7d8fdb1f 100644
--- a/Mage.Sets/src/mage/cards/f/FireAnts.java
+++ b/Mage.Sets/src/mage/cards/f/FireAnts.java
@@ -23,7 +23,7 @@ import mage.filter.predicate.mageobject.AnotherPredicate;
*/
public final class FireAnts extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each other creature without flying");
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creature without flying");
static {
filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class)));
diff --git a/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java b/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java
index 5df6b0d75f5..0e6352f397e 100644
--- a/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java
+++ b/Mage.Sets/src/mage/cards/f/FlameWreathedPhoenix.java
@@ -37,12 +37,12 @@ public final class FlameWreathedPhoenix extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// Tribute 2 (As this creature enters the battlefield, an opponent of your choice may put 2 +1/+1 counter on it.)
this.addAbility(new TributeAbility(2));
- // When Flame-Wreathed Phoenix enters the battlefield, if its tribute wasn't paid, it gains haste and "When this creature dies, return it to its owner's hand."
+ // When Flame-Wreathed Phoenix enters the battlefield, if tribute wasn't paid, it gains haste and "When this creature dies, return it to its owner's hand."
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield));
Effect effect = new GainAbilitySourceEffect(new DiesSourceTriggeredAbility(new ReturnToHandSourceEffect()));
ability.addEffect(effect);
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, it gains haste and \"When this creature dies, return it to its owner's hand.\""));
+ "When {this} enters the battlefield, if tribute wasn't paid, it gains haste and \"When this creature dies, return it to its owner's hand.\""));
}
diff --git a/Mage.Sets/src/mage/cards/f/FlowstoneSurge.java b/Mage.Sets/src/mage/cards/f/FlowstoneSurge.java
index d95c8ca043e..e3d6f788271 100644
--- a/Mage.Sets/src/mage/cards/f/FlowstoneSurge.java
+++ b/Mage.Sets/src/mage/cards/f/FlowstoneSurge.java
@@ -21,7 +21,7 @@ public final class FlowstoneSurge extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}");
// Creatures you control get +1/-1.
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, -1, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, false)));
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, -1, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, false)));
}
private FlowstoneSurge(final FlowstoneSurge card) {
diff --git a/Mage.Sets/src/mage/cards/g/GaeasBounty.java b/Mage.Sets/src/mage/cards/g/GaeasBounty.java
index daea4b1243f..7a6993c25ce 100644
--- a/Mage.Sets/src/mage/cards/g/GaeasBounty.java
+++ b/Mage.Sets/src/mage/cards/g/GaeasBounty.java
@@ -26,7 +26,7 @@ public final class GaeasBounty extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{G}");
// Search your library for up to two Forest cards, reveal those cards, and put them into your hand. Then shuffle your library.
- this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, filter), false, true));
+ this.getSpellAbility().addEffect(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, filter), true, true));
}
private GaeasBounty(final GaeasBounty card) {
diff --git a/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java b/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java
index 5300b4bcfea..09bbb9848c7 100644
--- a/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java
+++ b/Mage.Sets/src/mage/cards/g/GoldnightCastigator.java
@@ -58,7 +58,7 @@ class GoldnightCastigatorDoubleDamageEffect extends ReplacementEffectImpl {
public GoldnightCastigatorDoubleDamageEffect() {
super(Duration.WhileOnBattlefield, Outcome.Damage);
staticText = "If a source would deal damage to you, it deals double that damage to you instead."
- + "
If a source would deal damage to Goldnight Castigator, it deals double that damage to {this} instead.";
+ + "
If a source would deal damage to {this}, it deals double that damage to {this} instead.";
}
public GoldnightCastigatorDoubleDamageEffect(final GoldnightCastigatorDoubleDamageEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java b/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java
index f437a14ff6b..7c2ac26cfd4 100644
--- a/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java
+++ b/Mage.Sets/src/mage/cards/g/GraftedSkullcap.java
@@ -22,7 +22,7 @@ public final class GraftedSkullcap extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{4}");
// At the beginning of your draw step, draw an additional card.
- this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardSourceControllerEffect(1),
+ this.addAbility(new BeginningOfDrawTriggeredAbility(new DrawCardSourceControllerEffect(1).setText("draw an additional card"),
TargetController.YOU, false));
// At the beginning of your end step, discard your hand.
this.addAbility(new BeginningOfEndStepTriggeredAbility(new DiscardHandControllerEffect(),
diff --git a/Mage.Sets/src/mage/cards/g/GravityNegator.java b/Mage.Sets/src/mage/cards/g/GravityNegator.java
index 9fbfad5d2e1..8b90a1c8ba7 100644
--- a/Mage.Sets/src/mage/cards/g/GravityNegator.java
+++ b/Mage.Sets/src/mage/cards/g/GravityNegator.java
@@ -39,7 +39,7 @@ public final class GravityNegator extends CardImpl {
// Whenenever Gravity Negator attacks, you may pay {C}. If you do, another target creature gains flying until end of turn.
Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new GainAbilityTargetEffect(FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl<>("{C}")), false,
- "Whenever {this} attacks you may pay {C}. If you do, another target creature gains flying until end of turn.");
+ "Whenever {this} attacks, you may pay {C}. If you do, another target creature gains flying until end of turn.");
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_ANOTHER_TARGET_CREATURE));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/h/HowlpackResurgence.java b/Mage.Sets/src/mage/cards/h/HowlpackResurgence.java
index b76b59a417f..e984e13695c 100644
--- a/Mage.Sets/src/mage/cards/h/HowlpackResurgence.java
+++ b/Mage.Sets/src/mage/cards/h/HowlpackResurgence.java
@@ -39,7 +39,7 @@ public final class HowlpackResurgence extends CardImpl {
// Each creature you control that's a Wolf or a Werewolf gets +1/+1 and has trample.
Effect effect = new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter);
- effect.setText("Each creature you control that's Wolf or a Werewolf gets +1/+1");
+ effect.setText("Each creature you control that's a Wolf or a Werewolf gets +1/+1");
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
effect = new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, filter);
effect.setText("and has trample");
diff --git a/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java b/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java
index e7b741ca634..be68937a031 100644
--- a/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java
+++ b/Mage.Sets/src/mage/cards/h/HumbleTheBrute.java
@@ -32,7 +32,7 @@ public final class HumbleTheBrute extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
// Investigate.
- this.getSpellAbility().addEffect(new InvestigateEffect());
+ this.getSpellAbility().addEffect(new InvestigateEffect().concatBy("
"));
}
private HumbleTheBrute(final HumbleTheBrute card) {
diff --git a/Mage.Sets/src/mage/cards/m/MightBeyondReason.java b/Mage.Sets/src/mage/cards/m/MightBeyondReason.java
index eced211738a..1bddab66c32 100644
--- a/Mage.Sets/src/mage/cards/m/MightBeyondReason.java
+++ b/Mage.Sets/src/mage/cards/m/MightBeyondReason.java
@@ -26,7 +26,7 @@ public final class MightBeyondReason extends CardImpl {
new AddCountersTargetEffect(CounterType.P1P1.createInstance(3)),
new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)),
DeliriumCondition.instance,
- "Put two +1/+1 counter on target creature.
"
+ "Put two +1/+1 counters on target creature.
"
+ "Delirium — Put three +1/+1 counters on that creature instead if there are four or more card types among cards in your graveyard"
));
getSpellAbility().addTarget(new TargetCreaturePermanent());
diff --git a/Mage.Sets/src/mage/cards/m/MischiefAndMayhem.java b/Mage.Sets/src/mage/cards/m/MischiefAndMayhem.java
index 3217998480c..3b2c2c39d2e 100644
--- a/Mage.Sets/src/mage/cards/m/MischiefAndMayhem.java
+++ b/Mage.Sets/src/mage/cards/m/MischiefAndMayhem.java
@@ -1,4 +1,3 @@
-
package mage.cards.m;
import java.util.UUID;
@@ -7,7 +6,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
-import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.StaticFilters;
import mage.target.common.TargetCreaturePermanent;
/**
@@ -21,7 +20,7 @@ public final class MischiefAndMayhem extends CardImpl {
// Up to two target creatures each get +4/+4 until end of turn.
this.getSpellAbility().addEffect(new BoostTargetEffect(4, 4, Duration.EndOfTurn));
- this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2, new FilterCreaturePermanent("creatures each"), false));
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2, StaticFilters.FILTER_PERMANENT_CREATURES, false));
}
private MischiefAndMayhem(final MischiefAndMayhem card) {
diff --git a/Mage.Sets/src/mage/cards/n/NecrogenCenser.java b/Mage.Sets/src/mage/cards/n/NecrogenCenser.java
index ab5574f5e6a..1468422efe0 100644
--- a/Mage.Sets/src/mage/cards/n/NecrogenCenser.java
+++ b/Mage.Sets/src/mage/cards/n/NecrogenCenser.java
@@ -25,7 +25,7 @@ public final class NecrogenCenser extends CardImpl {
public NecrogenCenser (UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
- this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)), "Necrogen Censer enters the battlefield with two charge counters on it"));
+ this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2)), "with two charge counters on it"));
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(2), new TapSourceCost());
ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(1)));
ability.addTarget(new TargetPlayer());
diff --git a/Mage.Sets/src/mage/cards/n/NessianDemolok.java b/Mage.Sets/src/mage/cards/n/NessianDemolok.java
index 0e0d945d4fc..9c442762e72 100644
--- a/Mage.Sets/src/mage/cards/n/NessianDemolok.java
+++ b/Mage.Sets/src/mage/cards/n/NessianDemolok.java
@@ -42,7 +42,7 @@ public final class NessianDemolok extends CardImpl {
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect(), false);
ability.addTarget(new TargetPermanent(filter));
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, destroy target noncreature permanent."));
+ "When {this} enters the battlefield, if tribute wasn't paid, destroy target noncreature permanent."));
}
private NessianDemolok(final NessianDemolok card) {
diff --git a/Mage.Sets/src/mage/cards/n/NezumiBladeblesser.java b/Mage.Sets/src/mage/cards/n/NezumiBladeblesser.java
index f2cea8c2d41..9b124e6c8cd 100644
--- a/Mage.Sets/src/mage/cards/n/NezumiBladeblesser.java
+++ b/Mage.Sets/src/mage/cards/n/NezumiBladeblesser.java
@@ -47,7 +47,7 @@ public final class NezumiBladeblesser extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(new MenaceAbility()),
enchantmentCondition,
- "{this} has menace as long as you control an enchantment (This creature can't be blocked except by two or more creatures.)" // temporary
+ "{this} has menace as long as you control an enchantment. (This creature can't be blocked except by two or more creatures.)" // temporary
)).addHint(enchantmentHint));
}
diff --git a/Mage.Sets/src/mage/cards/n/NimDeathmantle.java b/Mage.Sets/src/mage/cards/n/NimDeathmantle.java
index dc58383cd41..0ee50775419 100644
--- a/Mage.Sets/src/mage/cards/n/NimDeathmantle.java
+++ b/Mage.Sets/src/mage/cards/n/NimDeathmantle.java
@@ -48,7 +48,7 @@ public final class NimDeathmantle extends CardImpl {
).setText(", and is a black"));
ability.addEffect(new SetCardSubtypeAttachedEffect(
Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT, SubType.ZOMBIE
- ).setText("Zombie"));
+ ).setText(" Zombie"));
this.addAbility(ability);
// Whenever a nontoken creature is put into your graveyard from the battlefield, you may pay {4}. If you do, return that card to the battlefield and attach Nim Deathmantle to it.
diff --git a/Mage.Sets/src/mage/cards/o/OracleOfBones.java b/Mage.Sets/src/mage/cards/o/OracleOfBones.java
index 595d90c4739..0c033cf150e 100644
--- a/Mage.Sets/src/mage/cards/o/OracleOfBones.java
+++ b/Mage.Sets/src/mage/cards/o/OracleOfBones.java
@@ -39,7 +39,7 @@ public final class OracleOfBones extends CardImpl {
StaticFilters.FILTER_CARD_INSTANT_OR_SORCERY
), false),
TributeNotPaidCondition.instance, "When {this} enters the battlefield, " +
- "if its tribute wasn't paid, you may cast an instant or " +
+ "if tribute wasn't paid, you may cast an instant or " +
"sorcery spell from your hand without paying its mana cost."
));
}
diff --git a/Mage.Sets/src/mage/cards/o/OrcGeneral.java b/Mage.Sets/src/mage/cards/o/OrcGeneral.java
index 84c5db9317f..82735ea427b 100644
--- a/Mage.Sets/src/mage/cards/o/OrcGeneral.java
+++ b/Mage.Sets/src/mage/cards/o/OrcGeneral.java
@@ -1,4 +1,3 @@
-
package mage.cards.o;
import java.util.UUID;
@@ -27,7 +26,7 @@ import mage.target.common.TargetControlledPermanent;
public final class OrcGeneral extends CardImpl {
private static final FilterControlledPermanent filterOrcOrGoblin = new FilterControlledPermanent("another Orc or Goblin");
- private static final FilterCreaturePermanent filterOrc = new FilterCreaturePermanent("Other Orc creatures");
+ private static final FilterCreaturePermanent filterOrc = new FilterCreaturePermanent("Orc creatures");
static {
filterOrcOrGoblin.add(Predicates.or(SubType.ORC.getPredicate(),
diff --git a/Mage.Sets/src/mage/cards/o/Ornitharch.java b/Mage.Sets/src/mage/cards/o/Ornitharch.java
index a2aa7d2d1d1..1e173703080 100644
--- a/Mage.Sets/src/mage/cards/o/Ornitharch.java
+++ b/Mage.Sets/src/mage/cards/o/Ornitharch.java
@@ -36,7 +36,7 @@ public final class Ornitharch extends CardImpl {
// When Ornitharch enters the battlefield, if tribute wasn't paid, create two 1/1 white Bird creature tokens with flying.
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BirdToken(), 2), false);
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, create two 1/1 white Bird creature tokens with flying."));
+ "When {this} enters the battlefield, if tribute wasn't paid, create two 1/1 white Bird creature tokens with flying."));
}
private Ornitharch(final Ornitharch card) {
diff --git a/Mage.Sets/src/mage/cards/p/PharagaxGiant.java b/Mage.Sets/src/mage/cards/p/PharagaxGiant.java
index 72a19f6aa9b..8fe029d97be 100644
--- a/Mage.Sets/src/mage/cards/p/PharagaxGiant.java
+++ b/Mage.Sets/src/mage/cards/p/PharagaxGiant.java
@@ -33,7 +33,7 @@ public final class PharagaxGiant extends CardImpl {
// When Pharagax Giant enters the battlefield, if tribute wasn't paid, Pharagax Giant deals 5 damage to each opponent.
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DamagePlayersEffect(5, TargetController.OPPONENT), false);
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, {this} deals 5 damage to each opponent."));
+ "When {this} enters the battlefield, if tribute wasn't paid, {this} deals 5 damage to each opponent."));
}
private PharagaxGiant(final PharagaxGiant card) {
diff --git a/Mage.Sets/src/mage/cards/p/PlanarVoid.java b/Mage.Sets/src/mage/cards/p/PlanarVoid.java
index 854f0ed6216..1bf2cdbaf68 100644
--- a/Mage.Sets/src/mage/cards/p/PlanarVoid.java
+++ b/Mage.Sets/src/mage/cards/p/PlanarVoid.java
@@ -17,7 +17,7 @@ import java.util.UUID;
*/
public final class PlanarVoid extends CardImpl {
- private static final FilterCard filter = new FilterCard();
+ private static final FilterCard filter = new FilterCard("another card");
static {
filter.add(AnotherPredicate.instance);
}
@@ -26,7 +26,8 @@ public final class PlanarVoid extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}");
// Whenever another card is put into a graveyard from anywhere, exile that card.
- this.addAbility(new PutCardIntoGraveFromAnywhereAllTriggeredAbility(new ExileTargetEffect(), false, filter, TargetController.ANY, SetTargetPointer.CARD));
+ this.addAbility(new PutCardIntoGraveFromAnywhereAllTriggeredAbility(new ExileTargetEffect()
+ .setText("exile that card"), false, filter, TargetController.ANY, SetTargetPointer.CARD));
}
private PlanarVoid(final PlanarVoid card) {
diff --git a/Mage.Sets/src/mage/cards/p/PresenceOfTheMaster.java b/Mage.Sets/src/mage/cards/p/PresenceOfTheMaster.java
index 69353865711..32768916fe2 100644
--- a/Mage.Sets/src/mage/cards/p/PresenceOfTheMaster.java
+++ b/Mage.Sets/src/mage/cards/p/PresenceOfTheMaster.java
@@ -75,7 +75,7 @@ class PresenceOfTheMasterTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "Whenever a player casts an enchantment spell, counter it";
+ return "Whenever a player casts an enchantment spell, counter it.";
}
}
diff --git a/Mage.Sets/src/mage/cards/r/RainOfSalt.java b/Mage.Sets/src/mage/cards/r/RainOfSalt.java
index b8b7bbb5a1b..566d3b49338 100644
--- a/Mage.Sets/src/mage/cards/r/RainOfSalt.java
+++ b/Mage.Sets/src/mage/cards/r/RainOfSalt.java
@@ -1,5 +1,3 @@
-
-
package mage.cards.r;
import java.util.UUID;
@@ -17,12 +15,11 @@ import mage.target.TargetPermanent;
*/
public final class RainOfSalt extends CardImpl {
- private static final FilterPermanent filter = new FilterLandPermanent();
+ private static final FilterPermanent filter = new FilterLandPermanent("lands");
public RainOfSalt(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{4}{R}{R}");
-
// Destroy two target lands.
this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(2, filter));
diff --git a/Mage.Sets/src/mage/cards/s/SabertoothCobra.java b/Mage.Sets/src/mage/cards/s/SabertoothCobra.java
index 101d364d4bf..f49d0ae002d 100644
--- a/Mage.Sets/src/mage/cards/s/SabertoothCobra.java
+++ b/Mage.Sets/src/mage/cards/s/SabertoothCobra.java
@@ -34,7 +34,7 @@ public final class SabertoothCobra extends CardImpl {
effect = new AddPoisonCounterTargetEffect(1);
effect.setText("That player gets another poison counter.");
ability.addEffect(new UnlessPaysDelayedEffect(new ManaCostsImpl<>("{2}"), effect, PhaseStep.UPKEEP, true,
- "That player gets another poison counter at the beginning of their next upkeep unless they pay {2} before that turn."));
+ "The player gets another poison counter at the beginning of their next upkeep unless they pay {2} before that step."));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/ShriekingMogg.java b/Mage.Sets/src/mage/cards/s/ShriekingMogg.java
index 1bb287ad28e..eb0835cc703 100644
--- a/Mage.Sets/src/mage/cards/s/ShriekingMogg.java
+++ b/Mage.Sets/src/mage/cards/s/ShriekingMogg.java
@@ -1,4 +1,3 @@
-
package mage.cards.s;
import java.util.UUID;
@@ -20,7 +19,7 @@ import mage.filter.predicate.mageobject.AnotherPredicate;
*/
public final class ShriekingMogg extends CardImpl {
- static final FilterCreaturePermanent filter = new FilterCreaturePermanent("all other creatures");
+ static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creatures");
static {
filter.add(AnotherPredicate.instance);
diff --git a/Mage.Sets/src/mage/cards/s/ShrikeHarpy.java b/Mage.Sets/src/mage/cards/s/ShrikeHarpy.java
index 00033d1a63c..cc30c42dcd7 100644
--- a/Mage.Sets/src/mage/cards/s/ShrikeHarpy.java
+++ b/Mage.Sets/src/mage/cards/s/ShrikeHarpy.java
@@ -40,7 +40,7 @@ public final class ShrikeHarpy extends CardImpl {
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new SacrificeEffect(StaticFilters.FILTER_PERMANENT_A_CREATURE, 1, "target opponent"), false);
ability.addTarget(new TargetOpponent());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, target opponent sacrifices a creature."));
+ "When {this} enters the battlefield, if tribute wasn't paid, target opponent sacrifices a creature."));
}
private ShrikeHarpy(final ShrikeHarpy card) {
diff --git a/Mage.Sets/src/mage/cards/s/SirenOfTheFangedCoast.java b/Mage.Sets/src/mage/cards/s/SirenOfTheFangedCoast.java
index 393da2b7cb5..760a0392185 100644
--- a/Mage.Sets/src/mage/cards/s/SirenOfTheFangedCoast.java
+++ b/Mage.Sets/src/mage/cards/s/SirenOfTheFangedCoast.java
@@ -38,7 +38,7 @@ public final class SirenOfTheFangedCoast extends CardImpl {
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainControlTargetEffect(Duration.EndOfGame, true), false);
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, gain control of target creature."));
+ "When {this} enters the battlefield, if tribute wasn't paid, gain control of target creature."));
}
private SirenOfTheFangedCoast(final SirenOfTheFangedCoast card) {
diff --git a/Mage.Sets/src/mage/cards/s/SnakeOfTheGoldenGrove.java b/Mage.Sets/src/mage/cards/s/SnakeOfTheGoldenGrove.java
index d00dc8f719e..d475fcc895d 100644
--- a/Mage.Sets/src/mage/cards/s/SnakeOfTheGoldenGrove.java
+++ b/Mage.Sets/src/mage/cards/s/SnakeOfTheGoldenGrove.java
@@ -32,7 +32,7 @@ public final class SnakeOfTheGoldenGrove extends CardImpl {
// When Snake of the Golden Grove enters the battlefield, if tribute wasn't paid, you gain 4 life.
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(4), false);
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, you gain 4 life."));
+ "When {this} enters the battlefield, if tribute wasn't paid, you gain 4 life."));
}
private SnakeOfTheGoldenGrove(final SnakeOfTheGoldenGrove card) {
diff --git a/Mage.Sets/src/mage/cards/s/SpiritualAsylum.java b/Mage.Sets/src/mage/cards/s/SpiritualAsylum.java
index f5d590f857d..26b7b79734e 100644
--- a/Mage.Sets/src/mage/cards/s/SpiritualAsylum.java
+++ b/Mage.Sets/src/mage/cards/s/SpiritualAsylum.java
@@ -22,7 +22,7 @@ import mage.filter.predicate.Predicates;
*/
public final class SpiritualAsylum extends CardImpl {
- private static final FilterPermanent filter = new FilterPermanent("Creatures and lands you control");
+ private static final FilterPermanent filter = new FilterPermanent("Creatures and lands");
static {
filter.add(Predicates.or(
diff --git a/Mage.Sets/src/mage/cards/s/SpreadingAlgae.java b/Mage.Sets/src/mage/cards/s/SpreadingAlgae.java
index 591b833a65c..b2e2446cc8c 100644
--- a/Mage.Sets/src/mage/cards/s/SpreadingAlgae.java
+++ b/Mage.Sets/src/mage/cards/s/SpreadingAlgae.java
@@ -40,7 +40,8 @@ public final class SpreadingAlgae extends CardImpl {
Ability ability = new EnchantAbility(auraTarget);
this.addAbility(ability);
// When enchanted land becomes tapped, destroy it.
- this.addAbility(new BecomesTappedAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), "enchanted land"));
+ this.addAbility(new BecomesTappedAttachedTriggeredAbility(new DestroyAttachedToEffect("it"), "enchanted land")
+ .setTriggerPhrase("When enchanted land becomes tapped, "));
// When Spreading Algae is put into a graveyard from the battlefield, return Spreading Algae to its owner's hand.
this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new ReturnToHandSourceEffect()));
diff --git a/Mage.Sets/src/mage/cards/t/TaintedAether.java b/Mage.Sets/src/mage/cards/t/TaintedAether.java
index 7b3faae51be..4a0b1c4babb 100644
--- a/Mage.Sets/src/mage/cards/t/TaintedAether.java
+++ b/Mage.Sets/src/mage/cards/t/TaintedAether.java
@@ -32,7 +32,7 @@ public final class TaintedAether extends CardImpl {
// Whenever a creature enters the battlefield, its controller sacrifices a creature or land.
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new SacrificeEffect(filter, 1, ""),
StaticFilters.FILTER_PERMANENT_CREATURES, false, SetTargetPointer.PLAYER,
- "Whenever a creature enters the battlefield, its controller sacrifices a creature or land"));
+ "Whenever a creature enters the battlefield, its controller sacrifices a creature or land."));
}
private TaintedAether(final TaintedAether card) {
diff --git a/Mage.Sets/src/mage/cards/t/ThunderBrute.java b/Mage.Sets/src/mage/cards/t/ThunderBrute.java
index d7660024b83..3a409c59f8d 100644
--- a/Mage.Sets/src/mage/cards/t/ThunderBrute.java
+++ b/Mage.Sets/src/mage/cards/t/ThunderBrute.java
@@ -37,7 +37,7 @@ public final class ThunderBrute extends CardImpl {
// When Thunder Brute enters the battlefield, if tribute wasn't paid, it gains haste until end of turn.
TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), false);
this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, TributeNotPaidCondition.instance,
- "When {this} enters the battlefield, if its tribute wasn't paid, it gains haste until end of turn."));
+ "When {this} enters the battlefield, if tribute wasn't paid, it gains haste until end of turn."));
}
private ThunderBrute(final ThunderBrute card) {
diff --git a/Mage.Sets/src/mage/cards/t/TimeSpiral.java b/Mage.Sets/src/mage/cards/t/TimeSpiral.java
index 7ea1050374d..bde57e51582 100644
--- a/Mage.Sets/src/mage/cards/t/TimeSpiral.java
+++ b/Mage.Sets/src/mage/cards/t/TimeSpiral.java
@@ -31,7 +31,7 @@ public final class TimeSpiral extends CardImpl {
Effect effect = new DrawCardAllEffect(7);
effect.setText(", then draws seven cards");
this.getSpellAbility().addEffect(effect);
- this.getSpellAbility().addEffect(new UntapLandsEffect(6));
+ this.getSpellAbility().addEffect(new UntapLandsEffect(6).concatBy("You"));
}
private TimeSpiral(final TimeSpiral card) {
diff --git a/Mage.Sets/src/mage/cards/t/TrueFaithCenser.java b/Mage.Sets/src/mage/cards/t/TrueFaithCenser.java
index 1d505d8511d..602d8675833 100644
--- a/Mage.Sets/src/mage/cards/t/TrueFaithCenser.java
+++ b/Mage.Sets/src/mage/cards/t/TrueFaithCenser.java
@@ -1,4 +1,3 @@
-
package mage.cards.t;
import java.util.UUID;
@@ -22,7 +21,7 @@ import mage.constants.*;
*/
public final class TrueFaithCenser extends CardImpl {
- private static final String staticText = "As long as equipped creature is a Human, it gets an addtional +1/+0";
+ private static final String staticText = "As long as equipped creature is a Human, it gets an additional +1/+0";
public TrueFaithCenser(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
diff --git a/Mage.Sets/src/mage/cards/v/VenomousFangs.java b/Mage.Sets/src/mage/cards/v/VenomousFangs.java
index ebdb5ef2a61..2fbde0d2b7f 100644
--- a/Mage.Sets/src/mage/cards/v/VenomousFangs.java
+++ b/Mage.Sets/src/mage/cards/v/VenomousFangs.java
@@ -33,7 +33,8 @@ public final class VenomousFangs extends CardImpl {
this.addAbility(ability);
// Whenever enchanted creature deals damage to a creature, destroy the other creature.
- this.addAbility(new DealsDamageToACreatureAttachedTriggeredAbility(new DestroyTargetEffect(), false, "enchanted creature", false, true));
+ this.addAbility(new DealsDamageToACreatureAttachedTriggeredAbility(new DestroyTargetEffect()
+ .setText("destroy the other creature"), false, "enchanted creature", false, true));
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackAnyPlayerAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackAnyPlayerAllEffect.java
index cd52492b0a4..6c748169ae2 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackAnyPlayerAllEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackAnyPlayerAllEffect.java
@@ -21,7 +21,6 @@ public class CantAttackAnyPlayerAllEffect extends RestrictionEffect {
this.filter = filter;
StringBuilder sb = new StringBuilder(filter.getMessage()).append(" can't attack");
if (!duration.toString().isEmpty()) {
- sb.append(' ');
if (duration == Duration.EndOfTurn) {
sb.append(" this turn");
} else {
diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesEnchantmentSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesEnchantmentSourceEffect.java
index 49eefefa57e..dd57998ef35 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesEnchantmentSourceEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesEnchantmentSourceEffect.java
@@ -14,7 +14,7 @@ public class BecomesEnchantmentSourceEffect extends ContinuousEffectImpl {
public BecomesEnchantmentSourceEffect() {
super(Duration.Custom, Layer.TypeChangingEffects_4, SubLayer.NA, Outcome.AddAbility);
- staticText = "{this} becomes an Enchantment";
+ staticText = "{this} becomes an enchantment";
dependencyTypes.add(DependencyType.EnchantmentAddingRemoving);
}