diff --git a/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java b/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java index 0e31e2e7db7..aca62cc4936 100644 --- a/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java +++ b/Mage.Sets/src/mage/cards/e/ExplosiveVegetation.java @@ -1,16 +1,15 @@ - package mage.cards.e; -import java.util.UUID; import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; -import mage.filter.common.FilterBasicLandCard; +import mage.filter.StaticFilters; import mage.target.common.TargetCardInLibrary; +import java.util.UUID; + /** - * * @author Loki */ public final class ExplosiveVegetation extends CardImpl { @@ -19,7 +18,9 @@ public final class ExplosiveVegetation extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{G}"); // Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library. - this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, new FilterBasicLandCard("basic land cards")), true)); + this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect( + new TargetCardInLibrary(2, StaticFilters.FILTER_CARD_BASIC_LANDS), true + )); } private ExplosiveVegetation(final ExplosiveVegetation card) { diff --git a/Mage.Sets/src/mage/cards/l/LarvalScoutlander.java b/Mage.Sets/src/mage/cards/l/LarvalScoutlander.java new file mode 100644 index 00000000000..5e33d70c2c7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LarvalScoutlander.java @@ -0,0 +1,66 @@ +package mage.cards.l; + +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.StationAbility; +import mage.abilities.keyword.StationLevelAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.filter.predicate.Predicates; +import mage.target.common.TargetCardInLibrary; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class LarvalScoutlander extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("land or a Lander"); + + static { + filter.add(Predicates.or( + CardType.LAND.getPredicate(), + SubType.LANDER.getPredicate() + )); + } + + public LarvalScoutlander(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{2}{G}"); + + this.subtype.add(SubType.SPACECRAFT); + + // When this Spacecraft enters, you may sacrifice a land or a Lander. If you do, search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DoIfCostPaid( + new SearchLibraryPutInPlayEffect(new TargetCardInLibrary( + 2, StaticFilters.FILTER_CARD_BASIC_LANDS + ), true), new SacrificeTargetCost(filter) + ))); + + // Station + this.addAbility(new StationAbility()); + + // STATION 7+ + // Flying + // 3/3 + this.addAbility(new StationLevelAbility(7) + .withLevelAbility(FlyingAbility.getInstance()) + .withPT(3, 3)); + } + + private LarvalScoutlander(final LarvalScoutlander card) { + super(card); + } + + @Override + public LarvalScoutlander copy() { + return new LarvalScoutlander(this); + } +} diff --git a/Mage.Sets/src/mage/sets/EdgeOfEternities.java b/Mage.Sets/src/mage/sets/EdgeOfEternities.java index 936cb9fc8c0..5019f8e098e 100644 --- a/Mage.Sets/src/mage/sets/EdgeOfEternities.java +++ b/Mage.Sets/src/mage/sets/EdgeOfEternities.java @@ -159,6 +159,7 @@ public final class EdgeOfEternities extends ExpansionSet { cards.add(new SetCardInfo("Kavaron, Memorial World", 255, Rarity.MYTHIC, mage.cards.k.KavaronMemorialWorld.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Kavaron, Memorial World", 281, Rarity.MYTHIC, mage.cards.k.KavaronMemorialWorld.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Kavaron, Memorial World", 376, Rarity.MYTHIC, mage.cards.k.KavaronMemorialWorld.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Larval Scoutlander", 194, Rarity.UNCOMMON, mage.cards.l.LarvalScoutlander.class)); cards.add(new SetCardInfo("Lashwhip Predator", 195, Rarity.UNCOMMON, mage.cards.l.LashwhipPredator.class)); cards.add(new SetCardInfo("Lightless Evangel", 109, Rarity.UNCOMMON, mage.cards.l.LightlessEvangel.class)); cards.add(new SetCardInfo("Lithobraking", 142, Rarity.UNCOMMON, mage.cards.l.Lithobraking.class));