forked from External/mage
refactor: SimpleStaticAbility default zone (cards U V)
This commit is contained in:
parent
2bedb4a1ee
commit
952f7d0c90
89 changed files with 103 additions and 103 deletions
|
|
@ -33,13 +33,13 @@ public final class UWing extends CardImpl {
|
|||
this.addAbility(SpaceflightAbility.getInstance());
|
||||
|
||||
// As long as U-Wing is tapped, it gets +1/+0.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(1, 0, Duration.WhileOnBattlefield),
|
||||
SourceTappedCondition.TAPPED,
|
||||
"As long as {this} is tapped, it gets +1/+0")));
|
||||
|
||||
// As long as U-Wing is untapped, it gets +0/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostSourceEffect(0, 1, Duration.WhileOnBattlefield),
|
||||
SourceTappedCondition.UNTAPPED,
|
||||
"As long as {this} is untapped, it gets +0/+1")));
|
||||
|
|
|
|||
|
|
@ -28,10 +28,10 @@ public final class UbaMask extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// If a player would draw a card, that player exiles that card face up instead.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UbaMaskReplacementEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UbaMaskReplacementEffect()));
|
||||
|
||||
// Each player may play cards they exiled with Uba Mask this turn.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UbaMaskPlayEffect()), new UbaMaskExiledCardsWatcher());
|
||||
this.addAbility(new SimpleStaticAbility(new UbaMaskPlayEffect()), new UbaMaskExiledCardsWatcher());
|
||||
}
|
||||
|
||||
private UbaMask(final UbaMask card) {
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ class UginTheIneffableEffect extends OneShotEffect {
|
|||
// with return ability
|
||||
for (UUID addedTokenId : effect.getLastAddedTokenIds()) {
|
||||
// display referenced exiled face-down card on token
|
||||
SimpleStaticAbility sa = new SimpleStaticAbility(Zone.BATTLEFIELD, new InfoEffect("Referenced object: "
|
||||
SimpleStaticAbility sa = new SimpleStaticAbility(new InfoEffect("Referenced object: "
|
||||
+ card.getId().toString().substring(0, 3)));
|
||||
GainAbilityTargetEffect gainAbilityEffect = new GainAbilityTargetEffect(sa, Duration.WhileOnBattlefield);
|
||||
gainAbilityEffect.setTargetPointer(new FixedTarget(addedTokenId));
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class UginsNexus extends CardImpl {
|
|||
this.addAbility(new SkipExtraTurnsAbility());
|
||||
|
||||
// If Ugin's Nexus would be put into a graveyard from the battlefield, instead exile it and take an extra turn after this one.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UginsNexusExileEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UginsNexusExileEffect()));
|
||||
}
|
||||
|
||||
private UginsNexus(final UginsNexus card) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class UgnaughtScrapWorker extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Droid spells you cast cost {1} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1)));
|
||||
this.addAbility(new SimpleStaticAbility(new SpellsCostReductionControllerEffect(filter, 1)));
|
||||
}
|
||||
|
||||
private UgnaughtScrapWorker(final UgnaughtScrapWorker card) {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public final class UmbraMystic extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Auras attached to permanents you control have umbra armor.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new UmbraArmorAbility(), Duration.WhileOnBattlefield, filter, false)));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(new UmbraArmorAbility(), Duration.WhileOnBattlefield, filter, false)));
|
||||
}
|
||||
|
||||
private UmbraMystic(final UmbraMystic card) {
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public final class UnbridledGrowth extends CardImpl {
|
|||
Ability gainedAbility = new AnyColorManaAbility(new TapSourceCost());
|
||||
Effect effect = new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA);
|
||||
effect.setText("Enchanted land has \"{T}: Add one mana of any color.\"");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
this.addAbility(new SimpleStaticAbility(effect));
|
||||
|
||||
// Sacrifice Unbridled Growth: Draw a card.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new SacrificeSourceCost()));
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public final class UncontrollableAnger extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+2 and attacks each turn if able.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
|
||||
Effect effect = new AttacksIfAbleAttachedEffect(Duration.WhileOnBattlefield, AttachmentType.AURA);
|
||||
effect.setText("and attacks each combat if able");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class UndeadAlchemist extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// If a Zombie you control would deal combat damage to a player, instead that player puts that many cards from the top of their library into their graveyard.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UndeadAlchemistEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UndeadAlchemistEffect()));
|
||||
|
||||
// Whenever a creature card is put into an opponent's graveyard from their library, exile that card and create a 2/2 black Zombie creature token.
|
||||
this.addAbility(new UndeadAlchemistTriggeredAbility());
|
||||
|
|
|
|||
|
|
@ -36,10 +36,10 @@ public final class UndeadWarchief extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// Zombie spells you cast cost {1} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1)));
|
||||
this.addAbility(new SimpleStaticAbility(new SpellsCostReductionControllerEffect(filter, 1)));
|
||||
|
||||
// Zombie creatures you control get +2/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(2, 1, Duration.WhileOnBattlefield, filterCreatures, false)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(2, 1, Duration.WhileOnBattlefield, filterCreatures, false)));
|
||||
}
|
||||
|
||||
private UndeadWarchief(final UndeadWarchief card) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public final class Undertow extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}");
|
||||
|
||||
// Creatures with islandwalk can be blocked as though they didn't have islandwalk.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UndertowEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UndertowEffect()));
|
||||
}
|
||||
|
||||
private Undertow(final Undertow card) {
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ public final class UnderworldCerberus extends CardImpl {
|
|||
this.toughness = new MageInt(6);
|
||||
|
||||
// Underworld Cerberus can't be blocked except by three or more creatures.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeBlockedByOneEffect(3)));
|
||||
this.addAbility(new SimpleStaticAbility(new CantBeBlockedByOneEffect(3)));
|
||||
|
||||
// Cards in graveyards can't be the targets of spells or abilities.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBeTargetedCardsGraveyardsEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new CantBeTargetedCardsGraveyardsEffect()));
|
||||
|
||||
// When Underworld Cerberus dies, exile it and each player returns all creature cards from their graveyard to their hand.
|
||||
Ability ability = new DiesSourceTriggeredAbility(new ExileSourceEffect());
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ public final class UnderworldConnections extends CardImpl {
|
|||
// Enchanted land has "{T}, Pay 1 life: Draw a card."
|
||||
Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new TapSourceCost());
|
||||
gainedAbility.addCost(new PayLifeCost(1));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield, rule)));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield, rule)));
|
||||
}
|
||||
|
||||
private UnderworldConnections(final UnderworldConnections card) {
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public final class UndyingRage extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+2 and can't block.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2,2, Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2,2, Duration.WhileOnBattlefield));
|
||||
Effect effect = new CantBlockAttachedEffect(AttachmentType.AURA);
|
||||
effect.setText("and can't block");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public final class UnflinchingCourage extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+2 and has trample and lifelink.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.AURA).setText("and has trample"));
|
||||
ability.addEffect(new GainAbilityAttachedEffect(LifelinkAbility.getInstance(), AttachmentType.AURA).setText("and lifelink"));
|
||||
this.addAbility(ability);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ public final class UnholyCitadel extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
|
||||
|
||||
// Black legendary creatures you control have "bands with other legendary creatures."
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityControlledEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect(
|
||||
new BandsWithOtherAbility(SuperType.LEGENDARY), Duration.WhileOnBattlefield, filter)
|
||||
.withForceQuotes()
|
||||
));
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public final class UnholyStrength extends CardImpl {
|
|||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature));
|
||||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 1, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(2, 1, Duration.WhileOnBattlefield)));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class UnstableMutation extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// Enchanted creature gets +3/+3.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 3)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(3, 3)));
|
||||
// At the beginning of the upkeep of enchanted creature's controller, put a -1/-1 counter on that creature.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(TargetController.CONTROLLER_ATTACHED_TO, new AddCountersAttachedEffect(CounterType.M1M1.createInstance(), "that creature"),
|
||||
false));
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class UntamedHunger extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+1 and has menace.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 1));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2, 1));
|
||||
Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA);
|
||||
effect.setText("and has menace. " +
|
||||
"<i>(It can't be blocked except by two or more creatures.)</i>");
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public final class UnwindingClock extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// Untap all artifacts you control during each other player's untap step.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UnwindingClockEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UnwindingClockEffect()));
|
||||
}
|
||||
|
||||
private UnwindingClock(final UnwindingClock card) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class UphillBattle extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{R}");
|
||||
|
||||
// Creatures played by your opponents enter the battlefield tapped.
|
||||
Ability tapAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new UphillBattleTapEffect());
|
||||
Ability tapAbility = new SimpleStaticAbility(new UphillBattleTapEffect());
|
||||
tapAbility.addWatcher(new PermanentWasCastWatcher());
|
||||
tapAbility.addWatcher(new PlayCreatureLandWatcher());
|
||||
addAbility(tapAbility);
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class Upwelling extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}");
|
||||
|
||||
// Mana pools don't empty as steps and phases end.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UpwellingRuleEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UpwellingRuleEffect()));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public final class UrDrago extends CardImpl {
|
|||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
|
||||
// Creatures with swampwalk can be blocked as though they didn't have swampwalk.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UrDragoEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UrDragoEffect()));
|
||||
}
|
||||
|
||||
private UrDrago(final UrDrago card) {
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ public final class UrbanBurgeoning extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted land has "Untap this land during each other player's untap step."
|
||||
Ability gainedAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new UrbanBurgeoningUntapEffect());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield, rule)));
|
||||
Ability gainedAbility = new SimpleStaticAbility(new UrbanBurgeoningUntapEffect());
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(gainedAbility, AttachmentType.AURA, Duration.WhileOnBattlefield, rule)));
|
||||
}
|
||||
|
||||
private UrbanBurgeoning(final UrbanBurgeoning card) {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public final class UrborgShambler extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Other black creatures get -1/-1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(-1, -1,
|
||||
this.addAbility(new SimpleStaticAbility(new BoostAllEffect(-1, -1,
|
||||
Duration.WhileOnBattlefield, filter, true)));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class UrilTheMiststalker extends CardImpl {
|
|||
|
||||
// Uril, the Miststalker gets +2/+2 for each Aura attached to it.
|
||||
AuraAttachedCount count = new AuraAttachedCount(2);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(count, count, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(count, count, Duration.WhileOnBattlefield)));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public final class UrzasArmor extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{6}");
|
||||
|
||||
// If a source would deal damage to you, prevent 1 of that damage.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UrzasArmorEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UrzasArmorEffect()));
|
||||
}
|
||||
|
||||
private UrzasArmor(final UrzasArmor card) {
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class UrzasFilter extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// Multicolored spells cost up to {2} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionAllEffect(filter, 2, true)));
|
||||
this.addAbility(new SimpleStaticAbility(new SpellsCostReductionAllEffect(filter, 2, true)));
|
||||
}
|
||||
|
||||
private UrzasFilter(final UrzasFilter card) {
|
||||
|
|
|
|||
|
|
@ -39,12 +39,12 @@ public final class UtopiaVow extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature can't attack or block.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackBlockAttachedEffect(AttachmentType.AURA)));
|
||||
this.addAbility(new SimpleStaticAbility(new CantAttackBlockAttachedEffect(AttachmentType.AURA)));
|
||||
|
||||
// Enchanted creature has "{tap}: Add one mana of any color."
|
||||
Effect effect = new GainAbilityAttachedEffect(new AnyColorManaAbility(), AttachmentType.AURA, Duration.WhileOnBattlefield);
|
||||
effect.setText("Enchanted creature has \"{T}: Add one mana of any color.\"");
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
this.addAbility(new SimpleStaticAbility(effect));
|
||||
}
|
||||
|
||||
private UtopiaVow(final UtopiaVow card) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public final class ValorMadeReal extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{W}");
|
||||
|
||||
// Target creature can block any number of creatures this turn.
|
||||
Ability gainedAbility = new SimpleStaticAbility(Zone.BATTLEFIELD, new CanBlockAdditionalCreatureEffect(0));
|
||||
Ability gainedAbility = new SimpleStaticAbility(new CanBlockAdditionalCreatureEffect(0));
|
||||
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(gainedAbility, Duration.EndOfTurn).setText("target creature can block any number of creatures this turn"));
|
||||
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public final class VampireNocturnus extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// Play with the top card of your library revealed.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PlayWithTheTopCardRevealedEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new PlayWithTheTopCardRevealedEffect()));
|
||||
// As long as the top card of your library is black, Vampire Nocturnus and other Vampire creatures you control get +2/+1 and have flying.
|
||||
this.addAbility(new VampireNocturnusAbility());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class VampiricEmbrace extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +2/+2 and has flying.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2, 2));
|
||||
Effect effect = new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA);
|
||||
effect.setText("and has flying");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class VampiricSliver extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// All Sliver creatures have "Whenever a creature dealt damage by this creature this turn dies, put a +1/+1 counter on this creature."
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
|
||||
new DealtDamageAndDiedTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance())), Duration.WhileOnBattlefield,
|
||||
filter, "All Sliver creatures have \"Whenever a creature dealt damage by this creature this turn dies, put a +1/+1 counter on this creature.\"")));
|
||||
|
||||
|
|
|
|||
|
|
@ -45,10 +45,10 @@ public final class Vampirism extends CardImpl {
|
|||
.setText("draw a card at the beginning of the next turn's upkeep"), false));
|
||||
|
||||
// Enchanted creature gets +1/+1 for each other creature you control.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VampirismBoostEnchantedEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VampirismBoostEnchantedEffect()));
|
||||
|
||||
// Other creatures you control get -1/-1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(-1, -1, Duration.WhileOnBattlefield, true)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(-1, -1, Duration.WhileOnBattlefield, true)));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,10 +31,10 @@ public final class VanguardsShield extends CardImpl {
|
|||
this.subtype.add(SubType.EQUIPMENT);
|
||||
|
||||
// Equipped creature gets +0/+3 and can block an additional creature each combat.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(0, 3)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(0, 3)));
|
||||
|
||||
// Equipped creature can block an additional creature each combat. (static abilit of equipment, no ability that will be gained to equiped creature!)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VanguardsShieldEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VanguardsShieldEffect()));
|
||||
|
||||
// Equip {3}
|
||||
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3)));
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class VanquishersBanner extends CardImpl {
|
|||
this.addAbility(new AsEntersBattlefieldAbility(new ChooseCreatureTypeEffect(Outcome.Benefit)));
|
||||
|
||||
// Creatures you control of the chosen type get +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllOfChosenSubtypeEffect(1, 1, Duration.WhileOnBattlefield, filter, false)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostAllOfChosenSubtypeEffect(1, 1, Duration.WhileOnBattlefield, filter, false)));
|
||||
|
||||
// Whenever you cast a creature spell of the chosen type, draw a card.
|
||||
this.addAbility(new DrawCardIfCreatureTypeAbility());
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public final class VaporSnare extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// You control enchanted creature.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new ControlEnchantedEffect()));
|
||||
|
||||
// At the beginning of your upkeep, sacrifice Vapor Snare unless you return a land you control to its owner's hand.
|
||||
Effect effect = new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(1, 1, StaticFilters.FILTER_CONTROLLED_PERMANENT_A_LAND, true)));
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class VastwoodZendikon extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
|
||||
Ability ability2 = new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesCreatureAttachedEffect(
|
||||
Ability ability2 = new SimpleStaticAbility(new BecomesCreatureAttachedEffect(
|
||||
new CreatureToken(6, 4, "6/4 green Elemental creature", SubType.ELEMENTAL).withColor("G"),
|
||||
"Enchanted land is a 6/4 green Elemental creature. It's still a land", Duration.WhileOnBattlefield, BecomesCreatureAttachedEffect.LoseType.COLOR));
|
||||
this.addAbility(ability2);
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class VedalkenOrrery extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// You may cast spells as though they had flash.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CastAsThoughItHadFlashAllEffect(Duration.WhileOnBattlefield, filter)));
|
||||
this.addAbility(new SimpleStaticAbility(new CastAsThoughItHadFlashAllEffect(Duration.WhileOnBattlefield, filter)));
|
||||
}
|
||||
|
||||
private VedalkenOrrery(final VedalkenOrrery card) {
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public final class Veldt extends CardImpl {
|
|||
Effect effect = new ConditionalContinuousRuleModifyingEffect(new DontUntapInControllersUntapStepSourceEffect(false, true),
|
||||
new SourceHasCounterCondition(CounterType.DEPLETION, 1, Integer.MAX_VALUE));
|
||||
effect.setText("{this} doesn't untap during your untap step if it has a depletion counter on it");
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
this.addAbility(ability);
|
||||
// At the beginning of your upkeep, remove a depletion counter from Veldt.
|
||||
Ability ability2 = new BeginningOfUpkeepTriggeredAbility(new RemoveCounterSourceEffect(CounterType.DEPLETION.createInstance()));
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public final class VenarianGold extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature doesn’t untap during its controller’s untap step if it has a sleep counter on it.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousRuleModifyingEffect(new DontUntapInControllersUntapStepEnchantedEffect(),
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousRuleModifyingEffect(new DontUntapInControllersUntapStepEnchantedEffect(),
|
||||
new AttachedToCounterCondition(CounterType.SLEEP, 1)).setText("Enchanted creature doesn't untap during its controller's untap step if it has a sleep counter on it")));
|
||||
|
||||
// At the beginning of the upkeep of enchanted creature’s controller, remove a sleep counter from that creature.
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class VengefulFirebrand extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Vengeful Firebrand has haste as long as a Warrior card is in your graveyard.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilitySourceEffect(HasteAbility.getInstance(), Duration.WhileOnBattlefield),
|
||||
VengefulFirebrandCondition.instance,
|
||||
"{this} has haste as long as a Warrior card is in your graveyard")));
|
||||
|
|
@ -69,4 +69,4 @@ enum VengefulFirebrandCondition implements Condition {
|
|||
Player player = game.getPlayer(source.getControllerId());
|
||||
return player != null && player.getGraveyard().count(filter, game) > 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public final class VensersJournal extends CardImpl {
|
|||
|
||||
// You have no maximum hand size.
|
||||
Effect effect = new MaximumHandSizeControllerEffect(Integer.MAX_VALUE, Duration.WhileOnBattlefield, HandSizeModification.SET);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
this.addAbility(new SimpleStaticAbility(effect));
|
||||
|
||||
// At the beginning of your upkeep, you gain 1 life for each card in your hand.
|
||||
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new GainLifeEffect(CardsInControllerHandCount.instance)
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public final class VerdantEmbrace extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// Enchanted creature gets +3/+3 and has "At the beginning of each upkeep, create a 1/1 green Saproling creature token."
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 3, Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(3, 3, Duration.WhileOnBattlefield));
|
||||
Ability grantedAbility = new BeginningOfUpkeepTriggeredAbility(TargetController.ANY, new CreateTokenEffect(new SaprolingToken()), false);
|
||||
Effect effect = new GainAbilityAttachedEffect(grantedAbility, AttachmentType.AURA);
|
||||
effect.setText("and has \"At the beginning of each upkeep, create a 1/1 green Saproling creature token.\"");
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class VerdantField extends CardImpl {
|
|||
// Enchanted land has "{T}: Target creature gets +1/+1 until end of turn."
|
||||
Ability gainAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new TapSourceCost());
|
||||
gainAbility.addTarget(new TargetCreaturePermanent());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainAbility, AttachmentType.AURA,
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(gainAbility, AttachmentType.AURA,
|
||||
Duration.WhileOnBattlefield, "Enchanted land has \"{T}: Target creature gets +1/+1 until end of turn.\"")));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class VernalEquinox extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}");
|
||||
|
||||
// Any player may cast creature and enchantment spells as though they had flash.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CastAsThoughItHadFlashAllEffect(Duration.WhileOnBattlefield, filter, true)));
|
||||
this.addAbility(new SimpleStaticAbility(new CastAsThoughItHadFlashAllEffect(Duration.WhileOnBattlefield, filter, true)));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class VesuvanDoppelganger extends CardImpl {
|
|||
this.toughness = new MageInt(0);
|
||||
|
||||
// You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield except it doesn't copy that creature's color and it has "At the beginning of your upkeep, you may have this creature become a copy of target creature except it doesn't copy that creature's color and it has this ability."
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new EntersBattlefieldEffect(new VesuvanDoppelgangerCopyEffect(), rule, true));
|
||||
Ability ability = new SimpleStaticAbility(new EntersBattlefieldEffect(new VesuvanDoppelgangerCopyEffect(), rule, true));
|
||||
this.addAbility(ability);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class VeteranArmorer extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// Other creatures you control get +0/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield, true)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield, true)));
|
||||
}
|
||||
|
||||
private VeteranArmorer(final VeteranArmorer card) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class VeteranArmorsmith extends CardImpl {
|
|||
|
||||
this.power = new MageInt(2);
|
||||
this.toughness = new MageInt(3);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostControlledEffect(0, 1, Duration.WhileOnBattlefield, filter, true)));
|
||||
}
|
||||
|
||||
private VeteranArmorsmith(final VeteranArmorsmith card) {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public final class VeteranBodyguard extends CardImpl {
|
|||
this.toughness = new MageInt(5);
|
||||
|
||||
// As long as Veteran Bodyguard is untapped, all damage that would be dealt to you by unblocked creatures is dealt to Veteran Bodyguard instead.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalPreventionEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalPreventionEffect(
|
||||
new VeteranBodyguardEffect(),
|
||||
SourceTappedCondition.UNTAPPED,
|
||||
"As long as {this} is untapped, all damage that would be dealt to you by unblocked creatures is dealt to {this} instead."
|
||||
|
|
|
|||
|
|
@ -39,10 +39,10 @@ public final class VeteranBrawlers extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// Veteran Brawlers can't attack if defending player controls an untapped land.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackIfDefenderControlsPermanent(filter)));
|
||||
this.addAbility(new SimpleStaticAbility(new CantAttackIfDefenderControlsPermanent(filter)));
|
||||
|
||||
// Veteran Brawlers can't block if you control an untapped land.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VeteranBrawlersCantBlockEffect(filter)));
|
||||
this.addAbility(new SimpleStaticAbility(new VeteranBrawlersCantBlockEffect(filter)));
|
||||
}
|
||||
|
||||
private VeteranBrawlers(final VeteranBrawlers card) {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class VeteransArmaments extends CardImpl {
|
|||
Ability gainedAbility = new AttacksOrBlocksTriggeredAbility(new BoostSourceEffect(xValue, xValue, Duration.EndOfTurn), false);
|
||||
Effect effect = new GainAbilityAttachedEffect(gainedAbility, AttachmentType.EQUIPMENT);
|
||||
effect.setText("Equipped creature has \"Whenever this creature attacks or blocks, it gets +1/+1 until end of turn for each attacking creature.\"");
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
this.addAbility(ability);
|
||||
|
||||
// Whenever a Soldier creature enters the battlefield, you may attach Veteran's Armaments to it.
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public final class VeteransSidearm extends CardImpl {
|
|||
this.subtype.add(SubType.EQUIPMENT);
|
||||
|
||||
// Equipped creature gets +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(1, 1)));
|
||||
|
||||
// Equip {1}
|
||||
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1)));
|
||||
|
|
|
|||
|
|
@ -23,14 +23,14 @@ public final class VibratingSphere extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}");
|
||||
|
||||
// As long as it's your turn, creatures you control get +2/+0.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostControlledEffect(2, 0, Duration.WhileOnBattlefield),
|
||||
MyTurnCondition.instance,
|
||||
"During your turn, creatures you control get +2/+0"))
|
||||
.addHint(MyTurnHint.instance));
|
||||
|
||||
// As long as it's not your turn, creatures you control get -0/-2.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new BoostControlledEffect(0, -2, Duration.WhileOnBattlefield),
|
||||
NotMyTurnCondition.instance,
|
||||
"During turns other than yours, creatures you control get -0/-2")));
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class VictoryChimes extends CardImpl {
|
|||
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
|
||||
|
||||
// Untap Victory Chimes during each other player's untap step.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new UntapSourceDuringEachOtherPlayersUntapStepEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new UntapSourceDuringEachOtherPlayersUntapStepEffect()));
|
||||
|
||||
// {T}: A player of your choice adds {C}.
|
||||
ManaEffect effect = new VictoryChimesManaEffect("chosen player");
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public final class VigeanHydropon extends CardImpl {
|
|||
this.addAbility(new GraftAbility(this, 5));
|
||||
|
||||
// Vigean Hydropon can't attack or block.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VigeanHydroponEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VigeanHydroponEffect()));
|
||||
}
|
||||
|
||||
private VigeanHydropon(final VigeanHydropon card) {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ public final class Vigilance extends CardImpl {
|
|||
this.getSpellAbility().addTarget(auraTarget);
|
||||
this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
|
||||
this.addAbility(new EnchantAbility(auraTarget));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.AURA)));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.AURA)));
|
||||
}
|
||||
|
||||
private Vigilance(final Vigilance card) {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public final class Vigor extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// If damage would be dealt to a creature you control other than Vigor, prevent that damage. Put a +1/+1 counter on that creature for each 1 damage prevented this way.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VigorReplacementEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VigorReplacementEffect()));
|
||||
|
||||
// When Vigor is put into a graveyard from anywhere, shuffle it into its owner's library.
|
||||
this.addAbility(new PutIntoGraveFromAnywhereSourceTriggeredAbility(new ShuffleIntoLibrarySourceEffect()));
|
||||
|
|
@ -98,4 +98,4 @@ class VigorReplacementEffect extends ReplacementEffectImpl {
|
|||
public VigorReplacementEffect copy() {
|
||||
return new VigorReplacementEffect(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public final class VileManifestation extends CardImpl {
|
|||
DynamicValue amount = new CardsInControllerGraveyardCount(filter);
|
||||
Effect effect = new BoostSourceEffect(amount, StaticValue.get(0), Duration.WhileOnBattlefield);
|
||||
effect.setText("Vile Manifestation gets +1/+0 for each card with cycling in your graveyard.");
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
this.addAbility(ability);
|
||||
|
||||
// Cycling {2}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public final class VillageSurvivors extends CardImpl {
|
|||
|
||||
this.addAbility(VigilanceAbility.getInstance());
|
||||
// Fateful hour - As long as you have 5 or less life, other creatures you control have vigilance.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURE, true),
|
||||
FatefulHourCondition.instance,
|
||||
"<br><i>Fateful hour</i> — As long as you have 5 or less life, other creatures you control have vigilance")));
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ public final class Vineweft extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1,1,Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(1,1,Duration.WhileOnBattlefield)));
|
||||
|
||||
// {4}{G}: Return Vineweft from your graveyard to your hand.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnSourceFromGraveyardToHandEffect(), new ManaCostsImpl<>("{4}{G}")));
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class ViridianBetrayers extends CardImpl {
|
|||
|
||||
// Viridian Betrayers has infect as long as an opponent is poisoned.
|
||||
ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(InfectAbility.getInstance()), PoisonedCondition.instance, rule);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
|
||||
this.addAbility(new SimpleStaticAbility(effect));
|
||||
}
|
||||
|
||||
private ViridianBetrayers(final ViridianBetrayers card) {
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class ViridianLongbow extends CardImpl {
|
|||
effect.setText("This creature deals 1 damage to any target");
|
||||
SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost());
|
||||
ability.addTarget(new TargetAnyTarget());
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT)));
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(ability, AttachmentType.EQUIPMENT)));
|
||||
|
||||
// Equip {3}
|
||||
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3)));
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public final class VirulentPlague extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ENCHANTMENT},"{2}{B}");
|
||||
|
||||
// Creature tokens get -2/-2
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostAllEffect(-2,-2, Duration.WhileOnBattlefield, filter, false)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostAllEffect(-2,-2, Duration.WhileOnBattlefield, filter, false)));
|
||||
}
|
||||
|
||||
private VirulentPlague(final VirulentPlague card) {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public final class VisceridArmor extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// Enchanted creature gets +1/+1.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEnchantedEffect(1, 1, Duration.WhileOnBattlefield)));
|
||||
// {1}{U}: Return Viscerid Armor to its owner's hand.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new ManaCostsImpl<>("{1}{U}")));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class VishgrazTheDoomhive extends CardImpl {
|
|||
|
||||
// Vishgraz gets +1/+1 for each poison counter your opponents have.
|
||||
DynamicValue value = OpponentsPoisonCountersCount.instance;
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(value, value, Duration.WhileOnBattlefield)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(value, value, Duration.WhileOnBattlefield)));
|
||||
}
|
||||
|
||||
private VishgrazTheDoomhive(final VishgrazTheDoomhive card) {
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public final class VisionsOfBrutality extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature can't block.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantBlockAttachedEffect(AttachmentType.AURA)));
|
||||
this.addAbility(new SimpleStaticAbility(new CantBlockAttachedEffect(AttachmentType.AURA)));
|
||||
|
||||
// Whenever enchanted creature deals damage, its controller loses that much life.
|
||||
this.addAbility(new DealsDamageAttachedTriggeredAbility(Zone.BATTLEFIELD, new VisionsOfBrutalityEffect(), false));
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public final class VizierOfRemedies extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// If one or more -1/-1 counters would be put on a creature you control, that many -1/-1 counters minus one are put on it instead.
|
||||
addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VizierOfRemediesReplacementEffect()));
|
||||
addAbility(new SimpleStaticAbility(new VizierOfRemediesReplacementEffect()));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class VodalianKnights extends CardImpl {
|
|||
this.addAbility(FirstStrikeAbility.getInstance());
|
||||
|
||||
// Vodalian Knights can't attack unless defending player controls an Island.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND, "an Island"))));
|
||||
this.addAbility(new SimpleStaticAbility(new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND, "an Island"))));
|
||||
|
||||
// When you control no Islands, sacrifice Vodalian Knights.
|
||||
this.addAbility(new ControlsPermanentsControllerTriggeredAbility(
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ public final class VodalianSerpent extends CardImpl {
|
|||
// Kicker {2}
|
||||
this.addAbility(new KickerAbility("{2}"));
|
||||
// Vodalian Serpent can't attack unless defending player controls an Island.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND, "an Island"))));
|
||||
this.addAbility(new SimpleStaticAbility(new CantAttackUnlessDefenderControllsPermanent(new FilterLandPermanent(SubType.ISLAND, "an Island"))));
|
||||
// If Vodalian Serpent was kicked, it enters with four +1/+1 counters on it.
|
||||
this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)),
|
||||
KickedCondition.ONCE, "If {this} was kicked, it enters with four +1/+1 counters on it.", ""));
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class VoiceOfAll extends CardImpl {
|
|||
this.addAbility(new AsEntersBattlefieldAbility(new ChooseColorEffect(Outcome.Benefit)));
|
||||
|
||||
// Voice of All has protection from the chosen color.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ProtectionChosenColorSourceEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new ProtectionChosenColorSourceEffect()));
|
||||
}
|
||||
|
||||
private VoiceOfAll(final VoiceOfAll card) {
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public final class VoidMaw extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// If another creature would die, exile it instead.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VoidMawEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VoidMawEffect()));
|
||||
|
||||
// Put a card exiled with Void Maw into its owner's graveyard: Void Maw gets +2/+2 until end of turn.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new VoidMawCost()));
|
||||
|
|
|
|||
|
|
@ -29,10 +29,10 @@ public final class VoidWinnower extends CardImpl {
|
|||
this.toughness = new MageInt(9);
|
||||
|
||||
// Your opponent can't cast spells with even converted mana costs. (Zero is even.)
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VoidWinnowerCantCastEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VoidWinnowerCantCastEffect()));
|
||||
|
||||
// Your opponents can't block with creatures with even converted mana costs.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VoidWinnowerCantBlockEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VoidWinnowerCantBlockEffect()));
|
||||
}
|
||||
|
||||
private VoidWinnower(final VoidWinnower card) {
|
||||
|
|
|
|||
|
|
@ -34,9 +34,9 @@ public final class VoidstoneGargoyle extends CardImpl {
|
|||
// As Voidstone Gargoyle enters the battlefield, name a nonland card.
|
||||
this.addAbility(new AsEntersBattlefieldAbility(new ChooseACardNameEffect(ChooseACardNameEffect.TypeOfName.NON_LAND_NAME)));
|
||||
// The named card can't be cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VoidstoneGargoyleReplacementEffect1()));
|
||||
this.addAbility(new SimpleStaticAbility(new VoidstoneGargoyleReplacementEffect1()));
|
||||
// Activated abilities of sources with the chosen name can't be activated.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VoidstoneGargoyleRuleModifyingEffect2()));
|
||||
this.addAbility(new SimpleStaticAbility(new VoidstoneGargoyleRuleModifyingEffect2()));
|
||||
}
|
||||
|
||||
private VoidstoneGargoyle(final VoidstoneGargoyle card) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class VolcanicStrength extends CardImpl {
|
|||
// Enchanted creature gets +2/+2 and has mountainwalk.
|
||||
Effect effect = new GainAbilityAttachedEffect(new MountainwalkAbility(), AttachmentType.AURA);
|
||||
effect.setText("and has mountainwalk");
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2, 2));
|
||||
ability.addEffect(effect);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public final class VolitionReins extends CardImpl {
|
|||
// When Volition Reins enters the battlefield, if enchanted permanent is tapped, untap it.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new UntapVolitionReinsEffect()));
|
||||
// You control enchanted permanent.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ControlEnchantedEffect("permanent")));
|
||||
this.addAbility(new SimpleStaticAbility(new ControlEnchantedEffect("permanent")));
|
||||
}
|
||||
|
||||
private VolitionReins(final VolitionReins card) {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public final class VolrathsCurse extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature can't attack or block, and its activated abilities can't be activated. That creature's controller may sacrifice a permanent for that player to ignore this effect until end of turn.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new VolrathsCurseRestrictionEffect());
|
||||
ability = new SimpleStaticAbility(new VolrathsCurseRestrictionEffect());
|
||||
ability.addEffect(new VolrathsCurseCantActivateAbilitiesEffect());
|
||||
this.addAbility(ability);
|
||||
this.addAbility(new VolrathsCurseSpecialAction());
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public final class VolrathsShapeshifter extends CardImpl {
|
|||
this.toughness = new MageInt(1);
|
||||
|
||||
// As long as the top card of your graveyard is a creature card, Volrath's Shapeshifter has the full text of that card and has the text "{2}: Discard a card."
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new VolrathsShapeshifterEffect()));
|
||||
this.addAbility(new SimpleStaticAbility(new VolrathsShapeshifterEffect()));
|
||||
|
||||
// {2}: Discard a card.
|
||||
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DiscardControllerEffect(1), new ManaCostsImpl<>("{2}")));
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public final class VoraciousReader extends CardImpl {
|
|||
this.addAbility(new ProwessAbility());
|
||||
|
||||
// Instant and sorcery spells you cast cost {1} less to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostReductionControllerEffect(filter, 1)));
|
||||
this.addAbility(new SimpleStaticAbility(new SpellsCostReductionControllerEffect(filter, 1)));
|
||||
}
|
||||
|
||||
private VoraciousReader(final VoraciousReader card) {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ public final class VorracBattlehorns extends CardImpl {
|
|||
this.subtype.add(SubType.EQUIPMENT);
|
||||
|
||||
// Equipped creature has trample and can't be blocked by more than one creature.
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.EQUIPMENT));
|
||||
Ability ability = new SimpleStaticAbility(new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.EQUIPMENT));
|
||||
Effect effect = new CantBeBlockedByMoreThanOneAttachedEffect(AttachmentType.EQUIPMENT);
|
||||
effect.setText("and can't be blocked by more than one creature");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class VowOfDuty extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// Enchanted creature gets +2/+2, has vigilance, and can't attack you or a planeswalker you control.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
Effect effect = new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield);
|
||||
effect.setText(", has vigilance");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class VowOfFlight extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// Enchanted creature gets +2/+2, has flying, and can't attack you or a planeswalker you control.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
Effect effect = new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield);
|
||||
effect.setText(", has flying");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class VowOfLightning extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// Enchanted creature gets +2/+2, has first strike, and can't attack you or a planeswalker you control.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
Effect effect = new GainAbilityAttachedEffect(FirstStrikeAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield);
|
||||
effect.setText(", has first strike");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ public final class VowOfMalice extends CardImpl {
|
|||
Ability ability = new EnchantAbility(auraTarget);
|
||||
this.addAbility(ability);
|
||||
// Enchanted creature gets +2/+2, has intimidate, and can't attack you or a planeswalker you control.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(2,2,Duration.WhileOnBattlefield));
|
||||
Effect effect = new GainAbilityAttachedEffect(IntimidateAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield);
|
||||
effect.setText(", has intimidate");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public final class VowOfWildness extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// Enchanted creature gets +3/+3, has trample, and can't attack you or a planeswalker you control.
|
||||
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3,3,Duration.WhileOnBattlefield));
|
||||
ability = new SimpleStaticAbility(new BoostEnchantedEffect(3,3,Duration.WhileOnBattlefield));
|
||||
Effect effect = new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.AURA, Duration.WhileOnBattlefield);
|
||||
effect.setText(", has trample");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public final class VrynWingmare extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Noncreature spells cost {1} more to cast.
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new SpellsCostIncreasingAllEffect(1, filter, TargetController.ANY)));
|
||||
this.addAbility(new SimpleStaticAbility(new SpellsCostIncreasingAllEffect(1, filter, TargetController.ANY)));
|
||||
}
|
||||
|
||||
private VrynWingmare(final VrynWingmare card) {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public final class VulshokBattlegear extends CardImpl {
|
|||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{3}");
|
||||
this.subtype.add(SubType.EQUIPMENT);
|
||||
this.addAbility(new EquipAbility(Outcome.BoostCreature, new GenericManaCost(3)));
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 3)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(3, 3)));
|
||||
}
|
||||
|
||||
private VulshokBattlegear(final VulshokBattlegear card) {
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ public final class VulshokGauntlets extends CardImpl {
|
|||
// Equipped creature gets +4/+2 and doesn't untap during its controller's untap step.
|
||||
Effect effect = new BoostEquippedEffect(4, 2);
|
||||
effect.setText("Equipped creature gets +4/+2");
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
|
||||
Ability ability = new SimpleStaticAbility(effect);
|
||||
effect = new VulshokGauntletsEffect();
|
||||
effect.setText("and has doesn't untap during its controller's untap step");
|
||||
ability.addEffect(effect);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public final class VulshokMorningstar extends CardImpl {
|
|||
public VulshokMorningstar(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{2}");
|
||||
this.subtype.add(SubType.EQUIPMENT);
|
||||
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2)));
|
||||
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(2, 2)));
|
||||
this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2)));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue