From 70cc0a5d0e387325635e3087520aeef90a9edd99 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 29 May 2019 23:14:39 -0400 Subject: [PATCH] Implemented Tectonic Reformation --- .../src/mage/cards/t/TectonicReformation.java | 70 +++++++++++++++++++ Mage.Sets/src/mage/sets/ModernHorizons.java | 1 + 2 files changed, 71 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/TectonicReformation.java diff --git a/Mage.Sets/src/mage/cards/t/TectonicReformation.java b/Mage.Sets/src/mage/cards/t/TectonicReformation.java new file mode 100644 index 00000000000..b30837e192e --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TectonicReformation.java @@ -0,0 +1,70 @@ +package mage.cards.t; + +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.StaticFilters; +import mage.game.Game; +import mage.players.Player; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TectonicReformation extends CardImpl { + + public TectonicReformation(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{R}"); + + // Each land card in your hand has cycling {R}. + this.addAbility(new SimpleStaticAbility(new TectonicReformationEffect())); + + // Cycling {2} + this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); + } + + private TectonicReformation(final TectonicReformation card) { + super(card); + } + + @Override + public TectonicReformation copy() { + return new TectonicReformation(this); + } +} + +class TectonicReformationEffect extends ContinuousEffectImpl { + + TectonicReformationEffect() { + super(Duration.WhileOnBattlefield, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); + this.staticText = "each land card in your hand has cycling {R}"; + } + + private TectonicReformationEffect(final TectonicReformationEffect effect) { + super(effect); + } + + @Override + public TectonicReformationEffect copy() { + return new TectonicReformationEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller == null) { + return false; + } + for (Card card : controller.getHand().getCards(StaticFilters.FILTER_CARD_LAND, game)) { + game.getState().addOtherAbility(card, new CyclingAbility(new ManaCostsImpl("{R}"))); + } + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons.java b/Mage.Sets/src/mage/sets/ModernHorizons.java index 9d4b0a0fd71..f1666b45dd3 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons.java @@ -167,6 +167,7 @@ public final class ModernHorizons extends ExpansionSet { cards.add(new SetCardInfo("Talisman of Curiosity", 232, Rarity.UNCOMMON, mage.cards.t.TalismanOfCuriosity.class)); cards.add(new SetCardInfo("Talisman of Hierarchy", 233, Rarity.UNCOMMON, mage.cards.t.TalismanOfHierarchy.class)); cards.add(new SetCardInfo("Talisman of Resilience", 234, Rarity.UNCOMMON, mage.cards.t.TalismanOfResilience.class)); + cards.add(new SetCardInfo("Tectonic Reformation", 149, Rarity.RARE, mage.cards.t.TectonicReformation.class)); cards.add(new SetCardInfo("Tempered Sliver", 183, Rarity.UNCOMMON, mage.cards.t.TemperedSliver.class)); cards.add(new SetCardInfo("The First Sliver", 200, Rarity.MYTHIC, mage.cards.t.TheFirstSliver.class)); cards.add(new SetCardInfo("Throes of Chaos", 150, Rarity.UNCOMMON, mage.cards.t.ThroesOfChaos.class));