From fb8a7689982851ec7a8f4ce69a59bf5279eb492c Mon Sep 17 00:00:00 2001 From: theelk801 Date: Sun, 23 Mar 2025 09:38:11 -0400 Subject: [PATCH] [TDM] Implement United Battlefront --- .../src/mage/cards/u/UnitedBattlefront.java | 47 +++++++++++++++++++ .../src/mage/sets/TarkirDragonstorm.java | 1 + 2 files changed, 48 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/u/UnitedBattlefront.java diff --git a/Mage.Sets/src/mage/cards/u/UnitedBattlefront.java b/Mage.Sets/src/mage/cards/u/UnitedBattlefront.java new file mode 100644 index 00000000000..6822ee42687 --- /dev/null +++ b/Mage.Sets/src/mage/cards/u/UnitedBattlefront.java @@ -0,0 +1,47 @@ +package mage.cards.u; + +import mage.abilities.effects.common.LookLibraryAndPickControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.ComparisonType; +import mage.constants.PutCards; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ManaValuePredicate; +import mage.filter.predicate.mageobject.PermanentPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class UnitedBattlefront extends CardImpl { + + private static final FilterCard filter = new FilterCard("noncreature, nonland permanent cards with mana value 3 or less"); + + static { + filter.add(Predicates.not(CardType.CREATURE.getPredicate())); + filter.add(Predicates.not(CardType.LAND.getPredicate())); + filter.add(PermanentPredicate.instance); + filter.add(new ManaValuePredicate(ComparisonType.FEWER_THAN, 4)); + } + + public UnitedBattlefront(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{3}{W}"); + + // Look at the top seven cards of your library. Put up to two noncreature, nonland permanent cards with mana value 3 or less from among them onto the battlefield. Put the rest on the bottom of your library in a random order. + this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect( + 7, 1, filter, PutCards.BATTLEFIELD, PutCards.BOTTOM_RANDOM + )); + } + + private UnitedBattlefront(final UnitedBattlefront card) { + super(card); + } + + @Override + public UnitedBattlefront copy() { + return new UnitedBattlefront(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java index 2c8716a532f..e8370d389a8 100644 --- a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java +++ b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java @@ -95,6 +95,7 @@ public final class TarkirDragonstorm extends ExpansionSet { cards.add(new SetCardInfo("Thornwood Falls", 269, Rarity.COMMON, mage.cards.t.ThornwoodFalls.class)); cards.add(new SetCardInfo("Tranquil Cove", 270, Rarity.COMMON, mage.cards.t.TranquilCove.class)); cards.add(new SetCardInfo("Undergrowth Leopard", 165, Rarity.COMMON, mage.cards.u.UndergrowthLeopard.class)); + cards.add(new SetCardInfo("United Battlefront", 32, Rarity.RARE, mage.cards.u.UnitedBattlefront.class)); cards.add(new SetCardInfo("Unrooted Ancestor", 96, Rarity.UNCOMMON, mage.cards.u.UnrootedAncestor.class)); cards.add(new SetCardInfo("Venerated Stormsinger", 97, Rarity.UNCOMMON, mage.cards.v.VeneratedStormsinger.class)); cards.add(new SetCardInfo("Voice of Victory", 33, Rarity.RARE, mage.cards.v.VoiceOfVictory.class));