[SLD] various text fixes

This commit is contained in:
Evan Kranzler 2021-10-23 09:27:42 -04:00
parent 9407d15dad
commit a55cfe2589
24 changed files with 95 additions and 125 deletions

View file

@ -38,7 +38,7 @@ class AllIsDustEffect extends OneShotEffect {
AllIsDustEffect() {
super(Outcome.DestroyPermanent);
staticText = "Each player sacrifices all colored permanents they control";
staticText = "Each player sacrifices all permanents they control that are one or more colors";
}
AllIsDustEffect(final AllIsDustEffect effect) {

View file

@ -57,7 +57,7 @@ public final class ArahboRoarOfTheWorld extends CardImpl {
Ability ability = new ConditionalInterveningIfTriggeredAbility(
new BeginningOfCombatTriggeredAbility(Zone.ALL, new BoostTargetEffect(3, 3, Duration.EndOfTurn), TargetController.YOU, false, false),
SourceOnBattlefieldOrCommandZoneCondition.instance,
"<i>Eminence</i> &mdash; At the beginning of combat on your turn, if Arahbo, Roar of the World is in the command zone or on the battlefield, another target Cat you control gets +3/+3 until end of turn.");
"At the beginning of combat on your turn, if {this} is in the command zone or on the battlefield, another target Cat you control gets +3/+3 until end of turn.");
ability.addTarget(new TargetCreaturePermanent(filter));
ability.setAbilityWord(AbilityWord.EMINENCE);
this.addAbility(ability);

View file

@ -25,7 +25,7 @@ public final class Bitterblossom extends CardImpl {
// At the beginning of your upkeep, you lose 1 life and create a 1/1 black Faerie Rogue creature token with flying.
Ability ability = new BeginningOfUpkeepTriggeredAbility(new LoseLifeSourceControllerEffect(1), TargetController.YOU, false);
ability.addEffect(new CreateTokenEffect(new FaerieRogueToken(), 1));
ability.addEffect(new CreateTokenEffect(new FaerieRogueToken(), 1).concatBy("and"));
this.addAbility(ability);
}

View file

@ -1,7 +1,6 @@
package mage.cards.b;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.CantBlockAbility;
import mage.abilities.common.LandfallAbility;
@ -19,14 +18,15 @@ import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.Zone;
import java.util.UUID;
/**
*
* @author maurer.it_at_gmail.com
*/
public final class Bloodghast extends CardImpl {
public Bloodghast(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{B}{B}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{B}{B}");
this.subtype.add(SubType.VAMPIRE, SubType.SPIRIT);
this.power = new MageInt(2);
@ -38,9 +38,9 @@ public final class Bloodghast extends CardImpl {
ContinuousEffect effect = new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(effect,
new XorLessLifeCondition(XorLessLifeCondition.CheckType.AN_OPPONENT, 10),
"Bloodghast has haste as long as an opponent has 10 or less life")));
"{this} has haste as long as an opponent has 10 or less life")));
// Landfall Whenever a land enters the battlefield under your control, you may return Bloodghast from your graveyard to the battlefield.
this.addAbility(new LandfallAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(), true));
this.addAbility(new LandfallAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToBattlefieldEffect(false, false), true));
}
private Bloodghast(final Bloodghast card) {

View file

@ -25,7 +25,7 @@ public final class CrashThrough extends CardImpl {
getSpellAbility().addEffect(new GainAbilityAllEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent(), "Creatures you control gain trample until end of turn"));
// Draw a card.
getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
}
private CrashThrough(final CrashThrough card) {

View file

@ -40,8 +40,13 @@ public final class CraterhoofBehemoth extends CardImpl {
this.addAbility(HasteAbility.getInstance());
// When Craterhoof Behemoth enters the battlefield, creatures you control gain trample and get +X/+X until end of turn, where X is the number of creatures you control.
Ability ability = new EntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter));
ability.addEffect(new BoostControlledEffect(CreaturesYouControlCount.instance, CreaturesYouControlCount.instance, Duration.EndOfTurn, filter, false, true));
Ability ability = new EntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn, filter
).setText("creatures you control gain trample"));
ability.addEffect(new BoostControlledEffect(
CreaturesYouControlCount.instance, CreaturesYouControlCount.instance,
Duration.EndOfTurn, filter, false, true
).setText("and get +X/+X until end of turn, where X is the number of creatures you control"));
ability.addHint(CreaturesYouControlHint.instance);
this.addAbility(ability);
}

