From 6ed259941ad407dfd935440bd16ec19e9f79419b Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Mon, 1 Feb 2021 22:47:20 -0500 Subject: [PATCH] [KHC] more text fixes --- Mage.Sets/src/mage/cards/a/AmbitionsCost.java | 4 +- Mage.Sets/src/mage/cards/a/ArcaneArtisan.java | 2 +- .../src/mage/cards/c/CosmicIntervention.java | 2 +- .../src/mage/cards/e/ElvishPromenade.java | 2 +- Mage.Sets/src/mage/cards/f/FarhavenElf.java | 2 +- Mage.Sets/src/mage/cards/h/HarvestSeason.java | 2 +- .../src/mage/cards/h/HeroOfBretagard.java | 46 ++++++++++--------- .../src/mage/cards/i/ImperiousPerfect.java | 2 +- .../src/mage/cards/l/LysAlanaHuntmaster.java | 2 +- .../src/mage/cards/p/PactOfTheSerpent.java | 2 +- .../mage/cards/r/RanarTheEverWatchful.java | 2 +- Mage.Sets/src/mage/cards/s/StoicFarmer.java | 2 +- Mage.Sets/src/mage/cards/w/WhirlerRogue.java | 4 +- .../java/mage/verify/VerifyCardDataTest.java | 2 +- 14 files changed, 40 insertions(+), 36 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/AmbitionsCost.java b/Mage.Sets/src/mage/cards/a/AmbitionsCost.java index dd59838fbb..9fe4b52f63 100644 --- a/Mage.Sets/src/mage/cards/a/AmbitionsCost.java +++ b/Mage.Sets/src/mage/cards/a/AmbitionsCost.java @@ -19,8 +19,8 @@ public final class AmbitionsCost extends CardImpl { // 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")); } public AmbitionsCost(final AmbitionsCost card) { diff --git a/Mage.Sets/src/mage/cards/a/ArcaneArtisan.java b/Mage.Sets/src/mage/cards/a/ArcaneArtisan.java index 379f2e9531..78ccc087cf 100644 --- a/Mage.Sets/src/mage/cards/a/ArcaneArtisan.java +++ b/Mage.Sets/src/mage/cards/a/ArcaneArtisan.java @@ -144,7 +144,7 @@ class ArcaneArtisanLeavesBattlefieldTriggeredAbility extends ZoneChangeTriggered @Override public String getRule() { - return "When {this} leaves the battlefield, exile all tokens created with it at the beginning of the next end step"; + return "When {this} leaves the battlefield, exile all tokens created with it at the beginning of the next end step."; } } diff --git a/Mage.Sets/src/mage/cards/c/CosmicIntervention.java b/Mage.Sets/src/mage/cards/c/CosmicIntervention.java index 58a62c6808..028f7b3983 100644 --- a/Mage.Sets/src/mage/cards/c/CosmicIntervention.java +++ b/Mage.Sets/src/mage/cards/c/CosmicIntervention.java @@ -53,7 +53,7 @@ class CosmicInterventionReplacementEffect extends ReplacementEffectImpl { CosmicInterventionReplacementEffect() { super(Duration.EndOfTurn, Outcome.Benefit); - staticText = "If a permanent you control would be put into a graveyard from the battlefield this turn, exile it instead. Return it to the battlefield under its owner's control at the beginning of the next end step"; + staticText = "If a permanent you control would be put into a graveyard from the battlefield this turn, exile it instead. Return it to the battlefield under its owner's control at the beginning of the next end step"; } private CosmicInterventionReplacementEffect(final CosmicInterventionReplacementEffect effect) { diff --git a/Mage.Sets/src/mage/cards/e/ElvishPromenade.java b/Mage.Sets/src/mage/cards/e/ElvishPromenade.java index 15b568ae38..1f5e515b92 100644 --- a/Mage.Sets/src/mage/cards/e/ElvishPromenade.java +++ b/Mage.Sets/src/mage/cards/e/ElvishPromenade.java @@ -20,7 +20,7 @@ import mage.game.permanent.token.ElfToken; */ public final class ElvishPromenade extends CardImpl { - private static final FilterControlledPermanent filter = new FilterControlledPermanent("Elves you control"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("Elf you control"); static { filter.add(SubType.ELF.getPredicate()); diff --git a/Mage.Sets/src/mage/cards/f/FarhavenElf.java b/Mage.Sets/src/mage/cards/f/FarhavenElf.java index 118f2b0000..d5b78cdebd 100644 --- a/Mage.Sets/src/mage/cards/f/FarhavenElf.java +++ b/Mage.Sets/src/mage/cards/f/FarhavenElf.java @@ -28,7 +28,7 @@ public final class FarhavenElf extends CardImpl { this.toughness = new MageInt(1); // When Farhaven Elf enters the battlefield, you may search your library for a basic land card and put it onto the battlefield tapped. If you do, shuffle your library. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, false), true)); + this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true)); } public FarhavenElf(final FarhavenElf card) { diff --git a/Mage.Sets/src/mage/cards/h/HarvestSeason.java b/Mage.Sets/src/mage/cards/h/HarvestSeason.java index 73e8e20a8f..f03d1b948a 100644 --- a/Mage.Sets/src/mage/cards/h/HarvestSeason.java +++ b/Mage.Sets/src/mage/cards/h/HarvestSeason.java @@ -55,7 +55,7 @@ class HarvestSeasonEffect extends OneShotEffect { HarvestSeasonEffect() { super(Outcome.Benefit); this.staticText = "Search your library for up to X basic land cards, where X is the number of tapped creatures you control," - + " and put those card onto the battlefield tapped, then shuffle your library."; + + " and put those cards onto the battlefield tapped, then shuffle your library."; } HarvestSeasonEffect(final HarvestSeasonEffect effect) { diff --git a/Mage.Sets/src/mage/cards/h/HeroOfBretagard.java b/Mage.Sets/src/mage/cards/h/HeroOfBretagard.java index cee7ddb166..062aadab15 100644 --- a/Mage.Sets/src/mage/cards/h/HeroOfBretagard.java +++ b/Mage.Sets/src/mage/cards/h/HeroOfBretagard.java @@ -1,10 +1,10 @@ package mage.cards.h; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.TriggeredAbilityImpl; import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.Condition; import mage.abilities.condition.common.SourceHasAnyCountersCondition; import mage.abilities.condition.common.SourceMatchesFilterCondition; import mage.abilities.decorator.ConditionalContinuousEffect; @@ -18,17 +18,15 @@ import mage.abilities.keyword.IndestructibleAbility; import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.SubType; -import mage.constants.Zone; +import mage.constants.*; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; +import java.util.UUID; + /** * @author jeffwadsworth */ @@ -42,6 +40,9 @@ public final class HeroOfBretagard extends CardImpl { filter2.add(new SourceHasAnyCountersCondition(10)); } + private static final Condition condition = new SourceMatchesFilterCondition(filter); + private static final Condition condition2 = new SourceMatchesFilterCondition(filter2); + public HeroOfBretagard(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{W}"); @@ -54,23 +55,24 @@ public final class HeroOfBretagard extends CardImpl { this.addAbility(new HeroOfBretagardTriggeredAbility(new HeroOfBretagardEffect())); // As long as Hero of Bretagard has five or more counters on it, it has flying and is an Angel in addition to its other types. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new ConditionalContinuousEffect(new GainAbilitySourceEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield), - new SourceMatchesFilterCondition(filter), - "As long as Hero of Bretagard has five or more counters on it, it has flying "))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect(Duration.WhileOnBattlefield, SubType.ANGEL), new SourceMatchesFilterCondition(filter), - "and is an Angel in addition to its other types."))); + Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect( + new GainAbilitySourceEffect( + FlyingAbility.getInstance(), Duration.WhileOnBattlefield + ), condition, "As long as {this} has five or more counters on it, it has flying" + )); + ability.addEffect(new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect( + Duration.WhileOnBattlefield, SubType.ANGEL + ), condition, "and is an Angel in addition to its other types.")); + this.addAbility(ability); // As long as Hero of Bretagard has ten or more counters on it, it has indestructible and is a God in addition to its other types. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new ConditionalContinuousEffect(new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield), - new SourceMatchesFilterCondition(filter2), - "As long as Hero of Bretagard has ten or more counters on it, it has indestructible "))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect(Duration.WhileOnBattlefield, SubType.GOD), new SourceMatchesFilterCondition(filter2), - "and is a God in addition to its other types."))); - + ability = new SimpleStaticAbility(new ConditionalContinuousEffect(new GainAbilitySourceEffect( + IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield + ), condition2, "As long as {this} has ten or more counters on it, it has indestructible")); + ability.addEffect(new ConditionalContinuousEffect(new AddCardSubTypeSourceEffect( + Duration.WhileOnBattlefield, SubType.GOD + ), condition2, "and is a God in addition to its other types.")); + this.addAbility(ability); } private HeroOfBretagard(final HeroOfBretagard card) { @@ -139,7 +141,7 @@ class HeroOfBretagardTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever you exile one or more cards from your hand and/or permanents from the battlefield, put that many +1/+1 counters on {this}"; + return "Whenever you exile one or more cards from your hand and/or permanents from the battlefield, put that many +1/+1 counters on {this}."; } } diff --git a/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java b/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java index de8050532d..24f2d014ee 100644 --- a/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java +++ b/Mage.Sets/src/mage/cards/i/ImperiousPerfect.java @@ -22,7 +22,7 @@ import mage.game.permanent.token.ElfToken; */ public final class ImperiousPerfect extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Elf creatures"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Elves"); static { filter.add(SubType.ELF.getPredicate()); diff --git a/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java b/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java index d706ee6fa3..adf85fb74a 100644 --- a/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java +++ b/Mage.Sets/src/mage/cards/l/LysAlanaHuntmaster.java @@ -18,7 +18,7 @@ import mage.game.permanent.token.ElfToken; */ public final class LysAlanaHuntmaster extends CardImpl { - private static final FilterSpell filter = new FilterSpell("Elf spell"); + private static final FilterSpell filter = new FilterSpell("an Elf spell"); static { filter.add(SubType.ELF.getPredicate()); diff --git a/Mage.Sets/src/mage/cards/p/PactOfTheSerpent.java b/Mage.Sets/src/mage/cards/p/PactOfTheSerpent.java index 2429e17fe6..dcaed81c8f 100644 --- a/Mage.Sets/src/mage/cards/p/PactOfTheSerpent.java +++ b/Mage.Sets/src/mage/cards/p/PactOfTheSerpent.java @@ -51,7 +51,7 @@ class PactOfTheSerpentEffect extends OneShotEffect { PactOfTheSerpentEffect() { super(Outcome.Benefit); staticText = "Target player draws X cards and loses X life, " + - "where X is the number of creature they control of the chosen type"; + "where X is the number of creatures they control of the chosen type"; } private PactOfTheSerpentEffect(final PactOfTheSerpentEffect effect) { diff --git a/Mage.Sets/src/mage/cards/r/RanarTheEverWatchful.java b/Mage.Sets/src/mage/cards/r/RanarTheEverWatchful.java index 079dd1ae42..2ace8ca70f 100644 --- a/Mage.Sets/src/mage/cards/r/RanarTheEverWatchful.java +++ b/Mage.Sets/src/mage/cards/r/RanarTheEverWatchful.java @@ -66,7 +66,7 @@ class RanarTheEverWatchfulCostReductionEffect extends CostModificationEffectImpl RanarTheEverWatchfulCostReductionEffect() { super(Duration.WhileOnBattlefield, Outcome.Neutral, CostModificationType.REDUCE_COST); - staticText = "The first card you foretell each turn costs 0 to foretell"; + staticText = "The first card you foretell each turn costs {0} to foretell"; } private RanarTheEverWatchfulCostReductionEffect(RanarTheEverWatchfulCostReductionEffect effect) { diff --git a/Mage.Sets/src/mage/cards/s/StoicFarmer.java b/Mage.Sets/src/mage/cards/s/StoicFarmer.java index b4fc3af55d..6d62640a42 100644 --- a/Mage.Sets/src/mage/cards/s/StoicFarmer.java +++ b/Mage.Sets/src/mage/cards/s/StoicFarmer.java @@ -48,7 +48,7 @@ public final class StoicFarmer extends CardImpl { new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter)), condition, "search your library for a basic Plains card and reveal it. " + "If an opponent controls more lands than you, put it onto the battlefield tapped. " + - "Otherwise, put it into your hand. Then shuffle your library" + "Otherwise put it into your hand. Then shuffle your library" ) )); diff --git a/Mage.Sets/src/mage/cards/w/WhirlerRogue.java b/Mage.Sets/src/mage/cards/w/WhirlerRogue.java index 21ca121b04..05bf5d4cd5 100644 --- a/Mage.Sets/src/mage/cards/w/WhirlerRogue.java +++ b/Mage.Sets/src/mage/cards/w/WhirlerRogue.java @@ -16,6 +16,7 @@ import mage.constants.CardType; import mage.constants.SubType; import mage.constants.Zone; import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.permanent.UntappedPredicate; import mage.game.permanent.token.ThopterColorlessToken; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; @@ -26,9 +27,10 @@ import mage.target.common.TargetCreaturePermanent; */ public final class WhirlerRogue extends CardImpl { - private static final FilterControlledPermanent filter = new FilterControlledPermanent("artifacts"); + private static final FilterControlledPermanent filter = new FilterControlledPermanent("untapped artifacts you control"); static { + filter.add(UntappedPredicate.instance); filter.add(CardType.ARTIFACT.getPredicate()); } diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index 8107047ccd..90423e8586 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -53,7 +53,7 @@ public class VerifyCardDataTest { private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class); - private static final String FULL_ABILITIES_CHECK_SET_CODE = "KHM"; // check all abilities and output cards with wrong abilities texts; + private static final String FULL_ABILITIES_CHECK_SET_CODE = "KHC"; // 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<>();