[CMR] various text fixes

This commit is contained in:
Evan Kranzler 2020-11-11 09:08:16 -05:00
parent 067cbabbbc
commit d227932ff3
55 changed files with 202 additions and 185 deletions

View file

@ -26,7 +26,7 @@ public final class AbominationOfLlanowar extends CardImpl {
private static final FilterPermanent filter
= new FilterControlledPermanent(SubType.ELF, "Elves you control");
private static final FilterCard filter2
= new FilterCard("plus the number of Elf cards in your graveyard");
= new FilterCard("plus the number of Elf cards");
static {
filter2.add(SubType.ELF.getPredicate());

View file

@ -52,6 +52,7 @@ public final class AlharuSolemnRitualist extends CardImpl {
// When Alharu, Solemn Ritualist enters the battlefield, put a +1/+1 counter on each of up to two other target creatures.
Ability ability = new EntersBattlefieldTriggeredAbility(
new AddCountersTargetEffect(CounterType.P1P1.createInstance())
.setText("put a +1/+1 counter on each of up to two other target creatures")
);
ability.addTarget(new TargetPermanent(0, 2, filter, false));
this.addAbility(ability);

View file

@ -1,8 +1,7 @@
package mage.cards.a;
import java.util.UUID;
import mage.ObjectColor;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.continuous.AddCardColorAttachedEffect;
@ -15,20 +14,29 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import java.util.UUID;
/**
* @author noxx
*/
public final class AngelicArmaments extends CardImpl {
public AngelicArmaments(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
this.subtype.add(SubType.EQUIPMENT);
// Equipped creature gets +2/+2, has flying, and is a white Angel in addition to its other colors and types.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.EQUIPMENT)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AddCardColorAttachedEffect(ObjectColor.WHITE, Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new AddCardSubtypeAttachedEffect(SubType.ANGEL, Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT)));
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2));
ability.addEffect(new GainAbilityAttachedEffect(
FlyingAbility.getInstance(), AttachmentType.EQUIPMENT
).setText(", has flying"));
ability.addEffect(new AddCardColorAttachedEffect(
ObjectColor.WHITE, Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT
).setText(", and is"));
ability.addEffect(new AddCardSubtypeAttachedEffect(
SubType.ANGEL, Duration.WhileOnBattlefield, AttachmentType.EQUIPMENT
).setText("white Angel in addition to its other colors and types").concatBy("a"));
this.addAbility(ability);
// Equip {4}
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(4)));

View file

@ -39,7 +39,7 @@ public final class AnointerOfValor extends CardImpl {
new AddCountersTargetEffect(CounterType.P1P1.createInstance()),
false, "put a +1/+1 counter on that creature"
), new GenericManaCost(3), "Pay {3}?"
), false, StaticFilters.FILTER_PERMANENT_CREATURE_A,
), false, StaticFilters.FILTER_PERMANENT_CREATURE,
SetTargetPointer.PERMANENT, false
));
}

View file

@ -20,7 +20,7 @@ import java.util.UUID;
*/
public final class AuroraPhoenix extends CardImpl {
private static final FilterSpell filter = new FilterSpell("spell with cascade");
private static final FilterSpell filter = new FilterSpell("a spell with cascade");
static {
filter.add(new AbilityPredicate(CascadeAbility.class));

View file

@ -47,7 +47,7 @@ class BlasphemousCostReductionEffect extends CostModificationEffectImpl {
BlasphemousCostReductionEffect() {
super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST);
staticText = "{this} costs {1} less to cast for each creature on the battlefield";
staticText = "this spell costs {1} less to cast for each creature on the battlefield";
}
BlasphemousCostReductionEffect(BlasphemousCostReductionEffect effect) {

View file

@ -33,7 +33,9 @@ public final class BlazingSunsteel extends CardImpl {
this.subtype.add(SubType.EQUIPMENT);
// Equipped creature gets +1/+0 for each opponent you have.
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(OpponentsCount.instance, StaticValue.get(0))));
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(
OpponentsCount.instance, StaticValue.get(0)
).setText("equipped creature gets +1/+0 for each opponent you have")));
// Whenever equipped creature is dealt damage, it deals that much damage to any target.
this.addAbility(new BlazingSunsteelTriggeredAbility());

View file

