[EMN] Fixed tooltip text on some green, gold, artifact, and land cards. Added Emrakul's Evangel's missing TapSourceCost.

This commit is contained in:
fireshoes 2016-07-12 23:10:37 -05:00
parent 0185b45e2d
commit 96e88d7350
10 changed files with 46 additions and 28 deletions

View file

@ -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 {
// <i>Delirium</i> &mdash; {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(),
"<i>Delirium</i> &mdash; {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));

View file

@ -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) {

View file

@ -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);
}

View file

@ -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));
// <i>Delirium</i> &mdash; Grim Flayer gets +2/+2 as long as there are four or more card types among cards in your graveyard.

View file

@ -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"));

View file

@ -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));
}

View file

@ -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) {

View file

@ -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)));

View file

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

View file

@ -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";