diff --git a/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java b/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java index de8575c379d..f641519b089 100644 --- a/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java +++ b/Mage.Sets/src/mage/cards/a/AdmiralsOrder.java @@ -7,7 +7,6 @@ import mage.abilities.effects.common.CounterTargetEffect; import mage.abilities.hint.common.RaidHint; import mage.cards.CardImpl; import mage.cards.CardSetInfo; -import mage.constants.AbilityWord; import mage.constants.CardType; import mage.target.TargetSpell; import mage.watchers.common.PlayerAttackedWatcher; @@ -24,7 +23,7 @@ public final class AdmiralsOrder extends CardImpl { // Raid - If you attacked with a creature this turn, you may pay {U} rather than pay this spell's mana cost. this.addAbility(new AlternativeCostSourceAbility(new ManaCostsImpl<>("{U}"), RaidCondition.instance, - "
Raid — If you attacked this turn, you may pay {U} rather than pay this spell's mana cost"), + "
Raid — If you attacked this turn, you may pay {U} rather than pay this spell's mana cost."), new PlayerAttackedWatcher()); // Counter target spell. this.getSpellAbility().addEffect(new CounterTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java b/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java index b40d865ae97..2f5d376fade 100644 --- a/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java +++ b/Mage.Sets/src/mage/cards/a/AdmonitionAngel.java @@ -49,7 +49,8 @@ public final class AdmonitionAngel extends CardImpl { this.addAbility(ability); // When Admonition Angel leaves the battlefield, return all cards exiled with it to the battlefield under their owners' control. - Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD), false); + Ability ability2 = new LeavesBattlefieldTriggeredAbility(new ReturnFromExileForSourceEffect(Zone.BATTLEFIELD) + .setText("return all cards exiled with it to the battlefield under their owners' control"), false); this.addAbility(ability2); } diff --git a/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java b/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java index a622bf4a56f..cfb3a30107a 100644 --- a/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java +++ b/Mage.Sets/src/mage/cards/a/AishaOfSparksAndSmoke.java @@ -44,9 +44,7 @@ public final class AishaOfSparksAndSmoke extends CardImpl { ), new ManaCostsImpl<>("{R/W}"))); // Shoryuken—Whenever Ken deals combat damage, you may cast a sorcery spell from your hand with mana value less than or equal to that damage without paying its mana cost. - this.addAbility(new DealsCombatDamageTriggeredAbility( - new AishaOfSparksAndSmokeEffect(), false - ).withFlavorWord("Shoryuken")); + this.addAbility(new DealsCombatDamageTriggeredAbility(new AishaOfSparksAndSmokeEffect(), false)); } private AishaOfSparksAndSmoke(final AishaOfSparksAndSmoke card) { diff --git a/Mage.Sets/src/mage/cards/a/AminatousAugury.java b/Mage.Sets/src/mage/cards/a/AminatousAugury.java index b19628157a4..468268da4c0 100644 --- a/Mage.Sets/src/mage/cards/a/AminatousAugury.java +++ b/Mage.Sets/src/mage/cards/a/AminatousAugury.java @@ -63,7 +63,7 @@ class AminatousAuguryEffect extends OneShotEffect { staticText = "Exile the top eight cards of your library. " + "You may put a land card from among them onto the battlefield. " + "Until end of turn, for each nonland card type, " - + "you may cast a card of that type from among the exiled cards without paying its mana cost."; + + "you may cast a spell of that type from among the exiled cards without paying its mana cost."; } public AminatousAuguryEffect(final AminatousAuguryEffect effect) { diff --git a/Mage.Sets/src/mage/cards/a/ArborArmament.java b/Mage.Sets/src/mage/cards/a/ArborArmament.java index 602d2195cd6..c0c694c7b78 100644 --- a/Mage.Sets/src/mage/cards/a/ArborArmament.java +++ b/Mage.Sets/src/mage/cards/a/ArborArmament.java @@ -25,7 +25,8 @@ public final class ArborArmament extends CardImpl { // Put a +1/+1 counter on target creature. That creature gains reach until end of turn. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance())); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(ReachAbility.getInstance(), Duration.EndOfTurn) + .setText("That creature gains reach until end of turn")); } private ArborArmament(final ArborArmament card) { diff --git a/Mage.Sets/src/mage/cards/a/AtzocanSeer.java b/Mage.Sets/src/mage/cards/a/AtzocanSeer.java index 0877857d355..2eef48c0d90 100644 --- a/Mage.Sets/src/mage/cards/a/AtzocanSeer.java +++ b/Mage.Sets/src/mage/cards/a/AtzocanSeer.java @@ -22,7 +22,7 @@ import mage.target.common.TargetCardInYourGraveyard; */ public final class AtzocanSeer extends CardImpl { - private static final FilterCard filter = new FilterCard("Dinosaur from your graveyard"); + private static final FilterCard filter = new FilterCard("Dinosaur card from your graveyard"); static { filter.add(SubType.DINOSAUR.getPredicate()); diff --git a/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java b/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java index bf1fddf49c3..00337a20332 100644 --- a/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java +++ b/Mage.Sets/src/mage/cards/c/CavernHoardDragon.java @@ -118,7 +118,7 @@ enum CavernHoardDragonCount implements DynamicValue { @Override public String getMessage() { - return "greatest number of artifacts an opponent controls"; + return "the greatest number of artifacts an opponent controls"; } public static Hint getHint() { diff --git a/Mage.Sets/src/mage/cards/c/CinderGiant.java b/Mage.Sets/src/mage/cards/c/CinderGiant.java index 7069f741c17..026e06304bc 100644 --- a/Mage.Sets/src/mage/cards/c/CinderGiant.java +++ b/Mage.Sets/src/mage/cards/c/CinderGiant.java @@ -19,7 +19,7 @@ import mage.filter.predicate.mageobject.AnotherPredicate; */ public final class CinderGiant extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("each other creature you control"); + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("other creature you control"); static { filter.add(AnotherPredicate.instance); } diff --git a/Mage.Sets/src/mage/cards/c/CrownOfGondor.java b/Mage.Sets/src/mage/cards/c/CrownOfGondor.java index 50c89899811..fbe6ff63914 100644 --- a/Mage.Sets/src/mage/cards/c/CrownOfGondor.java +++ b/Mage.Sets/src/mage/cards/c/CrownOfGondor.java @@ -29,7 +29,7 @@ import java.util.UUID; */ public final class CrownOfGondor extends CardImpl { - private final static DynamicValue xValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_CREATURE); + private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(StaticFilters.FILTER_CONTROLLED_CREATURE); public CrownOfGondor(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{3}"); @@ -52,7 +52,7 @@ public final class CrownOfGondor extends CardImpl { // Equip {4}. This ability costs {3} less to activate if you're the monarch. EquipAbility equip = new EquipAbility(4, false); - equip.setCostReduceText("This ability costs {3} less to activate if you're the monarch"); + equip.setCostReduceText("This ability costs {3} less to activate if you're the monarch."); equip.setCostAdjuster(CrownOfGondorAdjuster.instance); this.addAbility(equip); } diff --git a/Mage.Sets/src/mage/cards/c/CunningStrike.java b/Mage.Sets/src/mage/cards/c/CunningStrike.java index b2257032b94..e3bdf684b9d 100644 --- a/Mage.Sets/src/mage/cards/c/CunningStrike.java +++ b/Mage.Sets/src/mage/cards/c/CunningStrike.java @@ -27,7 +27,7 @@ public final class CunningStrike extends CardImpl { this.getSpellAbility().addTarget(new TargetCreaturePermanent()); Effect effect = new DamageTargetEffect(StaticValue.get(2), true, "", true); effect.setTargetPointer(new SecondTargetPointer()); - effect.setText("and 2 damage to target player"); + effect.setText("and 2 damage to target player or planeswalker"); this.getSpellAbility().addEffect(effect); this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); // Draw a card. diff --git a/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java b/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java index b556e5a11ed..20588de3956 100644 --- a/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java +++ b/Mage.Sets/src/mage/cards/d/DamiaSageOfStone.java @@ -82,6 +82,6 @@ class DamiaSageOfStoneTriggeredAbility extends BeginningOfUpkeepTriggeredAbility @Override public String getRule() { - return "At the beginning of your upkeep, if you have fewer than seven cards in hand, draw cards equal to the difference"; + return "At the beginning of your upkeep, if you have fewer than seven cards in hand, draw cards equal to the difference."; } } diff --git a/Mage.Sets/src/mage/cards/d/DarkIntimations.java b/Mage.Sets/src/mage/cards/d/DarkIntimations.java index 48399c5dd61..99de1bda2f5 100644 --- a/Mage.Sets/src/mage/cards/d/DarkIntimations.java +++ b/Mage.Sets/src/mage/cards/d/DarkIntimations.java @@ -51,7 +51,7 @@ public final class DarkIntimations extends CardImpl { this.addAbility(new SpellCastControllerTriggeredAbility( Zone.GRAVEYARD, new DarkIntimationsGraveyardEffect(), filter, false, SetTargetPointer.SPELL - )); + ).setTriggerPhrase("When you cast a Bolas planeswalker spell, ")); } private DarkIntimations(final DarkIntimations card) { diff --git a/Mage.Sets/src/mage/cards/d/DeepglowSkate.java b/Mage.Sets/src/mage/cards/d/DeepglowSkate.java index 509e91bd49d..f3d6e240a5e 100644 --- a/Mage.Sets/src/mage/cards/d/DeepglowSkate.java +++ b/Mage.Sets/src/mage/cards/d/DeepglowSkate.java @@ -1,4 +1,3 @@ - package mage.cards.d; import java.util.UUID; @@ -32,7 +31,7 @@ public final class DeepglowSkate extends CardImpl { this.toughness = new MageInt(3); // When Deepglow Skate enters the battlefield, double the number of each kind of counter on any number of target permanents. - Ability ability = new EntersBattlefieldTriggeredAbility(new DeepglowSkateEffect(), true); + Ability ability = new EntersBattlefieldTriggeredAbility(new DeepglowSkateEffect(), false); ability.addTarget(new TargetPermanent(0, Integer.MAX_VALUE, new FilterPermanent(), false)); this.addAbility(ability); } @@ -51,7 +50,7 @@ class DeepglowSkateEffect extends OneShotEffect { public DeepglowSkateEffect() { super(Outcome.Benefit); - this.staticText = "{this} double the number of each kind of counter on any number of target permanents"; + this.staticText = "double the number of each kind of counter on any number of target permanents"; } public DeepglowSkateEffect(final DeepglowSkateEffect effect) { diff --git a/Mage.Sets/src/mage/cards/d/Downdraft.java b/Mage.Sets/src/mage/cards/d/Downdraft.java index 0dca305e0a5..f18dce91a0b 100644 --- a/Mage.Sets/src/mage/cards/d/Downdraft.java +++ b/Mage.Sets/src/mage/cards/d/Downdraft.java @@ -41,7 +41,7 @@ public final class Downdraft extends CardImpl { this.addAbility(ability); // Sacrifice Downdraft: Downdraft deals 2 damage to each creature with flying. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, filter), new SacrificeSourceCost())); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, "it", filter), new SacrificeSourceCost())); } private Downdraft(final Downdraft card) { diff --git a/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java b/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java index 007d8d3f802..9a0f76dad99 100644 --- a/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java +++ b/Mage.Sets/src/mage/cards/e/EnterTheUnknown.java @@ -25,7 +25,7 @@ public final class EnterTheUnknown extends CardImpl { this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent()); // You may play an additional land this turn. - this.getSpellAbility().addEffect(new PlayAdditionalLandsControllerEffect(1, Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new PlayAdditionalLandsControllerEffect(1, Duration.EndOfTurn).concatBy("
")); } diff --git a/Mage.Sets/src/mage/cards/f/FalseProphet.java b/Mage.Sets/src/mage/cards/f/FalseProphet.java index 33581d9a8fb..a3a01b76a8f 100644 --- a/Mage.Sets/src/mage/cards/f/FalseProphet.java +++ b/Mage.Sets/src/mage/cards/f/FalseProphet.java @@ -1,4 +1,3 @@ - package mage.cards.f; import java.util.UUID; @@ -9,7 +8,7 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.common.FilterCreaturePermanent; +import mage.filter.StaticFilters; /** * @@ -26,7 +25,7 @@ public final class FalseProphet extends CardImpl { this.toughness = new MageInt(2); // When False Prophet dies, exile all creatures. - this.addAbility(new DiesSourceTriggeredAbility(new ExileAllEffect(new FilterCreaturePermanent()))); + this.addAbility(new DiesSourceTriggeredAbility(new ExileAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES))); } private FalseProphet(final FalseProphet card) { diff --git a/Mage.Sets/src/mage/cards/f/FireWhip.java b/Mage.Sets/src/mage/cards/f/FireWhip.java index f062d5fe3ad..5e87e556597 100644 --- a/Mage.Sets/src/mage/cards/f/FireWhip.java +++ b/Mage.Sets/src/mage/cards/f/FireWhip.java @@ -39,7 +39,7 @@ public final class FireWhip extends CardImpl { // Enchanted creature has "{t}: This creature deals 1 damage to any target." Ability ability1 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost()); ability1.addTarget(new TargetAnyTarget()); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability1, AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted creature has \"{t}: This creature deals 1 damage to any target.\""))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(ability1, AttachmentType.AURA, Duration.WhileOnBattlefield, "Enchanted creature has \"{T}: This creature deals 1 damage to any target.\""))); // Sacrifice Fire Whip: Fire Whip deals 1 damage to any target. Ability ability2 = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new SacrificeSourceCost()); ability2.addTarget(new TargetAnyTarget()); diff --git a/Mage.Sets/src/mage/cards/f/Firestorm.java b/Mage.Sets/src/mage/cards/f/Firestorm.java index 47d626817f7..4cceb29707e 100644 --- a/Mage.Sets/src/mage/cards/f/Firestorm.java +++ b/Mage.Sets/src/mage/cards/f/Firestorm.java @@ -61,7 +61,7 @@ class FirestormEffect extends OneShotEffect { public FirestormEffect() { super(Outcome.Benefit); - staticText = "{this} deals X damage to each of X target creatures and/or players"; + staticText = "{this} deals X damage to each of X targets"; } public FirestormEffect(final FirestormEffect effect) { diff --git a/Mage.Sets/src/mage/cards/f/FitOfRage.java b/Mage.Sets/src/mage/cards/f/FitOfRage.java index da8a94409bf..cce8519b29a 100644 --- a/Mage.Sets/src/mage/cards/f/FitOfRage.java +++ b/Mage.Sets/src/mage/cards/f/FitOfRage.java @@ -1,4 +1,3 @@ - package mage.cards.f; import java.util.UUID; @@ -23,8 +22,10 @@ public final class FitOfRage extends CardImpl { // Target creature gets +3/+3 and gains first strike until end of turn. this.getSpellAbility().addTarget(new TargetCreaturePermanent()); - this.getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn)); - this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new BoostTargetEffect(3, 3, Duration.EndOfTurn) + .setText("target creature gets +3/+3")); + this.getSpellAbility().addEffect(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn) + .setText("and gains first strike until end of turn")); } private FitOfRage(final FitOfRage card) { diff --git a/Mage.Sets/src/mage/cards/f/FlamekinVillage.java b/Mage.Sets/src/mage/cards/f/FlamekinVillage.java index 0e88ee2e731..1487a65d0d9 100644 --- a/Mage.Sets/src/mage/cards/f/FlamekinVillage.java +++ b/Mage.Sets/src/mage/cards/f/FlamekinVillage.java @@ -37,7 +37,7 @@ public final class FlamekinVillage extends CardImpl { super(ownerId,setInfo,new CardType[]{CardType.LAND},""); // As Flamekin Village enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Flamekin Village enters the battlefield tapped. - this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal a Elemental card from your hand. If you don't, {this} enters the battlefield tapped")); + this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal an Elemental card from your hand. If you don't, {this} enters the battlefield tapped")); // {tap}: Add {R}. this.addAbility(new RedManaAbility()); diff --git a/Mage.Sets/src/mage/cards/g/GoblinVandal.java b/Mage.Sets/src/mage/cards/g/GoblinVandal.java index 3d326eb069e..d95f71e23d5 100644 --- a/Mage.Sets/src/mage/cards/g/GoblinVandal.java +++ b/Mage.Sets/src/mage/cards/g/GoblinVandal.java @@ -21,7 +21,6 @@ import mage.filter.predicate.permanent.ControllerIdPredicate; import mage.game.Game; import mage.game.combat.CombatGroup; import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.target.Target; import mage.target.TargetPermanent; @@ -101,6 +100,6 @@ class GoblinVandalTriggeredAbility extends TriggeredAbilityImpl { @Override public String getRule() { - return "Whenever {this} attacks and isn't blocked, you may pay {R}. If you do, destroy target artifact defending player controls and {this} assigns no combat damage this turn"; + return "Whenever {this} attacks and isn't blocked, you may pay {R}. If you do, destroy target artifact defending player controls and {this} assigns no combat damage this turn."; } } diff --git a/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java b/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java index f1cf33c3286..df033dbb29b 100644 --- a/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java +++ b/Mage.Sets/src/mage/cards/g/GripOfPhyresis.java @@ -35,7 +35,7 @@ public final class GripOfPhyresis extends CardImpl { // Gain control of target Equipment, then create a 0/0 black Germ creature token and attach that Equipment to it. GainControlTargetEffect effect = new GainControlTargetEffect(Duration.EndOfGame, true); - effect.setText("Gain control of target equipment"); + effect.setText("Gain control of target Equipment"); this.getSpellAbility().addEffect(effect); Target targetEquipment = new TargetPermanent(filter); this.getSpellAbility().addTarget(targetEquipment); @@ -56,6 +56,7 @@ class GripOfPhyresisEffect extends CreateTokenEffect { GripOfPhyresisEffect() { super(new PhyrexianGermToken()); + staticText = ", then " + staticText + " and attach that Equipment to it"; } GripOfPhyresisEffect(final GripOfPhyresisEffect effect) { diff --git a/Mage.Sets/src/mage/cards/h/HarvestWurm.java b/Mage.Sets/src/mage/cards/h/HarvestWurm.java index 545f09a6b49..ef7d83b9084 100644 --- a/Mage.Sets/src/mage/cards/h/HarvestWurm.java +++ b/Mage.Sets/src/mage/cards/h/HarvestWurm.java @@ -27,7 +27,9 @@ public final class HarvestWurm extends CardImpl { this.toughness = new MageInt(2); // When Harvest Wurm enters the battlefield, sacrifice it unless you return a basic land card from your graveyard to your hand. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandFromGraveyardCost(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_BASIC_LAND))))); + TargetCardInYourGraveyard target = new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_BASIC_LAND_A); + target.setNotTarget(true); + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandFromGraveyardCost(target)))); } private HarvestWurm(final HarvestWurm card) { diff --git a/Mage.Sets/src/mage/cards/h/HauntingMisery.java b/Mage.Sets/src/mage/cards/h/HauntingMisery.java index aac9d2fef14..618b5f395e1 100644 --- a/Mage.Sets/src/mage/cards/h/HauntingMisery.java +++ b/Mage.Sets/src/mage/cards/h/HauntingMisery.java @@ -20,7 +20,7 @@ public final class HauntingMisery extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}{B}"); // As an additional cost to cast Haunting Misery, exile X creature cards from your graveyard. - this.getSpellAbility().addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARD_CREATURE)); + this.getSpellAbility().addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARD_CREATURES_YOUR_GRAVEYARD)); // Haunting Misery deals X damage to target player. this.getSpellAbility().addTarget(new TargetPlayerOrPlaneswalker()); diff --git a/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java b/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java index 3853ff6abe9..f82cfae7acb 100644 --- a/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java +++ b/Mage.Sets/src/mage/cards/i/ImmardTheStormcleaver.java @@ -58,7 +58,7 @@ class ImmardTheStormcleaverEffect extends OneShotEffect { ImmardTheStormcleaverEffect() { super(Outcome.Benefit); - staticText = "put a charge counter on him or remove one from him. When you remove a counter this way, " + staticText = "put a charge counter on it or remove one from it. When you remove a counter this way, " + CardUtil.getTextWithFirstCharLowerCase(ability.getRule()); } @@ -90,7 +90,7 @@ class ImmardTheStormcleaverEffect extends OneShotEffect { return true; } - private static final ReflexiveTriggeredAbility makeAbility() { + private static ReflexiveTriggeredAbility makeAbility() { ReflexiveTriggeredAbility ability = new ReflexiveTriggeredAbility( new DamageTargetEffect(4), false ); @@ -101,7 +101,7 @@ class ImmardTheStormcleaverEffect extends OneShotEffect { mode.addEffect(new GainAbilitySourceEffect( IndestructibleAbility.getInstance(), Duration.EndOfTurn ).setText("and indestructible until end of turn")); - ability.withFirstModeFlavorWord("Sonic Boom").addMode(mode.withFlavorWord("Flash Kick")); + ability.addMode(mode); return ability; } } diff --git a/Mage.Sets/src/mage/cards/i/InducedAmnesia.java b/Mage.Sets/src/mage/cards/i/InducedAmnesia.java index a5513edd8cf..10671e327bc 100644 --- a/Mage.Sets/src/mage/cards/i/InducedAmnesia.java +++ b/Mage.Sets/src/mage/cards/i/InducedAmnesia.java @@ -50,7 +50,7 @@ class InducedAmnesiaExileEffect extends OneShotEffect { InducedAmnesiaExileEffect() { super(Outcome.Detriment); - this.staticText = "target player exiles all the cards in their hand face down, then draws that many cards"; + this.staticText = "target player exiles all cards from their hand face down, then draws that many cards"; } private InducedAmnesiaExileEffect(final InducedAmnesiaExileEffect effect) { diff --git a/Mage.Sets/src/mage/cards/j/JadelightRanger.java b/Mage.Sets/src/mage/cards/j/JadelightRanger.java index 833c98ebd92..2caf4dfcdb9 100644 --- a/Mage.Sets/src/mage/cards/j/JadelightRanger.java +++ b/Mage.Sets/src/mage/cards/j/JadelightRanger.java @@ -27,7 +27,7 @@ public final class JadelightRanger extends CardImpl { // When Jadelight Ranger enters the battlefield, it explores, then it explores again. Ability ability = new EntersBattlefieldTriggeredAbility(new ExploreSourceEffect(false, "it"), false); - ability.addEffect(new ExploreSourceEffect().setText(", then it explores again. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard. Then repeat this process.) ")); + ability.addEffect(new ExploreSourceEffect().setText(", then it explores again. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on this creature, then put the card back or put it into your graveyard. Then repeat this process.)")); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java b/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java index 63497f3f2c0..17439c59361 100644 --- a/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java +++ b/Mage.Sets/src/mage/cards/l/LeoninBladetrap.java @@ -36,7 +36,7 @@ public final class LeoninBladetrap extends CardImpl { // Flash this.addAbility(FlashAbility.getInstance()); // {2}, Sacrifice Leonin Bladetrap: Leonin Bladetrap deals 2 damage to each attacking creature without flying. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, filter), new GenericManaCost(2)); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageAllEffect(2, "it", filter), new GenericManaCost(2)); ability.addCost(new SacrificeSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/l/LightningShrieker.java b/Mage.Sets/src/mage/cards/l/LightningShrieker.java index 4f04762d813..f87c59f8d4c 100644 --- a/Mage.Sets/src/mage/cards/l/LightningShrieker.java +++ b/Mage.Sets/src/mage/cards/l/LightningShrieker.java @@ -1,4 +1,3 @@ - package mage.cards.l; import java.util.UUID; @@ -14,7 +13,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.TargetController; -import mage.constants.Zone; /** * @@ -37,7 +35,7 @@ public final class LightningShrieker extends CardImpl { // At the beginning of the end step, Lightning Shrieker's owner shuffles it into their library. Effect effect = new ShuffleIntoLibrarySourceEffect(); effect.setText("{this}'s owner shuffles it into their library."); - this.addAbility(new BeginningOfEndStepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.ANY, null, false)); + this.addAbility(new BeginningOfEndStepTriggeredAbility(effect, TargetController.NEXT, false)); } private LightningShrieker(final LightningShrieker card) { diff --git a/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java b/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java index 1c84611bfe1..fd540af7c71 100644 --- a/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java +++ b/Mage.Sets/src/mage/cards/l/LobeliaDefenderOfBagEnd.java @@ -50,16 +50,13 @@ public final class LobeliaDefenderOfBagEnd extends CardImpl { // {T}, Sacrifice an artifact: Choose one -- // * Until end of turn, you may play a card exiled with Lobelia without paying its mana cost. // * Each opponent loses 2 life and you gain 2 life. - Ability ability = new SimpleActivatedAbility( - new LobeliaDefenderOfBagEndPlayFromExileEffect(), - new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN) - ); - ability.addCost(new TapSourceCost()); + Ability ability = new SimpleActivatedAbility(new LobeliaDefenderOfBagEndPlayFromExileEffect(), new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN)); ability.addWatcher(new LobeliaDefenderOfBagEndWatcher()); ability.addMode(new Mode( new LoseLifeOpponentsEffect(2) - ).addEffect(new GainLifeEffect(2))); + ).addEffect(new GainLifeEffect(2).concatBy("and"))); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java b/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java index d9418e22907..05670bc42a3 100644 --- a/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java +++ b/Mage.Sets/src/mage/cards/m/MaarikaBrutalGladiator.java @@ -57,12 +57,12 @@ public final class MaarikaBrutalGladiator extends CardImpl { this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( new GainAbilitySourceEffect(IndestructibleAbility.getInstance()), MyTurnCondition.instance, "as long as it's your turn, {this} has indestructible" - )).withFlavorWord("Iron Muscle")); + ))); // Spinning Piledriver—Whenever Zangief deals damage to a creature, if that creature was dealt excess damage this turn, that creature's controller sacrifices a noncreature, nonland permanent. this.addAbility(new DealsDamageToACreatureTriggeredAbility( new MaarikaBrutalGladiatorEffect(), false, false, true, filter - ).withFlavorWord("Spinning Piledriver"), new MaarikaBrutalGladiatorWatcher()); + ), new MaarikaBrutalGladiatorWatcher()); } private MaarikaBrutalGladiator(final MaarikaBrutalGladiator card) { diff --git a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java index 8d8439c1b02..0c1deab303f 100644 --- a/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java +++ b/Mage.Sets/src/mage/cards/m/MausoleumHarpy.java @@ -39,7 +39,7 @@ public final class MausoleumHarpy extends CardImpl { this.addAbility(new ConditionalInterveningIfTriggeredAbility( new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, StaticFilters.FILTER_ANOTHER_CREATURE_YOU_CONTROL), CitysBlessingCondition.instance, - "Whenever another creature you control dies, if you have the city's blessing, put a +1/+1 counter on {this}. ") + "Whenever another creature you control dies, if you have the city's blessing, put a +1/+1 counter on {this}.") .addHint(CitysBlessingHint.instance)); } diff --git a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java index c83c5be0129..a4a43d1f414 100644 --- a/Mage.Sets/src/mage/cards/m/MouthOfRonom.java +++ b/Mage.Sets/src/mage/cards/m/MouthOfRonom.java @@ -29,7 +29,7 @@ public final class MouthOfRonom extends CardImpl { // {T}: Add {C}. this.addAbility(new ColorlessManaAbility()); // {4}{S}, {T}, Sacrifice Mouth of Ronom: Mouth of Ronom deals 4 damage to target creature. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl<>("{4}{S}")); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4, "it"), new ManaCostsImpl<>("{4}{S}")); ability.addTarget(new TargetCreaturePermanent()); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); diff --git a/Mage.Sets/src/mage/cards/o/OrcSureshot.java b/Mage.Sets/src/mage/cards/o/OrcSureshot.java index 0cd8a4e913d..a753b3c7799 100644 --- a/Mage.Sets/src/mage/cards/o/OrcSureshot.java +++ b/Mage.Sets/src/mage/cards/o/OrcSureshot.java @@ -1,34 +1,25 @@ - package mage.cards.o; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAllTriggeredAbility; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; import mage.abilities.effects.common.continuous.BoostTargetEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.constants.SubType; import mage.constants.Duration; -import mage.constants.Zone; +import mage.constants.SubType; import mage.filter.StaticFilters; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.AnotherPredicate; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * * @author LevelX2 */ public final class OrcSureshot extends CardImpl { - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature under your control"); - - static { - filter.add(AnotherPredicate.instance); - } - public OrcSureshot(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{3}{B}"); this.subtype.add(SubType.ORC); @@ -37,7 +28,9 @@ public final class OrcSureshot extends CardImpl { this.toughness = new MageInt(2); // Whenever another creature enters the battlefield under your control, target creature an opponent controls gets -1/-1 until end of turn. - Ability ability = new EntersBattlefieldAllTriggeredAbility(Zone.BATTLEFIELD, new BoostTargetEffect(-1,-1, Duration.EndOfTurn),filter,false); + Ability ability = new EntersBattlefieldControlledTriggeredAbility( + new BoostTargetEffect(-1,-1, Duration.EndOfTurn), + StaticFilters.FILTER_ANOTHER_CREATURE); ability.addTarget(new TargetCreaturePermanent(StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java b/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java index 95e43971ae3..02d594cee71 100644 --- a/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java +++ b/Mage.Sets/src/mage/cards/p/PaladinOfAtonement.java @@ -39,7 +39,7 @@ public final class PaladinOfAtonement extends CardImpl { // When Paladin of Atonement dies, you gain life equal to it's toughness. this.addAbility(new DiesSourceTriggeredAbility(new GainLifeEffect(SourcePermanentToughnessValue.getInstance(), - "you gain life equal to it's toughness"))); + "you gain life equal to its toughness"))); } private PaladinOfAtonement(final PaladinOfAtonement card) { diff --git a/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java b/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java index 20de7bc4047..cefdcb90c80 100644 --- a/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java +++ b/Mage.Sets/src/mage/cards/p/PathOfDiscovery.java @@ -23,7 +23,7 @@ public final class PathOfDiscovery extends CardImpl { // Whenever a creature enters the battlefield under your control, it explores. (Reveal the top card of your library. Put that card into your hand if it's a land. Otherwise, put a +1/+1 counter on the creature, then put the card back or put it into your graveyard.) this.addAbility(new EntersBattlefieldControlledTriggeredAbility( Zone.BATTLEFIELD, new ExploreTargetEffect(), - StaticFilters.FILTER_CONTROLLED_A_CREATURE, false, SetTargetPointer.PERMANENT, null)); + StaticFilters.FILTER_PERMANENT_A_CREATURE, false, SetTargetPointer.PERMANENT, null)); } diff --git a/Mage.Sets/src/mage/cards/p/PendrellMists.java b/Mage.Sets/src/mage/cards/p/PendrellMists.java index b2900e0378c..3600fba07db 100644 --- a/Mage.Sets/src/mage/cards/p/PendrellMists.java +++ b/Mage.Sets/src/mage/cards/p/PendrellMists.java @@ -28,7 +28,7 @@ public final class PendrellMists extends CardImpl { // All creatures have "At the beginning of your upkeep, sacrifice this creature unless you pay {1}." Ability gainedAbility = new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new GenericManaCost(1)), TargetController.YOU, false); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(gainedAbility, Duration.WhileOnBattlefield, StaticFilters.FILTER_PERMANENT_CREATURES, - "All creatures have \"At the beginning of your upkeep, sacrifice this creature unless you pay {1}"))); + "All creatures have \"At the beginning of your upkeep, sacrifice this creature unless you pay {1}.\""))); } private PendrellMists(final PendrellMists card) { diff --git a/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java b/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java index 544ed3867af..e808e3e388d 100644 --- a/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java +++ b/Mage.Sets/src/mage/cards/p/PyriteSpellbomb.java @@ -24,7 +24,7 @@ public final class PyriteSpellbomb extends CardImpl { public PyriteSpellbomb(UUID ownerId, CardSetInfo setInfo) { super(ownerId,setInfo,new CardType[]{CardType.ARTIFACT},"{1}"); - Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ColoredManaCost(ColoredManaSymbol.R)); + Ability firstAbility = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2, "it"), new ColoredManaCost(ColoredManaSymbol.R)); firstAbility.addCost(new SacrificeSourceCost()); firstAbility.addTarget(new TargetAnyTarget()); this.addAbility(firstAbility); diff --git a/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java b/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java index 2d008dc8fc5..04598ed4805 100644 --- a/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java +++ b/Mage.Sets/src/mage/cards/s/SanctumOfTheSun.java @@ -33,7 +33,7 @@ public final class SanctumOfTheSun extends CardImpl { // {T}: Add X mana of any one color, where X is your life total. this.addAbility(new DynamicManaAbility(new Mana(0, 0, 0, 0, 0, 0, 1, 0), ControllerLifeCount.instance, new TapSourceCost(), - "Add X mana of any one color, where X is is your life total", true)); + "Add X mana of any one color, where X is your life total", true)); } diff --git a/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java b/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java index 9e591398a45..e639c36cc4b 100644 --- a/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java +++ b/Mage.Sets/src/mage/cards/s/SerratedBiskelion.java @@ -31,7 +31,7 @@ public final class SerratedBiskelion extends CardImpl { // {tap}: Put a -1/-1 counter on Serrated Biskelion and a -1/-1 counter on target creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.M1M1.createInstance(), true), new TapSourceCost()); - ability.addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance())); + ability.addEffect(new AddCountersTargetEffect(CounterType.M1M1.createInstance()).setText("and a -1/-1 counter on target creature")); ability.addTarget(new TargetCreaturePermanent()); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java b/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java index e77e30e1ae7..2d2d4b3cf7e 100644 --- a/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java +++ b/Mage.Sets/src/mage/cards/s/ShamanOfTheGreatHunt.java @@ -48,9 +48,9 @@ public final class ShamanOfTheGreatHunt extends CardImpl { // Haste this.addAbility(HasteAbility.getInstance()); - // Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on that creature. + // Whenever a creature you control deals combat damage to a player, put a +1/+1 counter on it. Effect effect = new AddCountersTargetEffect(CounterType.P1P1.createInstance()); - effect.setText("put a +1/+1 counter on that creature"); + effect.setText("put a +1/+1 counter on it"); this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility( effect, StaticFilters.FILTER_CONTROLLED_A_CREATURE, false, SetTargetPointer.PERMANENT, true diff --git a/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java b/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java index 24e1aaad0eb..35b5bac9227 100644 --- a/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java +++ b/Mage.Sets/src/mage/cards/s/SkitteringMonstrosity.java @@ -25,7 +25,7 @@ public final class SkitteringMonstrosity extends CardImpl { // When you cast a creature spell, sacrifice Skittering Monstrosity. this.addAbility(new SpellCastControllerTriggeredAbility( new SacrificeSourceEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false - )); + ).setTriggerPhrase("When you cast a creature spell, ")); } private SkitteringMonstrosity(final SkitteringMonstrosity card) { diff --git a/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java b/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java index 99876db57d2..05e77adb126 100644 --- a/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java +++ b/Mage.Sets/src/mage/cards/s/SlipperyScoundrel.java @@ -42,7 +42,7 @@ public final class SlipperyScoundrel extends CardImpl { // As long as you have the city's blessing Slippery Scoundrel has Hexproof and can't be blocked. ContinuousEffect boostSource = new GainAbilitySourceEffect(HexproofAbility.getInstance(), Duration.WhileOnBattlefield); ConditionalContinuousEffect effect = new ConditionalContinuousEffect(boostSource, CitysBlessingCondition.instance, - "As long as you have the city's blessing {this} has Hexproof"); + "As long as you have the city's blessing, {this} has hexproof"); Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); RestrictionEffect restrictionEffect = new CantBeBlockedSourceEffect(Duration.WhileOnBattlefield); Effect effect2 = new ConditionalRestrictionEffect(restrictionEffect, CitysBlessingCondition.instance) diff --git a/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java b/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java index 85afd557a90..158c169ac96 100644 --- a/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java +++ b/Mage.Sets/src/mage/cards/s/StampedingHorncrest.java @@ -39,7 +39,7 @@ public final class StampedingHorncrest extends CardImpl { // Stampeding Horncrest has haste as long as you control another Dinosaur. Effect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance()), new PermanentsOnTheBattlefieldCondition(filter), - "{this} has haste as long as you control another dinosaur"); + "{this} has haste as long as you control another Dinosaur"); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); } diff --git a/Mage.Sets/src/mage/cards/s/StrawGolem.java b/Mage.Sets/src/mage/cards/s/StrawGolem.java index 704c717d752..92c6079d2bc 100644 --- a/Mage.Sets/src/mage/cards/s/StrawGolem.java +++ b/Mage.Sets/src/mage/cards/s/StrawGolem.java @@ -24,7 +24,8 @@ public final class StrawGolem extends CardImpl { this.toughness = new MageInt(3); // When an opponent casts a creature spell, sacrifice Straw Golem. - this.addAbility(new SpellCastOpponentTriggeredAbility(new SacrificeSourceEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false)); + this.addAbility(new SpellCastOpponentTriggeredAbility(new SacrificeSourceEffect(), StaticFilters.FILTER_SPELL_A_CREATURE, false) + .setTriggerPhrase("When an opponent casts a creature spell, ")); } private StrawGolem(final StrawGolem card) { diff --git a/Mage.Sets/src/mage/cards/s/StriderHarness.java b/Mage.Sets/src/mage/cards/s/StriderHarness.java index fa8c9aabeaf..ef1e170f893 100644 --- a/Mage.Sets/src/mage/cards/s/StriderHarness.java +++ b/Mage.Sets/src/mage/cards/s/StriderHarness.java @@ -1,7 +1,6 @@ - package mage.cards.s; -import java.util.UUID; +import mage.abilities.Ability; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; import mage.abilities.effects.common.continuous.BoostEquippedEffect; @@ -14,7 +13,8 @@ import mage.constants.AttachmentType; import mage.constants.CardType; import mage.constants.Outcome; import mage.constants.SubType; -import mage.constants.Zone; + +import java.util.UUID; /** * @@ -27,11 +27,13 @@ public final class StriderHarness extends CardImpl { this.subtype.add(SubType.EQUIPMENT); // Equipped creature gets +1/+1 and has haste. - this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT))); + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 1)); + ability.addEffect(new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.EQUIPMENT) + .setText("and has haste")); + this.addAbility(ability); // Equip 1 (1: Attach to target creature you control. Equip only as a sorcery.) - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(1, 1))); + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(1))); } private StriderHarness(final StriderHarness card) { diff --git a/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java b/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java index bef6dd512f2..dc2f9ea562a 100644 --- a/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java +++ b/Mage.Sets/src/mage/cards/s/SummonsOfSaruman.java @@ -37,7 +37,7 @@ public final class SummonsOfSaruman extends CardImpl { // Flashback--{3}{U}{R}, Exile X cards from your graveyard. Ability flashback = new FlashbackAbility(this, new ManaCostsImpl<>("{3}{U}{R}")); - flashback.addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARD_CARDS)); + flashback.addCost(new ExileXFromYourGraveCost(StaticFilters.FILTER_CARDS_FROM_YOUR_GRAVEYARD)); this.addAbility(flashback); } @@ -115,4 +115,4 @@ class SummonsOfSarumanEffect extends OneShotEffect { return true; } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/s/SylvanHierophant.java b/Mage.Sets/src/mage/cards/s/SylvanHierophant.java index 93740e1102d..6680617d9e9 100644 --- a/Mage.Sets/src/mage/cards/s/SylvanHierophant.java +++ b/Mage.Sets/src/mage/cards/s/SylvanHierophant.java @@ -3,7 +3,6 @@ package mage.cards.s; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.DiesSourceTriggeredAbility; -import mage.abilities.effects.Effect; import mage.abilities.effects.common.ExileSourceEffect; import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; import mage.cards.CardImpl; @@ -16,7 +15,6 @@ import mage.target.common.TargetCardInYourGraveyard; import java.util.UUID; - /** * * @author jmharmon @@ -39,9 +37,8 @@ public final class SylvanHierophant extends CardImpl { this.toughness = new MageInt(2); // When Sylvan Hierophant dies, exile Sylvan Hierophant, then return another target creature card from your graveyard to your hand. - Effect effect = new ReturnFromGraveyardToHandTargetEffect(); Ability ability = new DiesSourceTriggeredAbility(new ExileSourceEffect(), false); - ability.addEffect(effect); + ability.addEffect(new ReturnFromGraveyardToHandTargetEffect().concatBy(", then")); ability.addTarget(new TargetCardInYourGraveyard(filter)); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java b/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java index 2bbb6568cda..2794e7fc06e 100644 --- a/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java +++ b/Mage.Sets/src/mage/cards/t/TadeasJuniperAscendant.java @@ -54,7 +54,7 @@ public final class TadeasJuniperAscendant extends CardImpl { // Tadeas has hexproof unless it's attacking. this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( new GainAbilitySourceEffect(HexproofAbility.getInstance()), - condition, "{this} has hexproof unless he's attacking" + condition, "{this} has hexproof unless it's attacking" ))); // Whenever a creature you control with reach attacks, untap it and it can't be blocked by creatures with greater power this combat. @@ -123,6 +123,7 @@ class TadeasJuniperAscendantEvasionEffect extends RestrictionEffect { return this.targetPointer.getTargets(game, source).contains(permanent.getId()); } + @Override public boolean canBeBlocked(Permanent attacker, Permanent blocker, Ability source, Game game, boolean canUseChooseDialogs) { return blocker.getPower().getValue() <= attacker.getPower().getValue(); } @@ -131,4 +132,4 @@ class TadeasJuniperAscendantEvasionEffect extends RestrictionEffect { public TadeasJuniperAscendantEvasionEffect copy() { return new TadeasJuniperAscendantEvasionEffect(this); } -} \ No newline at end of file +} diff --git a/Mage.Sets/src/mage/cards/t/TemurWarShaman.java b/Mage.Sets/src/mage/cards/t/TemurWarShaman.java index 1c4c79b2238..15f0ea0907c 100644 --- a/Mage.Sets/src/mage/cards/t/TemurWarShaman.java +++ b/Mage.Sets/src/mage/cards/t/TemurWarShaman.java @@ -68,7 +68,7 @@ class TemurWarShamanTriggeredAbility extends TurnedFaceUpAllTriggeredAbility { @Override public String getRule() { - return "Whenever a permanent you control is turned face up, if it is a creature, you may have it fight target creature you don't control."; + return "Whenever a permanent you control is turned face up, if it's a creature, you may have it fight target creature you don't control."; } } diff --git a/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java b/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java index 741916f6784..248a7d1e92e 100644 --- a/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java +++ b/Mage.Sets/src/mage/cards/t/TheHowlingAbomination.java @@ -42,15 +42,15 @@ public final class TheHowlingAbomination extends CardImpl { this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect( new GainAbilitySourceEffect(TrampleAbility.getInstance()), TheHowlingAbominationCondition.instance, "{this} has trample as long as you've cast three or more spells this turn" - )).withFlavorWord("Rolling Attack")); + ))); // Electric Thunder—Whenever Blanka becomes the target of a spell, he gets +2/+2 until end of turn and deals 2 damage to each opponent. Ability ability = new SourceBecomesTargetTriggeredAbility(new BoostSourceEffect( 2, 2, Duration.EndOfTurn - ).setText("he gets +2/+2 until end of turn"), StaticFilters.FILTER_SPELL_A).setTriggerPhrase("Whenever {this} becomes the target of a spell, "); + ).setText("it gets +2/+2 until end of turn"), StaticFilters.FILTER_SPELL_A).setTriggerPhrase("Whenever {this} becomes the target of a spell, "); ability.addEffect(new DamagePlayersEffect(2, TargetController.OPPONENT) .setText("and deals 2 damage to each opponent")); - this.addAbility(ability.withFlavorWord("Electric Thunder")); + this.addAbility(ability); } private TheHowlingAbomination(final TheHowlingAbomination card) { diff --git a/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java b/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java index da3259b42e8..38555a26c7d 100644 --- a/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java +++ b/Mage.Sets/src/mage/cards/t/ThrunBreakerOfSilence.java @@ -27,8 +27,6 @@ import mage.game.stack.StackObject; */ public final class ThrunBreakerOfSilence extends CardImpl { - - public ThrunBreakerOfSilence(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{G}{G}"); @@ -65,18 +63,18 @@ public final class ThrunBreakerOfSilence extends CardImpl { class ThrunBreakerOfSilenceEffect extends ContinuousRuleModifyingEffectImpl { - public ThrunBreakerOfSilenceEffect() { - super(Duration.WhileOnBattlefield, Outcome.BoostCreature); + ThrunBreakerOfSilenceEffect() { + super(Duration.WhileOnBattlefield, Outcome.AddAbility); staticText = "{this} can't be the target of nongreen spells your opponents control or abilities from nongreen sources your opponents control"; } - public ThrunBreakerOfSilenceEffect(final mage.cards.t.ThrunBreakerOfSilenceEffect effect) { + private ThrunBreakerOfSilenceEffect(final ThrunBreakerOfSilenceEffect effect) { super(effect); } @Override - public mage.cards.t.ThrunBreakerOfSilenceEffect copy() { - return new mage.cards.t.ThrunBreakerOfSilenceEffect(this); + public ThrunBreakerOfSilenceEffect copy() { + return new ThrunBreakerOfSilenceEffect(this); } @Override diff --git a/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java b/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java index d320c68b8b8..1819e7c6aa5 100644 --- a/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java +++ b/Mage.Sets/src/mage/cards/t/TyrantsFamiliar.java @@ -49,7 +49,7 @@ public final class TyrantsFamiliar extends CardImpl { Ability gainedAbility = new AttacksTriggeredAbility(new DamageTargetEffect(7, "it"), false); gainedAbility.addTarget(new TargetPermanent(filter)); ContinuousEffect effect = new GainAbilitySourceEffect(gainedAbility); - effect.setText("and has \"Whenever {this} attacks, it deals 7 damage to target creature defending player controls\""); + effect.setText("and has \"Whenever {this} attacks, it deals 7 damage to target creature defending player controls.\""); this.addAbility(new LieutenantAbility(effect)); } diff --git a/Mage.Sets/src/mage/cards/v/Vaultbreaker.java b/Mage.Sets/src/mage/cards/v/Vaultbreaker.java index 9afe53ea9d2..03fa12e4c4c 100644 --- a/Mage.Sets/src/mage/cards/v/Vaultbreaker.java +++ b/Mage.Sets/src/mage/cards/v/Vaultbreaker.java @@ -28,7 +28,7 @@ public final class Vaultbreaker extends CardImpl { // Whenever Vaultbreaker attacks, you may discard a card. If you do, draw a card. this.addAbility(new AttacksTriggeredAbility(new DoIfCostPaid(new DrawCardSourceControllerEffect(1), - new DiscardCardCost()), false, "Whenever {this} attacks, you may discard a card. If you do, draw a card")); + new DiscardCardCost()))); // Dash {2}{R} this.addAbility(new DashAbility("{2}{R}")); diff --git a/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java b/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java index 4c820e4eaeb..8fa03b3c406 100644 --- a/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java +++ b/Mage.Sets/src/mage/cards/v/VikyaScorchingStalwart.java @@ -43,7 +43,7 @@ public final class VikyaScorchingStalwart extends CardImpl { ability.addCost(new UntapSourceCost()); ability.addCost(new DiscardCardCost()); ability.addTarget(new TargetAnyTarget()); - this.addAbility(ability.withFlavorWord("Hadoken")); + this.addAbility(ability); } private VikyaScorchingStalwart(final VikyaScorchingStalwart card) { diff --git a/Mage.Sets/src/mage/cards/v/VonasHunger.java b/Mage.Sets/src/mage/cards/v/VonasHunger.java index 2a5e2cde9a8..113d8a9d3b7 100644 --- a/Mage.Sets/src/mage/cards/v/VonasHunger.java +++ b/Mage.Sets/src/mage/cards/v/VonasHunger.java @@ -45,7 +45,7 @@ public final class VonasHunger extends CardImpl { this.getSpellAbility().addEffect(new ConditionalOneShotEffect( new VonasHungerEffect(), CitysBlessingCondition.instance, - "If you have the city's blessing, instead each opponent sacrifices half the creatures they control rounded up")); + "If you have the city's blessing, instead each opponent sacrifices half the creatures they control, rounded up")); } private VonasHunger(final VonasHunger card) { diff --git a/Mage.Sets/src/mage/cards/v/VoraciousVampire.java b/Mage.Sets/src/mage/cards/v/VoraciousVampire.java index 20b8ecc9403..d680395895a 100644 --- a/Mage.Sets/src/mage/cards/v/VoraciousVampire.java +++ b/Mage.Sets/src/mage/cards/v/VoraciousVampire.java @@ -35,7 +35,8 @@ public final class VoraciousVampire extends CardImpl { 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); + Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(1, 1, Duration.EndOfTurn) + .setText("target Vampire you control gets +1/+1"), false); Effect effect = new GainAbilityTargetEffect(new MenaceAbility(), Duration.EndOfTurn); effect.setText("and gains menace until end of turn."); ability.addEffect(effect); diff --git a/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java b/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java index 4f227dd64e3..b78fab4bf65 100644 --- a/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java +++ b/Mage.Sets/src/mage/cards/w/WhisperwoodElemental.java @@ -29,7 +29,7 @@ import mage.filter.predicate.permanent.TokenPredicate; */ public final class WhisperwoodElemental extends CardImpl { - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("face-up, nontoken creatures you control"); + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("face-up nontoken creatures you control"); static { filter.add(Predicates.not(FaceDownPredicate.instance)); @@ -48,7 +48,7 @@ public final class WhisperwoodElemental extends CardImpl { // Sacrifice Whisperwood Elemental: Until end of turn, face-up, nontoken creatures you control gain "When this creature dies, manifest the top card of your library." Ability abilityToGain = new DiesSourceTriggeredAbility(new ManifestEffect(1)); Effect effect = new GainAbilityControlledEffect(abilityToGain, Duration.EndOfTurn, filter); - effect.setText("Until end of turn, face-up, nontoken creatures you control gain \"When this creature dies, manifest the top card of your library.\""); + effect.setText("Until end of turn, face-up nontoken creatures you control gain \"When this creature dies, manifest the top card of your library.\""); this.addAbility(new SimpleActivatedAbility( Zone.ALL, effect, new SacrificeSourceCost())); } diff --git a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java index 9a2e8880a9b..2211c6cfbe9 100644 --- a/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java +++ b/Mage.Sets/src/mage/cards/w/WrexialTheRisenDeep.java @@ -108,7 +108,7 @@ class WrexialTheRisenDeepTriggeredAbility extends TriggeredAbilityImpl { return "Whenever {this} deals combat damage to a player, " + "you may cast target instant or sorcery card " + "from that player's graveyard without paying its mana cost. " - + "If that spell would be put into a graveyard this turn, exile it instead."; + + "If that spell would be put into a graveyard, exile it instead."; } } diff --git a/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java b/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java index 42b77154525..872f067476a 100644 --- a/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java +++ b/Mage.Sets/src/mage/cards/z/ZethiArcaneBlademaster.java @@ -42,7 +42,7 @@ public final class ZethiArcaneBlademaster extends CardImpl { .setTargetAdjuster(ZethiArcaneBlademasterAdjuster.instance)); // Lightning Kick—Whenever Chun-Li attacks, copy each exiled card you own with a kick counter on it. You may cast the copies. - this.addAbility(new AttacksTriggeredAbility(new ZethiArcaneBlademasterCastEffect()).withFlavorWord("Lightning Kick")); + this.addAbility(new AttacksTriggeredAbility(new ZethiArcaneBlademasterCastEffect())); } private ZethiArcaneBlademaster(final ZethiArcaneBlademaster card) { diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java index 0b6dcf9fae3..e9e02ea67b0 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/dies/WhisperwoodElementalTest.java @@ -27,7 +27,7 @@ public class WhisperwoodElementalTest extends CardTestPlayerBase { addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 1); addCard(Zone.HAND, playerA, "Lightning Bolt"); - activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sacrifice {this}: Until end of turn, face-up, nontoken creatures you control gain \"When this creature dies, manifest the top card of your library."); + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Sacrifice {this}: Until end of turn, face-up"); castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "Lightning Bolt", "Silvercoat Lion"); setStopAt(1, PhaseStep.END_TURN); diff --git a/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java b/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java index acaac231f6a..78e2a0db3c3 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/ExileTopCreatureCardOfGraveyardCost.java @@ -19,7 +19,7 @@ public class ExileTopCreatureCardOfGraveyardCost extends CostImpl { public ExileTopCreatureCardOfGraveyardCost(int amount) { this.amount = amount; - this.text = "Exile the top creature card of your graveyard"; + this.text = "exile the top creature card of your graveyard"; } public ExileTopCreatureCardOfGraveyardCost(ExileTopCreatureCardOfGraveyardCost cost) { diff --git a/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java b/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java index da3dc7f9d60..691c91f073b 100644 --- a/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java +++ b/Mage/src/main/java/mage/abilities/costs/common/ReturnToHandFromGraveyardCost.java @@ -22,7 +22,7 @@ public class ReturnToHandFromGraveyardCost extends CostImpl { public ReturnToHandFromGraveyardCost(TargetCardInYourGraveyard target) { this.addTarget(target); - this.text = "return " + target.getDescription() + " from graveyard to it's owner's hand"; + this.text = "return " + target.getDescription() + " from your graveyard to your hand"; } public ReturnToHandFromGraveyardCost(ReturnToHandFromGraveyardCost cost) { diff --git a/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java index 926e5d2bb40..376f73cc86e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DamageAllEffect.java @@ -76,11 +76,4 @@ public class DamageAllEffect extends OneShotEffect { staticText = sb.toString(); } - public String getSourceName() { - return sourceName; - } - - public void setSourceName(String sourceName) { - this.sourceName = sourceName; - } } diff --git a/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java b/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java index c91adb23b8d..91646477f1f 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/DamageWithExcessEffect.java @@ -24,8 +24,8 @@ public class DamageWithExcessEffect extends OneShotEffect { public DamageWithExcessEffect(DynamicValue amount) { super(Outcome.Damage); this.amount = amount; - this.staticText = "{this} deals " + amount + " damage to target creature" + - (amount instanceof StaticValue ? "" : ", where X is " + amount.getMessage()) + + this.staticText = "{this} deals " + (amount instanceof StaticValue ? amount : "X") + " damage to target creature" + + (amount instanceof StaticValue ? "" : ", where X is the number of " + amount.getMessage()) + ". Excess damage is dealt to that creature's controller instead"; } diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java index ecdc9d5c3ef..1c5c9db973e 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/GainAbilityAttachedEffect.java @@ -7,6 +7,7 @@ import mage.abilities.TriggeredAbility; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.keyword.ProtectionAbility; +import mage.abilities.mana.ManaAbility; import mage.constants.*; import mage.game.Game; import mage.game.permanent.Permanent; @@ -143,7 +144,9 @@ public class GainAbilityAttachedEffect extends ContinuousEffectImpl { } boolean quotes = ability instanceof SimpleActivatedAbility || ability instanceof TriggeredAbility - || ability instanceof LoyaltyAbility; + || ability instanceof LoyaltyAbility + || ability instanceof ManaAbility + || ability.getRule().startsWith("If "); if (quotes) { sb.append('"'); } diff --git a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java index c9788014a73..adb80f5f1c9 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java +++ b/Mage/src/main/java/mage/abilities/effects/common/search/SearchLibraryGraveyardWithLessMVPutIntoPlay.java @@ -29,7 +29,7 @@ public class SearchLibraryGraveyardWithLessMVPutIntoPlay extends OneShotEffect { public SearchLibraryGraveyardWithLessMVPutIntoPlay(FilterCard filter) { super(Outcome.PutCreatureInPlay); this.filter = filter; - staticText = "Search your library and/or graveyard for a " + filter.getMessage() + " with mana value X or less, put it onto the battlefield. If you search your library this way, shuffle."; + staticText = "Search your library and/or graveyard for a " + filter.getMessage() + " with mana value X or less and put it onto the battlefield. If you search your library this way, shuffle."; } protected SearchLibraryGraveyardWithLessMVPutIntoPlay(final SearchLibraryGraveyardWithLessMVPutIntoPlay effect) {