diff --git a/Mage.Sets/src/mage/cards/c/ChemistersTrick.java b/Mage.Sets/src/mage/cards/c/ChemistersTrick.java
index f3212010f31..7aeeb029592 100644
--- a/Mage.Sets/src/mage/cards/c/ChemistersTrick.java
+++ b/Mage.Sets/src/mage/cards/c/ChemistersTrick.java
@@ -32,7 +32,7 @@ public final class ChemistersTrick extends CardImpl {
// Target creature you don't control gets -2/-0 until end of turn and attacks this turn if able.
this.getSpellAbility().addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL));
this.getSpellAbility().addEffect(new BoostTargetEffect(-2, 0, Duration.EndOfTurn));
- this.getSpellAbility().addEffect(new AttacksIfAbleTargetEffect(Duration.EndOfTurn));
+ this.getSpellAbility().addEffect(new AttacksIfAbleTargetEffect(Duration.EndOfTurn).setText("and attacks this turn if able"));
// Overload {3}{U}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")
OverloadAbility ability = new OverloadAbility(this, new BoostAllEffect(-2, 0, Duration.EndOfTurn, StaticFilters.FILTER_CREATURE_YOU_DONT_CONTROL, false), new ManaCostsImpl<>("{3}{U}{R}"));
diff --git a/Mage.Sets/src/mage/cards/c/CuriousCadaver.java b/Mage.Sets/src/mage/cards/c/CuriousCadaver.java
index bb5dbcf71ff..0c58f56c104 100644
--- a/Mage.Sets/src/mage/cards/c/CuriousCadaver.java
+++ b/Mage.Sets/src/mage/cards/c/CuriousCadaver.java
@@ -34,7 +34,7 @@ public final class CuriousCadaver extends CardImpl {
this.addAbility(new SacrificePermanentTriggeredAbility(
Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), filter,
TargetController.YOU, SetTargetPointer.NONE, false
- ));
+ ).setTriggerPhrase("When you sacrifice a Clue, "));
}
private CuriousCadaver(final CuriousCadaver card) {
diff --git a/Mage.Sets/src/mage/cards/f/FloodedWoodlands.java b/Mage.Sets/src/mage/cards/f/FloodedWoodlands.java
index 347276f455c..3e842dad7b6 100644
--- a/Mage.Sets/src/mage/cards/f/FloodedWoodlands.java
+++ b/Mage.Sets/src/mage/cards/f/FloodedWoodlands.java
@@ -1,4 +1,3 @@
-
package mage.cards.f;
import java.util.UUID;
@@ -13,11 +12,9 @@ import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.StaticFilters;
-import mage.filter.common.FilterControlledLandPermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
-import mage.target.common.TargetControlledPermanent;
/**
*
@@ -27,7 +24,6 @@ public final class FloodedWoodlands extends CardImpl {
public FloodedWoodlands(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}{B}");
-
// Green creatures can't attack unless their controller sacrifices a land for each green creature they control that's attacking.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new FloodedWoodlandsCostToAttackBlockEffect()));
@@ -49,7 +45,8 @@ class FloodedWoodlandsCostToAttackBlockEffect extends PayCostToAttackBlockEffect
FloodedWoodlandsCostToAttackBlockEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment, RestrictType.ATTACK,
new SacrificeTargetCost(StaticFilters.FILTER_LAND));
- staticText = "Green creatures can't attack unless their controller sacrifices a land (This cost is paid as attackers are declared.)";
+ staticText = "Green creatures can't attack unless their controller sacrifices a land for each " +
+ "green creature they control that's attacking. (This cost is paid as attackers are declared.)";
}
private FloodedWoodlandsCostToAttackBlockEffect(final FloodedWoodlandsCostToAttackBlockEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/g/GrandMelee.java b/Mage.Sets/src/mage/cards/g/GrandMelee.java
index d8680b3fff5..423518d9c63 100644
--- a/Mage.Sets/src/mage/cards/g/GrandMelee.java
+++ b/Mage.Sets/src/mage/cards/g/GrandMelee.java
@@ -1,4 +1,3 @@
-
package mage.cards.g;
import java.util.UUID;
@@ -11,7 +10,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
-import mage.watchers.common.AttackedThisTurnWatcher;
/**
*
@@ -23,11 +21,11 @@ public final class GrandMelee extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}");
// All creatures attack each turn if able.
- Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new AttacksIfAbleAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES));
+ Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new AttacksIfAbleAllEffect(StaticFilters.FILTER_PERMANENT_ALL_CREATURES));
this.addAbility(ability);
// All creatures block each turn if able.
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BlocksIfAbleAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES)));
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BlocksIfAbleAllEffect(StaticFilters.FILTER_PERMANENT_ALL_CREATURES)));
}
private GrandMelee(final GrandMelee card) {
diff --git a/Mage.Sets/src/mage/cards/i/InvasionPlans.java b/Mage.Sets/src/mage/cards/i/InvasionPlans.java
index 1a3bed0dea6..0c003f6ce68 100644
--- a/Mage.Sets/src/mage/cards/i/InvasionPlans.java
+++ b/Mage.Sets/src/mage/cards/i/InvasionPlans.java
@@ -24,7 +24,7 @@ public final class InvasionPlans extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}");
// All creatures block each turn if able.
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BlocksIfAbleAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES)));
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BlocksIfAbleAllEffect(StaticFilters.FILTER_PERMANENT_ALL_CREATURES)));
// The attacking player chooses how each creature blocks each turn.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new InvasionPlansEffect()));
}
diff --git a/Mage.Sets/src/mage/cards/j/Jolt.java b/Mage.Sets/src/mage/cards/j/Jolt.java
index 6ccc8850e52..738d45b9c8f 100644
--- a/Mage.Sets/src/mage/cards/j/Jolt.java
+++ b/Mage.Sets/src/mage/cards/j/Jolt.java
@@ -36,7 +36,8 @@ public final class Jolt extends CardImpl {
this.getSpellAbility().addTarget(new TargetPermanent(filter));
// Draw a card at the beginning of the next turn's upkeep.
- this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false));
+ this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(
+ new DrawCardSourceControllerEffect(1)), false).concatBy("
"));
}
private Jolt(final Jolt card) {
diff --git a/Mage.Sets/src/mage/cards/m/Melee.java b/Mage.Sets/src/mage/cards/m/Melee.java
index acec9ed3fa1..dfa3904ce31 100644
--- a/Mage.Sets/src/mage/cards/m/Melee.java
+++ b/Mage.Sets/src/mage/cards/m/Melee.java
@@ -54,7 +54,7 @@ public final class Melee extends CardImpl {
this.getSpellAbility().addWatcher(new ControlCombatRedundancyWatcher());
// Whenever a creature attacks and isn't blocked this combat, untap it and remove it from combat.
- this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new MeleeTriggeredAbility()));
+ this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new MeleeTriggeredAbility()).concatBy("
"));
}
private Melee(final Melee card) {
diff --git a/Mage.Sets/src/mage/cards/m/MishraTamerOfMakFawa.java b/Mage.Sets/src/mage/cards/m/MishraTamerOfMakFawa.java
index fd74ce8ea93..9318ea894ec 100644
--- a/Mage.Sets/src/mage/cards/m/MishraTamerOfMakFawa.java
+++ b/Mage.Sets/src/mage/cards/m/MishraTamerOfMakFawa.java
@@ -38,7 +38,7 @@ public final class MishraTamerOfMakFawa extends CardImpl {
new WardAbility(new SacrificeTargetCost(
StaticFilters.FILTER_CONTROLLED_PERMANENT_SHORT_TEXT
), false), Duration.WhileOnBattlefield
- )));
+ ).withForceQuotes()));
// Each artifact card in your graveyard has unearth {1}{B}{R}
this.addAbility(new SimpleStaticAbility(new MishraTamerOfMakFawaEffect()));
diff --git a/Mage.Sets/src/mage/cards/n/Norritt.java b/Mage.Sets/src/mage/cards/n/Norritt.java
index 416c33ea643..84aa8f4f123 100644
--- a/Mage.Sets/src/mage/cards/n/Norritt.java
+++ b/Mage.Sets/src/mage/cards/n/Norritt.java
@@ -1,4 +1,3 @@
-
package mage.cards.n;
import java.util.UUID;
@@ -26,7 +25,6 @@ import mage.filter.predicate.permanent.ControlledFromStartOfControllerTurnPredic
import mage.game.Game;
import mage.target.common.TargetCreaturePermanent;
import mage.target.targetpointer.FixedTarget;
-import mage.watchers.common.AttackedThisTurnWatcher;
/**
*
@@ -65,7 +63,7 @@ public final class Norritt extends CardImpl {
Ability ability2 = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new AttacksIfAbleTargetEffect(Duration.EndOfTurn),
new TapSourceCost(), BeforeAttackersAreDeclaredCondition.instance,
"{T}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. "
- + "That creature attacks this turn if able. If it doesn't, destroy it at the beginning of the next end step. "
+ + "That creature attacks this turn if able. Destroy it at the beginning of the next end step if it didn't attack this turn. "
+ "Activate only before attackers are declared.");
ability2.addEffect(new NorrittDelayedDestroyEffect());
ability2.addTarget(new TargetCreaturePermanent(filterCreature));
diff --git a/Mage.Sets/src/mage/cards/r/Reclamation.java b/Mage.Sets/src/mage/cards/r/Reclamation.java
index 99ec81e27bb..df1de0c7d88 100644
--- a/Mage.Sets/src/mage/cards/r/Reclamation.java
+++ b/Mage.Sets/src/mage/cards/r/Reclamation.java
@@ -1,4 +1,3 @@
-
package mage.cards.r;
import java.util.UUID;
@@ -13,11 +12,9 @@ import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.filter.StaticFilters;
-import mage.filter.common.FilterControlledLandPermanent;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
-import mage.target.common.TargetControlledPermanent;
/**
*
@@ -27,7 +24,6 @@ public final class Reclamation extends CardImpl {
public Reclamation(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}{W}");
-
// Black creatures can't attack unless their controller sacrifices a land for each black creature they control that's attacking.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ReclamationCostToAttackBlockEffect()));
@@ -49,7 +45,8 @@ class ReclamationCostToAttackBlockEffect extends PayCostToAttackBlockEffectImpl
ReclamationCostToAttackBlockEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment, RestrictType.ATTACK,
new SacrificeTargetCost(StaticFilters.FILTER_LAND));
- staticText = "Black creatures can't attack unless their controller sacrifices a land (This cost is paid as attackers are declared.)";
+ staticText = "Black creatures can't attack unless their controller sacrifices a land for each " +
+ "black creature they control that's attacking. (This cost is paid as attackers are declared.)";
}
private ReclamationCostToAttackBlockEffect(final ReclamationCostToAttackBlockEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/t/TeysaOpulentOligarch.java b/Mage.Sets/src/mage/cards/t/TeysaOpulentOligarch.java
index 1f2de1ee0e3..7e55f21d57f 100644
--- a/Mage.Sets/src/mage/cards/t/TeysaOpulentOligarch.java
+++ b/Mage.Sets/src/mage/cards/t/TeysaOpulentOligarch.java
@@ -52,7 +52,8 @@ public final class TeysaOpulentOligarch extends CardImpl {
// At the beginning of your end step, investigate for each opponent who lost life this turn.
this.addAbility(
new BeginningOfEndStepTriggeredAbility(
- new InvestigateEffect(TeysaOpulentOligarchDynamicValue.instance),
+ new InvestigateEffect(TeysaOpulentOligarchDynamicValue.instance)
+ .setText("investigate for each opponent who lost life this turn"),
TargetController.YOU,
false
).addHint(hint)
diff --git a/Mage.Sets/src/mage/cards/v/VentifactBottle.java b/Mage.Sets/src/mage/cards/v/VentifactBottle.java
index 4583ce1733b..e1bf1300246 100644
--- a/Mage.Sets/src/mage/cards/v/VentifactBottle.java
+++ b/Mage.Sets/src/mage/cards/v/VentifactBottle.java
@@ -37,7 +37,7 @@ public final class VentifactBottle extends CardImpl {
// {X}{1}, {tap}: Put X charge counters on Ventifact Bottle. Activate this ability only any time you could cast a sorcery.
Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD,
new AddCountersSourceEffect(CounterType.CHARGE.createInstance(), ManacostVariableValue.REGULAR, true),
- new ManaCostsImpl<>("{1}{X}"));
+ new ManaCostsImpl<>("{X}{1}"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
// At the beginning of your precombat main phase, if Ventifact Bottle has a charge counter on it, tap it and remove all charge counters from it. Add {C} for each charge counter removed this way.
diff --git a/Mage.Sets/src/mage/cards/w/WastefulHarvest.java b/Mage.Sets/src/mage/cards/w/WastefulHarvest.java
index ccf40e515e5..31f9250b572 100644
--- a/Mage.Sets/src/mage/cards/w/WastefulHarvest.java
+++ b/Mage.Sets/src/mage/cards/w/WastefulHarvest.java
@@ -17,7 +17,8 @@ public final class WastefulHarvest extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{G}");
// Mill five cards. You may put a permanent card from among the cards milled this way into your hand.
- this.getSpellAbility().addEffect(new MillThenPutInHandEffect(5, StaticFilters.FILTER_CARD_A_PERMANENT));
+ this.getSpellAbility().addEffect(new MillThenPutInHandEffect(5, StaticFilters.FILTER_CARD_A_PERMANENT)
+ .withTextOptions("the cards milled this way"));
}
private WastefulHarvest(final WastefulHarvest card) {