diff --git a/Mage.Sets/src/mage/cards/a/AncestorsChosen.java b/Mage.Sets/src/mage/cards/a/AncestorsChosen.java index 218eab596ea..e31c9173e75 100644 --- a/Mage.Sets/src/mage/cards/a/AncestorsChosen.java +++ b/Mage.Sets/src/mage/cards/a/AncestorsChosen.java @@ -26,7 +26,8 @@ public final class AncestorsChosen extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); this.addAbility(FirstStrikeAbility.getInstance()); - this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(new CardsInControllerGraveyardCount()), false)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(new CardsInControllerGraveyardCount()) + .setText("you gain 1 life for each card in your graveyard"), false)); } private AncestorsChosen(final AncestorsChosen card) { diff --git a/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java b/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java index 80eb1c22ecb..bc97bb8c73b 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneTeachings.java @@ -36,7 +36,8 @@ public final class ArcaneTeachings extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield))); Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost()); gainedAbility.addTarget(new TargetAnyTarget()); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA) + .setText("and has \"" + gainedAbility.getRule("This creature") + '\"'))); } private ArcaneTeachings(final ArcaneTeachings card) { diff --git a/Mage.Sets/src/mage/cards/c/CephalidConstable.java b/Mage.Sets/src/mage/cards/c/CephalidConstable.java index 9e0c0ae3e8b..d427c466da2 100644 --- a/Mage.Sets/src/mage/cards/c/CephalidConstable.java +++ b/Mage.Sets/src/mage/cards/c/CephalidConstable.java @@ -83,7 +83,7 @@ class CephalidConstableTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever {this} deals combat damage to a player, return up to that many target permanents that player controls to their owners' hands."; + return "Whenever {this} deals combat damage to a player, return up to that many target permanents that player controls to their owner's hand."; } } diff --git a/Mage.Sets/src/mage/cards/c/CitanulFlute.java b/Mage.Sets/src/mage/cards/c/CitanulFlute.java index 4095397529f..6625f446c5b 100644 --- a/Mage.Sets/src/mage/cards/c/CitanulFlute.java +++ b/Mage.Sets/src/mage/cards/c/CitanulFlute.java @@ -52,7 +52,7 @@ class CitanulFluteSearchEffect extends OneShotEffect { CitanulFluteSearchEffect() { super(Outcome.DrawCard); staticText = "Search your library for a creature card with mana value X or less, " + - "reveal it, and put it into your hand. Then shuffle"; + "reveal it, put it into your hand, then shuffle"; } private CitanulFluteSearchEffect(final CitanulFluteSearchEffect effect) { diff --git a/Mage.Sets/src/mage/cards/e/ElvishChampion.java b/Mage.Sets/src/mage/cards/e/ElvishChampion.java index c2ed0cdc56c..cec3d104990 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishChampion.java +++ b/Mage.Sets/src/mage/cards/e/ElvishChampion.java @@ -35,7 +35,8 @@ public final class ElvishChampion extends CardImpl { // Other Elf creatures get +1/+1 and have forestwalk. (They can't be blocked as long as defending player controls a Forest.) this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new ForestwalkAbility(), Duration.WhileOnBattlefield, filter, true))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new ForestwalkAbility(), Duration.WhileOnBattlefield, filter, true) + .setText("and have forestwalk"))); } private ElvishChampion(final ElvishChampion card) { diff --git a/Mage.Sets/src/mage/cards/f/FieldMarshal.java b/Mage.Sets/src/mage/cards/f/FieldMarshal.java index 21fd596c22c..5452a90313b 100644 --- a/Mage.Sets/src/mage/cards/f/FieldMarshal.java +++ b/Mage.Sets/src/mage/cards/f/FieldMarshal.java @@ -34,7 +34,8 @@ public final class FieldMarshal extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, filter, true))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, true))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Duration.WhileOnBattlefield, filter, true) + .setText("and have first strike"))); } private FieldMarshal(final FieldMarshal card) { diff --git a/Mage.Sets/src/mage/cards/f/FogElemental.java b/Mage.Sets/src/mage/cards/f/FogElemental.java index 694ab00d055..19f25d4ef97 100644 --- a/Mage.Sets/src/mage/cards/f/FogElemental.java +++ b/Mage.Sets/src/mage/cards/f/FogElemental.java @@ -29,7 +29,8 @@ public final class FogElemental extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // When Fog Elemental attacks or blocks, sacrifice it at end of combat. - this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility(new SacrificeSourceEffect())), false)); + this.addAbility(new AttacksOrBlocksTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(new AtTheEndOfCombatDelayedTriggeredAbility(new SacrificeSourceEffect()) + .setTriggerPhrase("")).setText("sacrifice it at end of combat"), false)); } private FogElemental(final FogElemental card) { diff --git a/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java b/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java index b1f7e0548ab..ac174550622 100644 --- a/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java +++ b/Mage.Sets/src/mage/cards/f/FurnaceOfRath.java @@ -43,7 +43,7 @@ class FurnaceOfRathEffect extends ReplacementEffectImpl { public FurnaceOfRathEffect() { super(Duration.WhileOnBattlefield, Outcome.Damage); - staticText = "If a source would deal damage to a permanent or player, that source deals double that damage to that permanent or player instead"; + staticText = "If a source would deal damage to a permanent or player, it deals double that damage to that permanent or player instead"; } public FurnaceOfRathEffect(final FurnaceOfRathEffect effect) { diff --git a/Mage.Sets/src/mage/cards/g/GoblinLore.java b/Mage.Sets/src/mage/cards/g/GoblinLore.java index 61d043bc757..e8d15e15c92 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinLore.java +++ b/Mage.Sets/src/mage/cards/g/GoblinLore.java @@ -22,7 +22,7 @@ public final class GoblinLore extends CardImpl { // Draw four cards, then discard three cards at random. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(4)); Effect effect = new DiscardControllerEffect(3, true); - effect.setText("then discard three cards at random"); + effect.setText(", then discard three cards at random"); this.getSpellAbility().addEffect(effect); } private GoblinLore(final GoblinLore card) { @@ -33,4 +33,4 @@ public final class GoblinLore extends CardImpl { public GoblinLore copy() { return new GoblinLore(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/g/GravebornMuse.java b/Mage.Sets/src/mage/cards/g/GravebornMuse.java index 5196e8d6ba6..00c424b0e02 100644 --- a/Mage.Sets/src/mage/cards/g/GravebornMuse.java +++ b/Mage.Sets/src/mage/cards/g/GravebornMuse.java @@ -35,8 +35,10 @@ public final class GravebornMuse extends CardImpl { this.toughness = new MageInt(3); // At the beginning of your upkeep, you draw X cards and you lose X life, where X is the number of Zombies you control. - Ability ability = new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)), TargetController.YOU, false); - ability.addEffect(new LoseLifeSourceControllerEffect(new PermanentsOnBattlefieldCount(filter))); + Ability ability = new BeginningOfUpkeepTriggeredAbility(new DrawCardSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)) + .setText("you draw X cards"), TargetController.YOU, false); + ability.addEffect(new LoseLifeSourceControllerEffect(new PermanentsOnBattlefieldCount(filter)) + .setText("and you lose X life, where X is the number of Zombies you control")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HighwayRobber.java b/Mage.Sets/src/mage/cards/h/HighwayRobber.java index f1562e4df86..e3c61af5d00 100644 --- a/Mage.Sets/src/mage/cards/h/HighwayRobber.java +++ b/Mage.Sets/src/mage/cards/h/HighwayRobber.java @@ -26,9 +26,9 @@ public final class HighwayRobber extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(2); - Ability ability = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(2)); + Ability ability = new EntersBattlefieldTriggeredAbility(new LoseLifeTargetEffect(2)); ability.addTarget(new TargetOpponent()); - ability.addEffect(new LoseLifeTargetEffect(2)); + ability.addEffect(new GainLifeEffect(2).concatBy("and")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LordOfThePit.java b/Mage.Sets/src/mage/cards/l/LordOfThePit.java index d0bb22f878d..f77475bb25e 100644 --- a/Mage.Sets/src/mage/cards/l/LordOfThePit.java +++ b/Mage.Sets/src/mage/cards/l/LordOfThePit.java @@ -53,7 +53,7 @@ class LordOfThePitEffect extends OneShotEffect { public LordOfThePitEffect() { super(Outcome.Damage); - this.staticText = "Sacrifice a creature other than {this}. If you can't {this} deals 7 damage to you."; + this.staticText = "sacrifice a creature other than {this}. If you can't, {this} deals 7 damage to you."; } public LordOfThePitEffect(final LordOfThePitEffect effect) { diff --git a/Mage.Sets/src/mage/cards/o/OrcishArtillery.java b/Mage.Sets/src/mage/cards/o/OrcishArtillery.java index 790d822a914..950b948a4a5 100644 --- a/Mage.Sets/src/mage/cards/o/OrcishArtillery.java +++ b/Mage.Sets/src/mage/cards/o/OrcishArtillery.java @@ -32,7 +32,7 @@ public final class OrcishArtillery extends CardImpl { // {tap}: Orcish Artillery deals 2 damage to any target and 3 damage to you. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new TapSourceCost()); ability.addTarget(new TargetAnyTarget()); - ability.addEffect(new DamageControllerEffect(3)); + ability.addEffect(new DamageControllerEffect(3).setText("and 3 damage to you")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/PrimalRage.java b/Mage.Sets/src/mage/cards/p/PrimalRage.java index 417014c6fdf..cd68d38138f 100644 --- a/Mage.Sets/src/mage/cards/p/PrimalRage.java +++ b/Mage.Sets/src/mage/cards/p/PrimalRage.java @@ -1,4 +1,3 @@ - package mage.cards.p; import java.util.UUID; @@ -21,7 +20,7 @@ public final class PrimalRage extends CardImpl { public PrimalRage(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{G}"); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, false))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, false))); } private PrimalRage(final PrimalRage card) { diff --git a/Mage.Sets/src/mage/cards/s/SoulFeast.java b/Mage.Sets/src/mage/cards/s/SoulFeast.java index 3b6b7ea178d..36fa6944a21 100644 --- a/Mage.Sets/src/mage/cards/s/SoulFeast.java +++ b/Mage.Sets/src/mage/cards/s/SoulFeast.java @@ -20,7 +20,7 @@ public final class SoulFeast extends CardImpl { this.getSpellAbility().addEffect(new LoseLifeTargetEffect(4)); this.getSpellAbility().addTarget(new TargetPlayer()); - this.getSpellAbility().addEffect(new GainLifeEffect(4)); + this.getSpellAbility().addEffect(new GainLifeEffect(4).concatBy("and")); } private SoulFeast(final SoulFeast card) { diff --git a/Mage.Sets/src/mage/cards/s/SpittingEarth.java b/Mage.Sets/src/mage/cards/s/SpittingEarth.java index a3a5940e36e..6ab7e070e90 100644 --- a/Mage.Sets/src/mage/cards/s/SpittingEarth.java +++ b/Mage.Sets/src/mage/cards/s/SpittingEarth.java @@ -26,7 +26,8 @@ public final class SpittingEarth extends CardImpl { public SpittingEarth(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{R}"); - this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter))); + this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter)) + .setText("{this} deals damage to target creature equal to the number of Mountains you control")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/t/Threaten.java b/Mage.Sets/src/mage/cards/t/Threaten.java index dbee7b5d644..aaefec4d83f 100644 --- a/Mage.Sets/src/mage/cards/t/Threaten.java +++ b/Mage.Sets/src/mage/cards/t/Threaten.java @@ -23,7 +23,7 @@ public final class Threaten extends CardImpl { this.getSpellAbility().addEffect(new UntapTargetEffect().setText("Untap target creature")); this.getSpellAbility().addEffect(new GainControlTargetEffect(Duration.EndOfTurn).setText("and gain control of it until end of turn")); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn).setText("It gains haste until end of turn.")); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn).setText("That creature gains haste until end of turn.")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/v/VerdantForce.java b/Mage.Sets/src/mage/cards/v/VerdantForce.java index a97c3f49c32..ca3ff7650e4 100644 --- a/Mage.Sets/src/mage/cards/v/VerdantForce.java +++ b/Mage.Sets/src/mage/cards/v/VerdantForce.java @@ -26,7 +26,7 @@ public final class VerdantForce extends CardImpl { this.toughness = new MageInt(7); // At the beginning of each upkeep, create a 1/1 green Saproling creature token. - this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new SaprolingToken()), TargetController.ANY, false)); + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new SaprolingToken()), TargetController.EACH_PLAYER, false)); } private VerdantForce(final VerdantForce card) { diff --git a/Mage.Sets/src/mage/cards/v/ViashinoSandscout.java b/Mage.Sets/src/mage/cards/v/ViashinoSandscout.java index f9db5074b70..388a0e75b4b 100644 --- a/Mage.Sets/src/mage/cards/v/ViashinoSandscout.java +++ b/Mage.Sets/src/mage/cards/v/ViashinoSandscout.java @@ -29,7 +29,7 @@ public final class ViashinoSandscout extends CardImpl { // Haste this.addAbility(HasteAbility.getInstance()); // At the beginning of the end step, return Viashino Sandscout to its owner's hand. - this.addAbility(new BeginningOfEndStepTriggeredAbility(new ReturnToHandSourceEffect(true), TargetController.ANY, false)); + this.addAbility(new BeginningOfEndStepTriggeredAbility(new ReturnToHandSourceEffect(true), TargetController.NEXT, false)); } private ViashinoSandscout(final ViashinoSandscout card) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainControlTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainControlTargetEffect.java index 6355af15dca..20d4499ff7d 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainControlTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainControlTargetEffect.java @@ -150,7 +150,7 @@ public class GainControlTargetEffect extends ContinuousEffectImpl { sb.append("target "); } sb.append(mode.getTargets().get(0).getTargetName()); - if (!duration.toString().isEmpty()) { + if (!duration.toString().isEmpty() && duration != Duration.EndOfGame) { sb.append(' ').append(duration.toString()); } return sb.toString();