diff --git a/Mage.Sets/src/mage/cards/c/CrackInTime.java b/Mage.Sets/src/mage/cards/c/CrackInTime.java index 8f027152de3..2f63d5e4cf4 100644 --- a/Mage.Sets/src/mage/cards/c/CrackInTime.java +++ b/Mage.Sets/src/mage/cards/c/CrackInTime.java @@ -36,7 +36,8 @@ public final class CrackInTime extends CardImpl { this.addAbility(new VanishingSacrificeAbility()); // When Crack in Time enters the battlefield and at the beginning of your precombat main phase, exile target creature an opponent controls until Crack in Time leaves the battlefield. - ability = new OrTriggeredAbility(Zone.BATTLEFIELD, new ExileUntilSourceLeavesEffect(), + ability = new OrTriggeredAbility(Zone.BATTLEFIELD, new ExileUntilSourceLeavesEffect(), false, + "When {this} enters the battlefield and at the beginning of your precombat main phase, ", new EntersBattlefieldTriggeredAbility(null), new BeginningOfPreCombatMainTriggeredAbility(null, TargetController.YOU, false) ); diff --git a/Mage.Sets/src/mage/cards/d/DalekDrone.java b/Mage.Sets/src/mage/cards/d/DalekDrone.java index 0849f1bc937..532ef46fa3e 100644 --- a/Mage.Sets/src/mage/cards/d/DalekDrone.java +++ b/Mage.Sets/src/mage/cards/d/DalekDrone.java @@ -35,7 +35,7 @@ public final class DalekDrone extends CardImpl { // Exterminate! -- When Dalek Drone enters the battlefield, destroy target creature an opponent controls. That player loses 3 life. Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()); - ability.addEffect(new LoseLifeTargetControllerEffect(3)); + ability.addEffect(new LoseLifeTargetControllerEffect(3).setText("That player loses 3 life")); ability.addTarget(new TargetOpponentsCreaturePermanent()); ability.withFlavorWord("Exterminate!"); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/f/FrostFairLureFish.java b/Mage.Sets/src/mage/cards/f/FrostFairLureFish.java index cdbf49ec402..47e2e014f22 100644 --- a/Mage.Sets/src/mage/cards/f/FrostFairLureFish.java +++ b/Mage.Sets/src/mage/cards/f/FrostFairLureFish.java @@ -28,7 +28,7 @@ import java.util.UUID; public final class FrostFairLureFish extends CardImpl { private static final FilterControlledPermanent filter = - new FilterControlledPermanent(SubType.FISH, "Fish you control"); + new FilterControlledPermanent(SubType.FISH, "Fish"); private static final FilterCreaturePermanent filterHumans = new FilterCreaturePermanent(SubType.HUMAN, "Humans"); diff --git a/Mage.Sets/src/mage/cards/g/GregorShrewdMagistrate.java b/Mage.Sets/src/mage/cards/g/GregorShrewdMagistrate.java index 3e66390d161..fa6fb2e13a0 100644 --- a/Mage.Sets/src/mage/cards/g/GregorShrewdMagistrate.java +++ b/Mage.Sets/src/mage/cards/g/GregorShrewdMagistrate.java @@ -35,7 +35,7 @@ public final class GregorShrewdMagistrate extends CardImpl { // Whenever Glenn deals combat damage to a player, draw cards equal to his power. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( - new DrawCardSourceControllerEffect(xValue).setText("draw cards equal to his power"), false + new DrawCardSourceControllerEffect(xValue).setText("draw cards equal to its power"), false )); } diff --git a/Mage.Sets/src/mage/cards/o/OutOfTime.java b/Mage.Sets/src/mage/cards/o/OutOfTime.java index 4f88e185451..1ae2fd54377 100644 --- a/Mage.Sets/src/mage/cards/o/OutOfTime.java +++ b/Mage.Sets/src/mage/cards/o/OutOfTime.java @@ -57,7 +57,7 @@ class OutOfTimePhaseOutEffect extends OneShotEffect { public OutOfTimePhaseOutEffect() { super(Outcome.AIDontUseIt); this.staticText = "untap all creatures, then those creatures phase out until {this} leaves the battlefield. " - + "Put a time counter on {this} for each creature phased out this way"; + + "Put a time counter on {this} for each creature that phased out this way"; } private OutOfTimePhaseOutEffect(final OutOfTimePhaseOutEffect effect) { diff --git a/Mage.Sets/src/mage/cards/p/PhyrexianFleshgorger.java b/Mage.Sets/src/mage/cards/p/PhyrexianFleshgorger.java index d1265c4e8cb..40823064c9a 100644 --- a/Mage.Sets/src/mage/cards/p/PhyrexianFleshgorger.java +++ b/Mage.Sets/src/mage/cards/p/PhyrexianFleshgorger.java @@ -40,7 +40,7 @@ public final class PhyrexianFleshgorger extends CardImpl { this.addAbility(LifelinkAbility.getInstance()); // Ward--Pay life equal to Phyrexian Fleshgorger's power. - this.addAbility(new WardAbility(new PayLifeCost(xValue, "pay life equal to {this}'s power"), false)); + this.addAbility(new WardAbility(new PayLifeCost(xValue, "life equal to {this}'s power"), false)); } private PhyrexianFleshgorger(final PhyrexianFleshgorger card) { diff --git a/Mage.Sets/src/mage/cards/t/TheThirteenthDoctor.java b/Mage.Sets/src/mage/cards/t/TheThirteenthDoctor.java index 70c628dc7c0..ed90b3958e0 100644 --- a/Mage.Sets/src/mage/cards/t/TheThirteenthDoctor.java +++ b/Mage.Sets/src/mage/cards/t/TheThirteenthDoctor.java @@ -28,7 +28,7 @@ public final class TheThirteenthDoctor extends CardImpl { private static final FilterSpell filter = new FilterSpell("a spell from anywhere other than your hand"); private static final FilterPermanent filter2 - = new FilterControlledCreaturePermanent("creature you control with a counter on it"); + = new FilterControlledCreaturePermanent("each creature you control with a counter on it"); static { filter.add(Predicates.not(new CastFromZonePredicate(Zone.HAND))); diff --git a/Mage.Sets/src/mage/cards/v/VeteransPowerblade.java b/Mage.Sets/src/mage/cards/v/VeteransPowerblade.java index 311ba73e734..9272da4e6ff 100644 --- a/Mage.Sets/src/mage/cards/v/VeteransPowerblade.java +++ b/Mage.Sets/src/mage/cards/v/VeteransPowerblade.java @@ -31,7 +31,7 @@ public final class VeteransPowerblade extends CardImpl { this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(2, 0))); // Equip Soldier {W} - this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{W}"), new TargetPermanent(filter))); + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{W}"), new TargetPermanent(filter), false)); // Equip {2} this.addAbility(new EquipAbility(2)); diff --git a/Mage/src/main/java/mage/abilities/common/BecomesTargetSourceTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/BecomesTargetSourceTriggeredAbility.java index 09ff5c1c1d4..7aaa2de0511 100644 --- a/Mage/src/main/java/mage/abilities/common/BecomesTargetSourceTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/BecomesTargetSourceTriggeredAbility.java @@ -36,7 +36,7 @@ public class BecomesTargetSourceTriggeredAbility extends TriggeredAbilityImpl { super(Zone.BATTLEFIELD, effect, optional); this.filter = filter; this.setTargetPointer = setTargetPointer; - boolean textWhen = (effect instanceof SacrificeSourceEffect + boolean textWhen = !optional && (effect instanceof SacrificeSourceEffect || effect instanceof ReturnToHandSourceEffect || effect instanceof ShuffleIntoLibrarySourceEffect || effect instanceof ExileSourceEffect); diff --git a/Mage/src/main/java/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java index f398382d214..62a709612e5 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsCombatDamageToAPlayerTriggeredAbility.java @@ -2,6 +2,9 @@ package mage.abilities.common; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ExileSourceEffect; +import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; import mage.constants.Zone; import mage.game.Game; import mage.game.events.DamagedEvent; @@ -22,7 +25,11 @@ public class DealsCombatDamageToAPlayerTriggeredAbility extends TriggeredAbility public DealsCombatDamageToAPlayerTriggeredAbility(Effect effect, boolean optional, boolean setTargetPointer) { super(Zone.BATTLEFIELD, effect, optional); this.setTargetPointer = setTargetPointer; - setTriggerPhrase("Whenever {this} deals combat damage to a player, "); + boolean textWhen = !optional && (effect instanceof SacrificeSourceEffect + || effect instanceof ShuffleIntoLibrarySourceEffect + || effect instanceof ExileSourceEffect); + setTriggerPhrase((textWhen ? "When" : "Whenever") + " {this} deals combat damage to a player, "); + this.replaceRuleText = true; } protected DealsCombatDamageToAPlayerTriggeredAbility(final DealsCombatDamageToAPlayerTriggeredAbility ability) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/UntapAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/UntapAllEffect.java index 6dc0519684d..bcdacdeea0e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/UntapAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/UntapAllEffect.java @@ -18,7 +18,11 @@ public class UntapAllEffect extends OneShotEffect { public UntapAllEffect(FilterPermanent filter) { super(Outcome.Untap); - staticText = "untap all " + filter.getMessage(); + if (filter.getMessage().startsWith("each")) { + staticText = "untap " + filter.getMessage(); + } else { + staticText = "untap all " + filter.getMessage(); + } this.filter = filter; } diff --git a/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java b/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java index db0a80aba3b..877c25bf301 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ExertAbility.java @@ -1,4 +1,3 @@ - package mage.abilities.keyword; import mage.MageObjectReference; @@ -38,17 +37,20 @@ public class ExertAbility extends SimpleStaticAbility { super(Zone.BATTLEFIELD, new ExertReplacementEffect(exertOnlyOncePerTurn)); ruleText = (exertOnlyOncePerTurn ? "If {this} hasn't been exerted this turn, you may exert it" - : "You may exert {this}") + " as it attacks. "; + : "You may exert {this}") + " as it attacks."; if (ability != null) { this.addSubAbility(ability); - ruleText += "When you do,"; + ruleText += " When you do,"; ability.getEffects().forEach(effect -> { - ruleText += " " + effect.getText(ability.getModes().getMode()); + if (!effect.getConcatPrefix().isEmpty()) { + ruleText += " " + effect.getConcatPrefix(); + } + ruleText += " " + effect.getText(ability.getModes().getMode()).replaceFirst("^\\{this\\}", "it"); }); - ruleText += ". "; + ruleText += "."; ability.setRuleVisible(false); } - ruleText += "(An exerted creature won't untap during your next untap step.)"; + ruleText += " (An exerted creature won't untap during your next untap step.)"; if (exertOnlyOncePerTurn) { getWatchers().add(new ExertedThisTurnWatcher()); }