From 3ed82ab65af2d417b1efe331903bc0312e0cb0c8 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 27 Jan 2023 20:50:29 -0500 Subject: [PATCH] [ONE] Implement Trawler Drake --- Mage.Sets/src/mage/cards/t/TrawlerDrake.java | 64 +++++++++++++++++++ .../src/mage/sets/PhyrexiaAllWillBeOne.java | 1 + 2 files changed, 65 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/TrawlerDrake.java diff --git a/Mage.Sets/src/mage/cards/t/TrawlerDrake.java b/Mage.Sets/src/mage/cards/t/TrawlerDrake.java new file mode 100644 index 00000000000..5a292648eb2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TrawlerDrake.java @@ -0,0 +1,64 @@ +package mage.cards.t; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.CountersSourceCount; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.counters.CounterType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TrawlerDrake extends CardImpl { + + private static final DynamicValue xValue = new CountersSourceCount(CounterType.OIL); + + public TrawlerDrake(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}"); + + this.subtype.add(SubType.PHYREXIAN); + this.subtype.add(SubType.DRAKE); + this.power = new MageInt(0); + this.toughness = new MageInt(0); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Trawler Drake enters the battlefield with an oil counter on it. + this.addAbility(new EntersBattlefieldAbility( + new AddCountersSourceEffect(CounterType.OIL.createInstance()), + "with an oil counter on it" + )); + + // Trawler Drake gets +1/+1 for each oil counter on it. + this.addAbility(new SimpleStaticAbility(new BoostSourceEffect(xValue, xValue, Duration.WhileOnBattlefield))); + + // Whenever you cast a noncreature spell, put an oil counter on Trawler Drake. + this.addAbility(new SpellCastControllerTriggeredAbility( + new AddCountersSourceEffect(CounterType.OIL.createInstance()), + StaticFilters.FILTER_SPELL_A_NON_CREATURE, false + )); + } + + private TrawlerDrake(final TrawlerDrake card) { + super(card); + } + + @Override + public TrawlerDrake copy() { + return new TrawlerDrake(this); + } +} diff --git a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java index 1e8f095b030..4f36f7f13b5 100644 --- a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java +++ b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java @@ -182,6 +182,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet { cards.add(new SetCardInfo("Thrun, Breaker of Silence", 186, Rarity.RARE, mage.cards.t.ThrunBreakerOfSilence.class)); cards.add(new SetCardInfo("Titanic Growth", 187, Rarity.COMMON, mage.cards.t.TitanicGrowth.class)); cards.add(new SetCardInfo("Transplant Theorist", 73, Rarity.UNCOMMON, mage.cards.t.TransplantTheorist.class)); + cards.add(new SetCardInfo("Trawler Drake", 74, Rarity.UNCOMMON, mage.cards.t.TrawlerDrake.class)); cards.add(new SetCardInfo("Tyrranax Rex", 189, Rarity.MYTHIC, mage.cards.t.TyrranaxRex.class)); cards.add(new SetCardInfo("Tyvar's Stand", 190, Rarity.UNCOMMON, mage.cards.t.TyvarsStand.class)); cards.add(new SetCardInfo("Tyvar, Jubilant Brawler", 218, Rarity.RARE, mage.cards.t.TyvarJubilantBrawler.class));