diff --git a/Mage.Sets/src/mage/cards/a/AlleyStrangler.java b/Mage.Sets/src/mage/cards/a/AlleyStrangler.java index f56725ad4b..e963508179 100644 --- a/Mage.Sets/src/mage/cards/a/AlleyStrangler.java +++ b/Mage.Sets/src/mage/cards/a/AlleyStrangler.java @@ -24,7 +24,7 @@ public final class AlleyStrangler extends CardImpl { this.toughness = new MageInt(3); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); } private AlleyStrangler(final AlleyStrangler card) { diff --git a/Mage.Sets/src/mage/cards/a/AradaraExpress.java b/Mage.Sets/src/mage/cards/a/AradaraExpress.java index 4e72beb064..1ac94290c3 100644 --- a/Mage.Sets/src/mage/cards/a/AradaraExpress.java +++ b/Mage.Sets/src/mage/cards/a/AradaraExpress.java @@ -23,7 +23,7 @@ public final class AradaraExpress extends CardImpl { this.toughness = new MageInt(6); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Crew 4 this.addAbility(new CrewAbility(4)); } diff --git a/Mage.Sets/src/mage/cards/a/ArcboundTracker.java b/Mage.Sets/src/mage/cards/a/ArcboundTracker.java index c407d7e401..a5310f0839 100644 --- a/Mage.Sets/src/mage/cards/a/ArcboundTracker.java +++ b/Mage.Sets/src/mage/cards/a/ArcboundTracker.java @@ -30,7 +30,7 @@ public final class ArcboundTracker extends CardImpl { this.toughness = new MageInt(0); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Modular 2 this.addAbility(new ModularAbility(this, 2)); diff --git a/Mage.Sets/src/mage/cards/a/ArmoryVeteran.java b/Mage.Sets/src/mage/cards/a/ArmoryVeteran.java index e775d66896..df367735e7 100644 --- a/Mage.Sets/src/mage/cards/a/ArmoryVeteran.java +++ b/Mage.Sets/src/mage/cards/a/ArmoryVeteran.java @@ -30,7 +30,8 @@ public final class ArmoryVeteran extends CardImpl { this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new MenaceAbility()), EquippedSourceCondition.instance, - "As long as {this} is equipped, it has menace" + "As long as {this} is equipped, it has menace. " + + "(It can't be blocked except by two or more creatures.)" ))); } diff --git a/Mage.Sets/src/mage/cards/a/ArtificersAssistant.java b/Mage.Sets/src/mage/cards/a/ArtificersAssistant.java index 4cd1e56eb8..8af18e85ac 100644 --- a/Mage.Sets/src/mage/cards/a/ArtificersAssistant.java +++ b/Mage.Sets/src/mage/cards/a/ArtificersAssistant.java @@ -36,7 +36,7 @@ public final class ArtificersAssistant extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // 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) { diff --git a/Mage.Sets/src/mage/cards/a/AtrisOracleOfHalfTruths.java b/Mage.Sets/src/mage/cards/a/AtrisOracleOfHalfTruths.java index a73e886ae7..4b131130bf 100644 --- a/Mage.Sets/src/mage/cards/a/AtrisOracleOfHalfTruths.java +++ b/Mage.Sets/src/mage/cards/a/AtrisOracleOfHalfTruths.java @@ -34,7 +34,7 @@ public final class AtrisOracleOfHalfTruths extends CardImpl { this.toughness = new MageInt(2); // 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. Ability ability = new EntersBattlefieldTriggeredAbility(new AtrisOracleOfHalfTruthsEffect()); diff --git a/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java b/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java index db612dbb0e..205b00562e 100644 --- a/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java +++ b/Mage.Sets/src/mage/cards/b/BattlewiseHoplite.java @@ -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. Ability ability = new HeroicAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance())); - ability.addEffect(new ScryEffect(1)); + ability.addEffect(new ScryEffect(1, false)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BloodCurdle.java b/Mage.Sets/src/mage/cards/b/BloodCurdle.java index 6256c807ce..9a75ba77a1 100644 --- a/Mage.Sets/src/mage/cards/b/BloodCurdle.java +++ b/Mage.Sets/src/mage/cards/b/BloodCurdle.java @@ -45,7 +45,8 @@ class BloodCurdleEffect extends OneShotEffect { BloodCurdleEffect() { super(Outcome.Benefit); - staticText = "Put a menace counter on a creature you control"; + staticText = "Put a menace counter on a creature you control. " + + "(It can't be blocked except by two or more creatures.)"; } private BloodCurdleEffect(final BloodCurdleEffect effect) { diff --git a/Mage.Sets/src/mage/cards/b/BloodcrazedSocialite.java b/Mage.Sets/src/mage/cards/b/BloodcrazedSocialite.java index c980daeaa4..fbb4fb5c23 100644 --- a/Mage.Sets/src/mage/cards/b/BloodcrazedSocialite.java +++ b/Mage.Sets/src/mage/cards/b/BloodcrazedSocialite.java @@ -39,7 +39,7 @@ public final class BloodcrazedSocialite extends CardImpl { this.toughness = new MageInt(3); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // When Bloodcrazed Socialite enters the battlefield, create a Blood token. this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new BloodToken()))); diff --git a/Mage.Sets/src/mage/cards/b/BloodskyBerserker.java b/Mage.Sets/src/mage/cards/b/BloodskyBerserker.java index 0d3fe7916d..093e5c4d94 100644 --- a/Mage.Sets/src/mage/cards/b/BloodskyBerserker.java +++ b/Mage.Sets/src/mage/cards/b/BloodskyBerserker.java @@ -28,13 +28,15 @@ public final class BloodskyBerserker extends CardImpl { this.power = 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( new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)) ); + // It gains menace until end of turn. ability.addEffect(new GainAbilitySourceEffect( new MenaceAbility(), Duration.EndOfTurn - ).setText("It gains menace until end of turn")); + ).setText("It gains menace until end of turn. " + + "(It can't be blocked except by two or more creatures.)")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/b/BloodstoneGoblin.java b/Mage.Sets/src/mage/cards/b/BloodstoneGoblin.java index fca05c1755..df74047ebe 100644 --- a/Mage.Sets/src/mage/cards/b/BloodstoneGoblin.java +++ b/Mage.Sets/src/mage/cards/b/BloodstoneGoblin.java @@ -30,7 +30,8 @@ public final class BloodstoneGoblin extends CardImpl { this.power = 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()); } @@ -47,8 +48,16 @@ public final class BloodstoneGoblin extends CardImpl { class BloodstoneGoblinTriggeredAbility extends TriggeredAbilityImpl { BloodstoneGoblinTriggeredAbility() { - super(Zone.BATTLEFIELD, new BoostSourceEffect(1, 1, Duration.EndOfTurn).setText("{this} gets +1/+1"), false); - this.addEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn).setText("and gains menace until end of turn")); + super( + 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. " + + "(It can't be blocked except by two or more creatures.)")); } BloodstoneGoblinTriggeredAbility(final BloodstoneGoblinTriggeredAbility ability) { diff --git a/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java b/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java index 1788c63fcd..25702c9115 100644 --- a/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java +++ b/Mage.Sets/src/mage/cards/b/BontuTheGlorified.java @@ -47,7 +47,7 @@ public final class BontuTheGlorified extends CardImpl { 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. - 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)); Effect effect = new GainLifeEffect(1); effect.setText("and you gain 1 life"); diff --git a/Mage.Sets/src/mage/cards/b/BreechesBrazenPlunderer.java b/Mage.Sets/src/mage/cards/b/BreechesBrazenPlunderer.java index 9738b9f5eb..57ff731372 100644 --- a/Mage.Sets/src/mage/cards/b/BreechesBrazenPlunderer.java +++ b/Mage.Sets/src/mage/cards/b/BreechesBrazenPlunderer.java @@ -36,7 +36,7 @@ public final class BreechesBrazenPlunderer extends CardImpl { this.toughness = new MageInt(3); // 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. this.addAbility(new BreechesBrazenPlundererTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/b/BurningProphet.java b/Mage.Sets/src/mage/cards/b/BurningProphet.java index 1fd95238a1..6d7d53e226 100644 --- a/Mage.Sets/src/mage/cards/b/BurningProphet.java +++ b/Mage.Sets/src/mage/cards/b/BurningProphet.java @@ -33,7 +33,7 @@ public final class BurningProphet extends CardImpl { ).setText("{this} gets +1/+0 until end of turn, then"), StaticFilters.FILTER_SPELL_A_NON_CREATURE, false ); - ability.addEffect(new ScryEffect(1)); + ability.addEffect(new ScryEffect(1, false)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/c/CabalTherapist.java b/Mage.Sets/src/mage/cards/c/CabalTherapist.java index 24777da028..53997fd42a 100644 --- a/Mage.Sets/src/mage/cards/c/CabalTherapist.java +++ b/Mage.Sets/src/mage/cards/c/CabalTherapist.java @@ -40,7 +40,7 @@ public final class CabalTherapist extends CardImpl { this.toughness = new MageInt(1); // 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. ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/c/CalculatingLich.java b/Mage.Sets/src/mage/cards/c/CalculatingLich.java index d003b57b95..1c242614ff 100644 --- a/Mage.Sets/src/mage/cards/c/CalculatingLich.java +++ b/Mage.Sets/src/mage/cards/c/CalculatingLich.java @@ -30,7 +30,7 @@ public final class CalculatingLich extends CardImpl { this.toughness = new MageInt(5); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Whenever a creature attacks one of your opponents, that player loses 1 life. this.addAbility(new CalculatingLichTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/c/CemeteryDesecrator.java b/Mage.Sets/src/mage/cards/c/CemeteryDesecrator.java index 679101bdf6..60b7218455 100644 --- a/Mage.Sets/src/mage/cards/c/CemeteryDesecrator.java +++ b/Mage.Sets/src/mage/cards/c/CemeteryDesecrator.java @@ -39,7 +39,7 @@ public final class CemeteryDesecrator extends CardImpl { this.toughness = new MageInt(4); // 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 — // • Remove X counters from target permanent, where X is the mana value of the exiled card. diff --git a/Mage.Sets/src/mage/cards/c/ChiefJimHopper.java b/Mage.Sets/src/mage/cards/c/ChiefJimHopper.java index e04af2b378..b6c0192a0f 100644 --- a/Mage.Sets/src/mage/cards/c/ChiefJimHopper.java +++ b/Mage.Sets/src/mage/cards/c/ChiefJimHopper.java @@ -41,7 +41,7 @@ public final class ChiefJimHopper extends CardImpl { this.toughness = new MageInt(4); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Whenever Chief Jim Hopper attacks, investigate once for each nontoken attacking creature. this.addAbility(new AttacksTriggeredAbility(new InvestigateEffect(xValue) diff --git a/Mage.Sets/src/mage/cards/c/ChitinousCloak.java b/Mage.Sets/src/mage/cards/c/ChitinousCloak.java index a5a77ca0aa..05a1ceceb2 100644 --- a/Mage.Sets/src/mage/cards/c/ChitinousCloak.java +++ b/Mage.Sets/src/mage/cards/c/ChitinousCloak.java @@ -31,7 +31,7 @@ public final class ChitinousCloak extends CardImpl { // Equipped creature gets +2/+2 and has menace. Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2)); Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT); - effect.setText("and has menace"); + effect.setText("and has menace. (It can't be blocked except by two or more creatures.)"); ability.addEffect(effect); this.addAbility(ability); // Equip {3} diff --git a/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java b/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java index 82cae80069..2488a17894 100644 --- a/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java +++ b/Mage.Sets/src/mage/cards/c/ChorusOfTheTides.java @@ -26,8 +26,9 @@ public final class ChorusOfTheTides extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); + // Heroic — 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) { diff --git a/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java b/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java index 2fe369114e..b32c69e4b5 100644 --- a/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java +++ b/Mage.Sets/src/mage/cards/c/ContrabandKingpin.java @@ -30,7 +30,7 @@ public final class ContrabandKingpin extends CardImpl { this.addAbility(LifelinkAbility.getInstance()); // 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) { diff --git a/Mage.Sets/src/mage/cards/c/CuratorOfMysteries.java b/Mage.Sets/src/mage/cards/c/CuratorOfMysteries.java index 89676d6ec0..7254784abb 100644 --- a/Mage.Sets/src/mage/cards/c/CuratorOfMysteries.java +++ b/Mage.Sets/src/mage/cards/c/CuratorOfMysteries.java @@ -30,7 +30,7 @@ public final class CuratorOfMysteries extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // 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} this.addAbility(new CyclingAbility(new ManaCostsImpl("{U}"))); diff --git a/Mage.Sets/src/mage/cards/d/DeathTyrant.java b/Mage.Sets/src/mage/cards/d/DeathTyrant.java index f9d4210b7f..c41d2a17c7 100644 --- a/Mage.Sets/src/mage/cards/d/DeathTyrant.java +++ b/Mage.Sets/src/mage/cards/d/DeathTyrant.java @@ -35,7 +35,7 @@ public final class DeathTyrant extends CardImpl { this.toughness = new MageInt(6); // 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. this.addAbility(new DeathTyrantTriggeredAbility().withFlavorWord("Negative Energy Cone")); diff --git a/Mage.Sets/src/mage/cards/d/DireFleetInterloper.java b/Mage.Sets/src/mage/cards/d/DireFleetInterloper.java index 71ae84264e..0cd77718f4 100644 --- a/Mage.Sets/src/mage/cards/d/DireFleetInterloper.java +++ b/Mage.Sets/src/mage/cards/d/DireFleetInterloper.java @@ -26,7 +26,7 @@ public final class DireFleetInterloper extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // When Dire Fleet Interloper enters the battlefield, it explores. this.addAbility(new EntersBattlefieldTriggeredAbility(new ExploreSourceEffect())); diff --git a/Mage.Sets/src/mage/cards/d/DireFleetRavager.java b/Mage.Sets/src/mage/cards/d/DireFleetRavager.java index c78b07025b..fee6aeefc3 100644 --- a/Mage.Sets/src/mage/cards/d/DireFleetRavager.java +++ b/Mage.Sets/src/mage/cards/d/DireFleetRavager.java @@ -32,7 +32,7 @@ public final class DireFleetRavager extends CardImpl { this.toughness = new MageInt(4); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Deathtouch this.addAbility(DeathtouchAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/d/DireStrainAnarchist.java b/Mage.Sets/src/mage/cards/d/DireStrainAnarchist.java index 8978cc15b3..a683736bce 100644 --- a/Mage.Sets/src/mage/cards/d/DireStrainAnarchist.java +++ b/Mage.Sets/src/mage/cards/d/DireStrainAnarchist.java @@ -32,7 +32,7 @@ public final class DireStrainAnarchist extends CardImpl { this.nightCard = true; // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Haste this.addAbility(HasteAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/d/DraugrsHelm.java b/Mage.Sets/src/mage/cards/d/DraugrsHelm.java index 0946ff51f3..bb4bf54758 100644 --- a/Mage.Sets/src/mage/cards/d/DraugrsHelm.java +++ b/Mage.Sets/src/mage/cards/d/DraugrsHelm.java @@ -38,7 +38,10 @@ public final class DraugrsHelm extends CardImpl { // Equipped creature gets +2/+2 and has menace. 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. " + + "(It can't be blocked except by two or more creatures.)")); this.addAbility(ability); // Equip {4} diff --git a/Mage.Sets/src/mage/cards/d/Dreamstealer.java b/Mage.Sets/src/mage/cards/d/Dreamstealer.java index 1258c57c59..7fea7af4f3 100644 --- a/Mage.Sets/src/mage/cards/d/Dreamstealer.java +++ b/Mage.Sets/src/mage/cards/d/Dreamstealer.java @@ -32,7 +32,7 @@ public final class Dreamstealer extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // When Dreamstealer deals combat damage to a player, that player discards that many cards. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DreamstealerDiscardEffect(), false, true)); diff --git a/Mage.Sets/src/mage/cards/e/Endling.java b/Mage.Sets/src/mage/cards/e/Endling.java index f09d3a8cc4..651c88a92f 100644 --- a/Mage.Sets/src/mage/cards/e/Endling.java +++ b/Mage.Sets/src/mage/cards/e/Endling.java @@ -38,7 +38,7 @@ public final class Endling extends CardImpl { // {B}: Endling gains menace until end of turn. this.addAbility(new SimpleActivatedAbility(new GainAbilitySourceEffect( - new MenaceAbility(), Duration.EndOfTurn + new MenaceAbility(false), Duration.EndOfTurn ), new ManaCostsImpl<>("{B}"))); // {B}: Endling gains deathtouch until end of turn. diff --git a/Mage.Sets/src/mage/cards/e/ExposeToDaylight.java b/Mage.Sets/src/mage/cards/e/ExposeToDaylight.java index 7de10992de..3d0198e9fb 100644 --- a/Mage.Sets/src/mage/cards/e/ExposeToDaylight.java +++ b/Mage.Sets/src/mage/cards/e/ExposeToDaylight.java @@ -20,7 +20,7 @@ public final class ExposeToDaylight extends CardImpl { // Destroy target artifact or enchantment. Scry 1. 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)); } diff --git a/Mage.Sets/src/mage/cards/e/EyesEverywhere.java b/Mage.Sets/src/mage/cards/e/EyesEverywhere.java index 701e6ef560..8407fa700e 100644 --- a/Mage.Sets/src/mage/cards/e/EyesEverywhere.java +++ b/Mage.Sets/src/mage/cards/e/EyesEverywhere.java @@ -26,7 +26,7 @@ public final class EyesEverywhere extends CardImpl { // At the beginning of your upkeep, scry 1. this.addAbility(new BeginningOfUpkeepTriggeredAbility( - Zone.BATTLEFIELD, new ScryEffect(1), + Zone.BATTLEFIELD, new ScryEffect(1, false), TargetController.YOU, false )); diff --git a/Mage.Sets/src/mage/cards/f/FadingHope.java b/Mage.Sets/src/mage/cards/f/FadingHope.java index 766cf5b408..40b0a6b441 100644 --- a/Mage.Sets/src/mage/cards/f/FadingHope.java +++ b/Mage.Sets/src/mage/cards/f/FadingHope.java @@ -41,7 +41,8 @@ class FadingHopeEffect extends OneShotEffect { FadingHopeEffect() { 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. " + + "(Look at the top card of your library. You may put that card on the bottom of your library.)"; } private FadingHopeEffect(final FadingHopeEffect effect) { diff --git a/Mage.Sets/src/mage/cards/f/FalthisShadowcatFamiliar.java b/Mage.Sets/src/mage/cards/f/FalthisShadowcatFamiliar.java index 5c6b4b83e5..f381e27dc3 100644 --- a/Mage.Sets/src/mage/cards/f/FalthisShadowcatFamiliar.java +++ b/Mage.Sets/src/mage/cards/f/FalthisShadowcatFamiliar.java @@ -41,7 +41,7 @@ public final class FalthisShadowcatFamiliar extends CardImpl { // Commanders you control have menace and deathtouch. Ability ability = new SimpleStaticAbility(new GainAbilityControlledEffect( - new MenaceAbility(), Duration.WhileOnBattlefield, filter + new MenaceAbility(false), Duration.WhileOnBattlefield, filter )); ability.addEffect(new GainAbilityControlledEffect( DeathtouchAbility.getInstance(), Duration.WhileOnBattlefield, filter diff --git a/Mage.Sets/src/mage/cards/f/FatefulEnd.java b/Mage.Sets/src/mage/cards/f/FatefulEnd.java index 22813579de..4890a8f841 100644 --- a/Mage.Sets/src/mage/cards/f/FatefulEnd.java +++ b/Mage.Sets/src/mage/cards/f/FatefulEnd.java @@ -20,7 +20,7 @@ public final class FatefulEnd extends CardImpl { // Fateful End deals 3 damage to any target. Scry 1. this.getSpellAbility().addEffect(new DamageTargetEffect(3, true, "any target")); this.getSpellAbility().addTarget(new TargetAnyTarget()); - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); } private FatefulEnd(final FatefulEnd card) { diff --git a/Mage.Sets/src/mage/cards/f/FathomFleetCaptain.java b/Mage.Sets/src/mage/cards/f/FathomFleetCaptain.java index a63f325fd2..b90388e91c 100644 --- a/Mage.Sets/src/mage/cards/f/FathomFleetCaptain.java +++ b/Mage.Sets/src/mage/cards/f/FathomFleetCaptain.java @@ -42,7 +42,7 @@ public final class FathomFleetCaptain extends CardImpl { this.toughness = new MageInt(1); // 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. this.addAbility(new ConditionalInterveningIfTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/f/FerociousTigorilla.java b/Mage.Sets/src/mage/cards/f/FerociousTigorilla.java index 32764e2b4f..25e4776a2b 100644 --- a/Mage.Sets/src/mage/cards/f/FerociousTigorilla.java +++ b/Mage.Sets/src/mage/cards/f/FerociousTigorilla.java @@ -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. 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. " + + "(A creature with menace can't be blocked except by two or more creatures.)" )); } diff --git a/Mage.Sets/src/mage/cards/f/FireShrineKeeper.java b/Mage.Sets/src/mage/cards/f/FireShrineKeeper.java index 689d6af117..f94593d22e 100644 --- a/Mage.Sets/src/mage/cards/f/FireShrineKeeper.java +++ b/Mage.Sets/src/mage/cards/f/FireShrineKeeper.java @@ -31,7 +31,7 @@ public final class FireShrineKeeper extends CardImpl { this.toughness = new MageInt(1); // 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. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/cards/f/FlamebladeAdept.java b/Mage.Sets/src/mage/cards/f/FlamebladeAdept.java index 0520943ff0..3b0772f866 100644 --- a/Mage.Sets/src/mage/cards/f/FlamebladeAdept.java +++ b/Mage.Sets/src/mage/cards/f/FlamebladeAdept.java @@ -27,7 +27,7 @@ public final class FlamebladeAdept extends CardImpl { this.toughness = new MageInt(2); // 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. this.addAbility(new CycleOrDiscardControllerTriggeredAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn))); diff --git a/Mage.Sets/src/mage/cards/f/Fleshtaker.java b/Mage.Sets/src/mage/cards/f/Fleshtaker.java index 2b83c1e811..96560f8433 100644 --- a/Mage.Sets/src/mage/cards/f/Fleshtaker.java +++ b/Mage.Sets/src/mage/cards/f/Fleshtaker.java @@ -36,7 +36,7 @@ public final class Fleshtaker extends CardImpl { Ability ability = new SacrificePermanentTriggeredAbility( 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); // {1}, Sacrifice another creature: Fleshtaker gets +2/+2 until end of turn. diff --git a/Mage.Sets/src/mage/cards/f/ForswornPaladin.java b/Mage.Sets/src/mage/cards/f/ForswornPaladin.java index 16ed68fd80..1ba35dffdf 100644 --- a/Mage.Sets/src/mage/cards/f/ForswornPaladin.java +++ b/Mage.Sets/src/mage/cards/f/ForswornPaladin.java @@ -39,7 +39,7 @@ public final class ForswornPaladin extends CardImpl { this.toughness = new MageInt(1); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // {1}{B}, {T}, Pay 1 life: Create a Treasure token. Ability ability = new SimpleActivatedAbility(new CreateTokenEffect(new TreasureToken()), new ManaCostsImpl<>("{1}{B}")); diff --git a/Mage.Sets/src/mage/cards/f/FrenziedRage.java b/Mage.Sets/src/mage/cards/f/FrenziedRage.java index 52dd2bfec8..de51f6e52d 100644 --- a/Mage.Sets/src/mage/cards/f/FrenziedRage.java +++ b/Mage.Sets/src/mage/cards/f/FrenziedRage.java @@ -41,7 +41,7 @@ public final class FrenziedRage extends CardImpl { // Enchanted creature gets +2/+1 and has menace. ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 1)); Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA); - effect.setText("and has menace"); + effect.setText("and has menace. (It can't be blocked except by two or more creatures.)"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/f/FrillscareMentor.java b/Mage.Sets/src/mage/cards/f/FrillscareMentor.java index 87e3d85b73..919a18f74d 100644 --- a/Mage.Sets/src/mage/cards/f/FrillscareMentor.java +++ b/Mage.Sets/src/mage/cards/f/FrillscareMentor.java @@ -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. 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. " + + "(It can't be blocked except by two or more creatures.)") ); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/g/GetThePoint.java b/Mage.Sets/src/mage/cards/g/GetThePoint.java index 1e61882237..eaaf9e751d 100644 --- a/Mage.Sets/src/mage/cards/g/GetThePoint.java +++ b/Mage.Sets/src/mage/cards/g/GetThePoint.java @@ -19,7 +19,7 @@ public final class GetThePoint extends CardImpl { // Destroy target creature. Scry 1. this.getSpellAbility().addEffect(new DestroyTargetEffect()); - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/g/GlaiveOfTheGuildpact.java b/Mage.Sets/src/mage/cards/g/GlaiveOfTheGuildpact.java index 69eaad0167..42effa53c6 100644 --- a/Mage.Sets/src/mage/cards/g/GlaiveOfTheGuildpact.java +++ b/Mage.Sets/src/mage/cards/g/GlaiveOfTheGuildpact.java @@ -35,7 +35,7 @@ public final class GlaiveOfTheGuildpact extends CardImpl { ).setText("and has vigilance")); ability.addEffect(new GainAbilityAttachedEffect( new MenaceAbility(), AttachmentType.EQUIPMENT - ).setText("and menace")); + ).setText("and menace. (A creature with menace can't be blocked except by two or more creatures.)")); ability.addHint(GateYouControlHint.instance); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java b/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java index 99b1d4bc1d..dad8c4c9ba 100644 --- a/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java +++ b/Mage.Sets/src/mage/cards/g/GlintSleeveSiphoner.java @@ -33,7 +33,7 @@ public final class GlintSleeveSiphoner extends CardImpl { this.toughness = new MageInt(1); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Whenever Glint-Sleeve Siphoner enters the battlefield or attacks, you get {E}. this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new GetEnergyCountersControllerEffect(1))); diff --git a/Mage.Sets/src/mage/cards/g/GluttonousSlug.java b/Mage.Sets/src/mage/cards/g/GluttonousSlug.java index bd9695b4a1..be22de82e0 100644 --- a/Mage.Sets/src/mage/cards/g/GluttonousSlug.java +++ b/Mage.Sets/src/mage/cards/g/GluttonousSlug.java @@ -24,7 +24,7 @@ public final class GluttonousSlug extends CardImpl { this.toughness = new MageInt(3); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Evolve this.addAbility(new EvolveAbility()); diff --git a/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java b/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java index 6c0642398b..d07ba81c42 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java +++ b/Mage.Sets/src/mage/cards/g/GoblinDarkDwellers.java @@ -47,7 +47,7 @@ public final class GoblinDarkDwellers extends CardImpl { this.toughness = new MageInt(4); // 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 // from your graveyard without paying its mana cost. If that card would be put into your graveyard this turn, exile it instead. diff --git a/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java b/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java index d29fe0bdcc..7fd4f6de77 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java +++ b/Mage.Sets/src/mage/cards/g/GoblinGloryChaser.java @@ -38,7 +38,8 @@ public final class GoblinGloryChaser extends CardImpl { Effect effect = new ConditionalContinuousEffect( new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield), RenownedSourceCondition.instance, - "As long as {this} is renowned, it has menace"); + "As long as {this} is renowned, it has menace. " + + "(It can't be blocked except by two or more creatures.)"); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GodEternalBontu.java b/Mage.Sets/src/mage/cards/g/GodEternalBontu.java index 2244e8db4d..0aacb71005 100644 --- a/Mage.Sets/src/mage/cards/g/GodEternalBontu.java +++ b/Mage.Sets/src/mage/cards/g/GodEternalBontu.java @@ -38,7 +38,7 @@ public final class GodEternalBontu extends CardImpl { this.toughness = new MageInt(6); // 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. this.addAbility(new EntersBattlefieldTriggeredAbility(new GodEternalBontuEffect())); diff --git a/Mage.Sets/src/mage/cards/g/GodsWilling.java b/Mage.Sets/src/mage/cards/g/GodsWilling.java index a70df1c51e..5710797a9f 100644 --- a/Mage.Sets/src/mage/cards/g/GodsWilling.java +++ b/Mage.Sets/src/mage/cards/g/GodsWilling.java @@ -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. this.getSpellAbility().addEffect(new GainProtectionFromColorTargetEffect(Duration.EndOfTurn)); this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); - this.getSpellAbility().addEffect(new ScryEffect(1).concatBy("
")); + this.getSpellAbility().addEffect(new ScryEffect(1, false).concatBy("
")); } private GodsWilling(final GodsWilling card) { diff --git a/Mage.Sets/src/mage/cards/g/GraniticTitan.java b/Mage.Sets/src/mage/cards/g/GraniticTitan.java index 5bfcebdcfd..816ce3dc92 100644 --- a/Mage.Sets/src/mage/cards/g/GraniticTitan.java +++ b/Mage.Sets/src/mage/cards/g/GraniticTitan.java @@ -19,7 +19,7 @@ public final class GraniticTitan extends CardImpl { toughness = new MageInt(4); // Menace - addAbility(new MenaceAbility()); + addAbility(new MenaceAbility(false)); // Cycling {2} addAbility(new CyclingAbility(new ManaCostsImpl<>("{2}"))); diff --git a/Mage.Sets/src/mage/cards/g/GrevenPredatorCaptain.java b/Mage.Sets/src/mage/cards/g/GrevenPredatorCaptain.java index 1d3da75d41..5e4ff833ca 100644 --- a/Mage.Sets/src/mage/cards/g/GrevenPredatorCaptain.java +++ b/Mage.Sets/src/mage/cards/g/GrevenPredatorCaptain.java @@ -38,7 +38,7 @@ public final class GrevenPredatorCaptain extends CardImpl { this.toughness = new MageInt(5); // 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. this.addAbility(new SimpleStaticAbility(new BoostSourceEffect( diff --git a/Mage.Sets/src/mage/cards/g/Grief.java b/Mage.Sets/src/mage/cards/g/Grief.java index d0ac0eef64..8c2a87c0f7 100644 --- a/Mage.Sets/src/mage/cards/g/Grief.java +++ b/Mage.Sets/src/mage/cards/g/Grief.java @@ -41,7 +41,7 @@ public final class Grief extends CardImpl { this.toughness = new MageInt(2); // 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. Ability ability = new EntersBattlefieldTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/g/GrimDraugr.java b/Mage.Sets/src/mage/cards/g/GrimDraugr.java index 71bf3f2dfb..7fa16db81c 100644 --- a/Mage.Sets/src/mage/cards/g/GrimDraugr.java +++ b/Mage.Sets/src/mage/cards/g/GrimDraugr.java @@ -32,10 +32,13 @@ public final class GrimDraugr extends CardImpl { // {1}{S}: Grim Draugr gets +1/+0 and gains menace until end of turn. 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( - new MenaceAbility(), Duration.EndOfTurn).setText("and gains menace until end of turn") + new MenaceAbility(), Duration.EndOfTurn).setText("and gains menace until end of turn. " + + "(It can't be blocked except by two or more creatures. " + + "{S} can be paid with one mana from a snow source.)") ); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/g/GruulWarChant.java b/Mage.Sets/src/mage/cards/g/GruulWarChant.java index a0e6a7d357..b5f645a99b 100644 --- a/Mage.Sets/src/mage/cards/g/GruulWarChant.java +++ b/Mage.Sets/src/mage/cards/g/GruulWarChant.java @@ -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.) - 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)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HagraConstrictor.java b/Mage.Sets/src/mage/cards/h/HagraConstrictor.java index a4a535216a..e2b4340209 100644 --- a/Mage.Sets/src/mage/cards/h/HagraConstrictor.java +++ b/Mage.Sets/src/mage/cards/h/HagraConstrictor.java @@ -44,7 +44,8 @@ public final class HagraConstrictor extends CardImpl { // Each creature you control with a +1/+1 counter on it has menace. this.addAbility(new SimpleStaticAbility(new GainAbilityAllEffect( 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. " + + "(A creature with menace can't be blocked except by two or more creatures.)" ))); } diff --git a/Mage.Sets/src/mage/cards/h/HarshScrutiny.java b/Mage.Sets/src/mage/cards/h/HarshScrutiny.java index 9025809e23..3a75731ac9 100644 --- a/Mage.Sets/src/mage/cards/h/HarshScrutiny.java +++ b/Mage.Sets/src/mage/cards/h/HarshScrutiny.java @@ -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. this.getSpellAbility().addTarget(new TargetOpponent()); 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) { diff --git a/Mage.Sets/src/mage/cards/h/HedronAlignment.java b/Mage.Sets/src/mage/cards/h/HedronAlignment.java index 4817ff00a8..35ff43f0a6 100644 --- a/Mage.Sets/src/mage/cards/h/HedronAlignment.java +++ b/Mage.Sets/src/mage/cards/h/HedronAlignment.java @@ -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. this.addAbility(new BeginningOfUpkeepTriggeredAbility(new HedronAlignmentEffect(), TargetController.YOU, true)); // {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) { diff --git a/Mage.Sets/src/mage/cards/h/HiddenStockpile.java b/Mage.Sets/src/mage/cards/h/HiddenStockpile.java index 9d50a5e0e5..a7e9e6ade6 100644 --- a/Mage.Sets/src/mage/cards/h/HiddenStockpile.java +++ b/Mage.Sets/src/mage/cards/h/HiddenStockpile.java @@ -38,7 +38,7 @@ public final class HiddenStockpile extends CardImpl { this.addAbility(ability); // {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))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java b/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java index 346d4c7c03..fe24f79552 100644 --- a/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java +++ b/Mage.Sets/src/mage/cards/h/HoundOfTheFarbogs.java @@ -23,8 +23,6 @@ import mage.constants.Zone; */ 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) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{B}"); this.subtype.add(SubType.ZOMBIE); @@ -33,8 +31,11 @@ public final class HoundOfTheFarbogs extends CardImpl { this.toughness = new MageInt(3); // Delirium — 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, - new ConditionalContinuousEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield), DeliriumCondition.instance, RULE)); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect( + 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. " + + "(A creature with menace can't be blocked except by two or more creatures.)")); ability.setAbilityWord(AbilityWord.DELIRIUM); ability.addHint(CardTypesInGraveyardHint.YOU); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/h/HuntedNightmare.java b/Mage.Sets/src/mage/cards/h/HuntedNightmare.java index 01ffe1cb33..ab2e8d9a12 100644 --- a/Mage.Sets/src/mage/cards/h/HuntedNightmare.java +++ b/Mage.Sets/src/mage/cards/h/HuntedNightmare.java @@ -34,7 +34,7 @@ public final class HuntedNightmare extends CardImpl { this.toughness = new MageInt(5); // 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. Ability ability = new EntersBattlefieldTriggeredAbility(new HuntedNightmareEffect()); diff --git a/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java b/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java index c81b3b2cd2..c6fdbc1169 100644 --- a/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java +++ b/Mage.Sets/src/mage/cards/i/IkraShidiqiTheUsurper.java @@ -34,7 +34,7 @@ public final class IkraShidiqiTheUsurper extends CardImpl { this.toughness = new MageInt(7); // 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. this.addAbility(new IkraShidiqiTheUsurperTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/i/InquisitivePuppet.java b/Mage.Sets/src/mage/cards/i/InquisitivePuppet.java index 9de9edf129..7537629e91 100644 --- a/Mage.Sets/src/mage/cards/i/InquisitivePuppet.java +++ b/Mage.Sets/src/mage/cards/i/InquisitivePuppet.java @@ -27,7 +27,7 @@ public final class InquisitivePuppet extends CardImpl { this.toughness = new MageInt(2); // 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. this.addAbility(new SimpleActivatedAbility(new CreateTokenEffect(new HumanToken()), new ExileSourceCost())); diff --git a/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java b/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java index 9c43c4721e..dcd6342039 100644 --- a/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java +++ b/Mage.Sets/src/mage/cards/i/IroasGodOfVictory.java @@ -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.) 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. diff --git a/Mage.Sets/src/mage/cards/j/JaceUnravelerOfSecrets.java b/Mage.Sets/src/mage/cards/j/JaceUnravelerOfSecrets.java index 0dc11c8b01..c7354d62bf 100644 --- a/Mage.Sets/src/mage/cards/j/JaceUnravelerOfSecrets.java +++ b/Mage.Sets/src/mage/cards/j/JaceUnravelerOfSecrets.java @@ -34,7 +34,7 @@ public final class JaceUnravelerOfSecrets extends CardImpl { this.addAbility(new PlaneswalkerEntersWithLoyaltyCountersAbility(5)); // +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.setText(", then draw a card"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/j/JayasGreeting.java b/Mage.Sets/src/mage/cards/j/JayasGreeting.java index 12cf5687a8..7b2d940d2d 100644 --- a/Mage.Sets/src/mage/cards/j/JayasGreeting.java +++ b/Mage.Sets/src/mage/cards/j/JayasGreeting.java @@ -19,7 +19,7 @@ public final class JayasGreeting extends CardImpl { // Jaya's Greeting deals 3 damage to target creature. Scry 1. this.getSpellAbility().addEffect(new DamageTargetEffect(3)); - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/j/JosuVessLichKnight.java b/Mage.Sets/src/mage/cards/j/JosuVessLichKnight.java index b9f4e55732..6831b35d9e 100644 --- a/Mage.Sets/src/mage/cards/j/JosuVessLichKnight.java +++ b/Mage.Sets/src/mage/cards/j/JosuVessLichKnight.java @@ -31,7 +31,7 @@ public final class JosuVessLichKnight extends CardImpl { this.addAbility(new KickerAbility("{5}{B}")); //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. EntersBattlefieldTriggeredAbility ability = new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new ZombieKnightToken(), 8)); diff --git a/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java b/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java index c1daa7bf16..da85aef699 100644 --- a/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java +++ b/Mage.Sets/src/mage/cards/k/KariZevSkyshipRaider.java @@ -38,7 +38,7 @@ public final class KariZevSkyshipRaider extends CardImpl { this.addAbility(FirstStrikeAbility.getInstance()); // 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. this.addAbility(new AttacksTriggeredAbility(new KariZevSkyshipRaiderEffect(), false)); diff --git a/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java b/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java index 942c8dfae8..1855519454 100644 --- a/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java +++ b/Mage.Sets/src/mage/cards/k/KasminaEnigmaSage.java @@ -43,7 +43,7 @@ public final class KasminaEnigmaSage extends CardImpl { this.addAbility(new SimpleStaticAbility(new KasminaEnigmaSageGainAbilitiesEffect())); // +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. this.addAbility(new LoyaltyAbility(FractalToken.getEffect( diff --git a/Mage.Sets/src/mage/cards/k/KelsFightFixer.java b/Mage.Sets/src/mage/cards/k/KelsFightFixer.java index b6b408de69..c36ecf32b5 100644 --- a/Mage.Sets/src/mage/cards/k/KelsFightFixer.java +++ b/Mage.Sets/src/mage/cards/k/KelsFightFixer.java @@ -37,7 +37,7 @@ public final class KelsFightFixer extends CardImpl { this.toughness = new MageInt(3); // 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. this.addAbility(new KelsFightFixerTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/k/KessigWolfrider.java b/Mage.Sets/src/mage/cards/k/KessigWolfrider.java index be570902cb..8b68907f74 100644 --- a/Mage.Sets/src/mage/cards/k/KessigWolfrider.java +++ b/Mage.Sets/src/mage/cards/k/KessigWolfrider.java @@ -31,7 +31,7 @@ public final class KessigWolfrider extends CardImpl { this.toughness = new MageInt(2); // 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. Ability ability = new SimpleActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/k/KhenraScrapper.java b/Mage.Sets/src/mage/cards/k/KhenraScrapper.java index 61f4c39563..1050b10813 100644 --- a/Mage.Sets/src/mage/cards/k/KhenraScrapper.java +++ b/Mage.Sets/src/mage/cards/k/KhenraScrapper.java @@ -28,7 +28,7 @@ public final class KhenraScrapper extends CardImpl { this.toughness = new MageInt(3); // 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. this.addAbility(new ExertAbility(new BecomesExertSourceTriggeredAbility(new BoostSourceEffect(2, 0, Duration.EndOfTurn)))); diff --git a/Mage.Sets/src/mage/cards/k/KheruMindEater.java b/Mage.Sets/src/mage/cards/k/KheruMindEater.java index 44cc1fca8f..481e246db1 100644 --- a/Mage.Sets/src/mage/cards/k/KheruMindEater.java +++ b/Mage.Sets/src/mage/cards/k/KheruMindEater.java @@ -41,7 +41,7 @@ public final class KheruMindEater extends CardImpl { this.toughness = new MageInt(3); // 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. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new KheruMindEaterExileEffect(), false, true)); diff --git a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java index 24c768ee92..23050d59ae 100644 --- a/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java +++ b/Mage.Sets/src/mage/cards/k/KozilekTheGreatDistortion.java @@ -53,7 +53,7 @@ public final class KozilekTheGreatDistortion extends CardImpl { 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.")); // 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. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CounterTargetEffect(), new KozilekDiscardCost()); diff --git a/Mage.Sets/src/mage/cards/k/KozileksShrieker.java b/Mage.Sets/src/mage/cards/k/KozileksShrieker.java index 07e31ce87e..59b2420d18 100644 --- a/Mage.Sets/src/mage/cards/k/KozileksShrieker.java +++ b/Mage.Sets/src/mage/cards/k/KozileksShrieker.java @@ -38,7 +38,8 @@ public final class KozileksShrieker extends CardImpl { effect.setText("{this} gets +1/+0"); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{C}")); 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. " + + "(It can't be blocked except by two or more creatures. {C} represents colorless mana.)"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/k/KunorosHoundOfAthreos.java b/Mage.Sets/src/mage/cards/k/KunorosHoundOfAthreos.java index 2f1c71eedc..04ada10ff1 100644 --- a/Mage.Sets/src/mage/cards/k/KunorosHoundOfAthreos.java +++ b/Mage.Sets/src/mage/cards/k/KunorosHoundOfAthreos.java @@ -34,7 +34,7 @@ public final class KunorosHoundOfAthreos extends CardImpl { this.addAbility(VigilanceAbility.getInstance()); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Lifelink this.addAbility(LifelinkAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java b/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java index 0ad3bdccf8..f7ed9df131 100644 --- a/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java +++ b/Mage.Sets/src/mage/cards/l/LabyrinthRaptor.java @@ -51,7 +51,7 @@ public final class LabyrinthRaptor extends CardImpl { this.toughness = new MageInt(2); // 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. this.addAbility(new BecomesBlockedAllTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java b/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java index 35ac1f0479..c51eca941a 100644 --- a/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java +++ b/Mage.Sets/src/mage/cards/l/LathrilBladeOfTheElves.java @@ -45,7 +45,7 @@ public final class LathrilBladeOfTheElves extends CardImpl { this.toughness = new MageInt(3); // 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. this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new CreateTokenEffect( diff --git a/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java b/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java index bb3d1fa2fd..31a0a34377 100644 --- a/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java +++ b/Mage.Sets/src/mage/cards/l/LifecraftersBestiary.java @@ -25,7 +25,7 @@ public final class LifecraftersBestiary extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // 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. this.addAbility(new SpellCastControllerTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{G}")), StaticFilters.FILTER_SPELL_A_CREATURE, false)); diff --git a/Mage.Sets/src/mage/cards/l/LoathsomeCurator.java b/Mage.Sets/src/mage/cards/l/LoathsomeCurator.java index a8c5485f96..a21f1099a9 100644 --- a/Mage.Sets/src/mage/cards/l/LoathsomeCurator.java +++ b/Mage.Sets/src/mage/cards/l/LoathsomeCurator.java @@ -44,7 +44,7 @@ public final class LoathsomeCurator extends CardImpl { this.addAbility(new ExploitAbility()); // 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. Ability ability = new ExploitCreatureTriggeredAbility(new DestroyTargetEffect(), false); diff --git a/Mage.Sets/src/mage/cards/l/LoreholdCampus.java b/Mage.Sets/src/mage/cards/l/LoreholdCampus.java index b0630d256c..9fb0004fd5 100644 --- a/Mage.Sets/src/mage/cards/l/LoreholdCampus.java +++ b/Mage.Sets/src/mage/cards/l/LoreholdCampus.java @@ -30,7 +30,7 @@ public final class LoreholdCampus extends CardImpl { this.addAbility(new WhiteManaAbility()); // {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()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LoseCalm.java b/Mage.Sets/src/mage/cards/l/LoseCalm.java index a007ceb533..6b91f9006b 100644 --- a/Mage.Sets/src/mage/cards/l/LoseCalm.java +++ b/Mage.Sets/src/mage/cards/l/LoseCalm.java @@ -31,7 +31,8 @@ public final class LoseCalm extends CardImpl { this.getSpellAbility().addEffect(new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn, "It gains haste")); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); effect = new GainAbilityTargetEffect(new MenaceAbility(), Duration.EndOfTurn); - effect.setText("and menace until end of turn"); + effect.setText("and menace until end of turn." + + "(A creature with menace can't be blocked except by two or more creatures.)"); this.getSpellAbility().addEffect(effect); } diff --git a/Mage.Sets/src/mage/cards/l/LoyalSubordinate.java b/Mage.Sets/src/mage/cards/l/LoyalSubordinate.java index e6440424b0..3dd69fcbe0 100644 --- a/Mage.Sets/src/mage/cards/l/LoyalSubordinate.java +++ b/Mage.Sets/src/mage/cards/l/LoyalSubordinate.java @@ -27,7 +27,7 @@ public final class LoyalSubordinate extends CardImpl { this.toughness = new MageInt(1); // 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. this.addAbility(new ConditionalTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/m/MadcapSkills.java b/Mage.Sets/src/mage/cards/m/MadcapSkills.java index f50194f7f8..c5cdde200a 100644 --- a/Mage.Sets/src/mage/cards/m/MadcapSkills.java +++ b/Mage.Sets/src/mage/cards/m/MadcapSkills.java @@ -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.) 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) { diff --git a/Mage.Sets/src/mage/cards/m/ManaGeode.java b/Mage.Sets/src/mage/cards/m/ManaGeode.java index 60edeadc52..7fe926206c 100644 --- a/Mage.Sets/src/mage/cards/m/ManaGeode.java +++ b/Mage.Sets/src/mage/cards/m/ManaGeode.java @@ -18,7 +18,7 @@ public final class ManaGeode extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); // 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. this.addAbility(new AnyColorManaAbility()); diff --git a/Mage.Sets/src/mage/cards/m/MaritLagesSlumber.java b/Mage.Sets/src/mage/cards/m/MaritLagesSlumber.java index 31a9579ff5..851bfdf2e6 100644 --- a/Mage.Sets/src/mage/cards/m/MaritLagesSlumber.java +++ b/Mage.Sets/src/mage/cards/m/MaritLagesSlumber.java @@ -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. 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. diff --git a/Mage.Sets/src/mage/cards/m/MassacreGirl.java b/Mage.Sets/src/mage/cards/m/MassacreGirl.java index 62197082b3..e59aca6f53 100644 --- a/Mage.Sets/src/mage/cards/m/MassacreGirl.java +++ b/Mage.Sets/src/mage/cards/m/MassacreGirl.java @@ -31,7 +31,7 @@ public final class MassacreGirl extends CardImpl { this.toughness = new MageInt(4); // 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. this.addAbility(new EntersBattlefieldTriggeredAbility(new MassacreGirlEffect())); diff --git a/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java b/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java index 7353e0b17c..cc88c7fb67 100644 --- a/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java +++ b/Mage.Sets/src/mage/cards/m/MathasFiendSeeker.java @@ -49,7 +49,7 @@ public final class MathasFiendSeeker extends CardImpl { this.toughness = new MageInt(3); // 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." Ability ability = new BeginningOfYourEndStepTriggeredAbility(new AddCountersTargetEffect(CounterType.BOUNTY.createInstance()), false); diff --git a/Mage.Sets/src/mage/cards/m/MaulfistSquad.java b/Mage.Sets/src/mage/cards/m/MaulfistSquad.java index b710563d54..9c861c9e45 100644 --- a/Mage.Sets/src/mage/cards/m/MaulfistSquad.java +++ b/Mage.Sets/src/mage/cards/m/MaulfistSquad.java @@ -24,7 +24,7 @@ public final class MaulfistSquad extends CardImpl { this.toughness = new MageInt(1); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Fabricate 1 this.addAbility(new FabricateAbility(1)); diff --git a/Mage.Sets/src/mage/cards/m/MazemindTome.java b/Mage.Sets/src/mage/cards/m/MazemindTome.java index 282b220a4e..2e5064d160 100644 --- a/Mage.Sets/src/mage/cards/m/MazemindTome.java +++ b/Mage.Sets/src/mage/cards/m/MazemindTome.java @@ -31,7 +31,7 @@ public final class MazemindTome extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}"); // {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())); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java b/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java index a266101fac..098e7f691d 100644 --- a/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java +++ b/Mage.Sets/src/mage/cards/m/MinionOfTheMighty.java @@ -34,7 +34,7 @@ public final class MinionOfTheMighty extends CardImpl { this.toughness = new MageInt(1); // 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. this.addAbility(new PackTacticsAbility(new MinionOfTheMightyEffect())); diff --git a/Mage.Sets/src/mage/cards/m/MoodmarkPainter.java b/Mage.Sets/src/mage/cards/m/MoodmarkPainter.java index 802d68d6ea..e850d17c7f 100644 --- a/Mage.Sets/src/mage/cards/m/MoodmarkPainter.java +++ b/Mage.Sets/src/mage/cards/m/MoodmarkPainter.java @@ -32,22 +32,22 @@ public final class MoodmarkPainter extends CardImpl { this.power = new MageInt(2); 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. - DynamicValue xValue = new CardsInControllerGraveyardCount( - StaticFilters.FILTER_CARD_CREATURE - ); + // Undergrowth — When Moodmark Painter enters the battlefield, Ability ability = new EntersBattlefieldTriggeredAbility( new GainAbilityTargetEffect( - new MenaceAbility(), + new MenaceAbility(false), Duration.EndOfTurn - ).setText("target creature gains menace"), + ).setText("target creature gains menace."), 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( xValue, StaticValue.get(0), Duration.EndOfTurn, true ).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. " + + "(It can't be blocked except by two or more creatures.)")); // Must be here to match Oracle text ability.addTarget(new TargetCreaturePermanent()); ability.withFlavorWord("Undergrowth"); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/m/MysticRedaction.java b/Mage.Sets/src/mage/cards/m/MysticRedaction.java index d12844b862..6acf24d5a3 100644 --- a/Mage.Sets/src/mage/cards/m/MysticRedaction.java +++ b/Mage.Sets/src/mage/cards/m/MysticRedaction.java @@ -21,7 +21,7 @@ public final class MysticRedaction extends CardImpl { // At the beginning of your upkeep, scry 1. 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. diff --git a/Mage.Sets/src/mage/cards/n/NikaraLairScavenger.java b/Mage.Sets/src/mage/cards/n/NikaraLairScavenger.java index cbfc63ea25..22747e1755 100644 --- a/Mage.Sets/src/mage/cards/n/NikaraLairScavenger.java +++ b/Mage.Sets/src/mage/cards/n/NikaraLairScavenger.java @@ -45,7 +45,7 @@ public final class NikaraLairScavenger extends CardImpl { this.addAbility(new PartnerWithAbility("Yannik, Scavenging Sentinel")); // 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. Ability ability = new LeavesBattlefieldAllTriggeredAbility(new DrawCardSourceControllerEffect(1) diff --git a/Mage.Sets/src/mage/cards/n/NimanaSkitterSneak.java b/Mage.Sets/src/mage/cards/n/NimanaSkitterSneak.java index 87769a082a..65cbac10a1 100644 --- a/Mage.Sets/src/mage/cards/n/NimanaSkitterSneak.java +++ b/Mage.Sets/src/mage/cards/n/NimanaSkitterSneak.java @@ -37,7 +37,8 @@ public final class NimanaSkitterSneak extends CardImpl { )); ability.addEffect(new ConditionalContinuousEffect( new GainAbilitySourceEffect(new MenaceAbility()), - CardsInOpponentGraveyardCondition.EIGHT, "and has menace" + CardsInOpponentGraveyardCondition.EIGHT, "and has menace. " + + "(It can't be blocked except by two or more creatures.)" )); this.addAbility(ability.addHint(CardsInOpponentGraveyardCondition.EIGHT.getHint())); } diff --git a/Mage.Sets/src/mage/cards/n/NoEscape.java b/Mage.Sets/src/mage/cards/n/NoEscape.java index 384d09ce1e..e43ba896da 100644 --- a/Mage.Sets/src/mage/cards/n/NoEscape.java +++ b/Mage.Sets/src/mage/cards/n/NoEscape.java @@ -34,7 +34,7 @@ public final class NoEscape extends CardImpl { this.getSpellAbility().addTarget(new TargetSpell(filter)); // Scry 1. - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); } private NoEscape(final NoEscape card) { diff --git a/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java b/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java index 8e7ef16071..5743a737fc 100644 --- a/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java +++ b/Mage.Sets/src/mage/cards/n/NoxiousGearhulk.java @@ -38,7 +38,7 @@ public final class NoxiousGearhulk extends CardImpl { this.toughness = new MageInt(4); // 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. Ability ability = new EntersBattlefieldTriggeredAbility(new NoxiousGearhulkEffect()); diff --git a/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java b/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java index d6e357ac77..edf7bd1c41 100644 --- a/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java +++ b/Mage.Sets/src/mage/cards/n/NullpriestOfOblivion.java @@ -35,7 +35,7 @@ public final class NullpriestOfOblivion extends CardImpl { this.addAbility(new KickerAbility("{3}{B}")); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Lifelink this.addAbility(LifelinkAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/o/OggyarBattleSeer.java b/Mage.Sets/src/mage/cards/o/OggyarBattleSeer.java index 1beee9d8ab..d7ab24b189 100644 --- a/Mage.Sets/src/mage/cards/o/OggyarBattleSeer.java +++ b/Mage.Sets/src/mage/cards/o/OggyarBattleSeer.java @@ -29,7 +29,7 @@ public final class OggyarBattleSeer extends CardImpl { this.addAbility(HasteAbility.getInstance()); // {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) { diff --git a/Mage.Sets/src/mage/cards/o/OgreErrant.java b/Mage.Sets/src/mage/cards/o/OgreErrant.java index a48c0222e8..d1b5759607 100644 --- a/Mage.Sets/src/mage/cards/o/OgreErrant.java +++ b/Mage.Sets/src/mage/cards/o/OgreErrant.java @@ -41,7 +41,8 @@ public final class OgreErrant extends CardImpl { // Whenever Ogre Errant attacks, another target attacking Knight gains menace until end of turn. Ability ability = new AttacksTriggeredAbility(new GainAbilityTargetEffect( 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." + + "(It can't be blocked except by two or more creatures.)"), false); ability.addTarget(new TargetPermanent(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/o/OliviasAttendants.java b/Mage.Sets/src/mage/cards/o/OliviasAttendants.java index fe3c3731ea..52aa890a53 100644 --- a/Mage.Sets/src/mage/cards/o/OliviasAttendants.java +++ b/Mage.Sets/src/mage/cards/o/OliviasAttendants.java @@ -34,7 +34,7 @@ public final class OliviasAttendants extends CardImpl { this.toughness = new MageInt(6); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Whenever Olivia's Attendants deals damage, create that many Blood tokens. this.addAbility(new OliviasAttendantsTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/o/Opt.java b/Mage.Sets/src/mage/cards/o/Opt.java index 4d6c546724..e138ba0532 100644 --- a/Mage.Sets/src/mage/cards/o/Opt.java +++ b/Mage.Sets/src/mage/cards/o/Opt.java @@ -18,7 +18,7 @@ public final class Opt extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.INSTANT},"{U}"); // Scry 1. - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); // Draw a card. this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).concatBy("
")); diff --git a/Mage.Sets/src/mage/cards/o/OraclesInsight.java b/Mage.Sets/src/mage/cards/o/OraclesInsight.java index f1f069545a..4144be7f3f 100644 --- a/Mage.Sets/src/mage/cards/o/OraclesInsight.java +++ b/Mage.Sets/src/mage/cards/o/OraclesInsight.java @@ -38,8 +38,9 @@ public final class OraclesInsight extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.Benefit)); Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); + // Enchanted creature has "{T}: Scry 1, then draw a card." - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new TapSourceCost()); + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new TapSourceCost()); Effect effect = new DrawCardSourceControllerEffect(1); effect.setText("then draw a card"); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/p/PathOfAncestry.java b/Mage.Sets/src/mage/cards/p/PathOfAncestry.java index 6350f97c25..fd248b9970 100644 --- a/Mage.Sets/src/mage/cards/p/PathOfAncestry.java +++ b/Mage.Sets/src/mage/cards/p/PathOfAncestry.java @@ -120,6 +120,8 @@ class PathOfAncestryTriggeredAbility extends DelayedTriggeredAbility { @Override public String getRule() { - return "When that mana is spent to cast a creature spell that shares a creature type with your commander, scry 1."; + return "When that mana is spent to cast a creature spell that shares a creature type with your commander," + + "scry 1. " + + "(Look at the top card of your library. You may put that card on the bottom of your library.)"; } } diff --git a/Mage.Sets/src/mage/cards/p/PathToTheFestival.java b/Mage.Sets/src/mage/cards/p/PathToTheFestival.java index 3964b46d1e..58cd3c1bab 100644 --- a/Mage.Sets/src/mage/cards/p/PathToTheFestival.java +++ b/Mage.Sets/src/mage/cards/p/PathToTheFestival.java @@ -34,7 +34,9 @@ public final class PathToTheFestival extends CardImpl { )); this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new ScryEffect(1), PathToTheFestivalCondition.instance, - "Then if there are three or more basic land types among lands you control, scry 1" + "Then if there are three or more basic land types among lands you control, scry 1 " + + "(Look at the top card of your library. " + + "You may put that card on the bottom of your library.)" )); this.getSpellAbility().addHint(DomainHint.instance); diff --git a/Mage.Sets/src/mage/cards/p/PestilentSpirit.java b/Mage.Sets/src/mage/cards/p/PestilentSpirit.java index 2edb9ec329..c051388cc0 100644 --- a/Mage.Sets/src/mage/cards/p/PestilentSpirit.java +++ b/Mage.Sets/src/mage/cards/p/PestilentSpirit.java @@ -37,7 +37,7 @@ public final class PestilentSpirit extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Deathtouch this.addAbility(DeathtouchAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/p/PiperOfTheSwarm.java b/Mage.Sets/src/mage/cards/p/PiperOfTheSwarm.java index 028bd0c5c1..4268f5cbb6 100644 --- a/Mage.Sets/src/mage/cards/p/PiperOfTheSwarm.java +++ b/Mage.Sets/src/mage/cards/p/PiperOfTheSwarm.java @@ -43,7 +43,7 @@ public final class PiperOfTheSwarm extends CardImpl { // Rats you control have menace. this.addAbility(new SimpleStaticAbility( - new GainAbilityControlledEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter) + new GainAbilityControlledEffect(new MenaceAbility(false), Duration.WhileOnBattlefield, filter) )); // {1}{B}, {T}: Create a 1/1 black Rat creature token. diff --git a/Mage.Sets/src/mage/cards/p/PlagueBelcher.java b/Mage.Sets/src/mage/cards/p/PlagueBelcher.java index 822d4429df..311546467f 100644 --- a/Mage.Sets/src/mage/cards/p/PlagueBelcher.java +++ b/Mage.Sets/src/mage/cards/p/PlagueBelcher.java @@ -42,7 +42,7 @@ public final class PlagueBelcher extends CardImpl { this.toughness = new MageInt(4); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // When Plague Belcher enters the battlefield, put two -1/-1 counters on target creature you control. Ability ability = new EntersBattlefieldTriggeredAbility(new AddCountersTargetEffect(CounterType.M1M1.createInstance(2))); diff --git a/Mage.Sets/src/mage/cards/p/PlayWithFire.java b/Mage.Sets/src/mage/cards/p/PlayWithFire.java index 481c849c06..aac03809c1 100644 --- a/Mage.Sets/src/mage/cards/p/PlayWithFire.java +++ b/Mage.Sets/src/mage/cards/p/PlayWithFire.java @@ -2,6 +2,7 @@ package mage.cards.p; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.keyword.ScryEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -40,7 +41,8 @@ class PlayWithFireEffect extends OneShotEffect { PlayWithFireEffect() { super(Outcome.Benefit); - staticText = "{this} deals 2 damage to any target. If a player is dealt damage this way, scry 1"; + staticText = "{this} deals 2 damage to any target. If a player is dealt damage this way, scry 1. " + + "(Look at the top card of your library. You may put that card on the bottom of your library.)"; } private PlayWithFireEffect(final PlayWithFireEffect effect) { diff --git a/Mage.Sets/src/mage/cards/p/PrismariCampus.java b/Mage.Sets/src/mage/cards/p/PrismariCampus.java index a41977a39d..e95c8c9ead 100644 --- a/Mage.Sets/src/mage/cards/p/PrismariCampus.java +++ b/Mage.Sets/src/mage/cards/p/PrismariCampus.java @@ -30,7 +30,7 @@ public final class PrismariCampus extends CardImpl { this.addAbility(new RedManaAbility()); // {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()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/PrisonRealm.java b/Mage.Sets/src/mage/cards/p/PrisonRealm.java index f4ba5c514a..757d986d24 100644 --- a/Mage.Sets/src/mage/cards/p/PrisonRealm.java +++ b/Mage.Sets/src/mage/cards/p/PrisonRealm.java @@ -40,7 +40,7 @@ public final class PrisonRealm extends CardImpl { this.addAbility(ability); // When Prison Realm enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); } private PrisonRealm(final PrisonRealm card) { diff --git a/Mage.Sets/src/mage/cards/q/QuandrixCampus.java b/Mage.Sets/src/mage/cards/q/QuandrixCampus.java index 4fff5fb647..a6c2f408b8 100644 --- a/Mage.Sets/src/mage/cards/q/QuandrixCampus.java +++ b/Mage.Sets/src/mage/cards/q/QuandrixCampus.java @@ -30,7 +30,7 @@ public final class QuandrixCampus extends CardImpl { this.addAbility(new BlueManaAbility()); // {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()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/r/RalStormConduit.java b/Mage.Sets/src/mage/cards/r/RalStormConduit.java index 65049ed91f..2585a926a2 100644 --- a/Mage.Sets/src/mage/cards/r/RalStormConduit.java +++ b/Mage.Sets/src/mage/cards/r/RalStormConduit.java @@ -36,7 +36,7 @@ public final class RalStormConduit extends CardImpl { this.addAbility(new RalStormConduitTriggeredAbility()); // +2: Scry 1. - this.addAbility(new LoyaltyAbility(new ScryEffect(1), 2)); + this.addAbility(new LoyaltyAbility(new ScryEffect(1, false), 2)); // -2: When you cast your next instant or sorcery spell this turn, copy that spell. You may choose new targets for the copy. this.addAbility(new LoyaltyAbility(new CreateDelayedTriggeredAbilityEffect( diff --git a/Mage.Sets/src/mage/cards/r/RampagingFerocidon.java b/Mage.Sets/src/mage/cards/r/RampagingFerocidon.java index 1704036e3e..643d0b355b 100644 --- a/Mage.Sets/src/mage/cards/r/RampagingFerocidon.java +++ b/Mage.Sets/src/mage/cards/r/RampagingFerocidon.java @@ -45,7 +45,7 @@ public final class RampagingFerocidon extends CardImpl { this.toughness = new MageInt(3); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Players can't gain life. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new RampagingFerocidonEffect())); diff --git a/Mage.Sets/src/mage/cards/r/RevealingEye.java b/Mage.Sets/src/mage/cards/r/RevealingEye.java index a903684060..ba9d8cd96d 100644 --- a/Mage.Sets/src/mage/cards/r/RevealingEye.java +++ b/Mage.Sets/src/mage/cards/r/RevealingEye.java @@ -36,7 +36,7 @@ public final class RevealingEye extends CardImpl { this.nightCard = true; // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // When this creature transforms into Revealing Eye, target opponent reveals their hand. You may choose a nonland card from it. If you do, that player discards that card, then draws a card. Ability ability = new TransformIntoSourceTriggeredAbility(new RevealingEyeEffect()); diff --git a/Mage.Sets/src/mage/cards/r/RograkhSonOfRohgahh.java b/Mage.Sets/src/mage/cards/r/RograkhSonOfRohgahh.java index bef6a014d8..45f1b406b2 100644 --- a/Mage.Sets/src/mage/cards/r/RograkhSonOfRohgahh.java +++ b/Mage.Sets/src/mage/cards/r/RograkhSonOfRohgahh.java @@ -32,7 +32,7 @@ public final class RograkhSonOfRohgahh extends CardImpl { this.addAbility(FirstStrikeAbility.getInstance()); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Trample this.addAbility(TrampleAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/r/RogueClass.java b/Mage.Sets/src/mage/cards/r/RogueClass.java index 0e54b7999e..34a6ab2050 100644 --- a/Mage.Sets/src/mage/cards/r/RogueClass.java +++ b/Mage.Sets/src/mage/cards/r/RogueClass.java @@ -50,7 +50,7 @@ public final class RogueClass extends CardImpl { // Creatures you control have menace. this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect( new GainAbilityControlledEffect( - new MenaceAbility(), Duration.WhileOnBattlefield, + new MenaceAbility(false), Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES ), 2 ))); diff --git a/Mage.Sets/src/mage/cards/r/RuinGrinder.java b/Mage.Sets/src/mage/cards/r/RuinGrinder.java index 71b53c1ee6..d93947f22a 100644 --- a/Mage.Sets/src/mage/cards/r/RuinGrinder.java +++ b/Mage.Sets/src/mage/cards/r/RuinGrinder.java @@ -32,7 +32,7 @@ public final class RuinGrinder extends CardImpl { this.toughness = new MageInt(4); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // When Ruin Grinder dies, each player may discard their hand and draw seven cards. this.addAbility(new DiesSourceTriggeredAbility(new RuinGrinderEffect())); diff --git a/Mage.Sets/src/mage/cards/r/RumblingSentry.java b/Mage.Sets/src/mage/cards/r/RumblingSentry.java index 9e2f92a206..22e2b43db7 100644 --- a/Mage.Sets/src/mage/cards/r/RumblingSentry.java +++ b/Mage.Sets/src/mage/cards/r/RumblingSentry.java @@ -23,7 +23,7 @@ public final class RumblingSentry extends CardImpl { this.toughness = new MageInt(6); // When Rumbling Sentry enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); } private RumblingSentry(final RumblingSentry card) { diff --git a/Mage.Sets/src/mage/cards/s/SamutTyrantSmasher.java b/Mage.Sets/src/mage/cards/s/SamutTyrantSmasher.java index 8468e13ebb..a26b5c343f 100644 --- a/Mage.Sets/src/mage/cards/s/SamutTyrantSmasher.java +++ b/Mage.Sets/src/mage/cards/s/SamutTyrantSmasher.java @@ -44,7 +44,7 @@ public final class SamutTyrantSmasher extends CardImpl { ability.addEffect(new GainAbilityTargetEffect( HasteAbility.getInstance(), Duration.EndOfTurn ).setText("and gains haste until end of turn")); - ability.addEffect(new ScryEffect(1)); + ability.addEffect(new ScryEffect(1, false)); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SamutsSprint.java b/Mage.Sets/src/mage/cards/s/SamutsSprint.java index 1d631dd602..2806af7af2 100644 --- a/Mage.Sets/src/mage/cards/s/SamutsSprint.java +++ b/Mage.Sets/src/mage/cards/s/SamutsSprint.java @@ -26,7 +26,7 @@ public final class SamutsSprint extends CardImpl { this.getSpellAbility().addEffect(new GainAbilityTargetEffect( HasteAbility.getInstance(), Duration.EndOfTurn ).setText("and gains haste until end of turn")); - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/s/ScroungedScythe.java b/Mage.Sets/src/mage/cards/s/ScroungedScythe.java index 56640dbf40..8426082f85 100644 --- a/Mage.Sets/src/mage/cards/s/ScroungedScythe.java +++ b/Mage.Sets/src/mage/cards/s/ScroungedScythe.java @@ -21,8 +21,6 @@ import mage.constants.*; */ public final class ScroungedScythe extends CardImpl { - private static final String staticText = "As long as equipped creature is a Human, it has menace"; - public ScroungedScythe(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},""); this.subtype.add(SubType.EQUIPMENT); @@ -33,9 +31,13 @@ public final class ScroungedScythe extends CardImpl { this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); // As long as equipped creature is a Human, it has menace. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, - new ConditionalContinuousEffect(new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT), - new EquippedHasSubtypeCondition(SubType.HUMAN), staticText))); + this.addAbility(new SimpleStaticAbility( + Zone.BATTLEFIELD, + new ConditionalContinuousEffect( + new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.EQUIPMENT), + new EquippedHasSubtypeCondition(SubType.HUMAN), + "As long as equipped creature is a Human, it has menace. " + + "(It can't be blocked except by two or more creatures.)"))); // Equip {2} this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); diff --git a/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java b/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java index ad6c017201..51a94cb422 100644 --- a/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java +++ b/Mage.Sets/src/mage/cards/s/SedgemoorWitch.java @@ -28,7 +28,7 @@ public final class SedgemoorWitch extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Ward—Pay 3 life. this.addAbility(new WardAbility(new PayLifeCost(3))); diff --git a/Mage.Sets/src/mage/cards/s/SenateGriffin.java b/Mage.Sets/src/mage/cards/s/SenateGriffin.java index d85c995f77..de0fa33c1f 100644 --- a/Mage.Sets/src/mage/cards/s/SenateGriffin.java +++ b/Mage.Sets/src/mage/cards/s/SenateGriffin.java @@ -27,7 +27,7 @@ public final class SenateGriffin extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // When Senate Griffin enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); } private SenateGriffin(final SenateGriffin card) { diff --git a/Mage.Sets/src/mage/cards/s/ShelteringLight.java b/Mage.Sets/src/mage/cards/s/ShelteringLight.java index 6dc54b37b9..bdcaf9b6ae 100644 --- a/Mage.Sets/src/mage/cards/s/ShelteringLight.java +++ b/Mage.Sets/src/mage/cards/s/ShelteringLight.java @@ -22,7 +22,7 @@ public final class ShelteringLight extends CardImpl { // Target creature gains indestructible until end of turn. Scry 1. this.getSpellAbility().addEffect(new GainAbilityTargetEffect(IndestructibleAbility.getInstance(), Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/s/SilvarDevourerOfTheFree.java b/Mage.Sets/src/mage/cards/s/SilvarDevourerOfTheFree.java index 6cd68a89ba..da9a18788a 100644 --- a/Mage.Sets/src/mage/cards/s/SilvarDevourerOfTheFree.java +++ b/Mage.Sets/src/mage/cards/s/SilvarDevourerOfTheFree.java @@ -42,7 +42,7 @@ public final class SilvarDevourerOfTheFree extends CardImpl { this.addAbility(new PartnerWithAbility("Trynn, Champion of Freedom")); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Sacrifice a Human: Put a +1/+1 counter on Silvar, Devourer of the Free. It gains indestructible until end of turn. Ability ability = new SimpleActivatedAbility( diff --git a/Mage.Sets/src/mage/cards/s/SilverquillCampus.java b/Mage.Sets/src/mage/cards/s/SilverquillCampus.java index 39c59903a0..714838c866 100644 --- a/Mage.Sets/src/mage/cards/s/SilverquillCampus.java +++ b/Mage.Sets/src/mage/cards/s/SilverquillCampus.java @@ -30,7 +30,7 @@ public final class SilverquillCampus extends CardImpl { this.addAbility(new BlackManaAbility()); // {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()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SinProdder.java b/Mage.Sets/src/mage/cards/s/SinProdder.java index 965e931652..f62db39ba0 100644 --- a/Mage.Sets/src/mage/cards/s/SinProdder.java +++ b/Mage.Sets/src/mage/cards/s/SinProdder.java @@ -27,7 +27,7 @@ public final class SinProdder extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // At the beginning of your upkeep, reveal the top card of your library. Any opponent may have you put that card into your graveyard. If a player does, // Sin Prodder deals damage to that player equal to that card's converted mana cost. Otherwise, put that card into your hand. diff --git a/Mage.Sets/src/mage/cards/s/SinuousVermin.java b/Mage.Sets/src/mage/cards/s/SinuousVermin.java index 9c54114fa7..72b64382bd 100644 --- a/Mage.Sets/src/mage/cards/s/SinuousVermin.java +++ b/Mage.Sets/src/mage/cards/s/SinuousVermin.java @@ -38,7 +38,8 @@ public final class SinuousVermin extends CardImpl { Zone.BATTLEFIELD, new ConditionalContinuousEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.WhileOnBattlefield), MonstrousCondition.instance, - "As long as {this} is monstrous, it has menace")); + "As long as {this} is monstrous, it has menace. " + + "(It can't be blocked except by two or more creatures.)")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SkophosWarleader.java b/Mage.Sets/src/mage/cards/s/SkophosWarleader.java index f943dc1a5e..0325d9ef2a 100644 --- a/Mage.Sets/src/mage/cards/s/SkophosWarleader.java +++ b/Mage.Sets/src/mage/cards/s/SkophosWarleader.java @@ -52,7 +52,8 @@ public final class SkophosWarleader extends CardImpl { new ColoredManaCost(ColoredManaSymbol.R)); ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filter))); ability.addEffect(new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn) - .setText("and gains menace until end of turn")); + .setText("and gains menace until end of turn. " + + "(It can't be blocked except by two or more creatures.)")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SkyTerror.java b/Mage.Sets/src/mage/cards/s/SkyTerror.java index 90084dc5d3..0eac13fce6 100644 --- a/Mage.Sets/src/mage/cards/s/SkyTerror.java +++ b/Mage.Sets/src/mage/cards/s/SkyTerror.java @@ -27,7 +27,7 @@ public final class SkyTerror extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); } diff --git a/Mage.Sets/src/mage/cards/s/SoldeviExcavations.java b/Mage.Sets/src/mage/cards/s/SoldeviExcavations.java index ed27fc895c..7e297f3824 100644 --- a/Mage.Sets/src/mage/cards/s/SoldeviExcavations.java +++ b/Mage.Sets/src/mage/cards/s/SoldeviExcavations.java @@ -44,7 +44,7 @@ public final class SoldeviExcavations extends CardImpl { this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 0, 0, 1), new TapSourceCost())); // {1}, {tap}: Scry 1. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new GenericManaCost(1)); ability.addCost(new TapSourceCost()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/SonorousHowlbonder.java b/Mage.Sets/src/mage/cards/s/SonorousHowlbonder.java index c0c7bd752e..6f3cfed324 100644 --- a/Mage.Sets/src/mage/cards/s/SonorousHowlbonder.java +++ b/Mage.Sets/src/mage/cards/s/SonorousHowlbonder.java @@ -38,7 +38,7 @@ public final class SonorousHowlbonder extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Each creature you control with menace can't be blocked except by three or more creatures. ContinuousEffect effect = new CantBeBlockedByOneAllEffect(3, filter); diff --git a/Mage.Sets/src/mage/cards/s/SphinxOfForesight.java b/Mage.Sets/src/mage/cards/s/SphinxOfForesight.java index a3aac1877c..383488804f 100644 --- a/Mage.Sets/src/mage/cards/s/SphinxOfForesight.java +++ b/Mage.Sets/src/mage/cards/s/SphinxOfForesight.java @@ -43,7 +43,7 @@ public final class SphinxOfForesight extends CardImpl { // At the beginning of your upkeep, scry 1. this.addAbility(new BeginningOfUpkeepTriggeredAbility( - Zone.BATTLEFIELD, new ScryEffect(1), + Zone.BATTLEFIELD, new ScryEffect(1, false), TargetController.YOU, false )); } diff --git a/Mage.Sets/src/mage/cards/s/StoneboundMentor.java b/Mage.Sets/src/mage/cards/s/StoneboundMentor.java index a51001f56f..7680a178f6 100644 --- a/Mage.Sets/src/mage/cards/s/StoneboundMentor.java +++ b/Mage.Sets/src/mage/cards/s/StoneboundMentor.java @@ -24,7 +24,7 @@ public final class StoneboundMentor extends CardImpl { this.toughness = new MageInt(3); // Whenever one or more cards leave your graveyard, scry 1. - this.addAbility(new CardsLeaveGraveyardTriggeredAbility(new ScryEffect(1))); + this.addAbility(new CardsLeaveGraveyardTriggeredAbility(new ScryEffect(1, false))); } private StoneboundMentor(final StoneboundMentor card) { diff --git a/Mage.Sets/src/mage/cards/s/StormStrike.java b/Mage.Sets/src/mage/cards/s/StormStrike.java index bfccf2c590..d894983407 100644 --- a/Mage.Sets/src/mage/cards/s/StormStrike.java +++ b/Mage.Sets/src/mage/cards/s/StormStrike.java @@ -28,7 +28,7 @@ public final class StormStrike extends CardImpl { this.getSpellAbility().addEffect(new GainAbilityTargetEffect( FirstStrikeAbility.getInstance(), Duration.EndOfTurn ).setText("and gains first strike until end of turn")); - this.getSpellAbility().addEffect(new ScryEffect(1)); + this.getSpellAbility().addEffect(new ScryEffect(1, false)); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); } diff --git a/Mage.Sets/src/mage/cards/s/StormchaserChimera.java b/Mage.Sets/src/mage/cards/s/StormchaserChimera.java index bab134f806..176ce12367 100644 --- a/Mage.Sets/src/mage/cards/s/StormchaserChimera.java +++ b/Mage.Sets/src/mage/cards/s/StormchaserChimera.java @@ -40,7 +40,7 @@ public final class StormchaserChimera extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); // {2}{U}{R}: Scry 1, then reveal the top card of your library. Stormchaser Chimera gets +X/+0 until end of turn, where X is that card's converted mana cost. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new ManaCostsImpl("{2}{U}{R}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new ManaCostsImpl("{2}{U}{R}")); ability.addEffect(new StormchaserChimeraEffect()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/StormfistCrusader.java b/Mage.Sets/src/mage/cards/s/StormfistCrusader.java index 8fd35a8ffe..20bb58fd36 100644 --- a/Mage.Sets/src/mage/cards/s/StormfistCrusader.java +++ b/Mage.Sets/src/mage/cards/s/StormfistCrusader.java @@ -29,7 +29,7 @@ public final class StormfistCrusader extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // At the beginning of your upkeep, each player draws a card and loses 1 life. Ability ability = new BeginningOfUpkeepTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/s/SunsetPyramid.java b/Mage.Sets/src/mage/cards/s/SunsetPyramid.java index 6f294f52f9..7c02537b62 100644 --- a/Mage.Sets/src/mage/cards/s/SunsetPyramid.java +++ b/Mage.Sets/src/mage/cards/s/SunsetPyramid.java @@ -36,7 +36,7 @@ public final class SunsetPyramid extends CardImpl { this.addAbility(ability); // {2}, {T}: Scry 1. - Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(2)); + Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new GenericManaCost(2)); ability2.addCost(new TapSourceCost()); this.addAbility(ability2); diff --git a/Mage.Sets/src/mage/cards/s/SwarmGuildmage.java b/Mage.Sets/src/mage/cards/s/SwarmGuildmage.java index a891771e26..8f514a0bd8 100644 --- a/Mage.Sets/src/mage/cards/s/SwarmGuildmage.java +++ b/Mage.Sets/src/mage/cards/s/SwarmGuildmage.java @@ -40,7 +40,8 @@ public final class SwarmGuildmage extends CardImpl { ability.addEffect(new GainAbilityControlledEffect( new MenaceAbility(), Duration.EndOfTurn, StaticFilters.FILTER_CONTROLLED_CREATURES - ).setText("and gain menace until end of turn")); + ).setText("and gain menace until end of turn. " + + "(They can't be blocked except by two or more creatures.)")); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/s/SweatworksBrawler.java b/Mage.Sets/src/mage/cards/s/SweatworksBrawler.java index 7b51173452..8ccd1395d6 100644 --- a/Mage.Sets/src/mage/cards/s/SweatworksBrawler.java +++ b/Mage.Sets/src/mage/cards/s/SweatworksBrawler.java @@ -28,7 +28,7 @@ public final class SweatworksBrawler extends CardImpl { addAbility(new ImproviseAbility()); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); } private SweatworksBrawler(final SweatworksBrawler card) { diff --git a/Mage.Sets/src/mage/cards/s/SylvanAnthem.java b/Mage.Sets/src/mage/cards/s/SylvanAnthem.java index 8953b252eb..e11328ed0c 100644 --- a/Mage.Sets/src/mage/cards/s/SylvanAnthem.java +++ b/Mage.Sets/src/mage/cards/s/SylvanAnthem.java @@ -34,7 +34,7 @@ public final class SylvanAnthem extends CardImpl { ).setText("green creatures you control get +1/+1"))); // Whenever a green creature enters the battlefield under your control, scry 1. - this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new ScryEffect(1), filter)); + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new ScryEffect(1, false), filter)); } private SylvanAnthem(final SylvanAnthem card) { diff --git a/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java b/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java index 8d159f68b6..e8688fbce6 100644 --- a/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java +++ b/Mage.Sets/src/mage/cards/s/SyrGwynHeroOfAshvale.java @@ -51,7 +51,7 @@ public final class SyrGwynHeroOfAshvale extends CardImpl { this.addAbility(VigilanceAbility.getInstance()); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Whenever an equipped creature you control attacks, you draw a card and you lose 1 life. Ability ability = new AttacksCreatureYouControlTriggeredAbility( diff --git a/Mage.Sets/src/mage/cards/t/TempleOfAbandon.java b/Mage.Sets/src/mage/cards/t/TempleOfAbandon.java index e8dcac3bea..d42db246a1 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfAbandon.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfAbandon.java @@ -23,7 +23,7 @@ public final class TempleOfAbandon extends CardImpl { // Temple of Abandon enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Abandon enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {R} or {G}. this.addAbility(new RedManaAbility()); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfDeceit.java b/Mage.Sets/src/mage/cards/t/TempleOfDeceit.java index 0f13379c6d..efdb5969d6 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfDeceit.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfDeceit.java @@ -23,7 +23,7 @@ public final class TempleOfDeceit extends CardImpl { // Temple of Deceit enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Deceit enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {U} or {B}. this.addAbility(new BlueManaAbility()); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfEnlightenment.java b/Mage.Sets/src/mage/cards/t/TempleOfEnlightenment.java index 5ba6963785..5dc279be1c 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfEnlightenment.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfEnlightenment.java @@ -23,7 +23,7 @@ public final class TempleOfEnlightenment extends CardImpl { // Temple of Enlightenment enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Enlightenment enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {W} or {U}. this.addAbility(new WhiteManaAbility()); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfEpiphany.java b/Mage.Sets/src/mage/cards/t/TempleOfEpiphany.java index 313d83dd87..f157a9314a 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfEpiphany.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfEpiphany.java @@ -23,7 +23,7 @@ public final class TempleOfEpiphany extends CardImpl { // Temple of Epiphany enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Epiphany enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {U} or {R}. this.addAbility(new BlueManaAbility()); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfMalady.java b/Mage.Sets/src/mage/cards/t/TempleOfMalady.java index 5d3ce42caf..7800a9deaf 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfMalady.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfMalady.java @@ -23,7 +23,7 @@ public final class TempleOfMalady extends CardImpl { // Temple of Malady enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Malady enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {B} or {G}. this.addAbility(new BlackManaAbility()); this.addAbility(new GreenManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfMalice.java b/Mage.Sets/src/mage/cards/t/TempleOfMalice.java index db0a31ec18..30c316218d 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfMalice.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfMalice.java @@ -23,7 +23,7 @@ public final class TempleOfMalice extends CardImpl { // Temple of Malice enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Malice enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {B} or {R}. this.addAbility(new BlackManaAbility()); this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfMystery.java b/Mage.Sets/src/mage/cards/t/TempleOfMystery.java index 4ce7771992..e89cdef5b5 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfMystery.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfMystery.java @@ -23,7 +23,7 @@ public final class TempleOfMystery extends CardImpl { // Temple of Mystery enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Mystery enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {G} or {U}. this.addAbility(new GreenManaAbility()); this.addAbility(new BlueManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfPlenty.java b/Mage.Sets/src/mage/cards/t/TempleOfPlenty.java index 404c513813..13a15efcb2 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfPlenty.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfPlenty.java @@ -23,7 +23,7 @@ public final class TempleOfPlenty extends CardImpl { // Temple of Plenty enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Plenty enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {G} or {W}. this.addAbility(new GreenManaAbility()); this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfSilence.java b/Mage.Sets/src/mage/cards/t/TempleOfSilence.java index dc3c981652..ee4b7cee7d 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfSilence.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfSilence.java @@ -23,7 +23,7 @@ public final class TempleOfSilence extends CardImpl { // Temple of Silence enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Silence enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {W} or {B}. this.addAbility(new WhiteManaAbility()); this.addAbility(new BlackManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TempleOfTriumph.java b/Mage.Sets/src/mage/cards/t/TempleOfTriumph.java index cfe86608ed..aac691cb4f 100644 --- a/Mage.Sets/src/mage/cards/t/TempleOfTriumph.java +++ b/Mage.Sets/src/mage/cards/t/TempleOfTriumph.java @@ -23,7 +23,7 @@ public final class TempleOfTriumph extends CardImpl { // Temple of Triumph enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); // When Temple of Triumph enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); // {T}: Add {R} or {W}. this.addAbility(new RedManaAbility()); this.addAbility(new WhiteManaAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TenthDistrictLegionnaire.java b/Mage.Sets/src/mage/cards/t/TenthDistrictLegionnaire.java index b4e5220460..22ac220bb9 100644 --- a/Mage.Sets/src/mage/cards/t/TenthDistrictLegionnaire.java +++ b/Mage.Sets/src/mage/cards/t/TenthDistrictLegionnaire.java @@ -34,7 +34,7 @@ public final class TenthDistrictLegionnaire extends CardImpl { Ability ability = new HeroicAbility(new AddCountersSourceEffect( CounterType.P1P1.createInstance() ), false, false); - ability.addEffect(new ScryEffect(1).concatBy(", then")); + ability.addEffect(new ScryEffect(1, false).concatBy(", then")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java b/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java index 9a8c1d07d5..c6f5de8ffc 100644 --- a/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java +++ b/Mage.Sets/src/mage/cards/t/TergridGodOfFright.java @@ -46,7 +46,7 @@ public final class TergridGodOfFright extends ModalDoubleFacesCard { this.getLeftHalfCard().setPT(4, 5); // Menace - this.getLeftHalfCard().addAbility(new MenaceAbility()); + this.getLeftHalfCard().addAbility(new MenaceAbility(false)); // Whenever an opponent sacrifices a nontoken permanent or discards a permanent card, you may put that card onto the battlefield under your control from their graveyard. this.getLeftHalfCard().addAbility(new TergridGodOfFrightTriggeredAbility()); diff --git a/Mage.Sets/src/mage/cards/t/TerrorOfKruinPass.java b/Mage.Sets/src/mage/cards/t/TerrorOfKruinPass.java index 7811cf8be5..987091f32d 100644 --- a/Mage.Sets/src/mage/cards/t/TerrorOfKruinPass.java +++ b/Mage.Sets/src/mage/cards/t/TerrorOfKruinPass.java @@ -37,7 +37,7 @@ public final class TerrorOfKruinPass extends CardImpl { // Werewolves you control have menace. (They can't be blocked except by two or more creatures.) this.addAbility(new SimpleStaticAbility(new GainAbilityControlledEffect( - new MenaceAbility(false), Duration.WhileOnBattlefield, filter, false + new MenaceAbility(), Duration.WhileOnBattlefield, filter, false ))); // At the beginning of each upkeep, if a player cast two or more spells last turn, transform Terror of Kruin Pass. diff --git a/Mage.Sets/src/mage/cards/t/TezzeretsStrider.java b/Mage.Sets/src/mage/cards/t/TezzeretsStrider.java index f6ee5a0424..528ca79b88 100644 --- a/Mage.Sets/src/mage/cards/t/TezzeretsStrider.java +++ b/Mage.Sets/src/mage/cards/t/TezzeretsStrider.java @@ -39,11 +39,12 @@ public final class TezzeretsStrider extends CardImpl { Zone.BATTLEFIELD, new ConditionalContinuousEffect( new GainAbilitySourceEffect( - new MenaceAbility(), + new MenaceAbility(true), Duration.WhileOnBattlefield ), new PermanentsOnTheBattlefieldCondition(filter), - "As long as you control a Tezzeret planeswalker, {this} has menace" + "As long as you control a Tezzeret planeswalker, {this} has menace. " + + "(It can't be blocked except by two or more creatures.)" ) )); } diff --git a/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java b/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java index 0b774119ff..d9b66b2fc6 100644 --- a/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java +++ b/Mage.Sets/src/mage/cards/t/ThassaGodOfTheSea.java @@ -41,7 +41,7 @@ public final class ThassaGodOfTheSea extends CardImpl { // At the beginning of your upkeep, scry 1. this.addAbility(new BeginningOfUpkeepTriggeredAbility( - new ScryEffect(1), TargetController.YOU, false + new ScryEffect(1, false), TargetController.YOU, false )); // {1}{U}: Target creature you control can't be blocked this turn. diff --git a/Mage.Sets/src/mage/cards/t/ThaumaturgesFamiliar.java b/Mage.Sets/src/mage/cards/t/ThaumaturgesFamiliar.java index 2b27b0feb0..c3ba51397c 100644 --- a/Mage.Sets/src/mage/cards/t/ThaumaturgesFamiliar.java +++ b/Mage.Sets/src/mage/cards/t/ThaumaturgesFamiliar.java @@ -27,7 +27,7 @@ public final class ThaumaturgesFamiliar extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // When Thaumaturge's Familiar enters the battlefield, scry 1. - this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ScryEffect(1, false))); } private ThaumaturgesFamiliar(final ThaumaturgesFamiliar card) { diff --git a/Mage.Sets/src/mage/cards/u/UndercityNecrolisk.java b/Mage.Sets/src/mage/cards/u/UndercityNecrolisk.java index 739a1181e0..67666a6298 100644 --- a/Mage.Sets/src/mage/cards/u/UndercityNecrolisk.java +++ b/Mage.Sets/src/mage/cards/u/UndercityNecrolisk.java @@ -3,18 +3,18 @@ package mage.cards.u; import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; +import mage.abilities.ActivatedAbilityImpl; import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.costs.Cost; import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.abilities.keyword.MenaceAbility; -import mage.constants.SubType; +import mage.constants.*; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Zone; import mage.counters.CounterType; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.common.FilterControlledPermanent; @@ -42,19 +42,22 @@ public final class UndercityNecrolisk extends CardImpl { this.power = new MageInt(3); this.toughness = new MageInt(3); - // {1}, Sacrifice another creature: Put a +1/+1 counter on Undercity Necrolisk. It gains menace until end of turn. Activate this ability only any time you could cast a sorcery. - Ability ability = new ActivateAsSorceryActivatedAbility( + // {1}, Sacrifice another creature: + // Put a +1/+1 counter on Undercity Necrolisk. + Ability ability = new SilencedActivateAsSorceryActivatedAbility( Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.P1P1.createInstance()), new GenericManaCost(1) ); - ability.addEffect(new GainAbilitySourceEffect( - new MenaceAbility(), - Duration.EndOfTurn - ).setText("It gains menace until end of turn.")); ability.addCost(new SacrificeTargetCost( new TargetControlledPermanent(filter) )); + // It gains menace until end of turn. Activate this ability only any time you could cast a sorcery. + ability.addEffect(new GainAbilitySourceEffect( + new MenaceAbility(), + Duration.EndOfTurn + ).setText("It gains menace until end of turn. Activate only as a sorcery. " + + "(It can't be blocked except by two or more creatures.)")); this.addAbility(ability); } @@ -67,3 +70,23 @@ public final class UndercityNecrolisk extends CardImpl { return new UndercityNecrolisk(this); } } + +// Needed in order to move menace hint text to the very end. +class SilencedActivateAsSorceryActivatedAbility extends ActivatedAbilityImpl { + SilencedActivateAsSorceryActivatedAbility(Zone zone, Effect effect, Cost cost) { + super(zone, effect, cost); + timing = TimingRule.SORCERY; + } + + private SilencedActivateAsSorceryActivatedAbility(final SilencedActivateAsSorceryActivatedAbility ability) { + super(ability); + } + + @Override + public SilencedActivateAsSorceryActivatedAbility copy() { + return new SilencedActivateAsSorceryActivatedAbility(this); + } + + @Override + public String getRule() { return super.getRule(); } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/cards/u/UntamedHunger.java b/Mage.Sets/src/mage/cards/u/UntamedHunger.java index db93e68530..38048d2770 100644 --- a/Mage.Sets/src/mage/cards/u/UntamedHunger.java +++ b/Mage.Sets/src/mage/cards/u/UntamedHunger.java @@ -40,7 +40,8 @@ public final class UntamedHunger extends CardImpl { // Enchanted creature gets +2/+1 and has menace. ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 1)); Effect effect = new GainAbilityAttachedEffect(new MenaceAbility(), AttachmentType.AURA); - effect.setText("and has menace"); + effect.setText("and has menace. " + + "(It can't be blocked except by two or more creatures.)"); ability.addEffect(effect); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java b/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java index 113ebfeda1..47d2369a31 100644 --- a/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java +++ b/Mage.Sets/src/mage/cards/v/ValentinDeanOfTheVein.java @@ -44,7 +44,7 @@ public final class ValentinDeanOfTheVein extends ModalDoubleFacesCard { this.getLeftHalfCard().setPT(1, 1); // Menace - this.getLeftHalfCard().addAbility(new MenaceAbility()); + this.getLeftHalfCard().addAbility(new MenaceAbility(false)); // Lifelink this.getLeftHalfCard().addAbility(LifelinkAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/v/VeinwitchCoven.java b/Mage.Sets/src/mage/cards/v/VeinwitchCoven.java index c7df40fe6b..46bd550085 100644 --- a/Mage.Sets/src/mage/cards/v/VeinwitchCoven.java +++ b/Mage.Sets/src/mage/cards/v/VeinwitchCoven.java @@ -30,7 +30,7 @@ public final class VeinwitchCoven extends CardImpl { this.toughness = new MageInt(3); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Whenever you gain life, you pay {B}. If you do, return target creature card from your graveyard to your hand. Ability ability = new GainLifeControllerTriggeredAbility(new DoIfCostPaid( diff --git a/Mage.Sets/src/mage/cards/v/VolatileArsonist.java b/Mage.Sets/src/mage/cards/v/VolatileArsonist.java index 3be8e71dad..17e4322bcf 100644 --- a/Mage.Sets/src/mage/cards/v/VolatileArsonist.java +++ b/Mage.Sets/src/mage/cards/v/VolatileArsonist.java @@ -32,7 +32,7 @@ public final class VolatileArsonist extends CardImpl { this.secondSideCardClazz = mage.cards.d.DireStrainAnarchist.class; // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Haste this.addAbility(HasteAbility.getInstance()); diff --git a/Mage.Sets/src/mage/cards/v/VoraciousVampire.java b/Mage.Sets/src/mage/cards/v/VoraciousVampire.java index a663a0c5cb..20b8ecc940 100644 --- a/Mage.Sets/src/mage/cards/v/VoraciousVampire.java +++ b/Mage.Sets/src/mage/cards/v/VoraciousVampire.java @@ -32,7 +32,7 @@ public final class VoraciousVampire extends CardImpl { this.toughness = new MageInt(2); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // When Voracious Vampire enters the battlefield, target Vampire you control gets +1/+1 and gains menace until end of turn. Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 1, Duration.EndOfTurn), false); diff --git a/Mage.Sets/src/mage/cards/v/VowOfTorment.java b/Mage.Sets/src/mage/cards/v/VowOfTorment.java index d788259450..1e87bcd9cf 100644 --- a/Mage.Sets/src/mage/cards/v/VowOfTorment.java +++ b/Mage.Sets/src/mage/cards/v/VowOfTorment.java @@ -39,7 +39,8 @@ public final class VowOfTorment extends CardImpl { new MenaceAbility(), AttachmentType.AURA, Duration.WhileOnBattlefield ).setText(", has menace")); ability.addEffect(new CantAttackControllerAttachedEffect(AttachmentType.AURA) - .setText(", and can't attack you or planeswalkers you control")); + .setText(", and can't attack you or planeswalkers you control. " + + "(It can't be blocked except by two or more creatures.)")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WarteyeWitch.java b/Mage.Sets/src/mage/cards/w/WarteyeWitch.java index 6249cb2d98..bd3406b324 100644 --- a/Mage.Sets/src/mage/cards/w/WarteyeWitch.java +++ b/Mage.Sets/src/mage/cards/w/WarteyeWitch.java @@ -34,7 +34,7 @@ public final class WarteyeWitch extends CardImpl { // Whenever Warteye Witch or another creature you control dies, scry 1. this.addAbility(new DiesThisOrAnotherCreatureTriggeredAbility( - new ScryEffect(1), false, filter + new ScryEffect(1, false), false, filter )); } diff --git a/Mage.Sets/src/mage/cards/w/WaywardGiant.java b/Mage.Sets/src/mage/cards/w/WaywardGiant.java index 5e1cf13068..05cc2039fb 100644 --- a/Mage.Sets/src/mage/cards/w/WaywardGiant.java +++ b/Mage.Sets/src/mage/cards/w/WaywardGiant.java @@ -22,7 +22,7 @@ public final class WaywardGiant extends CardImpl { this.toughness = new MageInt(5); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); } private WaywardGiant(final WaywardGiant card) { diff --git a/Mage.Sets/src/mage/cards/w/WeldfastMonitor.java b/Mage.Sets/src/mage/cards/w/WeldfastMonitor.java index 4995f5e6bf..4776a5919d 100644 --- a/Mage.Sets/src/mage/cards/w/WeldfastMonitor.java +++ b/Mage.Sets/src/mage/cards/w/WeldfastMonitor.java @@ -28,8 +28,10 @@ public final class WeldfastMonitor extends CardImpl { this.toughness = new MageInt(2); // {R}: Weldfast Monitor gains menace until end of turn - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, - new GainAbilitySourceEffect(new MenaceAbility(), Duration.EndOfTurn), new ColoredManaCost(ColoredManaSymbol.R))); + this.addAbility(new SimpleActivatedAbility( + Zone.BATTLEFIELD, + new GainAbilitySourceEffect(new MenaceAbility(false), Duration.EndOfTurn), + new ColoredManaCost(ColoredManaSymbol.R))); } diff --git a/Mage.Sets/src/mage/cards/w/WitchesEye.java b/Mage.Sets/src/mage/cards/w/WitchesEye.java index 1b25f243f8..edad0ea641 100644 --- a/Mage.Sets/src/mage/cards/w/WitchesEye.java +++ b/Mage.Sets/src/mage/cards/w/WitchesEye.java @@ -30,7 +30,7 @@ public final class WitchesEye extends CardImpl { this.subtype.add(SubType.EQUIPMENT); // Equipped creature has "{1}, {T}: Scry 1." - Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1)); + Ability gainedAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1, false), new GenericManaCost(1)); gainedAbility.addCost(new TapSourceCost()); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(gainedAbility, AttachmentType.EQUIPMENT, Duration.WhileOnBattlefield))); diff --git a/Mage.Sets/src/mage/cards/w/WitherbloomCampus.java b/Mage.Sets/src/mage/cards/w/WitherbloomCampus.java index 974751cc78..bd573387ce 100644 --- a/Mage.Sets/src/mage/cards/w/WitherbloomCampus.java +++ b/Mage.Sets/src/mage/cards/w/WitherbloomCampus.java @@ -30,7 +30,7 @@ public final class WitherbloomCampus extends CardImpl { this.addAbility(new GreenManaAbility()); // {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()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/w/WitnessOfTomorrows.java b/Mage.Sets/src/mage/cards/w/WitnessOfTomorrows.java index c43caee131..68c3bce0f1 100644 --- a/Mage.Sets/src/mage/cards/w/WitnessOfTomorrows.java +++ b/Mage.Sets/src/mage/cards/w/WitnessOfTomorrows.java @@ -28,7 +28,7 @@ public final class WitnessOfTomorrows extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // {3}{U}: Scry 1. - this.addAbility(new SimpleActivatedAbility(new ScryEffect(1), new ManaCostsImpl("{3}{U}"))); + this.addAbility(new SimpleActivatedAbility(new ScryEffect(1, false), new ManaCostsImpl("{3}{U}"))); } private WitnessOfTomorrows(final WitnessOfTomorrows card) { diff --git a/Mage.Sets/src/mage/cards/w/WoeStrider.java b/Mage.Sets/src/mage/cards/w/WoeStrider.java index 25828d07f5..5e22209de7 100644 --- a/Mage.Sets/src/mage/cards/w/WoeStrider.java +++ b/Mage.Sets/src/mage/cards/w/WoeStrider.java @@ -44,7 +44,7 @@ public final class WoeStrider extends CardImpl { // Sacrifice another creature: Scry 1. this.addAbility(new SimpleActivatedAbility( - new ScryEffect(1), new SacrificeTargetCost(new TargetControlledPermanent(filter)) + new ScryEffect(1, false), new SacrificeTargetCost(new TargetControlledPermanent(filter)) )); // Escape—{3}{B}{B}, Exile four other cards from your graveyard. diff --git a/Mage.Sets/src/mage/cards/y/YennettCrypticSovereign.java b/Mage.Sets/src/mage/cards/y/YennettCrypticSovereign.java index c6e65bb05b..0474434a54 100644 --- a/Mage.Sets/src/mage/cards/y/YennettCrypticSovereign.java +++ b/Mage.Sets/src/mage/cards/y/YennettCrypticSovereign.java @@ -41,7 +41,7 @@ public final class YennettCrypticSovereign extends CardImpl { this.addAbility(VigilanceAbility.getInstance()); // Menace - this.addAbility(new MenaceAbility()); + this.addAbility(new MenaceAbility(false)); // Whenever Yennett, Cryptic Sovereign attacks, reveal the top card of your library. If that card's // converted mana cost is odd, you may cast it without paying its mana cost. Otherwise, draw a card. diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index 276e85003c..52d1a93c31 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -193,7 +193,6 @@ public class VerifyCardDataTest { // wrond card numbers skip list skipListCreate(SKIP_LIST_WRONG_CARD_NUMBERS); skipListAddName(SKIP_LIST_WRONG_CARD_NUMBERS, "SWS"); // Star Wars - skipListAddName(SKIP_LIST_WRONG_CARD_NUMBERS, "POR"); // Portal, TODO: remove after bug fixed https://github.com/mtgjson/mtgjson/issues/660 skipListAddName(SKIP_LIST_WRONG_CARD_NUMBERS, "UND"); // un-sets don't have full implementation of card variations skipListAddName(SKIP_LIST_WRONG_CARD_NUMBERS, "UST"); // un-sets don't have full implementation of card variations skipListAddName(SKIP_LIST_WRONG_CARD_NUMBERS, "SOI", "Tamiyo's Journal"); // not all variations implemented @@ -1413,22 +1412,14 @@ public class VerifyCardDataTest { // special check: missing or wrong ability/effect hints Map hints = new HashMap<>(); hints.put(MenaceAbility.class, "can't be blocked except by two or more"); - hints.put(ScryEffect.class, "Look at the top card of your library"); + hints.put(ScryEffect.class, "Look at the top card of your library. You may put that card on the bottom of your library"); for (Class objectClass : hints.keySet()) { String objectHint = hints.get(objectClass); // ability/effect must have description or not - boolean mustCheck = card.getAbilities().containsClass(objectClass) - || card.getAbilities().stream() - .map(Ability::getAllEffects) - .flatMap(Collection::stream) - .anyMatch(effect -> effect.getClass().isAssignableFrom(objectClass)); - mustCheck = false; // TODO: enable and fix all problems with effect and ability hints - if (mustCheck) { - boolean needHint = ref.text.contains(objectHint); - boolean haveHint = card.getRules().stream().anyMatch(rule -> rule.contains(objectHint)); - if (needHint != haveHint) { - fail(card, "abilities", "card have " + objectClass.getSimpleName() + " but hint is wrong (it must be " + (needHint ? "enabled" : "disabled") + ")"); - } + boolean needHint = ref.text.contains(objectHint); + boolean haveHint = card.getRules().stream().anyMatch(rule -> rule.contains(objectHint)); + if (needHint != haveHint) { + fail(card, "abilities", "card have " + objectClass.getSimpleName() + " but hint is wrong (it must be " + (needHint ? "enabled" : "disabled") + ")"); } }