Fix ability keyword hint for Menace and Scry (#8603)

This commit is contained in:
Alex Vasile 2022-01-27 15:57:00 -05:00 committed by GitHub
parent b563853ec8
commit ed1db71474
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
175 changed files with 283 additions and 217 deletions

View file

@ -24,7 +24,7 @@ public final class AlleyStrangler extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
} }
private AlleyStrangler(final AlleyStrangler card) { private AlleyStrangler(final AlleyStrangler card) {

View file

@ -23,7 +23,7 @@ public final class AradaraExpress extends CardImpl {
this.toughness = new MageInt(6); this.toughness = new MageInt(6);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Crew 4 // Crew 4
this.addAbility(new CrewAbility(4)); this.addAbility(new CrewAbility(4));
} }

View file

@ -30,7 +30,7 @@ public final class ArcboundTracker extends CardImpl {
this.toughness = new MageInt(0); this.toughness = new MageInt(0);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Modular 2 // Modular 2
this.addAbility(new ModularAbility(this, 2)); this.addAbility(new ModularAbility(this, 2));

View file

@ -30,7 +30,8 @@ public final class ArmoryVeteran extends CardImpl {
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(new MenaceAbility()), new GainAbilitySourceEffect(new MenaceAbility()),
EquippedSourceCondition.instance, EquippedSourceCondition.instance,
"As long as {this} is equipped, it has menace" "As long as {this} is equipped, it has menace. " +
"<i>(It can't be blocked except by two or more creatures.)</i>"
))); )));
} }

View file

@ -36,7 +36,7 @@ public final class ArtificersAssistant extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Whenever you cast a Historic spell scry 1. // Whenever you cast a Historic spell scry 1.
this.addAbility(new SpellCastControllerTriggeredAbility(new ScryEffect(1), filter, false)); this.addAbility(new SpellCastControllerTriggeredAbility(new ScryEffect(1, false), filter, false));
} }
private ArtificersAssistant(final ArtificersAssistant card) { private ArtificersAssistant(final ArtificersAssistant card) {

View file

@ -34,7 +34,7 @@ public final class AtrisOracleOfHalfTruths extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Atris, Oracle of Half-Truths enters the battlefield, target opponent looks at the top three cards of your library and separates them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard. // When Atris, Oracle of Half-Truths enters the battlefield, target opponent looks at the top three cards of your library and separates them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard.
Ability ability = new EntersBattlefieldTriggeredAbility(new AtrisOracleOfHalfTruthsEffect()); Ability ability = new EntersBattlefieldTriggeredAbility(new AtrisOracleOfHalfTruthsEffect());

View file

@ -28,7 +28,7 @@ public final class BattlewiseHoplite extends CardImpl {
// Heroic - Whenever you cast a spell that targets Battlewise Hoplite, put a +1/+1 counter on Battlewise Hoplite, then scry 1. // Heroic - Whenever you cast a spell that targets Battlewise Hoplite, put a +1/+1 counter on Battlewise Hoplite, then scry 1.
Ability ability = new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance())); Ability ability = new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()));
ability.addEffect(new ScryEffect(1)); ability.addEffect(new ScryEffect(1, false));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -45,7 +45,8 @@ class BloodCurdleEffect extends OneShotEffect {
BloodCurdleEffect() { BloodCurdleEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "Put a menace counter on a creature you control"; staticText = "Put a menace counter on a creature you control. " +
"<i>(It can't be blocked except by two or more creatures.)</i>";
} }
private BloodCurdleEffect(final BloodCurdleEffect effect) { private BloodCurdleEffect(final BloodCurdleEffect effect) {

View file

@ -39,7 +39,7 @@ public final class BloodcrazedSocialite extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Bloodcrazed Socialite enters the battlefield, create a Blood token. // When Bloodcrazed Socialite enters the battlefield, create a Blood token.
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BloodToken()))); this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BloodToken())));

View file

@ -28,13 +28,15 @@ public final class BloodskyBerserker extends CardImpl {
this.power = new MageInt(1); this.power = new MageInt(1);
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Whenever you cast your second spell each turn, put two +1/+1 counters on Bloodsky Berserker. It gains menace until end of turn. // Whenever you cast your second spell each turn, put two +1/+1 counters on Bloodsky Berserker.
Ability ability = new CastSecondSpellTriggeredAbility( Ability ability = new CastSecondSpellTriggeredAbility(
new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)) new AddCountersSourceEffect(CounterType.P1P1.createInstance(2))
); );
// It gains menace until end of turn.
ability.addEffect(new GainAbilitySourceEffect( ability.addEffect(new GainAbilitySourceEffect(
new MenaceAbility(), Duration.EndOfTurn new MenaceAbility(), Duration.EndOfTurn
).setText("It gains menace until end of turn")); ).setText("It gains menace until end of turn. " +
"<i>(It can't be blocked except by two or more creatures.)</i>"));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -30,7 +30,8 @@ public final class BloodstoneGoblin extends CardImpl {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Whenever you cast a spell, if that spell was kicked, Bloodstone Goblin gets +1/+1 and gains menace until end of turn. // Whenever you cast a spell, if that spell was kicked,
// Bloodstone Goblin gets +1/+1 and gains menace until end of turn.
this.addAbility(new BloodstoneGoblinTriggeredAbility()); this.addAbility(new BloodstoneGoblinTriggeredAbility());
} }
@ -47,8 +48,16 @@ public final class BloodstoneGoblin extends CardImpl {
class BloodstoneGoblinTriggeredAbility extends TriggeredAbilityImpl { class BloodstoneGoblinTriggeredAbility extends TriggeredAbilityImpl {
BloodstoneGoblinTriggeredAbility() { BloodstoneGoblinTriggeredAbility() {
super(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn).setText("{this} gets +1/+1"), false); super(
this.addEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn).setText("and gains menace until end of turn")); Zone.BATTLEFIELD,
new BoostSourceEffect(1, 1, Duration.EndOfTurn).setText("{this} gets +1/+1"),
false);
this.addEffect(
new GainAbilitySourceEffect(
new MenaceAbility(false),
Duration.EndOfTurn
).setText("and gains menace until end of turn. " +
"<i>(It can't be blocked except by two or more creatures.)</i>"));
} }
BloodstoneGoblinTriggeredAbility(final BloodstoneGoblinTriggeredAbility ability) { BloodstoneGoblinTriggeredAbility(final BloodstoneGoblinTriggeredAbility ability) {

View file

@ -47,7 +47,7 @@ public final class BontuTheGlorified extends CardImpl {
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BontuTheGlorifiedRestrictionEffect()), new CreaturesDiedWatcher()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BontuTheGlorifiedRestrictionEffect()), new CreaturesDiedWatcher());
// {1}{B}, Sacrifice another creature: Scry 1. Each opponent loses 1 life and you gain 1 life. // {1}{B}, Sacrifice another creature: Scry 1. Each opponent loses 1 life and you gain 1 life.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new ManaCostsImpl("{1}{B}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new ManaCostsImpl("{1}{B}"));
ability.addEffect(new LoseLifeOpponentsEffect(1)); ability.addEffect(new LoseLifeOpponentsEffect(1));
Effect effect = new GainLifeEffect(1); Effect effect = new GainLifeEffect(1);
effect.setText("and you gain 1 life"); effect.setText("and you gain 1 life");

View file

@ -36,7 +36,7 @@ public final class BreechesBrazenPlunderer extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever one or more Pirates you control deal damage to your opponents, exile the top card of each of those opponents' libraries. You may play those cards this turn, and you may spend mana as though it were mana of any color to cast those spells. // Whenever one or more Pirates you control deal damage to your opponents, exile the top card of each of those opponents' libraries. You may play those cards this turn, and you may spend mana as though it were mana of any color to cast those spells.
this.addAbility(new BreechesBrazenPlundererTriggeredAbility()); this.addAbility(new BreechesBrazenPlundererTriggeredAbility());

View file

@ -33,7 +33,7 @@ public final class BurningProphet extends CardImpl {
).setText("{this} gets +1/+0 until end of turn, then"), ).setText("{this} gets +1/+0 until end of turn, then"),
StaticFilters.FILTER_SPELL_A_NON_CREATURE, false StaticFilters.FILTER_SPELL_A_NON_CREATURE, false
); );
ability.addEffect(new ScryEffect(1)); ability.addEffect(new ScryEffect(1, false));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -40,7 +40,7 @@ public final class CabalTherapist extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// At the beginning of your precombat main phase, you may sacrifice a creature. When you do, choose a nonland card name, then target player reveals their hand and discards all cards with that name. // At the beginning of your precombat main phase, you may sacrifice a creature. When you do, choose a nonland card name, then target player reveals their hand and discards all cards with that name.
ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility( ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility(

View file

@ -30,7 +30,7 @@ public final class CalculatingLich extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever a creature attacks one of your opponents, that player loses 1 life. // Whenever a creature attacks one of your opponents, that player loses 1 life.
this.addAbility(new CalculatingLichTriggeredAbility()); this.addAbility(new CalculatingLichTriggeredAbility());

View file

@ -39,7 +39,7 @@ public final class CemeteryDesecrator extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Cemetery Desecrator enters the battlefield or dies, exile another card from a graveyard. When you do, choose one // When Cemetery Desecrator enters the battlefield or dies, exile another card from a graveyard. When you do, choose one
// Remove X counters from target permanent, where X is the mana value of the exiled card. // Remove X counters from target permanent, where X is the mana value of the exiled card.

View file

@ -41,7 +41,7 @@ public final class ChiefJimHopper extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever Chief Jim Hopper attacks, investigate once for each nontoken attacking creature. // Whenever Chief Jim Hopper attacks, investigate once for each nontoken attacking creature.
this.addAbility(new AttacksTriggeredAbility(new InvestigateEffect(xValue) this.addAbility(new AttacksTriggeredAbility(new InvestigateEffect(xValue)

View file

@ -31,7 +31,7 @@ public final class ChitinousCloak extends CardImpl {
// Equipped creature gets +2/+2 and has menace. // Equipped creature gets +2/+2 and has menace.
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2)); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2));
Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT); Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT);
effect.setText("and has menace"); effect.setText("and has menace. <i>(It can't be blocked except by two or more creatures.)</i>");
ability.addEffect(effect); ability.addEffect(effect);
this.addAbility(ability); this.addAbility(ability);
// Equip {3} // Equip {3}

View file

@ -26,8 +26,9 @@ public final class ChorusOfTheTides extends CardImpl {
// Flying // Flying
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// <i>Heroic</i> &mdash; Whenever you cast a spell that targets Chorus of the Tides, scry 1. // <i>Heroic</i> &mdash; Whenever you cast a spell that targets Chorus of the Tides, scry 1.
this.addAbility(new HeroicAbility(new ScryEffect(1))); this.addAbility(new HeroicAbility(new ScryEffect(1, false)));
} }
private ChorusOfTheTides(final ChorusOfTheTides card) { private ChorusOfTheTides(final ChorusOfTheTides card) {

View file

@ -30,7 +30,7 @@ public final class ContrabandKingpin extends CardImpl {
this.addAbility(LifelinkAbility.getInstance()); this.addAbility(LifelinkAbility.getInstance());
// Whenever an artifact enters the battlefield under your control, scry 1. // Whenever an artifact enters the battlefield under your control, scry 1.
this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new ScryEffect(1), new FilterControlledArtifactPermanent(), false, null, true)); this.addAbility(new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new FilterControlledArtifactPermanent(), false, null, true));
} }
private ContrabandKingpin(final ContrabandKingpin card) { private ContrabandKingpin(final ContrabandKingpin card) {

View file

@ -30,7 +30,7 @@ public final class CuratorOfMysteries extends CardImpl {
this.addAbility(FlyingAbility.getInstance()); this.addAbility(FlyingAbility.getInstance());
// Whenever you cycle or discard another card, scry 1. // Whenever you cycle or discard another card, scry 1.
this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new ScryEffect(1)).setTriggerPhrase("Whenever you cycle or discard another card, ")); this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new ScryEffect(1, false)).setTriggerPhrase("Whenever you cycle or discard another card, "));
// Cycling {U} // Cycling {U}
this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}"))); this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}")));

View file

@ -35,7 +35,7 @@ public final class DeathTyrant extends CardImpl {
this.toughness = new MageInt(6); this.toughness = new MageInt(6);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Negative Energy Cone Whenever an attacking creature you control or a blocking creature an opponent controls dies, create a 2/2 black Zombie creature token. // Negative Energy Cone Whenever an attacking creature you control or a blocking creature an opponent controls dies, create a 2/2 black Zombie creature token.
this.addAbility(new DeathTyrantTriggeredAbility().withFlavorWord("Negative Energy Cone")); this.addAbility(new DeathTyrantTriggeredAbility().withFlavorWord("Negative Energy Cone"));

View file

@ -26,7 +26,7 @@ public final class DireFleetInterloper extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Dire Fleet Interloper enters the battlefield, it explores. // When Dire Fleet Interloper enters the battlefield, it explores.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ExploreSourceEffect())); this.addAbility(new EntersBattlefieldTriggeredAbility(new ExploreSourceEffect()));

View file

@ -32,7 +32,7 @@ public final class DireFleetRavager extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Deathtouch // Deathtouch
this.addAbility(DeathtouchAbility.getInstance()); this.addAbility(DeathtouchAbility.getInstance());

View file

@ -32,7 +32,7 @@ public final class DireStrainAnarchist extends CardImpl {
this.nightCard = true; this.nightCard = true;
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Haste // Haste
this.addAbility(HasteAbility.getInstance()); this.addAbility(HasteAbility.getInstance());

View file

@ -38,7 +38,10 @@ public final class DraugrsHelm extends CardImpl {
// Equipped creature gets +2/+2 and has menace. // Equipped creature gets +2/+2 and has menace.
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2)); Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(2, 2));
ability.addEffect(new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT).setText("and has menace")); ability.addEffect(new GainAbilityAttachedEffect(
new MenaceAbility(true),
AttachmentType.EQUIPMENT).setText("and has menace. " +
"<i>(It can't be blocked except by two or more creatures.)</i>"));
this.addAbility(ability); this.addAbility(ability);
// Equip {4} // Equip {4}

View file

@ -32,7 +32,7 @@ public final class Dreamstealer extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Dreamstealer deals combat damage to a player, that player discards that many cards. // When Dreamstealer deals combat damage to a player, that player discards that many cards.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DreamstealerDiscardEffect(), false, true)); this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DreamstealerDiscardEffect(), false, true));

View file

@ -38,7 +38,7 @@ public final class Endling extends CardImpl {
// {B}: Endling gains menace until end of turn. // {B}: Endling gains menace until end of turn.
this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect( this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect(
new MenaceAbility(), Duration.EndOfTurn new MenaceAbility(false), Duration.EndOfTurn
), new ManaCostsImpl<>("{B}"))); ), new ManaCostsImpl<>("{B}")));
// {B}: Endling gains deathtouch until end of turn. // {B}: Endling gains deathtouch until end of turn.

View file

@ -20,7 +20,7 @@ public final class ExposeToDaylight extends CardImpl {
// Destroy target artifact or enchantment. Scry 1. // Destroy target artifact or enchantment. Scry 1.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1, false));
this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT)); this.getSpellAbility().addTarget(new TargetPermanent(StaticFilters.FILTER_PERMANENT_ARTIFACT_OR_ENCHANTMENT));
} }

View file

@ -26,7 +26,7 @@ public final class EyesEverywhere extends CardImpl {
// At the beginning of your upkeep, scry 1. // At the beginning of your upkeep, scry 1.
this.addAbility(new BeginningOfUpkeepTriggeredAbility( this.addAbility(new BeginningOfUpkeepTriggeredAbility(
Zone.BATTLEFIELD, new ScryEffect(1), Zone.BATTLEFIELD, new ScryEffect(1, false),
TargetController.YOU, false TargetController.YOU, false
)); ));

View file

@ -41,7 +41,8 @@ class FadingHopeEffect extends OneShotEffect {
FadingHopeEffect() { FadingHopeEffect() {
super(Outcome.Benefit); super(Outcome.Benefit);
staticText = "return target creature to its owner's hand. If its mana value was 3 or less, scry 1"; staticText = "return target creature to its owner's hand. If its mana value was 3 or less, scry 1. " +
"<i>(Look at the top card of your library. You may put that card on the bottom of your library.)</i>";
} }
private FadingHopeEffect(final FadingHopeEffect effect) { private FadingHopeEffect(final FadingHopeEffect effect) {

View file

@ -41,7 +41,7 @@ public final class FalthisShadowcatFamiliar extends CardImpl {
// Commanders you control have menace and deathtouch. // Commanders you control have menace and deathtouch.
Ability ability = new SimpleStaticAbility(new GainAbilityControlledEffect( Ability ability = new SimpleStaticAbility(new GainAbilityControlledEffect(
new MenaceAbility(), Duration.WhileOnBattlefield, filter new MenaceAbility(false), Duration.WhileOnBattlefield, filter
)); ));
ability.addEffect(new GainAbilityControlledEffect( ability.addEffect(new GainAbilityControlledEffect(
DeathtouchAbility.getInstance(), Duration.WhileOnBattlefield, filter DeathtouchAbility.getInstance(), Duration.WhileOnBattlefield, filter

View file

@ -20,7 +20,7 @@ public final class FatefulEnd extends CardImpl {
// Fateful End deals 3 damage to any target. Scry 1. // Fateful End deals 3 damage to any target. Scry 1.
this.getSpellAbility().addEffect(new DamageTargetEffect(3, true, "any target")); this.getSpellAbility().addEffect(new DamageTargetEffect(3, true, "any target"));
this.getSpellAbility().addTarget(new TargetAnyTarget()); this.getSpellAbility().addTarget(new TargetAnyTarget());
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1, false));
} }
private FatefulEnd(final FatefulEnd card) { private FatefulEnd(final FatefulEnd card) {

View file

@ -42,7 +42,7 @@ public final class FathomFleetCaptain extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever Fathom Fleet Captain attacks, if you control another nontoken Pirate, you may pay {2}. If you do, creature a 2/2 black Pirate creature token with menace. // Whenever Fathom Fleet Captain attacks, if you control another nontoken Pirate, you may pay {2}. If you do, creature a 2/2 black Pirate creature token with menace.
this.addAbility(new ConditionalInterveningIfTriggeredAbility( this.addAbility(new ConditionalInterveningIfTriggeredAbility(

View file

@ -26,7 +26,10 @@ public final class FerociousTigorilla extends CardImpl {
// Ferocious Tigorilla enters the battlefield with your choice of a trample counter or a menace counter on it. // Ferocious Tigorilla enters the battlefield with your choice of a trample counter or a menace counter on it.
this.addAbility(new EntersBattlefieldAbility( this.addAbility(new EntersBattlefieldAbility(
new AddCounterChoiceSourceEffect(CounterType.TRAMPLE, CounterType.MENACE) new AddCounterChoiceSourceEffect(CounterType.TRAMPLE, CounterType.MENACE),
"Ferocious Tigorilla enters the battlefield with your choice of " +
"a trample counter or a menace counter on it. " +
"<i>(A creature with menace can't be blocked except by two or more creatures.)</i>"
)); ));
} }

View file

@ -31,7 +31,7 @@ public final class FireShrineKeeper extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// {7}{R}, {T}, Sacrifice Fire Shrine Keeper: It deals 3 damage to each of up to two target creatures. // {7}{R}, {T}, Sacrifice Fire Shrine Keeper: It deals 3 damage to each of up to two target creatures.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,

View file

@ -27,7 +27,7 @@ public final class FlamebladeAdept extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever you cycle or discard a card, Flameblade Adept gets +1/+0 until end of turn. // Whenever you cycle or discard a card, Flameblade Adept gets +1/+0 until end of turn.
this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn))); this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn)));

View file

@ -36,7 +36,7 @@ public final class Fleshtaker extends CardImpl {
Ability ability = new SacrificePermanentTriggeredAbility( Ability ability = new SacrificePermanentTriggeredAbility(
new GainLifeEffect(1), StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE new GainLifeEffect(1), StaticFilters.FILTER_CONTROLLED_ANOTHER_CREATURE
); );
ability.addEffect(new ScryEffect(1, false).concatBy("and")); ability.addEffect(new ScryEffect(1).concatBy("and"));
this.addAbility(ability); this.addAbility(ability);
// {1}, Sacrifice another creature: Fleshtaker gets +2/+2 until end of turn. // {1}, Sacrifice another creature: Fleshtaker gets +2/+2 until end of turn.

View file

@ -39,7 +39,7 @@ public final class ForswornPaladin extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// {1}{B}, {T}, Pay 1 life: Create a Treasure token. // {1}{B}, {T}, Pay 1 life: Create a Treasure token.
Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new TreasureToken()), new ManaCostsImpl<>("{1}{B}")); Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new TreasureToken()), new ManaCostsImpl<>("{1}{B}"));

View file

@ -41,7 +41,7 @@ public final class FrenziedRage extends CardImpl {
// Enchanted creature gets +2/+1 and has menace. // Enchanted creature gets +2/+1 and has menace.
ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 1)); ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 1));
Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA); Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA);
effect.setText("and has menace"); effect.setText("and has menace. <i>(It can't be blocked except by two or more creatures.)</i>");
ability.addEffect(effect); ability.addEffect(effect);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -47,7 +47,9 @@ public final class FrillscareMentor extends CardImpl {
// When Frillscare Mentor enters the battlefield, put a menace counter on target non-Human creature you control. // When Frillscare Mentor enters the battlefield, put a menace counter on target non-Human creature you control.
Ability ability = new EntersBattlefieldTriggeredAbility( Ability ability = new EntersBattlefieldTriggeredAbility(
new AddCountersTargetEffect(CounterType.MENACE.createInstance()) new AddCountersTargetEffect(CounterType.MENACE.createInstance()
).setText("put a menace counter on target non-Human creature you control. " +
"<i>(It can't be blocked except by two or more creatures.)</i>")
); );
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability); this.addAbility(ability);

View file

@ -19,7 +19,7 @@ public final class GetThePoint extends CardImpl {
// Destroy target creature. Scry 1. // Destroy target creature. Scry 1.
this.getSpellAbility().addEffect(new DestroyTargetEffect()); this.getSpellAbility().addEffect(new DestroyTargetEffect());
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1, false));
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
} }

View file

@ -35,7 +35,7 @@ public final class GlaiveOfTheGuildpact extends CardImpl {
).setText("and has vigilance")); ).setText("and has vigilance"));
ability.addEffect(new GainAbilityAttachedEffect( ability.addEffect(new GainAbilityAttachedEffect(
new MenaceAbility(), AttachmentType.EQUIPMENT new MenaceAbility(), AttachmentType.EQUIPMENT
).setText("and menace")); ).setText("and menace. <i>(A creature with menace can't be blocked except by two or more creatures.)</i>"));
ability.addHint(GateYouControlHint.instance); ability.addHint(GateYouControlHint.instance);
this.addAbility(ability); this.addAbility(ability);

View file

@ -33,7 +33,7 @@ public final class GlintSleeveSiphoner extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever Glint-Sleeve Siphoner enters the battlefield or attacks, you get {E}. // Whenever Glint-Sleeve Siphoner enters the battlefield or attacks, you get {E}.
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new GetEnergyCountersControllerEffect(1))); this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new GetEnergyCountersControllerEffect(1)));

View file

@ -24,7 +24,7 @@ public final class GluttonousSlug extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Evolve // Evolve
this.addAbility(new EvolveAbility()); this.addAbility(new EvolveAbility());

View file

@ -47,7 +47,7 @@ public final class GoblinDarkDwellers extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Goblin Dark-Dwellers enters the battlefield, you may cast target instant or sorcery card with converted mana cost 3 or less // When Goblin Dark-Dwellers enters the battlefield, you may cast target instant or sorcery card with converted mana cost 3 or less
// from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead. // from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead.

View file

@ -38,7 +38,8 @@ public final class GoblinGloryChaser extends CardImpl {
Effect effect = new ConditionalContinuousEffect( Effect effect = new ConditionalContinuousEffect(
new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield), new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield),
RenownedSourceCondition.instance, RenownedSourceCondition.instance,
"As long as {this} is renowned, it has menace"); "As long as {this} is renowned, it has menace. " +
"<i>(It can't be blocked except by two or more creatures.)</i>");
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -38,7 +38,7 @@ public final class GodEternalBontu extends CardImpl {
this.toughness = new MageInt(6); this.toughness = new MageInt(6);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When God-Eternal Bontu enters the battlefield, sacrifice any number of other permanents, then draw that many cards. // When God-Eternal Bontu enters the battlefield, sacrifice any number of other permanents, then draw that many cards.
this.addAbility(new EntersBattlefieldTriggeredAbility(new GodEternalBontuEffect())); this.addAbility(new EntersBattlefieldTriggeredAbility(new GodEternalBontuEffect()));

View file

@ -22,7 +22,7 @@ public final class GodsWilling extends CardImpl {
// Target creature you control gains protection from the color of your choice until end of turn. Scry 1. // Target creature you control gains protection from the color of your choice until end of turn. Scry 1.
this.getSpellAbility().addEffect(new GainProtectionFromColorTargetEffect(Duration.EndOfTurn)); this.getSpellAbility().addEffect(new GainProtectionFromColorTargetEffect(Duration.EndOfTurn));
this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
this.getSpellAbility().addEffect(new ScryEffect(1).concatBy("<br>")); this.getSpellAbility().addEffect(new ScryEffect(1, false).concatBy("<br>"));
} }
private GodsWilling(final GodsWilling card) { private GodsWilling(final GodsWilling card) {

View file

@ -19,7 +19,7 @@ public final class GraniticTitan extends CardImpl {
toughness = new MageInt(4); toughness = new MageInt(4);
// Menace // Menace
addAbility(new MenaceAbility()); addAbility(new MenaceAbility(false));
// Cycling {2} // Cycling {2}
addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}"))); addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}")));

View file

@ -38,7 +38,7 @@ public final class GrevenPredatorCaptain extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Greven, Predator Captain gets +X/+0, where X is the amount of life you've lost this turn. // Greven, Predator Captain gets +X/+0, where X is the amount of life you've lost this turn.
this.addAbility(new SimpleStaticAbility(new BoostSourceEffect( this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(

View file

@ -41,7 +41,7 @@ public final class Grief extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Grief enters the battlefield, target opponent reveals their hand. You choose a nonland card from it. That player discards that card. // When Grief enters the battlefield, target opponent reveals their hand. You choose a nonland card from it. That player discards that card.
Ability ability = new EntersBattlefieldTriggeredAbility( Ability ability = new EntersBattlefieldTriggeredAbility(

View file

@ -32,10 +32,13 @@ public final class GrimDraugr extends CardImpl {
// {1}{S}: Grim Draugr gets +1/+0 and gains menace until end of turn. // {1}{S}: Grim Draugr gets +1/+0 and gains menace until end of turn.
Ability ability = new SimpleActivatedAbility( Ability ability = new SimpleActivatedAbility(
new BoostSourceEffect(1, 0, Duration.EndOfTurn).setText("{this} gets +1/+0"), new ManaCostsImpl("{1}{S}") new BoostSourceEffect(1, 0, Duration.EndOfTurn).setText("{this} gets +1/+0"),
new ManaCostsImpl("{1}{S}")
); );
ability.addEffect(new GainAbilitySourceEffect( ability.addEffect(new GainAbilitySourceEffect(
new MenaceAbility(), Duration.EndOfTurn).setText("and gains menace until end of turn") new MenaceAbility(), Duration.EndOfTurn).setText("and gains menace until end of turn. " +
"<i>(It can't be blocked except by two or more creatures. " +
"{S} can be paid with one mana from a snow source.)</i>")
); );
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -33,7 +33,9 @@ public final class GruulWarChant extends CardImpl {
// Attacking creatures you control get +1/+0 and have menace. (They can't be blocked except by two or more creatures.) // Attacking creatures you control get +1/+0 and have menace. (They can't be blocked except by two or more creatures.)
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter)); Ability ability = new SimpleStaticAbility(
Zone.BATTLEFIELD,
new GainAbilityAllEffect(new MenaceAbility(false), Duration.WhileOnBattlefield, filter));
ability.addEffect(new BoostAllEffect(1,0, Duration.WhileOnBattlefield, filter, false)); ability.addEffect(new BoostAllEffect(1,0, Duration.WhileOnBattlefield, filter, false));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -44,7 +44,8 @@ public final class HagraConstrictor extends CardImpl {
// Each creature you control with a +1/+1 counter on it has menace. // Each creature you control with a +1/+1 counter on it has menace.
this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect( this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect(
new MenaceAbility(), Duration.WhileOnBattlefield, filter, new MenaceAbility(), Duration.WhileOnBattlefield, filter,
"Each creature you control with a +1/+1 counter on it has menace" "Each creature you control with a +1/+1 counter on it has menace. " +
"<i>(A creature with menace can't be blocked except by two or more creatures.)</i>"
))); )));
} }

View file

@ -22,7 +22,7 @@ public final class HarshScrutiny extends CardImpl {
// Target opponent reveals their hand. You choose a creature card from it. That player discards that card. Scry 1. // Target opponent reveals their hand. You choose a creature card from it. That player discards that card. Scry 1.
this.getSpellAbility().addTarget(new TargetOpponent()); this.getSpellAbility().addTarget(new TargetOpponent());
this.getSpellAbility().addEffect(new DiscardCardYouChooseTargetEffect(new FilterCreatureCard("a creature card"))); this.getSpellAbility().addEffect(new DiscardCardYouChooseTargetEffect(new FilterCreatureCard("a creature card")));
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1, false));
} }
private HarshScrutiny(final HarshScrutiny card) { private HarshScrutiny(final HarshScrutiny card) {

View file

@ -37,7 +37,7 @@ public final class HedronAlignment extends CardImpl {
// At the beginning of your upkeep, you may reveal your hand. If you do, you win the game if you own a card named Hedron Alignment in exile, in your hand, in your graveyard, and on the battlefield. // At the beginning of your upkeep, you may reveal your hand. If you do, you win the game if you own a card named Hedron Alignment in exile, in your hand, in your graveyard, and on the battlefield.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(new HedronAlignmentEffect(), TargetController.YOU, true)); this.addAbility(new BeginningOfUpkeepTriggeredAbility(new HedronAlignmentEffect(), TargetController.YOU, true));
// {1}{U}: Scry 1. // {1}{U}: Scry 1.
this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new ManaCostsImpl("{1}{U}"))); this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new ManaCostsImpl("{1}{U}")));
} }
private HedronAlignment(final HedronAlignment card) { private HedronAlignment(final HedronAlignment card) {

View file

@ -38,7 +38,7 @@ public final class HiddenStockpile extends CardImpl {
this.addAbility(ability); this.addAbility(ability);
// {1}, Sacrifice a creature: Scry 1. // {1}, Sacrifice a creature: Scry 1.
ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1)); ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new GenericManaCost(1));
ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT))); ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(FILTER_CONTROLLED_CREATURE_SHORT_TEXT)));
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -23,8 +23,6 @@ import mage.constants.Zone;
*/ */
public final class HoundOfTheFarbogs extends CardImpl { public final class HoundOfTheFarbogs extends CardImpl {
static final private String RULE = "{this} has menace as long as there are four or more card types among cards in your graveyard";
public HoundOfTheFarbogs(UUID ownerId, CardSetInfo setInfo) { public HoundOfTheFarbogs(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}");
this.subtype.add(SubType.ZOMBIE); this.subtype.add(SubType.ZOMBIE);
@ -33,8 +31,11 @@ public final class HoundOfTheFarbogs extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// <i>Delirium</i> &mdash; Hound of the Farborgs has menace as long as there are four or more card types among cards in your graveyard. // <i>Delirium</i> &mdash; Hound of the Farborgs has menace as long as there are four or more card types among cards in your graveyard.
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(
new ConditionalContinuousEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield), DeliriumCondition.instance, RULE)); new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield),
DeliriumCondition.instance,
"{this} has menace as long as there are four or more card types among cards in your graveyard. " +
"<i>(A creature with menace can't be blocked except by two or more creatures.)</i>"));
ability.setAbilityWord(AbilityWord.DELIRIUM); ability.setAbilityWord(AbilityWord.DELIRIUM);
ability.addHint(CardTypesInGraveyardHint.YOU); ability.addHint(CardTypesInGraveyardHint.YOU);
this.addAbility(ability); this.addAbility(ability);

View file

@ -34,7 +34,7 @@ public final class HuntedNightmare extends CardImpl {
this.toughness = new MageInt(5); this.toughness = new MageInt(5);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Hunted Nightmare enters the battlefield, target opponent puts a deathtouch counter on a creature they control. // When Hunted Nightmare enters the battlefield, target opponent puts a deathtouch counter on a creature they control.
Ability ability = new EntersBattlefieldTriggeredAbility(new HuntedNightmareEffect()); Ability ability = new EntersBattlefieldTriggeredAbility(new HuntedNightmareEffect());

View file

@ -34,7 +34,7 @@ public final class IkraShidiqiTheUsurper extends CardImpl {
this.toughness = new MageInt(7); this.toughness = new MageInt(7);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever a creature you control deals combat damage to a player, you gain life equal to that creature's toughness. // Whenever a creature you control deals combat damage to a player, you gain life equal to that creature's toughness.
this.addAbility(new IkraShidiqiTheUsurperTriggeredAbility()); this.addAbility(new IkraShidiqiTheUsurperTriggeredAbility());

View file

@ -27,7 +27,7 @@ public final class InquisitivePuppet extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// When Inquisitive Puppet enters the battlefield, scry 1. // When Inquisitive Puppet enters the battlefield, scry 1.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false)));
// Exile Inquisitive Puppet: Create a 1/1 white Human creature token. // Exile Inquisitive Puppet: Create a 1/1 white Human creature token.
this.addAbility(new SimpleActivatedAbility(new CreateTokenEffect(new HumanToken()), new ExileSourceCost())); this.addAbility(new SimpleActivatedAbility(new CreateTokenEffect(new HumanToken()), new ExileSourceCost()));

View file

@ -50,7 +50,7 @@ public final class IroasGodOfVictory extends CardImpl {
// Creatures you control have menace. (They can't be blocked except by two or more creatures.) // Creatures you control have menace. (They can't be blocked except by two or more creatures.)
this.addAbility(new SimpleStaticAbility( this.addAbility(new SimpleStaticAbility(
new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter) new GainAbilityAllEffect(new MenaceAbility(false), Duration.WhileOnBattlefield, filter)
)); ));
// Prevent all damage that would be dealt to attacking creatures you control. // Prevent all damage that would be dealt to attacking creatures you control.

View file

@ -34,7 +34,7 @@ public final class JaceUnravelerOfSecrets extends CardImpl {
this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5)); this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5));
// +1: Scry 1, then draw a card. // +1: Scry 1, then draw a card.
Ability ability = new LoyaltyAbility(new ScryEffect(1), 1); Ability ability = new LoyaltyAbility(new ScryEffect(1, false), 1);
Effect effect = new DrawCardSourceControllerEffect(1); Effect effect = new DrawCardSourceControllerEffect(1);
effect.setText(", then draw a card"); effect.setText(", then draw a card");
ability.addEffect(effect); ability.addEffect(effect);

View file

@ -19,7 +19,7 @@ public final class JayasGreeting extends CardImpl {
// Jaya's Greeting deals 3 damage to target creature. Scry 1. // Jaya's Greeting deals 3 damage to target creature. Scry 1.
this.getSpellAbility().addEffect(new DamageTargetEffect(3)); this.getSpellAbility().addEffect(new DamageTargetEffect(3));
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1, false));
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
} }

View file

@ -31,7 +31,7 @@ public final class JosuVessLichKnight extends CardImpl {
this.addAbility(new KickerAbility("{5}{B}")); this.addAbility(new KickerAbility("{5}{B}"));
//Menace //Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
//When Josu Vess, Lich Knight enters the battlefield, if it was kicked, create eight 2/2 black Zombie Knight creature tokens with menace. //When Josu Vess, Lich Knight enters the battlefield, if it was kicked, create eight 2/2 black Zombie Knight creature tokens with menace.
EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ZombieKnightToken(), 8)); EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ZombieKnightToken(), 8));

View file

@ -38,7 +38,7 @@ public final class KariZevSkyshipRaider extends CardImpl {
this.addAbility(FirstStrikeAbility.getInstance()); this.addAbility(FirstStrikeAbility.getInstance());
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever Kari Zev, Skyship Raider attacks, create a legendary 2/1 red Monkey creature token named Ragavan that's tapped and attacking. Exile that token at end of combat. // Whenever Kari Zev, Skyship Raider attacks, create a legendary 2/1 red Monkey creature token named Ragavan that's tapped and attacking. Exile that token at end of combat.
this.addAbility(new AttacksTriggeredAbility(new KariZevSkyshipRaiderEffect(), false)); this.addAbility(new AttacksTriggeredAbility(new KariZevSkyshipRaiderEffect(), false));

View file

@ -43,7 +43,7 @@ public final class KasminaEnigmaSage extends CardImpl {
this.addAbility(new SimpleStaticAbility(new KasminaEnigmaSageGainAbilitiesEffect())); this.addAbility(new SimpleStaticAbility(new KasminaEnigmaSageGainAbilitiesEffect()));
// +2: Scry 1. // +2: Scry 1.
this.addAbility(new LoyaltyAbility(new ScryEffect(1), 2)); this.addAbility(new LoyaltyAbility(new ScryEffect(1, false), 2));
// X: Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it. // X: Create a 0/0 green and blue Fractal creature token. Put X +1/+1 counters on it.
this.addAbility(new LoyaltyAbility(FractalToken.getEffect( this.addAbility(new LoyaltyAbility(FractalToken.getEffect(

View file

@ -37,7 +37,7 @@ public final class KelsFightFixer extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever you sacrifice a creature, you may pay {U/B}. If you do, draw a card. // Whenever you sacrifice a creature, you may pay {U/B}. If you do, draw a card.
this.addAbility(new KelsFightFixerTriggeredAbility()); this.addAbility(new KelsFightFixerTriggeredAbility());

View file

@ -31,7 +31,7 @@ public final class KessigWolfrider extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// {2}{R}, {T}, Exile three cards from your graveyard: Create a 3/2 red Wolf creature token. // {2}{R}, {T}, Exile three cards from your graveyard: Create a 3/2 red Wolf creature token.
Ability ability = new SimpleActivatedAbility( Ability ability = new SimpleActivatedAbility(

View file

@ -28,7 +28,7 @@ public final class KhenraScrapper extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// You may exert Khenra Scrapper as it attacks. When you do, it gets +2/+0 until end of turn. // You may exert Khenra Scrapper as it attacks. When you do, it gets +2/+0 until end of turn.
this.addAbility(new ExertAbility(new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn)))); this.addAbility(new ExertAbility(new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn))));

View file

@ -41,7 +41,7 @@ public final class KheruMindEater extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever Kheru Mind-Eater deals combat damage to a player, that player exiles a card from their hand face down. // Whenever Kheru Mind-Eater deals combat damage to a player, that player exiles a card from their hand face down.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new KheruMindEaterExileEffect(), false, true)); this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new KheruMindEaterExileEffect(), false, true));

View file

@ -53,7 +53,7 @@ public final class KozilekTheGreatDistortion extends CardImpl {
new CardsInHandCondition(ComparisonType.FEWER_THAN, 7), new CardsInHandCondition(ComparisonType.FEWER_THAN, 7),
"When you cast this spell, if you have fewer than seven cards in hand, draw cards equal to the difference.")); "When you cast this spell, if you have fewer than seven cards in hand, draw cards equal to the difference."));
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Discard a card with converted mana cost X: Counter target spell with converted mana cost X. // Discard a card with converted mana cost X: Counter target spell with converted mana cost X.
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new KozilekDiscardCost()); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new KozilekDiscardCost());

View file

@ -38,7 +38,8 @@ public final class KozileksShrieker extends CardImpl {
effect.setText("{this} gets +1/+0"); effect.setText("{this} gets +1/+0");
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{C}")); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{C}"));
effect = new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn); effect = new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn);
effect.setText("and gains menace until end of turn"); effect.setText("and gains menace until end of turn. " +
"<i>(It can't be blocked except by two or more creatures. {C} represents colorless mana.)</i>");
ability.addEffect(effect); ability.addEffect(effect);
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -34,7 +34,7 @@ public final class KunorosHoundOfAthreos extends CardImpl {
this.addAbility(VigilanceAbility.getInstance()); this.addAbility(VigilanceAbility.getInstance());
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Lifelink // Lifelink
this.addAbility(LifelinkAbility.getInstance()); this.addAbility(LifelinkAbility.getInstance());

View file

@ -51,7 +51,7 @@ public final class LabyrinthRaptor extends CardImpl {
this.toughness = new MageInt(2); this.toughness = new MageInt(2);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever a creature you control with menace becomes blocked, defending player sacrifices a creature blocking it. // Whenever a creature you control with menace becomes blocked, defending player sacrifices a creature blocking it.
this.addAbility(new BecomesBlockedAllTriggeredAbility( this.addAbility(new BecomesBlockedAllTriggeredAbility(

View file

@ -45,7 +45,7 @@ public final class LathrilBladeOfTheElves extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever Lathril, Blade of the Elves deals combat damage to a player, create that many 1/1 green Elf Warrior creature tokens. // Whenever Lathril, Blade of the Elves deals combat damage to a player, create that many 1/1 green Elf Warrior creature tokens.
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new CreateTokenEffect( this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new CreateTokenEffect(

View file

@ -25,7 +25,7 @@ public final class LifecraftersBestiary extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
// At the beginning of your upkeep, scry 1. // At the beginning of your upkeep, scry 1.
this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ScryEffect(1), TargetController.YOU, false)); this.addAbility(new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), TargetController.YOU, false));
// Whenever you cast a creature spell, you may pay {G}. If you do, draw a card. // Whenever you cast a creature spell, you may pay {G}. If you do, draw a card.
this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{G}")), StaticFilters.FILTER_SPELL_A_CREATURE, false)); this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{G}")), StaticFilters.FILTER_SPELL_A_CREATURE, false));

