diff --git a/Mage.Sets/src/mage/cards/a/AnticausalVestige.java b/Mage.Sets/src/mage/cards/a/AnticausalVestige.java index f2a1d07588e..2fecd9a07b7 100644 --- a/Mage.Sets/src/mage/cards/a/AnticausalVestige.java +++ b/Mage.Sets/src/mage/cards/a/AnticausalVestige.java @@ -8,6 +8,7 @@ import mage.abilities.effects.common.DrawCardSourceControllerEffect; import mage.abilities.effects.common.PutCardFromHandOntoBattlefieldEffect; import mage.abilities.hint.common.LandsYouControlHint; import mage.abilities.keyword.WarpAbility; +import mage.cards.Card; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; @@ -17,7 +18,6 @@ import mage.filter.common.FilterPermanentCard; import mage.filter.predicate.ObjectSourcePlayer; import mage.filter.predicate.ObjectSourcePlayerPredicate; import mage.game.Game; -import mage.game.permanent.Permanent; import java.util.UUID; @@ -60,11 +60,11 @@ public final class AnticausalVestige extends CardImpl { } } -enum AnticausalVestigePredicate implements ObjectSourcePlayerPredicate { +enum AnticausalVestigePredicate implements ObjectSourcePlayerPredicate { instance; @Override - public boolean apply(ObjectSourcePlayer input, Game game) { + public boolean apply(ObjectSourcePlayer input, Game game) { return input.getObject().getManaValue() <= LandsYouControlCount.instance.calculate(game, input.getSource(), null); } diff --git a/Mage.Sets/src/mage/cards/a/ArchenemysCharm.java b/Mage.Sets/src/mage/cards/a/ArchenemysCharm.java index 5e206896d38..b22a968a80f 100644 --- a/Mage.Sets/src/mage/cards/a/ArchenemysCharm.java +++ b/Mage.Sets/src/mage/cards/a/ArchenemysCharm.java @@ -45,7 +45,7 @@ public final class ArchenemysCharm extends CardImpl { .addTarget(new TargetCardInYourGraveyard(1, 2, filter))); // * Put two +1/+1 counters on target creature you control. It gains lifelink until end of turn. - this.getSpellAbility().addMode(new Mode(new AddCountersTargetEffect(CounterType.P1P1.createInstance())) + this.getSpellAbility().addMode(new Mode(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2))) .addEffect(new GainAbilityTargetEffect(LifelinkAbility.getInstance()) .setText("It gains lifelink until end of turn")) .addTarget(new TargetControlledCreaturePermanent())); diff --git a/Mage.Sets/src/mage/cards/a/AstelliReclaimer.java b/Mage.Sets/src/mage/cards/a/AstelliReclaimer.java index e4b20919ed2..b3a03f92a74 100644 --- a/Mage.Sets/src/mage/cards/a/AstelliReclaimer.java +++ b/Mage.Sets/src/mage/cards/a/AstelliReclaimer.java @@ -3,7 +3,7 @@ package mage.cards.a; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.WarpAbility; import mage.cards.Card; @@ -28,8 +28,7 @@ import java.util.UUID; public final class AstelliReclaimer extends CardImpl { private static final FilterCard filter = new FilterCard( - "noncreature, nonland permanent card with mana value X or less from your graveyard " + - "to the battlefield, where X is the amount of mana spent to cast this creature" + "noncreature, nonland permanent card with mana value X or less" ); static { @@ -51,7 +50,9 @@ public final class AstelliReclaimer extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // When this creature enters, return target noncreature, nonland permanent card with mana value X or less from your graveyard to the battlefield, where X is the amount of mana spent to cast this creature. - Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToHandTargetEffect()); + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect() + .setText("return target noncreature, nonland permanent card with mana value X or less from " + + "your graveyard to the battlefield, where X is the amount of mana spent to cast this creature")); ability.addTarget(new TargetCardInYourGraveyard(filter)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/cards/d/DepthshakerTitan.java b/Mage.Sets/src/mage/cards/d/DepthshakerTitan.java index 23ceab7eb94..44a47f8dceb 100644 --- a/Mage.Sets/src/mage/cards/d/DepthshakerTitan.java +++ b/Mage.Sets/src/mage/cards/d/DepthshakerTitan.java @@ -50,7 +50,7 @@ public final class DepthshakerTitan extends CardImpl { ).setText("any number of target noncreature artifacts you control")); ability.addEffect(new SetBasePowerToughnessTargetEffect( 3, 3, Duration.Custom - ).setText(" 3/3 artifact creatures")); + ).setText(" become 3/3 artifact creatures")); ability.addEffect(new CreateDelayedTriggeredAbilityEffect( new AtTheBeginOfNextEndStepDelayedTriggeredAbility( new SacrificeTargetEffect().setText("sacrifice those artifacts") diff --git a/Mage.Sets/src/mage/cards/i/InfiniteGuidelineStation.java b/Mage.Sets/src/mage/cards/i/InfiniteGuidelineStation.java index 0a6ce25d837..f77571b35d8 100644 --- a/Mage.Sets/src/mage/cards/i/InfiniteGuidelineStation.java +++ b/Mage.Sets/src/mage/cards/i/InfiniteGuidelineStation.java @@ -44,7 +44,9 @@ public final class InfiniteGuidelineStation extends CardImpl { this.subtype.add(SubType.SPACECRAFT); // When Infinite Guideline Station enters, create a tapped 2/2 colorless Robot artifact creature token for each multicolored permanent you control. - this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new RobotToken(), xValue)).addHint(hint)); + this.addAbility(new EntersBattlefieldTriggeredAbility( + new CreateTokenEffect(new RobotToken(), xValue, true, false) + ).addHint(hint)); // Station this.addAbility(new StationAbility()); diff --git a/Mage.Sets/src/mage/cards/s/SamiWildcatCaptain.java b/Mage.Sets/src/mage/cards/s/SamiWildcatCaptain.java index d5a9e61d041..5aa30b4900a 100644 --- a/Mage.Sets/src/mage/cards/s/SamiWildcatCaptain.java +++ b/Mage.Sets/src/mage/cards/s/SamiWildcatCaptain.java @@ -11,7 +11,6 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; import mage.constants.SuperType; -import mage.filter.StaticFilters; import mage.filter.common.FilterNonlandCard; import java.util.UUID; @@ -21,7 +20,7 @@ import java.util.UUID; */ public final class SamiWildcatCaptain extends CardImpl { - private static final FilterNonlandCard filter = new FilterNonlandCard("Spells you cast"); + private static final FilterNonlandCard filter = new FilterNonlandCard("spells you cast"); public SamiWildcatCaptain(UUID ownerId, CardSetInfo setInfo) { super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{4}{R}{W}"); @@ -40,9 +39,9 @@ public final class SamiWildcatCaptain extends CardImpl { this.addAbility(VigilanceAbility.getInstance()); // Spells you cast have affinity for artifacts. - this.addAbility(new SimpleStaticAbility(new GainAbilityControlledSpellsEffect( - new AffinityForArtifactsAbility(), StaticFilters.FILTER_CARD_NON_LAND - ))); + this.addAbility(new SimpleStaticAbility( + new GainAbilityControlledSpellsEffect(new AffinityForArtifactsAbility(), filter) + )); } private SamiWildcatCaptain(final SamiWildcatCaptain card) { diff --git a/Mage.Sets/src/mage/cards/s/SusurSecundiVoidAltar.java b/Mage.Sets/src/mage/cards/s/SusurSecundiVoidAltar.java index 6efe5679d31..dbecd33dd67 100644 --- a/Mage.Sets/src/mage/cards/s/SusurSecundiVoidAltar.java +++ b/Mage.Sets/src/mage/cards/s/SusurSecundiVoidAltar.java @@ -42,7 +42,9 @@ public final class SusurSecundiVoidAltar extends CardImpl { // STATION 12+ // {1}{B}, {T}, Pay 2 life, Sacrifice a creature: Draw cards equal to the sacrificed creature's power. Activate only as a sorcery. Ability ability = new ActivateAsSorceryActivatedAbility( - new DrawCardSourceControllerEffect(SacrificeCostCreaturesPower.instance), new ManaCostsImpl<>("{1}{B}") + new DrawCardSourceControllerEffect(SacrificeCostCreaturesPower.instance) + .setText("draw cards equal to the sacrificed creature's power"), + new ManaCostsImpl<>("{1}{B}") ); ability.addCost(new TapSourceCost()); ability.addCost(new PayLifeCost(2)); diff --git a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java index d7506a09c4b..89e3cbf4d02 100644 --- a/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java +++ b/Mage.Verify/src/test/java/mage/verify/VerifyCardDataTest.java @@ -2424,6 +2424,7 @@ public class VerifyCardDataTest { private static final List selfRefNamedSubtypes = Arrays.asList( SubType.EQUIPMENT, SubType.VEHICLE, + SubType.SPACECRAFT, SubType.AURA, SubType.CLASS, SubType.SAGA, diff --git a/Mage/src/main/java/mage/abilities/keyword/StationLevelAbility.java b/Mage/src/main/java/mage/abilities/keyword/StationLevelAbility.java index 69adb98abd0..20791ca75f9 100644 --- a/Mage/src/main/java/mage/abilities/keyword/StationLevelAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/StationLevelAbility.java @@ -45,7 +45,7 @@ public class StationLevelAbility extends StaticAbility { @Override public String getRule() { - return "STATION " + level + "+" + this + return "STATION " + level + "+
" + this .getEffects() .stream() .map(effect -> effect.getText(this.getModes().getMode()))