From 7e550f463fadbcb16299d68161f9d31bb05d5cac Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Tue, 8 Nov 2022 18:51:01 -0500 Subject: [PATCH] [BRO] various text fixes --- Mage.Sets/src/mage/cards/a/Audacity.java | 4 ++-- Mage.Sets/src/mage/cards/b/BatteryBearer.java | 2 +- Mage.Sets/src/mage/cards/b/BitterReunion.java | 2 +- .../src/mage/cards/b/BladecoilSerpent.java | 1 + Mage.Sets/src/mage/cards/c/ClayChampion.java | 4 ++-- .../mage/cards/d/DrafnaFounderOfLatNam.java | 2 +- Mage.Sets/src/mage/cards/f/FaunaShaman.java | 4 ++-- Mage.Sets/src/mage/cards/g/GaeasCourser.java | 2 +- Mage.Sets/src/mage/cards/g/GixsCaress.java | 2 +- .../src/mage/cards/h/HeroOfTheDunes.java | 2 +- .../mage/cards/h/HurkylsFinalMeditation.java | 4 ++-- .../src/mage/cards/j/JunkyardGenius.java | 1 + .../src/mage/cards/l/LevitatingStatue.java | 3 +-- .../mage/cards/l/LoranDiscipleOfHistory.java | 2 +- .../src/mage/cards/m/MachineOverMatter.java | 7 ++++--- .../src/mage/cards/m/MassProduction.java | 2 +- .../src/mage/cards/p/PainfulQuandary.java | 2 +- .../src/mage/cards/s/SkystrikeOfficer.java | 2 +- .../mage/cards/s/SplittingThePowerstone.java | 2 +- .../src/mage/cards/t/TawnosTheToymaker.java | 2 +- .../mage/cards/t/TeferiTemporalPilgrim.java | 4 ++-- .../cards/t/TheMightstoneAndWeakstone.java | 2 +- .../src/mage/cards/t/TitaniasCommand.java | 3 +++ .../mage/cards/w/WeakstonesSubjugation.java | 4 ++-- .../src/mage/cards/y/YotianTactician.java | 4 +++- .../java/mage/verify/VerifyCardDataTest.java | 2 +- .../effects/common/GetEmblemEffect.java | 20 +++++++------------ .../common/TapSourceUnlessPaysEffect.java | 3 ++- .../continuous/BecomesColorSourceEffect.java | 2 +- .../continuous/LoseAbilitySourceEffect.java | 7 +------ .../emblems/SaheeliFiligreeMasterEmblem.java | 14 +++++++------ 31 files changed, 58 insertions(+), 59 deletions(-) diff --git a/Mage.Sets/src/mage/cards/a/Audacity.java b/Mage.Sets/src/mage/cards/a/Audacity.java index 81bfeb81e1e..ce304a5331a 100644 --- a/Mage.Sets/src/mage/cards/a/Audacity.java +++ b/Mage.Sets/src/mage/cards/a/Audacity.java @@ -5,7 +5,7 @@ import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.AttachEffect; import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EnchantAbility; import mage.abilities.keyword.TrampleAbility; @@ -37,7 +37,7 @@ public final class Audacity extends CardImpl { this.addAbility(new EnchantAbility(auraTarget)); // Enchanted creature gets +2/+0 and has trample. - Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); + Ability ability = new SimpleStaticAbility(new BoostEnchantedEffect(2, 0)); ability.addEffect(new GainAbilityAttachedEffect( TrampleAbility.getInstance(), AttachmentType.EQUIPMENT ).setText("and has trample")); diff --git a/Mage.Sets/src/mage/cards/b/BatteryBearer.java b/Mage.Sets/src/mage/cards/b/BatteryBearer.java index bf3426256f4..52363581bf5 100644 --- a/Mage.Sets/src/mage/cards/b/BatteryBearer.java +++ b/Mage.Sets/src/mage/cards/b/BatteryBearer.java @@ -43,7 +43,7 @@ public final class BatteryBearer extends CardImpl { // Creatures you control have "{T}: Add {C}. This mana can't be spent to cast a nonartifact spell." this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect( new ConditionalColorlessManaAbility(1, PowerstoneToken.makeBuilder()), - Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE + Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES ))); // Whenever you cast an artifact spell with mana value 6 or greater, draw a card. diff --git a/Mage.Sets/src/mage/cards/b/BitterReunion.java b/Mage.Sets/src/mage/cards/b/BitterReunion.java index e606bdbbb0d..a6811522ca2 100644 --- a/Mage.Sets/src/mage/cards/b/BitterReunion.java +++ b/Mage.Sets/src/mage/cards/b/BitterReunion.java @@ -34,7 +34,7 @@ public final class BitterReunion extends CardImpl { // {1}, Sacrifice Bitter Reunion: Creatures you control gain haste until end of turn. Ability ability = new SimpleActivatedAbility(new GainAbilityControlledEffect( HasteAbility.getInstance(), Duration.EndOfTurn, - StaticFilters.FILTER_CONTROLLED_CREATURES + StaticFilters.FILTER_PERMANENT_CREATURES ), new GenericManaCost(1)); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/b/BladecoilSerpent.java b/Mage.Sets/src/mage/cards/b/BladecoilSerpent.java index 538d31e7093..d74e3e767da 100644 --- a/Mage.Sets/src/mage/cards/b/BladecoilSerpent.java +++ b/Mage.Sets/src/mage/cards/b/BladecoilSerpent.java @@ -57,6 +57,7 @@ public final class BladecoilSerpent extends CardImpl { ability.addEffect(new ConditionalOneShotEffect(new AddContinuousEffectToGame( new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.EndOfTurn) ), BladecoilSerpentCondition.instance, "and haste until end of turn")); + this.addAbility(ability); } private BladecoilSerpent(final BladecoilSerpent card) { diff --git a/Mage.Sets/src/mage/cards/c/ClayChampion.java b/Mage.Sets/src/mage/cards/c/ClayChampion.java index 9f8ef3313ce..71e14dee40c 100644 --- a/Mage.Sets/src/mage/cards/c/ClayChampion.java +++ b/Mage.Sets/src/mage/cards/c/ClayChampion.java @@ -39,12 +39,12 @@ public final class ClayChampion extends CardImpl { null, null, "with three +1/+1 counters on it for each {G}{G} spent to cast it" )); - // When Clay Champion enters the battlefield, choose up to two other creatures you control. For each {W}{W} spent to cast Clay Champion, put a +1/+1 counter on each of them. + // When Clay Champion enters the battlefield, choose up to two other target creatures you control. For each {W}{W} spent to cast Clay Champion, put a +1/+1 counter on each of them. Ability ability = new EntersBattlefieldTriggeredAbility( new AddCountersTargetEffect( CounterType.P1P1.createInstance(0), EachTwoManaSpentToCastValue.WHITE - ).setText("choose up to two other creatures you control. " + + ).setText("choose up to two other target creatures you control. " + "For each {W}{W} spent to cast {this}, put a +1/+1 counter on each of them") ); ability.addTarget(new TargetPermanent( diff --git a/Mage.Sets/src/mage/cards/d/DrafnaFounderOfLatNam.java b/Mage.Sets/src/mage/cards/d/DrafnaFounderOfLatNam.java index 657ff52206a..4c0c1b83a5e 100644 --- a/Mage.Sets/src/mage/cards/d/DrafnaFounderOfLatNam.java +++ b/Mage.Sets/src/mage/cards/d/DrafnaFounderOfLatNam.java @@ -49,7 +49,7 @@ public final class DrafnaFounderOfLatNam extends CardImpl { this.addAbility(ability); // {3}, {T}: Copy target artifact spell you control. - ability = new SimpleActivatedAbility(new CopyTargetSpellEffect(), new GenericManaCost(3)); + ability = new SimpleActivatedAbility(new CopyTargetSpellEffect(false, false, false), new GenericManaCost(3)); ability.addCost(new TapSourceCost()); ability.addTarget(new TargetSpell(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/f/FaunaShaman.java b/Mage.Sets/src/mage/cards/f/FaunaShaman.java index 876594ecaed..1e8df9a747f 100644 --- a/Mage.Sets/src/mage/cards/f/FaunaShaman.java +++ b/Mage.Sets/src/mage/cards/f/FaunaShaman.java @@ -34,10 +34,10 @@ public final class FaunaShaman extends CardImpl { // {G}, {tap}, Discard a creature card: Search your library for a creature card, reveal it, and put it into your hand. Then shuffle your library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_CREATURE), true), + new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_CREATURE_A), true), new ColoredManaCost(ColoredManaSymbol.G)); ability.addCost(new TapSourceCost()); - ability.addCost(new DiscardTargetCost(new TargetCardInHand(StaticFilters.FILTER_CARD_CREATURE))); + ability.addCost(new DiscardTargetCost(new TargetCardInHand(StaticFilters.FILTER_CARD_CREATURE_A))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GaeasCourser.java b/Mage.Sets/src/mage/cards/g/GaeasCourser.java index 68aea0a2ea0..977999527ad 100644 --- a/Mage.Sets/src/mage/cards/g/GaeasCourser.java +++ b/Mage.Sets/src/mage/cards/g/GaeasCourser.java @@ -34,7 +34,7 @@ public final class GaeasCourser extends CardImpl { this.addAbility(new ConditionalInterveningIfTriggeredAbility( new AttacksTriggeredAbility(new DrawCardSourceControllerEffect(1)), condition, - "Whenever {this} attacks, if there are there or more creature cards in your graveyard, draw a card." + "Whenever {this} attacks, if there are three or more creature cards in your graveyard, draw a card." )); } diff --git a/Mage.Sets/src/mage/cards/g/GixsCaress.java b/Mage.Sets/src/mage/cards/g/GixsCaress.java index eef742556e9..4b25c02dcb8 100644 --- a/Mage.Sets/src/mage/cards/g/GixsCaress.java +++ b/Mage.Sets/src/mage/cards/g/GixsCaress.java @@ -27,7 +27,7 @@ public final class GixsCaress extends CardImpl { this.getSpellAbility().addTarget(new TargetOpponent()); // Create a tapped Powerstone token. - this.getSpellAbility().addEffect(new CreateTokenEffect(new PowerstoneToken(), 1, true)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new PowerstoneToken(), 1, true).concatBy("
")); } private GixsCaress(final GixsCaress card) { diff --git a/Mage.Sets/src/mage/cards/h/HeroOfTheDunes.java b/Mage.Sets/src/mage/cards/h/HeroOfTheDunes.java index 05e452ca19b..8e062a64e3f 100644 --- a/Mage.Sets/src/mage/cards/h/HeroOfTheDunes.java +++ b/Mage.Sets/src/mage/cards/h/HeroOfTheDunes.java @@ -56,7 +56,7 @@ public final class HeroOfTheDunes extends CardImpl { // Creatures you control with mana value 3 or less get +1/+0. this.addAbility(new SimpleStaticAbility(new BoostAllEffect( - 1, 0, Duration.EndOfTurn, filter2, false + 1, 0, Duration.WhileOnBattlefield, filter2, false ))); } diff --git a/Mage.Sets/src/mage/cards/h/HurkylsFinalMeditation.java b/Mage.Sets/src/mage/cards/h/HurkylsFinalMeditation.java index 6d03bf05e7c..4b3aa279774 100644 --- a/Mage.Sets/src/mage/cards/h/HurkylsFinalMeditation.java +++ b/Mage.Sets/src/mage/cards/h/HurkylsFinalMeditation.java @@ -24,9 +24,9 @@ public final class HurkylsFinalMeditation extends CardImpl { public HurkylsFinalMeditation(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{U}{U}{U}"); - // As long as its not your turn, this spell costs {3} more to cast. + // As long as it's not your turn, this spell costs {3} more to cast. this.addAbility(new SimpleStaticAbility( - Zone.ALL, new InfoEffect("as long as its not your turn, this spell costs {3} more to cast") + Zone.ALL, new InfoEffect("as long as it's not your turn, this spell costs {3} more to cast") )); this.getSpellAbility().setCostAdjuster(HurkylsFinalMeditationAdjuster.instance); diff --git a/Mage.Sets/src/mage/cards/j/JunkyardGenius.java b/Mage.Sets/src/mage/cards/j/JunkyardGenius.java index 13a29bdf561..a12724880e6 100644 --- a/Mage.Sets/src/mage/cards/j/JunkyardGenius.java +++ b/Mage.Sets/src/mage/cards/j/JunkyardGenius.java @@ -52,6 +52,7 @@ public final class JunkyardGenius extends CardImpl { HasteAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURES, true ).setText("and haste")); + this.addAbility(ability); } private JunkyardGenius(final JunkyardGenius card) { diff --git a/Mage.Sets/src/mage/cards/l/LevitatingStatue.java b/Mage.Sets/src/mage/cards/l/LevitatingStatue.java index 53fd23a31f8..3e0016e7ab6 100644 --- a/Mage.Sets/src/mage/cards/l/LevitatingStatue.java +++ b/Mage.Sets/src/mage/cards/l/LevitatingStatue.java @@ -37,8 +37,7 @@ public final class LevitatingStatue extends CardImpl { // {2}: Levitating Statue becomes a 1/1 Construct artifact creature until end of turn. this.addAbility(new SimpleActivatedAbility(new BecomesCreatureSourceEffect( new CreatureToken( - 1, 1, "1/1 Construct artifact " + - "creature until end of turn", SubType.CONSTRUCT + 1, 1, "1/1 Construct artifact creature", SubType.CONSTRUCT ).withType(CardType.ARTIFACT), "", Duration.EndOfTurn ), new GenericManaCost(2))); } diff --git a/Mage.Sets/src/mage/cards/l/LoranDiscipleOfHistory.java b/Mage.Sets/src/mage/cards/l/LoranDiscipleOfHistory.java index 9d58cb8a632..45e8e683610 100644 --- a/Mage.Sets/src/mage/cards/l/LoranDiscipleOfHistory.java +++ b/Mage.Sets/src/mage/cards/l/LoranDiscipleOfHistory.java @@ -22,7 +22,7 @@ import java.util.UUID; public final class LoranDiscipleOfHistory extends CardImpl { private static final FilterPermanent filter - = new FilterControlledCreaturePermanent("another legendary creature"); + = new FilterControlledCreaturePermanent("legendary creature"); static { filter.add(SuperType.LEGENDARY.getPredicate()); diff --git a/Mage.Sets/src/mage/cards/m/MachineOverMatter.java b/Mage.Sets/src/mage/cards/m/MachineOverMatter.java index 7ad6566b6b6..7d1059761b6 100644 --- a/Mage.Sets/src/mage/cards/m/MachineOverMatter.java +++ b/Mage.Sets/src/mage/cards/m/MachineOverMatter.java @@ -11,7 +11,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; -import mage.filter.StaticFilters; +import mage.filter.common.FilterArtifactCreaturePermanent; import mage.target.common.TargetNonlandPermanent; import java.util.UUID; @@ -21,8 +21,9 @@ import java.util.UUID; */ public final class MachineOverMatter extends CardImpl { - private static final Condition condition - = new PermanentsOnTheBattlefieldCondition(StaticFilters.FILTER_PERMANENT_ARTIFACT_CREATURE); + private static final Condition condition = new PermanentsOnTheBattlefieldCondition( + new FilterArtifactCreaturePermanent("you control an artifact creature") + ); private static final Hint hint = new ConditionHint(condition, "You control an artifact creature"); public MachineOverMatter(UUID ownerId, CardSetInfo setInfo) { diff --git a/Mage.Sets/src/mage/cards/m/MassProduction.java b/Mage.Sets/src/mage/cards/m/MassProduction.java index 7a971eabff0..a73ee386c86 100644 --- a/Mage.Sets/src/mage/cards/m/MassProduction.java +++ b/Mage.Sets/src/mage/cards/m/MassProduction.java @@ -17,7 +17,7 @@ public final class MassProduction extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{W}"); // Create four 1/1 colorless Soldier artifact creature tokens. - this.getSpellAbility().addEffect(new CreateTokenEffect(new SoldierArtifactToken())); + this.getSpellAbility().addEffect(new CreateTokenEffect(new SoldierArtifactToken(), 4)); } private MassProduction(final MassProduction card) { diff --git a/Mage.Sets/src/mage/cards/p/PainfulQuandary.java b/Mage.Sets/src/mage/cards/p/PainfulQuandary.java index 4b3c60f56fe..d953b18554c 100644 --- a/Mage.Sets/src/mage/cards/p/PainfulQuandary.java +++ b/Mage.Sets/src/mage/cards/p/PainfulQuandary.java @@ -28,7 +28,7 @@ public final class PainfulQuandary extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{3}{B}{B}"); // Whenever an opponent casts a spell, that player loses 5 life unless they discard a card. - this.addAbility(new SpellCastOpponentTriggeredAbility(Zone.BATTLEFIELD, new PainfulQuandryEffect(), StaticFilters.FILTER_SPELL, false, SetTargetPointer.PLAYER)); + this.addAbility(new SpellCastOpponentTriggeredAbility(Zone.BATTLEFIELD, new PainfulQuandryEffect(), StaticFilters.FILTER_SPELL_A, false, SetTargetPointer.PLAYER)); } private PainfulQuandary(final PainfulQuandary card) { diff --git a/Mage.Sets/src/mage/cards/s/SkystrikeOfficer.java b/Mage.Sets/src/mage/cards/s/SkystrikeOfficer.java index ea96be12a85..c13d1c535b8 100644 --- a/Mage.Sets/src/mage/cards/s/SkystrikeOfficer.java +++ b/Mage.Sets/src/mage/cards/s/SkystrikeOfficer.java @@ -24,7 +24,7 @@ import java.util.UUID; public final class SkystrikeOfficer extends CardImpl { private static final FilterControlledPermanent filter - = new FilterControlledPermanent(SubType.SOLDIER, "untapped Soldiers"); + = new FilterControlledPermanent(SubType.SOLDIER, "untapped Soldiers you control"); static { filter.add(TappedPredicate.UNTAPPED); diff --git a/Mage.Sets/src/mage/cards/s/SplittingThePowerstone.java b/Mage.Sets/src/mage/cards/s/SplittingThePowerstone.java index 429324bee24..3df5db301d4 100644 --- a/Mage.Sets/src/mage/cards/s/SplittingThePowerstone.java +++ b/Mage.Sets/src/mage/cards/s/SplittingThePowerstone.java @@ -31,7 +31,7 @@ public final class SplittingThePowerstone extends CardImpl { this.getSpellAbility().addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN)); // Create two tapped Powerstone tokens. If the sacrificed artifact was legendary, draw a card. - this.getSpellAbility().addEffect(new CreateTokenEffect(new PowerstoneToken(), 2, false)); + this.getSpellAbility().addEffect(new CreateTokenEffect(new PowerstoneToken(), 2, true)); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new DrawCardSourceControllerEffect(1), SplittingThePowerstoneCondition.instance, "If the sacrificed artifact was legendary, draw a card" diff --git a/Mage.Sets/src/mage/cards/t/TawnosTheToymaker.java b/Mage.Sets/src/mage/cards/t/TawnosTheToymaker.java index 8d08315ecef..9935ec47076 100644 --- a/Mage.Sets/src/mage/cards/t/TawnosTheToymaker.java +++ b/Mage.Sets/src/mage/cards/t/TawnosTheToymaker.java @@ -46,7 +46,7 @@ public final class TawnosTheToymaker extends CardImpl { this.toughness = new MageInt(5); // Whenever you cast a Beast or Bird creature spell, you may copy it, except it's an artifact in addition to its other types. - this.addAbility(new SpellCastControllerTriggeredAbility(new TawnosTheToymakerEffect(), filter, false)); + this.addAbility(new SpellCastControllerTriggeredAbility(new TawnosTheToymakerEffect(), filter, true)); } private TawnosTheToymaker(final TawnosTheToymaker card) { diff --git a/Mage.Sets/src/mage/cards/t/TeferiTemporalPilgrim.java b/Mage.Sets/src/mage/cards/t/TeferiTemporalPilgrim.java index 080f6ef03c4..1b88e77f16f 100644 --- a/Mage.Sets/src/mage/cards/t/TeferiTemporalPilgrim.java +++ b/Mage.Sets/src/mage/cards/t/TeferiTemporalPilgrim.java @@ -44,7 +44,7 @@ public final class TeferiTemporalPilgrim extends CardImpl { // -2: Create a 2/2 blue Spirit creature token with vigilance and "Whenever you draw a card, put a +1/+1 counter on this creature." this.addAbility(new LoyaltyAbility(new CreateTokenEffect(new SpiritTeferiToken()), -2)); - // -12: Target opponent chooses a permanent they control and returns it to its owner's had. Then they shuffle each nonland permanent they control into its owner's library. + // -12: Target opponent chooses a permanent they control and returns it to its owner's hand. Then they shuffle each nonland permanent they control into its owner's library. Ability ability = new LoyaltyAbility(new TeferiTemporalPilgrimEffect(), -12); ability.addTarget(new TargetOpponent()); this.addAbility(ability); @@ -64,7 +64,7 @@ class TeferiTemporalPilgrimEffect extends OneShotEffect { public TeferiTemporalPilgrimEffect() { super(Outcome.Removal); - this.staticText = "Target opponent chooses a permanent they control and returns it to its owner's had. Then they shuffle each nonland permanent they control into its owner's library."; + this.staticText = "Target opponent chooses a permanent they control and returns it to its owner's hand. Then they shuffle each nonland permanent they control into its owner's library."; } private TeferiTemporalPilgrimEffect(final TeferiTemporalPilgrimEffect effect) { diff --git a/Mage.Sets/src/mage/cards/t/TheMightstoneAndWeakstone.java b/Mage.Sets/src/mage/cards/t/TheMightstoneAndWeakstone.java index 287461a9d54..aa757a21b28 100644 --- a/Mage.Sets/src/mage/cards/t/TheMightstoneAndWeakstone.java +++ b/Mage.Sets/src/mage/cards/t/TheMightstoneAndWeakstone.java @@ -45,7 +45,7 @@ public final class TheMightstoneAndWeakstone extends CardImpl { // (Melds with Urza, Lord Protector) this.addAbility(new SimpleStaticAbility( - Zone.ALL, new InfoEffect("(Melds with Urza, Lord Protector)") + Zone.ALL, new InfoEffect("(Melds with Urza, Lord Protector.)") )); } diff --git a/Mage.Sets/src/mage/cards/t/TitaniasCommand.java b/Mage.Sets/src/mage/cards/t/TitaniasCommand.java index f9c7f631f52..3ccf1c19d4a 100644 --- a/Mage.Sets/src/mage/cards/t/TitaniasCommand.java +++ b/Mage.Sets/src/mage/cards/t/TitaniasCommand.java @@ -32,6 +32,9 @@ public final class TitaniasCommand extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{G}{G}"); // Choose two -- + this.getSpellAbility().getModes().setMinModes(2); + this.getSpellAbility().getModes().setMaxModes(2); + // * Exile target player's graveyard. You gain 1 life for each card exiled this way. this.getSpellAbility().addEffect(new TitaniasCommandEffect()); this.getSpellAbility().addTarget(new TargetPlayer()); diff --git a/Mage.Sets/src/mage/cards/w/WeakstonesSubjugation.java b/Mage.Sets/src/mage/cards/w/WeakstonesSubjugation.java index facce2e9915..9aa583fd06b 100644 --- a/Mage.Sets/src/mage/cards/w/WeakstonesSubjugation.java +++ b/Mage.Sets/src/mage/cards/w/WeakstonesSubjugation.java @@ -36,11 +36,11 @@ public final class WeakstonesSubjugation extends CardImpl { // When Weakstone's Subjugation's enters the battlefield, you may pay {3}. If you do, tap enchanted permanent. this.addAbility(new EntersBattlefieldTriggeredAbility(new DoIfCostPaid( - new TapEnchantedEffect("creature"), new GenericManaCost(3) + new TapEnchantedEffect("permanent"), new GenericManaCost(3) ))); // Enchanted permanent doesn't untap during its controller's untap step. - this.addAbility(new SimpleStaticAbility(new DontUntapInControllersUntapStepEnchantedEffect())); + this.addAbility(new SimpleStaticAbility(new DontUntapInControllersUntapStepEnchantedEffect("permanent"))); } private WeakstonesSubjugation(final WeakstonesSubjugation card) { diff --git a/Mage.Sets/src/mage/cards/y/YotianTactician.java b/Mage.Sets/src/mage/cards/y/YotianTactician.java index e7d3ed59d69..73d51012331 100644 --- a/Mage.Sets/src/mage/cards/y/YotianTactician.java +++ b/Mage.Sets/src/mage/cards/y/YotianTactician.java @@ -28,7 +28,9 @@ public final class YotianTactician extends CardImpl { this.toughness = new MageInt(4); // Other Soldiers you control get +1/+1. - this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(1, 1, Duration.EndOfTurn, filter))); + this.addAbility(new SimpleStaticAbility(new BoostControlledEffect( + 1, 1, Duration.WhileOnBattlefield, filter, true + ))); } private YotianTactician(final YotianTactician card) { diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index d954a2eedc0..57c4e481f1d 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -60,7 +60,7 @@ public class VerifyCardDataTest { private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class); - private static final String FULL_ABILITIES_CHECK_SET_CODE = "GN3"; // check all abilities and output cards with wrong abilities texts; + private static final String FULL_ABILITIES_CHECK_SET_CODE = "BRO"; // 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 boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages diff --git a/Mage/src/main/java/mage/abilities/effects/common/GetEmblemEffect.java b/Mage/src/main/java/mage/abilities/effects/common/GetEmblemEffect.java index e99b3799482..8119575b0bd 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/GetEmblemEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/GetEmblemEffect.java @@ -1,7 +1,6 @@ package mage.abilities.effects.common; -import java.util.List; import mage.MageObject; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; @@ -9,8 +8,9 @@ import mage.constants.Outcome; import mage.game.Game; import mage.game.command.Emblem; +import java.util.List; + /** - * * @author nantuko */ public class GetEmblemEffect extends OneShotEffect { @@ -47,18 +47,12 @@ public class GetEmblemEffect extends OneShotEffect { StringBuilder sb = new StringBuilder(); sb.append("you get an emblem with \""); List rules = emblem.getAbilities().getRules(null); - if (rules.size() == 1) { - for (String s : rules) { - sb.append(s); - } - sb.append('"'); - } else if (rules.size() == 2) { - for (String s : rules) { - sb.append(s); - sb.append("\" and \""); - } - sb.append('"'); + sb.append(rules.get(0)); + if (rules.size() == 2) { + sb.append("\" and \""); + sb.append(rules.get(1)); } + sb.append('"'); return sb.toString(); } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/TapSourceUnlessPaysEffect.java b/Mage/src/main/java/mage/abilities/effects/common/TapSourceUnlessPaysEffect.java index 91a1951c85d..9807f7254c6 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/TapSourceUnlessPaysEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/TapSourceUnlessPaysEffect.java @@ -9,6 +9,7 @@ import mage.constants.Outcome; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; +import mage.util.CardUtil; /** * @@ -21,7 +22,7 @@ public class TapSourceUnlessPaysEffect extends OneShotEffect { public TapSourceUnlessPaysEffect(Cost cost) { super(Outcome.Tap); this.cost = cost; - staticText = "tap {this} unless you " + cost.getText(); + staticText = "tap {this} unless you " + CardUtil.addCostVerb(cost.getText()); } public TapSourceUnlessPaysEffect(final TapSourceUnlessPaysEffect effect) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorSourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorSourceEffect.java index 1916bb5257d..1d8de8dcf68 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorSourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/BecomesColorSourceEffect.java @@ -113,6 +113,6 @@ public class BecomesColorSourceEffect extends ContinuousEffectImpl { return staticText; } return "{this} becomes " + (setColor == null ? "the color of your choice" : setColor.getDescription()) - + ' ' + duration.toString(); + + (' ' + duration.toString()).trim(); } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilitySourceEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilitySourceEffect.java index f55e2fea5ab..4f18d9f9cbc 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilitySourceEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAbilitySourceEffect.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package mage.abilities.effects.common.continuous; import mage.abilities.Ability; @@ -14,7 +10,6 @@ import mage.game.Game; import mage.game.permanent.Permanent; /** - * * @author Noahsark */ public class LoseAbilitySourceEffect extends ContinuousEffectImpl { @@ -28,7 +23,7 @@ public class LoseAbilitySourceEffect extends ContinuousEffectImpl { public LoseAbilitySourceEffect(Ability ability, Duration duration) { super(duration, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.LoseAbility); this.ability = ability; - staticText = "{this} loses " + ability.getRule() + ' ' + duration.toString(); + staticText = ("{this} loses " + ability.getRule() + ' ' + duration.toString()).trim(); } public LoseAbilitySourceEffect(final LoseAbilitySourceEffect effect) { diff --git a/Mage/src/main/java/mage/game/command/emblems/SaheeliFiligreeMasterEmblem.java b/Mage/src/main/java/mage/game/command/emblems/SaheeliFiligreeMasterEmblem.java index ca05ce07f3d..5d7aca19c75 100644 --- a/Mage/src/main/java/mage/game/command/emblems/SaheeliFiligreeMasterEmblem.java +++ b/Mage/src/main/java/mage/game/command/emblems/SaheeliFiligreeMasterEmblem.java @@ -1,6 +1,5 @@ package mage.game.command.emblems; -import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.effects.common.continuous.BoostControlledEffect; import mage.abilities.effects.common.cost.SpellsCostReductionControllerEffect; @@ -18,15 +17,18 @@ public final class SaheeliFiligreeMasterEmblem extends Emblem { public SaheeliFiligreeMasterEmblem() { this.setName("Emblem Saheeli"); this.setExpansionSetCodeForImage("BRO"); - Ability ability = new SimpleStaticAbility( + this.getAbilities().add(new SimpleStaticAbility( Zone.COMMAND, new BoostControlledEffect( 1, 1, Duration.EndOfGame, StaticFilters.FILTER_PERMANENT_ARTIFACT_CREATURE ).setText("Artifact creatures you control get +1/+1") - ); - ability.addEffect(new SpellsCostReductionControllerEffect(StaticFilters.FILTER_CARD_ARTIFACT, 1) - .setText("Artifact spells you cast cost {1} less to cast")); - this.getAbilities().add(ability); + )); + this.getAbilities().add(new SimpleStaticAbility( + Zone.COMMAND, + new SpellsCostReductionControllerEffect( + StaticFilters.FILTER_CARD_ARTIFACT, 1 + ).setText("Artifact spells you cast cost {1} less to cast") + )); } }