From 44389cbbbfa27aa06a99006f58ff4628321043b9 Mon Sep 17 00:00:00 2001 From: jmlundeen Date: Mon, 7 Apr 2025 11:02:17 -0500 Subject: [PATCH] [TDM] Implement Bloomvine Regent --- .../src/mage/cards/b/BloomvineRegent.java | 68 +++++++++++++++++++ .../src/mage/sets/TarkirDragonstorm.java | 1 + 2 files changed, 69 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/b/BloomvineRegent.java diff --git a/Mage.Sets/src/mage/cards/b/BloomvineRegent.java b/Mage.Sets/src/mage/cards/b/BloomvineRegent.java new file mode 100644 index 00000000000..88f7e8cb72d --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BloomvineRegent.java @@ -0,0 +1,68 @@ +package mage.cards.b; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldThisOrAnotherTriggeredAbility; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.search.SearchLibraryPutOntoBattlefieldTappedRestInHandEffect; +import mage.cards.OmenCard; +import mage.constants.SubType; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SuperType; +import mage.filter.FilterCard; +import mage.filter.common.FilterBasicLandCard; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.Target; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author Jmlundeen + */ +public final class BloomvineRegent extends OmenCard { + + private static final FilterCard filter = new FilterCard("basic Forest cards"); + + static { + filter.add(SubType.FOREST.getPredicate()); + filter.add(SuperType.BASIC.getPredicate()); + } + + public BloomvineRegent(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new CardType[]{CardType.SORCERY}, "{3}{G}{G}", "Claim Territory", "{2}{G}"); + + this.subtype.add(SubType.DRAGON); + this.power = new MageInt(4); + this.toughness = new MageInt(5); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Whenever this creature or another Dragon you control enters, you gain 3 life. + this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility( + new GainLifeEffect(3), + new FilterCreaturePermanent(SubType.DRAGON, "Dragon"), + false, + true + )); + + // Claim Territory + // Search your library for up to two basic Forest cards, reveal them, put one onto the battlefield tapped and the other into your hand, then shuffle. (Also shuffle this card.) + TargetCardInLibrary target = new TargetCardInLibrary(0, 2, filter); + this.getSpellCard().getSpellAbility().addEffect(new SearchLibraryPutOntoBattlefieldTappedRestInHandEffect(target, 1)); + this.finalizeOmen(); + } + + private BloomvineRegent(final BloomvineRegent card) { + super(card); + } + + @Override + public BloomvineRegent copy() { + return new BloomvineRegent(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java index 1354ac5ef04..02decfc2e59 100644 --- a/Mage.Sets/src/mage/sets/TarkirDragonstorm.java +++ b/Mage.Sets/src/mage/sets/TarkirDragonstorm.java @@ -45,6 +45,7 @@ public final class TarkirDragonstorm extends ExpansionSet { cards.add(new SetCardInfo("Bearer of Glory", 4, Rarity.COMMON, mage.cards.b.BearerOfGlory.class)); cards.add(new SetCardInfo("Bewildering Blizzard", 38, Rarity.UNCOMMON, mage.cards.b.BewilderingBlizzard.class)); cards.add(new SetCardInfo("Bloodfell Caves", 250, Rarity.COMMON, mage.cards.b.BloodfellCaves.class)); + cards.add(new SetCardInfo("Bloomvine Regent", 136, Rarity.RARE, mage.cards.b.BloomvineRegent.class)); cards.add(new SetCardInfo("Blossoming Sands", 251, Rarity.COMMON, mage.cards.b.BlossomingSands.class)); cards.add(new SetCardInfo("Bone-Cairn Butcher", 173, Rarity.UNCOMMON, mage.cards.b.BoneCairnButcher.class)); cards.add(new SetCardInfo("Boulderborn Dragon", 239, Rarity.COMMON, mage.cards.b.BoulderbornDragon.class));