diff --git a/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java b/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java
index de8575c379d..f641519b089 100644
--- a/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java
+++ b/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java
@@ -7,7 +7,6 @@ import mage.abilities.effects.common.CounterTargetEffect;
import mage.abilities.hint.common.RaidHint;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
-import mage.constants.AbilityWord;
import mage.constants.CardType;
import mage.target.TargetSpell;
import mage.watchers.common.PlayerAttackedWatcher;
@@ -24,7 +23,7 @@ public final class AdmiralsOrder extends CardImpl {
// Raid - If you attacked with a creature this turn, you may pay {U} rather than pay this spell's mana cost.
this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl<>("{U}"), RaidCondition.instance,
- "
Raid — If you attacked this turn, you may pay {U} rather than pay this spell's mana cost"),
+ "
Raid — If you attacked this turn, you may pay {U} rather than pay this spell's mana cost."),
new PlayerAttackedWatcher());
// Counter target spell.
this.getSpellAbility().addEffect(new CounterTargetEffect());
diff --git a/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java b/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java
index b40d865ae97..2f5d376fade 100644
--- a/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java
+++ b/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java
@@ -49,7 +49,8 @@ public final class AdmonitionAngel extends CardImpl {
this.addAbility(ability);
// When Admonition Angel leaves the battlefield, return all cards exiled with it to the battlefield under their owners' control.
- Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false);
+ Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD)
+ .setText("return all cards exiled with it to the battlefield under their owners' control"), false);
this.addAbility(ability2);
}
diff --git a/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java b/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java
index a622bf4a56f..cfb3a30107a 100644
--- a/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java
+++ b/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java
@@ -44,9 +44,7 @@ public final class AishaOfSparksAndSmoke extends CardImpl {
), new ManaCostsImpl<>("{R/W}")));
// Shoryuken—Whenever Ken deals combat damage, you may cast a sorcery spell from your hand with mana value less than or equal to that damage without paying its mana cost.
- this.addAbility(new DealsCombatDamageTriggeredAbility(
- new AishaOfSparksAndSmokeEffect(), false
- ).withFlavorWord("Shoryuken"));
+ this.addAbility(new DealsCombatDamageTriggeredAbility(new AishaOfSparksAndSmokeEffect(), false));
}
private AishaOfSparksAndSmoke(final AishaOfSparksAndSmoke card) {
diff --git a/Mage.Sets/src/mage/cards/a/AminatousAugury.java b/Mage.Sets/src/mage/cards/a/AminatousAugury.java
index b19628157a4..468268da4c0 100644
--- a/Mage.Sets/src/mage/cards/a/AminatousAugury.java
+++ b/Mage.Sets/src/mage/cards/a/AminatousAugury.java
@@ -63,7 +63,7 @@ class AminatousAuguryEffect extends OneShotEffect {
staticText = "Exile the top eight cards of your library. "
+ "You may put a land card from among them onto the battlefield. "
+ "Until end of turn, for each nonland card type, "
- + "you may cast a card of that type from among the exiled cards without paying its mana cost.";
+ + "you may cast a spell of that type from among the exiled cards without paying its mana cost.";
}
public AminatousAuguryEffect(final AminatousAuguryEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/a/ArborArmament.java b/Mage.Sets/src/mage/cards/a/ArborArmament.java
index 602d2195cd6..c0c694c7b78 100644
--- a/Mage.Sets/src/mage/cards/a/ArborArmament.java
+++ b/Mage.Sets/src/mage/cards/a/ArborArmament.java
@@ -25,7 +25,8 @@ public final class ArborArmament extends CardImpl {
// Put a +1/+1 counter on target creature. That creature gains reach until end of turn.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance()));
- this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn));
+ this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn)
+ .setText("That creature gains reach until end of turn"));
}
private ArborArmament(final ArborArmament card) {
diff --git a/Mage.Sets/src/mage/cards/a/AtzocanSeer.java b/Mage.Sets/src/mage/cards/a/AtzocanSeer.java
index 0877857d355..2eef48c0d90 100644
--- a/Mage.Sets/src/mage/cards/a/AtzocanSeer.java
+++ b/Mage.Sets/src/mage/cards/a/AtzocanSeer.java
@@ -22,7 +22,7 @@ import mage.target.common.TargetCardInYourGraveyard;
*/
public final class AtzocanSeer extends CardImpl {
- private static final FilterCard filter = new FilterCard("Dinosaur from your graveyard");
+ private static final FilterCard filter = new FilterCard("Dinosaur card from your graveyard");
static {
filter.add(SubType.DINOSAUR.getPredicate());
diff --git a/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java b/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java
index bf1fddf49c3..00337a20332 100644
--- a/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java
+++ b/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java
@@ -118,7 +118,7 @@ enum CavernHoardDragonCount implements DynamicValue {
@Override
public String getMessage() {
- return "greatest number of artifacts an opponent controls";
+ return "the greatest number of artifacts an opponent controls";
}
public static Hint getHint() {
diff --git a/Mage.Sets/src/mage/cards/c/CinderGiant.java b/Mage.Sets/src/mage/cards/c/CinderGiant.java
index 7069f741c17..026e06304bc 100644
--- a/Mage.Sets/src/mage/cards/c/CinderGiant.java
+++ b/Mage.Sets/src/mage/cards/c/CinderGiant.java
@@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.AnotherPredicate;
*/
public final class CinderGiant extends CardImpl {
- private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("each other creature you control");
+ private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("other creature you control");
static {
filter.add(AnotherPredicate.instance);
}
diff --git a/Mage.Sets/src/mage/cards/c/CrownOfGondor.java b/Mage.Sets/src/mage/cards/c/CrownOfGondor.java
index 50c89899811..fbe6ff63914 100644
--- a/Mage.Sets/src/mage/cards/c/CrownOfGondor.java
+++ b/Mage.Sets/src/mage/cards/c/CrownOfGondor.java
@@ -29,7 +29,7 @@ import java.util.UUID;
*/
public final class CrownOfGondor extends CardImpl {
- private final static DynamicValue xValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_CREATURE);
+ private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_CREATURE);
public CrownOfGondor(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
@@ -52,7 +52,7 @@ public final class CrownOfGondor extends CardImpl {
// Equip {4}. This ability costs {3} less to activate if you're the monarch.
EquipAbility equip = new EquipAbility(4, false);
- equip.setCostReduceText("This ability costs {3} less to activate if you're the monarch");
+ equip.setCostReduceText("This ability costs {3} less to activate if you're the monarch.");
equip.setCostAdjuster(CrownOfGondorAdjuster.instance);
this.addAbility(equip);
}
diff --git a/Mage.Sets/src/mage/cards/c/CunningStrike.java b/Mage.Sets/src/mage/cards/c/CunningStrike.java
index b2257032b94..e3bdf684b9d 100644
--- a/Mage.Sets/src/mage/cards/c/CunningStrike.java
+++ b/Mage.Sets/src/mage/cards/c/CunningStrike.java
@@ -27,7 +27,7 @@ public final class CunningStrike extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
Effect effect = new DamageTargetEffect(StaticValue.get(2), true, "", true);
effect.setTargetPointer(new SecondTargetPointer());
- effect.setText("and 2 damage to target player");
+ effect.setText("and 2 damage to target player or planeswalker");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
// Draw a card.
diff --git a/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java b/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java
index b556e5a11ed..20588de3956 100644
--- a/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java
+++ b/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java
@@ -82,6 +82,6 @@ class DamiaSageOfStoneTriggeredAbility extends BeginningOfUpkeepTriggeredAbility
@Override
public String getRule() {
- return "At the beginning of your upkeep, if you have fewer than seven cards in hand, draw cards equal to the difference";
+ return "At the beginning of your upkeep, if you have fewer than seven cards in hand, draw cards equal to the difference.";
}
}
diff --git a/Mage.Sets/src/mage/cards/d/DarkIntimations.java b/Mage.Sets/src/mage/cards/d/DarkIntimations.java
index 48399c5dd61..99de1bda2f5 100644
--- a/Mage.Sets/src/mage/cards/d/DarkIntimations.java
+++ b/Mage.Sets/src/mage/cards/d/DarkIntimations.java
@@ -51,7 +51,7 @@ public final class DarkIntimations extends CardImpl {
this.addAbility(new SpellCastControllerTriggeredAbility(
Zone.GRAVEYARD, new DarkIntimationsGraveyardEffect(),
filter, false, SetTargetPointer.SPELL
- ));
+ ).setTriggerPhrase("When you cast a Bolas planeswalker spell, "));
}
private DarkIntimations(final DarkIntimations card) {
diff --git a/Mage.Sets/src/mage/cards/d/DeepglowSkate.java b/Mage.Sets/src/mage/cards/d/DeepglowSkate.java
index 509e91bd49d..f3d6e240a5e 100644
--- a/Mage.Sets/src/mage/cards/d/DeepglowSkate.java
+++ b/Mage.Sets/src/mage/cards/d/DeepglowSkate.java
@@ -1,4 +1,3 @@
-
package mage.cards.d;
import java.util.UUID;
@@ -32,7 +31,7 @@ public final class DeepglowSkate extends CardImpl {
this.toughness = new MageInt(3);
// When Deepglow Skate enters the battlefield, double the number of each kind of counter on any number of target permanents.
- Ability ability = new EntersBattlefieldTriggeredAbility(new DeepglowSkateEffect(), true);
+ Ability ability = new EntersBattlefieldTriggeredAbility(new DeepglowSkateEffect(), false);
ability.addTarget(new TargetPermanent(0, Integer.MAX_VALUE, new FilterPermanent(), false));
this.addAbility(ability);
}
@@ -51,7 +50,7 @@ class DeepglowSkateEffect extends OneShotEffect {
public DeepglowSkateEffect() {
super(Outcome.Benefit);
- this.staticText = "{this} double the number of each kind of counter on any number of target permanents";
+ this.staticText = "double the number of each kind of counter on any number of target permanents";
}
public DeepglowSkateEffect(final DeepglowSkateEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/d/Downdraft.java b/Mage.Sets/src/mage/cards/d/Downdraft.java
index 0dca305e0a5..f18dce91a0b 100644
--- a/Mage.Sets/src/mage/cards/d/Downdraft.java
+++ b/Mage.Sets/src/mage/cards/d/Downdraft.java
@@ -41,7 +41,7 @@ public final class Downdraft extends CardImpl {
this.addAbility(ability);
// Sacrifice Downdraft: Downdraft deals 2 damage to each creature with flying.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, filter), new SacrificeSourceCost()));
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, "it", filter), new SacrificeSourceCost()));
}
private Downdraft(final Downdraft card) {
diff --git a/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java b/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java
index 007d8d3f802..9a0f76dad99 100644
--- a/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java
+++ b/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java
@@ -25,7 +25,7 @@ public final class EnterTheUnknown extends CardImpl {
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
// You may play an additional land this turn.
- this.getSpellAbility().addEffect(new PlayAdditionalLandsControllerEffect(1, Duration.EndOfTurn));
+ this.getSpellAbility().addEffect(new PlayAdditionalLandsControllerEffect(1, Duration.EndOfTurn).concatBy("
"));
}
diff --git a/Mage.Sets/src/mage/cards/f/FalseProphet.java b/Mage.Sets/src/mage/cards/f/FalseProphet.java
index 33581d9a8fb..a3a01b76a8f 100644
--- a/Mage.Sets/src/mage/cards/f/FalseProphet.java
+++ b/Mage.Sets/src/mage/cards/f/FalseProphet.java
@@ -1,4 +1,3 @@
-
package mage.cards.f;
import java.util.UUID;
@@ -9,7 +8,7 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
-import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.StaticFilters;
/**
*
@@ -26,7 +25,7 @@ public final class FalseProphet extends CardImpl {
this.toughness = new MageInt(2);
// When False Prophet dies, exile all creatures.
- this.addAbility(new DiesSourceTriggeredAbility(new ExileAllEffect(new FilterCreaturePermanent())));
+ this.addAbility(new DiesSourceTriggeredAbility(new ExileAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES)));
}
private FalseProphet(final FalseProphet card) {
diff --git a/Mage.Sets/src/mage/cards/f/FireWhip.java b/Mage.Sets/src/mage/cards/f/FireWhip.java
index f062d5fe3ad..5e87e556597 100644
--- a/Mage.Sets/src/mage/cards/f/FireWhip.java
+++ b/Mage.Sets/src/mage/cards/f/FireWhip.java
@@ -39,7 +39,7 @@ public final class FireWhip extends CardImpl {
// Enchanted creature has "{t}: This creature deals 1 damage to any target."
Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost());
ability1.addTarget(new TargetAnyTarget());
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability1, AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted creature has \"{t}: This creature deals 1 damage to any target.\"")));
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability1, AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted creature has \"{T}: This creature deals 1 damage to any target.\"")));
// Sacrifice Fire Whip: Fire Whip deals 1 damage to any target.
Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new SacrificeSourceCost());
ability2.addTarget(new TargetAnyTarget());
diff --git a/Mage.Sets/src/mage/cards/f/Firestorm.java b/Mage.Sets/src/mage/cards/f/Firestorm.java
index 47d626817f7..4cceb29707e 100644
--- a/Mage.Sets/src/mage/cards/f/Firestorm.java
+++ b/Mage.Sets/src/mage/cards/f/Firestorm.java
@@ -61,7 +61,7 @@ class FirestormEffect extends OneShotEffect {
public FirestormEffect() {
super(Outcome.Benefit);
- staticText = "{this} deals X damage to each of X target creatures and/or players";
+ staticText = "{this} deals X damage to each of X targets";
}
public FirestormEffect(final FirestormEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/f/FitOfRage.java b/Mage.Sets/src/mage/cards/f/FitOfRage.java
index da8a94409bf..cce8519b29a 100644
--- a/Mage.Sets/src/mage/cards/f/FitOfRage.java
+++ b/Mage.Sets/src/mage/cards/f/FitOfRage.java
@@ -1,4 +1,3 @@
-
package mage.cards.f;
import java.util.UUID;
@@ -23,8 +22,10 @@ public final class FitOfRage extends CardImpl {
// Target creature gets +3/+3 and gains first strike until end of turn.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
- this.getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn));
- this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn));
+ this.getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn)
+ .setText("target creature gets +3/+3"));
+ this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)
+ .setText("and gains first strike until end of turn"));
}
private FitOfRage(final FitOfRage card) {
diff --git a/Mage.Sets/src/mage/cards/f/FlamekinVillage.java b/Mage.Sets/src/mage/cards/f/FlamekinVillage.java
index 0e88ee2e731..1487a65d0d9 100644
--- a/Mage.Sets/src/mage/cards/f/FlamekinVillage.java
+++ b/Mage.Sets/src/mage/cards/f/FlamekinVillage.java
@@ -37,7 +37,7 @@ public final class FlamekinVillage extends CardImpl {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
// As Flamekin Village enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Flamekin Village enters the battlefield tapped.
- this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal a Elemental card from your hand. If you don't, {this} enters the battlefield tapped"));
+ this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal an Elemental card from your hand. If you don't, {this} enters the battlefield tapped"));
// {tap}: Add {R}.
this.addAbility(new RedManaAbility());
diff --git a/Mage.Sets/src/mage/cards/g/GoblinVandal.java b/Mage.Sets/src/mage/cards/g/GoblinVandal.java
index 3d326eb069e..d95f71e23d5 100644
--- a/Mage.Sets/src/mage/cards/g/GoblinVandal.java
+++ b/Mage.Sets/src/mage/cards/g/GoblinVandal.java
@@ -21,7 +21,6 @@ import mage.filter.predicate.permanent.ControllerIdPredicate;
import mage.game.Game;
import mage.game.combat.CombatGroup;
import mage.game.events.GameEvent;
-import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent;
import mage.target.Target;
import mage.target.TargetPermanent;
@@ -101,6 +100,6 @@ class GoblinVandalTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
- return "Whenever {this} attacks and isn't blocked, you may pay {R}. If you do, destroy target artifact defending player controls and {this} assigns no combat damage this turn";
+ return "Whenever {this} attacks and isn't blocked, you may pay {R}. If you do, destroy target artifact defending player controls and {this} assigns no combat damage this turn.";
}
}
diff --git a/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java b/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java
index f1cf33c3286..df033dbb29b 100644
--- a/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java
+++ b/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java
@@ -35,7 +35,7 @@ public final class GripOfPhyresis extends CardImpl {
// Gain control of target Equipment, then create a 0/0 black Germ creature token and attach that Equipment to it.
GainControlTargetEffect effect = new GainControlTargetEffect(Duration.EndOfGame, true);
- effect.setText("Gain control of target equipment");
+ effect.setText("Gain control of target Equipment");
this.getSpellAbility().addEffect(effect);
Target targetEquipment = new TargetPermanent(filter);
this.getSpellAbility().addTarget(targetEquipment);
@@ -56,6 +56,7 @@ class GripOfPhyresisEffect extends CreateTokenEffect {
GripOfPhyresisEffect() {
super(new PhyrexianGermToken());
+ staticText = ", then " + staticText + " and attach that Equipment to it";
}
GripOfPhyresisEffect(final GripOfPhyresisEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/h/HarvestWurm.java b/Mage.Sets/src/mage/cards/h/HarvestWurm.java
index 545f09a6b49..ef7d83b9084 100644
--- a/Mage.Sets/src/mage/cards/h/HarvestWurm.java
+++ b/Mage.Sets/src/mage/cards/h/HarvestWurm.java
@@ -27,7 +27,9 @@ public final class HarvestWurm extends CardImpl {
this.toughness = new MageInt(2);
// When Harvest Wurm enters the battlefield, sacrifice it unless you return a basic land card from your graveyard to your hand.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandFromGraveyardCost(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_BASIC_LAND)))));
+ TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_BASIC_LAND_A);
+ target.setNotTarget(true);
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandFromGraveyardCost(target))));
}
private HarvestWurm(final HarvestWurm card) {
diff --git a/Mage.Sets/src/mage/cards/h/HauntingMisery.java b/Mage.Sets/src/mage/cards/h/HauntingMisery.java
index aac9d2fef14..618b5f395e1 100644
--- a/Mage.Sets/src/mage/cards/h/HauntingMisery.java
+++ b/Mage.Sets/src/mage/cards/h/HauntingMisery.java
@@ -20,7 +20,7 @@ public final class HauntingMisery extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{B}");
// As an additional cost to cast Haunting Misery, exile X creature cards from your graveyard.
- this.getSpellAbility().addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARD_CREATURE));
+ this.getSpellAbility().addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARD_CREATURES_YOUR_GRAVEYARD));
// Haunting Misery deals X damage to target player.
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
diff --git a/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java b/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java
index 3853ff6abe9..f82cfae7acb 100644
--- a/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java
+++ b/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java
@@ -58,7 +58,7 @@ class ImmardTheStormcleaverEffect extends OneShotEffect {
ImmardTheStormcleaverEffect() {
super(Outcome.Benefit);
- staticText = "put a charge counter on him or remove one from him. When you remove a counter this way, "
+ staticText = "put a charge counter on it or remove one from it. When you remove a counter this way, "
+ CardUtil.getTextWithFirstCharLowerCase(ability.getRule());
}
@@ -90,7 +90,7 @@ class ImmardTheStormcleaverEffect extends OneShotEffect {
return true;
}
- private static final ReflexiveTriggeredAbility makeAbility() {
+ private static ReflexiveTriggeredAbility makeAbility() {
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(
new DamageTargetEffect(4), false
);
@@ -101,7 +101,7 @@ class ImmardTheStormcleaverEffect extends OneShotEffect {
mode.addEffect(new GainAbilitySourceEffect(
IndestructibleAbility.getInstance(), Duration.EndOfTurn
).setText("and indestructible until end of turn"));
- ability.withFirstModeFlavorWord("Sonic Boom").addMode(mode.withFlavorWord("Flash Kick"));
+ ability.addMode(mode);
return ability;
}
}
diff --git a/Mage.Sets/src/mage/cards/i/InducedAmnesia.java b/Mage.Sets/src/mage/cards/i/InducedAmnesia.java
index a5513edd8cf..10671e327bc 100644
--- a/Mage.Sets/src/mage/cards/i/InducedAmnesia.java
+++ b/Mage.Sets/src/mage/cards/i/InducedAmnesia.java
@@ -50,7 +50,7 @@ class InducedAmnesiaExileEffect extends OneShotEffect {
InducedAmnesiaExileEffect() {
super(Outcome.Detriment);
- this.staticText = "target player exiles all the cards in their hand face down, then draws that many cards";
+ this.staticText = "target player exiles all cards from their hand face down, then draws that many cards";
}
private InducedAmnesiaExileEffect(final InducedAmnesiaExileEffect effect) {
diff --git a/Mage.Sets/src/mage/cards/j/JadelightRanger.java b/Mage.Sets/src/mage/cards/j/JadelightRanger.java
index 833c98ebd92..2caf4dfcdb9 100644
--- a/Mage.Sets/src/mage/cards/j/JadelightRanger.java
+++ b/Mage.Sets/src/mage/cards/j/JadelightRanger.java
@@ -27,7 +27,7 @@ public final class JadelightRanger extends CardImpl {
// When Jadelight Ranger enters the battlefield, it explores, then it explores again.
Ability ability = new EntersBattlefieldTriggeredAbility(new ExploreSourceEffect(false, "it"), false);
- ability.addEffect(new ExploreSourceEffect().setText(", then it explores again. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard. Then repeat this process.) "));
+ ability.addEffect(new ExploreSourceEffect().setText(", then it explores again. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard. Then repeat this process.)"));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java b/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java
index 63497f3f2c0..17439c59361 100644
--- a/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java
+++ b/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java
@@ -36,7 +36,7 @@ public final class LeoninBladetrap extends CardImpl {
// Flash
this.addAbility(FlashAbility.getInstance());
// {2}, Sacrifice Leonin Bladetrap: Leonin Bladetrap deals 2 damage to each attacking creature without flying.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, filter), new GenericManaCost(2));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, "it", filter), new GenericManaCost(2));
ability.addCost(new SacrificeSourceCost());
this.addAbility(ability);
diff --git a/Mage.Sets/src/mage/cards/l/LightningShrieker.java b/Mage.Sets/src/mage/cards/l/LightningShrieker.java
index 4f04762d813..f87c59f8d4c 100644
--- a/Mage.Sets/src/mage/cards/l/LightningShrieker.java
+++ b/Mage.Sets/src/mage/cards/l/LightningShrieker.java
@@ -1,4 +1,3 @@
-
package mage.cards.l;
import java.util.UUID;
@@ -14,7 +13,6 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.TargetController;
-import mage.constants.Zone;
/**
*
@@ -37,7 +35,7 @@ public final class LightningShrieker extends CardImpl {
// At the beginning of the end step, Lightning Shrieker's owner shuffles it into their library.
Effect effect = new ShuffleIntoLibrarySourceEffect();
effect.setText("{this}'s owner shuffles it into their library.");
- this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, null, false));
+ this.addAbility(new BeginningOfEndStepTriggeredAbility(effect, TargetController.NEXT, false));
}
private LightningShrieker(final LightningShrieker card) {
diff --git a/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java b/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java
index 1c84611bfe1..fd540af7c71 100644
--- a/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java
+++ b/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java
@@ -50,16 +50,13 @@ public final class LobeliaDefenderOfBagEnd extends CardImpl {
// {T}, Sacrifice an artifact: Choose one --
// * Until end of turn, you may play a card exiled with Lobelia without paying its mana cost.
// * Each opponent loses 2 life and you gain 2 life.
- Ability ability = new SimpleActivatedAbility(
- new LobeliaDefenderOfBagEndPlayFromExileEffect(),
- new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN)
- );
- ability.addCost(new TapSourceCost());
+ Ability ability = new SimpleActivatedAbility(new LobeliaDefenderOfBagEndPlayFromExileEffect(), new TapSourceCost());
+ ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN));
ability.addWatcher(new LobeliaDefenderOfBagEndWatcher());
ability.addMode(new Mode(
new LoseLifeOpponentsEffect(2)
- ).addEffect(new GainLifeEffect(2)));
+ ).addEffect(new GainLifeEffect(2).concatBy("and")));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java b/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java
index d9418e22907..05670bc42a3 100644
--- a/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java
+++ b/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java
@@ -57,12 +57,12 @@ public final class MaarikaBrutalGladiator extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(IndestructibleAbility.getInstance()),
MyTurnCondition.instance, "as long as it's your turn, {this} has indestructible"
- )).withFlavorWord("Iron Muscle"));
+ )));
// Spinning Piledriver—Whenever Zangief deals damage to a creature, if that creature was dealt excess damage this turn, that creature's controller sacrifices a noncreature, nonland permanent.
this.addAbility(new DealsDamageToACreatureTriggeredAbility(
new MaarikaBrutalGladiatorEffect(), false, false, true, filter
- ).withFlavorWord("Spinning Piledriver"), new MaarikaBrutalGladiatorWatcher());
+ ), new MaarikaBrutalGladiatorWatcher());
}
private MaarikaBrutalGladiator(final MaarikaBrutalGladiator card) {
diff --git a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java
index 8d8439c1b02..0c1deab303f 100644
--- a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java
+++ b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java
@@ -39,7 +39,7 @@ public final class MausoleumHarpy extends CardImpl {
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL),
CitysBlessingCondition.instance,
- "Whenever another creature you control dies, if you have the city's blessing, put a +1/+1 counter on {this}. ")
+ "Whenever another creature you control dies, if you have the city's blessing, put a +1/+1 counter on {this}.")
.addHint(CitysBlessingHint.instance));
}
diff --git a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java
index c83c5be0129..a4a43d1f414 100644
--- a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java
+++ b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java
@@ -29,7 +29,7 @@ public final class MouthOfRonom extends CardImpl {
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {4}{S}, {T}, Sacrifice Mouth of Ronom: Mouth of Ronom deals 4 damage to target creature.
- Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl<>("{4}{S}"));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4, "it"), new ManaCostsImpl<>("{4}{S}"));
ability.addTarget(new TargetCreaturePermanent());
ability.addCost(new TapSourceCost());
ability.addCost(new SacrificeSourceCost());
diff --git a/Mage.Sets/src/mage/cards/o/OrcSureshot.java b/Mage.Sets/src/mage/cards/o/OrcSureshot.java
index 0cd8a4e913d..a753b3c7799 100644
--- a/Mage.Sets/src/mage/cards/o/OrcSureshot.java
+++ b/Mage.Sets/src/mage/cards/o/OrcSureshot.java
@@ -1,34 +1,25 @@
-
package mage.cards.o;
-import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
-import mage.abilities.common.EntersBattlefieldAllTriggeredAbility;
+import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
-import mage.constants.SubType;
import mage.constants.Duration;
-import mage.constants.Zone;
+import mage.constants.SubType;
import mage.filter.StaticFilters;
-import mage.filter.common.FilterControlledCreaturePermanent;
-import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.target.common.TargetCreaturePermanent;
+import java.util.UUID;
+
/**
*
* @author LevelX2
*/
public final class OrcSureshot extends CardImpl {
- private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature under your control");
-
- static {
- filter.add(AnotherPredicate.instance);
- }
-
public OrcSureshot(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}");
this.subtype.add(SubType.ORC);
@@ -37,7 +28,9 @@ public final class OrcSureshot extends CardImpl {
this.toughness = new MageInt(2);
// Whenever another creature enters the battlefield under your control, target creature an opponent controls gets -1/-1 until end of turn.
- Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1,-1, Duration.EndOfTurn),filter,false);
+ Ability ability = new EntersBattlefieldControlledTriggeredAbility(
+ new BoostTargetEffect(-1,-1, Duration.EndOfTurn),
+ StaticFilters.FILTER_ANOTHER_CREATURE);
ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java b/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java
index 95e43971ae3..02d594cee71 100644
--- a/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java
+++ b/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java
@@ -39,7 +39,7 @@ public final class PaladinOfAtonement extends CardImpl {
// When Paladin of Atonement dies, you gain life equal to it's toughness.
this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(SourcePermanentToughnessValue.getInstance(),
- "you gain life equal to it's toughness")));
+ "you gain life equal to its toughness")));
}
private PaladinOfAtonement(final PaladinOfAtonement card) {
diff --git a/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java b/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java
index 20de7bc4047..cefdcb90c80 100644
--- a/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java
+++ b/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java
@@ -23,7 +23,7 @@ public final class PathOfDiscovery extends CardImpl {
// Whenever a creature enters the battlefield under your control, it explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on the creature, then put the card back or put it into your graveyard.)
this.addAbility(new EntersBattlefieldControlledTriggeredAbility(
Zone.BATTLEFIELD, new ExploreTargetEffect(),
- StaticFilters.FILTER_CONTROLLED_A_CREATURE, false, SetTargetPointer.PERMANENT, null));
+ StaticFilters.FILTER_PERMANENT_A_CREATURE, false, SetTargetPointer.PERMANENT, null));
}
diff --git a/Mage.Sets/src/mage/cards/p/PendrellMists.java b/Mage.Sets/src/mage/cards/p/PendrellMists.java
index b2900e0378c..3600fba07db 100644
--- a/Mage.Sets/src/mage/cards/p/PendrellMists.java
+++ b/Mage.Sets/src/mage/cards/p/PendrellMists.java
@@ -28,7 +28,7 @@ public final class PendrellMists extends CardImpl {
// All creatures have "At the beginning of your upkeep, sacrifice this creature unless you pay {1}."
Ability gainedAbility = new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new GenericManaCost(1)), TargetController.YOU, false);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(gainedAbility, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES,
- "All creatures have \"At the beginning of your upkeep, sacrifice this creature unless you pay {1}")));
+ "All creatures have \"At the beginning of your upkeep, sacrifice this creature unless you pay {1}.\"")));
}
private PendrellMists(final PendrellMists card) {
diff --git a/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java b/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java
index 544ed3867af..e808e3e388d 100644
--- a/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java
+++ b/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java
@@ -24,7 +24,7 @@ public final class PyriteSpellbomb extends CardImpl {
public PyriteSpellbomb(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}");
- Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ColoredManaCost(ColoredManaSymbol.R));
+ Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2, "it"), new ColoredManaCost(ColoredManaSymbol.R));
firstAbility.addCost(new SacrificeSourceCost());
firstAbility.addTarget(new TargetAnyTarget());
this.addAbility(firstAbility);
diff --git a/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java b/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java
index 2d008dc8fc5..04598ed4805 100644
--- a/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java
+++ b/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java
@@ -33,7 +33,7 @@ public final class SanctumOfTheSun extends CardImpl {
// {T}: Add X mana of any one color, where X is your life total.
this.addAbility(new DynamicManaAbility(new Mana(0, 0, 0, 0, 0, 0, 1, 0), ControllerLifeCount.instance, new TapSourceCost(),
- "Add X mana of any one color, where X is is your life total", true));
+ "Add X mana of any one color, where X is your life total", true));
}
diff --git a/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java b/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java
index 9e591398a45..e639c36cc4b 100644
--- a/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java
+++ b/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java
@@ -31,7 +31,7 @@ public final class SerratedBiskelion extends CardImpl {
// {tap}: Put a -1/-1 counter on Serrated Biskelion and a -1/-1 counter on target creature.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.M1M1.createInstance(), true), new TapSourceCost());
- ability.addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance()));
+ ability.addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance()).setText("and a -1/-1 counter on target creature"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java b/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java
index e77e30e1ae7..2d2d4b3cf7e 100644
--- a/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java
+++ b/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java
@@ -48,9 +48,9 @@ public final class ShamanOfTheGreatHunt extends CardImpl {
// Haste
this.addAbility(HasteAbility.getInstance());
- // Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on that creature.
+ // Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on it.
Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance());
- effect.setText("put a +1/+1 counter on that creature");
+ effect.setText("put a +1/+1 counter on it");
this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility(
effect,
StaticFilters.FILTER_CONTROLLED_A_CREATURE, false, SetTargetPointer.PERMANENT, true
diff --git a/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java b/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java
index 24e1aaad0eb..35b5bac9227 100644
--- a/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java
+++ b/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java
@@ -25,7 +25,7 @@ public final class SkitteringMonstrosity extends CardImpl {
// When you cast a creature spell, sacrifice Skittering Monstrosity.
this.addAbility(new SpellCastControllerTriggeredAbility(
new SacrificeSourceEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false
- ));
+ ).setTriggerPhrase("When you cast a creature spell, "));
}
private SkitteringMonstrosity(final SkitteringMonstrosity card) {
diff --git a/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java b/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java
index 99876db57d2..05e77adb126 100644
--- a/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java
+++ b/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java
@@ -42,7 +42,7 @@ public final class SlipperyScoundrel extends CardImpl {
// As long as you have the city's blessing Slippery Scoundrel has Hexproof and can't be blocked.
ContinuousEffect boostSource = new GainAbilitySourceEffect(HexproofAbility.getInstance(), Duration.WhileOnBattlefield);
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(boostSource, CitysBlessingCondition.instance,
- "As long as you have the city's blessing {this} has Hexproof");
+ "As long as you have the city's blessing, {this} has hexproof");
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
RestrictionEffect restrictionEffect = new CantBeBlockedSourceEffect(Duration.WhileOnBattlefield);
Effect effect2 = new ConditionalRestrictionEffect(restrictionEffect, CitysBlessingCondition.instance)
diff --git a/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java b/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java
index 85afd557a90..158c169ac96 100644
--- a/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java
+++ b/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java
@@ -39,7 +39,7 @@ public final class StampedingHorncrest extends CardImpl {
// Stampeding Horncrest has haste as long as you control another Dinosaur.
Effect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance()), new PermanentsOnTheBattlefieldCondition(filter),
- "{this} has haste as long as you control another dinosaur");
+ "{this} has haste as long as you control another Dinosaur");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
}
diff --git a/Mage.Sets/src/mage/cards/s/StrawGolem.java b/Mage.Sets/src/mage/cards/s/StrawGolem.java
index 704c717d752..92c6079d2bc 100644
--- a/Mage.Sets/src/mage/cards/s/StrawGolem.java
+++ b/Mage.Sets/src/mage/cards/s/StrawGolem.java
@@ -24,7 +24,8 @@ public final class StrawGolem extends CardImpl {
this.toughness = new MageInt(3);
// When an opponent casts a creature spell, sacrifice Straw Golem.
- this.addAbility(new SpellCastOpponentTriggeredAbility(new SacrificeSourceEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false));
+ this.addAbility(new SpellCastOpponentTriggeredAbility(new SacrificeSourceEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false)
+ .setTriggerPhrase("When an opponent casts a creature spell, "));
}
private StrawGolem(final StrawGolem card) {
diff --git a/Mage.Sets/src/mage/cards/s/StriderHarness.java b/Mage.Sets/src/mage/cards/s/StriderHarness.java
index fa8c9aabeaf..ef1e170f893 100644
--- a/Mage.Sets/src/mage/cards/s/StriderHarness.java
+++ b/Mage.Sets/src/mage/cards/s/StriderHarness.java
@@ -1,7 +1,6 @@
-
package mage.cards.s;
-import java.util.UUID;
+import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
@@ -14,7 +13,8 @@ import mage.constants.AttachmentType;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.constants.SubType;
-import mage.constants.Zone;
+
+import java.util.UUID;
/**
*
@@ -27,11 +27,13 @@ public final class StriderHarness extends CardImpl {
this.subtype.add(SubType.EQUIPMENT);
// Equipped creature gets +1/+1 and has haste.
- this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1)));
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT)));
+ Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1));
+ ability.addEffect(new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT)
+ .setText("and has haste"));
+ this.addAbility(ability);
// Equip 1 (1: Attach to target creature you control. Equip only as a sorcery.)
- this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1)));
+ this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1)));
}
private StriderHarness(final StriderHarness card) {
diff --git a/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java b/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java
index bef6dd512f2..dc2f9ea562a 100644
--- a/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java
+++ b/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java
@@ -37,7 +37,7 @@ public final class SummonsOfSaruman extends CardImpl {
// Flashback--{3}{U}{R}, Exile X cards from your graveyard.
Ability flashback = new FlashbackAbility(this, new ManaCostsImpl<>("{3}{U}{R}"));
- flashback.addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARD_CARDS));
+ flashback.addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARDS_FROM_YOUR_GRAVEYARD));
this.addAbility(flashback);
}
@@ -115,4 +115,4 @@ class SummonsOfSarumanEffect extends OneShotEffect {
return true;
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/cards/s/SylvanHierophant.java b/Mage.Sets/src/mage/cards/s/SylvanHierophant.java
index 93740e1102d..6680617d9e9 100644
--- a/Mage.Sets/src/mage/cards/s/SylvanHierophant.java
+++ b/Mage.Sets/src/mage/cards/s/SylvanHierophant.java
@@ -3,7 +3,6 @@ package mage.cards.s;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.DiesSourceTriggeredAbility;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.ExileSourceEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.cards.CardImpl;
@@ -16,7 +15,6 @@ import mage.target.common.TargetCardInYourGraveyard;
import java.util.UUID;
-
/**
*
* @author jmharmon
@@ -39,9 +37,8 @@ public final class SylvanHierophant extends CardImpl {
this.toughness = new MageInt(2);
// When Sylvan Hierophant dies, exile Sylvan Hierophant, then return another target creature card from your graveyard to your hand.
- Effect effect = new ReturnFromGraveyardToHandTargetEffect();
Ability ability = new DiesSourceTriggeredAbility(new ExileSourceEffect(), false);
- ability.addEffect(effect);
+ ability.addEffect(new ReturnFromGraveyardToHandTargetEffect().concatBy(", then"));
ability.addTarget(new TargetCardInYourGraveyard(filter));
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java b/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java
index 2bbb6568cda..2794e7fc06e 100644
--- a/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java
+++ b/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java
@@ -54,7 +54,7 @@ public final class TadeasJuniperAscendant extends CardImpl {
// Tadeas has hexproof unless it's attacking.
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(HexproofAbility.getInstance()),
- condition, "{this} has hexproof unless he's attacking"
+ condition, "{this} has hexproof unless it's attacking"
)));
// Whenever a creature you control with reach attacks, untap it and it can't be blocked by creatures with greater power this combat.
@@ -123,6 +123,7 @@ class TadeasJuniperAscendantEvasionEffect extends RestrictionEffect {
return this.targetPointer.getTargets(game, source).contains(permanent.getId());
}
+ @Override
public boolean canBeBlocked(Permanent attacker, Permanent blocker, Ability source, Game game, boolean canUseChooseDialogs) {
return blocker.getPower().getValue() <= attacker.getPower().getValue();
}
@@ -131,4 +132,4 @@ class TadeasJuniperAscendantEvasionEffect extends RestrictionEffect {
public TadeasJuniperAscendantEvasionEffect copy() {
return new TadeasJuniperAscendantEvasionEffect(this);
}
-}
\ No newline at end of file
+}
diff --git a/Mage.Sets/src/mage/cards/t/TemurWarShaman.java b/Mage.Sets/src/mage/cards/t/TemurWarShaman.java
index 1c4c79b2238..15f0ea0907c 100644
--- a/Mage.Sets/src/mage/cards/t/TemurWarShaman.java
+++ b/Mage.Sets/src/mage/cards/t/TemurWarShaman.java
@@ -68,7 +68,7 @@ class TemurWarShamanTriggeredAbility extends TurnedFaceUpAllTriggeredAbility {
@Override
public String getRule() {
- return "Whenever a permanent you control is turned face up, if it is a creature, you may have it fight target creature you don't control.";
+ return "Whenever a permanent you control is turned face up, if it's a creature, you may have it fight target creature you don't control.";
}
}
diff --git a/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java b/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java
index 741916f6784..248a7d1e92e 100644
--- a/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java
+++ b/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java
@@ -42,15 +42,15 @@ public final class TheHowlingAbomination extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(TrampleAbility.getInstance()), TheHowlingAbominationCondition.instance,
"{this} has trample as long as you've cast three or more spells this turn"
- )).withFlavorWord("Rolling Attack"));
+ )));
// Electric Thunder—Whenever Blanka becomes the target of a spell, he gets +2/+2 until end of turn and deals 2 damage to each opponent.
Ability ability = new SourceBecomesTargetTriggeredAbility(new BoostSourceEffect(
2, 2, Duration.EndOfTurn
- ).setText("he gets +2/+2 until end of turn"), StaticFilters.FILTER_SPELL_A).setTriggerPhrase("Whenever {this} becomes the target of a spell, ");
+ ).setText("it gets +2/+2 until end of turn"), StaticFilters.FILTER_SPELL_A).setTriggerPhrase("Whenever {this} becomes the target of a spell, ");
ability.addEffect(new DamagePlayersEffect(2, TargetController.OPPONENT)
.setText("and deals 2 damage to each opponent"));
- this.addAbility(ability.withFlavorWord("Electric Thunder"));
+ this.addAbility(ability);
}
private TheHowlingAbomination(final TheHowlingAbomination card) {
diff --git a/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java b/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java
index da3259b42e8..38555a26c7d 100644
--- a/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java
+++ b/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java
@@ -27,8 +27,6 @@ import mage.game.stack.StackObject;
*/
public final class ThrunBreakerOfSilence extends CardImpl {
-
-
public ThrunBreakerOfSilence(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}");
@@ -65,18 +63,18 @@ public final class ThrunBreakerOfSilence extends CardImpl {
class ThrunBreakerOfSilenceEffect extends ContinuousRuleModifyingEffectImpl {
- public ThrunBreakerOfSilenceEffect() {
- super(Duration.WhileOnBattlefield, Outcome.BoostCreature);
+ ThrunBreakerOfSilenceEffect() {
+ super(Duration.WhileOnBattlefield, Outcome.AddAbility);
staticText = "{this} can't be the target of nongreen spells your opponents control or abilities from nongreen sources your opponents control";
}
- public ThrunBreakerOfSilenceEffect(final mage.cards.t.ThrunBreakerOfSilenceEffect effect) {
+ private ThrunBreakerOfSilenceEffect(final ThrunBreakerOfSilenceEffect effect) {
super(effect);
}
@Override
- public mage.cards.t.ThrunBreakerOfSilenceEffect copy() {
- return new mage.cards.t.ThrunBreakerOfSilenceEffect(this);
+ public ThrunBreakerOfSilenceEffect copy() {
+ return new ThrunBreakerOfSilenceEffect(this);
}
@Override
diff --git a/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java b/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java
index d320c68b8b8..1819e7c6aa5 100644
--- a/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java
+++ b/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java
@@ -49,7 +49,7 @@ public final class TyrantsFamiliar extends CardImpl {
Ability gainedAbility = new AttacksTriggeredAbility(new DamageTargetEffect(7, "it"), false);
gainedAbility.addTarget(new TargetPermanent(filter));
ContinuousEffect effect = new GainAbilitySourceEffect(gainedAbility);
- effect.setText("and has \"Whenever {this} attacks, it deals 7 damage to target creature defending player controls\"");
+ effect.setText("and has \"Whenever {this} attacks, it deals 7 damage to target creature defending player controls.\"");
this.addAbility(new LieutenantAbility(effect));
}
diff --git a/Mage.Sets/src/mage/cards/v/Vaultbreaker.java b/Mage.Sets/src/mage/cards/v/Vaultbreaker.java
index 9afe53ea9d2..03fa12e4c4c 100644
--- a/Mage.Sets/src/mage/cards/v/Vaultbreaker.java
+++ b/Mage.Sets/src/mage/cards/v/Vaultbreaker.java
@@ -28,7 +28,7 @@ public final class Vaultbreaker extends CardImpl {
// Whenever Vaultbreaker attacks, you may discard a card. If you do, draw a card.
this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1),
- new DiscardCardCost()), false, "Whenever {this} attacks, you may discard a card. If you do, draw a card"));
+ new DiscardCardCost())));
// Dash {2}{R}
this.addAbility(new DashAbility("{2}{R}"));
diff --git a/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java b/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java
index 4c820e4eaeb..8fa03b3c406 100644
--- a/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java
+++ b/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java
@@ -43,7 +43,7 @@ public final class VikyaScorchingStalwart extends CardImpl {
ability.addCost(new UntapSourceCost());
ability.addCost(new DiscardCardCost());
ability.addTarget(new TargetAnyTarget());
- this.addAbility(ability.withFlavorWord("Hadoken"));
+ this.addAbility(ability);
}
private VikyaScorchingStalwart(final VikyaScorchingStalwart card) {
diff --git a/Mage.Sets/src/mage/cards/v/VonasHunger.java b/Mage.Sets/src/mage/cards/v/VonasHunger.java
index 2a5e2cde9a8..113d8a9d3b7 100644
--- a/Mage.Sets/src/mage/cards/v/VonasHunger.java
+++ b/Mage.Sets/src/mage/cards/v/VonasHunger.java
@@ -45,7 +45,7 @@ public final class VonasHunger extends CardImpl {
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new VonasHungerEffect(),
CitysBlessingCondition.instance,
- "If you have the city's blessing, instead each opponent sacrifices half the creatures they control rounded up"));
+ "If you have the city's blessing, instead each opponent sacrifices half the creatures they control, rounded up"));
}
private VonasHunger(final VonasHunger card) {
diff --git a/Mage.Sets/src/mage/cards/v/VoraciousVampire.java b/Mage.Sets/src/mage/cards/v/VoraciousVampire.java
index 20b8ecc9403..d680395895a 100644
--- a/Mage.Sets/src/mage/cards/v/VoraciousVampire.java
+++ b/Mage.Sets/src/mage/cards/v/VoraciousVampire.java
@@ -35,7 +35,8 @@ public final class VoraciousVampire extends CardImpl {
this.addAbility(new MenaceAbility(false));
// When Voracious Vampire enters the battlefield, target Vampire you control gets +1/+1 and gains menace until end of turn.
- Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 1, Duration.EndOfTurn), false);
+ Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 1, Duration.EndOfTurn)
+ .setText("target Vampire you control gets +1/+1"), false);
Effect effect = new GainAbilityTargetEffect(new MenaceAbility(), Duration.EndOfTurn);
effect.setText("and gains menace until end of turn.");
ability.addEffect(effect);
diff --git a/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java b/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java
index 4f227dd64e3..b78fab4bf65 100644
--- a/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java
+++ b/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java
@@ -29,7 +29,7 @@ import mage.filter.predicate.permanent.TokenPredicate;
*/
public final class WhisperwoodElemental extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("face-up, nontoken creatures you control");
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("face-up nontoken creatures you control");
static {
filter.add(Predicates.not(FaceDownPredicate.instance));
@@ -48,7 +48,7 @@ public final class WhisperwoodElemental extends CardImpl {
// Sacrifice Whisperwood Elemental: Until end of turn, face-up, nontoken creatures you control gain "When this creature dies, manifest the top card of your library."
Ability abilityToGain = new DiesSourceTriggeredAbility(new ManifestEffect(1));
Effect effect = new GainAbilityControlledEffect(abilityToGain, Duration.EndOfTurn, filter);
- effect.setText("Until end of turn, face-up, nontoken creatures you control gain \"When this creature dies, manifest the top card of your library.\"");
+ effect.setText("Until end of turn, face-up nontoken creatures you control gain \"When this creature dies, manifest the top card of your library.\"");
this.addAbility(new SimpleActivatedAbility(
Zone.ALL, effect, new SacrificeSourceCost()));
}
diff --git a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java
index 9a2e8880a9b..2211c6cfbe9 100644
--- a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java
+++ b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java
@@ -108,7 +108,7 @@ class WrexialTheRisenDeepTriggeredAbility extends TriggeredAbilityImpl {
return "Whenever {this} deals combat damage to a player, "
+ "you may cast target instant or sorcery card "
+ "from that player's graveyard without paying its mana cost. "
- + "If that spell would be put into a graveyard this turn, exile it instead.";
+ + "If that spell would be put into a graveyard, exile it instead.";
}
}
diff --git a/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java b/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java
index 42b77154525..872f067476a 100644
--- a/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java
+++ b/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java
@@ -42,7 +42,7 @@ public final class ZethiArcaneBlademaster extends CardImpl {
.setTargetAdjuster(ZethiArcaneBlademasterAdjuster.instance));
// Lightning Kick—Whenever Chun-Li attacks, copy each exiled card you own with a kick counter on it. You may cast the copies.
- this.addAbility(new AttacksTriggeredAbility(new ZethiArcaneBlademasterCastEffect()).withFlavorWord("Lightning Kick"));
+ this.addAbility(new AttacksTriggeredAbility(new ZethiArcaneBlademasterCastEffect()));
}
private ZethiArcaneBlademaster(final ZethiArcaneBlademaster card) {
diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java
index 0b6dcf9fae3..e9e02ea67b0 100644
--- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java
+++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java
@@ -27,7 +27,7 @@ public class WhisperwoodElementalTest extends CardTestPlayerBase {
addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 1);
addCard(Zone.HAND, playerA, "Lightning Bolt");
- activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sacrifice {this}: Until end of turn, face-up, nontoken creatures you control gain \"When this creature dies, manifest the top card of your library.");
+ activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sacrifice {this}: Until end of turn, face-up");
castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", "Silvercoat Lion");
setStopAt(1, PhaseStep.END_TURN);
diff --git a/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java b/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java
index acaac231f6a..78e2a0db3c3 100644
--- a/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java
@@ -19,7 +19,7 @@ public class ExileTopCreatureCardOfGraveyardCost extends CostImpl {
public ExileTopCreatureCardOfGraveyardCost(int amount) {
this.amount = amount;
- this.text = "Exile the top creature card of your graveyard";
+ this.text = "exile the top creature card of your graveyard";
}
public ExileTopCreatureCardOfGraveyardCost(ExileTopCreatureCardOfGraveyardCost cost) {
diff --git a/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java b/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java
index da3dc7f9d60..691c91f073b 100644
--- a/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java
+++ b/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java
@@ -22,7 +22,7 @@ public class ReturnToHandFromGraveyardCost extends CostImpl {
public ReturnToHandFromGraveyardCost(TargetCardInYourGraveyard target) {
this.addTarget(target);
- this.text = "return " + target.getDescription() + " from graveyard to it's owner's hand";
+ this.text = "return " + target.getDescription() + " from your graveyard to your hand";
}
public ReturnToHandFromGraveyardCost(ReturnToHandFromGraveyardCost cost) {
diff --git a/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java
index 926e5d2bb40..376f73cc86e 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java
@@ -76,11 +76,4 @@ public class DamageAllEffect extends OneShotEffect {
staticText = sb.toString();
}
- public String getSourceName() {
- return sourceName;
- }
-
- public void setSourceName(String sourceName) {
- this.sourceName = sourceName;
- }
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java
index c91adb23b8d..91646477f1f 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java
@@ -24,8 +24,8 @@ public class DamageWithExcessEffect extends OneShotEffect {
public DamageWithExcessEffect(DynamicValue amount) {
super(Outcome.Damage);
this.amount = amount;
- this.staticText = "{this} deals " + amount + " damage to target creature" +
- (amount instanceof StaticValue ? "" : ", where X is " + amount.getMessage()) +
+ this.staticText = "{this} deals " + (amount instanceof StaticValue ? amount : "X") + " damage to target creature" +
+ (amount instanceof StaticValue ? "" : ", where X is the number of " + amount.getMessage()) +
". Excess damage is dealt to that creature's controller instead";
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java
index ecdc9d5c3ef..1c5c9db973e 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java
@@ -7,6 +7,7 @@ import mage.abilities.TriggeredAbility;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.keyword.ProtectionAbility;
+import mage.abilities.mana.ManaAbility;
import mage.constants.*;
import mage.game.Game;
import mage.game.permanent.Permanent;
@@ -143,7 +144,9 @@ public class GainAbilityAttachedEffect extends ContinuousEffectImpl {
}
boolean quotes = ability instanceof SimpleActivatedAbility
|| ability instanceof TriggeredAbility
- || ability instanceof LoyaltyAbility;
+ || ability instanceof LoyaltyAbility
+ || ability instanceof ManaAbility
+ || ability.getRule().startsWith("If ");
if (quotes) {
sb.append('"');
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java
index c9788014a73..adb80f5f1c9 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java
@@ -29,7 +29,7 @@ public class SearchLibraryGraveyardWithLessMVPutIntoPlay extends OneShotEffect {
public SearchLibraryGraveyardWithLessMVPutIntoPlay(FilterCard filter) {
super(Outcome.PutCreatureInPlay);
this.filter = filter;
- staticText = "Search your library and/or graveyard for a " + filter.getMessage() + " with mana value X or less, put it onto the battlefield. If you search your library this way, shuffle.";
+ staticText = "Search your library and/or graveyard for a " + filter.getMessage() + " with mana value X or less and put it onto the battlefield. If you search your library this way, shuffle.";
}
protected SearchLibraryGraveyardWithLessMVPutIntoPlay(final SearchLibraryGraveyardWithLessMVPutIntoPlay effect) {