From 96e88d73509f0af81ed900c8944e3cdc1ece8c87 Mon Sep 17 00:00:00 2001 From: fireshoes Date: Tue, 12 Jul 2016 23:10:37 -0500 Subject: [PATCH] [EMN] Fixed tooltip text on some green, gold, artifact, and land cards. Added Emrakul's Evangel's missing TapSourceCost. --- .../src/mage/sets/eldritchmoon/CropSigil.java | 8 ++--- .../sets/eldritchmoon/EmrakulsEvangel.java | 33 ++++++++++--------- .../eldritchmoon/GeierReachSanitarium.java | 5 ++- .../mage/sets/eldritchmoon/GrimFlayer.java | 2 +- .../sets/eldritchmoon/IshkanahGrafwidow.java | 2 +- .../mage/sets/eldritchmoon/PrimalDruid.java | 5 ++- .../sets/eldritchmoon/SpiritOfTheHunt.java | 5 ++- .../sets/eldritchmoon/StitchersGraft.java | 6 ++-- .../mage/sets/eldritchmoon/WaxingMoon.java | 6 +++- ...nControllersNextUntapStepTargetEffect.java | 2 +- 10 files changed, 46 insertions(+), 28 deletions(-) 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";