diff --git a/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java b/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java index b1c0077a47..c0ccf5faa9 100644 --- a/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java +++ b/Mage.Sets/src/mage/cards/a/AlhammarretsArchive.java @@ -77,7 +77,7 @@ class AlhammarretsArchiveReplacementEffect extends ReplacementEffectImpl { AlhammarretsArchiveReplacementEffect() { super(Duration.WhileOnBattlefield, Outcome.Neutral); - staticText = "If you draw a card except the first one you draw in each of your draw steps, draw two cards instead"; + staticText = "If you would draw a card except the first one you draw in each of your draw steps, draw two cards instead"; } private AlhammarretsArchiveReplacementEffect(final AlhammarretsArchiveReplacementEffect effect) { diff --git a/Mage.Sets/src/mage/cards/a/AncientCraving.java b/Mage.Sets/src/mage/cards/a/AncientCraving.java index cb26817c31..f59303ffb5 100644 --- a/Mage.Sets/src/mage/cards/a/AncientCraving.java +++ b/Mage.Sets/src/mage/cards/a/AncientCraving.java @@ -18,8 +18,8 @@ public final class AncientCraving extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}"); // You draw three cards and you lose 3 life. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3)); - this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3).setText("you draw three cards")); + this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3).concatBy("and")); } private AncientCraving(final AncientCraving card) { diff --git a/Mage.Sets/src/mage/cards/a/ApexOfPower.java b/Mage.Sets/src/mage/cards/a/ApexOfPower.java index f55edc55ee..854213f17a 100644 --- a/Mage.Sets/src/mage/cards/a/ApexOfPower.java +++ b/Mage.Sets/src/mage/cards/a/ApexOfPower.java @@ -33,7 +33,7 @@ public final class ApexOfPower extends CardImpl { this.getSpellAbility().addEffect(new ApexOfPowerSpellEffect()); // If this spell was cast from your hand, add ten mana of any one color. - this.getSpellAbility().addEffect(new ApexOfPowerManaEffect()); + this.getSpellAbility().addEffect(new ApexOfPowerManaEffect().concatBy("
")); } private ApexOfPower(final ApexOfPower card) { @@ -50,7 +50,8 @@ class ApexOfPowerSpellEffect extends OneShotEffect { public ApexOfPowerSpellEffect() { super(Outcome.Benefit); - this.staticText = "exile the top seven cards of your library. Until end of turn, you may cast nonland cards exiled this way"; + this.staticText = "exile the top seven cards of your library. " + + "Until end of turn, you may cast spells from among them"; } public ApexOfPowerSpellEffect(final ApexOfPowerSpellEffect effect) { diff --git a/Mage.Sets/src/mage/cards/a/AssaultSuit.java b/Mage.Sets/src/mage/cards/a/AssaultSuit.java index 07af257e2e..29c8e677e0 100644 --- a/Mage.Sets/src/mage/cards/a/AssaultSuit.java +++ b/Mage.Sets/src/mage/cards/a/AssaultSuit.java @@ -41,7 +41,7 @@ public final class AssaultSuit extends CardImpl { effect.setText(", has haste"); ability.addEffect(effect); effect = new CantAttackControllerAttachedEffect(AttachmentType.EQUIPMENT); - effect.setText(", can't attack you or a planeswalker you control"); + effect.setText(", can't attack you or planeswalkers you control"); ability.addEffect(effect); effect = new AssaultSuitCantBeSacrificed(); effect.setText(", and can't be sacrificed"); diff --git a/Mage.Sets/src/mage/cards/b/BairdStewardOfArgive.java b/Mage.Sets/src/mage/cards/b/BairdStewardOfArgive.java index 6abfde6e10..c1ac8ccec2 100644 --- a/Mage.Sets/src/mage/cards/b/BairdStewardOfArgive.java +++ b/Mage.Sets/src/mage/cards/b/BairdStewardOfArgive.java @@ -33,7 +33,7 @@ public final class BairdStewardOfArgive extends CardImpl { // Creatures can't attack you or a planeswalker you control unless their controller pays {1} for each of those creatures. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl("{1}"), true) - .setText("Creatures can't attack you or a planeswalker you control unless their controller pays {1} for each of those creatures"))); + .setText("Creatures can't attack you or planeswalkers you control unless their controller pays {1} for each of those creatures"))); } private BairdStewardOfArgive(final BairdStewardOfArgive card) { diff --git a/Mage.Sets/src/mage/cards/b/BlightMound.java b/Mage.Sets/src/mage/cards/b/BlightMound.java index 4af5fb0e5b..9628bc7a9b 100644 --- a/Mage.Sets/src/mage/cards/b/BlightMound.java +++ b/Mage.Sets/src/mage/cards/b/BlightMound.java @@ -30,7 +30,7 @@ public final class BlightMound extends CardImpl { private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.PEST, "attacking Pests"); private static final FilterPermanent filter2 - = new FilterControlledCreaturePermanent("nontoken creature you control"); + = new FilterControlledCreaturePermanent("a nontoken creature you control"); static { filter.add(AttackingPredicate.instance); diff --git a/Mage.Sets/src/mage/cards/b/BoldDefense.java b/Mage.Sets/src/mage/cards/b/BoldDefense.java index 6803c90731..182b91a3c2 100644 --- a/Mage.Sets/src/mage/cards/b/BoldDefense.java +++ b/Mage.Sets/src/mage/cards/b/BoldDefense.java @@ -30,7 +30,7 @@ public final class BoldDefense extends CardImpl { // Creatures you control get +1/+1 until end of turn. If Bold Defense was kicked, instead creatures you control get +2/+2 and gain first strike until end of turn. this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new BoostControlledEffect(2, 2, Duration.EndOfTurn), new BoostTargetEffect(1, 1, Duration.EndOfTurn), new LockedInCondition(KickedCondition.instance), - "Creatures you control get +1/+1 until end of turn. if this spell was kicked, instead creatures you control get +2/+2")); + "Creatures you control get +1/+1 until end of turn. If this spell was kicked, instead creatures you control get +2/+2")); this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false), null, new LockedInCondition(KickedCondition.instance), "and gain first strike until end of turn")); diff --git a/Mage.Sets/src/mage/cards/b/BoreasCharger.java b/Mage.Sets/src/mage/cards/b/BoreasCharger.java index 941e6681af..fcc8013355 100644 --- a/Mage.Sets/src/mage/cards/b/BoreasCharger.java +++ b/Mage.Sets/src/mage/cards/b/BoreasCharger.java @@ -1,16 +1,11 @@ package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.LeavesBattlefieldTriggeredAbility; import mage.abilities.effects.OneShotEffect; import mage.abilities.keyword.FlyingAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardSetInfo; -import mage.cards.Cards; -import mage.cards.CardsImpl; +import mage.cards.*; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SubType; @@ -26,8 +21,9 @@ import mage.target.TargetCard; import mage.target.TargetPlayer; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** - * * @author TheElk801 */ public final class BoreasCharger extends CardImpl { @@ -74,11 +70,10 @@ class BoreasChargerEffect extends OneShotEffect { public BoreasChargerEffect() { super(Outcome.Benefit); - this.staticText = "choose an opponent who controls more lands than you. " - + "Search your library for a number of Plains cards " - + "equal to the difference and reveal them. " - + "Put one of them onto the battlefield tapped " - + "and the rest into your hand. Then shuffle"; + this.staticText = "choose an opponent who controls more lands than you. " + + "Search your library for a number of Plains cards equal to the difference, " + + "reveal those cards, put one of them onto the battlefield tapped " + + "and the rest into your hand, then shuffle"; } public BoreasChargerEffect(final BoreasChargerEffect effect) { diff --git a/Mage.Sets/src/mage/cards/b/BrasssBounty.java b/Mage.Sets/src/mage/cards/b/BrasssBounty.java index de9e67890d..0f1bb93591 100644 --- a/Mage.Sets/src/mage/cards/b/BrasssBounty.java +++ b/Mage.Sets/src/mage/cards/b/BrasssBounty.java @@ -22,7 +22,7 @@ public final class BrasssBounty extends CardImpl { // For each land you control, create a colorless Treasure artifact token with "{T}, Sacrifice this artifact: Add one mana of any color." this.getSpellAbility().addEffect( new CreateTokenEffect(new TreasureToken(), new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND)) - .setText("For each land you control, create a colorless Treasure artifact token with \"{T}, Sacrifice this artifact: Add one mana of any color.\"")); + .setText("For each land you control, create a Treasure token")); } private BrasssBounty(final BrasssBounty card) { diff --git a/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java b/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java index 9e0a5e71dc..acf7ac7a27 100644 --- a/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java +++ b/Mage.Sets/src/mage/cards/b/BreathOfDarigaaz.java @@ -35,7 +35,7 @@ public final class BreathOfDarigaaz extends CardImpl { // Breath of Darigaaz deals 1 damage to each creature without flying and each player. If Breath of Darigaaz was kicked, it deals 4 damage to each creature without flying and each player instead. this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageEverythingEffect(4, filter), new DamageEverythingEffect(1, filter), KickedCondition.instance, - "{this} deals 1 damage to each creature without flying and each player. if this spell was kicked, it deals 4 damage to each creature without flying and each player instead.")); + "{this} deals 1 damage to each creature without flying and each player. If this spell was kicked, it deals 4 damage to each creature without flying and each player instead.")); } private BreathOfDarigaaz(final BreathOfDarigaaz card) { diff --git a/Mage.Sets/src/mage/cards/b/BurstLightning.java b/Mage.Sets/src/mage/cards/b/BurstLightning.java index db41f741ba..52c03e02f3 100644 --- a/Mage.Sets/src/mage/cards/b/BurstLightning.java +++ b/Mage.Sets/src/mage/cards/b/BurstLightning.java @@ -26,7 +26,7 @@ public final class BurstLightning extends CardImpl { // Burst Lightning deals 2 damage to any target. If Burst Lightning was kicked, it deals 4 damage to that creature or player instead. this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4), - new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to any target. if this spell was kicked, it deals 4 damage to that permanent or player instead")); + new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to any target. If this spell was kicked, it deals 4 damage to that permanent or player instead")); } private BurstLightning(final BurstLightning card) { diff --git a/Mage.Sets/src/mage/cards/c/CanopySurge.java b/Mage.Sets/src/mage/cards/c/CanopySurge.java index 0197b2532b..80ffa621cf 100644 --- a/Mage.Sets/src/mage/cards/c/CanopySurge.java +++ b/Mage.Sets/src/mage/cards/c/CanopySurge.java @@ -33,7 +33,7 @@ public final class CanopySurge extends CardImpl { // Canopy Surge deals 1 damage to each creature with flying and each player. If Canopy Surge was kicked, it deals 4 damage to each creature with flying and each player instead. this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageEverythingEffect(4, filter), new DamageEverythingEffect(1, filter), KickedCondition.instance, - "{this} deals 1 damage to each creature with flying and each player. if this spell was kicked, it deals 4 damage to each creature with flying and each player instead.")); + "{this} deals 1 damage to each creature with flying and each player. If this spell was kicked, it deals 4 damage to each creature with flying and each player instead.")); } private CanopySurge(final CanopySurge card) { diff --git a/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java b/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java index 581b78a710..62bf22d5bc 100644 --- a/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java +++ b/Mage.Sets/src/mage/cards/c/CombustibleGearhulk.java @@ -54,7 +54,7 @@ class CombustibleGearhulkEffect extends OneShotEffect { public CombustibleGearhulkEffect() { super(Outcome.AIDontUseIt); - staticText = "target opponent may have you draw three cards. If the player doesn't, mill three cards, then {this} deals damage to that player equal to the total mana value of those cards"; + staticText = "target opponent may have you draw three cards. If the player doesn't, you mill three cards, then {this} deals damage to that player equal to the total mana value of those cards"; } public CombustibleGearhulkEffect(final CombustibleGearhulkEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java b/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java index 6015229ada..a88267056d 100644 --- a/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java +++ b/Mage.Sets/src/mage/cards/c/ConquerorsPledge.java @@ -24,7 +24,7 @@ public final class ConquerorsPledge extends CardImpl { this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenEffect(new KorSoldierToken(), 12), new CreateTokenEffect(new KorSoldierToken(), 6), KickedCondition.instance, - "Create six 1/1 white Kor Soldier creature tokens. if this spell was kicked, create twelve of those tokens instead")); + "Create six 1/1 white Kor Soldier creature tokens. If this spell was kicked, create twelve of those tokens instead")); } private ConquerorsPledge(final ConquerorsPledge card) { diff --git a/Mage.Sets/src/mage/cards/d/DesolationTwin.java b/Mage.Sets/src/mage/cards/d/DesolationTwin.java index c20d3e38e4..82d145f382 100644 --- a/Mage.Sets/src/mage/cards/d/DesolationTwin.java +++ b/Mage.Sets/src/mage/cards/d/DesolationTwin.java @@ -70,6 +70,6 @@ class DesolationTwinOnCastAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "When you cast {this}, " + super.getRule(); + return "When you cast this spell, " + super.getRule(); } } diff --git a/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java b/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java index c435484a2a..d2265677e1 100644 --- a/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java +++ b/Mage.Sets/src/mage/cards/d/DiluvianPrimordial.java @@ -87,7 +87,7 @@ class DiluvianPrimordialEffect extends OneShotEffect { super(Outcome.PlayForFree); this.staticText = "for each opponent, you may cast up to one target " + "instant or sorcery card from that player's graveyard without " - + "paying its mana cost. If a card cast this way would be put " + + "paying its mana cost. If a spell cast this way would be put " + "into a graveyard this turn, exile it instead"; } diff --git a/Mage.Sets/src/mage/cards/d/Dispatch.java b/Mage.Sets/src/mage/cards/d/Dispatch.java index a0e51effbe..e9e893cd89 100644 --- a/Mage.Sets/src/mage/cards/d/Dispatch.java +++ b/Mage.Sets/src/mage/cards/d/Dispatch.java @@ -25,9 +25,11 @@ public final class Dispatch extends CardImpl { this.getSpellAbility().addEffect(new TapTargetEffect()); // Metalcraft — If you control three or more artifacts, exile that creature. - this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ExileTargetEffect(), MetalcraftCondition.instance, "Metalcraft — If you control three or more artifacts, exile that creature")); + this.getSpellAbility().addEffect(new ConditionalOneShotEffect( + new ExileTargetEffect(), MetalcraftCondition.instance, + "
Metalcraft — If you control three or more artifacts, exile that creature" + )); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); - this.getSpellAbility().setAbilityWord(AbilityWord.METALCRAFT); this.getSpellAbility().addHint(MetalcraftHint.instance); } diff --git a/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java b/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java index 5b9175a3ba..90c16e2009 100644 --- a/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java +++ b/Mage.Sets/src/mage/cards/d/DuelistsHeritage.java @@ -81,6 +81,6 @@ class DuelistsHeritageTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever one or more creatures attack, " + super.getRule(); + return "Whenever one or more creatures attack, you may have target attacking creature gain double strike until end of turn."; } } diff --git a/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java b/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java index 52cb405194..46350c45bc 100644 --- a/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java +++ b/Mage.Sets/src/mage/cards/d/DwarvenLandslide.java @@ -35,7 +35,7 @@ public final class DwarvenLandslide extends CardImpl { this.addAbility(new KickerAbility(kickerCosts)); // Destroy target land. If Dwarven Landslide was kicked, destroy another target land. - getSpellAbility().addEffect(new DestroyTargetEffect("Destroy target land. if this spell was kicked, destroy another target land")); + getSpellAbility().addEffect(new DestroyTargetEffect("Destroy target land. If this spell was kicked, destroy another target land")); getSpellAbility().addTarget(new TargetLandPermanent()); getSpellAbility().setTargetAdjuster(DwarvenLandslideAdjuster.instance); } diff --git a/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java b/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java index b72f3dac35..5812a370c4 100644 --- a/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java +++ b/Mage.Sets/src/mage/cards/e/ElixirOfImmortality.java @@ -46,7 +46,7 @@ class ElixerOfImmortalityEffect extends OneShotEffect { public ElixerOfImmortalityEffect() { super(Outcome.GainLife); - staticText = "You gain 5 life. Shuffle {this} and your graveyard into your library"; + staticText = "You gain 5 life. Shuffle {this} and your graveyard into their owner's library"; } public ElixerOfImmortalityEffect(final ElixerOfImmortalityEffect effect) { diff --git a/Mage.Sets/src/mage/cards/e/ErraticCyclops.java b/Mage.Sets/src/mage/cards/e/ErraticCyclops.java index 90f00bfe71..80b8efce20 100644 --- a/Mage.Sets/src/mage/cards/e/ErraticCyclops.java +++ b/Mage.Sets/src/mage/cards/e/ErraticCyclops.java @@ -79,7 +79,7 @@ class ErraticCyclopsTriggeredAbility extends TriggeredAbilityImpl { public String getRule() { return "Whenever you cast an instant or sorcery spell, " + "{this} gets +X/+0 until end of turn, " - + "where X is that spell's mana value"; + + "where X is that spell's mana value."; } @Override diff --git a/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java b/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java index 1731ff02b7..de743e3de9 100644 --- a/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java +++ b/Mage.Sets/src/mage/cards/e/EtaliPrimalStorm.java @@ -54,7 +54,7 @@ class EtaliPrimalStormEffect extends OneShotEffect { public EtaliPrimalStormEffect() { super(Outcome.PlayForFree); this.staticText = "exile the top card of each player's library, then you may cast " - + "any number of nonland cards exiled this way without paying their mana costs"; + + "any number of spells from among those cards without paying their mana costs"; } public EtaliPrimalStormEffect(final EtaliPrimalStormEffect effect) { diff --git a/Mage.Sets/src/mage/cards/f/FallingTimber.java b/Mage.Sets/src/mage/cards/f/FallingTimber.java index 397ccdac7d..4d9f85f3c0 100644 --- a/Mage.Sets/src/mage/cards/f/FallingTimber.java +++ b/Mage.Sets/src/mage/cards/f/FallingTimber.java @@ -33,7 +33,7 @@ public final class FallingTimber extends CardImpl { // Prevent all combat damage target creature would deal this turn. If Falling Timber was kicked, // prevent all combat damage another target creature would deal this turn. Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true); - effect.setText("Prevent all combat damage target creature would deal this turn. if this spell was kicked, " + + effect.setText("Prevent all combat damage target creature would deal this turn. If this spell was kicked, " + "prevent all combat damage another target creature would deal this turn."); this.getSpellAbility().addEffect(effect); this.getSpellAbility().setTargetAdjuster(FallingTimberAdjuster.instance); diff --git a/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java b/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java index db7be7dfbb..88241f01a6 100644 --- a/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java +++ b/Mage.Sets/src/mage/cards/f/FelisaFangOfSilverquill.java @@ -32,7 +32,7 @@ import java.util.UUID; public final class FelisaFangOfSilverquill extends CardImpl { private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("nontoken creature you control"); + = new FilterControlledCreaturePermanent("a nontoken creature you control"); static { filter.add(Predicates.not(TokenPredicate.instance)); diff --git a/Mage.Sets/src/mage/cards/f/ForbiddingSpirit.java b/Mage.Sets/src/mage/cards/f/ForbiddingSpirit.java index b96e38211d..7757037dc9 100644 --- a/Mage.Sets/src/mage/cards/f/ForbiddingSpirit.java +++ b/Mage.Sets/src/mage/cards/f/ForbiddingSpirit.java @@ -31,7 +31,7 @@ public final class ForbiddingSpirit extends CardImpl { new ManaCostsImpl("{2}"), true ); effect.setDuration(Duration.UntilYourNextTurn); - effect.setText("until your next turn, creatures can't attack you or a planeswalker you control " + + effect.setText("until your next turn, creatures can't attack you or planeswalkers you control " + "unless their controller pays {2} for each of those creatures."); this.addAbility(new EntersBattlefieldTriggeredAbility(effect)); } diff --git a/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java b/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java index 7a18c38a32..0f09869fd7 100644 --- a/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java +++ b/Mage.Sets/src/mage/cards/i/IllusionistsGambit.java @@ -48,7 +48,7 @@ class IllusionistsGambitRemoveFromCombatEffect extends OneShotEffect { public IllusionistsGambitRemoveFromCombatEffect() { super(Outcome.Benefit); - this.staticText = "Remove all attacking creatures from combat and untap them. After this phase, there is an additional combat phase. Each of those creatures attacks that combat if able. They can't attack you or a planeswalker you control that combat"; + this.staticText = "Remove all attacking creatures from combat and untap them. After this phase, there is an additional combat phase. Each of those creatures attacks that combat if able. They can't attack you or planeswalkers you control that combat"; } public IllusionistsGambitRemoveFromCombatEffect(final IllusionistsGambitRemoveFromCombatEffect effect) { @@ -142,7 +142,7 @@ class IllusionistsGambitRestrictionEffect extends RestrictionEffect { super(Duration.Custom, Outcome.Benefit); this.attackers = attackers; this.phase = phase; - staticText = "They can't attack you or a planeswalker you control that combat"; + staticText = "They can't attack you or planeswalkers you control that combat"; } public IllusionistsGambitRestrictionEffect(final IllusionistsGambitRestrictionEffect effect) { diff --git a/Mage.Sets/src/mage/cards/i/IncarnationTechnique.java b/Mage.Sets/src/mage/cards/i/IncarnationTechnique.java index 8122f1d485..3834d8b8aa 100644 --- a/Mage.Sets/src/mage/cards/i/IncarnationTechnique.java +++ b/Mage.Sets/src/mage/cards/i/IncarnationTechnique.java @@ -46,7 +46,7 @@ class IncarnationTechniqueEffect extends OneShotEffect { IncarnationTechniqueEffect() { super(Outcome.Benefit); - staticText = "mill four cards, then return a creature card from your graveyard to the battlefield"; + staticText = "mill five cards, then return a creature card from your graveyard to the battlefield"; } private IncarnationTechniqueEffect(final IncarnationTechniqueEffect effect) { diff --git a/Mage.Sets/src/mage/cards/i/InfernalOffering.java b/Mage.Sets/src/mage/cards/i/InfernalOffering.java index 3c53094703..210eb5926e 100644 --- a/Mage.Sets/src/mage/cards/i/InfernalOffering.java +++ b/Mage.Sets/src/mage/cards/i/InfernalOffering.java @@ -38,7 +38,7 @@ public final class InfernalOffering extends CardImpl { this.getSpellAbility().addEffect(new InfernalOfferingSacrificeEffect()); // Choose an opponent. Return a creature card from your graveyard to the battlefield, then that player returns a creature card from their graveyard to the battlefield. - this.getSpellAbility().addEffect(new InfernalOfferingReturnEffect()); + this.getSpellAbility().addEffect(new InfernalOfferingReturnEffect().concatBy("
")); } private InfernalOffering(final InfernalOffering card) { diff --git a/Mage.Sets/src/mage/cards/i/InspiringRefrain.java b/Mage.Sets/src/mage/cards/i/InspiringRefrain.java index e3a5214ef8..c93c478477 100644 --- a/Mage.Sets/src/mage/cards/i/InspiringRefrain.java +++ b/Mage.Sets/src/mage/cards/i/InspiringRefrain.java @@ -22,11 +22,11 @@ public final class InspiringRefrain extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}"); // Draw two cards. Exile Inspiring Refrain with three time counters on it. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addEffect(new AddCountersSourceEffect( CounterType.TIME.createInstance(), StaticValue.get(3), false, true - ).setText("with 3 time counters on it")); + ).setText("with three time counters on it")); // Suspend 3—{2}{U} this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{2}{U}"), this)); diff --git a/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java b/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java index 13e3088954..07aa41f3e2 100644 --- a/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java +++ b/Mage.Sets/src/mage/cards/j/JorKadeenThePrevailer.java @@ -19,7 +19,7 @@ import java.util.UUID; */ public final class JorKadeenThePrevailer extends CardImpl { - private static final String effectText = "Metalcraft — Creatures you control get +3/+0 as long as you control three or more artifacts."; + private static final String effectText = "Creatures you control get +3/+0 as long as you control three or more artifacts."; public JorKadeenThePrevailer(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{W}"); diff --git a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java index 7dac92f0b6..24c768ee92 100644 --- a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java +++ b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java @@ -51,7 +51,7 @@ public final class KozilekTheGreatDistortion extends CardImpl { this.addAbility(new ConditionalInterveningIfTriggeredAbility( new CastSourceTriggeredAbility(new KozilekDrawEffect(), false), new CardsInHandCondition(ComparisonType.FEWER_THAN, 7), - "When you cast {this}, if you have fewer than seven cards in hand, draw cards equal to the difference.")); + "When you cast this spell, if you have fewer than seven cards in hand, draw cards equal to the difference.")); // Menace this.addAbility(new MenaceAbility()); diff --git a/Mage.Sets/src/mage/cards/m/MageRingNetwork.java b/Mage.Sets/src/mage/cards/m/MageRingNetwork.java index 5d9bfaa43b..935e6f0fb9 100644 --- a/Mage.Sets/src/mage/cards/m/MageRingNetwork.java +++ b/Mage.Sets/src/mage/cards/m/MageRingNetwork.java @@ -44,7 +44,7 @@ public final class MageRingNetwork extends CardImpl { "Add {C} for each storage counter removed this way", true, new CountersSourceCount(CounterType.STORAGE)); ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(), - "Remove X storage counters from {this}")); + "Remove any number of storage counters from {this}")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/m/MaliciousAffliction.java b/Mage.Sets/src/mage/cards/m/MaliciousAffliction.java index e3ced110b6..2922c55323 100644 --- a/Mage.Sets/src/mage/cards/m/MaliciousAffliction.java +++ b/Mage.Sets/src/mage/cards/m/MaliciousAffliction.java @@ -34,7 +34,7 @@ public final class MaliciousAffliction extends CardImpl { // Morbid — When you cast Malicious Affliction, if a creature died this turn, you may copy Malicious Affliction and may choose a new target for the copy. Ability ability = new ConditionalInterveningIfTriggeredAbility( new CastSourceTriggeredAbility(new CopySourceSpellEffect(), true), - MorbidCondition.instance, "Morbid — When you cast {this}, " + + MorbidCondition.instance, "Morbid — When you cast this spell, " + "if a creature died this turn, you may copy {this} and may choose a new target for the copy" ); ability.setRuleAtTheTop(true); diff --git a/Mage.Sets/src/mage/cards/m/MarshCasualties.java b/Mage.Sets/src/mage/cards/m/MarshCasualties.java index 8b13137b08..0a64305480 100644 --- a/Mage.Sets/src/mage/cards/m/MarshCasualties.java +++ b/Mage.Sets/src/mage/cards/m/MarshCasualties.java @@ -24,7 +24,7 @@ import mage.target.TargetPlayer; */ public final class MarshCasualties extends CardImpl { - private static final String ruleText = "Creatures target player controls get -1/-1 until end of turn. if this spell was kicked, those creatures get -2/-2 until end of turn instead"; + private static final String ruleText = "Creatures target player controls get -1/-1 until end of turn. If this spell was kicked, those creatures get -2/-2 until end of turn instead"; public MarshCasualties(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}{B}"); diff --git a/Mage.Sets/src/mage/cards/n/NissasExpedition.java b/Mage.Sets/src/mage/cards/n/NissasExpedition.java index 063b885449..7b11c3195f 100644 --- a/Mage.Sets/src/mage/cards/n/NissasExpedition.java +++ b/Mage.Sets/src/mage/cards/n/NissasExpedition.java @@ -23,7 +23,7 @@ public final class NissasExpedition extends CardImpl { // Convoke this.addAbility(new ConvokeAbility()); // Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library. - this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true)); + this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS), true, true)); } private NissasExpedition(final NissasExpedition card) { diff --git a/Mage.Sets/src/mage/cards/n/NissasRenewal.java b/Mage.Sets/src/mage/cards/n/NissasRenewal.java index c3567a6b93..488db93218 100644 --- a/Mage.Sets/src/mage/cards/n/NissasRenewal.java +++ b/Mage.Sets/src/mage/cards/n/NissasRenewal.java @@ -21,7 +21,7 @@ public final class NissasRenewal extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{G}"); // Search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library. You gain 7 life. - this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true)); + this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LANDS), true)); this.getSpellAbility().addEffect(new GainLifeEffect(7)); } diff --git a/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java b/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java index ad80b9c97d..6f58f1588a 100644 --- a/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java +++ b/Mage.Sets/src/mage/cards/o/OrzhovAdvokist.java @@ -61,7 +61,7 @@ class OrzhovAdvokistEffect extends OneShotEffect { public OrzhovAdvokistEffect() { super(Outcome.Benefit); this.staticText = "each player may put two +1/+1 counters on a creature they control. " - + "If a player does, creatures that player controls can't attack you or a planeswalker you control until your next turn"; + + "If a player does, creatures that player controls can't attack you or planeswalkers you control until your next turn"; } public OrzhovAdvokistEffect(final OrzhovAdvokistEffect effect) { diff --git a/Mage.Sets/src/mage/cards/o/OsgirTheReconstructor.java b/Mage.Sets/src/mage/cards/o/OsgirTheReconstructor.java index b3971439d3..22b430937e 100644 --- a/Mage.Sets/src/mage/cards/o/OsgirTheReconstructor.java +++ b/Mage.Sets/src/mage/cards/o/OsgirTheReconstructor.java @@ -31,6 +31,7 @@ import mage.game.Game; import mage.players.Player; import mage.target.Target; import mage.target.common.TargetCardInYourGraveyard; +import mage.target.common.TargetControlledCreaturePermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; import mage.target.targetadjustment.TargetAdjuster; @@ -57,7 +58,7 @@ public final class OsgirTheReconstructor extends CardImpl { // {1}, Sacrifice an artifact: Target creature you control gets +2/+0 until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}")); - ability.addTarget(new TargetCreaturePermanent()); + ability.addTarget(new TargetControlledCreaturePermanent()); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN))); this.addAbility(ability); @@ -66,7 +67,7 @@ public final class OsgirTheReconstructor extends CardImpl { new OsgirTheReconstructorCreateArtifactTokensEffect(), new ManaCostsImpl("{X}")); copyAbility.addCost(new TapSourceCost()); - copyAbility.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(), "Exile an artifact with mana value X from your graveyard")); + copyAbility.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(), "Exile an artifact card with mana value X from your graveyard")); copyAbility.setCostAdjuster(OsgirTheReconstructorCostAdjuster.instance); diff --git a/Mage.Sets/src/mage/cards/p/Peregrination.java b/Mage.Sets/src/mage/cards/p/Peregrination.java index 6b8b484447..e8a9de463c 100644 --- a/Mage.Sets/src/mage/cards/p/Peregrination.java +++ b/Mage.Sets/src/mage/cards/p/Peregrination.java @@ -30,7 +30,7 @@ public final class Peregrination extends CardImpl { // Seach your library for up to two basic land cards, reveal those cards, and put one onto the battlefield tapped and the other into your hand. Shuffle your library, then scry 1. this.getSpellAbility().addEffect(new PeregrinationEffect()); Effect effect = new ScryEffect(1); - effect.setText("then scry 1 (Look at the top card of your library. You may put that card on the bottom of your library.)"); + effect.concatBy(", then"); this.getSpellAbility().addEffect(effect); } @@ -50,7 +50,7 @@ class PeregrinationEffect extends OneShotEffect { public PeregrinationEffect() { super(Outcome.PutLandInPlay); - staticText = "Search your library for up to two basic land cards, reveal those cards, and put one onto the battlefield tapped and the other into your hand. Shuffle your library"; + staticText = "Search your library for up to two basic land cards, reveal those cards, and put one onto the battlefield tapped and the other into your hand. Shuffle"; } public PeregrinationEffect(final PeregrinationEffect effect) { diff --git a/Mage.Sets/src/mage/cards/p/PerplexingTest.java b/Mage.Sets/src/mage/cards/p/PerplexingTest.java index 1dfe8e6874..db40d316ed 100644 --- a/Mage.Sets/src/mage/cards/p/PerplexingTest.java +++ b/Mage.Sets/src/mage/cards/p/PerplexingTest.java @@ -18,7 +18,7 @@ import java.util.UUID; */ public final class PerplexingTest extends CardImpl { - private static final FilterPermanent filter = new FilterCreaturePermanent("nontoken creature"); + private static final FilterPermanent filter = new FilterCreaturePermanent("nontoken creatures"); static { filter.add(Predicates.not(TokenPredicate.instance)); diff --git a/Mage.Sets/src/mage/cards/p/PilgrimsEye.java b/Mage.Sets/src/mage/cards/p/PilgrimsEye.java index b2d5dadf66..6be15f3761 100644 --- a/Mage.Sets/src/mage/cards/p/PilgrimsEye.java +++ b/Mage.Sets/src/mage/cards/p/PilgrimsEye.java @@ -1,5 +1,3 @@ - - package mage.cards.p; import mage.MageInt; @@ -10,38 +8,30 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.SuperType; -import mage.filter.FilterCard; import mage.filter.StaticFilters; import mage.target.common.TargetCardInLibrary; import java.util.UUID; /** - * * @author Loki */ public final class PilgrimsEye extends CardImpl { - private static final FilterCard filter = new FilterCard("basic land card"); - static { - filter.add(SuperType.BASIC.getPredicate()); - filter.add(CardType.LAND.getPredicate()); - } - - public PilgrimsEye (UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}"); + public PilgrimsEye(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); this.subtype.add(SubType.THOPTER); this.power = new MageInt(1); this.toughness = new MageInt(1); this.addAbility(FlyingAbility.getInstance()); + // When Pilgrim's Eye enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), true)); } - public PilgrimsEye (final PilgrimsEye card) { + public PilgrimsEye(final PilgrimsEye card) { super(card); } diff --git a/Mage.Sets/src/mage/cards/p/PlaxcasterFrogling.java b/Mage.Sets/src/mage/cards/p/PlaxcasterFrogling.java index 7d11902ad1..a9c28bf516 100644 --- a/Mage.Sets/src/mage/cards/p/PlaxcasterFrogling.java +++ b/Mage.Sets/src/mage/cards/p/PlaxcasterFrogling.java @@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent; */ public final class PlaxcasterFrogling extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with a +1/+1 counter on it"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with a +1/+1 counter on it"); static { filter.add(CounterType.P1P1.getPredicate()); } diff --git a/Mage.Sets/src/mage/cards/p/PollenRemedy.java b/Mage.Sets/src/mage/cards/p/PollenRemedy.java index 4aedd2274c..0cc10fb6ec 100644 --- a/Mage.Sets/src/mage/cards/p/PollenRemedy.java +++ b/Mage.Sets/src/mage/cards/p/PollenRemedy.java @@ -35,7 +35,7 @@ public final class PollenRemedy extends CardImpl { // If Pollen Remedy was kicked, prevent the next 6 damage this way instead. Effect effect = new ConditionalReplacementEffect(new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 6), KickedCondition.instance, new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 3)); - effect.setText("Prevent the next 3 damage that would be dealt this turn to any number of targets, divided as you choose. if this spell was kicked, prevent the next 6 damage this way instead."); + effect.setText("Prevent the next 3 damage that would be dealt this turn to any number of targets, divided as you choose. If this spell was kicked, prevent the next 6 damage this way instead."); this.getSpellAbility().addEffect(effect); this.getSpellAbility().setTargetAdjuster(PollenRemedyAdjuster.instance); } diff --git a/Mage.Sets/src/mage/cards/p/Ponder.java b/Mage.Sets/src/mage/cards/p/Ponder.java index 72561caccc..67f7965df8 100644 --- a/Mage.Sets/src/mage/cards/p/Ponder.java +++ b/Mage.Sets/src/mage/cards/p/Ponder.java @@ -20,7 +20,7 @@ public final class Ponder extends CardImpl { // Look at the top three cards of your library, then put them back in any order. You may shuffle your library. this.getSpellAbility().addEffect(new LookLibraryControllerEffect(3, true, true)); // Draw a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); } private Ponder(final Ponder card) { diff --git a/Mage.Sets/src/mage/cards/p/Prohibit.java b/Mage.Sets/src/mage/cards/p/Prohibit.java index 37e81815f9..4a7e9b100d 100644 --- a/Mage.Sets/src/mage/cards/p/Prohibit.java +++ b/Mage.Sets/src/mage/cards/p/Prohibit.java @@ -48,7 +48,7 @@ class ProhibitEffect extends OneShotEffect { ProhibitEffect() { super(Outcome.DestroyPermanent); this.staticText = "Counter target spell if its mana value " - + "is 2 or less. if this spell was kicked, counter that " + + "is 2 or less. If this spell was kicked, counter that " + "spell if its mana value is 4 or less instead."; } diff --git a/Mage.Sets/src/mage/cards/r/RiteOfReplication.java b/Mage.Sets/src/mage/cards/r/RiteOfReplication.java index 26c370a93d..c3015a4c13 100644 --- a/Mage.Sets/src/mage/cards/r/RiteOfReplication.java +++ b/Mage.Sets/src/mage/cards/r/RiteOfReplication.java @@ -27,7 +27,7 @@ public final class RiteOfReplication extends CardImpl { this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenCopyTargetEffect(null, null, false, 5), new CreateTokenCopyTargetEffect(), KickedCondition.instance, - "Create a token that's a copy of target creature. if this spell was kicked, create five of those tokens instead")); + "Create a token that's a copy of target creature. If this spell was kicked, create five of those tokens instead")); } private RiteOfReplication(final RiteOfReplication card) { diff --git a/Mage.Sets/src/mage/cards/r/RousingRefrain.java b/Mage.Sets/src/mage/cards/r/RousingRefrain.java index 1e833ce7d4..c941dd989e 100644 --- a/Mage.Sets/src/mage/cards/r/RousingRefrain.java +++ b/Mage.Sets/src/mage/cards/r/RousingRefrain.java @@ -33,7 +33,7 @@ public final class RousingRefrain extends CardImpl { this.getSpellAbility().addEffect(new ExileSpellEffect()); this.getSpellAbility().addEffect(new AddCountersSourceEffect( CounterType.TIME.createInstance(), StaticValue.get(3), false, true - ).setText("with 3 time counters on it")); + ).setText("with three time counters on it")); this.getSpellAbility().addTarget(new TargetOpponent()); // Suspend 3—{1}{R} diff --git a/Mage.Sets/src/mage/cards/s/SanctumGargoyle.java b/Mage.Sets/src/mage/cards/s/SanctumGargoyle.java index e67d040ced..2e1f5f3feb 100644 --- a/Mage.Sets/src/mage/cards/s/SanctumGargoyle.java +++ b/Mage.Sets/src/mage/cards/s/SanctumGargoyle.java @@ -5,6 +5,7 @@ import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.abilities.effects.common.ReturnToHandTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.cards.CardImpl; @@ -30,7 +31,7 @@ public final class SanctumGargoyle extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // When Sanctum Gargoyle enters the battlefield, you may return target artifact card from your graveyard to your hand. - Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true); + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect(), true); ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard"))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/Sangromancer.java b/Mage.Sets/src/mage/cards/s/Sangromancer.java index 15b3d0bcb2..523571ccaa 100644 --- a/Mage.Sets/src/mage/cards/s/Sangromancer.java +++ b/Mage.Sets/src/mage/cards/s/Sangromancer.java @@ -78,7 +78,7 @@ class SangromancerFirstTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever a creature an opponent controls is put into a graveyard from the battlefield, " + super.getRule(); + return "Whenever a creature an opponent controls dies, " + super.getRule(); } } diff --git a/Mage.Sets/src/mage/cards/s/ShivanFire.java b/Mage.Sets/src/mage/cards/s/ShivanFire.java index 5be3c8ccac..9d35b49117 100644 --- a/Mage.Sets/src/mage/cards/s/ShivanFire.java +++ b/Mage.Sets/src/mage/cards/s/ShivanFire.java @@ -29,7 +29,7 @@ public final class ShivanFire extends CardImpl { // Shivan Fire deals 2 damage to any target. If Shivan Fire was kicked, it deals 4 damage to that creature or player instead. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4), - new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to target creature. if this spell was kicked, it deals 4 damage to that creature instead")); + new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to target creature. If this spell was kicked, it deals 4 damage to that creature instead")); } private ShivanFire(final ShivanFire card) { diff --git a/Mage.Sets/src/mage/cards/s/SlyInstigator.java b/Mage.Sets/src/mage/cards/s/SlyInstigator.java index 4e13d79035..f75c8b9645 100644 --- a/Mage.Sets/src/mage/cards/s/SlyInstigator.java +++ b/Mage.Sets/src/mage/cards/s/SlyInstigator.java @@ -32,8 +32,8 @@ public final class SlyInstigator extends CardImpl { // {U}, {T}: Until your next turn, target creature an opponent controls can't be blocked. Goad that creature. Ability ability = new SimpleActivatedAbility( new CantBeBlockedTargetEffect(Duration.UntilYourNextTurn) - .setText("ntil your next turn, target creature an opponent controls can't be blocked."), - new ManaCostsImpl("{U}") + .setText("until your next turn, target creature an opponent controls can't be blocked."), + new ManaCostsImpl<>("{U}") ); ability.addCost(new TapSourceCost()); ability.addEffect(new GoadTargetEffect().setText("Goad that creature")); diff --git a/Mage.Sets/src/mage/cards/s/SphereOfSafety.java b/Mage.Sets/src/mage/cards/s/SphereOfSafety.java index 5852f6c894..2c5dbfe313 100644 --- a/Mage.Sets/src/mage/cards/s/SphereOfSafety.java +++ b/Mage.Sets/src/mage/cards/s/SphereOfSafety.java @@ -45,7 +45,7 @@ class SphereOfSafetyPayManaToAttackAllEffect extends CantAttackYouUnlessPayManaA SphereOfSafetyPayManaToAttackAllEffect() { super(null, true); - staticText = "Creatures can't attack you or a planeswalker you control unless their controller pays {X} for each of those creatures, where X is the number of enchantments you control."; + staticText = "Creatures can't attack you or planeswalkers you control unless their controller pays {X} for each of those creatures, where X is the number of enchantments you control."; } SphereOfSafetyPayManaToAttackAllEffect(SphereOfSafetyPayManaToAttackAllEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SunDroplet.java b/Mage.Sets/src/mage/cards/s/SunDroplet.java index c97c95e4e0..2d53bef3c4 100644 --- a/Mage.Sets/src/mage/cards/s/SunDroplet.java +++ b/Mage.Sets/src/mage/cards/s/SunDroplet.java @@ -34,7 +34,7 @@ public final class SunDroplet extends CardImpl { this.addAbility(new BeginningOfUpkeepTriggeredAbility( new DoIfCostPaid( new GainLifeEffect(1), new RemoveCountersSourceCost(CounterType.CHARGE.createInstance()) - ), TargetController.ANY, false + ), TargetController.EACH_PLAYER, false )); } diff --git a/Mage.Sets/src/mage/cards/s/SunscorchRegent.java b/Mage.Sets/src/mage/cards/s/SunscorchRegent.java index f78c9d89c9..d4516cf1d9 100644 --- a/Mage.Sets/src/mage/cards/s/SunscorchRegent.java +++ b/Mage.Sets/src/mage/cards/s/SunscorchRegent.java @@ -31,7 +31,7 @@ public final class SunscorchRegent extends CardImpl { // Whenever an opponent casts a spell, put a +1/+1 counter on Sunscorch Regent and you gain 1 life. Ability ability = new SpellCastOpponentTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false); - ability.addEffect(new GainLifeEffect(1)); + ability.addEffect(new GainLifeEffect(1).concatBy("and")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java b/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java index 26f7cee8a7..4cbca4367e 100644 --- a/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java +++ b/Mage.Sets/src/mage/cards/u/UlamogTheCeaselessHunger.java @@ -90,7 +90,7 @@ class UlamogExilePermanentsOnCastAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "When you cast {this}, " + super.getRule(); + return "When you cast this spell, " + super.getRule(); } } diff --git a/Mage.Sets/src/mage/cards/v/VarchildBetrayerOfKjeldor.java b/Mage.Sets/src/mage/cards/v/VarchildBetrayerOfKjeldor.java index 6a8276fa83..c0ade46159 100644 --- a/Mage.Sets/src/mage/cards/v/VarchildBetrayerOfKjeldor.java +++ b/Mage.Sets/src/mage/cards/v/VarchildBetrayerOfKjeldor.java @@ -64,7 +64,7 @@ public final class VarchildBetrayerOfKjeldor extends CardImpl { ); ability.addEffect(new CantAttackYouOrPlaneswalkerAllEffect( Duration.WhileOnBattlefield, filter1 - ).setText("and can't attack you or a planeswalker you control")); + ).setText("and can't attack you or planeswalkers you control")); this.addAbility(ability); // When Varchild leaves the battlefield, gain control of all Survivors. diff --git a/Mage.Sets/src/mage/cards/v/VowOfDuty.java b/Mage.Sets/src/mage/cards/v/VowOfDuty.java index ea709b0c4d..e3fb89591c 100644 --- a/Mage.Sets/src/mage/cards/v/VowOfDuty.java +++ b/Mage.Sets/src/mage/cards/v/VowOfDuty.java @@ -45,7 +45,7 @@ public final class VowOfDuty extends CardImpl { effect.setText(", has vigilance"); ability.addEffect(effect); effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA); - effect.setText(", and can't attack you or a planeswalker you control"); + effect.setText(", and can't attack you or planeswalkers you control"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/VowOfFlight.java b/Mage.Sets/src/mage/cards/v/VowOfFlight.java index 33cd5c549a..7ec8c6ba9e 100644 --- a/Mage.Sets/src/mage/cards/v/VowOfFlight.java +++ b/Mage.Sets/src/mage/cards/v/VowOfFlight.java @@ -45,7 +45,7 @@ public final class VowOfFlight extends CardImpl { effect.setText(", has flying"); ability.addEffect(effect); effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA); - effect.setText(", and can't attack you or a planeswalker you control"); + effect.setText(", and can't attack you or planeswalkers you control"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/VowOfLightning.java b/Mage.Sets/src/mage/cards/v/VowOfLightning.java index 9b50da9ac7..a2133bcd8a 100644 --- a/Mage.Sets/src/mage/cards/v/VowOfLightning.java +++ b/Mage.Sets/src/mage/cards/v/VowOfLightning.java @@ -45,7 +45,7 @@ public final class VowOfLightning extends CardImpl { effect.setText(", has first strike"); ability.addEffect(effect); effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA); - effect.setText(", and can't attack you or a planeswalker you control"); + effect.setText(", and can't attack you or planeswalkers you control"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/VowOfMalice.java b/Mage.Sets/src/mage/cards/v/VowOfMalice.java index 18cc278fc7..c1333be375 100644 --- a/Mage.Sets/src/mage/cards/v/VowOfMalice.java +++ b/Mage.Sets/src/mage/cards/v/VowOfMalice.java @@ -45,7 +45,7 @@ public final class VowOfMalice extends CardImpl { effect.setText(", has intimidate"); ability.addEffect(effect); effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA); - effect.setText(", and can't attack you or a planeswalker you control"); + effect.setText(", and can't attack you or planeswalkers you control"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/VowOfTorment.java b/Mage.Sets/src/mage/cards/v/VowOfTorment.java index 7b993b8601..d788259450 100644 --- a/Mage.Sets/src/mage/cards/v/VowOfTorment.java +++ b/Mage.Sets/src/mage/cards/v/VowOfTorment.java @@ -39,7 +39,7 @@ public final class VowOfTorment extends CardImpl { new MenaceAbility(), AttachmentType.AURA, Duration.WhileOnBattlefield ).setText(", has menace")); ability.addEffect(new CantAttackControllerAttachedEffect(AttachmentType.AURA) - .setText(", and can't attack you or a planeswalker you control")); + .setText(", and can't attack you or planeswalkers you control")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/VowOfWildness.java b/Mage.Sets/src/mage/cards/v/VowOfWildness.java index ab6128747f..2ef58cd2fe 100644 --- a/Mage.Sets/src/mage/cards/v/VowOfWildness.java +++ b/Mage.Sets/src/mage/cards/v/VowOfWildness.java @@ -46,7 +46,7 @@ public final class VowOfWildness extends CardImpl { effect.setText(", has trample"); ability.addEffect(effect); effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA); - effect.setText(", and can't attack you or a planeswalker you control"); + effect.setText(", and can't attack you or planeswalkers you control"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WitchsClinic.java b/Mage.Sets/src/mage/cards/w/WitchsClinic.java index ecb52f29b6..0668aecc93 100644 --- a/Mage.Sets/src/mage/cards/w/WitchsClinic.java +++ b/Mage.Sets/src/mage/cards/w/WitchsClinic.java @@ -2,6 +2,7 @@ package mage.cards.w; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; import mage.abilities.keyword.LifelinkAbility; @@ -37,6 +38,7 @@ public final class WitchsClinic extends CardImpl { Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect( LifelinkAbility.getInstance(), Duration.EndOfTurn ), new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index 806bd0e945..6a75a20ccb 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -56,7 +56,7 @@ public class VerifyCardDataTest { private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class); - private static final String FULL_ABILITIES_CHECK_SET_CODE = "STX"; // check all abilities and output cards with wrong abilities texts; + private static final String FULL_ABILITIES_CHECK_SET_CODE = "C21"; // check all abilities and output cards with wrong abilities texts; private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run private static final HashMap> skipCheckLists = new HashMap<>(); diff --git a/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java b/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java index bcf564d900..3f5c6b43a9 100644 --- a/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java +++ b/Mage/src/main/java/mage/abilities/common/GoadAttachedAbility.java @@ -25,7 +25,7 @@ public class GoadAttachedAbility extends StaticAbility { } this.addEffect(new AttacksIfAbleAttachedEffect( Duration.WhileOnBattlefield, AttachmentType.AURA - ).setText(", and is goaded. ")); + ).setText((getEffects().size() > 1 ? ", " : " ") + "and is goaded. (It attacks each combat if able")); this.addEffect(new GoadAttackEffect()); } @@ -43,7 +43,7 @@ class GoadAttackEffect extends RestrictionEffect { GoadAttackEffect() { super(Duration.WhileOnBattlefield); - staticText = "(It attacks each combat if able and attacks a player other than you if able.)"; + staticText = "and attacks a player other than you if able.)"; } private GoadAttackEffect(final GoadAttackEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/CopyPermanentEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CopyPermanentEffect.java index b3fa5953a3..014f2368ec 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CopyPermanentEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CopyPermanentEffect.java @@ -58,7 +58,7 @@ public class CopyPermanentEffect extends OneShotEffect { if (filter.getMessage().startsWith("a ") || filter.getMessage().startsWith("an ")) { text += " " + filter.getMessage(); } else { - text += " any " + filter.getMessage() + " on battlefield"; + text += " any " + filter.getMessage() + " on the battlefield"; } text += applier == null ? "" : applier.getText(); this.staticText = text; diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileFromZoneTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileFromZoneTargetEffect.java index ad8c4c5653..ef354c75f4 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/ExileFromZoneTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/ExileFromZoneTargetEffect.java @@ -87,8 +87,8 @@ public class ExileFromZoneTargetEffect extends OneShotEffect { @Override public String getText(Mode mode) { - return "target " + mode.getTargets().get(0).getTargetName() + " exiles " - + CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage() + return "target " + (mode.getTargets().isEmpty() ? "player" : mode.getTargets().get(0).getTargetName()) + + " exiles " + CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage() + " from their " + zone.toString().toLowerCase(); } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/LookLibraryControllerEffect.java b/Mage/src/main/java/mage/abilities/effects/common/LookLibraryControllerEffect.java index fdacd31698..020f3f1673 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/LookLibraryControllerEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/LookLibraryControllerEffect.java @@ -195,7 +195,7 @@ public class LookLibraryControllerEffect extends OneShotEffect { } } if (this.mayShuffleAfter) { - sb.append(". You may shuffle your library"); + sb.append(". You may shuffle"); } return sb.toString(); diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackControllerAttachedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackControllerAttachedEffect.java index 605da5354c..518e3752ca 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackControllerAttachedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/CantAttackControllerAttachedEffect.java @@ -18,7 +18,7 @@ public class CantAttackControllerAttachedEffect extends RestrictionEffect { public CantAttackControllerAttachedEffect(AttachmentType attachmentType) { super(Duration.WhileOnBattlefield); - this.staticText = attachmentType.verb() + " creature can't attack you or a planeswalker you control"; + this.staticText = attachmentType.verb() + " creature can't attack you or planeswalkers you control"; } public CantAttackControllerAttachedEffect(final CantAttackControllerAttachedEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardAndDrawThatManyEffect.java b/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardAndDrawThatManyEffect.java index 477978f249..8b59aaf57c 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardAndDrawThatManyEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/discard/DiscardAndDrawThatManyEffect.java @@ -18,7 +18,7 @@ public class DiscardAndDrawThatManyEffect extends OneShotEffect { super(Outcome.DrawCard); this.amount = amount; staticText = "discard " - + (amount == Integer.MAX_VALUE ? "any number of" : "up to" + CardUtil.numberToText(amount)) + + (amount == Integer.MAX_VALUE ? "any number of" : "up to " + CardUtil.numberToText(amount)) + " cards, then draw that many cards"; } diff --git a/Mage/src/main/java/mage/abilities/keyword/WardAbility.java b/Mage/src/main/java/mage/abilities/keyword/WardAbility.java index f5a9a203d6..586ee2a118 100644 --- a/Mage/src/main/java/mage/abilities/keyword/WardAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/WardAbility.java @@ -53,7 +53,7 @@ public class WardAbility extends TriggeredAbilityImpl { @Override public String getRule() { - StringBuilder sb = new StringBuilder("Ward"); + StringBuilder sb = new StringBuilder("ward"); if (cost instanceof ManaCost) { sb.append(' ').append(cost.getText()); } else { diff --git a/Mage/src/main/java/mage/filter/common/FilterCreatureAttackingYou.java b/Mage/src/main/java/mage/filter/common/FilterCreatureAttackingYou.java index 4657174caa..abe2d05ac8 100644 --- a/Mage/src/main/java/mage/filter/common/FilterCreatureAttackingYou.java +++ b/Mage/src/main/java/mage/filter/common/FilterCreatureAttackingYou.java @@ -19,7 +19,7 @@ public class FilterCreatureAttackingYou extends FilterAttackingCreature { } public FilterCreatureAttackingYou(boolean orWalker) { - this("creature that's attacking you" + (orWalker ? "or a planeswalker you control" : ""), orWalker); + this("creature that's attacking you" + (orWalker ? " or a planeswalker you control" : ""), orWalker); } public FilterCreatureAttackingYou(String name) {