diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/CropSigil.java b/Mage.Sets/src/mage/sets/eldritchmoon/CropSigil.java
index d6e8eb05eb4..75c61fd2103 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/CropSigil.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/CropSigil.java
@@ -34,7 +34,6 @@ import mage.abilities.condition.common.DeliriumCondition;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.decorator.ConditionalActivatedAbility;
-import mage.abilities.effects.Effect;
import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.cards.CardImpl;
@@ -69,9 +68,10 @@ public class CropSigil extends CardImpl {
// Delirium — {2}{G}, Sacrifice Crop Sigil: Return up to one target creature card and up to one target land card from your graveyard to your hand.
// Activate this ability only if there are four or more card types among cards in your graveyard.
- Effect effect = new ReturnToHandTargetEffect(true, true);
- effect.setText("Return up to one target creature card and up to one target land card from your graveyard to your hand");
- Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{2}{G}"), DeliriumCondition.getInstance());
+ Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(true, true), new ManaCostsImpl<>("{2}{G}"),
+ DeliriumCondition.getInstance(),
+ "Delirium — {2}{G}, Sacrifice {this}: Return up to one target creature card and up to one target land card from your graveyard to your hand. "
+ + "Activate this ability only if there are four or more card types among cards in your graveyard");
ability.addCost(new SacrificeSourceCost());
ability.addTarget(new TargetCardInGraveyard(0, 1, filterCreature));
ability.addTarget(new TargetCardInGraveyard(0, 1, filterLand));
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/EmrakulsEvangel.java b/Mage.Sets/src/mage/sets/eldritchmoon/EmrakulsEvangel.java
index 75243bc5060..515d0160b6d 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/EmrakulsEvangel.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/EmrakulsEvangel.java
@@ -33,6 +33,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.Cost;
import mage.abilities.costs.CostImpl;
+import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.effects.OneShotEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
@@ -54,7 +55,7 @@ import mage.target.common.TargetControlledCreaturePermanent;
* @author escplan9 (Derek Monturo - dmontur1 at gmail dot com)
*/
public class EmrakulsEvangel extends CardImpl {
-
+
public EmrakulsEvangel(UUID ownerId) {
super(ownerId, 156, "Emrakul's Evangel", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.expansionSetCode = "EMN";
@@ -63,9 +64,11 @@ public class EmrakulsEvangel extends CardImpl {
this.power = new MageInt(3);
this.toughness = new MageInt(2);
- // {T}, Sacrifice Emrakul's Evangel and any number of other non-Eldrazi creatures:
+ // {T}, Sacrifice Emrakul's Evangel and any number of other non-Eldrazi creatures:
// Put a 3/2 colorless Eldrazi Horror creature token onto the battlefield for each creature sacrificed this way.
- this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new EmrakulsEvangelEffect(), new EmrakulsEvangelCost()));
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new EmrakulsEvangelEffect(), new TapSourceCost());
+ ability.addCost(new EmrakulsEvangelCost());
+ this.addAbility(ability);
}
public EmrakulsEvangel(final EmrakulsEvangel card) {
@@ -79,14 +82,14 @@ public class EmrakulsEvangel extends CardImpl {
}
class EmrakulsEvangelCost extends CostImpl {
-
+
private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("non-Eldrazi creatures you control");
-
+
static {
filter.add(new AnotherPredicate());
filter.add(Predicates.not(new SubtypePredicate("Eldrazi")));
- }
-
+ }
+
private int numSacrificed = 1; // always sacrifices self at least
public EmrakulsEvangelCost() {
@@ -117,7 +120,7 @@ class EmrakulsEvangelCost extends CostImpl {
}
return paid;
}
-
+
public int getNumSacrificed() {
return numSacrificed;
}
@@ -125,7 +128,7 @@ class EmrakulsEvangelCost extends CostImpl {
@Override
public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) {
Permanent permanent = game.getPermanent(sourceId);
-
+
return permanent != null && game.getPlayer(controllerId).canPaySacrificeCost(permanent, sourceId, controllerId, game);
}
@@ -136,25 +139,25 @@ class EmrakulsEvangelCost extends CostImpl {
}
class EmrakulsEvangelEffect extends OneShotEffect {
-
+
EmrakulsEvangelEffect() {
super(Outcome.Sacrifice);
- this.staticText = "Sacrifice {this} and any number of other non-Eldrazi creatures: Put a 3/2 colorless Eldrazi Horror creature token onto the battlefield for each creature sacrificed this way.";
+ this.staticText = "Put a 3/2 colorless Eldrazi Horror creature token onto the battlefield for each creature sacrificed this way.";
}
-
+
EmrakulsEvangelEffect(final EmrakulsEvangelEffect effect) {
super(effect);
}
-
+
@Override
public EmrakulsEvangelEffect copy() {
return new EmrakulsEvangelEffect(this);
}
-
+
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
- if (player != null) {
+ if (player != null) {
int tokensToCreate = 0;
for (Cost cost : source.getCosts()) {
if (cost instanceof EmrakulsEvangelCost) {
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/GeierReachSanitarium.java b/Mage.Sets/src/mage/sets/eldritchmoon/GeierReachSanitarium.java
index 84e493f7388..f0bdff485f2 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/GeierReachSanitarium.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/GeierReachSanitarium.java
@@ -32,6 +32,7 @@ import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
+import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DrawCardAllEffect;
import mage.abilities.effects.common.discard.DiscardEachPlayerEffect;
import mage.abilities.mana.ColorlessManaAbility;
@@ -56,7 +57,9 @@ public class GeierReachSanitarium extends CardImpl {
// {2}, {T}: Each player draws a card, then discards a card.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardAllEffect(1), new GenericManaCost(2));
- ability.addEffect(new DiscardEachPlayerEffect());
+ Effect effect = new DiscardEachPlayerEffect();
+ effect.setText(", then discards a card");
+ ability.addEffect(effect);
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/GrimFlayer.java b/Mage.Sets/src/mage/sets/eldritchmoon/GrimFlayer.java
index f9776940cc2..1cd7057e746 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/GrimFlayer.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/GrimFlayer.java
@@ -66,7 +66,7 @@ public class GrimFlayer extends CardImpl {
// and the rest back on top of your library in any order.
Effect effect = new LookLibraryAndPickControllerEffect(
new StaticValue(3), false, new StaticValue(3), new FilterCard(), Zone.LIBRARY, true, false, true, Zone.GRAVEYARD, false);
- effect.setText("look at the top three cards of your library. Put any number of them into your graveyard and the rest on top of your library in any order");
+ effect.setText("look at the top three cards of your library. Put any number of them into your graveyard and the rest back on top of your library in any order");
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(effect, false));
// Delirium — Grim Flayer gets +2/+2 as long as there are four or more card types among cards in your graveyard.
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/IshkanahGrafwidow.java b/Mage.Sets/src/mage/sets/eldritchmoon/IshkanahGrafwidow.java
index 82d5d9d19f2..bc9cdc5cd9f 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/IshkanahGrafwidow.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/IshkanahGrafwidow.java
@@ -54,7 +54,7 @@ import mage.target.common.TargetOpponent;
*/
public class IshkanahGrafwidow extends CardImpl {
- private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("each Spider you control");
+ private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Spider you control");
static {
filter.add(new SubtypePredicate("Spider"));
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/PrimalDruid.java b/Mage.Sets/src/mage/sets/eldritchmoon/PrimalDruid.java
index 48e367f5ab1..3792e57a92c 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/PrimalDruid.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/PrimalDruid.java
@@ -30,6 +30,7 @@ package mage.sets.eldritchmoon;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.DiesTriggeredAbility;
+import mage.abilities.effects.Effect;
import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
@@ -52,7 +53,9 @@ public class PrimalDruid extends CardImpl {
this.toughness = new MageInt(3);
// When Primal Druid dies, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
- this.addAbility(new DiesTriggeredAbility(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterBasicLandCard()), true), true));
+ Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterBasicLandCard()), true);
+ effect.setText("you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library");
+ this.addAbility(new DiesTriggeredAbility(effect, true));
}
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/SpiritOfTheHunt.java b/Mage.Sets/src/mage/sets/eldritchmoon/SpiritOfTheHunt.java
index 7a9a50b9d27..04dc445bd5e 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/SpiritOfTheHunt.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/SpiritOfTheHunt.java
@@ -30,6 +30,7 @@ package mage.sets.eldritchmoon;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.Effect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.keyword.FlashAbility;
import mage.cards.CardImpl;
@@ -65,7 +66,9 @@ public class SpiritOfTheHunt extends CardImpl {
this.addAbility(FlashAbility.getInstance());
// When Spirit of the Hunt enters the battlefield, each other creature you control that's a Wolf or a Werewolf gets +0/+3 until end of turn.
- this.addAbility(new EntersBattlefieldTriggeredAbility(new BoostControlledEffect(0, 3, Duration.EndOfTurn, filter, true), false));
+ Effect effect = new BoostControlledEffect(0, 3, Duration.EndOfTurn, filter, true);
+ effect.setText("each other creature you control that's a Wolf or a Werewolf gets +0/+3 until end of turn");
+ this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false));
}
public SpiritOfTheHunt(final SpiritOfTheHunt card) {
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/StitchersGraft.java b/Mage.Sets/src/mage/sets/eldritchmoon/StitchersGraft.java
index 65876b2e08f..33f3f77342d 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/StitchersGraft.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/StitchersGraft.java
@@ -45,8 +45,8 @@ import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.constants.Zone;
import mage.game.Game;
-import mage.game.events.GameEvent.EventType;
import mage.game.events.GameEvent;
+import mage.game.events.GameEvent.EventType;
/**
*
@@ -68,7 +68,9 @@ public class StitchersGraft extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
// Whenever Stitcher's Graft becomes unattached from a permanent, sacrifice that permanent.
- this.addAbility(new UnattachedTriggeredAbility(new SacrificeEquippedEffect(), false));
+ effect = new SacrificeEquippedEffect();
+ effect.setText("sacrifice that permanent");
+ this.addAbility(new UnattachedTriggeredAbility(effect, false));
// Equip {2}
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2)));
diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/WaxingMoon.java b/Mage.Sets/src/mage/sets/eldritchmoon/WaxingMoon.java
index 480cb9fa307..3a7e5d9f774 100644
--- a/Mage.Sets/src/mage/sets/eldritchmoon/WaxingMoon.java
+++ b/Mage.Sets/src/mage/sets/eldritchmoon/WaxingMoon.java
@@ -28,6 +28,7 @@
package mage.sets.eldritchmoon;
import java.util.UUID;
+import mage.abilities.effects.Effect;
import mage.abilities.effects.common.TransformTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.keyword.TrampleAbility;
@@ -60,8 +61,11 @@ public class WaxingMoon extends CardImpl {
this.expansionSetCode = "EMN";
// Transform up to one target Werewolf you control.
- this.getSpellAbility().addEffect(new TransformTargetEffect(false));
+ Effect effect = new TransformTargetEffect(false);
+ effect.setText("Transform up to one target Werewolf you control");
+ this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1, filter, false));
+
// Creatures you control gain trample until end of turn.
this.getSpellAbility().addEffect(new GainAbilityAllEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent(), "Creatures you control gain trample until end of turn"));
}
diff --git a/Mage/src/main/java/mage/abilities/effects/common/DontUntapInControllersNextUntapStepTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DontUntapInControllersNextUntapStepTargetEffect.java
index 54df18dd219..f59773e1e4e 100644
--- a/Mage/src/main/java/mage/abilities/effects/common/DontUntapInControllersNextUntapStepTargetEffect.java
+++ b/Mage/src/main/java/mage/abilities/effects/common/DontUntapInControllersNextUntapStepTargetEffect.java
@@ -159,7 +159,7 @@ public class DontUntapInControllersNextUntapStepTargetEffect extends ContinuousR
return staticText;
}
if (targetName != null && targetName.length() > 0) {
- if (targetName.equals("Those creatures")) {
+ if (targetName.equals("Those creatures") || targetName.equals("They")) {
return targetName + " don't untap during their controller's next untap step";
} else
return targetName + " doesn't untap during its controller's next untap step";