mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +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() {
|
AlhammarretsArchiveReplacementEffect() {
|
||||||
super(Duration.WhileOnBattlefield, Outcome.Neutral);
|
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) {
|
private AlhammarretsArchiveReplacementEffect(final AlhammarretsArchiveReplacementEffect effect) {
|
||||||
|
|
|
@ -18,8 +18,8 @@ public final class AncientCraving extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{3}{B}");
|
||||||
|
|
||||||
// You draw three cards and you lose 3 life.
|
// You draw three cards and you lose 3 life.
|
||||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3));
|
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(3).setText("you draw three cards"));
|
||||||
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3));
|
this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(3).concatBy("and"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private AncientCraving(final AncientCraving card) {
|
private AncientCraving(final AncientCraving card) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ public final class ApexOfPower extends CardImpl {
|
||||||
this.getSpellAbility().addEffect(new ApexOfPowerSpellEffect());
|
this.getSpellAbility().addEffect(new ApexOfPowerSpellEffect());
|
||||||
|
|
||||||
// If this spell was cast from your hand, add ten mana of any one color.
|
// 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) {
|
private ApexOfPower(final ApexOfPower card) {
|
||||||
|
@ -50,7 +50,8 @@ class ApexOfPowerSpellEffect extends OneShotEffect {
|
||||||
|
|
||||||
public ApexOfPowerSpellEffect() {
|
public ApexOfPowerSpellEffect() {
|
||||||
super(Outcome.Benefit);
|
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) {
|
public ApexOfPowerSpellEffect(final ApexOfPowerSpellEffect effect) {
|
||||||
|
|
|
@ -41,7 +41,7 @@ public final class AssaultSuit extends CardImpl {
|
||||||
effect.setText(", has haste");
|
effect.setText(", has haste");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.EQUIPMENT);
|
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);
|
ability.addEffect(effect);
|
||||||
effect = new AssaultSuitCantBeSacrificed();
|
effect = new AssaultSuitCantBeSacrificed();
|
||||||
effect.setText(", and can't be sacrificed");
|
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.
|
// 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)
|
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) {
|
private BairdStewardOfArgive(final BairdStewardOfArgive card) {
|
||||||
|
|
|
@ -30,7 +30,7 @@ public final class BlightMound extends CardImpl {
|
||||||
private static final FilterCreaturePermanent filter
|
private static final FilterCreaturePermanent filter
|
||||||
= new FilterCreaturePermanent(SubType.PEST, "attacking Pests");
|
= new FilterCreaturePermanent(SubType.PEST, "attacking Pests");
|
||||||
private static final FilterPermanent filter2
|
private static final FilterPermanent filter2
|
||||||
= new FilterControlledCreaturePermanent("nontoken creature you control");
|
= new FilterControlledCreaturePermanent("a nontoken creature you control");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(AttackingPredicate.instance);
|
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.
|
// 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),
|
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new BoostControlledEffect(2, 2, Duration.EndOfTurn),
|
||||||
new BoostTargetEffect(1, 1, Duration.EndOfTurn), new LockedInCondition(KickedCondition.instance),
|
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),
|
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, StaticFilters.FILTER_PERMANENT_CREATURE, false),
|
||||||
null, new LockedInCondition(KickedCondition.instance),
|
null, new LockedInCondition(KickedCondition.instance),
|
||||||
"and gain first strike until end of turn"));
|
"and gain first strike until end of turn"));
|
||||||
|
|
|
@ -1,16 +1,11 @@
|
||||||
package mage.cards.b;
|
package mage.cards.b;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
|
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.Card;
|
import mage.cards.*;
|
||||||
import mage.cards.CardImpl;
|
|
||||||
import mage.cards.CardSetInfo;
|
|
||||||
import mage.cards.Cards;
|
|
||||||
import mage.cards.CardsImpl;
|
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.Outcome;
|
import mage.constants.Outcome;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
|
@ -26,8 +21,9 @@ import mage.target.TargetCard;
|
||||||
import mage.target.TargetPlayer;
|
import mage.target.TargetPlayer;
|
||||||
import mage.target.common.TargetCardInLibrary;
|
import mage.target.common.TargetCardInLibrary;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
public final class BoreasCharger extends CardImpl {
|
public final class BoreasCharger extends CardImpl {
|
||||||
|
@ -74,11 +70,10 @@ class BoreasChargerEffect extends OneShotEffect {
|
||||||
|
|
||||||
public BoreasChargerEffect() {
|
public BoreasChargerEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
this.staticText = "choose an opponent who controls more lands than you. "
|
this.staticText = "choose an opponent who controls more lands than you. " +
|
||||||
+ "Search your library for a number of Plains cards "
|
"Search your library for a number of Plains cards equal to the difference, " +
|
||||||
+ "equal to the difference and reveal them. "
|
"reveal those cards, put one of them onto the battlefield tapped " +
|
||||||
+ "Put one of them onto the battlefield tapped "
|
"and the rest into your hand, then shuffle";
|
||||||
+ "and the rest into your hand. Then shuffle";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public BoreasChargerEffect(final BoreasChargerEffect effect) {
|
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."
|
// 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(
|
this.getSpellAbility().addEffect(
|
||||||
new CreateTokenEffect(new TreasureToken(), new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_PERMANENT_LAND))
|
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) {
|
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.
|
// 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),
|
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageEverythingEffect(4, filter),
|
||||||
new DamageEverythingEffect(1, filter), KickedCondition.instance,
|
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) {
|
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.
|
// 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().addTarget(new TargetAnyTarget());
|
||||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
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) {
|
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.
|
// 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),
|
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageEverythingEffect(4, filter),
|
||||||
new DamageEverythingEffect(1, filter), KickedCondition.instance,
|
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) {
|
private CanopySurge(final CanopySurge card) {
|
||||||
|
|
|
@ -54,7 +54,7 @@ class CombustibleGearhulkEffect extends OneShotEffect {
|
||||||
|
|
||||||
public CombustibleGearhulkEffect() {
|
public CombustibleGearhulkEffect() {
|
||||||
super(Outcome.AIDontUseIt);
|
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) {
|
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),
|
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenEffect(new KorSoldierToken(), 12),
|
||||||
new CreateTokenEffect(new KorSoldierToken(), 6), KickedCondition.instance,
|
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) {
|
private ConquerorsPledge(final ConquerorsPledge card) {
|
||||||
|
|
|
@ -70,6 +70,6 @@ class DesolationTwinOnCastAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
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);
|
super(Outcome.PlayForFree);
|
||||||
this.staticText = "for each opponent, you may cast up to one target "
|
this.staticText = "for each opponent, you may cast up to one target "
|
||||||
+ "instant or sorcery card from that player's graveyard without "
|
+ "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";
|
+ "into a graveyard this turn, exile it instead";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,11 @@ public final class Dispatch extends CardImpl {
|
||||||
this.getSpellAbility().addEffect(new TapTargetEffect());
|
this.getSpellAbility().addEffect(new TapTargetEffect());
|
||||||
|
|
||||||
// Metalcraft — If you control three or more artifacts, exile that creature.
|
// 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().addTarget(new TargetCreaturePermanent());
|
||||||
this.getSpellAbility().setAbilityWord(AbilityWord.METALCRAFT);
|
|
||||||
this.getSpellAbility().addHint(MetalcraftHint.instance);
|
this.getSpellAbility().addHint(MetalcraftHint.instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,6 @@ class DuelistsHeritageTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
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));
|
this.addAbility(new KickerAbility(kickerCosts));
|
||||||
|
|
||||||
// Destroy target land. If Dwarven Landslide was kicked, destroy another target land.
|
// 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().addTarget(new TargetLandPermanent());
|
||||||
getSpellAbility().setTargetAdjuster(DwarvenLandslideAdjuster.instance);
|
getSpellAbility().setTargetAdjuster(DwarvenLandslideAdjuster.instance);
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ class ElixerOfImmortalityEffect extends OneShotEffect {
|
||||||
|
|
||||||
public ElixerOfImmortalityEffect() {
|
public ElixerOfImmortalityEffect() {
|
||||||
super(Outcome.GainLife);
|
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) {
|
public ElixerOfImmortalityEffect(final ElixerOfImmortalityEffect effect) {
|
||||||
|
|
|
@ -79,7 +79,7 @@ class ErraticCyclopsTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
return "Whenever you cast an instant or sorcery spell, "
|
return "Whenever you cast an instant or sorcery spell, "
|
||||||
+ "{this} gets +X/+0 until end of turn, "
|
+ "{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
|
@Override
|
||||||
|
|
|
@ -54,7 +54,7 @@ class EtaliPrimalStormEffect extends OneShotEffect {
|
||||||
public EtaliPrimalStormEffect() {
|
public EtaliPrimalStormEffect() {
|
||||||
super(Outcome.PlayForFree);
|
super(Outcome.PlayForFree);
|
||||||
this.staticText = "exile the top card of each player's library, then you may cast "
|
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) {
|
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 target creature would deal this turn. If Falling Timber was kicked,
|
||||||
// prevent all combat damage another target creature would deal this turn.
|
// prevent all combat damage another target creature would deal this turn.
|
||||||
Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true);
|
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.");
|
"prevent all combat damage another target creature would deal this turn.");
|
||||||
this.getSpellAbility().addEffect(effect);
|
this.getSpellAbility().addEffect(effect);
|
||||||
this.getSpellAbility().setTargetAdjuster(FallingTimberAdjuster.instance);
|
this.getSpellAbility().setTargetAdjuster(FallingTimberAdjuster.instance);
|
||||||
|
|
|
@ -32,7 +32,7 @@ import java.util.UUID;
|
||||||
public final class FelisaFangOfSilverquill extends CardImpl {
|
public final class FelisaFangOfSilverquill extends CardImpl {
|
||||||
|
|
||||||
private static final FilterPermanent filter
|
private static final FilterPermanent filter
|
||||||
= new FilterControlledCreaturePermanent("nontoken creature you control");
|
= new FilterControlledCreaturePermanent("a nontoken creature you control");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(Predicates.not(TokenPredicate.instance));
|
filter.add(Predicates.not(TokenPredicate.instance));
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class ForbiddingSpirit extends CardImpl {
|
||||||
new ManaCostsImpl("{2}"), true
|
new ManaCostsImpl("{2}"), true
|
||||||
);
|
);
|
||||||
effect.setDuration(Duration.UntilYourNextTurn);
|
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.");
|
"unless their controller pays {2} for each of those creatures.");
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(effect));
|
this.addAbility(new EntersBattlefieldTriggeredAbility(effect));
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ class IllusionistsGambitRemoveFromCombatEffect extends OneShotEffect {
|
||||||
|
|
||||||
public IllusionistsGambitRemoveFromCombatEffect() {
|
public IllusionistsGambitRemoveFromCombatEffect() {
|
||||||
super(Outcome.Benefit);
|
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) {
|
public IllusionistsGambitRemoveFromCombatEffect(final IllusionistsGambitRemoveFromCombatEffect effect) {
|
||||||
|
@ -142,7 +142,7 @@ class IllusionistsGambitRestrictionEffect extends RestrictionEffect {
|
||||||
super(Duration.Custom, Outcome.Benefit);
|
super(Duration.Custom, Outcome.Benefit);
|
||||||
this.attackers = attackers;
|
this.attackers = attackers;
|
||||||
this.phase = phase;
|
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) {
|
public IllusionistsGambitRestrictionEffect(final IllusionistsGambitRestrictionEffect effect) {
|
||||||
|
|
|
@ -46,7 +46,7 @@ class IncarnationTechniqueEffect extends OneShotEffect {
|
||||||
|
|
||||||
IncarnationTechniqueEffect() {
|
IncarnationTechniqueEffect() {
|
||||||
super(Outcome.Benefit);
|
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) {
|
private IncarnationTechniqueEffect(final IncarnationTechniqueEffect effect) {
|
||||||
|
|
|
@ -38,7 +38,7 @@ public final class InfernalOffering extends CardImpl {
|
||||||
this.getSpellAbility().addEffect(new InfernalOfferingSacrificeEffect());
|
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.
|
// 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) {
|
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}");
|
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{4}{U}{U}");
|
||||||
|
|
||||||
// Draw two cards. Exile Inspiring Refrain with three time counters on it.
|
// 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 ExileSpellEffect());
|
||||||
this.getSpellAbility().addEffect(new AddCountersSourceEffect(
|
this.getSpellAbility().addEffect(new AddCountersSourceEffect(
|
||||||
CounterType.TIME.createInstance(), StaticValue.get(3), false, true
|
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}
|
// Suspend 3—{2}{U}
|
||||||
this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{2}{U}"), this));
|
this.addAbility(new SuspendAbility(3, new ManaCostsImpl<>("{2}{U}"), this));
|
||||||
|
|
|
@ -19,7 +19,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class JorKadeenThePrevailer extends CardImpl {
|
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) {
|
public JorKadeenThePrevailer(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{W}");
|
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{R}{W}");
|
||||||
|
|
|
@ -51,7 +51,7 @@ public final class KozilekTheGreatDistortion extends CardImpl {
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||||
new CastSourceTriggeredAbility(new KozilekDrawEffect(), false),
|
new CastSourceTriggeredAbility(new KozilekDrawEffect(), false),
|
||||||
new CardsInHandCondition(ComparisonType.FEWER_THAN, 7),
|
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
|
// Menace
|
||||||
this.addAbility(new MenaceAbility());
|
this.addAbility(new MenaceAbility());
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ public final class MageRingNetwork extends CardImpl {
|
||||||
"Add {C} for each storage counter removed this way",
|
"Add {C} for each storage counter removed this way",
|
||||||
true, new CountersSourceCount(CounterType.STORAGE));
|
true, new CountersSourceCount(CounterType.STORAGE));
|
||||||
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance(),
|
||||||
"Remove X storage counters from {this}"));
|
"Remove any number of storage counters from {this}"));
|
||||||
this.addAbility(ability);
|
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.
|
// <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(
|
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
||||||
new CastSourceTriggeredAbility(new CopySourceSpellEffect(), true),
|
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"
|
"if a creature died this turn, you may copy {this} and may choose a new target for the copy"
|
||||||
);
|
);
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
|
|
|
@ -24,7 +24,7 @@ import mage.target.TargetPlayer;
|
||||||
*/
|
*/
|
||||||
public final class MarshCasualties extends CardImpl {
|
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) {
|
public MarshCasualties(UUID ownerId, CardSetInfo setInfo) {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}{B}");
|
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{B}{B}");
|
||||||
|
|
|
@ -23,7 +23,7 @@ public final class NissasExpedition extends CardImpl {
|
||||||
// Convoke
|
// Convoke
|
||||||
this.addAbility(new ConvokeAbility());
|
this.addAbility(new ConvokeAbility());
|
||||||
// Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
|
// 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) {
|
private NissasExpedition(final NissasExpedition card) {
|
||||||
|
|
|
@ -21,7 +21,7 @@ public final class NissasRenewal extends CardImpl {
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{5}{G}");
|
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.
|
// 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));
|
this.getSpellAbility().addEffect(new GainLifeEffect(7));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ class OrzhovAdvokistEffect extends OneShotEffect {
|
||||||
public OrzhovAdvokistEffect() {
|
public OrzhovAdvokistEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
this.staticText = "each player may put two +1/+1 counters on a creature they control. "
|
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) {
|
public OrzhovAdvokistEffect(final OrzhovAdvokistEffect effect) {
|
||||||
|
|
|
@ -31,6 +31,7 @@ import mage.game.Game;
|
||||||
import mage.players.Player;
|
import mage.players.Player;
|
||||||
import mage.target.Target;
|
import mage.target.Target;
|
||||||
import mage.target.common.TargetCardInYourGraveyard;
|
import mage.target.common.TargetCardInYourGraveyard;
|
||||||
|
import mage.target.common.TargetControlledCreaturePermanent;
|
||||||
import mage.target.common.TargetControlledPermanent;
|
import mage.target.common.TargetControlledPermanent;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
import mage.target.common.TargetCreaturePermanent;
|
||||||
import mage.target.targetadjustment.TargetAdjuster;
|
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.
|
// {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 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)));
|
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN)));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
|
@ -66,7 +67,7 @@ public final class OsgirTheReconstructor extends CardImpl {
|
||||||
new OsgirTheReconstructorCreateArtifactTokensEffect(),
|
new OsgirTheReconstructorCreateArtifactTokensEffect(),
|
||||||
new ManaCostsImpl("{X}"));
|
new ManaCostsImpl("{X}"));
|
||||||
copyAbility.addCost(new TapSourceCost());
|
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);
|
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.
|
// 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());
|
this.getSpellAbility().addEffect(new PeregrinationEffect());
|
||||||
Effect effect = new ScryEffect(1);
|
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);
|
this.getSpellAbility().addEffect(effect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class PeregrinationEffect extends OneShotEffect {
|
||||||
|
|
||||||
public PeregrinationEffect() {
|
public PeregrinationEffect() {
|
||||||
super(Outcome.PutLandInPlay);
|
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) {
|
public PeregrinationEffect(final PeregrinationEffect effect) {
|
||||||
|
|
|
@ -18,7 +18,7 @@ import java.util.UUID;
|
||||||
*/
|
*/
|
||||||
public final class PerplexingTest extends CardImpl {
|
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 {
|
static {
|
||||||
filter.add(Predicates.not(TokenPredicate.instance));
|
filter.add(Predicates.not(TokenPredicate.instance));
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
package mage.cards.p;
|
package mage.cards.p;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
|
@ -10,38 +8,30 @@ import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.CardType;
|
import mage.constants.CardType;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.constants.SuperType;
|
|
||||||
import mage.filter.FilterCard;
|
|
||||||
import mage.filter.StaticFilters;
|
import mage.filter.StaticFilters;
|
||||||
import mage.target.common.TargetCardInLibrary;
|
import mage.target.common.TargetCardInLibrary;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Loki
|
* @author Loki
|
||||||
*/
|
*/
|
||||||
public final class PilgrimsEye extends CardImpl {
|
public final class PilgrimsEye extends CardImpl {
|
||||||
private static final FilterCard filter = new FilterCard("basic land card");
|
|
||||||
|
|
||||||
static {
|
public PilgrimsEye(UUID ownerId, CardSetInfo setInfo) {
|
||||||
filter.add(SuperType.BASIC.getPredicate());
|
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}");
|
||||||
filter.add(CardType.LAND.getPredicate());
|
|
||||||
}
|
|
||||||
|
|
||||||
public PilgrimsEye (UUID ownerId, CardSetInfo setInfo) {
|
|
||||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT,CardType.CREATURE},"{3}");
|
|
||||||
this.subtype.add(SubType.THOPTER);
|
this.subtype.add(SubType.THOPTER);
|
||||||
|
|
||||||
this.power = new MageInt(1);
|
this.power = new MageInt(1);
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
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.
|
// 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);
|
super(card);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ import mage.target.common.TargetCreaturePermanent;
|
||||||
*/
|
*/
|
||||||
public final class PlaxcasterFrogling extends CardImpl {
|
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 {
|
static {
|
||||||
filter.add(CounterType.P1P1.getPredicate());
|
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.
|
// If Pollen Remedy was kicked, prevent the next 6 damage this way instead.
|
||||||
Effect effect = new ConditionalReplacementEffect(new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 6),
|
Effect effect = new ConditionalReplacementEffect(new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 6),
|
||||||
KickedCondition.instance, new PreventDamageToTargetMultiAmountEffect(Duration.EndOfTurn, 3));
|
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().addEffect(effect);
|
||||||
this.getSpellAbility().setTargetAdjuster(PollenRemedyAdjuster.instance);
|
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.
|
// 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));
|
this.getSpellAbility().addEffect(new LookLibraryControllerEffect(3, true, true));
|
||||||
// Draw a card.
|
// Draw a card.
|
||||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("<br>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Ponder(final Ponder card) {
|
private Ponder(final Ponder card) {
|
||||||
|
|
|
@ -48,7 +48,7 @@ class ProhibitEffect extends OneShotEffect {
|
||||||
ProhibitEffect() {
|
ProhibitEffect() {
|
||||||
super(Outcome.DestroyPermanent);
|
super(Outcome.DestroyPermanent);
|
||||||
this.staticText = "Counter target spell if its mana value "
|
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.";
|
+ "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().addTarget(new TargetCreaturePermanent());
|
||||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenCopyTargetEffect(null, null, false, 5),
|
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new CreateTokenCopyTargetEffect(null, null, false, 5),
|
||||||
new CreateTokenCopyTargetEffect(), KickedCondition.instance,
|
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) {
|
private RiteOfReplication(final RiteOfReplication card) {
|
||||||
|
|
|
@ -33,7 +33,7 @@ public final class RousingRefrain extends CardImpl {
|
||||||
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
this.getSpellAbility().addEffect(new ExileSpellEffect());
|
||||||
this.getSpellAbility().addEffect(new AddCountersSourceEffect(
|
this.getSpellAbility().addEffect(new AddCountersSourceEffect(
|
||||||
CounterType.TIME.createInstance(), StaticValue.get(3), false, true
|
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());
|
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||||
|
|
||||||
// Suspend 3—{1}{R}
|
// Suspend 3—{1}{R}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.UUID;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||||
|
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||||
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
import mage.abilities.effects.common.ReturnToHandTargetEffect;
|
||||||
import mage.abilities.keyword.FlyingAbility;
|
import mage.abilities.keyword.FlyingAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -30,7 +31,7 @@ public final class SanctumGargoyle extends CardImpl {
|
||||||
// Flying
|
// Flying
|
||||||
this.addAbility(FlyingAbility.getInstance());
|
this.addAbility(FlyingAbility.getInstance());
|
||||||
// When Sanctum Gargoyle enters the battlefield, you may return target artifact card from your graveyard to your hand.
|
// 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")));
|
ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard")));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ class SangromancerFirstTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
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.
|
// 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().addTarget(new TargetCreaturePermanent());
|
||||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(new DamageTargetEffect(4),
|
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) {
|
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.
|
// {U}, {T}: Until your next turn, target creature an opponent controls can't be blocked. Goad that creature.
|
||||||
Ability ability = new SimpleActivatedAbility(
|
Ability ability = new SimpleActivatedAbility(
|
||||||
new CantBeBlockedTargetEffect(Duration.UntilYourNextTurn)
|
new CantBeBlockedTargetEffect(Duration.UntilYourNextTurn)
|
||||||
.setText("ntil your next turn, target creature an opponent controls can't be blocked."),
|
.setText("until your next turn, target creature an opponent controls can't be blocked."),
|
||||||
new ManaCostsImpl("{U}")
|
new ManaCostsImpl<>("{U}")
|
||||||
);
|
);
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addEffect(new GoadTargetEffect().setText("Goad that creature"));
|
ability.addEffect(new GoadTargetEffect().setText("Goad that creature"));
|
||||||
|
|
|
@ -45,7 +45,7 @@ class SphereOfSafetyPayManaToAttackAllEffect extends CantAttackYouUnlessPayManaA
|
||||||
|
|
||||||
SphereOfSafetyPayManaToAttackAllEffect() {
|
SphereOfSafetyPayManaToAttackAllEffect() {
|
||||||
super(null, true);
|
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) {
|
SphereOfSafetyPayManaToAttackAllEffect(SphereOfSafetyPayManaToAttackAllEffect effect) {
|
||||||
|
|
|
@ -34,7 +34,7 @@ public final class SunDroplet extends CardImpl {
|
||||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
this.addAbility(new BeginningOfUpkeepTriggeredAbility(
|
||||||
new DoIfCostPaid(
|
new DoIfCostPaid(
|
||||||
new GainLifeEffect(1), new RemoveCountersSourceCost(CounterType.CHARGE.createInstance())
|
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.
|
// 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 ability = new SpellCastOpponentTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false);
|
||||||
ability.addEffect(new GainLifeEffect(1));
|
ability.addEffect(new GainLifeEffect(1).concatBy("and"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ class UlamogExilePermanentsOnCastAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
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(
|
ability.addEffect(new CantAttackYouOrPlaneswalkerAllEffect(
|
||||||
Duration.WhileOnBattlefield, filter1
|
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);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// When Varchild leaves the battlefield, gain control of all Survivors.
|
// When Varchild leaves the battlefield, gain control of all Survivors.
|
||||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfDuty extends CardImpl {
|
||||||
effect.setText(", has vigilance");
|
effect.setText(", has vigilance");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
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);
|
ability.addEffect(effect);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfFlight extends CardImpl {
|
||||||
effect.setText(", has flying");
|
effect.setText(", has flying");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
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);
|
ability.addEffect(effect);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfLightning extends CardImpl {
|
||||||
effect.setText(", has first strike");
|
effect.setText(", has first strike");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
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);
|
ability.addEffect(effect);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ public final class VowOfMalice extends CardImpl {
|
||||||
effect.setText(", has intimidate");
|
effect.setText(", has intimidate");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
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);
|
ability.addEffect(effect);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ public final class VowOfTorment extends CardImpl {
|
||||||
new MenaceAbility(), AttachmentType.AURA, Duration.WhileOnBattlefield
|
new MenaceAbility(), AttachmentType.AURA, Duration.WhileOnBattlefield
|
||||||
).setText(", has menace"));
|
).setText(", has menace"));
|
||||||
ability.addEffect(new CantAttackControllerAttachedEffect(AttachmentType.AURA)
|
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);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ public final class VowOfWildness extends CardImpl {
|
||||||
effect.setText(", has trample");
|
effect.setText(", has trample");
|
||||||
ability.addEffect(effect);
|
ability.addEffect(effect);
|
||||||
effect = new CantAttackControllerAttachedEffect(AttachmentType.AURA);
|
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);
|
ability.addEffect(effect);
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package mage.cards.w;
|
||||||
|
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||||
import mage.abilities.keyword.LifelinkAbility;
|
import mage.abilities.keyword.LifelinkAbility;
|
||||||
|
@ -37,6 +38,7 @@ public final class WitchsClinic extends CardImpl {
|
||||||
Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
|
Ability ability = new SimpleActivatedAbility(new GainAbilityTargetEffect(
|
||||||
LifelinkAbility.getInstance(), Duration.EndOfTurn
|
LifelinkAbility.getInstance(), Duration.EndOfTurn
|
||||||
), new GenericManaCost(2));
|
), new GenericManaCost(2));
|
||||||
|
ability.addCost(new TapSourceCost());
|
||||||
ability.addTarget(new TargetPermanent(filter));
|
ability.addTarget(new TargetPermanent(filter));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class VerifyCardDataTest {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
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 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<>();
|
private static final HashMap<String, Set<String>> skipCheckLists = new HashMap<>();
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class GoadAttachedAbility extends StaticAbility {
|
||||||
}
|
}
|
||||||
this.addEffect(new AttacksIfAbleAttachedEffect(
|
this.addEffect(new AttacksIfAbleAttachedEffect(
|
||||||
Duration.WhileOnBattlefield, AttachmentType.AURA
|
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());
|
this.addEffect(new GoadAttackEffect());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ class GoadAttackEffect extends RestrictionEffect {
|
||||||
|
|
||||||
GoadAttackEffect() {
|
GoadAttackEffect() {
|
||||||
super(Duration.WhileOnBattlefield);
|
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) {
|
private GoadAttackEffect(final GoadAttackEffect effect) {
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class CopyPermanentEffect extends OneShotEffect {
|
||||||
if (filter.getMessage().startsWith("a ") || filter.getMessage().startsWith("an ")) {
|
if (filter.getMessage().startsWith("a ") || filter.getMessage().startsWith("an ")) {
|
||||||
text += " " + filter.getMessage();
|
text += " " + filter.getMessage();
|
||||||
} else {
|
} else {
|
||||||
text += " any " + filter.getMessage() + " on battlefield";
|
text += " any " + filter.getMessage() + " on the battlefield";
|
||||||
}
|
}
|
||||||
text += applier == null ? "" : applier.getText();
|
text += applier == null ? "" : applier.getText();
|
||||||
this.staticText = text;
|
this.staticText = text;
|
||||||
|
|
|
@ -87,8 +87,8 @@ public class ExileFromZoneTargetEffect extends OneShotEffect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getText(Mode mode) {
|
public String getText(Mode mode) {
|
||||||
return "target " + mode.getTargets().get(0).getTargetName() + " exiles "
|
return "target " + (mode.getTargets().isEmpty() ? "player" : mode.getTargets().get(0).getTargetName())
|
||||||
+ CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage()
|
+ " exiles " + CardUtil.numberToText(amount, "a") + ' ' + filter.getMessage()
|
||||||
+ " from their " + zone.toString().toLowerCase();
|
+ " from their " + zone.toString().toLowerCase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -195,7 +195,7 @@ public class LookLibraryControllerEffect extends OneShotEffect {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.mayShuffleAfter) {
|
if (this.mayShuffleAfter) {
|
||||||
sb.append(". You may shuffle your library");
|
sb.append(". You may shuffle");
|
||||||
}
|
}
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class CantAttackControllerAttachedEffect extends RestrictionEffect {
|
||||||
|
|
||||||
public CantAttackControllerAttachedEffect(AttachmentType attachmentType) {
|
public CantAttackControllerAttachedEffect(AttachmentType attachmentType) {
|
||||||
super(Duration.WhileOnBattlefield);
|
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) {
|
public CantAttackControllerAttachedEffect(final CantAttackControllerAttachedEffect effect) {
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class DiscardAndDrawThatManyEffect extends OneShotEffect {
|
||||||
super(Outcome.DrawCard);
|
super(Outcome.DrawCard);
|
||||||
this.amount = amount;
|
this.amount = amount;
|
||||||
staticText = "discard "
|
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";
|
+ " cards, then draw that many cards";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ public class WardAbility extends TriggeredAbilityImpl {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getRule() {
|
public String getRule() {
|
||||||
StringBuilder sb = new StringBuilder("Ward");
|
StringBuilder sb = new StringBuilder("ward");
|
||||||
if (cost instanceof ManaCost) {
|
if (cost instanceof ManaCost) {
|
||||||
sb.append(' ').append(cost.getText());
|
sb.append(' ').append(cost.getText());
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class FilterCreatureAttackingYou extends FilterAttackingCreature {
|
||||||
}
|
}
|
||||||
|
|
||||||
public FilterCreatureAttackingYou(boolean orWalker) {
|
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) {
|
public FilterCreatureAttackingYou(String name) {
|
||||||
|
|
Loading…
Reference in a new issue