mirror of
https://github.com/correl/mage.git
synced 2024-11-28 19:19:55 +00:00
[C21] various text fixes
This commit is contained in:
parent
1542608c7d
commit
731e948841
72 changed files with 98 additions and 106 deletions
|
@ -77,7 +77,7 @@ class AlhammarretsArchiveReplacementEffect extends ReplacementEffectImpl {
|
|||
|
||||
AlhammarretsArchiveReplacementEffect() {
|
||||
super(Duration.WhileOnBattlefield, Outcome.Neutral);
|
||||
staticText = "If you draw a card except the first one you draw in each of your draw steps, draw two cards instead";
|
||||
staticText = "If you would draw a card except the first one you draw in each of your draw steps, draw two cards instead";
|
||||
}
|
||||
|
||||
private AlhammarretsArchiveReplacementEffect(final AlhammarretsArchiveReplacementEffect effect) {
|
||||
|
|
|
@ -18,8 +18,8 @@ public final class AncientCraving extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}");
|
||||
|
||||
// You draw three cards and you lose 3 life.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3));
|
||||
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3).setText("you draw three cards"));
|
||||
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3).concatBy("and"));
|
||||
}
|
||||
|
||||
private AncientCraving(final AncientCraving card) {
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class ApexOfPower extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new ApexOfPowerSpellEffect());
|
||||
|
||||
// If this spell was cast from your hand, add ten mana of any one color.
|
||||
this.getSpellAbility().addEffect(new ApexOfPowerManaEffect());
|
||||
this.getSpellAbility().addEffect(new ApexOfPowerManaEffect().concatBy("<br>"));
|
||||
}
|
||||
|
||||
private ApexOfPower(final ApexOfPower card) {
|
||||
|
@ -50,7 +50,8 @@ class ApexOfPowerSpellEffect extends OneShotEffect {
|
|||
|
||||
public ApexOfPowerSpellEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "exile the top seven cards of your library. Until end of turn, you may cast nonland cards exiled this way";
|
||||
this.staticText = "exile the top seven cards of your library. " +
|
||||
"Until end of turn, you may cast spells from among them";
|
||||
}
|
||||
|
||||
public ApexOfPowerSpellEffect(final ApexOfPowerSpellEffect effect) {
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class AssaultSuit extends CardImpl {
|
|||
effect.setText(", has haste");
|
||||
ability.addEffect(effect);
|
||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.EQUIPMENT);
|
||||
effect.setText(", can't attack you or a planeswalker you control");
|
||||
effect.setText(", can't attack you or planeswalkers you control");
|
||||
ability.addEffect(effect);
|
||||
effect = new AssaultSuitCantBeSacrificed();
|
||||
effect.setText(", and can't be sacrificed");
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class BairdStewardOfArgive extends CardImpl {
|
|||
|
||||
// Creatures can't attack you or a planeswalker you control unless their controller pays {1} for each of those creatures.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackYouUnlessPayManaAllEffect(new ManaCostsImpl("{1}"), true)
|
||||
.setText("Creatures can't attack you or a planeswalker you control unless their controller pays {1} for each of those creatures")));
|
||||
.setText("Creatures can't attack you or planeswalkers you control unless their controller pays {1} for each of those creatures")));
|
||||
}
|
||||
|
||||
private BairdStewardOfArgive(final BairdStewardOfArgive card) {
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class BlightMound extends CardImpl {
|
|||
private static final FilterCreaturePermanent filter
|
||||
= new FilterCreaturePermanent(SubType.PEST, "attacking Pests");
|
||||
private static final FilterPermanent filter2
|
||||
= new FilterControlledCreaturePermanent("nontoken creature you control");
|
||||
= new FilterControlledCreaturePermanent("a nontoken creature you control");
|
||||
|
||||
static {
|
||||
filter.add(AttackingPredicate.instance);
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class BoldDefense extends CardImpl {
|
|||
// Creatures you control get +1/+1 until end of turn. If Bold Defense was kicked, instead creatures you control get +2/+2 and gain first strike until end of turn.
|
||||
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new BoostControlledEffect(2, 2, Duration.EndOfTurn),
|
||||
new BoostTargetEffect(1, 1, Duration.EndOfTurn), new LockedInCondition(KickedCondition.instance),
|
||||
"Creatures you control get +1/+1 until end of turn. if this spell was kicked, instead creatures you control get +2/+2"));
|
||||
"Creatures you control get +1/+1 until end of turn. If this spell was kicked, instead creatures you control get +2/+2"));
|
||||
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false),
|
||||
null, new LockedInCondition(KickedCondition.instance),
|
||||
"and gain first strike until end of turn"));
|
||||
|
|
|
@ -1,16 +1,11 @@
|
|||
package mage.cards.b;
|
||||
|
||||
import java.util.UUID;
|
||||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.Card;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.cards.Cards;
|
||||
import mage.cards.CardsImpl;
|
||||
import mage.cards.*;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.SubType;
|
||||
|
@ -26,8 +21,9 @@ import mage.target.TargetCard;
|
|||
import mage.target.TargetPlayer;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author TheElk801
|
||||
*/
|
||||
public final class BoreasCharger extends CardImpl {
|
||||
|
@ -74,11 +70,10 @@ class BoreasChargerEffect extends OneShotEffect {
|
|||
|
||||
public BoreasChargerEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "choose an opponent who controls more lands than you. "
|
||||
+ "Search your library for a number of Plains cards "
|
||||
+ "equal to the difference and reveal them. "
|
||||
+ "Put one of them onto the battlefield tapped "
|
||||
+ "and the rest into your hand. Then shuffle";
|
||||
this.staticText = "choose an opponent who controls more lands than you. " +
|
||||
"Search your library for a number of Plains cards equal to the difference, " +
|
||||
"reveal those cards, put one of them onto the battlefield tapped " +
|
||||
"and the rest into your hand, then shuffle";
|
||||
}
|
||||
|
||||
public BoreasChargerEffect(final BoreasChargerEffect effect) {
|
||||
|
|
|
@ -22,7 +22,7 @@ public final class BrasssBounty extends CardImpl {
|
|||
// For each land you control, create a colorless Treasure artifact token with "{T}, Sacrifice this artifact: Add one mana of any color."
|
||||
this.getSpellAbility().addEffect(
|
||||
new CreateTokenEffect(new TreasureToken(), new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND))
|
||||
.setText("For each land you control, create a colorless Treasure artifact token with \"{T}, Sacrifice this artifact: Add one mana of any color.\""));
|
||||
.setText("For each land you control, create a Treasure token"));
|
||||
}
|
||||
|
||||
private BrasssBounty(final BrasssBounty card) {
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class BreathOfDarigaaz extends CardImpl {
|
|||
// Breath of Darigaaz deals 1 damage to each creature without flying and each player. If Breath of Darigaaz was kicked, it deals 4 damage to each creature without flying and each player instead.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageEverythingEffect(4, filter),
|
||||
new DamageEverythingEffect(1, filter), KickedCondition.instance,
|
||||
"{this} deals 1 damage to each creature without flying and each player. if this spell was kicked, it deals 4 damage to each creature without flying and each player instead."));
|
||||
"{this} deals 1 damage to each creature without flying and each player. If this spell was kicked, it deals 4 damage to each creature without flying and each player instead."));
|
||||
}
|
||||
|
||||
private BreathOfDarigaaz(final BreathOfDarigaaz card) {
|
||||
|
|
|
@ -26,7 +26,7 @@ public final class BurstLightning extends CardImpl {
|
|||
// Burst Lightning deals 2 damage to any target. If Burst Lightning was kicked, it deals 4 damage to that creature or player instead.
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to any target. if this spell was kicked, it deals 4 damage to that permanent or player instead"));
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to any target. If this spell was kicked, it deals 4 damage to that permanent or player instead"));
|
||||
}
|
||||
|
||||
private BurstLightning(final BurstLightning card) {
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class CanopySurge extends CardImpl {
|
|||
// Canopy Surge deals 1 damage to each creature with flying and each player. If Canopy Surge was kicked, it deals 4 damage to each creature with flying and each player instead.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageEverythingEffect(4, filter),
|
||||
new DamageEverythingEffect(1, filter), KickedCondition.instance,
|
||||
"{this} deals 1 damage to each creature with flying and each player. if this spell was kicked, it deals 4 damage to each creature with flying and each player instead."));
|
||||
"{this} deals 1 damage to each creature with flying and each player. If this spell was kicked, it deals 4 damage to each creature with flying and each player instead."));
|
||||
}
|
||||
|
||||
private CanopySurge(final CanopySurge card) {
|
||||
|
|
|
@ -54,7 +54,7 @@ class CombustibleGearhulkEffect extends OneShotEffect {
|
|||
|
||||
public CombustibleGearhulkEffect() {
|
||||
super(Outcome.AIDontUseIt);
|
||||
staticText = "target opponent may have you draw three cards. If the player doesn't, mill three cards, then {this} deals damage to that player equal to the total mana value of those cards";
|
||||
staticText = "target opponent may have you draw three cards. If the player doesn't, you mill three cards, then {this} deals damage to that player equal to the total mana value of those cards";
|
||||
}
|
||||
|
||||
public CombustibleGearhulkEffect(final CombustibleGearhulkEffect effect) {
|
||||
|
|
|
@ -24,7 +24,7 @@ public final class ConquerorsPledge extends CardImpl {
|
|||
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenEffect(new KorSoldierToken(), 12),
|
||||
new CreateTokenEffect(new KorSoldierToken(), 6), KickedCondition.instance,
|
||||
"Create six 1/1 white Kor Soldier creature tokens. if this spell was kicked, create twelve of those tokens instead"));
|
||||
"Create six 1/1 white Kor Soldier creature tokens. If this spell was kicked, create twelve of those tokens instead"));
|
||||
}
|
||||
|
||||
private ConquerorsPledge(final ConquerorsPledge card) {
|
||||
|
|
|
@ -70,6 +70,6 @@ class DesolationTwinOnCastAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When you cast {this}, " + super.getRule();
|
||||
return "When you cast this spell, " + super.getRule();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ class DiluvianPrimordialEffect extends OneShotEffect {
|
|||
super(Outcome.PlayForFree);
|
||||
this.staticText = "for each opponent, you may cast up to one target "
|
||||
+ "instant or sorcery card from that player's graveyard without "
|
||||
+ "paying its mana cost. If a card cast this way would be put "
|
||||
+ "paying its mana cost. If a spell cast this way would be put "
|
||||
+ "into a graveyard this turn, exile it instead";
|
||||
}
|
||||
|
||||
|
|
|
@ -25,9 +25,11 @@ public final class Dispatch extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new TapTargetEffect());
|
||||
|
||||
// Metalcraft — If you control three or more artifacts, exile that creature.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new ExileTargetEffect(), MetalcraftCondition.instance, "<i>Metalcraft</i> — If you control three or more artifacts, exile that creature"));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new ExileTargetEffect(), MetalcraftCondition.instance,
|
||||
"<br><i>Metalcraft</i> — If you control three or more artifacts, exile that creature"
|
||||
));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().setAbilityWord(AbilityWord.METALCRAFT);
|
||||
this.getSpellAbility().addHint(MetalcraftHint.instance);
|
||||
}
|
||||
|
||||
|
|
|
@ -81,6 +81,6 @@ class DuelistsHeritageTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever one or more creatures attack, " + super.getRule();
|
||||
return "Whenever one or more creatures attack, you may have target attacking creature gain double strike until end of turn.";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class DwarvenLandslide extends CardImpl {
|
|||
this.addAbility(new KickerAbility(kickerCosts));
|
||||
|
||||
// Destroy target land. If Dwarven Landslide was kicked, destroy another target land.
|
||||
getSpellAbility().addEffect(new DestroyTargetEffect("Destroy target land. if this spell was kicked, destroy another target land"));
|
||||
getSpellAbility().addEffect(new DestroyTargetEffect("Destroy target land. If this spell was kicked, destroy another target land"));
|
||||
getSpellAbility().addTarget(new TargetLandPermanent());
|
||||
getSpellAbility().setTargetAdjuster(DwarvenLandslideAdjuster.instance);
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ class ElixerOfImmortalityEffect extends OneShotEffect {
|
|||
|
||||
public ElixerOfImmortalityEffect() {
|
||||
super(Outcome.GainLife);
|
||||
staticText = "You gain 5 life. Shuffle {this} and your graveyard into your library";
|
||||
staticText = "You gain 5 life. Shuffle {this} and your graveyard into their owner's library";
|
||||
}
|
||||
|
||||
public ElixerOfImmortalityEffect(final ElixerOfImmortalityEffect effect) {
|
||||
|
|
|
@ -79,7 +79,7 @@ class ErraticCyclopsTriggeredAbility extends TriggeredAbilityImpl {
|
|||
public String getRule() {
|
||||
return "Whenever you cast an instant or sorcery spell, "
|
||||
+ "{this} gets +X/+0 until end of turn, "
|
||||
+ "where X is that spell's mana value";
|
||||
+ "where X is that spell's mana value.";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -54,7 +54,7 @@ class EtaliPrimalStormEffect extends OneShotEffect {
|
|||
public EtaliPrimalStormEffect() {
|
||||
super(Outcome.PlayForFree);
|
||||
this.staticText = "exile the top card of each player's library, then you may cast "
|
||||
+ "any number of nonland cards exiled this way without paying their mana costs";
|
||||
+ "any number of spells from among those cards without paying their mana costs";
|
||||
}
|
||||
|
||||
public EtaliPrimalStormEffect(final EtaliPrimalStormEffect effect) {
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class FallingTimber extends CardImpl {
|
|||
// Prevent all combat damage target creature would deal this turn. If Falling Timber was kicked,
|
||||
// prevent all combat damage another target creature would deal this turn.
|
||||
Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true);
|
||||
effect.setText("Prevent all combat damage target creature would deal this turn. if this spell was kicked, " +
|
||||
effect.setText("Prevent all combat damage target creature would deal this turn. If this spell was kicked, " +
|
||||
"prevent all combat damage another target creature would deal this turn.");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().setTargetAdjuster(FallingTimberAdjuster.instance);
|
||||
|
|
|
@ -32,7 +32,7 @@ import java.util.UUID;
|
|||
public final class FelisaFangOfSilverquill extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter
|
||||
= new FilterControlledCreaturePermanent("nontoken creature you control");
|
||||
= new FilterControlledCreaturePermanent("a nontoken creature you control");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(TokenPredicate.instance));
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class ForbiddingSpirit extends CardImpl {
|
|||
new ManaCostsImpl("{2}"), true
|
||||
);
|
||||
effect.setDuration(Duration.UntilYourNextTurn);
|
||||
effect.setText("until your next turn, creatures can't attack you or a planeswalker you control " +
|
||||
effect.setText("until your next turn, creatures can't attack you or planeswalkers you control " +
|
||||
"unless their controller pays {2} for each of those creatures.");
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(effect));
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ class IllusionistsGambitRemoveFromCombatEffect extends OneShotEffect {
|
|||
|
||||
public IllusionistsGambitRemoveFromCombatEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "Remove all attacking creatures from combat and untap them. After this phase, there is an additional combat phase. Each of those creatures attacks that combat if able. They can't attack you or a planeswalker you control that combat";
|
||||
this.staticText = "Remove all attacking creatures from combat and untap them. After this phase, there is an additional combat phase. Each of those creatures attacks that combat if able. They can't attack you or planeswalkers you control that combat";
|
||||
}
|
||||
|
||||
public IllusionistsGambitRemoveFromCombatEffect(final IllusionistsGambitRemoveFromCombatEffect effect) {
|
||||
|
@ -142,7 +142,7 @@ class IllusionistsGambitRestrictionEffect extends RestrictionEffect {
|
|||
super(Duration.Custom, Outcome.Benefit);
|
||||
this.attackers = attackers;
|
||||
this.phase = phase;
|
||||
staticText = "They can't attack you or a planeswalker you control that combat";
|
||||
staticText = "They can't attack you or planeswalkers you control that combat";
|
||||
}
|
||||
|
||||
public IllusionistsGambitRestrictionEffect(final IllusionistsGambitRestrictionEffect effect) {
|
||||
|
|
|
@ -46,7 +46,7 @@ class IncarnationTechniqueEffect extends OneShotEffect {
|
|||
|
||||
IncarnationTechniqueEffect() {
|
||||
super(Outcome.Benefit);
|
||||
staticText = "mill four cards, then return a creature card from your graveyard to the battlefield";
|
||||
staticText = "mill five cards, then return a creature card from your graveyard to the battlefield";
|
||||
}
|
||||
|
||||
private IncarnationTechniqueEffect(final IncarnationTechniqueEffect effect) {
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class InfernalOffering extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new InfernalOfferingSacrificeEffect());
|
||||
|
||||
// Choose an opponent. Return a creature card from your graveyard to the battlefield, then that player returns a creature card from their graveyard to the battlefield.
|
||||
this.getSpellAbility().addEffect(new InfernalOfferingReturnEffect());
|
||||
this.getSpellAbility().addEffect(new InfernalOfferingReturnEffect().concatBy("<br>"));
|
||||
}
|
||||
|
||||
private InfernalOffering(final InfernalOffering card) {
|
||||
|
|
|
@ -22,11 +22,11 @@ public final class InspiringRefrain extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}");
|
||||
|
||||
// Draw two cards. Exile Inspiring Refrain with three time counters on it.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2));
|
||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
this.getSpellAbility().addEffect(new AddCountersSourceEffect(
|
||||
CounterType.TIME.createInstance(), StaticValue.get(3), false, true
|
||||
).setText("with 3 time counters on it"));
|
||||
).setText("with three time counters on it"));
|
||||
|
||||
// Suspend 3—{2}{U}
|
||||
this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{2}{U}"), this));
|
||||
|
|
|
@ -19,7 +19,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class JorKadeenThePrevailer extends CardImpl {
|
||||
|
||||
private static final String effectText = "<i>Metalcraft</i> — Creatures you control get +3/+0 as long as you control three or more artifacts.";
|
||||
private static final String effectText = "Creatures you control get +3/+0 as long as you control three or more artifacts.";
|
||||
|
||||
public JorKadeenThePrevailer(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{W}");
|
||||
|
|
|
@ -51,7 +51,7 @@ public final class KozilekTheGreatDistortion extends CardImpl {
|
|||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||
new CastSourceTriggeredAbility(new KozilekDrawEffect(), false),
|
||||
new CardsInHandCondition(ComparisonType.FEWER_THAN, 7),
|
||||
"When you cast {this}, if you have fewer than seven cards in hand, draw cards equal to the difference."));
|
||||
"When you cast this spell, if you have fewer than seven cards in hand, draw cards equal to the difference."));
|
||||
// Menace
|
||||
this.addAbility(new MenaceAbility());
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class MageRingNetwork extends CardImpl {
|
|||
"Add {C} for each storage counter removed this way",
|
||||
true, new CountersSourceCount(CounterType.STORAGE));
|
||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||
"Remove X storage counters from {this}"));
|
||||
"Remove any number of storage counters from {this}"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ public final class MaliciousAffliction extends CardImpl {
|
|||
// <i>Morbid</i> — When you cast Malicious Affliction, if a creature died this turn, you may copy Malicious Affliction and may choose a new target for the copy.
|
||||
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
||||
new CastSourceTriggeredAbility(new CopySourceSpellEffect(), true),
|
||||
MorbidCondition.instance, "<i>Morbid</i> — When you cast {this}, " +
|
||||
MorbidCondition.instance, "<i>Morbid</i> — When you cast this spell, " +
|
||||
"if a creature died this turn, you may copy {this} and may choose a new target for the copy"
|
||||
);
|
||||
ability.setRuleAtTheTop(true);
|
||||
|
|
|
@ -24,7 +24,7 @@ import mage.target.TargetPlayer;
|
|||
*/
|
||||
public final class MarshCasualties extends CardImpl {
|
||||
|
||||
private static final String ruleText = "Creatures target player controls get -1/-1 until end of turn. if this spell was kicked, those creatures get -2/-2 until end of turn instead";
|
||||
private static final String ruleText = "Creatures target player controls get -1/-1 until end of turn. If this spell was kicked, those creatures get -2/-2 until end of turn instead";
|
||||
|
||||
public MarshCasualties(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}{B}");
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class NissasExpedition extends CardImpl {
|
|||
// Convoke
|
||||
this.addAbility(new ConvokeAbility());
|
||||
// Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LAND), true, true));
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0,2, StaticFilters.FILTER_CARD_BASIC_LANDS), true, true));
|
||||
}
|
||||
|
||||
private NissasExpedition(final NissasExpedition card) {
|
||||
|
|
|
@ -21,7 +21,7 @@ public final class NissasRenewal extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{G}");
|
||||
|
||||
// Search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library. You gain 7 life.
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LAND), true));
|
||||
this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 3, StaticFilters.FILTER_CARD_BASIC_LANDS), true));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(7));
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ class OrzhovAdvokistEffect extends OneShotEffect {
|
|||
public OrzhovAdvokistEffect() {
|
||||
super(Outcome.Benefit);
|
||||
this.staticText = "each player may put two +1/+1 counters on a creature they control. "
|
||||
+ "If a player does, creatures that player controls can't attack you or a planeswalker you control until your next turn";
|
||||
+ "If a player does, creatures that player controls can't attack you or planeswalkers you control until your next turn";
|
||||
}
|
||||
|
||||
public OrzhovAdvokistEffect(final OrzhovAdvokistEffect effect) {
|
||||
|
|
|
@ -31,6 +31,7 @@ import mage.game.Game;
|
|||
import mage.players.Player;
|
||||
import mage.target.Target;
|
||||
import mage.target.common.TargetCardInYourGraveyard;
|
||||
import mage.target.common.TargetControlledCreaturePermanent;
|
||||
import mage.target.common.TargetControlledPermanent;
|
||||
import mage.target.common.TargetCreaturePermanent;
|
||||
import mage.target.targetadjustment.TargetAdjuster;
|
||||
|
@ -57,7 +58,7 @@ public final class OsgirTheReconstructor extends CardImpl {
|
|||
|
||||
// {1}, Sacrifice an artifact: Target creature you control gets +2/+0 until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl<>("{1}"));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
ability.addTarget(new TargetControlledCreaturePermanent());
|
||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN)));
|
||||
this.addAbility(ability);
|
||||
|
||||
|
@ -66,7 +67,7 @@ public final class OsgirTheReconstructor extends CardImpl {
|
|||
new OsgirTheReconstructorCreateArtifactTokensEffect(),
|
||||
new ManaCostsImpl("{X}"));
|
||||
copyAbility.addCost(new TapSourceCost());
|
||||
copyAbility.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(), "Exile an artifact with mana value X from your graveyard"));
|
||||
copyAbility.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(), "Exile an artifact card with mana value X from your graveyard"));
|
||||
|
||||
copyAbility.setCostAdjuster(OsgirTheReconstructorCostAdjuster.instance);
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class Peregrination extends CardImpl {
|
|||
// Seach your library for up to two basic land cards, reveal those cards, and put one onto the battlefield tapped and the other into your hand. Shuffle your library, then scry 1.
|
||||
this.getSpellAbility().addEffect(new PeregrinationEffect());
|
||||
Effect effect = new ScryEffect(1);
|
||||
effect.setText("then scry 1 <i>(Look at the top card of your library. You may put that card on the bottom of your library.)</i>");
|
||||
effect.concatBy(", then");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ class PeregrinationEffect extends OneShotEffect {
|
|||
|
||||
public PeregrinationEffect() {
|
||||
super(Outcome.PutLandInPlay);
|
||||
staticText = "Search your library for up to two basic land cards, reveal those cards, and put one onto the battlefield tapped and the other into your hand. Shuffle your library";
|
||||
staticText = "Search your library for up to two basic land cards, reveal those cards, and put one onto the battlefield tapped and the other into your hand. Shuffle";
|
||||
}
|
||||
|
||||
public PeregrinationEffect(final PeregrinationEffect effect) {
|
||||
|
|
|
@ -18,7 +18,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class PerplexingTest extends CardImpl {
|
||||
|
||||
private static final FilterPermanent filter = new FilterCreaturePermanent("nontoken creature");
|
||||
private static final FilterPermanent filter = new FilterCreaturePermanent("nontoken creatures");
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(TokenPredicate.instance));
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
package mage.cards.p;
|
||||
|
||||
import mage.MageInt;
|
||||
|
@ -10,38 +8,30 @@ import mage.cards.CardImpl;
|
|||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
import mage.constants.SubType;
|
||||
import mage.constants.SuperType;
|
||||
import mage.filter.FilterCard;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.target.common.TargetCardInLibrary;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Loki
|
||||
*/
|
||||
public final class PilgrimsEye extends CardImpl {
|
||||
private static final FilterCard filter = new FilterCard("basic land card");
|
||||
|
||||
static {
|
||||
filter.add(SuperType.BASIC.getPredicate());
|
||||
filter.add(CardType.LAND.getPredicate());
|
||||
}
|
||||
|
||||
public PilgrimsEye (UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}");
|
||||
public PilgrimsEye(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
|
||||
this.subtype.add(SubType.THOPTER);
|
||||
|
||||
this.power = new MageInt(1);
|
||||
this.toughness = new MageInt(1);
|
||||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// When Pilgrim's Eye enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true, true), true));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new SearchLibraryPutInHandEffect(new TargetCardInLibrary(StaticFilters.FILTER_CARD_BASIC_LAND), true), true));
|
||||
}
|
||||
|
||||
public PilgrimsEye (final PilgrimsEye card) {
|
||||
public PilgrimsEye(final PilgrimsEye card) {
|
||||
super(card);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent;
|
|||
*/
|
||||
public final class PlaxcasterFrogling extends CardImpl {
|
||||
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("a creature with a +1/+1 counter on it");
|
||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with a +1/+1 counter on it");
|
||||
static {
|
||||
filter.add(CounterType.P1P1.getPredicate());
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class PollenRemedy extends CardImpl {
|
|||
// If Pollen Remedy was kicked, prevent the next 6 damage this way instead.
|
||||
Effect effect = new ConditionalReplacementEffect(new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 6),
|
||||
KickedCondition.instance, new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 3));
|
||||
effect.setText("Prevent the next 3 damage that would be dealt this turn to any number of targets, divided as you choose. if this spell was kicked, prevent the next 6 damage this way instead.");
|
||||
effect.setText("Prevent the next 3 damage that would be dealt this turn to any number of targets, divided as you choose. If this spell was kicked, prevent the next 6 damage this way instead.");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().setTargetAdjuster(PollenRemedyAdjuster.instance);
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ public final class Ponder extends CardImpl {
|
|||
// Look at the top three cards of your library, then put them back in any order. You may shuffle your library.
|
||||
this.getSpellAbility().addEffect(new LookLibraryControllerEffect(3, true, true));
|
||||
// Draw a card.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
|
||||
}
|
||||
|
||||
private Ponder(final Ponder card) {
|
||||
|
|
|
@ -48,7 +48,7 @@ class ProhibitEffect extends OneShotEffect {
|
|||
ProhibitEffect() {
|
||||
super(Outcome.DestroyPermanent);
|
||||
this.staticText = "Counter target spell if its mana value "
|
||||
+ "is 2 or less. if this spell was kicked, counter that "
|
||||
+ "is 2 or less. If this spell was kicked, counter that "
|
||||
+ "spell if its mana value is 4 or less instead.";
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class RiteOfReplication extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenCopyTargetEffect(null, null, false, 5),
|
||||
new CreateTokenCopyTargetEffect(), KickedCondition.instance,
|
||||
"Create a token that's a copy of target creature. if this spell was kicked, create five of those tokens instead"));
|
||||
"Create a token that's a copy of target creature. If this spell was kicked, create five of those tokens instead"));
|
||||
}
|
||||
|
||||
private RiteOfReplication(final RiteOfReplication card) {
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class RousingRefrain extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||
this.getSpellAbility().addEffect(new AddCountersSourceEffect(
|
||||
CounterType.TIME.createInstance(), StaticValue.get(3), false, true
|
||||
).setText("with 3 time counters on it"));
|
||||
).setText("with three time counters on it"));
|
||||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
|
||||
// Suspend 3—{1}{R}
|
||||
|
|
|
@ -5,6 +5,7 @@ import java.util.UUID;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
@ -30,7 +31,7 @@ public final class SanctumGargoyle extends CardImpl {
|
|||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// When Sanctum Gargoyle enters the battlefield, you may return target artifact card from your graveyard to your hand.
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), true);
|
||||
Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect(), true);
|
||||
ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ class SangromancerFirstTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "Whenever a creature an opponent controls is put into a graveyard from the battlefield, " + super.getRule();
|
||||
return "Whenever a creature an opponent controls dies, " + super.getRule();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class ShivanFire extends CardImpl {
|
|||
// Shivan Fire deals 2 damage to any target. If Shivan Fire was kicked, it deals 4 damage to that creature or player instead.
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to target creature. if this spell was kicked, it deals 4 damage to that creature instead"));
|
||||
new DamageTargetEffect(2), KickedCondition.instance, "{this} deals 2 damage to target creature. If this spell was kicked, it deals 4 damage to that creature instead"));
|
||||
}
|
||||
|
||||
private ShivanFire(final ShivanFire card) {
|
||||
|
|
|
@ -32,8 +32,8 @@ public final class SlyInstigator extends CardImpl {
|
|||
// {U}, {T}: Until your next turn, target creature an opponent controls can't be blocked. Goad that creature.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new CantBeBlockedTargetEffect(Duration.UntilYourNextTurn)
|
||||
.setText("ntil your next turn, target creature an opponent controls can't be blocked."),
|
||||
new ManaCostsImpl("{U}")
|
||||
.setText("until your next turn, target creature an opponent controls can't be blocked."),
|
||||
new ManaCostsImpl<>("{U}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addEffect(new GoadTargetEffect().setText("Goad that creature"));
|
||||
|
|
|
@ -45,7 +45,7 @@ class SphereOfSafetyPayManaToAttackAllEffect extends CantAttackYouUnlessPayManaA
|
|||
|
||||
SphereOfSafetyPayManaToAttackAllEffect() {
|
||||
super(null, true);
|
||||
staticText = "Creatures can't attack you or a planeswalker you control unless their controller pays {X} for each of those creatures, where X is the number of enchantments you control.";
|
||||
staticText = "Creatures can't attack you or planeswalkers you control unless their controller pays {X} for each of those creatures, where X is the number of enchantments you control.";
|
||||
}
|
||||
|
||||
SphereOfSafetyPayManaToAttackAllEffect(SphereOfSafetyPayManaToAttackAllEffect effect) {
|
||||
|
|
|
@ -34,7 +34,7 @@ public final class SunDroplet extends CardImpl {
|
|||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||
new DoIfCostPaid(
|
||||
new GainLifeEffect(1), new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())
|
||||
), TargetController.ANY, false
|
||||
), TargetController.EACH_PLAYER, false
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class SunscorchRegent extends CardImpl {
|
|||
|
||||
// Whenever an opponent casts a spell, put a +1/+1 counter on Sunscorch Regent and you gain 1 life.
|
||||
Ability ability = new SpellCastOpponentTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false);
|
||||
ability.addEffect(new GainLifeEffect(1));
|
||||
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ class UlamogExilePermanentsOnCastAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
return "When you cast {this}, " + super.getRule();
|
||||
return "When you cast this spell, " + super.getRule();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ public final class VarchildBetrayerOfKjeldor extends CardImpl {
|
|||
);
|
||||
ability.addEffect(new CantAttackYouOrPlaneswalkerAllEffect(
|
||||
Duration.WhileOnBattlefield, filter1
|
||||
).setText("and can't attack you or a planeswalker you control"));
|
||||
).setText("and can't attack you or planeswalkers you control"));
|
||||
this.addAbility(ability);
|
||||
|
||||
// When Varchild leaves the battlefield, gain control of all Survivors.
|
||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfDuty extends CardImpl {
|
|||
effect.setText(", has vigilance");
|
||||
ability.addEffect(effect);
|
||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
||||
effect.setText(", and can't attack you or a planeswalker you control");
|
||||
effect.setText(", and can't attack you or planeswalkers you control");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfFlight extends CardImpl {
|
|||
effect.setText(", has flying");
|
||||
ability.addEffect(effect);
|
||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
||||
effect.setText(", and can't attack you or a planeswalker you control");
|
||||
effect.setText(", and can't attack you or planeswalkers you control");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfLightning extends CardImpl {
|
|||
effect.setText(", has first strike");
|
||||
ability.addEffect(effect);
|
||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
||||
effect.setText(", and can't attack you or a planeswalker you control");
|
||||
effect.setText(", and can't attack you or planeswalkers you control");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfMalice extends CardImpl {
|
|||
effect.setText(", has intimidate");
|
||||
ability.addEffect(effect);
|
||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
||||
effect.setText(", and can't attack you or a planeswalker you control");
|
||||
effect.setText(", and can't attack you or planeswalkers you control");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ public final class VowOfTorment extends CardImpl {
|
|||
new MenaceAbility(), AttachmentType.AURA, Duration.WhileOnBattlefield
|
||||
).setText(", has menace"));
|
||||
ability.addEffect(new CantAttackControllerAttachedEffect(AttachmentType.AURA)
|
||||
.setText(", and can't attack you or a planeswalker you control"));
|
||||
.setText(", and can't attack you or planeswalkers you control"));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ public final class VowOfWildness extends CardImpl {
|
|||
effect.setText(", has trample");
|
||||
ability.addEffect(effect);
|
||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
||||
effect.setText(", and can't attack you or a planeswalker you control");
|
||||
effect.setText(", and can't attack you or planeswalkers you control");
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.w;
|
|||
|
||||
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.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
|
@ -37,6 +38,7 @@ public final class WitchsClinic extends CardImpl {
|
|||
Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
|
||||
LifelinkAbility.getInstance(), Duration.EndOfTurn
|
||||
), new GenericManaCost(2));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public class VerifyCardDataTest {
|
|||
|
||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "STX"; // check all abilities and output cards with wrong abilities texts;
|
||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "C21"; // 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 HashMap<String, Set<String>> skipCheckLists = new HashMap<>();
|
||||
|
|
|
@ -25,7 +25,7 @@ public class GoadAttachedAbility extends StaticAbility {
|
|||
}
|
||||
this.addEffect(new AttacksIfAbleAttachedEffect(
|
||||
Duration.WhileOnBattlefield, AttachmentType.AURA
|
||||
).setText(", and is goaded. "));
|
||||
).setText((getEffects().size() > 1 ? ", " : " ") + "and is goaded. <i>(It attacks each combat if able"));
|
||||
this.addEffect(new GoadAttackEffect());
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ class GoadAttackEffect extends RestrictionEffect {
|
|||
|
||||
GoadAttackEffect() {
|
||||
super(Duration.WhileOnBattlefield);
|
||||
staticText = "<i>(It attacks each combat if able and attacks a player other than you if able.)</i>";
|
||||
staticText = "and attacks a player other than you if able.)</i>";
|
||||
}
|
||||
|
||||
private GoadAttackEffect(final GoadAttackEffect effect) {
|
||||
|
|
|
@ -58,7 +58,7 @@ public class CopyPermanentEffect extends OneShotEffect {
|
|||
if (filter.getMessage().startsWith("a ") || filter.getMessage().startsWith("an ")) {
|
||||
text += " " + filter.getMessage();
|
||||
} else {
|
||||
text += " any " + filter.getMessage() + " on battlefield";
|
||||
text += " any " + filter.getMessage() + " on the battlefield";
|
||||
}
|
||||
text += applier == null ? "" : applier.getText();
|
||||
this.staticText = text;
|
||||
|
|
|
@ -87,8 +87,8 @@ public class ExileFromZoneTargetEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public String getText(Mode mode) {
|
||||
return "target " + mode.getTargets().get(0).getTargetName() + " exiles "
|
||||
+ CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage()
|
||||
return "target " + (mode.getTargets().isEmpty() ? "player" : mode.getTargets().get(0).getTargetName())
|
||||
+ " exiles " + CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage()
|
||||
+ " from their " + zone.toString().toLowerCase();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -195,7 +195,7 @@ public class LookLibraryControllerEffect extends OneShotEffect {
|
|||
}
|
||||
}
|
||||
if (this.mayShuffleAfter) {
|
||||
sb.append(". You may shuffle your library");
|
||||
sb.append(". You may shuffle");
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
|
|
|
@ -18,7 +18,7 @@ public class CantAttackControllerAttachedEffect extends RestrictionEffect {
|
|||
|
||||
public CantAttackControllerAttachedEffect(AttachmentType attachmentType) {
|
||||
super(Duration.WhileOnBattlefield);
|
||||
this.staticText = attachmentType.verb() + " creature can't attack you or a planeswalker you control";
|
||||
this.staticText = attachmentType.verb() + " creature can't attack you or planeswalkers you control";
|
||||
}
|
||||
|
||||
public CantAttackControllerAttachedEffect(final CantAttackControllerAttachedEffect effect) {
|
||||
|
|
|
@ -18,7 +18,7 @@ public class DiscardAndDrawThatManyEffect extends OneShotEffect {
|
|||
super(Outcome.DrawCard);
|
||||
this.amount = amount;
|
||||
staticText = "discard "
|
||||
+ (amount == Integer.MAX_VALUE ? "any number of" : "up to" + CardUtil.numberToText(amount))
|
||||
+ (amount == Integer.MAX_VALUE ? "any number of" : "up to " + CardUtil.numberToText(amount))
|
||||
+ " cards, then draw that many cards";
|
||||
}
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ public class WardAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public String getRule() {
|
||||
StringBuilder sb = new StringBuilder("Ward");
|
||||
StringBuilder sb = new StringBuilder("ward");
|
||||
if (cost instanceof ManaCost) {
|
||||
sb.append(' ').append(cost.getText());
|
||||
} else {
|
||||
|
|
|
@ -19,7 +19,7 @@ public class FilterCreatureAttackingYou extends FilterAttackingCreature {
|
|||
}
|
||||
|
||||
public FilterCreatureAttackingYou(boolean orWalker) {
|
||||
this("creature that's attacking you" + (orWalker ? "or a planeswalker you control" : ""), orWalker);
|
||||
this("creature that's attacking you" + (orWalker ? " or a planeswalker you control" : ""), orWalker);
|
||||
}
|
||||
|
||||
public FilterCreatureAttackingYou(String name) {
|
||||
|
|
Loading…
Reference in a new issue