mirror of
https://github.com/correl/mage.git
synced 2024-11-28 19:19:55 +00:00
updated ManaSpentToCastWatcher to default watcher list, reworked it to be game scope
This commit is contained in:
parent
943c67fbca
commit
91eb324847
190 changed files with 272 additions and 280 deletions
|
@ -36,7 +36,7 @@ public final class AbandonHope extends CardImpl {
|
|||
|
||||
// Look at target opponent's hand and choose X cards from it. That player discards those cards.
|
||||
this.getSpellAbility().addEffect(
|
||||
new DiscardCardYouChooseTargetEffect(ManacostVariableValue.instance, TargetController.ANY)
|
||||
new DiscardCardYouChooseTargetEffect(ManacostVariableValue.REGULAR, TargetController.ANY)
|
||||
.setText("Look at target opponent's hand and choose X cards from it. That player discards those cards"));
|
||||
this.getSpellAbility().addTarget(new TargetOpponent());
|
||||
this.getSpellAbility().setCostAdjuster(AbandonHopeAdjuster.instance);
|
||||
|
|
|
@ -23,10 +23,10 @@ public final class AlabasterPotion extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{W}{W}");
|
||||
|
||||
// Choose one - Target player gains X life; or prevent the next X damage that would be dealt to any target this turn.
|
||||
this.getSpellAbility().addEffect(new GainLifeTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new GainLifeTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
Mode mode = new Mode();
|
||||
mode.addEffect(new PreventDamageToTargetEffect(Duration.EndOfTurn, false, true, ManacostVariableValue.instance));
|
||||
mode.addEffect(new PreventDamageToTargetEffect(Duration.EndOfTurn, false, true, ManacostVariableValue.REGULAR));
|
||||
mode.addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addMode(mode);
|
||||
}
|
||||
|
|
|
@ -43,13 +43,13 @@ public final class ArashiTheSkyAsunder extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// {X}{G}, {tap}: Arashi, the Sky Asunder deals X damage to target creature with flying.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.instance), new ManaCostsImpl("{X}{G}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{G}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetPermanent(filter));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Channel - {X}{G}{G}, Discard Arashi: Arashi deals X damage to each creature with flying.
|
||||
this.addAbility(new ChannelAbility("{X}{G}{G}", new DamageAllEffect(ManacostVariableValue.instance, filter)));
|
||||
this.addAbility(new ChannelAbility("{X}{G}{G}", new DamageAllEffect(ManacostVariableValue.REGULAR, filter)));
|
||||
}
|
||||
|
||||
private ArashiTheSkyAsunder(final ArashiTheSkyAsunder card) {
|
||||
|
|
|
@ -41,7 +41,7 @@ public final class AtalyaSamiteMaster extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// {X}, {tap}: Choose one - Prevent the next X damage that would be dealt to target creature this turn; or you gain X life. Spend only white mana on X.
|
||||
PreventDamageToTargetEffect effect = new PreventDamageToTargetEffect(Duration.EndOfTurn, false, true, ManacostVariableValue.instance);
|
||||
PreventDamageToTargetEffect effect = new PreventDamageToTargetEffect(Duration.EndOfTurn, false, true, ManacostVariableValue.REGULAR);
|
||||
effect.setText("Prevent the next X damage that would be dealt to target creature this turn. Spend only white mana on X.");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{X}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
@ -55,7 +55,7 @@ public final class AtalyaSamiteMaster extends CardImpl {
|
|||
|
||||
// or you gain X life
|
||||
Mode mode = new Mode();
|
||||
mode.addEffect(new GainLifeEffect(ManacostVariableValue.instance).setText("You gain X life. Spend only white mana on X."));
|
||||
mode.addEffect(new GainLifeEffect(ManacostVariableValue.REGULAR).setText("You gain X life. Spend only white mana on X."));
|
||||
ability.addMode(mode);
|
||||
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -61,7 +61,7 @@ public final class AureliasFury extends CardImpl {
|
|||
|
||||
// Aurelia's Fury deals X damage divided as you choose among any number of target creatures and/or players.
|
||||
// Tap each creature dealt damage this way. Players dealt damage this way can't cast noncreature spells this turn.
|
||||
DynamicValue xValue = ManacostVariableValue.instance;
|
||||
DynamicValue xValue = ManacostVariableValue.REGULAR;
|
||||
this.getSpellAbility().addEffect(new DamageMultiEffect(xValue));
|
||||
this.getSpellAbility().addEffect(new AureliasFuryEffect());
|
||||
this.getSpellAbility().addTarget(new TargetAnyTargetAmount(xValue));
|
||||
|
|
|
@ -25,7 +25,7 @@ public final class BalduvianRage extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{R}");
|
||||
|
||||
// Target attacking creature gets +X/+0 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(new FilterAttackingCreature()));
|
||||
|
||||
// Draw a card at the beginning of the next turn's upkeep.
|
||||
|
|
|
@ -30,7 +30,7 @@ public final class BallistaSquad extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// {X}{W}, {T}: Ballista Squad deals X damage to target attacking or blocking creature.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.instance), new ManaCostsImpl("{X}{W}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{W}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetAttackingOrBlockingCreature());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -17,7 +17,6 @@ import mage.constants.Outcome;
|
|||
import mage.constants.Zone;
|
||||
import mage.game.Game;
|
||||
import mage.game.events.GameEvent;
|
||||
import mage.game.events.GameEvent.EventType;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.game.stack.Spell;
|
||||
import mage.players.Player;
|
||||
|
@ -106,7 +105,7 @@ class BaneFireEffect extends OneShotEffect {
|
|||
|
||||
class BanefireCantCounterEffect extends ContinuousRuleModifyingEffectImpl {
|
||||
|
||||
Condition condition = new testCondition(ManacostVariableValue.instance, 5);
|
||||
Condition condition = new testCondition(ManacostVariableValue.REGULAR, 5);
|
||||
|
||||
public BanefireCantCounterEffect() {
|
||||
super(Duration.WhileOnStack, Outcome.Benefit);
|
||||
|
|
|
@ -31,9 +31,9 @@ public final class Banshee extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// {X}, {T}: Banshee deals half X damage, rounded down, to any target, and half X damage, rounded up, to you.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new HalfValue(ManacostVariableValue.instance, false)).setText("Banshee deals half X damage, rounded down, to any target,"), new ManaCostsImpl("{X}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(new HalfValue(ManacostVariableValue.REGULAR, false)).setText("Banshee deals half X damage, rounded down, to any target,"), new ManaCostsImpl("{X}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addEffect(new DamageControllerEffect(new HalfValue(ManacostVariableValue.instance, true)).setText(" and half X damage, rounded up, to you"));
|
||||
ability.addEffect(new DamageControllerEffect(new HalfValue(ManacostVariableValue.REGULAR, true)).setText(" and half X damage, rounded up, to you"));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -27,10 +27,10 @@ public final class BattleAtTheBridge extends CardImpl {
|
|||
addAbility(new ImproviseAbility());
|
||||
|
||||
// Target creature gets -X/-X until end of turn. You gain X life.
|
||||
DynamicValue x = new SignInversionDynamicValue(ManacostVariableValue.instance);
|
||||
DynamicValue x = new SignInversionDynamicValue(ManacostVariableValue.REGULAR);
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(x, x, Duration.EndOfTurn, true));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.REGULAR));
|
||||
}
|
||||
|
||||
private BattleAtTheBridge(final BattleAtTheBridge card) {
|
||||
|
|
|
@ -25,8 +25,8 @@ public final class BelbesArmor extends CardImpl {
|
|||
|
||||
// {X}, {tap}: Target creature gets -X/+X until end of turn.
|
||||
Ability ability = new SimpleActivatedAbility(new BoostTargetEffect(
|
||||
new MultipliedValue(ManacostVariableValue.instance, -1),
|
||||
ManacostVariableValue.instance, Duration.EndOfTurn
|
||||
new MultipliedValue(ManacostVariableValue.REGULAR, -1),
|
||||
ManacostVariableValue.REGULAR, Duration.EndOfTurn
|
||||
).setText("Target creature gets -X/+X until end of turn"), new ManaCostsImpl("{X}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
@ -79,13 +79,11 @@ class BergStriderEffect extends OneShotEffect {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source) {
|
||||
ManaSpentToCastWatcher watcher = game.getState().getWatcher(
|
||||
ManaSpentToCastWatcher.class, source.getSourceId()
|
||||
);
|
||||
ManaSpentToCastWatcher watcher = game.getState().getWatcher(ManaSpentToCastWatcher.class);
|
||||
if (watcher == null) {
|
||||
return false;
|
||||
}
|
||||
Mana payment = watcher.getAndResetLastPayment();
|
||||
Mana payment = watcher.getAndResetLastPayment(source.getSourceId());
|
||||
if (payment == null || payment.getSnow() < 1) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ public final class BiomassMutation extends CardImpl {
|
|||
|
||||
|
||||
// Creatures you control have base power and toughness X/X until end of turn.
|
||||
DynamicValue variableMana = ManacostVariableValue.instance;
|
||||
DynamicValue variableMana = ManacostVariableValue.REGULAR;
|
||||
this.getSpellAbility().addEffect(new SetPowerToughnessAllEffect(variableMana, variableMana, Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures you control"), true));
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ public final class BlastZone extends CardImpl {
|
|||
|
||||
// {X}{X}, {T}: Put X charge counters on Blast Zone.
|
||||
Ability ability = new SimpleActivatedAbility(new AddCountersSourceEffect(
|
||||
CounterType.CHARGE.createInstance(), ManacostVariableValue.instance, true
|
||||
CounterType.CHARGE.createInstance(), ManacostVariableValue.REGULAR, true
|
||||
), new ManaCostsImpl("{X}{X}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -20,7 +20,7 @@ public final class Blaze extends CardImpl {
|
|||
|
||||
|
||||
// Blaze deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class BlotOutTheSky extends CardImpl {
|
|||
|
||||
// Create X tapped 2/1 white and black Inkling creature tokens with flying. If X is 6 or more, destroy all noncreature, nonland permanents.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(
|
||||
new SilverquillToken(), ManacostVariableValue.instance, true, false
|
||||
new SilverquillToken(), ManacostVariableValue.REGULAR, true, false
|
||||
));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DestroyAllEffect(filter), BlotOutTheSkyCondition.instance,
|
||||
|
|
|
@ -21,7 +21,7 @@ public final class BlueSunsZenith extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{U}{U}{U}");
|
||||
|
||||
// Target player draws X cards. Shuffle Blue Sun's Zenith into its owner's library.
|
||||
this.getSpellAbility().addEffect(new DrawCardTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DrawCardTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addEffect(ShuffleSpellEffect.getInstance());
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ public final class BondOfAgony extends CardImpl {
|
|||
public BondOfAgony(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{B}");
|
||||
|
||||
DynamicValue xValue = ManacostVariableValue.instance;
|
||||
DynamicValue xValue = ManacostVariableValue.REGULAR;
|
||||
|
||||
// As an additional cost to cast Bond of Agony, pay X life.
|
||||
// magenoxx: here we don't use PayVariableLifeCost as {X} shouldn't actually be announced
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class BorrowingTheEastWind extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{G}{G}");
|
||||
|
||||
// Borrowing the East Wind deals X damage to each creature with horsemanship and each player.
|
||||
this.getSpellAbility().addEffect(new DamageEverythingEffect(ManacostVariableValue.instance, filter)); }
|
||||
this.getSpellAbility().addEffect(new DamageEverythingEffect(ManacostVariableValue.REGULAR, filter)); }
|
||||
|
||||
private BorrowingTheEastWind(final BorrowingTheEastWind card) {
|
||||
super(card);
|
||||
|
|
|
@ -21,7 +21,7 @@ public final class Braingeyser extends CardImpl {
|
|||
|
||||
|
||||
// Target player draws X cards.
|
||||
this.getSpellAbility().addEffect(new DrawCardTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DrawCardTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class Brightflame extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}{R}{W}{W}");
|
||||
|
||||
// Radiance - Brightflame deals X damage to target creature and each other creature that shares a color with it. You gain life equal to the damage dealt this way.
|
||||
this.getSpellAbility().addEffect(new BrightflameEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new BrightflameEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().setAbilityWord(AbilityWord.RADIANCE);
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public final class BrokenAmbitions extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{U}");
|
||||
|
||||
// Counter target spell unless its controller pays {X}. Clash with an opponent. If you win, that spell's controller puts the top four cards of their library into their graveyard.
|
||||
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addEffect(new BrokenAmbitionsEffect());
|
||||
this.getSpellAbility().addTarget(new TargetSpell());
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ class CabalInterrogatorEffect extends OneShotEffect {
|
|||
return false;
|
||||
}
|
||||
|
||||
int amountToReveal = (ManacostVariableValue.instance).calculate(game, source, this);
|
||||
int amountToReveal = (ManacostVariableValue.REGULAR).calculate(game, source, this);
|
||||
|
||||
Cards revealedCards = new CardsImpl();
|
||||
if (amountToReveal > 0 && targetPlayer.getHand().size() > amountToReveal) {
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class CacklingWitch extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// {X}{B}, {tap}, Discard a card: Target creature gets +X/+0 until end of turn.
|
||||
ManacostVariableValue manaX = ManacostVariableValue.instance;
|
||||
ManacostVariableValue manaX = ManacostVariableValue.REGULAR;
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new BoostTargetEffect(manaX, StaticValue.get(0), Duration.EndOfTurn),
|
||||
new ManaCostsImpl("{X}{B}"));
|
||||
|
|
|
@ -44,7 +44,7 @@ public final class ChamberSentry extends CardImpl {
|
|||
"with a +1/+1 counter on it for each color of mana spent to cast it"));
|
||||
|
||||
// {X}, {T}, Remove X +1/+1 counters from Chamber Sentry: It deals X damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.instance)
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR)
|
||||
.setText("It deals X damage to any target"),
|
||||
new ManaCostsImpl("{X}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class CinderElemental extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// {X}{R}, {tap}, Sacrifice Cinder Elemental: Cinder Elemental deals X damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.instance), new ManaCostsImpl("{X}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new SacrificeSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
@ -35,16 +35,16 @@ public final class ClanDefiance extends CardImpl {
|
|||
this.getSpellAbility().getModes().setMinModes(1);
|
||||
this.getSpellAbility().getModes().setMaxModes(3);
|
||||
// Clan Defiance deals X damage to target creature with flying;
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filterFlying).withChooseHint("deals X damage, with flying"));
|
||||
// Clan Defiance deals X damage to target creature without flying;
|
||||
Mode mode1 = new Mode();
|
||||
mode1.addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
mode1.addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
mode1.addTarget(new TargetCreaturePermanent(filterWithoutFlying).withChooseHint("deals X damage, without flying"));
|
||||
this.getSpellAbility().addMode(mode1);
|
||||
// and/or Clan Defiance deals X damage to target player.
|
||||
Mode mode2 = new Mode();
|
||||
mode2.addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
mode2.addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
mode2.addTarget(new TargetPlayerOrPlaneswalker().withChooseHint("deals X damage"));
|
||||
this.getSpellAbility().addMode(mode2);
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class ClashOfWills extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{U}");
|
||||
|
||||
// Counter target spell unless its controller pays {X}.
|
||||
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetSpell());
|
||||
}
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ public final class ClockworkAvian extends CardImpl {
|
|||
Zone.BATTLEFIELD,
|
||||
new AvianAddCountersSourceEffect(
|
||||
CounterType.P1P0.createInstance(),
|
||||
ManacostVariableValue.instance,
|
||||
ManacostVariableValue.REGULAR,
|
||||
true, true
|
||||
),
|
||||
new ManaCostsImpl("{X}"),
|
||||
|
|
|
@ -59,7 +59,7 @@ public final class ClockworkBeast extends CardImpl {
|
|||
Zone.BATTLEFIELD,
|
||||
new BeastAddCountersSourceEffect(
|
||||
CounterType.P1P0.createInstance(),
|
||||
ManacostVariableValue.instance,
|
||||
ManacostVariableValue.REGULAR,
|
||||
true, true
|
||||
),
|
||||
new ManaCostsImpl("{X}"),
|
||||
|
|
|
@ -69,7 +69,7 @@ public final class ClockworkSteed extends CardImpl {
|
|||
Zone.BATTLEFIELD,
|
||||
new ClockworkSteedAddCountersSourceEffect(
|
||||
CounterType.P1P0.createInstance(),
|
||||
ManacostVariableValue.instance,
|
||||
ManacostVariableValue.REGULAR,
|
||||
true, true
|
||||
),
|
||||
new ManaCostsImpl("{X}"),
|
||||
|
|
|
@ -72,7 +72,7 @@ public final class ClockworkSwarm extends CardImpl {
|
|||
Zone.BATTLEFIELD,
|
||||
new SwarmAddCountersSourceEffect(
|
||||
CounterType.P1P0.createInstance(),
|
||||
ManacostVariableValue.instance,
|
||||
ManacostVariableValue.REGULAR,
|
||||
true, true
|
||||
),
|
||||
new ManaCostsImpl("{X}"),
|
||||
|
|
|
@ -21,7 +21,7 @@ public final class Condescend extends CardImpl {
|
|||
|
||||
|
||||
// Counter target spell unless its controller pays {X}.
|
||||
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new CounterUnlessPaysEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetSpell());
|
||||
// Scry 2.
|
||||
this.getSpellAbility().addEffect(new ScryEffect(2));
|
||||
|
|
|
@ -38,8 +38,8 @@ public final class ConsumeSpirit extends CardImpl {
|
|||
|
||||
// Consume Spirit deals X damage to any target and you gain X life.
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.instance).concatBy("and"));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.REGULAR).concatBy("and"));
|
||||
VariableCost variableCost = this.getSpellAbility().getManaCostsToPay().getVariableCosts().get(0);
|
||||
if (variableCost instanceof VariableManaCost) {
|
||||
((VariableManaCost) variableCost).setFilter(filterBlack);
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class CorrosiveGale extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{G/P}");
|
||||
|
||||
|
||||
this.getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.instance, filter));
|
||||
this.getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.REGULAR, filter));
|
||||
}
|
||||
|
||||
private CorrosiveGale(final CorrosiveGale card) {
|
||||
|
|
|
@ -19,7 +19,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class CrackleWithPower extends CardImpl {
|
||||
|
||||
private static final DynamicValue value = new MultipliedValue(ManacostVariableValue.instance, 5);
|
||||
private static final DynamicValue value = new MultipliedValue(ManacostVariableValue.REGULAR, 5);
|
||||
|
||||
public CrackleWithPower(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{X}{X}{R}{R}");
|
||||
|
|
|
@ -24,8 +24,8 @@ public final class CratersClaws extends CardImpl {
|
|||
// Crater's Claws deals X damage to any target.
|
||||
// <i>Ferocious</i> — Crater's Claws deals X plus 2 damage to that creature or player instead if you control a creature with power 4 or greater.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(new IntPlusDynamicValue(2, ManacostVariableValue.instance)),
|
||||
new DamageTargetEffect(ManacostVariableValue.instance),
|
||||
new DamageTargetEffect(new IntPlusDynamicValue(2, ManacostVariableValue.REGULAR)),
|
||||
new DamageTargetEffect(ManacostVariableValue.REGULAR),
|
||||
FerociousCondition.instance,
|
||||
"{this} deals X damage to any target."
|
||||
+ "<br><i>Ferocious</i> — {this} deals X plus 2 damage instead if you control a creature with power 4 or greater"));
|
||||
|
|
|
@ -43,7 +43,7 @@ public final class CrimsonHellkite extends CardImpl {
|
|||
// Flying
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
// {X}, {tap}: Crimson Hellkite deals X damage to target creature. Spend only red mana on X.
|
||||
Effect effect = new DamageTargetEffect(ManacostVariableValue.instance);
|
||||
Effect effect = new DamageTargetEffect(ManacostVariableValue.REGULAR);
|
||||
effect.setText("{this} deals X damage to target creature. Spend only red mana on X");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{X}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
|
|
|
@ -38,7 +38,7 @@ public final class CryptRats extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// {X}: Crypt Rats deals X damage to each creature and each player. Spend only black mana on X.
|
||||
Effect effect = new DamageEverythingEffect(ManacostVariableValue.instance);
|
||||
Effect effect = new DamageEverythingEffect(ManacostVariableValue.REGULAR);
|
||||
effect.setText("{this} deals X damage to each creature and each player. Spend only black mana on X");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect,new ManaCostsImpl("{X}"));
|
||||
VariableCost variableCost = ability.getManaCostsToPay().getVariableCosts().get(0);
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class CutRibbons extends SplitCard {
|
|||
// Ribbons
|
||||
// Each opponent loses X life.
|
||||
getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true));
|
||||
getRightHalfCard().getSpellAbility().addEffect(new LoseLifeOpponentsEffect(ManacostVariableValue.instance));
|
||||
getRightHalfCard().getSpellAbility().addEffect(new LoseLifeOpponentsEffect(ManacostVariableValue.REGULAR));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ public final class DarkSalvation extends CardImpl {
|
|||
|
||||
// Target player creates X 2/2 black Zombie creature tokens, then up to one target creature gets -1/-1 until end of turn for each Zombie that player controls.
|
||||
this.getSpellAbility().addTarget(new TargetPlayer());
|
||||
Effect effect = new CreateTokenTargetEffect(new ZombieToken(), ManacostVariableValue.instance);
|
||||
Effect effect = new CreateTokenTargetEffect(new ZombieToken(), ManacostVariableValue.REGULAR);
|
||||
effect.setText("Target player creates X 2/2 black Zombie creature tokens");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
DynamicValue value = new ZombiesControlledByTargetPlayerCount();
|
||||
|
|
|
@ -24,7 +24,7 @@ public final class DawnglowInfusion extends CardImpl {
|
|||
|
||||
|
||||
// You gain X life if {G} was spent to cast Dawnglow Infusion and X life if {W} was spent to cast it.
|
||||
DynamicValue xValue = ManacostVariableValue.instance;
|
||||
DynamicValue xValue = ManacostVariableValue.REGULAR;
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new GainLifeEffect(xValue),
|
||||
new ManaWasSpentCondition(ColoredManaSymbol.G), "You gain X life if {G} was spent to cast this spell"));
|
||||
|
|
|
@ -25,7 +25,7 @@ public final class DeathCloud extends CardImpl {
|
|||
|
||||
|
||||
// Each player loses X life, discards X cards, sacrifices X creatures, then sacrifices X lands.
|
||||
DynamicValue xValue = ManacostVariableValue.instance;
|
||||
DynamicValue xValue = ManacostVariableValue.REGULAR;
|
||||
this.getSpellAbility().addEffect(new LoseLifeAllPlayersEffect(xValue));
|
||||
Effect effect = new DiscardEachPlayerEffect(xValue, false);
|
||||
effect.setText(", discards X cards");
|
||||
|
|
|
@ -21,8 +21,8 @@ public final class DeathGrasp extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{W}{B}");
|
||||
|
||||
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ public final class DeathWind extends CardImpl {
|
|||
|
||||
|
||||
// Target creature gets -X/-X until end of turn.
|
||||
DynamicValue x = new SignInversionDynamicValue(ManacostVariableValue.instance);
|
||||
DynamicValue x = new SignInversionDynamicValue(ManacostVariableValue.REGULAR);
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(x, x, Duration.EndOfTurn, true));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class DecreeOfJustice extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{X}{2}{W}{W}");
|
||||
|
||||
// Create X 4/4 white Angel creature tokens with flying.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new AngelToken(), ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new AngelToken(), ManacostVariableValue.REGULAR));
|
||||
|
||||
// Cycling {2}{W}
|
||||
this.addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}{W}")));
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class Demonfire extends CardImpl {
|
|||
|
||||
// Demonfire deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(ManacostVariableValue.instance),
|
||||
new DamageTargetEffect(ManacostVariableValue.REGULAR),
|
||||
new InvertCondition(HellbentCondition.instance),
|
||||
"{this} deals X damage to any target"));
|
||||
|
||||
|
@ -41,7 +41,7 @@ public final class Demonfire extends CardImpl {
|
|||
|
||||
// Hellbent - If you have no cards in hand, Demonfire can't be countered and the damage can't be prevented.
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetEffect(ManacostVariableValue.instance, false),
|
||||
new DamageTargetEffect(ManacostVariableValue.REGULAR, false),
|
||||
HellbentCondition.instance,
|
||||
"<br/><i>Hellbent</i> — If you have no cards in hand, this spell can't be countered and the damage can't be prevented."));
|
||||
// can't be countered
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class Detonate extends CardImpl {
|
|||
// Destroy target artifact with converted mana cost X. It can't be regenerated. Detonate deals X damage to that artifact's controller.
|
||||
this.getSpellAbility().addEffect(new DestroyTargetEffect(true));
|
||||
this.getSpellAbility().addTarget(new TargetArtifactPermanent(new FilterArtifactPermanent("artifact with mana value X")));
|
||||
Effect effect = new DamageTargetControllerEffect(ManacostVariableValue.instance);
|
||||
Effect effect = new DamageTargetControllerEffect(ManacostVariableValue.REGULAR);
|
||||
effect.setText("{this} deals X damage to that artifact's controller");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().setTargetAdjuster(DetonateAdjuster.instance);
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class DevilsPlay extends CardImpl {
|
|||
|
||||
|
||||
// Devil's Play deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
// Flashback {X}{R}{R}{R}
|
||||
this.addAbility(new FlashbackAbility(new ManaCostsImpl("{X}{R}{R}{R}"), TimingRule.SORCERY));
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class Disintegrate extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
|
||||
|
||||
// Disintegrate deals X damage to any target. That creature can't be regenerated this turn. If the creature would die this turn, exile it instead.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addEffect(new CantRegenerateTargetEffect(Duration.EndOfTurn, "That creature"));
|
||||
Effect effect = new ExileTargetIfDiesEffect();
|
||||
effect.setText("If the creature would die this turn, exile it instead");
|
||||
|
|
|
@ -37,8 +37,8 @@ public final class DranaKalastriaBloodchief extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
this.addAbility(FlyingAbility.getInstance());
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(StaticValue.get(0), new SignInversionDynamicValue(ManacostVariableValue.instance), Duration.EndOfTurn), new ManaCostsImpl("{X}{B}{B}"));
|
||||
ability.addEffect(new BoostSourceEffect(ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(StaticValue.get(0), new SignInversionDynamicValue(ManacostVariableValue.REGULAR), Duration.EndOfTurn), new ManaCostsImpl("{X}{B}{B}"));
|
||||
ability.addEffect(new BoostSourceEffect(ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn));
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class DregsOfSorrow extends CardImpl {
|
|||
|
||||
// Destroy X target nonblack creatures. Draw X cards.
|
||||
this.getSpellAbility().addEffect(new DestroyTargetEffect("Destroy X target nonblack creatures"));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().setTargetAdjuster(DregsOfSorrowAdjuster.instance);
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ public final class Earthquake extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{R}");
|
||||
|
||||
// Hurricane deals X damage to each creature with flying and each player.
|
||||
this.getSpellAbility().addEffect(new DamageEverythingEffect(ManacostVariableValue.instance, filter));
|
||||
this.getSpellAbility().addEffect(new DamageEverythingEffect(ManacostVariableValue.REGULAR, filter));
|
||||
}
|
||||
|
||||
private Earthquake(final Earthquake card) {
|
||||
|
|
|
@ -19,9 +19,9 @@ public final class Electrodominance extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{R}{R}");
|
||||
|
||||
// Electrodominance deals X damage to any target. You may cast a card with converted mana cost X or less from your hand without paying its mana cost.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addEffect(new CastWithoutPayingManaCostEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new CastWithoutPayingManaCostEffect(ManacostVariableValue.REGULAR));
|
||||
}
|
||||
|
||||
private Electrodominance(final Electrodominance card) {
|
||||
|
|
|
@ -24,7 +24,7 @@ public final class EmptyThePits extends CardImpl {
|
|||
this.addAbility(new DelveAbility());
|
||||
|
||||
// create X 2/2 black Zombie creature tokens tapped.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new ZombieToken(), ManacostVariableValue.instance, true, false));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new ZombieToken(), ManacostVariableValue.REGULAR, true, false));
|
||||
}
|
||||
|
||||
private EmptyThePits(final EmptyThePits card) {
|
||||
|
|
|
@ -22,10 +22,10 @@ public final class EnergyBolt extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}{W}");
|
||||
|
||||
// Choose one - Energy Bolt deals X damage to target player; or target player gains X life.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
|
||||
Mode mode = new Mode();
|
||||
mode.addEffect(new GainLifeTargetEffect(ManacostVariableValue.instance));
|
||||
mode.addEffect(new GainLifeTargetEffect(ManacostVariableValue.REGULAR));
|
||||
mode.addTarget(new TargetPlayer());
|
||||
this.getSpellAbility().addMode(mode);
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public final class EnergyVortex extends CardImpl {
|
|||
Zone.BATTLEFIELD,
|
||||
new AddCountersSourceEffect(
|
||||
CounterType.VORTEX.createInstance(),
|
||||
ManacostVariableValue.instance, true
|
||||
ManacostVariableValue.REGULAR, true
|
||||
), new ManaCostsImpl("{X}"),
|
||||
new IsStepCondition(PhaseStep.UPKEEP)
|
||||
));
|
||||
|
|
|
@ -22,7 +22,7 @@ public final class Enrage extends CardImpl {
|
|||
|
||||
|
||||
// Target creature gets +X/+0 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class EnshrinedMemories extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{G}");
|
||||
|
||||
// Reveal the top X cards of your library. Put all creature cards revealed this way into your hand and the rest on the bottom of your library in any order.
|
||||
this.getSpellAbility().addEffect(new RevealLibraryPutIntoHandEffect(ManacostVariableValue.instance, StaticFilters.FILTER_CARD_CREATURE, Zone.LIBRARY, true));
|
||||
this.getSpellAbility().addEffect(new RevealLibraryPutIntoHandEffect(ManacostVariableValue.REGULAR, StaticFilters.FILTER_CARD_CREATURE, Zone.LIBRARY, true));
|
||||
}
|
||||
|
||||
private EnshrinedMemories(final EnshrinedMemories card) {
|
||||
|
|
|
@ -22,7 +22,7 @@ public final class EntreatTheAngels extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{X}{W}{W}{W}");
|
||||
|
||||
// Create X 4/4 white Angel creature tokens with flying.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new AngelToken(), ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new AngelToken(), ManacostVariableValue.REGULAR));
|
||||
|
||||
// Miracle {X}{W}{W}
|
||||
this.addAbility(new MiracleAbility(this, new ManaCostsImpl("{X}{W}{W}")));
|
||||
|
|
|
@ -30,9 +30,9 @@ public final class ErebossIntervention extends CardImpl {
|
|||
|
||||
// Choose one —
|
||||
// • Target creature gets -X/-X until end of turn. You gain X life.
|
||||
DynamicValue x = new SignInversionDynamicValue(ManacostVariableValue.instance);
|
||||
DynamicValue x = new SignInversionDynamicValue(ManacostVariableValue.REGULAR);
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(x,x,Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.instance)
|
||||
this.getSpellAbility().addEffect(new GainLifeEffect(ManacostVariableValue.REGULAR)
|
||||
.setText("You gain X life"));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class Excise extends CardImpl {
|
|||
|
||||
// Excise target nonwhite attacking creature unless its controller pays {X}.
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
|
||||
this.getSpellAbility().addEffect(new DoUnlessTargetPlayerOrTargetsControllerPaysEffect(new ExileTargetEffect(), ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DoUnlessTargetPlayerOrTargetsControllerPaysEffect(new ExileTargetEffect(), ManacostVariableValue.REGULAR));
|
||||
}
|
||||
|
||||
private Excise(final Excise card) {
|
||||
|
|
|
@ -21,7 +21,7 @@ public final class FallOfTheTitans extends CardImpl {
|
|||
|
||||
// Fall of the Titans deals X damage to each of up to two target creatures and/or players.
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget(0, 2));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
|
||||
// Surge {X}{R}
|
||||
addAbility(new SurgeAbility(this, "{X}{R}"));
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class FanningTheFlames extends CardImpl {
|
|||
this.addAbility(new BuybackAbility("{3}"));
|
||||
|
||||
// Fanning the Flames deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
|
|
|
@ -22,11 +22,11 @@ public final class Fascination extends CardImpl {
|
|||
|
||||
// Choose one -
|
||||
// * Each player draws X cards.
|
||||
this.getSpellAbility().addEffect(new DrawCardAllEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DrawCardAllEffect(ManacostVariableValue.REGULAR));
|
||||
|
||||
// * Each player puts the top X cards of their library into their graveyard.
|
||||
Mode mode = new Mode();
|
||||
mode.addEffect(new MillCardsEachPlayerEffect(ManacostVariableValue.instance, TargetController.ANY));
|
||||
mode.addEffect(new MillCardsEachPlayerEffect(ManacostVariableValue.REGULAR, TargetController.ANY));
|
||||
this.getSpellAbility().addMode(mode);
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ public final class FestivalOfTheGuildpact extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{W}");
|
||||
|
||||
// Prevent the next X damage that would be dealt to you this turn.
|
||||
this.getSpellAbility().addEffect(new PreventDamageToControllerEffect(Duration.EndOfTurn, false, true, ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new PreventDamageToControllerEffect(Duration.EndOfTurn, false, true, ManacostVariableValue.REGULAR));
|
||||
|
||||
// Draw a card.
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1));
|
||||
|
|
|
@ -66,7 +66,7 @@ enum FinaleOfPromiseAdjuster implements TargetAdjuster {
|
|||
public void adjustTargets(Ability ability, Game game) {
|
||||
ability.getTargets().clear();
|
||||
|
||||
int xValue = ManacostVariableValue.instance.calculate(game, ability, null);
|
||||
int xValue = ManacostVariableValue.REGULAR.calculate(game, ability, null);
|
||||
|
||||
// <= must be replaced to <= for html view
|
||||
FilterCard filter1 = FinaleOfPromise.filterInstant.copy();
|
||||
|
@ -146,7 +146,7 @@ class FinaleOfPromiseEffect extends OneShotEffect {
|
|||
}
|
||||
|
||||
// If X is 10 or more, copy each of those spells twice. You may choose new targets for the copies
|
||||
int xValue = ManacostVariableValue.instance.calculate(game, source, null);
|
||||
int xValue = ManacostVariableValue.REGULAR.calculate(game, source, null);
|
||||
if (xValue >= 10) {
|
||||
for (UUID id : cardsToCast) {
|
||||
Card card = game.getCard(id);
|
||||
|
|
|
@ -20,8 +20,8 @@ public final class FlowstoneSlide extends CardImpl {
|
|||
public FlowstoneSlide(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{2}{R}{R}");
|
||||
|
||||
DynamicValue xPos = ManacostVariableValue.instance;
|
||||
DynamicValue xNeg = new SignInversionDynamicValue(ManacostVariableValue.instance);
|
||||
DynamicValue xPos = ManacostVariableValue.REGULAR;
|
||||
DynamicValue xNeg = new SignInversionDynamicValue(ManacostVariableValue.REGULAR);
|
||||
|
||||
// All creatures get +X/-X until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostAllEffect(xPos, xNeg, Duration.EndOfTurn));
|
||||
|
|
|
@ -36,7 +36,7 @@ public final class FolioOfFancies extends CardImpl {
|
|||
|
||||
// {X}{X}, {T}: Each player draws X cards.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
new DrawCardAllEffect(ManacostVariableValue.instance), new ManaCostsImpl("{X}{X}")
|
||||
new DrawCardAllEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{X}")
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -24,7 +24,7 @@ public final class ForceLightning extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}{R}");
|
||||
|
||||
// Force Lightning deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
|
||||
// Scry X.
|
||||
|
|
|
@ -73,7 +73,7 @@ class FractalHarnessTokenEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Token token = new QuandrixToken();
|
||||
token.putOntoBattlefield(1, game, source, source.getControllerId());
|
||||
int xValue = ManacostVariableValue.instance.calculate(game, source, this);
|
||||
int xValue = ManacostVariableValue.ETB.calculate(game, source, this);
|
||||
boolean flag = true;
|
||||
for (UUID tokenId : token.getLastAddedTokenIds()) {
|
||||
Permanent permanent = game.getPermanent(tokenId);
|
||||
|
|
|
@ -21,7 +21,7 @@ public final class FractalSummoning extends CardImpl {
|
|||
|
||||
// Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it.
|
||||
this.getSpellAbility().addEffect(QuandrixToken.getEffect(
|
||||
ManacostVariableValue.instance, "Put X +1/+1 counters on it"
|
||||
ManacostVariableValue.REGULAR, "Put X +1/+1 counters on it"
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ public final class GadwickTheWizened extends CardImpl {
|
|||
|
||||
// When Gadwick, the Wizened enters the battlefield, draw X cards.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||
new DrawCardSourceControllerEffect(ManacostVariableValue.instance)
|
||||
new DrawCardSourceControllerEffect(ManacostVariableValue.ETB)
|
||||
));
|
||||
|
||||
// Whenever you cast a blue spell, tap target nonland permanent an opponent controls.
|
||||
|
|
|
@ -31,7 +31,7 @@ public final class GhiredsBelligerence extends CardImpl {
|
|||
|
||||
// Ghired's Belligerence deals X damage divided as you choose among any number of target creatures. Whenever a creature dealt damage this way dies this turn, populate.
|
||||
this.getSpellAbility().addEffect(new GhiredsBelligerenceEffect());
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(ManacostVariableValue.REGULAR));
|
||||
}
|
||||
|
||||
private GhiredsBelligerence(final GhiredsBelligerence card) {
|
||||
|
@ -46,7 +46,7 @@ public final class GhiredsBelligerence extends CardImpl {
|
|||
|
||||
class GhiredsBelligerenceEffect extends OneShotEffect {
|
||||
|
||||
private static final DamageMultiEffect effect = new DamageMultiEffect(ManacostVariableValue.instance);
|
||||
private static final DamageMultiEffect effect = new DamageMultiEffect(ManacostVariableValue.REGULAR);
|
||||
|
||||
GhiredsBelligerenceEffect() {
|
||||
super(Outcome.Benefit);
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class GhituFire extends CardImpl {
|
|||
public GhituFire(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{R}");
|
||||
|
||||
Effect effect = new DamageTargetEffect(ManacostVariableValue.instance);
|
||||
Effect effect = new DamageTargetEffect(ManacostVariableValue.REGULAR);
|
||||
// You may cast Ghitu Fire as though it had flash if you pay {2} more to cast it.
|
||||
Ability ability = new PayMoreToCastAsThoughtItHadFlashAbility(this, new ManaCostsImpl("{2}"));
|
||||
ability.addEffect(effect);
|
||||
|
|
|
@ -22,7 +22,6 @@ import mage.constants.SubLayer;
|
|||
import mage.constants.Zone;
|
||||
import mage.filter.StaticFilters;
|
||||
import mage.game.Game;
|
||||
import mage.game.permanent.Permanent;
|
||||
import mage.util.functions.CopyApplier;
|
||||
|
||||
/**
|
||||
|
@ -57,7 +56,7 @@ class GigantoplasmCopyApplier extends CopyApplier {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, MageObject blueprint, Ability source, UUID copyToObjectId) {
|
||||
DynamicValue variableMana = ManacostVariableValue.instance;
|
||||
DynamicValue variableMana = ManacostVariableValue.REGULAR;
|
||||
Effect effect = new SetPowerToughnessSourceEffect(variableMana, Duration.WhileOnBattlefield, SubLayer.SetPT_7b);
|
||||
effect.setText("This creature has base power and toughness X/X");
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{X}"));
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class GoblinDynamo extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
//{X}{R}, {T}, Sacrifice Goblin Dynamo: Goblin Dynamo deals X damage to any target.
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,new DamageTargetEffect(ManacostVariableValue.instance), new ManaCostsImpl("{X}{R}"));
|
||||
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(ability);
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class GoblinOffensive extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{1}{R}{R}");
|
||||
|
||||
// create X 1/1 red Goblin creature tokens.
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new GoblinToken(), ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new CreateTokenEffect(new GoblinToken(), ManacostVariableValue.REGULAR));
|
||||
}
|
||||
|
||||
private GoblinOffensive(final GoblinOffensive card) {
|
||||
|
|
|
@ -37,7 +37,7 @@ public final class GreelMindRaker extends CardImpl {
|
|||
|
||||
// {X}{B}, {tap}, Discard two cards: Target player discards X cards at random.
|
||||
Ability ability = new SimpleActivatedAbility(new DiscardTargetEffect(
|
||||
ManacostVariableValue.instance, true
|
||||
ManacostVariableValue.REGULAR, true
|
||||
), new ManaCostsImpl("{X}{B}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, filter)));
|
||||
|
|
|
@ -20,8 +20,8 @@ public final class HailOfArrows extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{W}");
|
||||
|
||||
// Hail of Arrows deals X damage divided as you choose among any number of target attacking creatures.
|
||||
this.getSpellAbility().addEffect(new DamageMultiEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(ManacostVariableValue.instance, new FilterAttackingCreature()));
|
||||
this.getSpellAbility().addEffect(new DamageMultiEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(ManacostVariableValue.REGULAR, new FilterAttackingCreature()));
|
||||
}
|
||||
|
||||
private HailOfArrows(final HailOfArrows card) {
|
||||
|
|
|
@ -19,7 +19,7 @@ public final class HeatRay extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{X}{R}");
|
||||
|
||||
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
|
|
|
@ -32,13 +32,13 @@ public final class HeavenEarth extends SplitCard {
|
|||
|
||||
// Falling
|
||||
// Falling deals X damage to each creature with flying.
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.instance, filterFlying));
|
||||
getLeftHalfCard().getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.REGULAR, filterFlying));
|
||||
|
||||
// to
|
||||
// Earth
|
||||
// Earth deals X damage to each creature without flying.
|
||||
getRightHalfCard().addAbility(new AftermathAbility().setRuleAtTheTop(true));
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.instance, filterWithouFlying));
|
||||
getRightHalfCard().getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.REGULAR, filterWithouFlying));
|
||||
}
|
||||
|
||||
private HeavenEarth(final HeavenEarth card) {
|
||||
|
|
|
@ -23,7 +23,7 @@ import java.util.UUID;
|
|||
*/
|
||||
public final class HeliodsIntervention extends CardImpl {
|
||||
|
||||
private static final DynamicValue xValue = new MultipliedValue(ManacostVariableValue.instance, 2);
|
||||
private static final DynamicValue xValue = new MultipliedValue(ManacostVariableValue.REGULAR, 2);
|
||||
|
||||
public HeliodsIntervention(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{W}{W}");
|
||||
|
|
|
@ -34,7 +34,7 @@ public final class HelixPinnacle extends CardImpl {
|
|||
|
||||
// {X}: Put X tower counters on Helix Pinnacle.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD,
|
||||
new AddCountersSourceEffect(CounterType.TOWER.createInstance(), ManacostVariableValue.instance, true),
|
||||
new AddCountersSourceEffect(CounterType.TOWER.createInstance(), ManacostVariableValue.REGULAR, true),
|
||||
new ManaCostsImpl("{X}")));
|
||||
|
||||
// At the beginning of your upkeep, if there are 100 or more tower counters on Helix Pinnacle, you win the game.
|
||||
|
|
|
@ -69,7 +69,7 @@ class HelmOfObedienceEffect extends OneShotEffect {
|
|||
public boolean apply(Game game, Ability source) {
|
||||
Player controller = game.getPlayer(source.getControllerId());
|
||||
Player targetOpponent = game.getPlayer(source.getFirstTarget());
|
||||
int max = ManacostVariableValue.instance.calculate(game, source, this);
|
||||
int max = ManacostVariableValue.REGULAR.calculate(game, source, this);
|
||||
if (targetOpponent == null || controller == null || max < 1) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ public final class HowlFromBeyond extends CardImpl {
|
|||
|
||||
|
||||
// Target creature gets +X/+0 until end of turn.
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addEffect(new BoostTargetEffect(ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
||||
|
|
|
@ -33,10 +33,10 @@ public final class HuntToExtinction extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetOpponentsCreaturePermanent(0, 1));
|
||||
|
||||
// Hunt to Extinction deals X damage to each creature.
|
||||
this.getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.instance, new FilterCreaturePermanent()));
|
||||
this.getSpellAbility().addEffect(new DamageAllEffect(ManacostVariableValue.REGULAR, new FilterCreaturePermanent()));
|
||||
|
||||
// Hunt to Exctinction deals an additional X damage to each creature with a bounty counter on it.
|
||||
Effect effect = new DamageAllEffect(ManacostVariableValue.instance, new FilterCreaturePermanent(filter));
|
||||
Effect effect = new DamageAllEffect(ManacostVariableValue.REGULAR, new FilterCreaturePermanent(filter));
|
||||
effect.setText("Hunt to Exctinction deals an additional X damage to each creature with a bounty counter on it");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ public final class Hurricane extends CardImpl {
|
|||
|
||||
|
||||
// Hurricane deals X damage to each creature with flying and each player.
|
||||
this.getSpellAbility().addEffect(new DamageEverythingEffect(ManacostVariableValue.instance, filter));
|
||||
this.getSpellAbility().addEffect(new DamageEverythingEffect(ManacostVariableValue.REGULAR, filter));
|
||||
}
|
||||
|
||||
private Hurricane(final Hurricane card) {
|
||||
|
|
|
@ -28,14 +28,14 @@ public final class Illuminate extends CardImpl {
|
|||
kickerAbility.addKickerCost("{3}{U}");
|
||||
this.addAbility(kickerAbility);
|
||||
// Illuminate deals X damage to target creature. If Illuminate was kicked with its {2}{R} kicker, it deals X damage to that creature's controller. If Illuminate was kicked with its {3}{U} kicker, you draw X cards.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DamageTargetControllerEffect(ManacostVariableValue.instance),
|
||||
new DamageTargetControllerEffect(ManacostVariableValue.REGULAR),
|
||||
new KickedCostCondition("{2}{R}"),
|
||||
"if this spell was kicked with its {2}{R} kicker, it deals X damage to that creature's controller."));
|
||||
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
|
||||
new DrawCardSourceControllerEffect(ManacostVariableValue.instance),
|
||||
new DrawCardSourceControllerEffect(ManacostVariableValue.REGULAR),
|
||||
new KickedCostCondition("{3}{U}"),
|
||||
" if this spell was kicked with its {3}{U} kicker, you draw X cards."));
|
||||
|
||||
|
|
|
@ -21,9 +21,9 @@ public final class InvokeTheFiremind extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.SORCERY},"{X}{U}{U}{R}");
|
||||
|
||||
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(ManacostVariableValue.REGULAR));
|
||||
Mode mode = new Mode();
|
||||
mode.addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
mode.addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
mode.addTarget(new TargetAnyTarget());
|
||||
this.getSpellAbility().addMode(mode);
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ public final class JayasImmolatingInferno extends CardImpl {
|
|||
this.addAbility(new LegendarySpellAbility());
|
||||
|
||||
// Jaya's Immolating Inferno deals X damage to each of up to three targets.
|
||||
Effect effect = new DamageTargetEffect(ManacostVariableValue.instance);
|
||||
Effect effect = new DamageTargetEffect(ManacostVariableValue.REGULAR);
|
||||
effect.setText("{this} deals X damage to each of up to three targets");
|
||||
this.getSpellAbility().addEffect(effect);
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget(1, 3));
|
||||
|
|
|
@ -44,13 +44,13 @@ public final class JiwariTheEarthAflame extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// {X}{R}, {tap}: Jiwari, the Earth Aflame deals X damage to target creature without flying.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.instance), new ManaCostsImpl("{X}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent(filter));
|
||||
this.addAbility(ability);
|
||||
|
||||
// Channel - {X}{R}{R}{R}, Discard Jiwari: Jiwari deals X damage to each creature without flying.
|
||||
this.addAbility(new ChannelAbility("{X}{R}{R}{R}", new DamageAllEffect(ManacostVariableValue.instance, filter)));
|
||||
this.addAbility(new ChannelAbility("{X}{R}{R}{R}", new DamageAllEffect(ManacostVariableValue.REGULAR, filter)));
|
||||
}
|
||||
|
||||
private JiwariTheEarthAflame(final JiwariTheEarthAflame card) {
|
||||
|
|
|
@ -34,7 +34,7 @@ public final class KaerveksTorch extends CardImpl {
|
|||
// As long as Kaervek's Torch is on the stack, spells that target it cost {2} more to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.STACK, new KaerveksTorchCostIncreaseEffect()));
|
||||
// Kaervek's Torch deals X damage to any target.
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new DamageTargetEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetAnyTarget());
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ public final class KessigWolfRun extends CardImpl {
|
|||
TrampleAbility.getInstance(), Duration.EndOfTurn
|
||||
).setText("Target creature gets +X/+0"), new ManaCostsImpl("{X}{R}{G}"));
|
||||
ability.addEffect(new BoostTargetEffect(
|
||||
ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn
|
||||
ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn
|
||||
).setText("and gains trample until end of turn"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addTarget(new TargetCreaturePermanent());
|
||||
|
|
|
@ -61,7 +61,7 @@ class KillingWaveEffect extends OneShotEffect {
|
|||
return false;
|
||||
}
|
||||
|
||||
int amount = (ManacostVariableValue.instance).calculate(game, source, this);
|
||||
int amount = (ManacostVariableValue.REGULAR).calculate(game, source, this);
|
||||
if (amount > 0) {
|
||||
List<Permanent> sacrifices = new LinkedList<>();
|
||||
Map<UUID, Integer> lifePaidAmounts = new HashMap<>();
|
||||
|
|
|
@ -32,7 +32,7 @@ public final class KnollspineInvocation extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}{R}");
|
||||
|
||||
// {X}, Discard a card with converted mana cost X: Knollspine Invocation deals X damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.instance, true), new ManaCostsImpl<>("{X}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR, true), new ManaCostsImpl<>("{X}"));
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand(filter)));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
ability.setCostAdjuster(KnollspineInvocationAdjuster.instance);
|
||||
|
|
|
@ -35,7 +35,7 @@ public final class LatullaKeldonOverseer extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// {X}{R}, {tap}, Discard two cards: Latulla, Keldon Overseer deals X damage to any target.
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.instance), new ManaCostsImpl("{X}{R}"));
|
||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(ManacostVariableValue.REGULAR), new ManaCostsImpl("{X}{R}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new DiscardTargetCost(new TargetCardInHand(2, 2, new FilterCard("two cards"))));
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
|
|
|
@ -60,7 +60,7 @@ class LavaclawReachesToken extends TokenImpl {
|
|||
color.setBlack(true);
|
||||
power = new MageInt(2);
|
||||
toughness = new MageInt(2);
|
||||
addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(ManacostVariableValue.instance, StaticValue.get(0), Duration.EndOfTurn), new ManaCostsImpl("{X}")));
|
||||
addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(ManacostVariableValue.REGULAR, StaticValue.get(0), Duration.EndOfTurn), new ManaCostsImpl("{X}")));
|
||||
}
|
||||
public LavaclawReachesToken(final LavaclawReachesToken token) {
|
||||
super(token);
|
||||
|
|
|
@ -27,7 +27,7 @@ public final class Lavalanche extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{B}{R}{G}");
|
||||
|
||||
// Lavalanche deals X damage to target player and each creature they control.
|
||||
this.getSpellAbility().addEffect(new LavalancheEffect(ManacostVariableValue.instance));
|
||||
this.getSpellAbility().addEffect(new LavalancheEffect(ManacostVariableValue.REGULAR));
|
||||
this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker());
|
||||
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ public final class LifecraftAwakening extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{X}{G}");
|
||||
|
||||
// Put X +1/+1 counters on target artifact you control. If it isn't a creature or Vehicle, it becomes a 0/0 Construct artifact creature.
|
||||
ManacostVariableValue manaX = ManacostVariableValue.instance;
|
||||
ManacostVariableValue manaX = ManacostVariableValue.REGULAR;
|
||||
getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(), manaX));
|
||||
getSpellAbility().addTarget(new TargetArtifactPermanent(filter));
|
||||
getSpellAbility().addEffect(new LifecraftAwakeningEffect());
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue