mirror of
https://github.com/correl/mage.git
synced 2025-01-12 03:00:13 +00:00
[EMN] Fixed tooltip text on some green, gold, artifact, and land cards. Added Emrakul's Evangel's missing TapSourceCost.
This commit is contained in:
parent
0185b45e2d
commit
96e88d7350
10 changed files with 46 additions and 28 deletions
|
@ -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> — {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> — {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));
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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> — Grim Flayer gets +2/+2 as long as there are four or more card types among cards in your graveyard.
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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)));
|
||||
|
|
|
@ -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"));
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in a new issue