View file

@ -44,7 +44,7 @@ public final class LoathsomeCurator extends CardImpl {
this.addAbility(new ExploitAbility()); this.addAbility(new ExploitAbility());
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Loathsome Curator exploits a creature, destroy target creature you don't control with mana value 3 or less. // When Loathsome Curator exploits a creature, destroy target creature you don't control with mana value 3 or less.
Ability ability = new ExploitCreatureTriggeredAbility(new DestroyTargetEffect(), false); Ability ability = new ExploitCreatureTriggeredAbility(new DestroyTargetEffect(), false);

View file

@ -30,7 +30,7 @@ public final class LoreholdCampus extends CardImpl {
this.addAbility(new WhiteManaAbility()); this.addAbility(new WhiteManaAbility());
// {4}, {T}: Scry 1. // {4}, {T}: Scry 1.
Ability ability = new SimpleActivatedAbility(new ScryEffect(1), new GenericManaCost(4)); Ability ability = new SimpleActivatedAbility(new ScryEffect(1, false), new GenericManaCost(4));
ability.addCost(new TapSourceCost()); ability.addCost(new TapSourceCost());
this.addAbility(ability); this.addAbility(ability);
} }

View file

@ -31,7 +31,8 @@ public final class LoseCalm extends CardImpl {
this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn, "It gains haste")); this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn, "It gains haste"));
this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addTarget(new TargetCreaturePermanent());
effect = new GainAbilityTargetEffect(new MenaceAbility(), Duration.EndOfTurn); effect = new GainAbilityTargetEffect(new MenaceAbility(), Duration.EndOfTurn);
effect.setText("and menace until end of turn"); effect.setText("and menace until end of turn." +
"<i>(A creature with menace can't be blocked except by two or more creatures.)</i>");
this.getSpellAbility().addEffect(effect); this.getSpellAbility().addEffect(effect);
} }

View file

@ -27,7 +27,7 @@ public final class LoyalSubordinate extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Lieutenant At the beginning of combat on your turn, if you control your commander, each opponent loses 3 life. // Lieutenant At the beginning of combat on your turn, if you control your commander, each opponent loses 3 life.
this.addAbility(new ConditionalTriggeredAbility( this.addAbility(new ConditionalTriggeredAbility(

View file

@ -39,7 +39,7 @@ public final class MadcapSkills extends CardImpl {
// Enchanted creature gets +3/+0 and and has menace. (It can't be blocked except by two or more creatures.) // Enchanted creature gets +3/+0 and and has menace. (It can't be blocked except by two or more creatures.)
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 0))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, 0)));
this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(new MenaceAbility(false), AttachmentType.AURA)));
} }
private MadcapSkills(final MadcapSkills card) { private MadcapSkills(final MadcapSkills card) {

View file

@ -18,7 +18,7 @@ public final class ManaGeode extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}");
// When Mana Geode enters the battlefield, scry 1. // When Mana Geode enters the battlefield, scry 1.
this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false)));
// {T}: Add one mana of any color. // {T}: Add one mana of any color.
this.addAbility(new AnyColorManaAbility()); this.addAbility(new AnyColorManaAbility());

View file

@ -47,7 +47,7 @@ public final class MaritLagesSlumber extends CardImpl {
// Whenever Marit Lage's Slumber or another snow permanent enters the battlefield under your control, scry 1. // Whenever Marit Lage's Slumber or another snow permanent enters the battlefield under your control, scry 1.
this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility( this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility(
new ScryEffect(1), filter, false, true new ScryEffect(1, false), filter, false, true
)); ));
// At the beginning of your upkeep, if you control ten or more snow permanents, sacrifice Marit Lage's Slumber. If you do, create Marit Lage, a legendary 20/20 black Avatar creature token with flying and indestructible. // At the beginning of your upkeep, if you control ten or more snow permanents, sacrifice Marit Lage's Slumber. If you do, create Marit Lage, a legendary 20/20 black Avatar creature token with flying and indestructible.

View file

@ -31,7 +31,7 @@ public final class MassacreGirl extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Massacre Girl enters the battlefield, each other creature gets -1/-1 until end of turn. Whenever a creature dies this turn, each creature other than Massacre Girl gets -1/-1 until end of turn. // When Massacre Girl enters the battlefield, each other creature gets -1/-1 until end of turn. Whenever a creature dies this turn, each creature other than Massacre Girl gets -1/-1 until end of turn.
this.addAbility(new EntersBattlefieldTriggeredAbility(new MassacreGirlEffect())); this.addAbility(new EntersBattlefieldTriggeredAbility(new MassacreGirlEffect()));

View file