@ -1,11 +1,9 @@
package mage.cards.b;
import java.util.UUID;
import mage.abilities.Mode;
import mage.abilities.effects.Effect;
import mage.abilities.effects.common.DamageTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
import mage.abilities.keyword.DoubleStrikeAbility;
import mage.abilities.keyword.IndestructibleAbility;
@ -13,12 +11,12 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.filter.common.FilterControlledPermanent;
import mage.target.common.TargetCreaturePermanent;
import mage.target.common.TargetPlayerOrPlaneswalker;
import java.util.UUID;
/**
*
* @author Plopman
*/
public final class BorosCharm extends CardImpl {
@ -30,11 +28,9 @@ public final class BorosCharm extends CardImpl {
this.getSpellAbility().addEffect(new DamageTargetEffect(4));
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
//or permanents you control are indestructible this turn
Mode mode = new Mode();
Effect effect = new GainAbilityAllEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledPermanent(), false);
effect.setText("permanents you control are indestructible this turn");
mode.addEffect(effect);
this.getSpellAbility().addMode(mode);
this.getSpellAbility().addMode(new Mode(new GainAbilityControlledEffect(
IndestructibleAbility.getInstance(), Duration.EndOfTurn
)));
//or target creature gains double strike until end of turn.
Mode mode2 = new Mode();
mode2.addEffect(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn));

View file

@ -15,6 +15,7 @@ import mage.constants.Duration;
import mage.constants.SubType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledCreaturePermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
@ -23,7 +24,7 @@ import java.util.UUID;
*/
public final class CoerciveRecruiter extends CardImpl {
private static final FilterPermanent filter = new FilterControlledCreaturePermanent(SubType.PIRATE);
private static final FilterPermanent filter = new FilterControlledCreaturePermanent(SubType.PIRATE, "Pirate");
public CoerciveRecruiter(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}");
@ -44,6 +45,7 @@ public final class CoerciveRecruiter extends CardImpl {
ability.addEffect(new AddCardSubTypeTargetEffect(
SubType.PIRATE, Duration.EndOfTurn
).setText("and becomes a Pirate in addition to its other types"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}

View file

@ -42,7 +42,7 @@ public final class DargoTheShipwrecker extends CardImpl {
cost.setText("As an additional cost to cast this spell, " +
"you may sacrifice any number of artifacts and/or creatures. " +
"This spell costs {2} less to cast for each permanent sacrificed this way " +
"and {2} less to cast for each other artifact or creature you've sacrificed this turn.");
"and {2} less to cast for each other artifact or creature you've sacrificed this turn");
this.getSpellAbility().addCost(cost);
Ability ability = new SimpleStaticAbility(Zone.ALL, new DargoTheShipwreckerEffect());
ability.setRuleVisible(false);

View file

@ -99,7 +99,7 @@ class DereviEmpyrialTacticianTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever {this} enters the battlefield or a creature you control deals combat damage to a player, you may tap or untap target permanent";
return "Whenever {this} enters the battlefield or a creature you control deals combat damage to a player, you may tap or untap target permanent.";
}
@Override

View file

@ -29,7 +29,7 @@ public final class GraftedWargear extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 2)));
// Whenever Grafted Wargear becomes unattached from a permanent, sacrifice that permanent.
this.addAbility(new UnattachedTriggeredAbility(new SacrificeTargetEffect(), false));
this.addAbility(new UnattachedTriggeredAbility(new SacrificeTargetEffect().setText("sacrifice that permanent"), false));
// Equip {0}
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(0)));

View file

@ -39,7 +39,7 @@ public final class HellkiteCourser extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// When Hellkite Courser enters the battlefield, you may put a commander you own from the command zone onto the battlefield. It gains haste. Return it to the command zone at the beginning of the next end step.
this.addAbility(new EntersBattlefieldTriggeredAbility(new HellkiteCourserEffect()));
this.addAbility(new EntersBattlefieldTriggeredAbility(new HellkiteCourserEffect(), true));
}
private HellkiteCourser(final HellkiteCourser card) {

View file

@ -90,6 +90,6 @@ class IkraShidiqiTheUsurperTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever a creature you control deals combat damage to a player, you gain life equal to that creature's toughness";
return "Whenever a creature you control deals combat damage to a player, you gain life equal to that creature's toughness.";
}
}

View file

