From c30ca003fed29732e78ae8095c15e20e4e95f174 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 24 Jan 2025 11:16:07 -0500 Subject: [PATCH] [DSK] Implement Aether Syphon --- Mage.Sets/src/mage/cards/a/AetherSyphon.java | 50 ++++++++++++++++++++ Mage.Sets/src/mage/sets/Aetherdrift.java | 1 + 2 files changed, 51 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/AetherSyphon.java diff --git a/Mage.Sets/src/mage/cards/a/AetherSyphon.java b/Mage.Sets/src/mage/cards/a/AetherSyphon.java new file mode 100644 index 00000000000..4d78ddd15bc --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AetherSyphon.java @@ -0,0 +1,50 @@ +package mage.cards.a; + +import mage.abilities.Ability; +import mage.abilities.common.DrawCardControllerTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.MillCardsEachPlayerEffect; +import mage.abilities.effects.common.continuous.MaxSpeedGainAbilityEffect; +import mage.abilities.keyword.StartYourEnginesAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.TargetController; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class AetherSyphon extends CardImpl { + + public AetherSyphon(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{1}{U}{U}"); + + // Start your engines! + this.addAbility(new StartYourEnginesAbility()); + + // {2}, {T}: Draw a card. + Ability ability = new SimpleActivatedAbility(new DrawCardSourceControllerEffect(1), new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + // Max speed -- Whenever you draw a card, each opponent mills two cards. + this.addAbility(new SimpleStaticAbility(new MaxSpeedGainAbilityEffect(new DrawCardControllerTriggeredAbility( + new MillCardsEachPlayerEffect(2, TargetController.OPPONENT), false + )))); + } + + private AetherSyphon(final AetherSyphon card) { + super(card); + } + + @Override + public AetherSyphon copy() { + return new AetherSyphon(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Aetherdrift.java b/Mage.Sets/src/mage/sets/Aetherdrift.java index 48a3d3e91fa..a16a210914e 100644 --- a/Mage.Sets/src/mage/sets/Aetherdrift.java +++ b/Mage.Sets/src/mage/sets/Aetherdrift.java @@ -25,6 +25,7 @@ public final class Aetherdrift extends ExpansionSet { this.hasBasicLands = true; this.hasBoosters = false; // temporary + cards.add(new SetCardInfo("Aether Syphon", 38, Rarity.UNCOMMON, mage.cards.a.AetherSyphon.class)); cards.add(new SetCardInfo("Air Response Unit", 1, Rarity.UNCOMMON, mage.cards.a.AirResponseUnit.class)); cards.add(new SetCardInfo("Bleachbone Verge", 250, Rarity.RARE, mage.cards.b.BleachboneVerge.class)); cards.add(new SetCardInfo("Bloodfell Caves", 251, Rarity.COMMON, mage.cards.b.BloodfellCaves.class));