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) {