@ -1,7 +1,6 @@
package mage.cards.i;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
@ -10,30 +9,34 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.permanent.TokenPredicate;
import java.util.UUID;
/**
*
* @author BetaSteward
*/
public final class IntangibleVirtue extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Creature tokens");
private static final FilterCreaturePermanent filter
= new FilterCreaturePermanent("creature tokens");
static {
filter.add(TokenPredicate.instance);
}
public IntangibleVirtue(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{W}");
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}");
// Creature tokens you control get +1/+1 and have vigilance.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.WhileOnBattlefield, filter)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, filter)));
Ability ability = new SimpleStaticAbility(new BoostControlledEffect(
1, 1, Duration.WhileOnBattlefield, filter
));
ability.addEffect(new GainAbilityControlledEffect(
VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, filter
).setText("and have vigilance"));
this.addAbility(ability);
}
public IntangibleVirtue(final IntangibleVirtue card) {

View file

@ -1,10 +1,7 @@
package mage.cards.i;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.keyword.ScryEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -14,20 +11,18 @@ import mage.constants.Outcome;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class InterpretTheSigns extends CardImpl {
public InterpretTheSigns(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{U}");
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{5}{U}");
// Scry 3, then reveal the top card of your library. Draw cards equal to that card's converted mana cost.
this.getSpellAbility().addEffect(new ScryEffect(3));
this.getSpellAbility().addEffect(new InterpretTheSignsEffect());
}
public InterpretTheSigns(final InterpretTheSigns card) {
@ -44,7 +39,7 @@ class InterpretTheSignsEffect extends OneShotEffect {
public InterpretTheSignsEffect() {
super(Outcome.DrawCard);
this.staticText = ", then reveal the top card of your library. Draw cards equal to that card's converted mana cost";
this.staticText = "scry 3, then reveal the top card of your library. Draw cards equal to that card's converted mana cost";
}
public InterpretTheSignsEffect(final InterpretTheSignsEffect effect) {
@ -59,15 +54,16 @@ class InterpretTheSignsEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
Card sourceCard = game.getCard(source.getSourceId());
if (controller != null && sourceCard != null) {
Card card = controller.getLibrary().getFromTop(game);
if (card != null) {
controller.revealCards(sourceCard.getName(), new CardsImpl(card), game);
controller.drawCards(card.getConvertedManaCost(), source.getSourceId(), game);
}
if (controller == null) {
return false;
}
controller.scry(3, source, game);
Card card = controller.getLibrary().getFromTop(game);
if (card == null) {
return true;
}
return false;
controller.revealCards(source, new CardsImpl(card), game);
controller.drawCards(card.getConvertedManaCost(), source.getSourceId(), game);
return true;
}
}

View file

@ -62,7 +62,7 @@ class KaradorGhostChieftainCostReductionEffect extends CostModificationEffectImp
KaradorGhostChieftainCostReductionEffect() {
super(Duration.WhileOnStack, Outcome.Benefit, CostModificationType.REDUCE_COST);
staticText = "{this} costs {1} less to cast for each creature card in your graveyard";
staticText = "this spell costs {1} less to cast for each creature card in your graveyard";
}
KaradorGhostChieftainCostReductionEffect(KaradorGhostChieftainCostReductionEffect effect) {
@ -99,7 +99,7 @@ class KaradorGhostChieftainCastFromGraveyardEffect extends AsThoughEffectImpl {
KaradorGhostChieftainCastFromGraveyardEffect() {
super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.WhileOnBattlefield, Outcome.PutCreatureInPlay, true);
staticText = "During each of your turns, you may cast one creature card from your graveyard";
staticText = "During each of your turns, you may cast a creature card from your graveyard";
}
KaradorGhostChieftainCastFromGraveyardEffect(final KaradorGhostChieftainCastFromGraveyardEffect effect) {

View file

@ -21,7 +21,7 @@ import java.util.UUID;
*/
public final class KedissEmberclawFamiliar extends CardImpl {
private static final FilterPermanent filter = new FilterControlledPermanent("commander you control");
private static final FilterPermanent filter = new FilterControlledPermanent("a commander you control");
static {
filter.add(CommanderPredicate.instance);

View file

@ -28,7 +28,7 @@ import java.util.UUID;
public final class KeskitTheFleshSculptor extends CardImpl {
private static final FilterControlledPermanent filter
= new FilterControlledPermanent("three other artifacts and/or creatures");
= new FilterControlledPermanent("other artifacts and/or creatures");
static {
filter.add(AnotherPredicate.instance);

View file

@ -1,7 +1,5 @@
package mage.cards.l;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SpellCastControllerTriggeredAbility;
@ -17,13 +15,14 @@ import mage.filter.common.FilterCreaturePermanent;
import mage.filter.predicate.mageobject.AbilityPredicate;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author Loki
*/
public final class LysAlanaBowmaster extends CardImpl {
private static final FilterSpell filterElf = new FilterSpell("Elf");
private static final FilterSpell filterElf = new FilterSpell("an Elf spell");
private static final FilterCreaturePermanent filterFlying = new FilterCreaturePermanent("creature with flying");
static {
@ -32,14 +31,15 @@ public final class LysAlanaBowmaster extends CardImpl {
}
public LysAlanaBowmaster(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}");
this.subtype.add(SubType.ELF);
this.subtype.add(SubType.ARCHER);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
this.addAbility(ReachAbility.getInstance());
Ability ability = new SpellCastControllerTriggeredAbility(new DamageTargetEffect(2), filterElf, true);
Ability ability = new SpellCastControllerTriggeredAbility(new DamageTargetEffect(2)
.setText("{this} deal 2 damage to target creature with flying"), filterElf, true);
ability.addTarget(new TargetCreaturePermanent(filterFlying));
this.addAbility(ability);
}

View file

@ -1,7 +1,5 @@
package mage.cards.m;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
@ -14,19 +12,17 @@ import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.filter.StaticFilters;
import mage.game.permanent.token.MelokuTheCloudedMirrorToken;
import mage.target.common.TargetControlledPermanent;
import java.util.UUID;
/**
* @author Loki
*/
public final class MelokuTheCloudedMirror extends CardImpl {
private static final FilterControlledPermanent filter = new FilterControlledLandPermanent("land");
public MelokuTheCloudedMirror(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{U}");
addSuperType(SuperType.LEGENDARY);
@ -39,8 +35,12 @@ public final class MelokuTheCloudedMirror extends CardImpl {
this.addAbility(FlyingAbility.getInstance());
// {1}, Return a land you control to its owner's hand: Create a 1/1 blue Illusion creature token with flying.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new MelokuTheCloudedMirrorToken(), 1), new GenericManaCost(1));
ability.addCost(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter)));
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(
new MelokuTheCloudedMirrorToken(), 1
), new GenericManaCost(1));
ability.addCost(new ReturnToHandChosenControlledPermanentCost(
new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_LAND_SHORT_TEXT)
));
this.addAbility(ability);
}
@ -52,5 +52,4 @@ public final class MelokuTheCloudedMirror extends CardImpl {
public MelokuTheCloudedMirror copy() {
return new MelokuTheCloudedMirror(this);
}
}

View file

@ -35,7 +35,7 @@ public final class MerchantRaiders extends CardImpl {
this.toughness = new MageInt(4);
// Whenever Merchant Raiders or another Pirate enters the battlefield under your control, tap up to one target creature. That creature doesn't untap during its controller's untap step for as long as you control Merchant Raiders.
Ability ability = new EntersBattlefieldThisOrAnotherTriggeredAbility(new TapTargetEffect(), filter);
Ability ability = new EntersBattlefieldThisOrAnotherTriggeredAbility(new TapTargetEffect(), filter,false,true);
ability.addEffect(new MerchantRaidersEffect());
ability.addTarget(new TargetCreaturePermanent(0, 1));
this.addAbility(ability, new MerchantRaidersWatcher());

View file

@ -31,7 +31,7 @@ public final class MindlessAutomaton extends CardImpl {
this.toughness = new MageInt(0);
// Mindless Automaton enters the battlefield with two +1/+1 counters on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2))));
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)),"with two +1/+1 counters on it"));
// {1}, Discard a card: Put a +1/+1 counter on Mindless Automaton.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new GenericManaCost(1));

View file

@ -23,7 +23,7 @@ public final class MonstrousOnslaught extends CardImpl {
// Monstrous Onslaught deals X damage divided as you choose among any number of target creatures, where X is the greatest power among creatures you control as you cast Monstrous Onslaught.
DynamicValue xValue = GreatestPowerAmongControlledCreaturesValue.instance;
Effect effect = new DamageMultiEffect(xValue);
effect.setText("{this} deals X damage divided as you choose among any number of target creatures, where X is the greatest power among creatures you control as you cast {this}");
effect.setText("{this} deals X damage divided as you choose among any number of target creatures, where X is the greatest power among creatures you control as you cast this spell");
this.getSpellAbility().addEffect(effect);
this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(xValue));
}

View file

@ -24,9 +24,9 @@ public final class NecroticHex extends CardImpl {
));
// You create six tapped 2/2 black creature tokens.
this.getSpellAbility().addEffect(
new CreateTokenEffect(new ZombieToken(), 6).concatBy("<br>You")
);
this.getSpellAbility().addEffect(new CreateTokenEffect(
new ZombieToken(), 6, true, false
).concatBy("<br>You"));
}
private NecroticHex(final NecroticHex card) {

View file

@ -58,7 +58,7 @@ class RakdosLordOfRiotsCantCastEffect extends ContinuousRuleModifyingEffectImpl
public RakdosLordOfRiotsCantCastEffect() {
super(Duration.WhileOnBattlefield, Outcome.Detriment);
staticText = "You can't cast {this} unless an opponent lost life this turn";
staticText = "You can't cast this spell unless an opponent lost life this turn";
}
public RakdosLordOfRiotsCantCastEffect(final RakdosLordOfRiotsCantCastEffect effect) {

View file

@ -45,7 +45,7 @@ public final class RebbecArchitectOfAscension extends CardImpl {
// Artifacts you control have protection from each converted mana cost among artifacts you control.
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
new ProtectionAbility(filter), Duration.WhileOnBattlefield,
StaticFilters.FILTER_PERMANENT_ARTIFACT
StaticFilters.FILTER_PERMANENT_ARTIFACTS
)));
// Partner

View file

@ -19,7 +19,7 @@ import mage.target.common.TargetCardInLibrary;
*/
public final class RelicSeeker extends CardImpl {
private static final FilterCard filter = new FilterCard("an Equipment card");
private static final FilterCard filter = new FilterCard("Equipment card");
static {
filter.add(CardType.ARTIFACT.getPredicate());

View file

@ -45,7 +45,7 @@ public final class ReyavMasterSmith extends CardImpl {
this.addAbility(new AttacksCreatureYouControlTriggeredAbility(
new GainAbilityTargetEffect(
DoubleStrikeAbility.getInstance(), Duration.EndOfTurn,
"that creature gains double strike until end of turn"
"that creature gains double strike until end of turn."
), false, filter, true
));
}

View file

@ -117,6 +117,6 @@ class ReyhanLastOfTheAbzanTriggeredAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Whenever a creature you control dies or is put into the command zone, if it had one or more +1/+1 counters on it, you may put that may +1/+1 counters on target creature.";
return "Whenever a creature you control dies or is put into the command zone, if it had one or more +1/+1 counters on it, you may put that many +1/+1 counters on target creature.";
}
}

View file

@ -40,7 +40,8 @@ public final class SakashimasProtege extends CardImpl {
this.addAbility(new CascadeAbility());
// You may have Sakashima's Protege enter the battlefield as a copy of any permanent that entered the battlefield this turn.
this.addAbility(new EntersBattlefieldAbility(new CopyPermanentEffect(filter), true));
this.addAbility(new EntersBattlefieldAbility(new CopyPermanentEffect(filter)
.setText("you may have {this} enter the battlefield as a copy of any permanent that entered the battlefield this turn"), true));
}
private SakashimasProtege(final SakashimasProtege card) {

View file

@ -56,7 +56,7 @@ class ScourgeOfFleetsEffect extends OneShotEffect {
public ScourgeOfFleetsEffect() {
super(Outcome.Benefit);
this.staticText = "return each creature your opponents control with toughness X or less, where X is the number of Islands you control";
this.staticText = "return each creature your opponents control with toughness X or less to its owner's hand, where X is the number of Islands you control";
}
public ScourgeOfFleetsEffect(final ScourgeOfFleetsEffect effect) {

View file

@ -38,7 +38,7 @@ public final class SeraphicGreatsword extends CardImpl {
this.addAbility(new SeraphicGreatswordTriggeredAbility());
// Equip {4}
this.addAbility(new EquipAbility(2));
this.addAbility(new EquipAbility(4));
}
private SeraphicGreatsword(final SeraphicGreatsword card) {

View file

@ -6,6 +6,7 @@ import mage.abilities.Mode;
import mage.abilities.effects.common.ReturnToHandTargetEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityAllEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.HexproofAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -28,7 +29,7 @@ public final class SimicCharm extends CardImpl {
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
//permanents you control gain hexproof until end of turn
Mode mode = new Mode();
mode.addEffect(new GainAbilityAllEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, new FilterControlledPermanent()));
mode.addEffect(new GainAbilityControlledEffect(HexproofAbility.getInstance(), Duration.EndOfTurn));
this.getSpellAbility().addMode(mode);
//return target creature to its owner's hand.
Mode mode2 = new Mode();

View file

@ -27,7 +27,7 @@ public final class SkaabGoliath extends CardImpl {
this.toughness = new MageInt(9);
// As an additional cost to cast Skaab Goliath, exile two creature cards from your graveyard.
this.getSpellAbility().addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(2, 2, StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)));
this.getSpellAbility().addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(2, 2, StaticFilters.FILTER_CARD_CREATURES_YOUR_GRAVEYARD)));
this.addAbility(TrampleAbility.getInstance());
}

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.common.TapSourceCost;
@ -15,24 +13,31 @@ import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author Loki
*/
public final class SlayersStronghold extends CardImpl {
public SlayersStronghold(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());
// {R}{W}, {tap}: Target creature gets +2/+0 and gains vigilance and haste until end of turn.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}{W}"));
ability.addEffect(new GainAbilityTargetEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn));
ability.addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn));
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(
2, 0, Duration.EndOfTurn
).setText("target creatures gets +2/+0"), new ManaCostsImpl("{R}{W}"));
ability.addEffect(new GainAbilityTargetEffect(
VigilanceAbility.getInstance(), Duration.EndOfTurn
).setText("and gains vigilance"));
ability.addEffect(new GainAbilityTargetEffect(
HasteAbility.getInstance(), Duration.EndOfTurn
).setText("and haste until end of turn"));
ability.addCost(new TapSourceCost());
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.common.AttachEffect;
@ -12,19 +10,23 @@ import mage.abilities.keyword.ProtectionAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.FilterCard;
import mage.filter.common.FilterCreatureCard;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
* @author nantuko
*/
public final class SpiritMantle extends CardImpl {
public SpiritMantle(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{1}{W}");
this.subtype.add(SubType.AURA);
private static final FilterCard filter = new FilterCreatureCard("creatures");
public SpiritMantle(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}");
this.subtype.add(SubType.AURA);
// Enchant creature
TargetPermanent auraTarget = new TargetCreaturePermanent();
@ -34,8 +36,11 @@ public final class SpiritMantle extends CardImpl {
this.addAbility(ability);
// Enchanted creature gets +1/+1 and has protection from creatures.
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new ProtectionAbility(new FilterCreatureCard("creatures")), AttachmentType.AURA)));
ability = new SimpleStaticAbility(new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield));
ability.addEffect(new GainAbilityAttachedEffect(
new ProtectionAbility(filter), AttachmentType.AURA
).setText("and has protection from creatures"));
this.addAbility(ability);
}
public SpiritMantle(final SpiritMantle card) {

View file

@ -1,7 +1,5 @@
package mage.cards.s;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.dynamicvalue.DynamicValue;
@ -15,20 +13,22 @@ import mage.abilities.keyword.FlashAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.target.TargetPermanent;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class SpontaneousMutation extends CardImpl {
private static final DynamicValue value = new SignInversionDynamicValue(new CardsInControllerGraveyardCount());
public SpontaneousMutation(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{U}");
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{U}");
this.subtype.add(SubType.AURA);
// Flash
@ -42,8 +42,8 @@ public final class SpontaneousMutation extends CardImpl {
this.addAbility(ability);
// Enchanted creature gets -X/-0, where X is the number of cards in your graveyard.
DynamicValue value = new SignInversionDynamicValue(new CardsInControllerGraveyardCount());
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(value, StaticValue.get(-0))));
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(value, StaticValue.get(0))
.setText("enchanted creature gets -X/-0, where X is the number of cards in your graveyard")));
}
public SpontaneousMutation(final SpontaneousMutation card) {

View file

@ -50,6 +50,7 @@ public final class SweetGumRecluse extends CardImpl {
// When Sweet-Gum Recluse enters the battlefield, put three +1/+1 counters on each of any number of target creatures that entered the battlefield this turn.
Ability ability = new EntersBattlefieldTriggeredAbility(
new AddCountersTargetEffect(CounterType.P1P1.createInstance(3))
.setText("put three +1/+1 counters on each of any number of target creatures that entered the battlefield this turn")
);
ability.addTarget(new TargetPermanent(0, Integer.MAX_VALUE, filter, false));
this.addAbility(ability);

View file

@ -35,7 +35,7 @@ import java.util.stream.Collectors;
public final class SzatsWill extends CardImpl {
private static final FilterPermanent filter
= new FilterControlledCreaturePermanent("a creature they control with the greatest power");
= new FilterControlledCreaturePermanent("creature they control with the greatest power");
static {
filter.add(SzatsWillPredicate.instance);

View file

@ -1,29 +1,22 @@
package mage.cards.t;
import java.util.UUID;
import mage.MageInt;
import mage.MageObject;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.keyword.ScryEffect;
import mage.abilities.keyword.PartnerAbility;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Outcome;
import mage.constants.SuperType;
import mage.constants.Zone;
import mage.constants.*;
import mage.game.Game;
import mage.players.Player;
import java.util.UUID;
/**
*
* @author LevelX2
*/
public final class ThrasiosTritonHero extends CardImpl {
@ -38,14 +31,13 @@ public final class ThrasiosTritonHero extends CardImpl {
this.toughness = new MageInt(3);
// {4}: Scry 1, then reveal the top card of your library. If it's a land card, put it onto the battlefield tapped. Otherwise, draw a card.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(4));
ability.addEffect(new ThrasiosTritonHeroEffect());
this.addAbility(ability);
this.addAbility(new SimpleActivatedAbility(new ThrasiosTritonHeroEffect(), new GenericManaCost(4)));
// Partner
this.addAbility(PartnerAbility.getInstance());
}
public ThrasiosTritonHero(final ThrasiosTritonHero card) {
private ThrasiosTritonHero(final ThrasiosTritonHero card) {
super(card);
}
@ -59,7 +51,8 @@ class ThrasiosTritonHeroEffect extends OneShotEffect {
public ThrasiosTritonHeroEffect() {
super(Outcome.DrawCard);
this.staticText = "then reveal the top card of your library. If it's a land card, put it onto the battlefield tapped. Otherwise, draw a card";
this.staticText = "scry 1, then reveal the top card of your library. " +
"If it's a land card, put it onto the battlefield tapped. Otherwise, draw a card";
}
public ThrasiosTritonHeroEffect(final ThrasiosTritonHeroEffect effect) {
@ -74,24 +67,24 @@ class ThrasiosTritonHeroEffect extends OneShotEffect {
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
MageObject sourceObject = game.getObject(source.getSourceId());
if (sourceObject == null || controller == null) {
if (controller == null) {
return false;
}
if (controller.getLibrary().hasCards()) {
CardsImpl cards = new CardsImpl();
Card card = controller.getLibrary().getFromTop(game);
if (card == null) {
return false;
}
cards.add(card);
controller.revealCards(sourceObject.getName(), cards, game);
if (card.isLand()) {
controller.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null);
} else {
controller.drawCards(1, source.getSourceId(), game);
}
controller.scry(1, source, game);
if (!controller.getLibrary().hasCards()) {
return true;
}
CardsImpl cards = new CardsImpl();
Card card = controller.getLibrary().getFromTop(game);
if (card == null) {
return false;
}
cards.add(card);
controller.revealCards(source, cards, game);
if (card.isLand()) {
return controller.moveCards(card, Zone.BATTLEFIELD, source, game, true, false, false, null);
}
controller.drawCards(1, source.getSourceId(), game);
return true;
}
}

View file

@ -1,7 +1,5 @@
package mage.cards.t;
import java.util.UUID;
import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
@ -10,24 +8,24 @@ import mage.constants.SubType;
import mage.filter.common.FilterLandCard;
import mage.target.common.TargetCardInLibrary;
import java.util.UUID;
/**
*
* @author Plopman
*/
public final class ThreeVisits extends CardImpl {
private static final FilterLandCard filter = new FilterLandCard("Forest");
private static final FilterLandCard filter = new FilterLandCard("Forest card");
static {
filter.add(SubType.FOREST.getPredicate());
}
public ThreeVisits(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{1}{G}");
public ThreeVisits(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{G}");
// Search your library for a Forest card and put that card onto the battlefield. Then shuffle your library.
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter)));
}
public ThreeVisits(final ThreeVisits card) {

View file

@ -16,6 +16,7 @@ import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.common.TargetControlledPermanent;
import mage.target.common.TargetOpponentsCreaturePermanent;
import java.util.UUID;
@ -42,7 +43,11 @@ public final class TrenchBehemoth extends CardImpl {
this.addAbility(ability);
// Whenever a land enters the battlefield under your control, target creature an opponent controls attacks during its controller's next combat phase if able.
ability = new EntersBattlefieldControlledTriggeredAbility(new TrenchBehemothEffect(), StaticFilters.FILTER_LAND_A);
ability = new EntersBattlefieldControlledTriggeredAbility(
new TrenchBehemothEffect(), StaticFilters.FILTER_LAND_A
);
ability.addTarget(new TargetOpponentsCreaturePermanent());
this.addAbility(ability);
}
private TrenchBehemoth(final TrenchBehemoth card) {

View file

@ -97,7 +97,7 @@ class VialSmasherTheFierceTriggeredAbility extends SpellCastControllerTriggeredA
@Override
public String getRule() {
return "Whenever you cast your first spell each turn, choose an opponent at random. "
+ "{this} deals damage equal to that spell's converted mana cost to that player or a planeswalker that player controls";
+ "{this} deals damage equal to that spell's converted mana cost to that player or a planeswalker that player controls.";
}
}

View file

@ -33,7 +33,7 @@ public final class WhelmingWave extends CardImpl {
// Return all creatures to their owners' hands except for Krakens, Leviathans, Octopuses and Serpents.
Effect effect = new ReturnToHandFromBattlefieldAllEffect(filter);
effect.setText("Return all creatures to their owners' hands except for Krakens, Leviathans, Octopuses and Serpents");
effect.setText("Return all creatures to their owners' hands except for Krakens, Leviathans, Octopuses, and Serpents");
this.getSpellAbility().addEffect(effect);
}

View file

@ -1,4 +1,3 @@
package mage.cards.w;
import mage.MageInt;
@ -12,8 +11,8 @@ import mage.abilities.effects.common.counter.AddCountersSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.ColoredManaSymbol;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.filter.StaticFilters;
@ -27,7 +26,7 @@ import java.util.UUID;
public final class WickerboughElder extends CardImpl {
public WickerboughElder(UUID ownerId, CardSetInfo setInfo) {
super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{G}");
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}");
this.subtype.add(SubType.TREEFOLK);
this.subtype.add(SubType.SHAMAN);
@ -35,7 +34,8 @@ public final class WickerboughElder extends CardImpl {
this.toughness = new MageInt(4);
// Wickerbough Elder enters the battlefield with a -1/-1 counter on it.
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(1))));
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.M1M1.createInstance(1)), "with a -1/-1 counter on it"));
// {G}, Remove a -1/-1 counter from Wickerbough Elder: Destroy target artifact or enchantment.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new ColoredManaCost(ColoredManaSymbol.G));
ability.addCost(new RemoveCountersSourceCost(CounterType.M1M1.createInstance(1)));

View file

@ -1,7 +1,5 @@
package mage.cards.w;
import java.util.UUID;
import mage.MageInt;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.costs.mana.ManaCostsImpl;
@ -11,27 +9,31 @@ import mage.abilities.keyword.TrampleAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.constants.SubType;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
*
* @author North
*/
public final class WildheartInvoker extends CardImpl {
public WildheartInvoker(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.ELF);
this.subtype.add(SubType.SHAMAN);
this.power = new MageInt(4);
this.toughness = new MageInt(3);
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(5, 5, Duration.EndOfTurn), new ManaCostsImpl("{8}"));
ability.addEffect(new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn));
SimpleActivatedAbility ability = new SimpleActivatedAbility(new BoostTargetEffect(
5, 5, Duration.EndOfTurn
).setText("target creature gets +5/+5"), new ManaCostsImpl("{8}"));
ability.addEffect(new GainAbilityTargetEffect(
TrampleAbility.getInstance(), Duration.EndOfTurn
).setText("and gains trample until end of turn"));
ability.addTarget(new TargetCreaturePermanent());
this.addAbility(ability);
}

View file

@ -34,7 +34,7 @@ public final class YavimayaElder extends CardImpl {
this.toughness = new MageInt(1);
// When Yavimaya Elder dies, you may search your library for up to two basic land cards, reveal them, and put them into your hand. If you do, shuffle your library.
this.addAbility(new DiesSourceTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LAND), true), true));
this.addAbility(new DiesSourceTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(0, 2, StaticFilters.FILTER_CARD_BASIC_LANDS), true), true));
// {2}, Sacrifice Yavimaya Elder: Draw a card.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new GenericManaCost(2));
ability.addCost(new SacrificeSourceCost());