View file

@ -1,14 +1,11 @@
package mage.cards.e;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.OnEventTriggeredAbility;
import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.FlyingAbility;
import mage.abilities.keyword.IndestructibleAbility;
@ -16,20 +13,13 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.TargetController;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.game.events.GameEvent.EventType;
import mage.game.permanent.Permanent;
import mage.players.Player;
import mage.target.common.TargetControlledCreaturePermanent;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
*
* @author BetaSteward_at_googlemail.com
*/
public final class EldraziMonument extends CardImpl {
@ -38,13 +28,26 @@ public final class EldraziMonument extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{5}");
// Creatures you control get +1/+1, have flying, and are indestructible.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, false)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(FlyingAbility.getInstance(), Duration.WhileOnBattlefield, new FilterCreaturePermanent())));
Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield, new FilterControlledCreaturePermanent("Creatures you control"), false);
effect.setText("Creatures you control are indestructible");
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
1, 1, Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURES, false
));
ability.addEffect(new GainAbilityControlledEffect(
FlyingAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURES
).setText("and have flying"));
ability.addEffect(new GainAbilityControlledEffect(
IndestructibleAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURES
).setText("and indestructible"));
this.addAbility(ability);
// At the beginning of your upkeep, sacrifice a creature. If you can't, sacrifice Eldrazi Monument.
this.addAbility(new OnEventTriggeredAbility(EventType.UPKEEP_STEP_PRE, "beginning of your upkeep", new EldraziMonumentEffect()));
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
new SacrificeSourceUnlessPaysEffect(new SacrificeTargetCost(
new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_CREATURE_SHORT_TEXT)
)).setText("sacrifice a creature. If you can't, sacrifice {this}"), TargetController.YOU, false
));
}
private EldraziMonument(final EldraziMonument card) {
@ -55,42 +58,4 @@ public final class EldraziMonument extends CardImpl {
public EldraziMonument copy() {
return new EldraziMonument(this);
}
}
class EldraziMonumentEffect extends OneShotEffect {
public EldraziMonumentEffect() {
super(Outcome.Sacrifice);
staticText = "sacrifice a creature. If you can't, sacrifice {this}";
}
public EldraziMonumentEffect(final EldraziMonumentEffect ability) {
super(ability);
}
@Override
public EldraziMonumentEffect copy() {
return new EldraziMonumentEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
TargetControlledPermanent target = new TargetControlledCreaturePermanent();
Player player = game.getPlayer(source.getControllerId());
if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) {
player.choose(this.outcome, target, source.getSourceId(), game);
Permanent permanent = game.getPermanent(target.getFirstTarget());
if (permanent != null) {
return permanent.sacrifice(source, game);
}
}
Permanent permanent = game.getPermanent(source.getSourceId());
if (permanent != null) {
return permanent.sacrifice(source, game);
}
return false;
}
}

View file

