From 7531263fb9bd334d64db505a10017356477a6e96 Mon Sep 17 00:00:00 2001 From: xenohedron Date: Fri, 2 Jun 2023 12:36:22 +0300 Subject: [PATCH] Fix text [RAV] [GPT] [DIS] (#10359) * Fix text: capitalization of regenerate * Fix text: Circle of Protection Artifacts * Fix text [RAV] [GPT] [DIS] --- Mage.Sets/src/mage/cards/b/BatheInLight.java | 2 +- Mage.Sets/src/mage/cards/b/BloodletterQuill.java | 2 +- Mage.Sets/src/mage/cards/b/BondOfAgony.java | 2 +- Mage.Sets/src/mage/cards/b/BreathOfFury.java | 2 +- Mage.Sets/src/mage/cards/c/CerebralVortex.java | 2 +- Mage.Sets/src/mage/cards/c/CircuDimirLobotomist.java | 2 +- Mage.Sets/src/mage/cards/c/ConcertedEffort.java | 2 +- Mage.Sets/src/mage/cards/c/ConjurersBan.java | 2 +- Mage.Sets/src/mage/cards/c/CrashLanding.java | 2 +- Mage.Sets/src/mage/cards/c/CullingSun.java | 2 +- Mage.Sets/src/mage/cards/c/CyclopeanSnare.java | 2 +- Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java | 4 ++-- Mage.Sets/src/mage/cards/d/DouseInGloom.java | 2 +- Mage.Sets/src/mage/cards/d/DreamLeash.java | 2 +- Mage.Sets/src/mage/cards/d/DrownedRusalka.java | 2 +- Mage.Sets/src/mage/cards/f/FollowedFootsteps.java | 2 +- Mage.Sets/src/mage/cards/f/FreewindEquenaut.java | 2 +- Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java | 2 +- Mage.Sets/src/mage/cards/g/GolgariBrownscale.java | 2 +- Mage.Sets/src/mage/cards/g/GovernTheGuildless.java | 4 ++-- Mage.Sets/src/mage/cards/g/GruulScrapper.java | 2 +- Mage.Sets/src/mage/cards/h/HammerfistGiant.java | 2 +- Mage.Sets/src/mage/cards/h/HissingMiasma.java | 2 +- Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java | 2 +- Mage.Sets/src/mage/cards/l/LeylineOfLightning.java | 2 +- Mage.Sets/src/mage/cards/l/LoreBroker.java | 2 +- Mage.Sets/src/mage/cards/n/Nightcreep.java | 6 +++--- Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java | 2 +- Mage.Sets/src/mage/cards/o/OathswornGiant.java | 4 ++-- Mage.Sets/src/mage/cards/o/OgreSavant.java | 2 +- Mage.Sets/src/mage/cards/o/Omnibian.java | 4 ++-- Mage.Sets/src/mage/cards/o/OrzhovaTheChurchOfDeals.java | 2 +- Mage.Sets/src/mage/cards/p/PsychicPossession.java | 2 +- Mage.Sets/src/mage/cards/r/RakdosAugermage.java | 4 ++-- Mage.Sets/src/mage/cards/r/RakdosRiteknife.java | 2 +- Mage.Sets/src/mage/cards/r/ResearchDevelopment.java | 2 +- Mage.Sets/src/mage/cards/r/RevenantPatriarch.java | 2 +- Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java | 2 +- Mage.Sets/src/mage/cards/s/ShriekingGrotesque.java | 2 +- Mage.Sets/src/mage/cards/s/SilhanaStarfletcher.java | 4 ++-- Mage.Sets/src/mage/cards/s/SimicBasilisk.java | 5 ++++- Mage.Sets/src/mage/cards/s/SimicGuildmage.java | 2 +- Mage.Sets/src/mage/cards/s/SinsOfThePast.java | 3 +-- Mage.Sets/src/mage/cards/s/SpelltitheEnforcer.java | 2 +- Mage.Sets/src/mage/cards/s/SporebackTroll.java | 2 +- Mage.Sets/src/mage/cards/s/SteamcoreWeird.java | 2 +- Mage.Sets/src/mage/cards/s/StoneshakerShaman.java | 2 +- Mage.Sets/src/mage/cards/s/StormscaleAnarch.java | 2 +- Mage.Sets/src/mage/cards/t/TinStreetHooligan.java | 2 +- Mage.Sets/src/mage/cards/v/ValorMadeReal.java | 2 +- Mage.Sets/src/mage/cards/v/VindictiveMob.java | 2 +- Mage.Sets/src/mage/cards/v/Voidslime.java | 2 +- Mage.Sets/src/mage/cards/w/WalkingArchive.java | 2 +- .../abilities/effects/common/CreateTokenTargetEffect.java | 4 ++-- .../PreventNextDamageFromChosenSourceToYouEffect.java | 3 ++- .../abilities/effects/common/RegenerateSourceEffect.java | 5 ++--- .../abilities/effects/common/RegenerateTargetEffect.java | 4 ++-- .../java/mage/abilities/effects/common/SacrificeEffect.java | 1 + .../common/combat/MustBeBlockedByAllSourceEffect.java | 3 ++- 59 files changed, 75 insertions(+), 71 deletions(-) diff --git a/Mage.Sets/src/mage/cards/b/BatheInLight.java b/Mage.Sets/src/mage/cards/b/BatheInLight.java index 932559944e3..772e96cef11 100644 --- a/Mage.Sets/src/mage/cards/b/BatheInLight.java +++ b/Mage.Sets/src/mage/cards/b/BatheInLight.java @@ -55,7 +55,7 @@ class BatheInLightEffect extends OneShotEffect { public BatheInLightEffect() { super(Outcome.Benefit); - this.staticText = "Target creature and each other creature that shares a color with it gain protection from the chosen color until end of turn"; + this.staticText = "Choose a color. Target creature and each other creature that shares a color with it gain protection from the chosen color until end of turn"; } public BatheInLightEffect(final BatheInLightEffect effect) { diff --git a/Mage.Sets/src/mage/cards/b/BloodletterQuill.java b/Mage.Sets/src/mage/cards/b/BloodletterQuill.java index b5238b019a4..f9049fced8c 100644 --- a/Mage.Sets/src/mage/cards/b/BloodletterQuill.java +++ b/Mage.Sets/src/mage/cards/b/BloodletterQuill.java @@ -30,7 +30,7 @@ public final class BloodletterQuill extends CardImpl { // {2}, {T}, Put a blood counter on Bloodletter Quill: Draw a card, then lose 1 life for each blood counter on Bloodletter Quill. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2)); ability.addEffect(new LoseLifeSourceControllerEffect(new CountersSourceCount(CounterType.BLOOD)) - .setText(", then lose 1 life for each blood counter on {this}")); + .setText(", then you lose 1 life for each blood counter on {this}")); ability.addCost(new TapSourceCost()); ability.addCost(new PutCountersSourceCost(CounterType.BLOOD.createInstance())); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BondOfAgony.java b/Mage.Sets/src/mage/cards/b/BondOfAgony.java index ff95d54d155..37788e5e409 100644 --- a/Mage.Sets/src/mage/cards/b/BondOfAgony.java +++ b/Mage.Sets/src/mage/cards/b/BondOfAgony.java @@ -25,7 +25,7 @@ public final class BondOfAgony extends CardImpl { this.getSpellAbility().addCost(new PayLifeCost(xValue, "X life")); // Each other player loses X life. - this.getSpellAbility().addEffect(new LoseLifeOpponentsEffect(xValue)); + this.getSpellAbility().addEffect(new LoseLifeOpponentsEffect(xValue).setText("each other player loses X life")); } private BondOfAgony(final BondOfAgony card) { diff --git a/Mage.Sets/src/mage/cards/b/BreathOfFury.java b/Mage.Sets/src/mage/cards/b/BreathOfFury.java index 227c7691e08..fc369d12ecb 100644 --- a/Mage.Sets/src/mage/cards/b/BreathOfFury.java +++ b/Mage.Sets/src/mage/cards/b/BreathOfFury.java @@ -97,7 +97,7 @@ class BreathOfFuryEffect extends OneShotEffect { public BreathOfFuryEffect() { super(Outcome.Benefit); - staticText = "sacrifice enchanted creature and attach {this} to a creature you control. If you do, untap all creatures you control and after this phase, there is an additional combat phase"; + staticText = "sacrifice it and attach {this} to a creature you control. If you do, untap all creatures you control and after this phase, there is an additional combat phase"; } public BreathOfFuryEffect(final BreathOfFuryEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/CerebralVortex.java b/Mage.Sets/src/mage/cards/c/CerebralVortex.java index 2fbc818f970..1d0abc2c8f1 100644 --- a/Mage.Sets/src/mage/cards/c/CerebralVortex.java +++ b/Mage.Sets/src/mage/cards/c/CerebralVortex.java @@ -48,7 +48,7 @@ class CerebralVortexEffect extends OneShotEffect { CerebralVortexEffect() { super(Outcome.Damage); - this.staticText = ", then Cerebral Vortex deals damage to that player equal to the number of cards they have drawn this turn"; + this.staticText = ", then Cerebral Vortex deals damage to that player equal to the number of cards they've drawn this turn"; } CerebralVortexEffect(final CerebralVortexEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/CircuDimirLobotomist.java b/Mage.Sets/src/mage/cards/c/CircuDimirLobotomist.java index 55a611e981d..14e90692396 100644 --- a/Mage.Sets/src/mage/cards/c/CircuDimirLobotomist.java +++ b/Mage.Sets/src/mage/cards/c/CircuDimirLobotomist.java @@ -103,7 +103,7 @@ class CircuDimirLobotomistRuleModifyingEffect extends ContinuousRuleModifyingEff public CircuDimirLobotomistRuleModifyingEffect() { super(Duration.WhileOnBattlefield, Outcome.Detriment); - staticText = "Your opponents can't cast nonland cards with the same name as a card exiled with {this}"; + staticText = "Your opponents can't cast spells with the same name as a card exiled with {this}"; } public CircuDimirLobotomistRuleModifyingEffect(final CircuDimirLobotomistRuleModifyingEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/ConcertedEffort.java b/Mage.Sets/src/mage/cards/c/ConcertedEffort.java index ff61263c9ef..5fb723a9fa5 100644 --- a/Mage.Sets/src/mage/cards/c/ConcertedEffort.java +++ b/Mage.Sets/src/mage/cards/c/ConcertedEffort.java @@ -27,7 +27,7 @@ public final class ConcertedEffort extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{W}{W}"); // At the beginning of each upkeep, creatures you control gain flying until end of turn if a creature you control has flying. The same is true for fear, first strike, double strike, landwalk, protection, trample, and vigilance. - this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConcertedEffortEffect(), TargetController.ANY, false)); + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ConcertedEffortEffect(), TargetController.EACH_PLAYER, false)); } private ConcertedEffort(final ConcertedEffort card) { diff --git a/Mage.Sets/src/mage/cards/c/ConjurersBan.java b/Mage.Sets/src/mage/cards/c/ConjurersBan.java index 4811942a42f..474af05d512 100644 --- a/Mage.Sets/src/mage/cards/c/ConjurersBan.java +++ b/Mage.Sets/src/mage/cards/c/ConjurersBan.java @@ -46,7 +46,7 @@ class ConjurersBanEffect extends ContinuousRuleModifyingEffectImpl { ConjurersBanEffect() { super(Duration.UntilYourNextTurn, Outcome.Detriment, true, false); - this.staticText = "Until your next turn spells with the chosen name can't be cast and lands with the chosen name can't be played"; + this.staticText = "Until your next turn, spells with the chosen name can't be cast and lands with the chosen name can't be played"; } private ConjurersBanEffect(final ConjurersBanEffect effect) { diff --git a/Mage.Sets/src/mage/cards/c/CrashLanding.java b/Mage.Sets/src/mage/cards/c/CrashLanding.java index 6b396c6bccd..bd667657fd5 100644 --- a/Mage.Sets/src/mage/cards/c/CrashLanding.java +++ b/Mage.Sets/src/mage/cards/c/CrashLanding.java @@ -38,7 +38,7 @@ public final class CrashLanding extends CardImpl { DynamicValue amount = new PermanentsOnBattlefieldCount(filter); this.getSpellAbility().addEffect(new LoseAbilityTargetEffect( FlyingAbility.getInstance(), Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new DamageTargetEffect(amount)); + this.getSpellAbility().addEffect(new DamageTargetEffect(amount).setText("{this} deals damage to that creature equal to the number of Forests you control")); this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter2)); } diff --git a/Mage.Sets/src/mage/cards/c/CullingSun.java b/Mage.Sets/src/mage/cards/c/CullingSun.java index 7ccf609304a..51022782b42 100644 --- a/Mage.Sets/src/mage/cards/c/CullingSun.java +++ b/Mage.Sets/src/mage/cards/c/CullingSun.java @@ -25,7 +25,7 @@ public final class CullingSun extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{2}{W}{W}{B}"); - this.getSpellAbility().addEffect(new DestroyAllEffect(filter)); + this.getSpellAbility().addEffect(new DestroyAllEffect(filter).setText("destroy each creature with mana value 3 or less")); } private CullingSun(final CullingSun card) { diff --git a/Mage.Sets/src/mage/cards/c/CyclopeanSnare.java b/Mage.Sets/src/mage/cards/c/CyclopeanSnare.java index 3fd9c67dc0a..7d67b93df91 100644 --- a/Mage.Sets/src/mage/cards/c/CyclopeanSnare.java +++ b/Mage.Sets/src/mage/cards/c/CyclopeanSnare.java @@ -27,7 +27,7 @@ public final class CyclopeanSnare extends CardImpl { Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new GenericManaCost(3)); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); - ability.addEffect(new ReturnToHandSourceEffect(true)); + ability.addEffect(new ReturnToHandSourceEffect(true).concatBy(", then")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java b/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java index b6b55ec242f..ed616fbec9d 100644 --- a/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java +++ b/Mage.Sets/src/mage/cards/d/DjinnIlluminatus.java @@ -17,7 +17,7 @@ import java.util.UUID; */ public final class DjinnIlluminatus extends CardImpl { - private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell(); + private static final FilterInstantOrSorcerySpell filter = new FilterInstantOrSorcerySpell("instant and sorcery spell"); public DjinnIlluminatus(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{5}{U/R}{U/R}"); @@ -40,4 +40,4 @@ public final class DjinnIlluminatus extends CardImpl { public DjinnIlluminatus copy() { return new DjinnIlluminatus(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/d/DouseInGloom.java b/Mage.Sets/src/mage/cards/d/DouseInGloom.java index 4f165ad71ea..a61167a2ee8 100644 --- a/Mage.Sets/src/mage/cards/d/DouseInGloom.java +++ b/Mage.Sets/src/mage/cards/d/DouseInGloom.java @@ -20,7 +20,7 @@ public final class DouseInGloom extends CardImpl { this.getSpellAbility().addEffect(new DamageTargetEffect(2)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); - this.getSpellAbility().addEffect(new GainLifeEffect(2)); + this.getSpellAbility().addEffect(new GainLifeEffect(2).concatBy("and")); } private DouseInGloom(final DouseInGloom card) { diff --git a/Mage.Sets/src/mage/cards/d/DreamLeash.java b/Mage.Sets/src/mage/cards/d/DreamLeash.java index 6420fe1e7d6..34b4640ac00 100644 --- a/Mage.Sets/src/mage/cards/d/DreamLeash.java +++ b/Mage.Sets/src/mage/cards/d/DreamLeash.java @@ -37,7 +37,7 @@ public final class DreamLeash extends CardImpl { // You can't choose an untapped permanent as Dream Leash's target as you cast Dream Leash. Effect effect = new ControlEnchantedEffect("permanent"); - effect.setText("You can't choose an untapped permanent as {this}'s target as you cast {this}.
" + effect.getText(null)); + effect.setText("You can't choose an untapped permanent as this spell's target as you cast it.
" + effect.getText(null)); // You control enchanted permanent. this.addAbility(new SimpleStaticAbility(effect)); diff --git a/Mage.Sets/src/mage/cards/d/DrownedRusalka.java b/Mage.Sets/src/mage/cards/d/DrownedRusalka.java index bd74f5214cd..29e753afce7 100644 --- a/Mage.Sets/src/mage/cards/d/DrownedRusalka.java +++ b/Mage.Sets/src/mage/cards/d/DrownedRusalka.java @@ -33,7 +33,7 @@ public final class DrownedRusalka extends CardImpl { // {U}, Sacrifice a creature: Discard a card, then draw a card. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardControllerEffect(1), new ManaCostsImpl<>("{U}")); ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); - ability.addEffect(new DrawCardSourceControllerEffect(1)); + ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy(", then")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java b/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java index 82230487ff8..9b6a5cca83e 100644 --- a/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java +++ b/Mage.Sets/src/mage/cards/f/FollowedFootsteps.java @@ -57,7 +57,7 @@ class FollowedFootstepsEffect extends OneShotEffect { public FollowedFootstepsEffect() { super(Outcome.PutCreatureInPlay); - this.staticText = "You create a token that's a copy of enchanted creature"; + this.staticText = "create a token that's a copy of enchanted creature"; } public FollowedFootstepsEffect(final FollowedFootstepsEffect effect) { diff --git a/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java b/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java index d5b0bb2cb40..dfe3408d158 100644 --- a/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java +++ b/Mage.Sets/src/mage/cards/f/FreewindEquenaut.java @@ -43,7 +43,7 @@ public final class FreewindEquenaut extends CardImpl { new ConditionalContinuousEffect( new GainAbilitySourceEffect(ability, Duration.WhileOnBattlefield), new EnchantedSourceCondition(), - "As long as {this} is enchanted, it has \"{T}: {this} deals 2 damage to target attacking or blocking creature\""))); + "As long as {this} is enchanted, it has \"{T}: {this} deals 2 damage to target attacking or blocking creature.\""))); } private FreewindEquenaut(final FreewindEquenaut card) { diff --git a/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java b/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java index 9a4b6ac7d6e..dbbcf9efc2c 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java +++ b/Mage.Sets/src/mage/cards/g/GoblinFlectomancer.java @@ -30,7 +30,7 @@ public final class GoblinFlectomancer extends CardImpl { this.toughness = new MageInt(2); // Sacrifice Goblin Flectomancer: You may change the targets of target instant or sorcery spell. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ChooseNewTargetsTargetEffect(), new SacrificeSourceCost()); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ChooseNewTargetsTargetEffect().setText("you may change the targets of target instant or sorcery spell"), new SacrificeSourceCost()); ability.addTarget(new TargetSpell(new FilterInstantOrSorcerySpell())); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java b/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java index 755503d30c0..654301bb358 100644 --- a/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java +++ b/Mage.Sets/src/mage/cards/g/GolgariBrownscale.java @@ -26,7 +26,7 @@ public final class GolgariBrownscale extends CardImpl { // When Golgari Brownscale is put into your hand from your graveyard, you gain 2 life. this.addAbility(new ZoneChangeTriggeredAbility(Zone.ALL, Zone.GRAVEYARD, Zone.HAND, new GainLifeEffect(2), - "When {this} is put into your hand from your graveyard,", false)); + "When {this} is put into your hand from your graveyard, ", false)); // Dredge 2 this.addAbility(new DredgeAbility(2)); diff --git a/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java b/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java index a1e1e3798d4..81e25b92ed2 100644 --- a/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java +++ b/Mage.Sets/src/mage/cards/g/GovernTheGuildless.java @@ -3,7 +3,7 @@ package mage.cards.g; import java.util.UUID; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; +import mage.abilities.effects.common.continuous.BecomesColorOrColorsTargetEffect; import mage.abilities.effects.common.continuous.GainControlTargetEffect; import mage.abilities.keyword.ForecastAbility; import mage.cards.CardImpl; @@ -34,7 +34,7 @@ public final class GovernTheGuildless extends CardImpl { this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); // Forecast - {1}{U}, Reveal Govern the Guildless from your hand: Target creature becomes the color or colors of your choice until end of turn. - ForecastAbility ability = new ForecastAbility(new BecomesColorTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}")); + ForecastAbility ability = new ForecastAbility(new BecomesColorOrColorsTargetEffect(Duration.EndOfTurn), new ManaCostsImpl<>("{1}{U}")); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GruulScrapper.java b/Mage.Sets/src/mage/cards/g/GruulScrapper.java index f67a55473f6..d5fffc7151f 100644 --- a/Mage.Sets/src/mage/cards/g/GruulScrapper.java +++ b/Mage.Sets/src/mage/cards/g/GruulScrapper.java @@ -30,7 +30,7 @@ public final class GruulScrapper extends CardImpl { this.toughness = new MageInt(2); //When Gruul Scrapper enters the battlefield, if Red was spent to cast Gruul Scrapper, it gains haste until end of turn. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), ManaWasSpentCondition.RED, " if {R} was spent to cast this spell, it gains haste until end of turn"))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn), ManaWasSpentCondition.RED, "if {R} was spent to cast it, it gains haste until end of turn"))); } diff --git a/Mage.Sets/src/mage/cards/h/HammerfistGiant.java b/Mage.Sets/src/mage/cards/h/HammerfistGiant.java index 9d2d1f28ec2..98241c2cb8a 100644 --- a/Mage.Sets/src/mage/cards/h/HammerfistGiant.java +++ b/Mage.Sets/src/mage/cards/h/HammerfistGiant.java @@ -22,7 +22,7 @@ import mage.filter.predicate.mageobject.AbilityPredicate; */ public final class HammerfistGiant extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("each creature without flying"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); static { filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); diff --git a/Mage.Sets/src/mage/cards/h/HissingMiasma.java b/Mage.Sets/src/mage/cards/h/HissingMiasma.java index 57298da45d2..e5078d5a177 100644 --- a/Mage.Sets/src/mage/cards/h/HissingMiasma.java +++ b/Mage.Sets/src/mage/cards/h/HissingMiasma.java @@ -21,7 +21,7 @@ public final class HissingMiasma extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{B}{B}"); // Whenever a creature attacks you, its controller loses 1 life. - this.addAbility(new AttackedByCreatureTriggeredAbility(new LoseLifeTargetEffect(1), false, SetTargetPointer.PLAYER)); + this.addAbility(new AttackedByCreatureTriggeredAbility(new LoseLifeTargetEffect(1).setText("its controller loses 1 life"), false, SetTargetPointer.PLAYER)); } private HissingMiasma(final HissingMiasma card) { diff --git a/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java b/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java index 987ee235c5a..8461baea806 100644 --- a/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java +++ b/Mage.Sets/src/mage/cards/l/LeafdrakeRoost.java @@ -44,7 +44,7 @@ public final class LeafdrakeRoost extends CardImpl { Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new LeafdrakeRoostDrakeToken()), new ManaCostsImpl<>("{G}{U}")); abilityToGain.addCost(new TapSourceCost()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(abilityToGain, AttachmentType.AURA, Duration.WhileOnBattlefield, - "Enchanted land has \"{G}{U}, {t}: Create a 2/2 green and blue Drake creature token with flying.\""))); + "Enchanted land has \"{G}{U}, {T}: Create a 2/2 green and blue Drake creature token with flying.\""))); } diff --git a/Mage.Sets/src/mage/cards/l/LeylineOfLightning.java b/Mage.Sets/src/mage/cards/l/LeylineOfLightning.java index e98cf8ba094..d7cc5b7d536 100644 --- a/Mage.Sets/src/mage/cards/l/LeylineOfLightning.java +++ b/Mage.Sets/src/mage/cards/l/LeylineOfLightning.java @@ -46,7 +46,7 @@ class LeylineOfLightningEffect extends DamageTargetEffect { LeylineOfLightningEffect() { super(1); - this.staticText = "you may pay {1}. If you do, {this} deals 1 damage to target player."; + this.staticText = "you may pay {1}. If you do, {this} deals 1 damage to target player or planeswalker."; } LeylineOfLightningEffect(final LeylineOfLightningEffect effect) { diff --git a/Mage.Sets/src/mage/cards/l/LoreBroker.java b/Mage.Sets/src/mage/cards/l/LoreBroker.java index 1cb6597ebf0..c59fc422329 100644 --- a/Mage.Sets/src/mage/cards/l/LoreBroker.java +++ b/Mage.Sets/src/mage/cards/l/LoreBroker.java @@ -30,7 +30,7 @@ public final class LoreBroker extends CardImpl { // {tap}: Each player draws a card, then discards a card. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardAllEffect(1), new TapSourceCost()); - ability.addEffect(new DiscardEachPlayerEffect()); + ability.addEffect(new DiscardEachPlayerEffect().setText(", then discards a card")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/n/Nightcreep.java b/Mage.Sets/src/mage/cards/n/Nightcreep.java index 0f60154c43b..2c9ed1f0047 100644 --- a/Mage.Sets/src/mage/cards/n/Nightcreep.java +++ b/Mage.Sets/src/mage/cards/n/Nightcreep.java @@ -45,7 +45,7 @@ class NightcreepLandEffect extends BecomesBasicLandTargetEffect { public NightcreepLandEffect() { super(Duration.EndOfTurn, SubType.SWAMP); - this.staticText = ""; + this.staticText = "and all lands become Swamps"; } public NightcreepLandEffect(NightcreepLandEffect effect) { @@ -69,7 +69,7 @@ class NightcreepCreatureEffect extends BecomesColorTargetEffect { public NightcreepCreatureEffect() { super(ObjectColor.BLACK, Duration.EndOfTurn); - this.staticText = "Until end of turn, all creatures become black and all lands become Swamps"; + this.staticText = "Until end of turn, all creatures become black"; } public NightcreepCreatureEffect(NightcreepCreatureEffect effect) { @@ -87,4 +87,4 @@ class NightcreepCreatureEffect extends BecomesColorTargetEffect { public NightcreepCreatureEffect copy() { return new NightcreepCreatureEffect(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java b/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java index 669fc8331f8..fa326b407eb 100644 --- a/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java +++ b/Mage.Sets/src/mage/cards/n/NivixAerieOfTheFiremind.java @@ -56,7 +56,7 @@ class NivixAerieOfTheFiremindEffect extends OneShotEffect { NivixAerieOfTheFiremindEffect() { super(Outcome.Benefit); - this.staticText = "Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery card"; + this.staticText = "Exile the top card of your library. Until your next turn, you may cast it if it's an instant or sorcery spell"; } NivixAerieOfTheFiremindEffect(final NivixAerieOfTheFiremindEffect effect) { diff --git a/Mage.Sets/src/mage/cards/o/OathswornGiant.java b/Mage.Sets/src/mage/cards/o/OathswornGiant.java index 6a7a6116bb5..73517a5ce1d 100644 --- a/Mage.Sets/src/mage/cards/o/OathswornGiant.java +++ b/Mage.Sets/src/mage/cards/o/OathswornGiant.java @@ -32,8 +32,8 @@ public final class OathswornGiant extends CardImpl { this.addAbility(VigilanceAbility.getInstance()); // Other creatures you control get +0/+2 and have vigilance. - Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, true)); - ability.addEffect(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, true)); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 2, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, true)); + ability.addEffect(new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, true).setText("and have vigilance")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/o/OgreSavant.java b/Mage.Sets/src/mage/cards/o/OgreSavant.java index 52fa57c1db7..f2decb78070 100644 --- a/Mage.Sets/src/mage/cards/o/OgreSavant.java +++ b/Mage.Sets/src/mage/cards/o/OgreSavant.java @@ -32,7 +32,7 @@ public final class OgreSavant extends CardImpl { TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(),false); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.BLUE, - "if {U} was spent to cast this spell, return target creature to its owner's hand.")); + "When {this} enters the battlefield, if {U} was spent to cast it, return target creature to its owner's hand.")); } private OgreSavant(final OgreSavant card) { diff --git a/Mage.Sets/src/mage/cards/o/Omnibian.java b/Mage.Sets/src/mage/cards/o/Omnibian.java index 0adcbfd013c..b24763ad960 100644 --- a/Mage.Sets/src/mage/cards/o/Omnibian.java +++ b/Mage.Sets/src/mage/cards/o/Omnibian.java @@ -31,7 +31,7 @@ public final class Omnibian extends CardImpl { // {T}: Target creature becomes a 3/3 Frog until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureTargetEffect( - new CreatureToken(3, 3, "3/3 Frog", SubType.FROG), + new CreatureToken(3, 3, "Frog with base power and toughness 3/3", SubType.FROG), false, false, Duration.EndOfTurn), new TapSourceCost()); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); @@ -45,4 +45,4 @@ public final class Omnibian extends CardImpl { public Omnibian copy() { return new Omnibian(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/o/OrzhovaTheChurchOfDeals.java b/Mage.Sets/src/mage/cards/o/OrzhovaTheChurchOfDeals.java index 94bef515c84..6095b5e0ab2 100644 --- a/Mage.Sets/src/mage/cards/o/OrzhovaTheChurchOfDeals.java +++ b/Mage.Sets/src/mage/cards/o/OrzhovaTheChurchOfDeals.java @@ -26,7 +26,7 @@ public final class OrzhovaTheChurchOfDeals extends CardImpl { this.addAbility(new ColorlessManaAbility()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1), new ManaCostsImpl<>("{3}{W}{B}")); ability.addCost(new TapSourceCost()); - ability.addEffect(new GainLifeEffect(1)); + ability.addEffect(new GainLifeEffect(1).concatBy("and")); ability.addTarget(new TargetPlayer(1)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/PsychicPossession.java b/Mage.Sets/src/mage/cards/p/PsychicPossession.java index 93cdd1f2015..e744026dcd9 100644 --- a/Mage.Sets/src/mage/cards/p/PsychicPossession.java +++ b/Mage.Sets/src/mage/cards/p/PsychicPossession.java @@ -91,7 +91,7 @@ class PsychicPossessionTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever enchanted opponent draws a card, you may draw a card"; + return "Whenever enchanted opponent draws a card, you may draw a card."; } } diff --git a/Mage.Sets/src/mage/cards/r/RakdosAugermage.java b/Mage.Sets/src/mage/cards/r/RakdosAugermage.java index 539ffd38454..1ea8078faad 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosAugermage.java +++ b/Mage.Sets/src/mage/cards/r/RakdosAugermage.java @@ -38,7 +38,7 @@ public final class RakdosAugermage extends CardImpl { // {tap}: Reveal your hand and discard a card of target opponent’s choice. Then that player reveals their hand and discards a card of your choice. Activate this ability only any time you could cast a sorcery. ActivateAsSorceryActivatedAbility ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new RakdosAugermageEffect(), new TapSourceCost()); - ability.addEffect(new DiscardCardYouChooseTargetEffect()); + ability.addEffect(new DiscardCardYouChooseTargetEffect().setText(". Then that player reveals their hand and discards a card of your choice")); ability.addTarget(new TargetOpponent()); this.addAbility(ability); } @@ -87,4 +87,4 @@ class RakdosAugermageEffect extends OneShotEffect { public RakdosAugermageEffect copy() { return new RakdosAugermageEffect(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java b/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java index 220fb314689..54efc9323d5 100644 --- a/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java +++ b/Mage.Sets/src/mage/cards/r/RakdosRiteknife.java @@ -48,7 +48,7 @@ public final class RakdosRiteknife extends CardImpl { Ability ability = new SimpleActivatedAbility( new SacrificeEffect(StaticFilters.FILTER_PERMANENT, xValue, "Target player") .setText("target player sacrifices a permanent for each blood counter on {this}"), - new ManaCostsImpl<>("{R}{B}") + new ManaCostsImpl<>("{B}{R}") ); ability.addCost(new SacrificeSourceCost()); ability.addTarget(new TargetPlayer()); diff --git a/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java b/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java index 367a9410291..694b2ee01b6 100644 --- a/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java +++ b/Mage.Sets/src/mage/cards/r/ResearchDevelopment.java @@ -47,7 +47,7 @@ class ResearchEffect extends OneShotEffect { public ResearchEffect() { super(Outcome.Benefit); - this.staticText = "Choose up to four cards you own from outside the game and shuffle them into your library"; + this.staticText = "Shuffle up to four cards you own from outside the game into your library"; } public ResearchEffect(final ResearchEffect effect) { diff --git a/Mage.Sets/src/mage/cards/r/RevenantPatriarch.java b/Mage.Sets/src/mage/cards/r/RevenantPatriarch.java index 66fd07ad9a1..fb704ae90bd 100644 --- a/Mage.Sets/src/mage/cards/r/RevenantPatriarch.java +++ b/Mage.Sets/src/mage/cards/r/RevenantPatriarch.java @@ -32,7 +32,7 @@ public final class RevenantPatriarch extends CardImpl { TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new SkipCombatStepEffect(Duration.OneUse).setText("target player skips their next combat phase."), false); ability.addTarget(new TargetPlayer()); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.WHITE, - "if {W} was spent to cast it, target player skips their next combat phase.")); + "When {this} enters the battlefield, if {W} was spent to cast it, target player skips their next combat phase.")); // Revenant Patriarch can't block. this.addAbility(new CantBlockAbility()); } diff --git a/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java b/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java index 32fb5da75e7..e348fca8518 100644 --- a/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java +++ b/Mage.Sets/src/mage/cards/s/SavraQueenOfTheGolgari.java @@ -132,7 +132,7 @@ class SavraSacrificeEffect extends OneShotEffect { class SavraSacrificeGreenCreatureAbility extends TriggeredAbilityImpl { public SavraSacrificeGreenCreatureAbility() { - super(Zone.BATTLEFIELD, new GainLifeEffect(2)); + super(Zone.BATTLEFIELD, new GainLifeEffect(2), true); setTriggerPhrase("Whenever you sacrifice a green creature, "); } diff --git a/Mage.Sets/src/mage/cards/s/ShriekingGrotesque.java b/Mage.Sets/src/mage/cards/s/ShriekingGrotesque.java index 8efb3ea6432..d8d898eb503 100644 --- a/Mage.Sets/src/mage/cards/s/ShriekingGrotesque.java +++ b/Mage.Sets/src/mage/cards/s/ShriekingGrotesque.java @@ -35,7 +35,7 @@ public final class ShriekingGrotesque extends CardImpl { TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DiscardTargetEffect(1), false); ability.addTarget(new TargetPlayer()); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.BLACK, - "if {B} was spent to cast this spell, target player discards a card.")); + "When {this} enters the battlefield, if {B} was spent to cast it, target player discards a card.")); } private ShriekingGrotesque(final ShriekingGrotesque card) { diff --git a/Mage.Sets/src/mage/cards/s/SilhanaStarfletcher.java b/Mage.Sets/src/mage/cards/s/SilhanaStarfletcher.java index 211739df845..c5cc3b3cdc4 100644 --- a/Mage.Sets/src/mage/cards/s/SilhanaStarfletcher.java +++ b/Mage.Sets/src/mage/cards/s/SilhanaStarfletcher.java @@ -3,7 +3,7 @@ package mage.cards.s; import java.util.UUID; import mage.MageInt; -import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.AsEntersBattlefieldAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.ChooseColorEffect; import mage.abilities.effects.mana.AddManaChosenColorEffect; @@ -34,7 +34,7 @@ public final class SilhanaStarfletcher extends CardImpl { this.addAbility(ReachAbility.getInstance()); // As Silhana Starfletcher enters the battlefield, choose a color. - this.addAbility(new EntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral))); + this.addAbility(new AsEntersBattlefieldAbility(new ChooseColorEffect(Outcome.Neutral))); // {tap}: Add one mana of the chosen color. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new AddManaChosenColorEffect(), new TapSourceCost())); diff --git a/Mage.Sets/src/mage/cards/s/SimicBasilisk.java b/Mage.Sets/src/mage/cards/s/SimicBasilisk.java index 605c744961b..cac9aa40e44 100644 --- a/Mage.Sets/src/mage/cards/s/SimicBasilisk.java +++ b/Mage.Sets/src/mage/cards/s/SimicBasilisk.java @@ -42,7 +42,10 @@ public final class SimicBasilisk extends CardImpl { Effect effect = new CreateDelayedTriggeredAbilityEffect( new AtTheEndOfCombatDelayedTriggeredAbility(new DestroyTargetEffect()), true); effect.setText("destroy that creature at end of combat"); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(new DealsDamageToACreatureTriggeredAbility(effect, true, false, true), Duration.EndOfTurn), new ManaCostsImpl<>("{1}{G}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect( + new DealsDamageToACreatureTriggeredAbility(effect, true, false, true), Duration.EndOfTurn) + .setText("Until end of turn, target creature with a +1/+1 counter on it gains \"Whenever this creature deals combat damage to a creature, destroy that creature at end of combat.\""), + new ManaCostsImpl<>("{1}{G}")); ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_A_CREATURE_P1P1)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SimicGuildmage.java b/Mage.Sets/src/mage/cards/s/SimicGuildmage.java index c451d148e5f..de246c863c3 100644 --- a/Mage.Sets/src/mage/cards/s/SimicGuildmage.java +++ b/Mage.Sets/src/mage/cards/s/SimicGuildmage.java @@ -151,7 +151,7 @@ class MoveAuraEffect extends OneShotEffect { public MoveAuraEffect() { super(Outcome.AIDontUseIt); - staticText = "Attach target Aura enchanting a permanent to another permanent with the same controller."; + staticText = "Attach target Aura attached to a permanent to another permanent with the same controller."; } public MoveAuraEffect(final MoveAuraEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/SinsOfThePast.java b/Mage.Sets/src/mage/cards/s/SinsOfThePast.java index 829b2f7138b..0374a22c676 100644 --- a/Mage.Sets/src/mage/cards/s/SinsOfThePast.java +++ b/Mage.Sets/src/mage/cards/s/SinsOfThePast.java @@ -46,7 +46,7 @@ class SinsOfThePastEffect extends OneShotEffect { SinsOfThePastEffect() { super(Outcome.PlayForFree); - this.staticText = "Until end of turn, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead"; + this.staticText = "Until end of turn, you may cast target instant or sorcery card from your graveyard without paying its mana cost. If that spell would be put into your graveyard, exile it instead"; } SinsOfThePastEffect(final SinsOfThePastEffect effect) { @@ -72,4 +72,3 @@ class SinsOfThePastEffect extends OneShotEffect { return false; } } - diff --git a/Mage.Sets/src/mage/cards/s/SpelltitheEnforcer.java b/Mage.Sets/src/mage/cards/s/SpelltitheEnforcer.java index 0e6116752bc..83abaeb1242 100644 --- a/Mage.Sets/src/mage/cards/s/SpelltitheEnforcer.java +++ b/Mage.Sets/src/mage/cards/s/SpelltitheEnforcer.java @@ -35,7 +35,7 @@ public final class SpelltitheEnforcer extends CardImpl { this.addAbility(new SpellCastOpponentTriggeredAbility( Zone.BATTLEFIELD, new SpelltitheEnforcerEffect(), - StaticFilters.FILTER_SPELL, + StaticFilters.FILTER_SPELL_A, false, SetTargetPointer.PLAYER )); diff --git a/Mage.Sets/src/mage/cards/s/SporebackTroll.java b/Mage.Sets/src/mage/cards/s/SporebackTroll.java index 3ea47b766c4..42ffe51f147 100644 --- a/Mage.Sets/src/mage/cards/s/SporebackTroll.java +++ b/Mage.Sets/src/mage/cards/s/SporebackTroll.java @@ -34,7 +34,7 @@ public final class SporebackTroll extends CardImpl { // {1}{G}: Regenerate target creature with a +1/+1 counter on it. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl<>("{1}{G}")); - ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_A_CREATURE_P1P1)); + ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_CREATURE_P1P1)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SteamcoreWeird.java b/Mage.Sets/src/mage/cards/s/SteamcoreWeird.java index 8c2ace95270..b73b44fde26 100644 --- a/Mage.Sets/src/mage/cards/s/SteamcoreWeird.java +++ b/Mage.Sets/src/mage/cards/s/SteamcoreWeird.java @@ -31,7 +31,7 @@ public final class SteamcoreWeird extends CardImpl { TriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new DamageTargetEffect(2, "it")); ability.addTarget(new TargetAnyTarget()); this.addAbility(new ConditionalInterveningIfTriggeredAbility(ability, ManaWasSpentCondition.RED, - "if {R} was spent to cast this spell, it deals 2 damage to any target.")); + "When {this} enters the battlefield, if {R} was spent to cast it, it deals 2 damage to any target.")); } private SteamcoreWeird(final SteamcoreWeird card) { diff --git a/Mage.Sets/src/mage/cards/s/StoneshakerShaman.java b/Mage.Sets/src/mage/cards/s/StoneshakerShaman.java index 2e0f9569a67..4a32136478f 100644 --- a/Mage.Sets/src/mage/cards/s/StoneshakerShaman.java +++ b/Mage.Sets/src/mage/cards/s/StoneshakerShaman.java @@ -33,7 +33,7 @@ public final class StoneshakerShaman extends CardImpl { this.toughness = new MageInt(1); // At the beginning of each player's end step, that player sacrifices an untapped land. - this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeEffect(filter, 1, "that player "), TargetController.ANY, false)); + this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeEffect(filter, 1, "that player"), TargetController.EACH_PLAYER, false)); } private StoneshakerShaman(final StoneshakerShaman card) { diff --git a/Mage.Sets/src/mage/cards/s/StormscaleAnarch.java b/Mage.Sets/src/mage/cards/s/StormscaleAnarch.java index 969b0baf95f..7340314e1af 100644 --- a/Mage.Sets/src/mage/cards/s/StormscaleAnarch.java +++ b/Mage.Sets/src/mage/cards/s/StormscaleAnarch.java @@ -55,7 +55,7 @@ class StormscaleAnarchEffect extends OneShotEffect { super(Outcome.Benefit); this.staticText = "{this} deals 2 damage to any target. " + "If the discarded card was multicolored, " - + "{this} deals 4 damage to that permanent or player instead."; + + "{this} deals 4 damage instead."; } public StormscaleAnarchEffect(final StormscaleAnarchEffect effect) { diff --git a/Mage.Sets/src/mage/cards/t/TinStreetHooligan.java b/Mage.Sets/src/mage/cards/t/TinStreetHooligan.java index 5a938434cfc..a3cb307d777 100644 --- a/Mage.Sets/src/mage/cards/t/TinStreetHooligan.java +++ b/Mage.Sets/src/mage/cards/t/TinStreetHooligan.java @@ -33,7 +33,7 @@ public final class TinStreetHooligan extends CardImpl { Ability ability = new ConditionalInterveningIfTriggeredAbility( new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()), ManaWasSpentCondition.GREEN, - "When {this} enters the battlefield, if {G} was spent to cast Tin Street Hooligan, destroy target artifact."); + "When {this} enters the battlefield, if {G} was spent to cast it, destroy target artifact."); ability.addTarget(new TargetArtifactPermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/ValorMadeReal.java b/Mage.Sets/src/mage/cards/v/ValorMadeReal.java index 4aeaed2054a..79afbafc871 100644 --- a/Mage.Sets/src/mage/cards/v/ValorMadeReal.java +++ b/Mage.Sets/src/mage/cards/v/ValorMadeReal.java @@ -24,7 +24,7 @@ public final class ValorMadeReal extends CardImpl { // Target creature can block any number of creatures this turn. Ability gainedAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(0)); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(gainedAbility, Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(gainedAbility, Duration.EndOfTurn).setText("target creature can block any number of creatures this turn")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/v/VindictiveMob.java b/Mage.Sets/src/mage/cards/v/VindictiveMob.java index 6a95e4bd43c..785ed2f12c1 100644 --- a/Mage.Sets/src/mage/cards/v/VindictiveMob.java +++ b/Mage.Sets/src/mage/cards/v/VindictiveMob.java @@ -21,7 +21,7 @@ import mage.filter.common.FilterCreaturePermanent; */ public final class VindictiveMob extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("can't be blocked by Saprolings"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Saprolings"); static { filter.add(SubType.SAPROLING.getPredicate()); diff --git a/Mage.Sets/src/mage/cards/v/Voidslime.java b/Mage.Sets/src/mage/cards/v/Voidslime.java index 7052b98baea..07806df3b30 100644 --- a/Mage.Sets/src/mage/cards/v/Voidslime.java +++ b/Mage.Sets/src/mage/cards/v/Voidslime.java @@ -19,7 +19,7 @@ public final class Voidslime extends CardImpl { // Counter target spell, activated ability, or triggered ability. - this.getSpellAbility().addEffect(new CounterTargetEffect()); + this.getSpellAbility().addEffect(new CounterTargetEffect().setText("Counter target spell, activated ability, or triggered ability")); this.getSpellAbility().addTarget(new TargetStackObject()); } diff --git a/Mage.Sets/src/mage/cards/w/WalkingArchive.java b/Mage.Sets/src/mage/cards/w/WalkingArchive.java index d91ab644f4d..973acf4fbf4 100644 --- a/Mage.Sets/src/mage/cards/w/WalkingArchive.java +++ b/Mage.Sets/src/mage/cards/w/WalkingArchive.java @@ -36,7 +36,7 @@ public final class WalkingArchive extends CardImpl { this.addAbility(DefenderAbility.getInstance()); // Walking Archive enters the battlefield with a +1/+1 counter on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), "Walking Archive enters the battlefield with a +1/+1 counter on it")); + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), "with a +1/+1 counter on it")); // At the beginning of each player's upkeep, that player draws a card for each +1/+1 counter on Walking Archive. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new DrawCardTargetEffect(new CountersSourceCount(CounterType.P1P1)), TargetController.ANY, false)); diff --git a/Mage/src/main/java/mage/abilities/effects/common/CreateTokenTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CreateTokenTargetEffect.java index 7277e40da4a..fff82bf02d0 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CreateTokenTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CreateTokenTargetEffect.java @@ -97,9 +97,9 @@ public class CreateTokenTargetEffect extends OneShotEffect { if (token.getDescription().endsWith("token")) { sb.append("s"); } - int tokenLocation = sb.indexOf("token"); + int tokenLocation = sb.indexOf("token "); if (tokenLocation != -1) { - sb.replace(tokenLocation, tokenLocation + 6, "tokens"); + sb.replace(tokenLocation, tokenLocation + 6, "tokens "); } } if (attacking) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java b/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java index de451539114..449ba393b40 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/PreventNextDamageFromChosenSourceToYouEffect.java @@ -12,6 +12,7 @@ import mage.filter.FilterObject; import mage.game.Game; import mage.game.events.GameEvent; import mage.target.TargetSource; +import mage.util.CardUtil; /** * @@ -68,7 +69,7 @@ public class PreventNextDamageFromChosenSourceToYouEffect extends PreventionEffe } private String setText() { - StringBuilder sb = new StringBuilder("The next time a ").append(targetSource.getFilter().getMessage()); + StringBuilder sb = new StringBuilder("The next time ").append(CardUtil.addArticle(targetSource.getFilter().getMessage())); sb.append(" of your choice would deal damage to you"); if (duration == Duration.EndOfTurn) { sb.append(" this turn"); diff --git a/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java index cc2f548c88b..3dd22f248cc 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/RegenerateSourceEffect.java @@ -19,13 +19,12 @@ import java.util.UUID; public class RegenerateSourceEffect extends ReplacementEffectImpl { public RegenerateSourceEffect() { - super(Duration.EndOfTurn, Outcome.Regenerate); - staticText = "Regenerate {this}"; + this("{this}"); } public RegenerateSourceEffect(String targetName) { super(Duration.EndOfTurn, Outcome.Regenerate); - staticText = "Regenerate " + targetName; + staticText = "regenerate " + targetName; } public RegenerateSourceEffect(final RegenerateSourceEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/RegenerateTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/RegenerateTargetEffect.java index f672ce11647..e9d3caf4897 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/RegenerateTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/RegenerateTargetEffect.java @@ -72,7 +72,7 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl { return staticText; } StringBuilder sb = new StringBuilder(); - sb.append("Regenerate "); + sb.append("regenerate "); Target target = mode.getTargets().get(0); if (target != null) { if (!target.getTargetName().toLowerCase(Locale.ENGLISH).startsWith("another")) { @@ -82,4 +82,4 @@ public class RegenerateTargetEffect extends ReplacementEffectImpl { } return sb.toString(); } -} \ No newline at end of file +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/SacrificeEffect.java b/Mage/src/main/java/mage/abilities/effects/common/SacrificeEffect.java index d19843d6247..976feeb7923 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/SacrificeEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/SacrificeEffect.java @@ -102,6 +102,7 @@ public class SacrificeEffect extends OneShotEffect { sb.append(CardUtil.addArticle(filter.getMessage())); } else { sb.append(CardUtil.numberToText(count.toString(), "a")); + sb.append(" "); sb.append(filter.getMessage()); } staticText = sb.toString(); diff --git a/Mage/src/main/java/mage/abilities/effects/common/combat/MustBeBlockedByAllSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/combat/MustBeBlockedByAllSourceEffect.java index 4f4fc76fe66..41ee0a79d0a 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/combat/MustBeBlockedByAllSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/combat/MustBeBlockedByAllSourceEffect.java @@ -28,7 +28,8 @@ public class MustBeBlockedByAllSourceEffect extends RequirementEffect { public MustBeBlockedByAllSourceEffect(Duration duration, FilterCreaturePermanent filter) { super(duration); this.filter = filter; - staticText = "All " + filter.getMessage() + " able to block {this} do so"; + staticText = "All " + filter.getMessage() + " able to block {this}" + + (duration.equals(Duration.EndOfTurn) ? " this turn " : " ") + "do so"; } public MustBeBlockedByAllSourceEffect(final MustBeBlockedByAllSourceEffect effect) {