From c7c828c2ad094422f3a73e6239c80d567d15b3ac Mon Sep 17 00:00:00 2001 From: theelk801 Date: Thu, 28 Mar 2024 12:46:43 -0400 Subject: [PATCH] [OTJ] Implement Vraska Joins Up --- Mage.Sets/src/mage/cards/v/VraskaJoinsUp.java | 48 +++++++++++++++++++ .../mage/sets/OutlawsOfThunderJunction.java | 1 + 2 files changed, 49 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/v/VraskaJoinsUp.java diff --git a/Mage.Sets/src/mage/cards/v/VraskaJoinsUp.java b/Mage.Sets/src/mage/cards/v/VraskaJoinsUp.java new file mode 100644 index 00000000000..717b8911e64 --- /dev/null +++ b/Mage.Sets/src/mage/cards/v/VraskaJoinsUp.java @@ -0,0 +1,48 @@ +package mage.cards.v; + +import mage.abilities.common.DealsDamageToAPlayerAllTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.counter.AddCountersAllEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SetTargetPointer; +import mage.constants.SuperType; +import mage.counters.CounterType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class VraskaJoinsUp extends CardImpl { + + public VraskaJoinsUp(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{B}{G}"); + + this.supertype.add(SuperType.LEGENDARY); + + // When Vraska Joins Up enters the battlefield, put a deathtouch counter on each creature you control. + this.addAbility(new EntersBattlefieldTriggeredAbility(new AddCountersAllEffect( + CounterType.DEATHTOUCH.createInstance(), StaticFilters.FILTER_CONTROLLED_CREATURE + ))); + + // Whenever a legendary creature you control deals combat damage to a player, draw a card. + this.addAbility(new DealsDamageToAPlayerAllTriggeredAbility( + new DrawCardSourceControllerEffect(1), + StaticFilters.FILTER_CONTROLLED_CREATURE_LEGENDARY, + false, SetTargetPointer.NONE, true + )); + } + + private VraskaJoinsUp(final VraskaJoinsUp card) { + super(card); + } + + @Override + public VraskaJoinsUp copy() { + return new VraskaJoinsUp(this); + } +} diff --git a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java index d80b4a14f62..19994ca54d0 100644 --- a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java +++ b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunction.java @@ -85,6 +85,7 @@ public final class OutlawsOfThunderJunction extends ExpansionSet { cards.add(new SetCardInfo("Tomb Trawler", 250, Rarity.UNCOMMON, mage.cards.t.TombTrawler.class)); cards.add(new SetCardInfo("Unscrupulous Contractor", 112, Rarity.UNCOMMON, mage.cards.u.UnscrupulousContractor.class)); cards.add(new SetCardInfo("Vial Smasher, Gleeful Grenadier", 235, Rarity.UNCOMMON, mage.cards.v.VialSmasherGleefulGrenadier.class)); + cards.add(new SetCardInfo("Vraska Joins Up", 236, Rarity.RARE, mage.cards.v.VraskaJoinsUp.class)); cards.removeIf(setCardInfo -> unfinished.contains(setCardInfo.getName())); // remove when mechanic is implemented }