@ -48,7 +48,7 @@ class FleetSwallowerEffect extends OneShotEffect {
public FleetSwallowerEffect() {
super(Outcome.Detriment);
staticText = "target player puts the top half of their library, rounded up, into their graveyard";
staticText = "target player mills half their library, rounded up";
}
public FleetSwallowerEffect(final FleetSwallowerEffect effect) {

View file

@ -31,7 +31,7 @@ public final class GoblinKing extends CardImpl {
// Other Goblin creatures get +1/+1 and have mountainwalk.
Effect effect = new BoostAllEffect(1, 1, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_GOBLINS, true);
effect.setText("Other Goblin creatures get +1/+1");
effect.setText("Other Goblins get +1/+1");
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
effect = new GainAbilityAllEffect(new MountainwalkAbility(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE_GOBLINS, true);
effect.setText("and have mountainwalk");

View file

@ -1,28 +1,28 @@
package mage.cards.g;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.AttacksTriggeredAbility;
import mage.abilities.common.BeginningOfCombatTriggeredAbility;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.combat.AttacksIfAbleAllEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.SubType;
import mage.constants.TargetController;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.filter.predicate.permanent.AttackingPredicate;
import mage.game.permanent.token.GoblinToken;
import mage.watchers.common.AttackedThisTurnWatcher;
import java.util.UUID;
/**
*
* @author Quercitron
*/
public final class GoblinRabblemaster extends CardImpl {
@ -47,8 +47,7 @@ public final class GoblinRabblemaster extends CardImpl {
this.toughness = new MageInt(2);
// Other Goblin creatures you control attack each turn if able.
Effect effect = new AttacksIfAbleAllEffect(otherGoblinFilter);
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect), new AttackedThisTurnWatcher());
this.addAbility(new SimpleStaticAbility(new AttacksIfAbleAllEffect(otherGoblinFilter, Duration.WhileOnBattlefield, true)));
// At the beginning of combat on your turn, create a 1/1 red Goblin creature token with haste.
this.addAbility(new BeginningOfCombatTriggeredAbility(new CreateTokenEffect(new GoblinToken(true)), TargetController.YOU, false));

View file

@ -26,7 +26,7 @@ import mage.target.common.TargetControlledPermanent;
public final class GoblinTrashmaster extends CardImpl {
private static final FilterCreaturePermanent filter
= new FilterCreaturePermanent(SubType.GOBLIN, "Goblins you control");
= new FilterCreaturePermanent(SubType.GOBLIN, "Goblins");
private static final FilterControlledCreaturePermanent filter2
= new FilterControlledCreaturePermanent(SubType.GOBLIN, "a Goblin");

View file

@ -44,7 +44,7 @@ public final class HeliodGodOfTheSun extends CardImpl {
// Other creatures you control have vigilance.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
VigilanceAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE, true
StaticFilters.FILTER_PERMANENT_CREATURES, true
)));
// {2}{W}{W}: Create a 2/1 white Cleric enchantment creature token.

View file

@ -48,9 +48,9 @@ public final class KothophedSoulHoarder extends CardImpl {
// Whenever a permanent owned by another player is put into the graveyard from the battlefield, you draw one card and lose 1 life.
Effect effect = new DrawCardSourceControllerEffect(1);
effect.setText("you draw one card");
effect.setText("you draw a card");
Ability ability = new ZoneChangeAllTriggeredAbility(Zone.BATTLEFIELD, Zone.BATTLEFIELD, Zone.GRAVEYARD, effect, filter,
"Whenever a permanent owned by another player is put into the graveyard from the battlefield, ", false);
"Whenever a permanent owned by another player is put into a graveyard from the battlefield, ", false);
effect = new LoseLifeSourceControllerEffect(1);
effect.setText("and lose 1 life");
ability.addEffect(effect);

View file

@ -1,8 +1,6 @@
package mage.cards.l;
import java.util.UUID;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.abilities.keyword.DredgeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -10,18 +8,18 @@ import mage.constants.CardType;
import mage.filter.common.FilterLandCard;
import mage.target.common.TargetCardInYourGraveyard;
import java.util.UUID;
/**
*
* @author jonubuu
*/
public final class LifeFromTheLoam extends CardImpl {
public LifeFromTheLoam(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{G}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
// Return up to three target land cards from your graveyard to your hand.
this.getSpellAbility().addEffect(new ReturnToHandTargetEffect());
this.getSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect());
this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(0, 3, new FilterLandCard("land cards from your graveyard")));
// Dredge 3 (If you would draw a card, instead you may put exactly three cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.)
this.addAbility(new DredgeAbility(3));

View file

@ -15,6 +15,7 @@ import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.game.Game;
import mage.game.events.GameEvent;
import mage.game.permanent.token.WalkerToken;
import mage.game.permanent.token.ZombieToken;
import java.util.Objects;
@ -35,7 +36,7 @@ public final class MichonneRuthlessSurvivor extends CardImpl {
this.toughness = new MageInt(3);
// When Michonne enters the battlefield, create two Walker tokens.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ZombieToken(), 2)));
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new WalkerToken(), 2)));
// As long as Michonne is equipped, she must be blocked if able.
this.addAbility(new SimpleStaticAbility(new ConditionalRequirementEffect(
@ -44,7 +45,7 @@ public final class MichonneRuthlessSurvivor extends CardImpl {
)));
// Whenever Michonne and at least two Zombies attack, she gains indestructible until end of turn.
this.addAbility(new BattalionAbility());
this.addAbility(new MichonneRuthlessSurvivorAbility());
}
private MichonneRuthlessSurvivor(final MichonneRuthlessSurvivor card) {
@ -57,19 +58,19 @@ public final class MichonneRuthlessSurvivor extends CardImpl {
}
}
class BattalionAbility extends TriggeredAbilityImpl {
class MichonneRuthlessSurvivorAbility extends TriggeredAbilityImpl {
public BattalionAbility() {
public MichonneRuthlessSurvivorAbility() {
super(Zone.BATTLEFIELD, new GainAbilitySourceEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn));
}
public BattalionAbility(final BattalionAbility ability) {
public MichonneRuthlessSurvivorAbility(final MichonneRuthlessSurvivorAbility ability) {
super(ability);
}
@Override
public BattalionAbility copy() {
return new BattalionAbility(this);
public MichonneRuthlessSurvivorAbility copy() {
return new MichonneRuthlessSurvivorAbility(this);
}
@Override

View file

@ -46,7 +46,7 @@ public final class NeganTheColdBlooded extends CardImpl {
// Whenever an opponent sacrifices a creature, you create a Treasure token.
this.addAbility(new SacrificeAllTriggeredAbility(
new CreateTokenEffect(new TreasureToken()),
new CreateTokenEffect(new TreasureToken()).setText("you create a Treasure token"),
StaticFilters.FILTER_PERMANENT_A_CREATURE,
TargetController.OPPONENT, false
));

View file

@ -45,7 +45,7 @@ public final class NyleaGodOfTheHunt extends CardImpl {
// Other creatures you control have trample.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
TrampleAbility.getInstance(), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_CREATURE, true
StaticFilters.FILTER_PERMANENT_CREATURES, true
)));
// {3}{G}: Target creature gets +2/+2 until end of turn.

View file

@ -18,7 +18,7 @@ import mage.filter.FilterSpell;
*/
public final class RekiTheHistoryOfKamigawa extends CardImpl {
private static final FilterSpell filter = new FilterSpell("legendary spell");
private static final FilterSpell filter = new FilterSpell("a legendary spell");
static {
filter.add(SuperType.LEGENDARY.getPredicate());

View file

@ -1,14 +1,12 @@
package mage.cards.s;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.SacrificeTargetCost;
import mage.abilities.costs.mana.ManaCostsImpl;
import mage.abilities.effects.common.CreateTokenEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.BoostAllEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
@ -20,8 +18,9 @@ import mage.filter.common.FilterCreaturePermanent;
import mage.game.permanent.token.SquirrelToken;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class SquirrelWrangler extends CardImpl {
@ -29,7 +28,7 @@ public final class SquirrelWrangler extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(SubType.SQUIRREL, "Squirrel creatures");
public SquirrelWrangler(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}{G}");
this.subtype.add(SubType.HUMAN);
this.subtype.add(SubType.DRUID);
@ -42,7 +41,7 @@ public final class SquirrelWrangler extends CardImpl {
this.addAbility(ability);
// {1}{G}, Sacrifice a land: Squirrel creatures get +1/+1 until end of turn.
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1,1,Duration.EndOfTurn, filter), new ManaCostsImpl("{1}{G}"));
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.EndOfTurn, filter, false), new ManaCostsImpl("{1}{G}"));
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land"))));
this.addAbility(ability);

View file

@ -22,7 +22,7 @@ import mage.target.TargetSpell;
*/
public final class SwanSong extends CardImpl {
private static final FilterSpell filter = new FilterSpell("enchantment, instant or sorcery spell");
private static final FilterSpell filter = new FilterSpell("enchantment, instant, or sorcery spell");
static {
filter.add(Predicates.or(CardType.ENCHANTMENT.getPredicate(),
@ -52,7 +52,7 @@ class SwanSongEffect extends OneShotEffect {
public SwanSongEffect() {
super(Outcome.Benefit);
this.staticText = "Counter target enchantment, instant or sorcery spell. Its controller creates a 2/2 blue Bird creature token with flying";
this.staticText = "Counter target enchantment, instant, or sorcery spell. Its controller creates a 2/2 blue Bird creature token with flying";
}
public SwanSongEffect(final SwanSongEffect effect) {

View file

@ -96,7 +96,7 @@ class ThraximundarTriggeredAbility extends TriggeredAbilityImpl {
}
@Override
public String getTriggerPhrase() {
public String getRule() {
return "Whenever {this} attacks, defending player sacrifices a creature.";
}
}
@ -123,7 +123,7 @@ class PlayerSacrificesCreatureTriggeredAbility extends TriggeredAbilityImpl {
}
@Override
public String getRule() {
public String getTriggerPhrase() {
return "Whenever a player sacrifices a creature, " ;
}

View file

@ -72,8 +72,8 @@ class ToshiroUmezawaEffect extends OneShotEffect {
public ToshiroUmezawaEffect() {
super(Outcome.Benefit);
this.staticText = "cast target instant card from your graveyard. "
+ "If that card would be put into a graveyard this turn, exile it instead";
this.staticText = "you may cast target instant card from your graveyard. "
+ "If that spell would be put into a graveyard this turn, exile it instead";
}
public ToshiroUmezawaEffect(final ToshiroUmezawaEffect effect) {

View file

@ -1,7 +1,5 @@
package mage.cards.v;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
@ -14,25 +12,30 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.filter.StaticFilters;
import java.util.UUID;
/**
*
* @author North
*/
public final class VaultOfTheArchangel extends CardImpl {
public VaultOfTheArchangel(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.LAND},"");
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
// {tap}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {2}{W}{B}, {tap}: Creatures you control gain deathtouch and lifelink until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
new GainAbilityControlledEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures"), false),
new ManaCostsImpl("{2}{W}{B}"));
ability.addEffect(new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures"), false));
Ability ability = new SimpleActivatedAbility(new GainAbilityControlledEffect(
DeathtouchAbility.getInstance(), Duration.EndOfTurn,
StaticFilters.FILTER_PERMANENT_CREATURE
).setText("creatures you control gain deathtouch"), new ManaCostsImpl<>("{2}{W}{B}"));
ability.addEffect(new GainAbilityControlledEffect(
LifelinkAbility.getInstance(), Duration.EndOfTurn,
StaticFilters.FILTER_PERMANENT_CREATURE
).setText("and lifelink until end of turn"));
ability.addCost(new TapSourceCost());
this.addAbility(ability);
}

View file

@ -58,7 +58,7 @@ public class VerifyCardDataTest {
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
private static final String FULL_ABILITIES_CHECK_SET_CODE = "GRN"; // check all abilities and output cards with wrong abilities texts;
private static final String FULL_ABILITIES_CHECK_SET_CODE = "SLD"; // check all abilities and output cards with wrong abilities texts;
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages