diff --git a/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java b/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java index 3e88033b7fa..b67da0825ad 100644 --- a/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java +++ b/Mage.Sets/src/mage/cards/b/BeastcallerSavant.java @@ -1,7 +1,5 @@ - package mage.cards.b; -import java.util.UUID; import mage.MageInt; import mage.abilities.keyword.HasteAbility; import mage.abilities.mana.ConditionalAnyColorManaAbility; @@ -10,16 +8,17 @@ import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.filter.common.FilterCreatureSpell; +import mage.filter.StaticFilters; + +import java.util.UUID; /** - * * @author fireshoes */ public final class BeastcallerSavant extends CardImpl { public BeastcallerSavant(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{1}{G}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); this.subtype.add(SubType.ELF, SubType.SHAMAN, SubType.ALLY); this.power = new MageInt(1); this.toughness = new MageInt(1); @@ -28,7 +27,7 @@ public final class BeastcallerSavant extends CardImpl { this.addAbility(HasteAbility.getInstance()); // {T}: Add one mana of any color. Spend this mana only to cast a creature spell. - this.addAbility(new ConditionalAnyColorManaAbility(1, new ConditionalSpellManaBuilder(new FilterCreatureSpell("a creature spell")))); + this.addAbility(new ConditionalAnyColorManaAbility(1, new ConditionalSpellManaBuilder(StaticFilters.FILTER_SPELL_A_CREATURE))); } private BeastcallerSavant(final BeastcallerSavant card) { diff --git a/Mage.Sets/src/mage/cards/l/LupinflowerVillage.java b/Mage.Sets/src/mage/cards/l/LupinflowerVillage.java new file mode 100644 index 00000000000..4073dc26d1c --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LupinflowerVillage.java @@ -0,0 +1,66 @@ +package mage.cards.l; + +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ConditionalColoredManaAbility; +import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.PutCards; +import mage.constants.SubType; +import mage.filter.FilterCard; +import mage.filter.StaticFilters; +import mage.filter.predicate.Predicates; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class LupinflowerVillage extends CardImpl { + + private static final FilterCard filter = new FilterCard("a Bat, Bird, Mouse, or Rabbit card"); + + static { + filter.add(Predicates.or( + SubType.BAT.getPredicate(), + SubType.BIRD.getPredicate(), + SubType.MOUSE.getPredicate(), + SubType.RABBIT.getPredicate() + )); + } + + public LupinflowerVillage(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.LAND}, ""); + + // {T}: Add {C}. + this.addAbility(new ColorlessManaAbility()); + + // {T}: Add {W}. Spend this mana only to cast a creature spell. + this.addAbility(new ConditionalColoredManaAbility( + Mana.WhiteMana(1), new ConditionalSpellManaBuilder(StaticFilters.FILTER_SPELL_A_CREATURE) + )); + + // {1}{W}, {T}, Sacrifice Lupinflower Village: Look at the top six cards of your library. You may reveal a Bat, Bird, Mouse, or Rabbit card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. + Ability ability = new SimpleActivatedAbility(new LookLibraryAndPickControllerEffect( + 6, 1, filter, PutCards.HAND, PutCards.BOTTOM_RANDOM + ), new ManaCostsImpl<>("{1}{W}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + private LupinflowerVillage(final LupinflowerVillage card) { + super(card); + } + + @Override + public LupinflowerVillage copy() { + return new LupinflowerVillage(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Bloomburrow.java b/Mage.Sets/src/mage/sets/Bloomburrow.java index 1a3508ab8d8..11b95b3b205 100644 --- a/Mage.Sets/src/mage/sets/Bloomburrow.java +++ b/Mage.Sets/src/mage/sets/Bloomburrow.java @@ -24,6 +24,7 @@ public final class Bloomburrow extends ExpansionSet { cards.add(new SetCardInfo("Bria, Riptide Rogue", 379, Rarity.MYTHIC, mage.cards.b.BriaRiptideRogue.class)); cards.add(new SetCardInfo("Byrke, Long Ear of the Law", 380, Rarity.MYTHIC, mage.cards.b.ByrkeLongEarOfTheLaw.class)); cards.add(new SetCardInfo("Lumra, Bellow of the Woods", 183, Rarity.MYTHIC, mage.cards.l.LumraBellowOfTheWoods.class)); + cards.add(new SetCardInfo("Lupinflower Village", 256, Rarity.UNCOMMON, mage.cards.l.LupinflowerVillage.class)); cards.add(new SetCardInfo("Mabel, Heir to Cragflame", 224, Rarity.RARE, mage.cards.m.MabelHeirToCragflame.class)); cards.add(new SetCardInfo("Mountain", 274, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS)); }