View file

@ -5,19 +5,19 @@ import mage.abilities.TriggeredAbilityImpl;
import mage.abilities.effects.Effect;
import mage.constants.Zone;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.game.events.GameEvent;
/**
*
* @author TheElk801
*/
public class SacrificePermanentTriggeredAbility extends TriggeredAbilityImpl {
private FilterPermanent filter;
private final FilterPermanent filter;
public SacrificePermanentTriggeredAbility(Effect effect) {
this(effect, new FilterPermanent());
this(effect, StaticFilters.FILTER_PERMANENT_A);
}
public SacrificePermanentTriggeredAbility(Effect effect, FilterPermanent filter) {

View file

@ -14,7 +14,7 @@ public class RevealTopLandToBattlefieldElseHandEffect extends OneShotEffect {
public RevealTopLandToBattlefieldElseHandEffect() {
super(Outcome.DrawCard);
this.staticText = "Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand";
this.staticText = "reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put that card into your hand";
}
public RevealTopLandToBattlefieldElseHandEffect(final RevealTopLandToBattlefieldElseHandEffect effect) {

View file

@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package mage.abilities.effects.common.continuous;
import mage.abilities.Ability;
@ -14,15 +9,14 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
/**
*
* @author LevelX2
*/
public class BoostAllOfChosenSubtypeEffect extends BoostAllEffect {
SubType subtype = null;
private SubType subtype = null;
public BoostAllOfChosenSubtypeEffect(int power, int toughness, Duration duration, boolean excludeSource) {
super(power, toughness, duration, new FilterCreaturePermanent("All creatures of the chosen type"), excludeSource);
super(power, toughness, duration, new FilterCreaturePermanent("creatures of the chosen type"), excludeSource);
}
public BoostAllOfChosenSubtypeEffect(int power, int toughness, Duration duration, FilterCreaturePermanent filter, boolean excludeSource) {
@ -56,5 +50,4 @@ public class BoostAllOfChosenSubtypeEffect extends BoostAllEffect {
discard();
}
}
}

View file

@ -60,7 +60,7 @@ public class CascadeAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
StringBuilder sb = new StringBuilder("Cascade");
StringBuilder sb = new StringBuilder("cascade");
if (withReminder) {
sb.append(REMINDERTEXT);
}

View file

@ -210,6 +210,12 @@ public final class StaticFilters {
FILTER_PERMANENT.setLockedFilter(true);
}
public static final FilterPermanent FILTER_PERMANENT_A = new FilterPermanent("a permanent");
static {
FILTER_PERMANENT_A.setLockedFilter(true);
}
public static final FilterPermanent FILTER_PERMANENTS = new FilterPermanent("permanents");
static {

View file

@ -18,7 +18,7 @@ import mage.constants.Zone;
public final class DragonEggDragonToken extends TokenImpl {
public DragonEggDragonToken() {
super("Dragon", "2/2 red Dragon creature token with flying that has \"{R}: This creature gets +1/+0 until end of turn");
super("Dragon", "2/2 red Dragon creature token with flying and \"{R}: This creature gets +1/+0 until end of turn");
this.setOriginalExpansionSetCode("M14");
cardType.add(CardType.CREATURE);
color.setRed(true);

View file

@ -12,7 +12,7 @@ import mage.MageInt;
public final class ProsshKoboldToken extends TokenImpl {
public ProsshKoboldToken() {
super("Kobolds of Kher Keep", "0/1 red Kobold creature tokens");
super("Kobolds of Kher Keep", "0/1 red Kobold creature tokens named Kobolds of Kher Keep");
cardType.add(CardType.CREATURE);
color.setRed(true);
subtype.add(SubType.KOBOLD);