From 0a1a5b5c490304afb8a95cb0068404c5e665bc05 Mon Sep 17 00:00:00 2001 From: fireshoes Date: Mon, 12 Jan 2015 21:18:57 -0600 Subject: [PATCH] Added some FRF cards, Ophidian Eye --- .../sets/fatereforged/AleshasVanguard.java | 63 ++++++++++ .../sets/fatereforged/BatheInDragonfire.java | 60 ++++++++++ .../sets/fatereforged/FearsomeAwakening.java | 95 +++++++++++++++ ...etainers.java => HewedStoneRetainers.java} | 26 ++-- .../fatereforged/MercilessExecutioner.java | 66 +++++++++++ .../sets/fatereforged/QarsiHighPriest.java | 82 +++++++++++++ .../src/mage/sets/fatereforged/Refocus.java | 63 ++++++++++ .../mage/sets/fatereforged/RiteOfUndoing.java | 111 ++++++++++++++++++ .../mage/sets/fatereforged/SibsigHost.java | 64 ++++++++++ .../sets/fatereforged/SibsigMuckdraggers.java | 71 +++++++++++ .../sets/fatereforged/SmolderingEfreet.java | 64 ++++++++++ .../sets/fatereforged/SultaiSkullkeeper.java | 64 ++++++++++ .../src/mage/sets/fatereforged/WhiskAway.java | 95 +++++++++++++++ .../src/mage/sets/timespiral/OphidianEye.java | 77 ++++++++++++ Utils/mtg-cards-data.txt | 49 ++++++-- 15 files changed, 1024 insertions(+), 26 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/fatereforged/AleshasVanguard.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/BatheInDragonfire.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/FearsomeAwakening.java rename Mage.Sets/src/mage/sets/fatereforged/{CutStoneRetainers.java => HewedStoneRetainers.java} (79%) create mode 100644 Mage.Sets/src/mage/sets/fatereforged/MercilessExecutioner.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/QarsiHighPriest.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/Refocus.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/RiteOfUndoing.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/SibsigHost.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/SibsigMuckdraggers.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/SmolderingEfreet.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/SultaiSkullkeeper.java create mode 100644 Mage.Sets/src/mage/sets/fatereforged/WhiskAway.java create mode 100644 Mage.Sets/src/mage/sets/timespiral/OphidianEye.java diff --git a/Mage.Sets/src/mage/sets/fatereforged/AleshasVanguard.java b/Mage.Sets/src/mage/sets/fatereforged/AleshasVanguard.java new file mode 100644 index 00000000000..92e47359b59 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/AleshasVanguard.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.DashAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class AleshasVanguard extends CardImpl { + + public AleshasVanguard(UUID ownerId) { + super(ownerId, 60, "Alesha's Vanguard", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Orc"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Dash {2}{B} + this.addAbility(new DashAbility(this, "{2}{B}")); + } + + public AleshasVanguard(final AleshasVanguard card) { + super(card); + } + + @Override + public AleshasVanguard copy() { + return new AleshasVanguard(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/BatheInDragonfire.java b/Mage.Sets/src/mage/sets/fatereforged/BatheInDragonfire.java new file mode 100644 index 00000000000..1aa7812c78c --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/BatheInDragonfire.java @@ -0,0 +1,60 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class BatheInDragonfire extends CardImpl { + + public BatheInDragonfire(UUID ownerId) { + super(ownerId, 92, "Bathe in Dragonfire", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{2}{R}"); + this.expansionSetCode = "FRF"; + + // Bathe in Dragonfire deals 4 damage to target creature. + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new DamageTargetEffect(4)); + } + + public BatheInDragonfire(final BatheInDragonfire card) { + super(card); + } + + @Override + public BatheInDragonfire copy() { + return new BatheInDragonfire(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/FearsomeAwakening.java b/Mage.Sets/src/mage/sets/fatereforged/FearsomeAwakening.java new file mode 100644 index 00000000000..671506b30a4 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/FearsomeAwakening.java @@ -0,0 +1,95 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.counters.CounterType; +import mage.filter.common.FilterCreatureCard; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author fireshoes + */ +public class FearsomeAwakening extends CardImpl { + + public FearsomeAwakening(UUID ownerId) { + super(ownerId, 69, "Fearsome Awakening", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{4}{B}"); + this.expansionSetCode = "FRF"; + + // Return target creature card from your graveyard to the battlefield. If it's a Dragon, put two +1/+1 counters on it. + this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect()); + this.getSpellAbility().addEffect(new FearsomeAwakeningEffect()); + this.getSpellAbility().addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); + } + + public FearsomeAwakening(final FearsomeAwakening card) { + super(card); + } + + @Override + public FearsomeAwakening copy() { + return new FearsomeAwakening(this); + } +} + +class FearsomeAwakeningEffect extends OneShotEffect { + + public FearsomeAwakeningEffect() { + super(Outcome.BoostCreature); + this.staticText = "If it's a Dragon, put two +1/+1 counters on it"; + } + + public FearsomeAwakeningEffect(final FearsomeAwakeningEffect effect) { + super(effect); + } + + @Override + public FearsomeAwakeningEffect copy() { + return new FearsomeAwakeningEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(source.getFirstTarget()); + if (permanent != null && permanent.hasSubtype("Dragon")) { + permanent.addCounters(CounterType.P1P1.createInstance(2), game); + return true; + } + return false; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/fatereforged/CutStoneRetainers.java b/Mage.Sets/src/mage/sets/fatereforged/HewedStoneRetainers.java similarity index 79% rename from Mage.Sets/src/mage/sets/fatereforged/CutStoneRetainers.java rename to Mage.Sets/src/mage/sets/fatereforged/HewedStoneRetainers.java index 7915b36c2f1..235cdd23502 100644 --- a/Mage.Sets/src/mage/sets/fatereforged/CutStoneRetainers.java +++ b/Mage.Sets/src/mage/sets/fatereforged/HewedStoneRetainers.java @@ -46,36 +46,36 @@ import mage.watchers.common.CastSpellLastTurnWatcher; * * @author fireshoes */ -public class CutStoneRetainers extends CardImpl { +public class HewedStoneRetainers extends CardImpl { - public CutStoneRetainers(UUID ownerId) { - super(ownerId, 161, "Cut-Stone Retainers", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); + public HewedStoneRetainers(UUID ownerId) { + super(ownerId, 161, "Hewed Stone Retainers", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); this.expansionSetCode = "FRF"; this.subtype.add("Golem"); this.power = new MageInt(4); this.toughness = new MageInt(4); - // Cast Cut-Stone Retainers only if you've cast another spell this turn. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new CutStoneRetainersEffect())); + // Cast Hewed Stone Retainers only if you've cast another spell this turn. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new HewedStoneRetainersEffect())); } - public CutStoneRetainers(final CutStoneRetainers card) { + public HewedStoneRetainers(final HewedStoneRetainers card) { super(card); } @Override - public CutStoneRetainers copy() { - return new CutStoneRetainers(this); + public HewedStoneRetainers copy() { + return new HewedStoneRetainers(this); } } -class CutStoneRetainersEffect extends ContinuousRuleModifiyingEffectImpl { - CutStoneRetainersEffect() { +class HewedStoneRetainersEffect extends ContinuousRuleModifiyingEffectImpl { + HewedStoneRetainersEffect() { super(Duration.EndOfGame, Outcome.Detriment); staticText = "Cast {this} only if you've cast another spell this turn"; } - CutStoneRetainersEffect(final CutStoneRetainersEffect effect) { + HewedStoneRetainersEffect(final HewedStoneRetainersEffect effect) { super(effect); } @@ -97,7 +97,7 @@ class CutStoneRetainersEffect extends ContinuousRuleModifiyingEffectImpl { } @Override - public CutStoneRetainersEffect copy() { - return new CutStoneRetainersEffect(this); + public HewedStoneRetainersEffect copy() { + return new HewedStoneRetainersEffect(this); } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/fatereforged/MercilessExecutioner.java b/Mage.Sets/src/mage/sets/fatereforged/MercilessExecutioner.java new file mode 100644 index 00000000000..52e28b2b0bc --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/MercilessExecutioner.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.SacrificeAllEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class MercilessExecutioner extends CardImpl { + + public MercilessExecutioner(UUID ownerId) { + super(ownerId, 76, "Merciless Executioner", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Orc"); + this.subtype.add("Warrior"); + this.power = new MageInt(3); + this.toughness = new MageInt(1); + + // When Merciless Executioner enters the battlefield, each player sacrifices a creature. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeAllEffect(1, new FilterControlledCreaturePermanent("creature")))); + + } + + public MercilessExecutioner(final MercilessExecutioner card) { + super(card); + } + + @Override + public MercilessExecutioner copy() { + return new MercilessExecutioner(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/QarsiHighPriest.java b/Mage.Sets/src/mage/sets/fatereforged/QarsiHighPriest.java new file mode 100644 index 00000000000..f6668bd202f --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/QarsiHighPriest.java @@ -0,0 +1,82 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.keyword.ManifestEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class QarsiHighPriest extends CardImpl { + + +private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another creature"); + + static { + filter.add(new AnotherPredicate()); + } + + public QarsiHighPriest(UUID ownerId) { + super(ownerId, 80, "Qarsi High Priest", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(0); + this.toughness = new MageInt(2); + + // {1}{B}, {t}, Sacrifice another creature: Manifest the top card of your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ManifestEffect(1),new ManaCostsImpl("{1}{B}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1, 1, filter, false))); + this.addAbility(ability); + } + + public QarsiHighPriest(final QarsiHighPriest card) { + super(card); + } + + @Override + public QarsiHighPriest copy() { + return new QarsiHighPriest(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/Refocus.java b/Mage.Sets/src/mage/sets/fatereforged/Refocus.java new file mode 100644 index 00000000000..bb3a9f8cc10 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/Refocus.java @@ -0,0 +1,63 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class Refocus extends CardImpl { + + public Refocus(UUID ownerId) { + super(ownerId, 47, "Refocus", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{U}"); + this.expansionSetCode = "FRF"; + + // Untap target creature. + this.getSpellAbility().addEffect(new UntapTargetEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + } + + public Refocus(final Refocus card) { + super(card); + } + + @Override + public Refocus copy() { + return new Refocus(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/RiteOfUndoing.java b/Mage.Sets/src/mage/sets/fatereforged/RiteOfUndoing.java new file mode 100644 index 00000000000..fd57334df7c --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/RiteOfUndoing.java @@ -0,0 +1,111 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.keyword.DelveAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterNonlandPermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetNonlandPermanent; + +/** + * + * @author fireshoes + */ +public class RiteOfUndoing extends CardImpl { + + private static final FilterNonlandPermanent filter = new FilterNonlandPermanent("nonland permanent you don't control"); + + static { + filter.add(new ControllerPredicate(TargetController.NOT_YOU)); + } + + public RiteOfUndoing(UUID ownerId) { + super(ownerId, 49, "Rite of Undoing", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{4}{U}"); + this.expansionSetCode = "FRF"; + + // Delve + this.addAbility(new DelveAbility()); + // Return target nonland permanent you control and target nonland permanent you don't control to their owners' hands. + this.getSpellAbility().addEffect(new RiteOfUndoingEffect()); + this.getSpellAbility().addTarget(new TargetNonlandPermanent()); + this.getSpellAbility().addTarget(new TargetNonlandPermanent(filter)); + } + + public RiteOfUndoing(final RiteOfUndoing card) { + super(card); + } + + @Override + public RiteOfUndoing copy() { + return new RiteOfUndoing(this); + } +} + +class RiteOfUndoingEffect extends OneShotEffect { + + public RiteOfUndoingEffect() { + super(Outcome.ReturnToHand); + this.staticText = "Return target nonland permanent you control and target onland permanent you don't control to their owners' hands"; + } + + public RiteOfUndoingEffect(final RiteOfUndoingEffect effect) { + super(effect); + } + + @Override + public RiteOfUndoingEffect copy() { + return new RiteOfUndoingEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + boolean result = false; + + Permanent permanent = game.getPermanent(source.getFirstTarget()); + if (permanent != null) { + result |= permanent.moveToZone(Zone.HAND, source.getSourceId(), game, false); + } + permanent = game.getPermanent(source.getTargets().get(1).getFirstTarget()); + if (permanent != null) { + result |= permanent.moveToZone(Zone.HAND, source.getSourceId(), game, false); + } + + return result; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/fatereforged/SibsigHost.java b/Mage.Sets/src/mage/sets/fatereforged/SibsigHost.java new file mode 100644 index 00000000000..01165f86a24 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/SibsigHost.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveEachPlayerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; + +/** + * + * @author fireshoes + */ +public class SibsigHost extends CardImpl { + + public SibsigHost(UUID ownerId) { + super(ownerId, 82, "Sibsig Host", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{4}{B}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Zombie"); + this.power = new MageInt(2); + this.toughness = new MageInt(6); + + // When Sibsig Host enters the battlefield, each player puts the top three cards of his or her library into his or her graveyard. + this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveEachPlayerEffect(3, TargetController.ANY))); + } + + public SibsigHost(final SibsigHost card) { + super(card); + } + + @Override + public SibsigHost copy() { + return new SibsigHost(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/SibsigMuckdraggers.java b/Mage.Sets/src/mage/sets/fatereforged/SibsigMuckdraggers.java new file mode 100644 index 00000000000..7641c653271 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/SibsigMuckdraggers.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.keyword.DelveAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author fireshoes + */ +public class SibsigMuckdraggers extends CardImpl { + + public SibsigMuckdraggers(UUID ownerId) { + super(ownerId, 83, "Sibsig Muckdraggers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{8}{B}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Zombie"); + this.power = new MageInt(3); + this.toughness = new MageInt(6); + + // Delve + this.addAbility(new DelveAbility()); + // When Sibsig Muckdraggers enters the battlefield, return target creature card from your graveyard to your hand. + Ability ability = new EntersBattlefieldTriggeredAbility(new ReturnToHandTargetEffect(), false); + ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); + this.addAbility(ability); + } + + public SibsigMuckdraggers(final SibsigMuckdraggers card) { + super(card); + } + + @Override + public SibsigMuckdraggers copy() { + return new SibsigMuckdraggers(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/SmolderingEfreet.java b/Mage.Sets/src/mage/sets/fatereforged/SmolderingEfreet.java new file mode 100644 index 00000000000..6b60fd70db9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/SmolderingEfreet.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class SmolderingEfreet extends CardImpl { + + public SmolderingEfreet(UUID ownerId) { + super(ownerId, 115, "Smoldering Efreet", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{R}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Efreet"); + this.subtype.add("Monk"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Smoldering Efreet dies, it deals 2 damage to you. + this.addAbility(new DiesTriggeredAbility(new DamageControllerEffect(2), false)); + } + + public SmolderingEfreet(final SmolderingEfreet card) { + super(card); + } + + @Override + public SmolderingEfreet copy() { + return new SmolderingEfreet(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/SultaiSkullkeeper.java b/Mage.Sets/src/mage/sets/fatereforged/SultaiSkullkeeper.java new file mode 100644 index 00000000000..d37651cd868 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/SultaiSkullkeeper.java @@ -0,0 +1,64 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.PutTopCardOfLibraryIntoGraveControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class SultaiSkullkeeper extends CardImpl { + + public SultaiSkullkeeper(UUID ownerId) { + super(ownerId, 53, "Sultai Skullkeeper", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Naga"); + this.subtype.add("Shaman"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // When Sultai Skullkeeper enters the battlefield, put the top two cards of your library into your graveyard. + this.addAbility(new EntersBattlefieldTriggeredAbility(new PutTopCardOfLibraryIntoGraveControllerEffect(2))); + } + + public SultaiSkullkeeper(final SultaiSkullkeeper card) { + super(card); + } + + @Override + public SultaiSkullkeeper copy() { + return new SultaiSkullkeeper(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/WhiskAway.java b/Mage.Sets/src/mage/sets/fatereforged/WhiskAway.java new file mode 100644 index 00000000000..909e96c80ec --- /dev/null +++ b/Mage.Sets/src/mage/sets/fatereforged/WhiskAway.java @@ -0,0 +1,95 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterAttackingOrBlockingCreature; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class WhiskAway extends CardImpl { + + private static final FilterAttackingOrBlockingCreature filter = new FilterAttackingOrBlockingCreature(); + + public WhiskAway(UUID ownerId) { + super(ownerId, 57, "Whisk Away", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{U}"); + this.expansionSetCode = "FRF"; + + // Put target attacking or blocking creature on top of its owner's library. + this.getSpellAbility().addEffect(new WhiskAwayEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter)); + } + + public WhiskAway(final WhiskAway card) { + super(card); + } + + @Override + public WhiskAway copy() { + return new WhiskAway(this); + } +} + +class WhiskAwayEffect extends OneShotEffect { + + WhiskAwayEffect() { + super(Outcome.Removal); + staticText = "Put target attacking or blocking creature on top of its owner's library"; + } + + WhiskAwayEffect(final WhiskAwayEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent targetCreature = game.getPermanent(targetPointer.getFirst(game, source)); + if (targetCreature != null) { + targetCreature.moveToZone(Zone.LIBRARY, source.getSourceId(), game, true); + return true; + } + return false; + } + + @Override + public WhiskAwayEffect copy() { + return new WhiskAwayEffect(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/timespiral/OphidianEye.java b/Mage.Sets/src/mage/sets/timespiral/OphidianEye.java new file mode 100644 index 00000000000..4168a2c8bc7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/timespiral/OphidianEye.java @@ -0,0 +1,77 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.timespiral; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.FlashAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class OphidianEye extends CardImpl { + + public OphidianEye(UUID ownerId) { + super(ownerId, 70, "Ophidian Eye", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{U}"); + this.expansionSetCode = "TSP"; + this.subtype.add("Aura"); + + // Flash + this.addAbility(FlashAbility.getInstance()); + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.DrawCard)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + // Whenever enchanted creature deals damage to an opponent, you may draw a card. + this.addAbility(new DealsDamageToAPlayerAttachedTriggeredAbility(new DrawCardSourceControllerEffect(1), "enchanted creature", true, false, false, TargetController.OPPONENT)); + + } + + public OphidianEye(final OphidianEye card) { + super(card); + } + + @Override + public OphidianEye copy() { + return new OphidianEye(this); + } +} diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index efb8a74f191..efaeab64b9c 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -25226,7 +25226,7 @@ Arashin Cleric|Fate Reforged|5|C|{1}{W}|Creature - Human Cleric|1|3|When Arashin Aven Skirmisher|Fate Reforged|6|C|{W}|Creature - Bird Warrior|1|1|Flying| Channel Harm|Fate Reforged|7|U|{5}{W}|Instant|||Prevent all damage that would be dealt to you and permanents you control this turn by sources you don't control. If damage is prevented this way, you may have Channel Harm deal that much damage to target creature.| Citadel Siege|Fate Reforged|8|R|{2}{W}{W}|Enchantment|||As Citadel Siege enters the battlefield, choose Khans or Dragons.$• Khans — At the beginning of combat on your turn, put two +1/+1 counters on target creature you control.$• Dragons — At the beginning of combat on each opponent's turn, tap target creature that player controls.| -Daghatar the Adamant|Fate Reforged|9|R|{3}{W}|Legendary Creature - Human Warrior|0|0|Vigilance$Daghatar the Adamant enters the battlefield with four +1/+1 counters on it.${1}{(B/G)}{(B/G)}: Move a +1/+1 counter from target creature onto a second target creature.| +Daghatar the Adamant|Fate Reforged|9|R|{3}{W}|Legendary Creature - Human Warrior|0|0|Vigilance$Daghatar the Adamant enters the battlefield with four +1/+1 counters on it.${1}{BG}{BG}: Move a +1/+1 counter from target creature onto a second target creature.| Dragon Bell Monk|Fate Reforged|10|C|{2}{W}|Creature - Human Monk|2|2|Vigilance$Prowess| Dragonscale General|Fate Reforged|11|R|{3}{W}|Creature - Human Warrior|2|3|At the beginning of your end step, bolster X, where X is the number of tapped creatures you control. (Choose a creature with the least toughness among creatures you control and put X +1/+1 counters on it.)| Elite Scaleguard|Fate Reforged|12|U|{4}{W}|Creature - Human Soldier|2|3|When Elite Scaleguard enters the battlefield, bolster 2.$Whenever a creature you control with a +1/+1 counter on it attacks, tap target creature defending player controls.| @@ -25242,35 +25242,35 @@ Pressure Point|Fate Reforged|21|C|{1}{W}|Instant|||Tap target creature.$Draw a c ~Rally the Ancestors|Fate Reforged|22|R|{X}{W}{W}|Instant|||Return each creature card with converted mana cost X or less from your graveyard to the battlefield. Exile those creatures at the beginning of your next upkeep. Exile ~.| Sage's Reverie|Fate Reforged|23|U|{3}{W}|Enchantment - Aura|||Enchant creature.$When Sage's Reverie enters the battlefield, draw a card for each aura you control that's attached to a creature.$Enchanted creature gets +1/+1 for each aura you control that's attached to a creature.| Sandblast|Fate Reforged|24|C|{2}{W}|Instant|||Sandblast deals 5 damage to target attacking or blocking creature.| -Sandsteppe Outcast|Fate Reforged|25|C|{2}{W}|Creature - Human Warrior|2|12|1|When Sandsteppe Outcast enters the battlefield, choose one —$• Put a +1/+1 counter on Sandsteppe Outcast.$• Put a 1/1 white Spirit creature token with flying onto the battlefield.$When Sandsteppe Outcast enters the battlefield, choose one —$• Put a +1/+1 counter on Sandsteppe Outcast.$• Put a 1/1 white Spirit creature token with flying onto the battlefield.| +Sandsteppe Outcast|Fate Reforged|25|C|{2}{W}|Creature - Human Warrior|2|12|1|When Sandsteppe Outcast enters the battlefield, choose one —$• Put a +1/+1 counter on Sandsteppe Outcast.$• Put a 1/1 white Spirit creature token with flying onto the battlefield.| Soul Summons|Fate Reforged|26|C|{1}{W}|Sorcery|||Manifest the top card of your library. (Put it onto the battlefield face down as a 2/2 creature. Turn it face up at any time for its mana cost if it's a creature card.)| -Soulfire Grand Master|Fate Reforged|27|M|{1}{W}|Creature - Human Monk|2|2|Lifelink$Instant and sorcery spells you control have lifelink.${2}{(U/R)}{(U/R)}: The next time you cast an instant or sorcery spell from your hand this turn, put that card into your hand instead of your graveyard as it resolves.| +Soulfire Grand Master|Fate Reforged|27|M|{1}{W}|Creature - Human Monk|2|2|Lifelink$Instant and sorcery spells you control have lifelink.${2}{UR}{UR}: The next time you cast an instant or sorcery spell from your hand this turn, put that card into your hand instead of your graveyard as it resolves.| Valorous Stance|Fate Reforged|28|U|{1}{W}|Instant|||Choose one —$• Target creature gains indestructible until end of turn.$• Destroy target creature with toughness 4 or greater.| Wandering Champion|Fate Reforged|29|U|{1}{W}|Creature - Human Monk|3|1|Whenever Wandering Champion deals combat damage to a player, if you control a blue or red permanent, you may discard a card. If you do, draw a card.| Wardscale Dragon|Fate Reforged|30|U|{4}{W}{W}|Creature - Dragon|4|4|Flying$As long as Wardscale Dragon is attacking, defending player can't cast spells.| Aven Surveyor|Fate Reforged|31|C|{3}{U}{U}|Creature - Bird Scout|2|2|When Aven Surveyor enters the battlefield, choose one -$*Put a +1/+1 counter on Aven Surveyor$*Return target creature to its owner's hand| Cloudform|Fate Reforged|32|U|{1}{U}{U}|Enchantment|||When Cloudform enters the battlefield, it becomes an aura with enchant creature. Manifest the top card of your library and attach Cloudform to it.$Enchanted creature has flying and hexproof.| Enhanced Awareness|Fate Reforged|33|C|{4}{U}|Instant|||Draw three cards, then discard a card.| -Fascination|Fate Reforged|34|U|{X}{U}{U}|Sorcery|||Choose one —$• Each player draws X cards.$• Each player puts the top X cards of his or her library into his or her graveyard.$Choose one —$• Each player draws X cards.$• Each player puts the top X cards of his or her library into his or her graveyard.| -Frost Walker|Fate Reforged|35|U|{1}{U}|Creature - Elemental|4|14|1|When Frost Walker becomes the target of a spell or ability, sacrifice it.$When Frost Walker becomes the target of a spell or ability, sacrifice it.| +Fascination|Fate Reforged|34|U|{X}{U}{U}|Sorcery|||Choose one —$• Each player draws X cards.$• Each player puts the top X cards of his or her library into his or her graveyard.| +Frost Walker|Fate Reforged|35|U|{1}{U}|Creature - Elemental|4|14|1|When Frost Walker becomes the target of a spell or ability, sacrifice it.| Jeskai Infiltrator|Fate Reforged|36|R|{2}{U}|Creature - Human Monk|2|3|Jeskai Infiltrator is unblockable as long as you control no other creatures.$Whenever Jeskai Infiltrator deals combat damage to a player, exile it and the top card of your library in a face-down pile, shuffle that pile, then manifest those cards. (To manifest a card, put it onto the battlefield face down as a 2/2 creature. You may turn it face up at any time for its mana cost if it is a creature card.)| -Jeskai Runemark|Fate Reforged|37|C|{2}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2.$Enchanted creature has flying as long as you control a red or white permanent.$Enchant creature| +Jeskai Runemark|Fate Reforged|37|C|{2}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2.$Enchanted creature has flying as long as you control a red or white permanent.| Jeskai Sage|Fate Reforged|38|C|{1}{U}|Creature - Human Monk|1|1|Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn)$When Jeskai Sage dies, draw a card.| Lotus Path Djinn|Fate Reforged|39|C|{3}{U}|Creature - Djinn Monk|2|3|Flying$Prowess| Marang River Prowler|Fate Reforged|40|U|{2}{U}|Creature - Human Rogue|2|1|Marang River Prowler can't block and can't be blocked.$You may cast Marang River Prowler from your graveyard as long as you control a black or green permanent.| Mindscour Dragon|Fate Reforged|41|U|{4}{U}{U}|Creature - Dragon|4|4|Whenever Mindscour Dragon deals combat damage to an opponent, target player puts the top four cards of his or her library into his or her graveyard.| -Mistfire Adept|Fate Reforged|42|U|{3}{U}{3}{U}|Creature - Human Monk|3|33|3|Prowess$Whenever you cast a noncreature spell, target creature gains flying until end of turn.$Prowess$Whenever you cast a noncreature spell, target creature gains flying until end of turn.| +Mistfire Adept|Fate Reforged|42|U|{3}{U}|Creature - Human Monk|3|33|3|Prowess$Whenever you cast a noncreature spell, target creature gains flying until end of turn.| Monastery Siege|Fate Reforged|43|R|{2}{U}|Enchantment|||When Monastery Siege enters the battlefield, choose Khans or Dragons.$• Khans — At the beginning of your draw step, draw an additional card, then discard a card.$• Dragons — Spells your opponents cast that target you or a permanent you control cost {2} more to cast.| Neutralizing Blast|Fate Reforged|44|U|{1}{U}|Instant|||Counter target multicolored spell.| -Rakshasa's Disdain|Fate Reforged|45|C|{2}{U}{2}{U}|Instant|||Counter target spell unless its controller pays {1} for each card in your graveyard.$Counter target spell unless its controller pays {1} for each card in your graveyard.| +Rakshasa's Disdain|Fate Reforged|45|C|{2}{U}|Instant|||Counter target spell unless its controller pays {1} for each card in your graveyard.$Counter target spell unless its controller pays {1} for each card in your graveyard.| Reality Shift|Fate Reforged|46|U|{1}{U}|Instant|||Exile target creature. Its controller manifests the top card of his or her library. (That player puts it onto the battlefield face down as a 2/2 creature. If it's a creature card, it can be turned face up at any time for its mana cost.)| -Refocus|Fate Reforged|47|C|{1}{U}{1}{U}|Instant|||Untap target creature.$Draw a card.$Untap target creature.$Draw a card.| +Refocus|Fate Reforged|47|C|{1}{U}|Untap target creature.$Draw a card.| Renowned Weaponsmith|Fate Reforged|48|U|{1}{U}|Creature - Human Artificer|1|3|{t}: Add {2} to your mana pool. Spend this mana only to cast artifact spells or activate abilities of artifacts.${U}, {t}: Search your library for a card named Heart-Piercer Bow or Vial of Dragonfire, reveal it, put it into your hand, then shuffle your library.| Rite of Undoing|Fate Reforged|49|U|{4}{U}|Instant|||Delve$Return target nonland permanent you control and target nonland permanent you don't control to their owners' hands.| Sage-Eye Avengers|Fate Reforged|50|R|{4}{U}{U}|Creature - Djinn Monk|4|5|Prowess$Whenever Sage-Eye Avengers attacks, you may return target creature to its owner's hand if its power is less than Sage-Eye Avengers's power.| Shifting Loyalties|Fate Reforged|51|U|{5}{U}|Sorcery|||Exchange control of two target permanents that share a type.| Shu Yun, the Silent Tempest|Fate Reforged|52|R|{2}{U}|Legendary Creature - Human Monk|3|2|Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)$Whenever you cast a noncreature spell, you may pay {RW}{RW}. If you do, target creature gains double strike until end of turn.| -Sultai Skulltapper|Fate Reforged|53|C|{1}{U}|Creature - Naga Shaman|2|1|When Sultai Skullkeeper enters the battlefield, put the top two cards of your library into your graveyard.| +Sultai Skullkeeper|Fate Reforged|53|C|{1}{U}|Creature - Naga Shaman|2|1|When Sultai Skullkeeper enters the battlefield, put the top two cards of your library into your graveyard.| Supplant Form|Fate Reforged|54|R|{4}{U}{U}|Instant|||Return target creature to its owner's hand. You put a token onto the battlefield that's a copy of that creature.| Temporal Trespass|Fate Reforged|55|M|{8}{U}{U}{U}|Sorcery|||Delve$Take an extra turn after this one. Exile Temporal Trespass.| Torrent Elemental|Fate Reforged|56|M|{4}{U}|Creature - Elemental|3|5|Flying$Whenever Torrent Elemental attacks, tap all creatures defending player controls.${3}{BG}{BG}: Put Torrent Elemental from exile onto the battlefield tapped. Activate this ability only any time you could cast a sorcery.| @@ -25366,17 +25366,40 @@ Whisperwood Elemental|Fate Reforged|145|M|{3}{G}{G}|Creature - Elemental|4|4|At Wildcall|Fate Reforged|146|R|{X}{G}{G}|Sorcery|||Manifest the top card of your library, then put X +1/+1 counters on it. (To manifest a card, put it onto the battlefield face down as a 2/2 creature. Turn it face up at any time for its mana cost if it's a creature card.)| Winds of Qal Sisma|Fate Reforged|147|U|{1}{G}|Instant|||Prevent all combat damage that would be dealt this turn.$Ferocious — If you control a creature with power 4 or greater, instead prevent all combat damage that would be dealt this turn by creatures your opponents control.| Yasova Dragonclaw|Fate Reforged|148|R|{2}{G}|Legendary Creature - Human Warrior|4|2|Trample$At the beginning of combat on your turn, you may pay {1}{UR}{UR}. If you do, gain control of target creature an opponent controls with power less than Yasova Dragonclaw's power until end of turn, untap that creature, and it gains haste until end of turn.| -Atarka, World Render|Fate Reforged|149|R|{5}{R}{G}|Legendary Creature - Dragon|6|4|Flying, trample$Whenever a Dragon you control attacks, it gains double strike until end of turn.| +Atarka, World Render|Fate Reforged|149|R|{5}{R}{G}|Legendary Creature - Dragon|6|4|Flying$Trample$Whenever a Dragon you control attacks, it gains double strike until end of turn.| Cunning Strike|Fate Reforged|150|C|{3}{U}{R}|Instant|||Cunning Strike deals 2 damage to target creature and 2 damage to target player.$Draw a card.| Dromoka, the Eternal|Fate Reforged|151|R|{3}{G}{W}|Legendary Creature - Dragon|5|5|Flying$Whenever a Dragon you control attacks, bolster 2. (Put 2 +1/+1 counters on a creature of your choice with the lowest toughness among creatures you control.)| Ethereal Ambush|Fate Reforged|152|C|{3}{G}{U}|Instant|||Manifest the top two cards of your library. (To manifest a card, put it onto the battlefield face down as a 2/2 creature. You may turn it face up at any time for its mana cost if it's a creature card.)| Grim Contest|Fate Reforged|153|C|{1}{B}{G}|Instant|||Choose target creature you control and target creature an opponent controls. Each of those creatures deals damage equal to its toughness to the other.| Harsh Sustenance|Fate Reforged|154|C|{1}{W}{B}|Instant|||Harsh Sustenance deals X damage to target creature or player and you gain X life, where X is the number of creatures you control.| Kolaghan, the Storm's Fury|Fate Reforged|155|R|{3}{B}{R}|Legendary Creature - Dragon|4|5|Flying$Whenever a Dragon you control attacks, creatures you control get +1/+0 until end of turn. $Dash {3}{B}{R} (You may cast this spell for its dash cost. If you do, it gains haste, and it's returned from the battlefield to its owner's hand at the beginning of the next end step.)| -Ojutai, Soul of Winter|Fate Reforged|156|R|{5}{W}{U}|Legendary Creature - Dragon|5|6|Flying, vigilance$Whenever a Dragon you control attacks, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step.| +Ojutai, Soul of Winter|Fate Reforged|156|R|{5}{W}{U}|Legendary Creature - Dragon|5|6|Flying$Vigilance$Whenever a Dragon you control attacks, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step.| Silumgar, the Drifting Death|Fate Reforged|157|R|{4}{U}{B}|Legendary Creature - Dragon|3|7|Flying, hexproof$Whenever a Dragon you control attacks, each creature defending player controls get -1/-1 until end of turn.| War Flare|Fate Reforged|158|C|{2}{R}{W}|Instant|||Creatures you control get +2/+1 until end of turn. Untap those creatures.| Goblin Boom Keg|Fate Reforged|159|U|{4}|Artifact|||At the beginning of your upkeep, sacrifice Goblin Boom Keg.$When Goblin Boom Keg is put into a graveyard from the battlefield, it deals 3 damage to target creature or player.| Hero's Blade|Fate Reforged|160|U|{2}|Artifact - Equipment|||Equipped creature gets +3/+2.$Whenever a legendary creature enters the battlefield under your control, you may attach Hero's Blade to it.$Equip {4}| Hewed Stone Retainers|Fate Reforged|161|U|{3}|Artifact Creature - Golem|4|4|Cast Hewed-Stone Retainers only if you've cast another spell this turn.| -Pilgrim of the Fires|Fate Reforged|162|U|{7}|Artifact Creature - Golem|6|4|First strike, trample| \ No newline at end of file +Pilgrim of the Fires|Fate Reforged|162|U|{7}|Artifact Creature - Golem|6|4|First strike, trample| +Scroll of the Masters|Fate Reforged|163|R|{2}|Artifact|||Whenever you cast a noncreature spell, put a lore counter on Scroll of the Masters. ${3},{T}: Target creature you control gets +1/+1 until end of turn for each lore counter on Scroll of the Masters.| +Ugin's Construct|Fate Reforged|164|U|{4}|Artifact Creature - Construct|4|5|When Ugin's Construct enters the battlefield, sacrifice a permanent that's one or more colors.| +Bloodfell Caves|Fate Reforged|165|C||Land|||Bloodfell Caves enters the battlefield tapped.$When Bloodfell Caves enters the battlefield, you gain 1 life.${T}: Add {B} or {R} to your mana pool.| +Blossoming Sands|Fate Reforged|166|C||Land|||Blossoming Sands enters the battlefield tapped.$When Blossoming Sands enters the battlefield, you gain 1 life.${T}: Add {G} or {W} to your mana pool.| +Crucible of the Spirit Dragon|Fate Reforged|167|R||Land|||{T}: Add {1} to your mana pool.${1}, {T}: Put a storage counter on Crucible of the Spirit Dragon.${T}, Remove X storage counters from Crucible of the Spirit Dragon: Add X mana in any combination of colors to your mana pool. Spend this mana only to cast Dragon spells or activate abilities of Dragons.| +Dismal Backwater|Fate Reforged|168|C||Land|||Dismal Backwater enters the battlefield tapped.$When Dismal Backwater enters the battlefield, you gain 1 life.${T}: Add {U} or {B} to your mana pool.| +Jungle Hollow|Fate Reforged|169|C||Land|||Jungle Hollow enters the battlefield tapped.$When Jungle Hollow enters the battlefield, you gain 1 life.${T}: Add {B} or {G} to your mana pool.| +Rugged Highlands|Fate Reforged|170|C||Land|||Rugged Highlands enters the battlefield tapped.$When Rugged Highlands enters the battlefield, you gain 1 life.${T}: Add {R} or {G} to your mana pool.| +Scoured Barrens|Fate Reforged|171|C||Land|||Scoured Barrens enters the battlefield tapped.$When Scoured Barrens enters the battlefield, you gain 1 life.${T}: Add {B} or {W} to your mana pool.| +Swiftwater Cliffs|Fate Reforged|172|C||Land|||Swiftwater Cliffs enters the battlefield tapped.$When Swiftwater Cliffs enters the battlefield, you gain 1 life.${T}: Add {U} or {R} to your mana pool.| +Thornwood Falls|Fate Reforged|173|C||Land|||Thornwood Falls enters the battlefield tapped.$When Thornwood Falls enters the battlefield, you gain 1 life.${T}: Add {G} or {U} to your mana pool.| +Tranquil Cove|Fate Reforged|174|C||Land|||Tranquil Cove enters the battlefield tapped.$When Tranquil Cove enters the battlefield, you gain 1 life.${T}: Add {W} or {U} to your mana pool.| +Wind-Scarred Crag|Fate Reforged|175|C||Land|||Wind-Scarred Crag enters the battlefield tapped.$When Wind-Scarred Crag enters the battlefield, you gain 1 life.${T}: Add {R} or {W} to your mana pool.| +Plains|Fate Reforged|176|L||Basic Land - Plains|||| +Plains|Fate Reforged|177|L||Basic Land - Plains|||| +Island|Fate Reforged|178|L||Basic Land - Island|||| +Island|Fate Reforged|179|L||Basic Land - Island|||| +Swamp|Fate Reforged|180|L||Basic Land - Swamp|||| +Swamp|Fate Reforged|181|L||Basic Land - Swamp|||| +Mountain|Fate Reforged|182|L||Basic Land - Mountain|||| +Mountain|Fate Reforged|183|L||Basic Land - Mountain|||| +Forest|Fate Reforged|184|L||Basic Land - Forest|||| +Forest|Fate Reforged|185|L||Basic Land - Forest|||| \ No newline at end of file