@ -49,7 +49,7 @@ public final class MathasFiendSeeker extends CardImpl {
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// At the beginning of your end step, put a bounty counter on target creature an opponent controls. For as long as that creature has a bounty counter on it, it has "When this creature dies, each opponent draws a card and gains 2 life." // At the beginning of your end step, put a bounty counter on target creature an opponent controls. For as long as that creature has a bounty counter on it, it has "When this creature dies, each opponent draws a card and gains 2 life."
Ability ability = new BeginningOfYourEndStepTriggeredAbility(new AddCountersTargetEffect(CounterType.BOUNTY.createInstance()), false); Ability ability = new BeginningOfYourEndStepTriggeredAbility(new AddCountersTargetEffect(CounterType.BOUNTY.createInstance()), false);

View file

@ -24,7 +24,7 @@ public final class MaulfistSquad extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Fabricate 1 // Fabricate 1
this.addAbility(new FabricateAbility(1)); this.addAbility(new FabricateAbility(1));

View file

@ -31,7 +31,7 @@ public final class MazemindTome extends CardImpl {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}");
// {T}, Put a page counter on Mazemind Tome: Scry 1. // {T}, Put a page counter on Mazemind Tome: Scry 1.
Ability ability = new SimpleActivatedAbility(new ScryEffect(1), new TapSourceCost()); Ability ability = new SimpleActivatedAbility(new ScryEffect(1, false), new TapSourceCost());
ability.addCost(new PutCountersSourceCost(CounterType.PAGE.createInstance())); ability.addCost(new PutCountersSourceCost(CounterType.PAGE.createInstance()));
this.addAbility(ability); this.addAbility(ability);

View file

@ -34,7 +34,7 @@ public final class MinionOfTheMighty extends CardImpl {
this.toughness = new MageInt(1); this.toughness = new MageInt(1);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Pack tactics Whenever Minion of the Mighty attacks, if you attacked with creatures wih total power 6 or greater this combat, you may put a Dragon creature card from your hand onto the battlefield tapped and attacking. // Pack tactics Whenever Minion of the Mighty attacks, if you attacked with creatures wih total power 6 or greater this combat, you may put a Dragon creature card from your hand onto the battlefield tapped and attacking.
this.addAbility(new PackTacticsAbility(new MinionOfTheMightyEffect())); this.addAbility(new PackTacticsAbility(new MinionOfTheMightyEffect()));

View file

@ -32,22 +32,22 @@ public final class MoodmarkPainter extends CardImpl {
this.power = new MageInt(2); this.power = new MageInt(2);
this.toughness = new MageInt(3); this.toughness = new MageInt(3);
// Undergrowth When Moodmark Painter enters the battlefield, target creature gains menace and gets +X/+0 until end of turn, where X is the number of creature cards in your graveyard. // Undergrowth When Moodmark Painter enters the battlefield,
DynamicValue xValue = new CardsInControllerGraveyardCount(
StaticFilters.FILTER_CARD_CREATURE
);
Ability ability = new EntersBattlefieldTriggeredAbility( Ability ability = new EntersBattlefieldTriggeredAbility(
new GainAbilityTargetEffect( new GainAbilityTargetEffect(
new MenaceAbility(), new MenaceAbility(false),
Duration.EndOfTurn Duration.EndOfTurn
).setText("target creature gains menace"), ).setText("target creature gains menace."),
false); false);
// target creature gains menace and gets +X/+0 until end of turn,
// where X is the number of creature cards in your graveyard.
DynamicValue xValue = new CardsInControllerGraveyardCount(StaticFilters.FILTER_CARD_CREATURE);
ability.addEffect(new BoostTargetEffect( ability.addEffect(new BoostTargetEffect(
xValue, StaticValue.get(0), xValue, StaticValue.get(0),
Duration.EndOfTurn, true Duration.EndOfTurn, true
).setText("and gets +X/+0 until end of turn, " ).setText("and gets +X/+0 until end of turn, "
+ "where X is the number of creature cards in your graveyard") + "where X is the number of creature cards in your graveyard. " +
); "<i>(It can't be blocked except by two or more creatures.)</i>")); // Must be here to match Oracle text
ability.addTarget(new TargetCreaturePermanent()); ability.addTarget(new TargetCreaturePermanent());
ability.withFlavorWord("Undergrowth"); ability.withFlavorWord("Undergrowth");
this.addAbility(ability); this.addAbility(ability);

View file

@ -21,7 +21,7 @@ public final class MysticRedaction extends CardImpl {
// At the beginning of your upkeep, scry 1. // At the beginning of your upkeep, scry 1.
this.addAbility(new BeginningOfUpkeepTriggeredAbility( this.addAbility(new BeginningOfUpkeepTriggeredAbility(
new ScryEffect(1), TargetController.YOU, false new ScryEffect(1, false), TargetController.YOU, false
)); ));
// Whenever you discard a card, each opponent mills two cards. // Whenever you discard a card, each opponent mills two cards.

View file

@ -45,7 +45,7 @@ public final class NikaraLairScavenger extends CardImpl {
this.addAbility(new PartnerWithAbility("Yannik, Scavenging Sentinel")); this.addAbility(new PartnerWithAbility("Yannik, Scavenging Sentinel"));
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Whenever another creature you control leaves the battlefield, if it had one or more counters on it, you draw a card and lose 1 life. // Whenever another creature you control leaves the battlefield, if it had one or more counters on it, you draw a card and lose 1 life.
Ability ability = new LeavesBattlefieldAllTriggeredAbility(new DrawCardSourceControllerEffect(1) Ability ability = new LeavesBattlefieldAllTriggeredAbility(new DrawCardSourceControllerEffect(1)

View file

@ -37,7 +37,8 @@ public final class NimanaSkitterSneak extends CardImpl {
)); ));
ability.addEffect(new ConditionalContinuousEffect( ability.addEffect(new ConditionalContinuousEffect(
new GainAbilitySourceEffect(new MenaceAbility()), new GainAbilitySourceEffect(new MenaceAbility()),
CardsInOpponentGraveyardCondition.EIGHT, "and has menace" CardsInOpponentGraveyardCondition.EIGHT, "and has menace. " +
"<i>(It can't be blocked except by two or more creatures.)</i>"
)); ));
this.addAbility(ability.addHint(CardsInOpponentGraveyardCondition.EIGHT.getHint())); this.addAbility(ability.addHint(CardsInOpponentGraveyardCondition.EIGHT.getHint()));
} }

View file

@ -34,7 +34,7 @@ public final class NoEscape extends CardImpl {
this.getSpellAbility().addTarget(new TargetSpell(filter)); this.getSpellAbility().addTarget(new TargetSpell(filter));
// Scry 1. // Scry 1.
this.getSpellAbility().addEffect(new ScryEffect(1)); this.getSpellAbility().addEffect(new ScryEffect(1, false));
} }
private NoEscape(final NoEscape card) { private NoEscape(final NoEscape card) {

View file

@ -38,7 +38,7 @@ public final class NoxiousGearhulk extends CardImpl {
this.toughness = new MageInt(4); this.toughness = new MageInt(4);
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// When Noxious Gearhulk enters the battlefield, you may destroy another target creature. If a creature is destroyed this way, you gain life equal to its toughness. // When Noxious Gearhulk enters the battlefield, you may destroy another target creature. If a creature is destroyed this way, you gain life equal to its toughness.
Ability ability = new EntersBattlefieldTriggeredAbility(new NoxiousGearhulkEffect()); Ability ability = new EntersBattlefieldTriggeredAbility(new NoxiousGearhulkEffect());

View file

@ -35,7 +35,7 @@ public final class NullpriestOfOblivion extends CardImpl {
this.addAbility(new KickerAbility("{3}{B}")); this.addAbility(new KickerAbility("{3}{B}"));
// Menace // Menace
this.addAbility(new MenaceAbility()); this.addAbility(new MenaceAbility(false));
// Lifelink // Lifelink
this.addAbility(LifelinkAbility.getInstance()); this.addAbility(LifelinkAbility.getInstance());

View file

@ -29,7 +29,7 @@ public final class OggyarBattleSeer extends CardImpl {
this.addAbility(HasteAbility.getInstance()); this.addAbility(HasteAbility.getInstance());
// {T}: Scry 1. // {T}: Scry 1.
this.addAbility(new SimpleActivatedAbility(new ScryEffect(1), new TapSourceCost())); this.addAbility(new SimpleActivatedAbility(new ScryEffect(1, false), new TapSourceCost()));
} }
private OggyarBattleSeer(final OggyarBattleSeer card) { private OggyarBattleSeer(final OggyarBattleSeer card) {

View file

@ -41,7 +41,8 @@ public final class OgreErrant extends CardImpl {
// Whenever Ogre Errant attacks, another target attacking Knight gains menace until end of turn. // Whenever Ogre Errant attacks, another target attacking Knight gains menace until end of turn.
Ability ability = new AttacksTriggeredAbility(new GainAbilityTargetEffect( Ability ability = new AttacksTriggeredAbility(new GainAbilityTargetEffect(
new MenaceAbility(), Duration.EndOfTurn new MenaceAbility(), Duration.EndOfTurn
).setText("another target attacking Knight gains menace until end of turn"), false); ).setText("another target attacking Knight gains menace until end of turn." +
"<i>(It can't be blocked except by two or more creatures.)</i>"), false);
ability.addTarget(new TargetPermanent(filter)); ability.addTarget(new TargetPermanent(filter));
this.addAbility(ability); this.addAbility(ability);
} }

Some files were not shown because too many files have changed in this diff Show more