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")
+ ));
}
}