diff --git a/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java b/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java index 6f52fdae2d5..8145f756bbf 100644 --- a/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java +++ b/Mage.Client/src/main/java/mage/client/util/audio/LinePool.java @@ -5,10 +5,6 @@ import java.util.LinkedList; import java.util.Set; import java.util.Timer; import java.util.TimerTask; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.ThreadPoolExecutor; -import java.util.concurrent.TimeUnit; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioSystem; @@ -23,6 +19,8 @@ import javax.sound.sampled.SourceDataLine; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import mage.utils.ThreadUtils; + public class LinePool { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -43,25 +41,12 @@ public class LinePool { private Mixer mixer; private int alwaysActive; - private ThreadPoolExecutor threadPool; - private int threadCount; public LinePool() { this(new AudioFormat(22050, 16, 1, true, false), 4, 1); } public LinePool(AudioFormat audioFormat, int size, int alwaysActive) { - threadPool = new ThreadPoolExecutor(alwaysActive, size, 30L, TimeUnit.SECONDS, new LinkedBlockingQueue(), new ThreadFactory() { - @Override - public Thread newThread (Runnable runnable) { - threadCount++; - Thread thread = new Thread(runnable, "Audio" + threadCount); - thread.setDaemon(true); - return thread; - } - }); - threadPool.prestartAllCoreThreads(); - format = audioFormat; this.alwaysActive = alwaysActive; mixer = AudioSystem.getMixer(null); @@ -110,7 +95,7 @@ public class LinePool { busyLines.add(line); logLineStats(); } - threadPool.submit(new Runnable() { + ThreadUtils.threadPool.submit(new Runnable() { @Override public void run() { diff --git a/Mage.Sets/src/mage/sets/EldritchMoon.java b/Mage.Sets/src/mage/sets/EldritchMoon.java index 43e1b95b1c4..73c89460c45 100644 --- a/Mage.Sets/src/mage/sets/EldritchMoon.java +++ b/Mage.Sets/src/mage/sets/EldritchMoon.java @@ -47,8 +47,8 @@ public class EldritchMoon extends ExpansionSet { super("Eldritch Moon", "EMN", "mage.sets.eldritchmoon", new GregorianCalendar(2016, 7, 26).getTime(), SetType.EXPANSION); this.blockName = "Shadows over Innistrad"; this.hasBoosters = true; - this.numBoosterLands = 1; - this.numBoosterCommon = 9; + this.numBoosterLands = 0; + this.numBoosterCommon = 10; this.numBoosterUncommon = 3; this.numBoosterRare = 1; this.ratioBoosterMythic = 8; diff --git a/Mage.Sets/src/mage/sets/alarareborn/MaskOfRiddles.java b/Mage.Sets/src/mage/sets/alarareborn/MaskOfRiddles.java index 18c1cd4f63a..2b2746af02c 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/MaskOfRiddles.java +++ b/Mage.Sets/src/mage/sets/alarareborn/MaskOfRiddles.java @@ -28,8 +28,6 @@ package mage.sets.alarareborn; import java.util.UUID; - -import mage.constants.*; import mage.abilities.common.DealsDamageToAPlayerAttachedTriggeredAbility; import mage.abilities.common.SimpleStaticAbility; import mage.abilities.costs.mana.GenericManaCost; @@ -38,6 +36,7 @@ import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; import mage.abilities.keyword.EquipAbility; import mage.abilities.keyword.FearAbility; import mage.cards.CardImpl; +import mage.constants.*; /** * @@ -50,9 +49,6 @@ public class MaskOfRiddles extends CardImpl { this.expansionSetCode = "ARB"; this.subtype.add("Equipment"); - - - // Equipped creature has fear. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FearAbility.getInstance(), AttachmentType.EQUIPMENT))); // Whenever equipped creature deals combat damage to a player, you may draw a card. diff --git a/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java b/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java index fd13ee43153..6531704a704 100644 --- a/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java +++ b/Mage.Sets/src/mage/sets/alarareborn/ShieldOfTheRighteous.java @@ -55,9 +55,6 @@ public class ShieldOfTheRighteous extends CardImpl { this.expansionSetCode = "ARB"; this.subtype.add("Equipment"); - - - // Equipped creature gets +0/+2 and has vigilance. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(0, 2))); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.EQUIPMENT))); diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/NoyanDarRoilShaper.java b/Mage.Sets/src/mage/sets/battleforzendikar/NoyanDarRoilShaper.java index 0c9c9b6a4b6..beb58dc2ef7 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/NoyanDarRoilShaper.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/NoyanDarRoilShaper.java @@ -78,7 +78,7 @@ public class NoyanDarRoilShaper extends CardImpl { // Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. // If you do, that land becomes a 0/0 Elemental creature with haste that's still a land. - Ability ability = new SpellCastControllerTriggeredAbility(new NoyanDarEffect(), filter, false); + Ability ability = new SpellCastControllerTriggeredAbility(new NoyanDarEffect(), filter, true); ability.addTarget(new TargetControlledPermanent(new FilterControlledLandPermanent())); this.addAbility(ability); } diff --git a/Mage.Sets/src/mage/sets/darksteel/ChitteringRats.java b/Mage.Sets/src/mage/sets/darksteel/ChitteringRats.java index 8bda69bdde6..04be7370de9 100644 --- a/Mage.Sets/src/mage/sets/darksteel/ChitteringRats.java +++ b/Mage.Sets/src/mage/sets/darksteel/ChitteringRats.java @@ -78,7 +78,7 @@ class ChitteringRatsEffect extends OneShotEffect { public ChitteringRatsEffect() { super(Outcome.Detriment); - this.staticText = "target opponent puts a card from his or her hand on top of his or her library."; + this.staticText = "target opponent puts a card from his or her hand on top of his or her library"; } public ChitteringRatsEffect(final ChitteringRatsEffect effect) { diff --git a/Mage.Sets/src/mage/sets/dissension/TasteForMayhem.java b/Mage.Sets/src/mage/sets/dissension/TasteForMayhem.java index 606c4cd5daf..84503580e4d 100644 --- a/Mage.Sets/src/mage/sets/dissension/TasteForMayhem.java +++ b/Mage.Sets/src/mage/sets/dissension/TasteForMayhem.java @@ -60,12 +60,12 @@ public class TasteForMayhem extends CardImpl { this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); Ability ability = new EnchantAbility(auraTarget.getTargetName()); this.addAbility(ability); - + // Enchanted creature gets +2/+0. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 0))); - + // Hellbent - Enchanted creature gets an additional +2/+0 as long as you have no cards in hand. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEnchantedEffect(2, 0), HellbentCondition.getInstance(), "Hellbent — Enchanted creature gets an additional +2/+0 as long as you have no cards in hand"))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEnchantedEffect(2, 0), HellbentCondition.getInstance(), "Hellbent — Enchanted creature gets an additional +2/+0 as long as you have no cards in hand"))); } public TasteForMayhem(final TasteForMayhem card) { diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/AbandonReason.java b/Mage.Sets/src/mage/sets/eldritchmoon/AbandonReason.java new file mode 100644 index 00000000000..5afbf0d49db --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/AbandonReason.java @@ -0,0 +1,73 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.MadnessAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class AbandonReason extends CardImpl { + + public AbandonReason(UUID ownerId) { + super(ownerId, 115, "Abandon Reason", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{R}"); + this.expansionSetCode = "EMN"; + + // Up to two target creatures each get +1/+0 and gain first strike until end of turn. + Effect effect = new BoostTargetEffect(1, 0, Duration.EndOfTurn); + effect.setText("Up to two target creatures each get +1/+0"); + this.getSpellAbility().addEffect(effect); + effect = new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, "and gain first strike until end of turn"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); + + // Madness {1}{R} + this.addAbility(new MadnessAbility(this, new ManaCostsImpl("{1}{R}"))); + } + + public AbandonReason(final AbandonReason card) { + super(card); + } + + @Override + public AbandonReason copy() { + return new AbandonReason(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/AlchemistsGreeting.java b/Mage.Sets/src/mage/sets/eldritchmoon/AlchemistsGreeting.java new file mode 100644 index 00000000000..199719a6129 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/AlchemistsGreeting.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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.MadnessAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author LevelX2 + */ +public class AlchemistsGreeting extends CardImpl { + + public AlchemistsGreeting(UUID ownerId) { + super(ownerId, 116, "Alchemist's Greeting", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{4}{R}"); + this.expansionSetCode = "EMN"; + + // Alchemist's Greeting deals 4 damage to target creature. + this.getSpellAbility().addEffect(new DamageTargetEffect(4)); + this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); + // Madness {1}{R} + this.addAbility(new MadnessAbility(this, new ManaCostsImpl("{1}{R}"))); + } + + public AlchemistsGreeting(final AlchemistsGreeting card) { + super(card); + } + + @Override + public AlchemistsGreeting copy() { + return new AlchemistsGreeting(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/BloodMist.java b/Mage.Sets/src/mage/sets/eldritchmoon/BloodMist.java new file mode 100644 index 00000000000..c2553d87a38 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/BloodMist.java @@ -0,0 +1,67 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfCombatTriggeredAbility; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.DoubleStrikeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class BloodMist extends CardImpl { + + public BloodMist(UUID ownerId) { + super(ownerId, 119, "Blood Mist", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{3}{R}"); + this.expansionSetCode = "EMN"; + + // At the beginning of combat on your turn, target creature you control gains double strike until end of turn. + Ability ability = new BeginningOfCombatTriggeredAbility(new GainAbilityTargetEffect(DoubleStrikeAbility.getInstance(), Duration.EndOfTurn), TargetController.YOU, false); + ability.addTarget(new TargetControlledCreaturePermanent()); + this.addAbility(ability); + + } + + public BloodMist(final BloodMist card) { + super(card); + } + + @Override + public BloodMist copy() { + return new BloodMist(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/BoldImpaler.java b/Mage.Sets/src/mage/sets/eldritchmoon/BoldImpaler.java new file mode 100644 index 00000000000..a541e9c8e24 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/BoldImpaler.java @@ -0,0 +1,67 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class BoldImpaler extends CardImpl { + + public BoldImpaler(UUID ownerId) { + super(ownerId, 120, "Bold Impaler", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.subtype.add("Knight"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // {2}{R}: Bold Impaler gets +2/+0 until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{2}{R}"))); + } + + public BoldImpaler(final BoldImpaler card) { + super(card); + } + + @Override + public BoldImpaler copy() { + return new BoldImpaler(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/BoonOfEmrakul.java b/Mage.Sets/src/mage/sets/eldritchmoon/BoonOfEmrakul.java new file mode 100644 index 00000000000..ddd5665edc6 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/BoonOfEmrakul.java @@ -0,0 +1,75 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class BoonOfEmrakul extends CardImpl { + + public BoonOfEmrakul(UUID ownerId) { + super(ownerId, 81, "Boon of Emrakul", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{2}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature gets +3/-3. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(3, -3, Duration.WhileOnBattlefield))); + } + + public BoonOfEmrakul(final BoonOfEmrakul card) { + super(card); + } + + @Override + public BoonOfEmrakul copy() { + return new BoonOfEmrakul(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/BorrowedHostility.java b/Mage.Sets/src/mage/sets/eldritchmoon/BorrowedHostility.java new file mode 100644 index 00000000000..f5b7a485bae --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/BorrowedHostility.java @@ -0,0 +1,78 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Mode; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.EscalateAbility; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class BorrowedHostility extends CardImpl { + + public BorrowedHostility(UUID ownerId) { + super(ownerId, 121, "Borrowed Hostility", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{R}"); + this.expansionSetCode = "EMN"; + + // Escalate {3} + this.addAbility(new EscalateAbility(new ManaCostsImpl<>("{3}"))); + // Choose one or both — + this.getSpellAbility().getModes().setMinModes(1); + this.getSpellAbility().getModes().setMaxModes(2); + + // Target creature gets +3/+0 until end of turn.; + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new BoostControlledEffect(3, 0, Duration.EndOfTurn)); + + // Target creature gains first strike until end of turn. + Mode mode = new Mode(); + mode.getEffects().add(new GainAbilityTargetEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn)); + mode.getTargets().add(new TargetCreaturePermanent()); + this.getSpellAbility().addMode(mode); + } + + public BorrowedHostility(final BorrowedHostility card) { + super(card); + } + + @Override + public BorrowedHostility copy() { + return new BorrowedHostility(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/BrazenWolves.java b/Mage.Sets/src/mage/sets/eldritchmoon/BrazenWolves.java new file mode 100644 index 00000000000..c6dbf929906 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/BrazenWolves.java @@ -0,0 +1,67 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class BrazenWolves extends CardImpl { + + public BrazenWolves(UUID ownerId) { + super(ownerId, 122, "Brazen Wolves", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Wolf"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Whenever Brazen Wolves attacks, it gets +2/+0 until end of turn. + Effect effect = new BoostSourceEffect(2, 0, Duration.EndOfTurn); + effect.setText("it gets +2/+0 until end of turn"); + this.addAbility(new AttacksTriggeredAbility(effect, false)); + } + + public BrazenWolves(final BrazenWolves card) { + super(card); + } + + @Override + public BrazenWolves copy() { + return new BrazenWolves(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/BriselaVoiceOfNightmares.java b/Mage.Sets/src/mage/sets/eldritchmoon/BriselaVoiceOfNightmares.java index bb0f475e3e4..845a5117f88 100644 --- a/Mage.Sets/src/mage/sets/eldritchmoon/BriselaVoiceOfNightmares.java +++ b/Mage.Sets/src/mage/sets/eldritchmoon/BriselaVoiceOfNightmares.java @@ -63,6 +63,8 @@ public class BriselaVoiceOfNightmares extends CardImpl { this.power = new MageInt(9); this.toughness = new MageInt(10); + this.nightCard = true;// Meld card + // Flying this.addAbility(FlyingAbility.getInstance()); // First strike diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/CampaignOfVengeance.java b/Mage.Sets/src/mage/sets/eldritchmoon/CampaignOfVengeance.java new file mode 100644 index 00000000000..bb4043c9bfe --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/CampaignOfVengeance.java @@ -0,0 +1,103 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author LevelX2 + */ +public class CampaignOfVengeance extends CardImpl { + + public CampaignOfVengeance(UUID ownerId) { + super(ownerId, 182, "Campaign of Vengeance", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}{B}"); + this.expansionSetCode = "EMN"; + + // Whenever a creature you control attacks, defending player loses 1 life and you gain 1 life. + this.addAbility(new CampaignOfVengeanceTriggeredAbility()); + } + + public CampaignOfVengeance(final CampaignOfVengeance card) { + super(card); + } + + @Override + public CampaignOfVengeance copy() { + return new CampaignOfVengeance(this); + } +} + +class CampaignOfVengeanceTriggeredAbility extends TriggeredAbilityImpl { + + public CampaignOfVengeanceTriggeredAbility() { + super(Zone.BATTLEFIELD, new LoseLifeTargetEffect(1)); + this.addEffect(new GainLifeEffect(1)); + } + + public CampaignOfVengeanceTriggeredAbility(final CampaignOfVengeanceTriggeredAbility ability) { + super(ability); + } + + @Override + public CampaignOfVengeanceTriggeredAbility copy() { + return new CampaignOfVengeanceTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ATTACKER_DECLARED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Permanent source = game.getPermanent(event.getSourceId()); + if (source != null && source.getControllerId().equals(controllerId)) { + UUID defendingPlayerId = game.getCombat().getDefendingPlayerId(event.getSourceId(), game); + this.getEffects().get(0).setTargetPointer(new FixedTarget(defendingPlayerId)); + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever a creature you control attacks, defending player loses 1 life and you gain 1 life."; + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/CatharsShield.java b/Mage.Sets/src/mage/sets/eldritchmoon/CatharsShield.java new file mode 100644 index 00000000000..086a6d6218a --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/CatharsShield.java @@ -0,0 +1,72 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.abilities.keyword.VigilanceAbility; +import mage.cards.CardImpl; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class CatharsShield extends CardImpl { + + public CatharsShield(UUID ownerId) { + super(ownerId, 192, "Cathar's Shield", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{0}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Equipment"); + + // Equipped creature gets +0/+3 and has vigilance. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(0, 3))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(VigilanceAbility.getInstance(), AttachmentType.EQUIPMENT))); + + // Equip {3} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), new TargetControlledCreaturePermanent())); + } + + public CatharsShield(final CatharsShield card) { + super(card); + } + + @Override + public CatharsShield copy() { + return new CatharsShield(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/CertainDeath.java b/Mage.Sets/src/mage/sets/eldritchmoon/CertainDeath.java new file mode 100644 index 00000000000..0cc829f4362 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/CertainDeath.java @@ -0,0 +1,98 @@ +/* + * 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.eldritchmoon; + +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.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class CertainDeath extends CardImpl { + + public CertainDeath(UUID ownerId) { + super(ownerId, 84, "Certain Death", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{5}{B}"); + this.expansionSetCode = "EMN"; + + // Destroy target creature. Its controller loses 2 life and you gain 2 life. + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new CertainDeathEffect()); + } + + public CertainDeath(final CertainDeath card) { + super(card); + } + + @Override + public CertainDeath copy() { + return new CertainDeath(this); + } +} + +class CertainDeathEffect extends OneShotEffect { + + public CertainDeathEffect() { + super(Outcome.DestroyPermanent); + this.staticText = "Destroy target creature. Its controler loses 2 life and you gain 2 life"; + } + + public CertainDeathEffect(final CertainDeathEffect effect) { + super(effect); + } + + @Override + public CertainDeathEffect copy() { + return new CertainDeathEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player you = game.getPlayer(source.getControllerId()); + Permanent permanent = game.getPermanent(this.getTargetPointer().getFirst(game, source)); + if (permanent != null && you != null) { + permanent.destroy(source.getSourceId(), game, false); + Player permController = game.getPlayer(permanent.getControllerId()); + if (permController != null) { + permController.loseLife(2, game); + you.gainLife(2, game); + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ChitteringHost.java b/Mage.Sets/src/mage/sets/eldritchmoon/ChitteringHost.java new file mode 100644 index 00000000000..deff83feda9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ChitteringHost.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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BoostControlledEffect; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class ChitteringHost extends CardImpl { + + public ChitteringHost(UUID ownerId) { + super(ownerId, 96, "Chittering Host", Rarity.COMMON, new CardType[]{CardType.CREATURE}, ""); + this.expansionSetCode = "EMN"; + this.subtype.add("Eldrazi"); + this.subtype.add("Horror"); + this.power = new MageInt(5); + this.toughness = new MageInt(6); + + this.nightCard = true; // Meld card + // Haste + this.addAbility(HasteAbility.getInstance()); + // Menace (This creature can't be blocked except by two or more creatures. + this.addAbility(new MenaceAbility()); + // When Chittering Host enters the battlefield, other creatures you control get +1/+0 and gain menace until end of turn. + Effect effect = new BoostControlledEffect(1, 0, Duration.EndOfTurn, true); + effect.setText("other creatures you control get +1/+0"); + Ability ability = new EntersBattlefieldTriggeredAbility(effect, false); + effect = new GainAbilityAllEffect(new MenaceAbility(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("other creatures"), true); + effect.setText("and gain menace until end of turn"); + this.addAbility(ability); + + } + + public ChitteringHost(final ChitteringHost card) { + super(card); + } + + @Override + public ChitteringHost copy() { + return new ChitteringHost(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ConduitOfEmrakul.java b/Mage.Sets/src/mage/sets/eldritchmoon/ConduitOfEmrakul.java new file mode 100644 index 00000000000..f437ff1d60f --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ConduitOfEmrakul.java @@ -0,0 +1,76 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.delayed.AtTheBeginOfMainPhaseDelayedTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AddManaToManaPoolSourceControllerEffect; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; + +/** + * + * @author LevelX2 + */ +public class ConduitOfEmrakul extends CardImpl { + + public ConduitOfEmrakul(UUID ownerId) { + super(ownerId, 124, "Conduit of Emrakul", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, ""); + this.expansionSetCode = "EMN"; + this.subtype.add("Eldrazi"); + this.subtype.add("Werewolf"); + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + // this card is the second face of double-faced card + this.nightCard = true; + + // Whenever Conduit of Emrakul attacks, add {C}{C} to your mana pool at the beginning of your next main phase this turn. + Effect effect = new CreateDelayedTriggeredAbilityEffect( + new AtTheBeginOfMainPhaseDelayedTriggeredAbility( + new AddManaToManaPoolSourceControllerEffect(Mana.GenericMana(2)), false, TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN_THIS_TURN)); + effect.setText("add {C}{C} to your mana pool at the beginning of your next main phase this turn"); + this.addAbility(new AttacksTriggeredAbility(effect, false)); + } + + public ConduitOfEmrakul(final ConduitOfEmrakul card) { + super(card); + } + + @Override + public ConduitOfEmrakul copy() { + return new ConduitOfEmrakul(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ConduitOfStorms.java b/Mage.Sets/src/mage/sets/eldritchmoon/ConduitOfStorms.java new file mode 100644 index 00000000000..e0103de6b21 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ConduitOfStorms.java @@ -0,0 +1,84 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.delayed.AtTheBeginOfMainPhaseDelayedTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AddManaToManaPoolSourceControllerEffect; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.TransformSourceEffect; +import mage.abilities.keyword.TransformAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class ConduitOfStorms extends CardImpl { + + public ConduitOfStorms(UUID ownerId) { + super(ownerId, 124, "Conduit of Storms", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Werewolf"); + this.subtype.add("Horror"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + this.canTransform = true; + this.secondSideCard = new ConduitOfEmrakul(ownerId); + + // Whenever Conduit of Storms attacks, add {R} to your mana pool at the beginning of your next main phase this turn. + Effect effect = new CreateDelayedTriggeredAbilityEffect( + new AtTheBeginOfMainPhaseDelayedTriggeredAbility( + new AddManaToManaPoolSourceControllerEffect(Mana.RedMana(1)), false, TargetController.YOU, AtTheBeginOfMainPhaseDelayedTriggeredAbility.PhaseSelection.NEXT_MAIN_THIS_TURN)); + effect.setText("add {R} to your mana pool at the beginning of your next main phase this turn"); + this.addAbility(new AttacksTriggeredAbility(effect, false)); + // {3}{R}{R}: Transform Conduit of Storms. + this.addAbility(new TransformAbility()); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TransformSourceEffect(true), new ManaCostsImpl("{3}{R}{R}"))); + } + + public ConduitOfStorms(final ConduitOfStorms card) { + super(card); + } + + @Override + public ConduitOfStorms copy() { + return new ConduitOfStorms(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/CultistsStaff.java b/Mage.Sets/src/mage/sets/eldritchmoon/CultistsStaff.java new file mode 100644 index 00000000000..c689a5d9771 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/CultistsStaff.java @@ -0,0 +1,67 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class CultistsStaff extends CardImpl { + + public CultistsStaff(UUID ownerId) { + super(ownerId, 194, "Cultist's Staff", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Equipment"); + + // Equipped creature gets +2/+2. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(2, 2))); + // Equip {3} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(3), new TargetControlledCreaturePermanent())); + } + + public CultistsStaff(final CultistsStaff card) { + super(card); + } + + @Override + public CultistsStaff copy() { + return new CultistsStaff(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/DarkSalvation.java b/Mage.Sets/src/mage/sets/eldritchmoon/DarkSalvation.java new file mode 100644 index 00000000000..0889c217b8b --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/DarkSalvation.java @@ -0,0 +1,112 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenTargetEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.permanent.token.ZombieToken; +import mage.target.TargetPlayer; +import mage.target.common.TargetCreaturePermanent; +import mage.target.targetpointer.SecondTargetPointer; + +/** + * + * @author LevelX2 + */ +public class DarkSalvation extends CardImpl { + + public DarkSalvation(UUID ownerId) { + super(ownerId, 87, "Dark Salvation", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{X}{X}{B}"); + this.expansionSetCode = "EMN"; + + // Target player puts X 2/2 black Zombie creature tokens onto the battlefield, then up to one target creature gets -1/-1 until end of turn for each Zombie that player controls. + this.getSpellAbility().addTarget(new TargetPlayer()); + Effect effect = new CreateTokenTargetEffect(new ZombieToken(), new ManacostVariableValue()); + effect.setText("Target player puts X 2/2 black Zombie creature tokens onto the battlefield"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 1, new FilterCreaturePermanent(), false)); + + DynamicValue value = new ZombiesControlledByTargetCreaturesControllerCount(); + effect = new BoostTargetEffect(value, value, Duration.EndOfTurn, true); + effect.setTargetPointer(new SecondTargetPointer()); + effect.setText(", then up to one target creature gets -1/-1 until end of turn for each Zombie that player controls"); + this.getSpellAbility().addEffect(effect); + } + + public DarkSalvation(final DarkSalvation card) { + super(card); + } + + @Override + public DarkSalvation copy() { + return new DarkSalvation(this); + } +} + +class ZombiesControlledByTargetCreaturesControllerCount implements DynamicValue { + + private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("Zombies"); + + static { + filter.add(new SubtypePredicate("Zombie")); + } + + @Override + public ZombiesControlledByTargetCreaturesControllerCount copy() { + return new ZombiesControlledByTargetCreaturesControllerCount(); + } + + @Override + public int calculate(Game game, Ability sourceAbility, Effect effect) { + Permanent targetCreature = game.getPermanent(effect.getTargetPointer().getFirst(game, sourceAbility)); + if (targetCreature != null) { + int value = game.getBattlefield().countAll(filter, targetCreature.getControllerId(), game); + return -1 * value; + } else { + return 0; + } + } + + @Override + public String getMessage() { + return filter.getMessage() + " that player controls"; + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/DerangedWhelp.java b/Mage.Sets/src/mage/sets/eldritchmoon/DerangedWhelp.java new file mode 100644 index 00000000000..894bcf61765 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/DerangedWhelp.java @@ -0,0 +1,62 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class DerangedWhelp extends CardImpl { + + public DerangedWhelp(UUID ownerId) { + super(ownerId, 125, "Deranged Whelp", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Wolf"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Menace + this.addAbility(new MenaceAbility()); + } + + public DerangedWhelp(final DerangedWhelp card) { + super(card); + } + + @Override + public DerangedWhelp copy() { + return new DerangedWhelp(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/DistemperOfTheBlood.java b/Mage.Sets/src/mage/sets/eldritchmoon/DistemperOfTheBlood.java new file mode 100644 index 00000000000..117590492e4 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/DistemperOfTheBlood.java @@ -0,0 +1,76 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.MadnessAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class DistemperOfTheBlood extends CardImpl { + + public DistemperOfTheBlood(UUID ownerId) { + super(ownerId, 126, "Distemper of the Blood", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); + this.expansionSetCode = "EMN"; + + // Target creature gets +2/+2 and gains trample until end of turn. + Effect effect = new BoostTargetEffect(2, 2, Duration.EndOfTurn); + effect.setText("Target creature gets +2/+2"); + this.getSpellAbility().addEffect(effect); + effect = new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn); + effect.setText("and gains trample until end of turn"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + + // Madness {R} + this.addAbility(new MadnessAbility(this, new ManaCostsImpl("{R}"))); + } + + public DistemperOfTheBlood(final DistemperOfTheBlood card) { + super(card); + } + + @Override + public DistemperOfTheBlood copy() { + return new DistemperOfTheBlood(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/DuskFeaster.java b/Mage.Sets/src/mage/sets/eldritchmoon/DuskFeaster.java new file mode 100644 index 00000000000..c8fc97b681d --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/DuskFeaster.java @@ -0,0 +1,129 @@ +/* + * 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.eldritchmoon; + +import java.util.HashSet; +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.SpellAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.cost.CostModificationEffectImpl; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.CostModificationType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class DuskFeaster extends CardImpl { + + public DuskFeaster(UUID ownerId) { + super(ownerId, 88, "Dusk Feaster", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{5}{B}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.power = new MageInt(4); + this.toughness = new MageInt(5); + + // Delirium — Dusk Feaster costs {2} less to cast if there are four or more card types among cards in your graveyard. + this.addAbility(new SimpleStaticAbility(Zone.STACK, new DuskFeasterCostReductionEffect())); + // Flying + this.addAbility(FlyingAbility.getInstance()); + } + + public DuskFeaster(final DuskFeaster card) { + super(card); + } + + @Override + public DuskFeaster copy() { + return new DuskFeaster(this); + } +} + +class DuskFeasterCostReductionEffect extends CostModificationEffectImpl { + + DuskFeasterCostReductionEffect() { + super(Duration.Custom, Outcome.Benefit, CostModificationType.REDUCE_COST); + staticText = "{this} costs {2} less to cast if there are four or more card types among cards in your graveyard"; + } + + DuskFeasterCostReductionEffect(final DuskFeasterCostReductionEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source, Ability abilityToModify) { + SpellAbility spellAbility = (SpellAbility) abilityToModify; + Mana mana = spellAbility.getManaCostsToPay().getMana(); + if (mana.getGeneric() > 0) { + int newCount = mana.getGeneric() - 2; + if (newCount < 0) { + newCount = 0; + } + mana.setGeneric(newCount); + spellAbility.getManaCostsToPay().load(mana.toString()); + return true; + } + return false; + } + + @Override + public boolean applies(Ability abilityToModify, Ability source, Game game) { + + boolean hasDelirium = false; + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + HashSet foundCardTypes = new HashSet<>(); + for (Card card : controller.getGraveyard().getCards(game)) { + foundCardTypes.addAll(card.getCardType()); + } + int number = foundCardTypes.size(); + hasDelirium = number > 3; + } + + return abilityToModify.getSourceId().equals(source.getSourceId()) + && (abilityToModify instanceof SpellAbility) + && hasDelirium; + } + + @Override + public DuskFeasterCostReductionEffect copy() { + return new DuskFeasterCostReductionEffect(this); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/FurybladeVampire.java b/Mage.Sets/src/mage/sets/eldritchmoon/FurybladeVampire.java new file mode 100644 index 00000000000..ad624cef30b --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/FurybladeVampire.java @@ -0,0 +1,75 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfCombatTriggeredAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class FurybladeVampire extends CardImpl { + + public FurybladeVampire(UUID ownerId) { + super(ownerId, 128, "Furyblade Vampire", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.subtype.add("Berserker"); + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + // At the beginning of combat on your turn, you may discard a card. If you do, Furyblade Vampire gets +3/+0 until end of turn. + Ability ability = new BeginningOfCombatTriggeredAbility(Zone.BATTLEFIELD, + new DoIfCostPaid(new BoostSourceEffect(3, 0, Duration.EndOfTurn), new DiscardCardCost(), "Discard a card to get {this} +3/+0 until end of turn?", true), TargetController.YOU, false, false); + this.addAbility(ability); + } + + public FurybladeVampire(final FurybladeVampire card) { + super(card); + } + + @Override + public FurybladeVampire copy() { + return new FurybladeVampire(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/GavonyUnhallowed.java b/Mage.Sets/src/mage/sets/eldritchmoon/GavonyUnhallowed.java new file mode 100644 index 00000000000..b1c7979b228 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/GavonyUnhallowed.java @@ -0,0 +1,75 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.DiesCreatureTriggeredAbility; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.counters.CounterType; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.filter.predicate.permanent.ControllerPredicate; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class GavonyUnhallowed extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control"); + + static { + filter.add(new AnotherPredicate()); + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public GavonyUnhallowed(UUID ownerId) { + super(ownerId, 89, "Gavony Unhallowed", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Zombie"); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + + // Whenever another creature you control dies, put a +1/+1 counter on Gavony Unhallowed. + this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter)); + } + + public GavonyUnhallowed(final GavonyUnhallowed card) { + super(card); + } + + @Override + public GavonyUnhallowed copy() { + return new GavonyUnhallowed(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/GeistFueledScarecrow.java b/Mage.Sets/src/mage/sets/eldritchmoon/GeistFueledScarecrow.java new file mode 100644 index 00000000000..253d0ffa349 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/GeistFueledScarecrow.java @@ -0,0 +1,74 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.cost.SpellsCostIncreasementControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.CardTypePredicate; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class GeistFueledScarecrow extends CardImpl { + + private static final FilterCard filter = new FilterCard("Creature spells"); + + static { + filter.add(new CardTypePredicate(CardType.CREATURE)); + } + + public GeistFueledScarecrow(UUID ownerId) { + super(ownerId, 196, "Geist-Fueled Scarecrow", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{4}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Scarecrow"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // Creature spells you cast cost {1} more to cast. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, + new SpellsCostIncreasementControllerEffect(filter, new ManaCostsImpl("{1}")))); + } + + public GeistFueledScarecrow(final GeistFueledScarecrow card) { + super(card); + } + + @Override + public GeistFueledScarecrow copy() { + return new GeistFueledScarecrow(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/GiselaTheBrokenBlade.java b/Mage.Sets/src/mage/sets/eldritchmoon/GiselaTheBrokenBlade.java new file mode 100644 index 00000000000..27f383d64e3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/GiselaTheBrokenBlade.java @@ -0,0 +1,75 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.InfoEffect; +import mage.abilities.keyword.FirstStrikeAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class GiselaTheBrokenBlade extends CardImpl { + + public GiselaTheBrokenBlade(UUID ownerId) { + super(ownerId, 28, "Gisela, the Broken Blade", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{2}{W}{W}"); + this.expansionSetCode = "EMN"; + this.supertype.add("Legendary"); + this.subtype.add("Angel"); + this.subtype.add("Horror"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + // First strike + this.addAbility(FirstStrikeAbility.getInstance()); + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + // At the beginning of your end step, if you both own and control Gisela, the Broken Blade and a creature named Bruna, the Fading Light, exile them, then meld them into Brisela, Voice of Nightmares. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("Meld ability not implemeted yet."))); + } + + public GiselaTheBrokenBlade(final GiselaTheBrokenBlade card) { + super(card); + } + + @Override + public GiselaTheBrokenBlade copy() { + return new GiselaTheBrokenBlade(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/GrafHarvest.java b/Mage.Sets/src/mage/sets/eldritchmoon/GrafHarvest.java new file mode 100644 index 00000000000..7848dfeac15 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/GrafHarvest.java @@ -0,0 +1,83 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.ExileFromGraveCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreatureCard; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.permanent.token.ZombieToken; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class GrafHarvest extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Zombies you control"); + + static { + filter.add(new SubtypePredicate("Zombie")); + } + + public GrafHarvest(UUID ownerId) { + super(ownerId, 90, "Graf Harvest", Rarity.UNCOMMON, new CardType[]{CardType.ENCHANTMENT}, "{B}"); + this.expansionSetCode = "EMN"; + + // Zombies you control have menace. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAllEffect(new MenaceAbility(), Duration.WhileOnBattlefield, filter))); + + // {3}{B}, Exile a creature card from your graveyard: Put a 2/2 black Zombie creature token onto the battlefield. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ZombieToken()), new ManaCostsImpl("{3}{B}")); + ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(new FilterCreatureCard("a creature card from your graveyard")))); + this.addAbility(ability); + } + + public GrafHarvest(final GrafHarvest card) { + super(card); + } + + @Override + public GrafHarvest copy() { + return new GrafHarvest(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/GrafRats.java b/Mage.Sets/src/mage/sets/eldritchmoon/GrafRats.java new file mode 100644 index 00000000000..2a3ebdd31eb --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/GrafRats.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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.InfoEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class GrafRats extends CardImpl { + + public GrafRats(UUID ownerId) { + super(ownerId, 91, "Graf Rats", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Rat"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // At the beginning of combat on your turn, if you both own and control Graf Rats and a creature named Midnight Scavengers, exile them, then meld them into Chittering Host. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("Meld ability not implemeted yet."))); + } + + public GrafRats(final GrafRats card) { + super(card); + } + + @Override + public GrafRats copy() { + return new GrafRats(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/HanweirBattlements.java b/Mage.Sets/src/mage/sets/eldritchmoon/HanweirBattlements.java new file mode 100644 index 00000000000..337c31dd47b --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/HanweirBattlements.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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.InfoEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class HanweirBattlements extends CardImpl { + + public HanweirBattlements(UUID ownerId) { + super(ownerId, 204, "Hanweir Battlements", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "EMN"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {R},{T}: Target creature gains haste until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{R}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + + // {3}{R}{R},{T}: If you both own and control Hanweir Battlements and a creature named Hanweir Garrison, exile them, then meld them into Hanweir, the Writhing Township. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new InfoEffect("Meld ability not implemeted yet."))); + } + + public HanweirBattlements(final HanweirBattlements card) { + super(card); + } + + @Override + public HanweirBattlements copy() { + return new HanweirBattlements(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/HanweirTheWrithingTownship.java b/Mage.Sets/src/mage/sets/eldritchmoon/HanweirTheWrithingTownship.java new file mode 100644 index 00000000000..b741af6ed98 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/HanweirTheWrithingTownship.java @@ -0,0 +1,73 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.AttacksTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class HanweirTheWrithingTownship extends CardImpl { + + public HanweirTheWrithingTownship(UUID ownerId) { + super(ownerId, 130, "Hanweir, the Writhing Township", Rarity.RARE, new CardType[]{CardType.CREATURE}, ""); + this.expansionSetCode = "EMN"; + this.supertype.add("Legendary"); + this.subtype.add("Eldrazi"); + this.subtype.add("Ooze"); + this.power = new MageInt(7); + this.toughness = new MageInt(4); + + this.nightCard = true;// Meld card + + // Trample + this.addAbility(TrampleAbility.getInstance()); + // Haste + this.addAbility(HasteAbility.getInstance()); + // Whenever Hanweir, the Writhing Township attacks, put two 3/2 colorless Eldrazi Horror creature tokens onto the battlefield tapped and attacking. + this.addAbility(new AttacksTriggeredAbility(new CreateTokenEffect(new EldraziHorrorToken(), 2, true, true), false)); + } + + public HanweirTheWrithingTownship(final HanweirTheWrithingTownship card) { + super(card); + } + + @Override + public HanweirTheWrithingTownship copy() { + return new HanweirTheWrithingTownship(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ImpetuousDevils.java b/Mage.Sets/src/mage/sets/eldritchmoon/ImpetuousDevils.java new file mode 100644 index 00000000000..146d89560b7 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ImpetuousDevils.java @@ -0,0 +1,123 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.common.BeginningOfEndStepTriggeredAbility; +import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.effects.common.combat.MustBeBlockedByTargetSourceEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerIdPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class ImpetuousDevils extends CardImpl { + + public ImpetuousDevils(UUID ownerId) { + super(ownerId, 132, "Impetuous Devils", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Devil"); + this.power = new MageInt(6); + this.toughness = new MageInt(1); + + // Trample + this.addAbility(TrampleAbility.getInstance()); + // Haste + this.addAbility(HasteAbility.getInstance()); + // When Impetuous Devils attacks, up to one target creature defending player controls blocks it this combat if able. + this.addAbility(new ImpetuousDevilsAbility()); + + // At the beginning of the end step, sacrifice Impetuous Devils. + this.addAbility(new BeginningOfEndStepTriggeredAbility(new SacrificeSourceEffect(), TargetController.NEXT, false)); + } + + public ImpetuousDevils(final ImpetuousDevils card) { + super(card); + } + + @Override + public ImpetuousDevils copy() { + return new ImpetuousDevils(this); + } +} + +class ImpetuousDevilsAbility extends TriggeredAbilityImpl { + + public ImpetuousDevilsAbility() { + super(Zone.BATTLEFIELD, new MustBeBlockedByTargetSourceEffect(Duration.EndOfCombat), false); + } + + public ImpetuousDevilsAbility(final ImpetuousDevilsAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.ATTACKER_DECLARED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getSourceId().equals(this.getSourceId())) { + FilterCreaturePermanent filter = new FilterCreaturePermanent("creature defending player controls"); + UUID defenderId = game.getCombat().getDefendingPlayerId(sourceId, game); + filter.add(new ControllerIdPredicate(defenderId)); + + this.getTargets().clear(); + TargetCreaturePermanent target = new TargetCreaturePermanent(0, 1, filter, false); + this.addTarget(target); + return true; + } + return false; + } + + @Override + public String getRule() { + return "When {this} attacks, up to one target creature defending player controls blocks it this combat if able."; + } + + @Override + public ImpetuousDevilsAbility copy() { + return new ImpetuousDevilsAbility(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/InsatiableGorgers.java b/Mage.Sets/src/mage/sets/eldritchmoon/InsatiableGorgers.java new file mode 100644 index 00000000000..eeeb9a69c75 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/InsatiableGorgers.java @@ -0,0 +1,68 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.AttacksEachCombatStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.MadnessAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class InsatiableGorgers extends CardImpl { + + public InsatiableGorgers(UUID ownerId) { + super(ownerId, 134, "Insatiable Gorgers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.subtype.add("Berserker"); + this.power = new MageInt(5); + this.toughness = new MageInt(3); + + // Insatiable Gorgers attacks each combat if able. + this.addAbility(new AttacksEachCombatStaticAbility()); + + // Madness {3}{R} + this.addAbility(new MadnessAbility(this, new ManaCostsImpl("{3}{R}"))); + } + + public InsatiableGorgers(final InsatiableGorgers card) { + super(card); + } + + @Override + public InsatiableGorgers copy() { + return new InsatiableGorgers(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/LilianasElite.java b/Mage.Sets/src/mage/sets/eldritchmoon/LilianasElite.java new file mode 100644 index 00000000000..78729b6caae --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/LilianasElite.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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreatureCard; + +/** + * + * @author LevelX2 + */ +public class LilianasElite extends CardImpl { + + public LilianasElite(UUID ownerId) { + super(ownerId, 94, "Liliana's Elite", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Zombie"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Liliana's Elite gets +1/+1 for each creature card in your graveyard. + DynamicValue amount = new CardsInControllerGraveyardCount(new FilterCreatureCard()); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostSourceEffect(amount, amount, Duration.WhileOnBattlefield)); + this.addAbility(ability); + } + + public LilianasElite(final LilianasElite card) { + super(card); + } + + @Override + public LilianasElite copy() { + return new LilianasElite(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/MakeMischief.java b/Mage.Sets/src/mage/sets/eldritchmoon/MakeMischief.java index b6f56a80632..d4ad42d74d5 100644 --- a/Mage.Sets/src/mage/sets/eldritchmoon/MakeMischief.java +++ b/Mage.Sets/src/mage/sets/eldritchmoon/MakeMischief.java @@ -34,7 +34,7 @@ import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Rarity; import mage.game.permanent.token.DevilToken; -import mage.target.TargetPlayer; +import mage.target.common.TargetCreatureOrPlayer; /** * @@ -49,7 +49,7 @@ public class MakeMischief extends CardImpl { // Make Mischief deals 1 damage to target creature or player. Put a 1/1 red Devil creature token onto the battlefield. // It has "When this creature dies, it deals 1 damage to target creature or player." this.getSpellAbility().addEffect(new DamageTargetEffect(1)); - this.getSpellAbility().addTarget(new TargetPlayer()); + this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); this.getSpellAbility().addEffect(new CreateTokenEffect(new DevilToken())); } diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/MarkovCrusader.java b/Mage.Sets/src/mage/sets/eldritchmoon/MarkovCrusader.java new file mode 100644 index 00000000000..a1d702cc0e2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/MarkovCrusader.java @@ -0,0 +1,85 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.keyword.LifelinkAbility; +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.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.AnotherPredicate; + +/** + * + * @author LevelX2 + */ +public class MarkovCrusader extends CardImpl { + + private final String rule = "{this} has haste as long as you control another Vampire"; + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("another Vampire"); + + static { + filter.add(new AnotherPredicate()); + filter.add(new SubtypePredicate("Vampire")); + } + + public MarkovCrusader(UUID ownerId) { + super(ownerId, 95, "Markov Crusader", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.subtype.add("Knight"); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + + // Markov Crusader has haste as long as you control another Vampire. + Effect effect = new ConditionalContinuousEffect(new GainAbilitySourceEffect(HasteAbility.getInstance()), new PermanentsOnTheBattlefieldCondition(filter), rule); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + } + + public MarkovCrusader(final MarkovCrusader card) { + super(card); + } + + @Override + public MarkovCrusader copy() { + return new MarkovCrusader(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/MirrorwingDragon.java b/Mage.Sets/src/mage/sets/eldritchmoon/MirrorwingDragon.java new file mode 100644 index 00000000000..0fe6cb84b2e --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/MirrorwingDragon.java @@ -0,0 +1,176 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.CopySpellForEachItCouldTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterInPlay; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.Permanent; +import mage.game.stack.Spell; +import mage.players.Player; +import mage.target.Target; +import mage.util.TargetAddress; + +/** + * + * @author LevelX2 + */ +public class MirrorwingDragon extends CardImpl { + + public MirrorwingDragon(UUID ownerId) { + super(ownerId, 136, "Mirrorwing Dragon", Rarity.MYTHIC, new CardType[]{CardType.CREATURE}, "{3}{R}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Dragon"); + this.power = new MageInt(4); + this.toughness = new MageInt(5); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + // Whenever a player casts an instant or sorcery spell that targets only Mirrorwing Dragon, + // that player copies that spell for each other creature he or she controls that the spell could target. + // Each copy targets a different one of those creatures. + this.addAbility(new MirrorwingDragonCopyTriggeredAbility()); + } + + public MirrorwingDragon(final MirrorwingDragon card) { + super(card); + } + + @Override + public MirrorwingDragon copy() { + return new MirrorwingDragon(this); + } +} + +class MirrorwingDragonCopyTriggeredAbility extends TriggeredAbilityImpl { + + MirrorwingDragonCopyTriggeredAbility() { + super(Zone.BATTLEFIELD, new MirrorwingDragonCopySpellEffect(), false); + } + + MirrorwingDragonCopyTriggeredAbility(final MirrorwingDragonCopyTriggeredAbility ability) { + super(ability); + } + + @Override + public MirrorwingDragonCopyTriggeredAbility copy() { + return new MirrorwingDragonCopyTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.SPELL_CAST; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Spell spell = game.getStack().getSpell(event.getTargetId()); + return checkSpell(spell, game); + } + + private boolean checkSpell(Spell spell, Game game) { + if (spell != null + && (spell.getCardType().contains(CardType.INSTANT) || spell.getCardType().contains(CardType.SORCERY))) { + for (TargetAddress addr : TargetAddress.walk(spell)) { + Target targetInstance = addr.getTarget(spell); + for (UUID target : targetInstance.getTargets()) { + Permanent permanent = game.getPermanent(target); + if (permanent == null || !permanent.getId().equals(getSourceId())) { + return false; + } + } + } + getEffects().get(0).setValue("triggeringSpell", spell); + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever a player casts an instant or sorcery spell that targets only {this}, " + + "that player copies that spell for each creature he or she controls that the spell could target. " + + "Each copy targets a different one of those creatures."; + } +} + +class MirrorwingDragonCopySpellEffect extends CopySpellForEachItCouldTargetEffect { + + public MirrorwingDragonCopySpellEffect() { + this(new FilterControlledCreaturePermanent()); + this.staticText = "that player copies that spell for each creature he or she controls that the spell could target. Each copy targets a different one of those creatures."; + } + + public MirrorwingDragonCopySpellEffect(MirrorwingDragonCopySpellEffect effect) { + super(effect); + } + + private MirrorwingDragonCopySpellEffect(FilterInPlay filter) { + super(filter); + } + + @Override + protected Player getPlayer(Game game, Ability source) { + Spell spell = getSpell(game, source); + if (spell != null) { + return game.getPlayer(spell.getControllerId()); + } + return null; + } + + @Override + protected Spell getSpell(Game game, Ability source) { + return (Spell) getValue("triggeringSpell"); + } + + @Override + protected boolean changeTarget(Target target, Game game, Ability source) { + return true; + } + + @Override + protected void modifyCopy(Spell copy, Game game, Ability source) { + } + + @Override + public MirrorwingDragonCopySpellEffect copy() { + return new MirrorwingDragonCopySpellEffect(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/NahirisWrath.java b/Mage.Sets/src/mage/sets/eldritchmoon/NahirisWrath.java new file mode 100644 index 00000000000..edd69182152 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/NahirisWrath.java @@ -0,0 +1,123 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.Cost; +import mage.abilities.costs.VariableCost; +import mage.abilities.costs.VariableCostImpl; +import mage.abilities.costs.common.DiscardTargetCost; +import mage.abilities.dynamicvalue.common.DiscardCostCardConvertedMana; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.FilterCard; +import mage.filter.common.FilterCreatureOrPlaneswalkerPermanent; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCardInHand; +import mage.target.common.TargetCreatureOrPlaneswalker; + +/** + * + * @author LevelX2 + */ +public class NahirisWrath extends CardImpl { + + public NahirisWrath(UUID ownerId) { + super(ownerId, 137, "Nahiri's Wrath", Rarity.MYTHIC, new CardType[]{CardType.SORCERY}, "{2}{R}"); + this.expansionSetCode = "EMN"; + + // As an additional cost to cast Nahiri's Wrath, discard X cards. + this.getSpellAbility().addCost(new NahirisWrathAdditionalCost()); + + // Nahiri's Wrath deals damage equal to the total converted mana cost of the discarded cards to each of up to X target creatures and/or planeswalkers. + Effect effect = new DamageTargetEffect(new DiscardCostCardConvertedMana()); + effect.setText("{this} deals damage equal to the total converted mana cost of the discarded cards to each of up to X target creatures and/or planeswalkers"); + this.getSpellAbility().addEffect(effect); + } + + @Override + public void adjustTargets(Ability ability, Game game) { + ability.getTargets().clear(); + int numTargets = 0; + for (VariableCost cost : ability.getCosts().getVariableCosts()) { + if (cost instanceof NahirisWrathAdditionalCost) { + numTargets = ((NahirisWrathAdditionalCost) cost).getAmount(); + break; + } + } + if (numTargets > 0) { + ability.addTarget(new TargetCreatureOrPlaneswalker(0, numTargets, new FilterCreatureOrPlaneswalkerPermanent(), false)); + } + } + + public NahirisWrath(final NahirisWrath card) { + super(card); + } + + @Override + public NahirisWrath copy() { + return new NahirisWrath(this); + } +} + +class NahirisWrathAdditionalCost extends VariableCostImpl { + + NahirisWrathAdditionalCost() { + super("cards to discard"); + this.text = "As an additional cost to cast {this}, discard X cards"; + } + + NahirisWrathAdditionalCost(final NahirisWrathAdditionalCost cost) { + super(cost); + } + + @Override + public NahirisWrathAdditionalCost copy() { + return new NahirisWrathAdditionalCost(this); + } + + @Override + public int getMaxValue(Ability source, Game game) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + return controller.getHand().size(); + } + return 0; + } + + @Override + public Cost getFixedCostsFromAnnouncedValue(int xValue) { + TargetCardInHand target = new TargetCardInHand(xValue, new FilterCard("cards to discard")); + return new DiscardTargetCost(target); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/NephaliaAcademy.java b/Mage.Sets/src/mage/sets/eldritchmoon/NephaliaAcademy.java new file mode 100644 index 00000000000..2e5b922462f --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/NephaliaAcademy.java @@ -0,0 +1,148 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.Cards; +import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.ZoneChangeEvent; +import mage.players.Player; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class NephaliaAcademy extends CardImpl { + + public NephaliaAcademy(UUID ownerId) { + super(ownerId, 205, "Nephalia Academy", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "EMN"; + + // If a spell or ability an opponent controls causes you to discard a card, you may reveal that card and put it on top of your library instead of putting it anywhere else. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new NephaliaAcademyEffect())); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public NephaliaAcademy(final NephaliaAcademy card) { + super(card); + } + + @Override + public NephaliaAcademy copy() { + return new NephaliaAcademy(this); + } +} + +class NephaliaAcademyEffect extends ReplacementEffectImpl { + + private UUID cardId; + private int zoneChangeCounter; + + public NephaliaAcademyEffect() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = "If a spell or ability an opponent controls causes you to discard a card, you may reveal that card and put it on top of your library instead of putting it anywhere else."; + } + + public NephaliaAcademyEffect(final NephaliaAcademyEffect effect) { + super(effect); + this.cardId = effect.cardId; + this.zoneChangeCounter = effect.zoneChangeCounter; + } + + @Override + public NephaliaAcademyEffect copy() { + return new NephaliaAcademyEffect(this); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType().equals(GameEvent.EventType.DISCARD_CARD) + || event.getType().equals(GameEvent.EventType.ZONE_CHANGE); + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (event.getType().equals(GameEvent.EventType.DISCARD_CARD)) { + return event.getPlayerId().equals(source.getControllerId()); + } + if (event.getType().equals(GameEvent.EventType.ZONE_CHANGE)) { + if (event.getTargetId().equals(cardId) && game.getState().getZoneChangeCounter(event.getTargetId()) == zoneChangeCounter) { + if (((ZoneChangeEvent) event).getFromZone().equals(Zone.HAND) && ((ZoneChangeEvent) event).getToZone().equals(Zone.GRAVEYARD)) { + return true; + } + } + } + return false; + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + if (event.getType().equals(GameEvent.EventType.DISCARD_CARD)) { + // only save card info + Card card = game.getCard(event.getTargetId()); + if (card != null) { + cardId = card.getId(); + zoneChangeCounter = game.getState().getZoneChangeCounter(cardId); + } + return false; + } + if (event.getType().equals(GameEvent.EventType.ZONE_CHANGE)) { + Player controller = game.getPlayer(source.getControllerId()); + Card card = game.getCard(event.getTargetId()); + if (controller != null && card != null) { + cardId = null; + zoneChangeCounter = 0; + if (controller.chooseUse(outcome, "Put " + card.getIdName() + " on top of your library instead?", source, game)) { + + Cards cardsToLibrary = new CardsImpl(card); + // reveal the card then put it on top of your library + controller.revealCards(card.getName(), cardsToLibrary, game); + controller.putCardsOnTopOfLibrary(cardsToLibrary, game, source, false); + return true; + } + } + } + return false; + } + +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/OtherworldlyOutburst.java b/Mage.Sets/src/mage/sets/eldritchmoon/OtherworldlyOutburst.java new file mode 100644 index 00000000000..6c3c1f7629e --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/OtherworldlyOutburst.java @@ -0,0 +1,140 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.DelayedTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.events.ZoneChangeEvent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class OtherworldlyOutburst extends CardImpl { + + public OtherworldlyOutburst(UUID ownerId) { + super(ownerId, 138, "Otherworldly Outburst", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{R}"); + this.expansionSetCode = "EMN"; + + // Target creature gets +1/+0 until end of turn. When that creature dies this turn, put a 3/2 colorless Eldrazi Horror creature token onto the battlefield. + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + this.getSpellAbility().addEffect(new BoostTargetEffect(1, 0, Duration.EndOfTurn)); + this.getSpellAbility().addEffect(new OtherworldlyOutburstEffect()); + } + + public OtherworldlyOutburst(final OtherworldlyOutburst card) { + super(card); + } + + @Override + public OtherworldlyOutburst copy() { + return new OtherworldlyOutburst(this); + } +} + +class OtherworldlyOutburstEffect extends OneShotEffect { + + public OtherworldlyOutburstEffect() { + super(Outcome.UnboostCreature); + this.staticText = "When that creature dies this turn, put a 3/2 colorless Eldrazi Horror creature token onto the battlefield"; + } + + public OtherworldlyOutburstEffect(final OtherworldlyOutburstEffect effect) { + super(effect); + } + + @Override + public OtherworldlyOutburstEffect copy() { + return new OtherworldlyOutburstEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + DelayedTriggeredAbility delayedAbility = new OtherworldlyOutburstDelayedTriggeredAbility(source.getFirstTarget()); + delayedAbility.setSourceId(source.getSourceId()); + delayedAbility.setControllerId(source.getControllerId()); + delayedAbility.setSourceObject(source.getSourceObject(game), game); + game.addDelayedTriggeredAbility(delayedAbility); + return true; + } +} + +class OtherworldlyOutburstDelayedTriggeredAbility extends DelayedTriggeredAbility { + + private final UUID target; + + public OtherworldlyOutburstDelayedTriggeredAbility(UUID target) { + super(new CreateTokenEffect(new EldraziHorrorToken()), Duration.EndOfTurn); + this.target = target; + } + + public OtherworldlyOutburstDelayedTriggeredAbility(OtherworldlyOutburstDelayedTriggeredAbility ability) { + super(ability); + this.target = ability.target; + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.ZONE_CHANGE; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getTargetId().equals(target)) { + ZoneChangeEvent zEvent = (ZoneChangeEvent) event; + if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD) { + return true; + } + } + return false; + } + + @Override + public OtherworldlyOutburstDelayedTriggeredAbility copy() { + return new OtherworldlyOutburstDelayedTriggeredAbility(this); + } + + @Override + public String getRule() { + return "When that creature dies this turn, put a 3/2 colorless Eldrazi Horror creature token onto the battlefield."; + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/PropheticRavings.java b/Mage.Sets/src/mage/sets/eldritchmoon/PropheticRavings.java new file mode 100644 index 00000000000..4251138ac6b --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/PropheticRavings.java @@ -0,0 +1,87 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.HasteAbility; +import mage.cards.CardImpl; +import mage.constants.AttachmentType; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class PropheticRavings extends CardImpl { + + public PropheticRavings(UUID ownerId) { + super(ownerId, 139, "Prophetic Ravings", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature has haste and "{T}, Discard a card: Draw a card." + ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(HasteAbility.getInstance(), AttachmentType.AURA)); + Ability abilityToGain = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new TapSourceCost()); + abilityToGain.addCost(new DiscardCardCost()); + Effect effect = new GainAbilityAttachedEffect(abilityToGain, AttachmentType.AURA); + effect.setText("and \"{T}, Discard a card: Draw a card.\""); + ability.addEffect(effect); + this.addAbility(ability); + } + + public PropheticRavings(final PropheticRavings card) { + super(card); + } + + @Override + public PropheticRavings copy() { + return new PropheticRavings(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/PryingQuestions.java b/Mage.Sets/src/mage/sets/eldritchmoon/PryingQuestions.java new file mode 100644 index 00000000000..f072fca6556 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/PryingQuestions.java @@ -0,0 +1,106 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.LoseLifeTargetEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCardInHand; +import mage.target.common.TargetOpponent; + +/** + * + * @author LevelX2 + */ +public class PryingQuestions extends CardImpl { + + public PryingQuestions(UUID ownerId) { + super(ownerId, 101, "Prying Questions", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{B}"); + this.expansionSetCode = "EMN"; + + // Target opponent loses 3 life and puts a card from his or her hand on top of his or her library. + this.getSpellAbility().addTarget(new TargetOpponent()); + this.getSpellAbility().addEffect(new LoseLifeTargetEffect(3)); + this.getSpellAbility().addEffect(new PryingQuestionsEffect()); + + } + + public PryingQuestions(final PryingQuestions card) { + super(card); + } + + @Override + public PryingQuestions copy() { + return new PryingQuestions(this); + } +} + +class PryingQuestionsEffect extends OneShotEffect { + + public PryingQuestionsEffect() { + super(Outcome.Detriment); + this.staticText = "and puts a card from his or her hand on top of his or her library"; + } + + public PryingQuestionsEffect(final PryingQuestionsEffect effect) { + super(effect); + } + + @Override + public PryingQuestionsEffect copy() { + return new PryingQuestionsEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player targetOpponent = game.getPlayer(this.getTargetPointer().getFirst(game, source)); + if (targetOpponent != null) { + if (targetOpponent.getHand().size() > 0) { + TargetCardInHand target = new TargetCardInHand(); + target.setNotTarget(true); + target.setTargetName("a card from your hand to put on top of your library"); + targetOpponent.choose(Outcome.Detriment, target, source.getSourceId(), game); + Card card = targetOpponent.getHand().get(target.getFirstTarget(), game); + if (card != null) { + targetOpponent.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.HAND, true, false); + } + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/RuthlessDisposal.java b/Mage.Sets/src/mage/sets/eldritchmoon/RuthlessDisposal.java new file mode 100644 index 00000000000..ecfa343cfc9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/RuthlessDisposal.java @@ -0,0 +1,70 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.costs.common.DiscardTargetCost; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.filter.FilterCard; +import mage.target.common.TargetCardInHand; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class RuthlessDisposal extends CardImpl { + + public RuthlessDisposal(UUID ownerId) { + super(ownerId, 103, "Ruthless Disposal", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{4}{B}"); + this.expansionSetCode = "EMN"; + + // As an additional cost to cast Ruthless Disposal, discard a card and sacrifice a creature. + this.getSpellAbility().addCost(new DiscardTargetCost(new TargetCardInHand(new FilterCard("card to discard")))); + this.getSpellAbility().addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); + // Two target creatures each get -13/-13 until end of turn. + this.getSpellAbility().addTarget(new TargetCreaturePermanent(2)); + this.getSpellAbility().addEffect(new BoostTargetEffect(-13, -13, Duration.EndOfTurn)); + + } + + public RuthlessDisposal(final RuthlessDisposal card) { + super(card); + } + + @Override + public RuthlessDisposal copy() { + return new RuthlessDisposal(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/SavageAlliance.java b/Mage.Sets/src/mage/sets/eldritchmoon/SavageAlliance.java new file mode 100644 index 00000000000..d484b0c3a6c --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/SavageAlliance.java @@ -0,0 +1,159 @@ +/* + * 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.eldritchmoon; + +import java.util.List; +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityAllEffect; +import mage.abilities.keyword.EscalateAbility; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.ControllerIdPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.TargetPlayer; +import mage.target.common.TargetCreaturePermanent; +import mage.target.common.TargetOpponent; + +/** + * + * @author LevelX2 + */ +public class SavageAlliance extends CardImpl { + + public SavageAlliance(UUID ownerId) { + super(ownerId, 140, "Savage Alliance", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{R}"); + this.expansionSetCode = "EMN"; + + // Escalate {1} + this.addAbility(new EscalateAbility(new GenericManaCost(1))); + + // Choose one or more — + this.getSpellAbility().getModes().setMinModes(1); + this.getSpellAbility().getModes().setMaxModes(3); + + // Creatures target player controls gain trample until end of turn. + this.getSpellAbility().addEffect(new SavageAllianceGainTrampleEffect()); + this.getSpellAbility().addTarget(new TargetPlayer()); + + // Savage Alliance deals 2 damage to target creature.; + Mode mode = new Mode(); + mode.getEffects().add(new DamageTargetEffect(2)); + mode.getTargets().add(new TargetCreaturePermanent()); + this.getSpellAbility().addMode(mode); + + // Savage Alliance deals 1 damage to each creature target opponent controls. + mode = new Mode(); + mode.getEffects().add(new SavageAllianceDamageEffect()); + mode.getTargets().add(new TargetOpponent()); + this.getSpellAbility().addMode(mode); + } + + public SavageAlliance(final SavageAlliance card) { + super(card); + } + + @Override + public SavageAlliance copy() { + return new SavageAlliance(this); + } +} + +class SavageAllianceGainTrampleEffect extends OneShotEffect { + + public SavageAllianceGainTrampleEffect() { + super(Outcome.AddAbility); + staticText = "Creatures target player controls gain trample until end of turn"; + } + + public SavageAllianceGainTrampleEffect(final SavageAllianceGainTrampleEffect effect) { + super(effect); + } + + @java.lang.Override + public SavageAllianceGainTrampleEffect copy() { + return new SavageAllianceGainTrampleEffect(this); + } + + @java.lang.Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(this.getTargetPointer().getFirst(game, source)); + if (player != null) { + FilterCreaturePermanent filter = new FilterCreaturePermanent(); + filter.add(new ControllerIdPredicate((player.getId()))); + ContinuousEffect effect = new GainAbilityAllEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, filter); + game.addEffect(effect, source); + return true; + } + return false; + } +} + +class SavageAllianceDamageEffect extends OneShotEffect { + + public SavageAllianceDamageEffect() { + super(Outcome.Damage); + this.staticText = "{this} deals 1 damage to each creature target opponent controls"; + } + + public SavageAllianceDamageEffect(final SavageAllianceDamageEffect effect) { + super(effect); + } + + @Override + public SavageAllianceDamageEffect copy() { + return new SavageAllianceDamageEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getFirstTarget()); + if (player != null) { + FilterCreaturePermanent filter = new FilterCreaturePermanent(); + filter.add(new ControllerIdPredicate(player.getId())); + List creatures = game.getBattlefield().getActivePermanents(filter, source.getControllerId(), source.getSourceId(), game); + for (Permanent creature : creatures) { + creature.damage(1, source.getSourceId(), game, false, true); + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ShredsOfSanity.java b/Mage.Sets/src/mage/sets/eldritchmoon/ShredsOfSanity.java new file mode 100644 index 00000000000..f26efa83929 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ShredsOfSanity.java @@ -0,0 +1,118 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.ExileSourceEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.Cards; +import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.TargetCard; + +/** + * + * @author LevelX2 + */ +public class ShredsOfSanity extends CardImpl { + + private final static FilterCard filterInstant = new FilterCard("an instant card in your graveyard"); + private final static FilterCard filterSorcery = new FilterCard("a sorcery card in your graveyard"); + + static { + filterInstant.add(new CardTypePredicate(CardType.INSTANT)); + filterSorcery.add(new CardTypePredicate(CardType.SORCERY)); + } + + public ShredsOfSanity(UUID ownerId) { + super(ownerId, 141, "Shreds of Sanity", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{2}{R}"); + this.expansionSetCode = "EMN"; + + // Return up to one target instant card and up to one target sorcery card from your graveyard to your hand, then discard a card. Exile Shreds of Sanity. + this.getSpellAbility().addEffect(new ShredsOfSanityEffect()); + this.getSpellAbility().addTarget(new TargetCard(0, 1, Zone.GRAVEYARD, filterInstant)); + this.getSpellAbility().addTarget(new TargetCard(0, 1, Zone.GRAVEYARD, filterSorcery)); + this.getSpellAbility().addEffect(new ExileSourceEffect()); + } + + public ShredsOfSanity(final ShredsOfSanity card) { + super(card); + } + + @Override + public ShredsOfSanity copy() { + return new ShredsOfSanity(this); + } +} + +class ShredsOfSanityEffect extends OneShotEffect { + + public ShredsOfSanityEffect() { + super(Outcome.Benefit); + this.staticText = "return up to one target instant card and up to one target sorcery card from your graveyard to your hand, then discard a card"; + } + + public ShredsOfSanityEffect(final ShredsOfSanityEffect effect) { + super(effect); + } + + @Override + public ShredsOfSanityEffect copy() { + return new ShredsOfSanityEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Cards cardsToHand = new CardsImpl(); + Card card = game.getCard(getTargetPointer().getFirst(game, source)); + if (card != null) { + cardsToHand.add(card); + } + card = game.getCard(source.getTargets().get(1).getFirstTarget()); + if (card != null) { + cardsToHand.add(card); + } + controller.moveCards(cardsToHand, Zone.HAND, source, game); + controller.discardOne(false, source, game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/SkirsdagSupplicant.java b/Mage.Sets/src/mage/sets/eldritchmoon/SkirsdagSupplicant.java new file mode 100644 index 00000000000..34941dfe896 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/SkirsdagSupplicant.java @@ -0,0 +1,72 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.LoseLifeAllPlayersEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class SkirsdagSupplicant extends CardImpl { + + public SkirsdagSupplicant(UUID ownerId) { + super(ownerId, 104, "Skirsdag Supplicant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Human"); + this.subtype.add("Cleric"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // {B}, {T}, Discard a card: Each player loses 2 life. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseLifeAllPlayersEffect(2), new ManaCostsImpl("{B}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new DiscardCardCost()); + this.addAbility(ability); + } + + public SkirsdagSupplicant(final SkirsdagSupplicant card) { + super(card); + } + + @Override + public SkirsdagSupplicant copy() { + return new SkirsdagSupplicant(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/SlayersCleaver.java b/Mage.Sets/src/mage/sets/eldritchmoon/SlayersCleaver.java new file mode 100644 index 00000000000..b59fd670a74 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/SlayersCleaver.java @@ -0,0 +1,120 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.RequirementEffect; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author LevelX2 + */ +public class SlayersCleaver extends CardImpl { + + public SlayersCleaver(UUID ownerId) { + super(ownerId, 198, "Slayer's Cleaver", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Equipment"); + + // Equipped creature gets +3/+1 and must be blocked by an Eldrazi if able. + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(3, 1)); + // TODO: The effect does not work correctly yet, we need to do some chnanges to combat handling to fix this + ability.addEffect(new SlayersCleaverEffect()); + this.addAbility(ability); + // Equip {4} + this.addAbility(new EquipAbility(Outcome.BoostCreature, new ManaCostsImpl<>("{4}"))); + } + + public SlayersCleaver(final SlayersCleaver card) { + super(card); + } + + @Override + public SlayersCleaver copy() { + return new SlayersCleaver(this); + } +} + +class SlayersCleaverEffect extends RequirementEffect { + + public SlayersCleaverEffect() { + this(Duration.WhileOnBattlefield); + } + + public SlayersCleaverEffect(Duration duration) { + super(duration); + staticText = "and must be blocked by an Eldrazi if able"; + } + + public SlayersCleaverEffect(final SlayersCleaverEffect effect) { + super(effect); + } + + @Override + public boolean applies(Permanent permanent, Ability source, Game game) { + return permanent.canBlock(source.getSourceId(), game) && permanent.hasSubtype("Eldrazi"); + } + + @Override + public boolean mustAttack(Game game) { + return false; + } + + @Override + public boolean mustBlock(Game game) { + return false; + } + + @Override + public UUID mustBlockAttackerIfElseUnblocked(Ability source, Game game) { + Permanent equipment = game.getPermanent(source.getSourceId()); + if (equipment != null) { + return equipment.getAttachedTo(); + } + return null; + } + + @Override + public SlayersCleaverEffect copy() { + return new SlayersCleaverEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/SpellQueller.java b/Mage.Sets/src/mage/sets/eldritchmoon/SpellQueller.java new file mode 100644 index 00000000000..3e40d16c2d3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/SpellQueller.java @@ -0,0 +1,174 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.LeavesBattlefieldTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.ReturnFromExileForSourceEffect; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.filter.Filter; +import mage.filter.FilterSpell; +import mage.filter.predicate.mageobject.ConvertedManaCostPredicate; +import mage.game.ExileZone; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.game.stack.Spell; +import mage.players.Player; +import mage.target.TargetSpell; +import mage.util.CardUtil; +import org.apache.log4j.Logger; + +/** + * + * @author LevelX2 + */ +public class SpellQueller extends CardImpl { + + private final static FilterSpell filter = new FilterSpell("spell with converted mana cost 4 or less"); + + static { + filter.add(new ConvertedManaCostPredicate(Filter.ComparisonType.LessThan, 5)); + } + + public SpellQueller(UUID ownerId) { + super(ownerId, 189, "Spell Queller", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{W}{U}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Spirit"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Flash + this.addAbility(FlashAbility.getInstance()); + // Flying + this.addAbility(FlyingAbility.getInstance()); + // When Spell Queller enters the battlefied, exile target spell with converted mana cost 4 or less. + Ability ability1 = new EntersBattlefieldTriggeredAbility(new SpellQuellerEntersEffect(), false); + ability1.addTarget(new TargetSpell(filter)); + this.addAbility(ability1); + + // When Spell Queller leaves the battlefield, the exiled card's owner may cast that card without paying its mana cost. + Ability ability2 = new LeavesBattlefieldTriggeredAbility(new SpellQuellerLeavesEffect(), false); + this.addAbility(ability2); + } + + public SpellQueller(final SpellQueller card) { + super(card); + } + + @Override + public SpellQueller copy() { + return new SpellQueller(this); + } +} + +class SpellQuellerEntersEffect extends OneShotEffect { + + public SpellQuellerEntersEffect() { + super(Outcome.Benefit); + this.staticText = "exile target spell with converted mana cost 4 or less"; + } + + public SpellQuellerEntersEffect(final SpellQuellerEntersEffect effect) { + super(effect); + } + + @Override + public SpellQuellerEntersEffect copy() { + return new SpellQuellerEntersEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = source.getSourceObject(game); + if (controller != null && sourceObject != null) { + Spell spell = game.getStack().getSpell(getTargetPointer().getFirst(game, source)); + if (spell != null) { + UUID exileId = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter()); + return controller.moveCardsToExile(spell, source, game, true, exileId, sourceObject.getIdName()); + } + return true; + } + return false; + } +} + +class SpellQuellerLeavesEffect extends OneShotEffect { + + public SpellQuellerLeavesEffect() { + super(Outcome.Benefit); + this.staticText = "the exiled card's owner may cast that card without paying its mana cost"; + } + + public SpellQuellerLeavesEffect(final SpellQuellerLeavesEffect effect) { + super(effect); + } + + @Override + public SpellQuellerLeavesEffect copy() { + return new SpellQuellerLeavesEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = source.getSourceObject(game); + if (controller != null && sourceObject != null) { + Permanent permanentLeftBattlefield = (Permanent) getValue("permanentLeftBattlefield"); + if (permanentLeftBattlefield == null) { + Logger.getLogger(ReturnFromExileForSourceEffect.class).error("Permanent not found: " + sourceObject.getName()); + return false; + } + ExileZone exile = game.getExile().getExileZone(CardUtil.getExileZoneId(game, source.getSourceId(), permanentLeftBattlefield.getZoneChangeCounter(game))); + if (exile != null) { // null is valid if source left battlefield before enters the battlefield effect resolved + Card card = exile.getCards(game).iterator().next(); + if (card != null) { + Player cardOwner = game.getPlayer(card.getOwnerId()); + if (cardOwner != null) { + if (cardOwner.chooseUse(Outcome.PlayForFree, "Cast " + card.getLogName() + " without paying cost?", source, game)) { + cardOwner.cast(card.getSpellAbility(), game, true); + } + } + } + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/SpreadingFlames.java b/Mage.Sets/src/mage/sets/eldritchmoon/SpreadingFlames.java new file mode 100644 index 00000000000..6548566a5a9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/SpreadingFlames.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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.effects.common.DamageMultiEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.target.common.TargetCreatureOrPlayerAmount; + +/** + * + * @author LevelX2 + */ +public class SpreadingFlames extends CardImpl { + + public SpreadingFlames(UUID ownerId) { + super(ownerId, 143, "Spreading Flames", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{6}{R}"); + this.expansionSetCode = "EMN"; + + // Spreading Flames deals 6 damage divided as you choose among any number of target creatures. + this.getSpellAbility().addEffect(new DamageMultiEffect(6)); + this.getSpellAbility().addTarget(new TargetCreatureOrPlayerAmount(6)); + } + + public SpreadingFlames(final SpreadingFlames card) { + super(card); + } + + @Override + public SpreadingFlames copy() { + return new SpreadingFlames(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/StensiaBanquet.java b/Mage.Sets/src/mage/sets/eldritchmoon/StensiaBanquet.java new file mode 100644 index 00000000000..4978bda5c30 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/StensiaBanquet.java @@ -0,0 +1,76 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.common.TargetOpponent; + +/** + * + * @author LevelX2 + */ +public class StensiaBanquet extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("Vampires you control"); + + static { + filter.add(new SubtypePredicate("Vampires")); + filter.add(new ControllerPredicate(TargetController.YOU)); + } + + public StensiaBanquet(UUID ownerId) { + super(ownerId, 144, "Stensia Banquet", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{2}{R}"); + this.expansionSetCode = "EMN"; + + // Stensia Banquet deals damage to target opponent equal to the number of Vampires you control. + this.getSpellAbility().addEffect(new DamageTargetEffect(new PermanentsOnBattlefieldCount(filter))); + this.getSpellAbility().addTarget(new TargetOpponent()); + + // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + } + + public StensiaBanquet(final StensiaBanquet card) { + super(card); + } + + @Override + public StensiaBanquet copy() { + return new StensiaBanquet(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/StensiaInnkeeper.java b/Mage.Sets/src/mage/sets/eldritchmoon/StensiaInnkeeper.java new file mode 100644 index 00000000000..6644070f919 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/StensiaInnkeeper.java @@ -0,0 +1,78 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.TargetPermanent; + +/** + * + * @author LevelX2 + */ +public class StensiaInnkeeper extends CardImpl { + + private final static FilterLandPermanent filter = new FilterLandPermanent("land an opponent controls"); + + static { + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public StensiaInnkeeper(UUID ownerId) { + super(ownerId, 145, "Stensia Innkeeper", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Stensia Innkeeper enters the battlefield, tap target land an opponent controls. That land doesn't untap during its controller's next untap step. + Ability ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect(), false); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("That land")); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + } + + public StensiaInnkeeper(final StensiaInnkeeper card) { + super(card); + } + + @Override + public StensiaInnkeeper copy() { + return new StensiaInnkeeper(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/StrangeAugmentation.java b/Mage.Sets/src/mage/sets/eldritchmoon/StrangeAugmentation.java new file mode 100644 index 00000000000..910c0c60163 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/StrangeAugmentation.java @@ -0,0 +1,80 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.DeliriumCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class StrangeAugmentation extends CardImpl { + + public StrangeAugmentation(UUID ownerId) { + super(ownerId, 105, "Strange Augmentation", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Aura"); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature gets +1/+1. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(1, 1))); + + // Delirium &mdash Enchanted creature gets an additional +2/+2 as long as there are four or more card types among cards in your graveyard. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinuousEffect(new BoostEnchantedEffect(2, 2), DeliriumCondition.getInstance(), + "Delirium — Enchanted creature gets an additional +2/+2 as long as you have no cards in hand"))); + } + + public StrangeAugmentation(final StrangeAugmentation card) { + super(card); + } + + @Override + public StrangeAugmentation copy() { + return new StrangeAugmentation(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/SuccumbToTemptation.java b/Mage.Sets/src/mage/sets/eldritchmoon/SuccumbToTemptation.java new file mode 100644 index 00000000000..5a014740a05 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/SuccumbToTemptation.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.eldritchmoon; + +import java.util.UUID; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.LoseLifeSourceControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class SuccumbToTemptation extends CardImpl { + + public SuccumbToTemptation(UUID ownerId) { + super(ownerId, 107, "Succumb to Temptation", Rarity.COMMON, new CardType[]{}, "{1}{B}{B}"); + this.expansionSetCode = "EMN"; + this.supertype.add("Insant"); + + // You draw two cards and you lose 2 life. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(2)); + Effect effect = new LoseLifeSourceControllerEffect(2); + effect.setText("and you lose 2 life"); + this.getSpellAbility().addEffect(effect); + } + + public SuccumbToTemptation(final SuccumbToTemptation card) { + super(card); + } + + @Override + public SuccumbToTemptation copy() { + return new SuccumbToTemptation(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/TamiyoFieldResearcher.java b/Mage.Sets/src/mage/sets/eldritchmoon/TamiyoFieldResearcher.java new file mode 100644 index 00000000000..2e8464303c2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/TamiyoFieldResearcher.java @@ -0,0 +1,265 @@ +/* + * 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.eldritchmoon; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import mage.MageObject; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.DelayedTriggeredAbility; +import mage.abilities.LoyaltyAbility; +import mage.abilities.common.PlanswalkerEntersWithLoyalityCountersAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.CompoundCondition; +import mage.abilities.condition.Condition; +import mage.abilities.condition.common.SourceIsSpellCondition; +import mage.abilities.costs.AlternativeCostSourceAbility; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.GetEmblemEffect; +import mage.abilities.effects.common.TapTargetEffect; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.SplitCardHalf; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Layer; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.SubLayer; +import mage.constants.Zone; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.common.FilterNonlandCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.game.command.Emblem; +import mage.game.events.DamagedEvent; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.game.stack.Spell; +import mage.players.Player; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class TamiyoFieldResearcher extends CardImpl { + + private final static FilterPermanent filter = new FilterPermanent("nonland permanent"); + + static { + filter.add(Predicates.not(new CardTypePredicate(CardType.LAND))); + } + + public TamiyoFieldResearcher(UUID ownerId) { + super(ownerId, 190, "Tamiyo, Field Researcher", Rarity.MYTHIC, new CardType[]{CardType.PLANESWALKER}, "{1}{G}{W}{U}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Tamiyo"); + + this.addAbility(new PlanswalkerEntersWithLoyalityCountersAbility(4)); + + // +1: Choose up to two target creatures. Until your next turn, whenever either of those creatures deals combat damage, you draw a card. + Ability ability = new LoyaltyAbility(new TamiyoFieldResearcherEffect1(), 1); + ability.addTarget(new TargetCreaturePermanent(0, 2, new FilterCreaturePermanent("creatures"), false)); + this.addAbility(ability); + + // -2: Tap up to two target nonland permanents. They don't untap during their controller's next untap step. + ability = new LoyaltyAbility(new TapTargetEffect(), -2); + ability.addTarget(new TargetPermanent(0, 2, filter, false)); + ability.addEffect(new DontUntapInControllersNextUntapStepTargetEffect("They")); + this.addAbility(ability); + + // -7: Draw three cards. You get an emblem with "You may cast nonland cards from your hand without paying their mana costs." + ability = new LoyaltyAbility(new DrawCardSourceControllerEffect(3), -7); + ability.addEffect(new GetEmblemEffect(new TamiyoFieldResearcherEmblem())); + this.addAbility(ability); + } + + public TamiyoFieldResearcher(final TamiyoFieldResearcher card) { + super(card); + } + + @Override + public TamiyoFieldResearcher copy() { + return new TamiyoFieldResearcher(this); + } +} + +class TamiyoFieldResearcherEffect1 extends OneShotEffect { + + public TamiyoFieldResearcherEffect1() { + super(Outcome.PreventDamage); + this.staticText = "Choose up to two target creatures. Until your next turn, whenever either of those creatures deals combat damage, you draw a card"; + } + + public TamiyoFieldResearcherEffect1(final TamiyoFieldResearcherEffect1 effect) { + super(effect); + } + + @Override + public TamiyoFieldResearcherEffect1 copy() { + return new TamiyoFieldResearcherEffect1(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + ArrayList creatures = new ArrayList<>(); + for (UUID uuid : getTargetPointer().getTargets(game, source)) { + creatures.add(new MageObjectReference(uuid, game)); + } + if (!creatures.isEmpty()) { + DelayedTriggeredAbility delayedAbility = new TamiyoFieldResearcherDelayedTriggeredAbility(creatures); + game.addDelayedTriggeredAbility(delayedAbility, source); + } + return true; + } + return false; + } +} + +class TamiyoFieldResearcherDelayedTriggeredAbility extends DelayedTriggeredAbility { + + private List creatures; + + public TamiyoFieldResearcherDelayedTriggeredAbility(List creatures) { + super(new DrawCardSourceControllerEffect(1), Duration.UntilYourNextTurn); + this.creatures = creatures; + } + + public TamiyoFieldResearcherDelayedTriggeredAbility(final TamiyoFieldResearcherDelayedTriggeredAbility ability) { + super(ability); + this.creatures = ability.creatures; + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event instanceof DamagedEvent; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (((DamagedEvent) event).isCombatDamage()) { + Permanent damageSource = game.getPermanent(event.getSourceId()); + if (damageSource != null) { + return creatures.contains(new MageObjectReference(damageSource, game)); + } + } + return false; + } + + @Override + public TamiyoFieldResearcherDelayedTriggeredAbility copy() { + return new TamiyoFieldResearcherDelayedTriggeredAbility(this); + } + + @Override + public String getRule() { + return "Until your next turn, whenever either of those creatures deals combat damage, you draw a card."; + } +} + +class TamiyoFieldResearcherEmblem extends Emblem { + // You may cast nonland cards from your hand without paying their mana costs. + + public TamiyoFieldResearcherEmblem() { + + this.setName("EMBLEM: Tamiyo, Field Researcher"); + + this.getAbilities().add(new SimpleStaticAbility(Zone.COMMAND, new TamiyoFieldResearcherCastingEffect())); + } +} + +class TamiyoFieldResearcherCastingEffect extends ContinuousEffectImpl { + + public TamiyoFieldResearcherCastingEffect() { + super(Duration.WhileOnBattlefield, Outcome.Detriment); + staticText = "You may cast nonland cards from your hand without paying their mana costs"; + } + + public TamiyoFieldResearcherCastingEffect(final TamiyoFieldResearcherCastingEffect effect) { + super(effect); + } + + @Override + public TamiyoFieldResearcherCastingEffect copy() { + return new TamiyoFieldResearcherCastingEffect(this); + } + + @Override + public boolean apply(Layer layer, SubLayer sublayer, Ability source, Game game) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + controller.getAlternativeSourceCosts().add(new AlternativeCostSourceAbility( + null, new CompoundCondition(SourceIsSpellCondition.getInstance(), new IsBeingCastFromHandCondition()), null, new FilterNonlandCard(), true)); + return true; + } + return false; + } + + @Override + public boolean apply(Game game, Ability source) { + return false; + } + + @Override + public boolean hasLayer(Layer layer) { + return layer == Layer.RulesEffects; + } +} + +class IsBeingCastFromHandCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source.getSourceId()); + if (object instanceof SplitCardHalf) { + UUID splitCardId = ((Card) object).getMainCard().getId(); + object = game.getObject(splitCardId); + } + if (object instanceof Spell) { // needed to check if it can be cast by alternate cost + Spell spell = (Spell) object; + return spell.getFromZone() == Zone.HAND; + } + if (object instanceof Card) { // needed for the check what's playable + Card card = (Card) object; + return game.getPlayer(card.getOwnerId()).getHand().get(card.getId(), game) != null; + } + return false; + } + +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ThermoAlchemist.java b/Mage.Sets/src/mage/sets/eldritchmoon/ThermoAlchemist.java new file mode 100644 index 00000000000..14a4015e7bf --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ThermoAlchemist.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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.DamagePlayersEffect; +import mage.abilities.effects.common.UntapSourceEffect; +import mage.abilities.keyword.DefenderAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterInstantOrSorcerySpell; + +/** + * + * @author LevelX2 + */ +public class ThermoAlchemist extends CardImpl { + + public ThermoAlchemist(UUID ownerId) { + super(ownerId, 147, "Thermo-Alchemist", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Human"); + this.subtype.add("Shaman"); + this.power = new MageInt(0); + this.toughness = new MageInt(3); + + // Defender + this.addAbility(DefenderAbility.getInstance()); + // {T}: Thermo-Alchemist deals 1 damage to each opponent. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(1, TargetController.OPPONENT), new TapSourceCost()); + this.addAbility(ability); + // Whenever you cast an instant or sorcery spell, untap Thermo-Alchemist. + this.addAbility(new SpellCastControllerTriggeredAbility(new UntapSourceEffect(), new FilterInstantOrSorcerySpell(), false)); + } + + public ThermoAlchemist(final ThermoAlchemist card) { + super(card); + } + + @Override + public ThermoAlchemist copy() { + return new ThermoAlchemist(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ThirstingAxe.java b/Mage.Sets/src/mage/sets/eldritchmoon/ThirstingAxe.java new file mode 100644 index 00000000000..d54f8ad59e0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ThirstingAxe.java @@ -0,0 +1,121 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; + +import mage.abilities.TriggeredAbility; +import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.CompoundCondition; +import mage.abilities.condition.Condition; +import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.AttachedCondition; +import mage.abilities.condition.common.WatcherCondition; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.decorator.ConditionalTriggeredAbility; +import mage.abilities.effects.common.SacrificeEquippedEffect; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.keyword.EquipAbility; +import mage.cards.CardImpl; +import mage.constants.*; +import mage.game.Game; +import mage.game.events.DamagedCreatureEvent; +import mage.game.events.GameEvent; +import mage.game.permanent.Permanent; +import mage.watchers.Watcher; + +/** + * + * @author Quercitron + */ +public class ThirstingAxe extends CardImpl { + + public ThirstingAxe(UUID ownerId) { + super(ownerId, 202, "Thirsting Axe", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Equipment"); + + // Equipped creature gets +4/+0. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEquippedEffect(4, 0))); + + // At the beginning of your end step, if equipped creature didn't deal combat damage to a creature this turn, sacrifice it. + TriggeredAbility ability = new BeginningOfYourEndStepTriggeredAbility(new SacrificeEquippedEffect(), false); + Condition condition = new CompoundCondition( + new AttachedCondition(), + new InvertCondition(new WatcherCondition(CombatDamageToCreatureByEquippedWatcher.BASIC_KEY, WatcherScope.CARD))); + String triggeredAbilityText = "At the beginning of your end step, if equipped creature " + + "didn't deal combat damage to a creature this turn, sacrifice it."; + ConditionalTriggeredAbility sacrificeTriggeredAbility = new ConditionalTriggeredAbility(ability, condition, triggeredAbilityText); + this.addAbility(sacrificeTriggeredAbility, new CombatDamageToCreatureByEquippedWatcher()); + + // Equip {2} + this.addAbility(new EquipAbility(Outcome.AddAbility, new GenericManaCost(2))); + } + + public ThirstingAxe(final ThirstingAxe card) { + super(card); + } + + @Override + public ThirstingAxe copy() { + return new ThirstingAxe(this); + } +} + +class CombatDamageToCreatureByEquippedWatcher extends Watcher { + + public final static String BASIC_KEY = "CombatDamageToCreatureByEquippedWatcher"; + + public CombatDamageToCreatureByEquippedWatcher() { + super(BASIC_KEY, WatcherScope.CARD); + } + + public CombatDamageToCreatureByEquippedWatcher(final CombatDamageToCreatureByEquippedWatcher watcher) { + super(watcher); + } + + @Override + public CombatDamageToCreatureByEquippedWatcher copy() { + return new CombatDamageToCreatureByEquippedWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.DAMAGED_CREATURE) { + Permanent equipment = game.getPermanent(this.getSourceId()); + if (equipment != null && equipment.getAttachedTo() != null) { + if (equipment.getAttachedTo().equals(event.getSourceId())) { + if (((DamagedCreatureEvent)event).isCombatDamage()) { + condition = true; + } + } + } + } + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/ThrabenFoulbloods.java b/Mage.Sets/src/mage/sets/eldritchmoon/ThrabenFoulbloods.java new file mode 100644 index 00000000000..24b56235081 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/ThrabenFoulbloods.java @@ -0,0 +1,75 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.DeliriumCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class ThrabenFoulbloods extends CardImpl { + + public ThrabenFoulbloods(UUID ownerId) { + super(ownerId, 108, "Thraben Foulbloods", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Zombie"); + this.subtype.add("Hound"); + this.power = new MageInt(3); + this.toughness = new MageInt(2); + + // Delirium — Thraben Foulbloods gets +1/+1 and has menace as long as there are four or more card types among cards in your graveyard. (A creature with menace can't be blocked except by two or more creatures.) + ConditionalContinuousEffect effect = new ConditionalContinuousEffect(new BoostSourceEffect(1, 1, Duration.WhileOnBattlefield), DeliriumCondition.getInstance(), "Delirium — {this} gets +1/+1"); + Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, effect); + ability.addEffect(new ConditionalContinuousEffect(new GainAbilitySourceEffect(new MenaceAbility()), DeliriumCondition.getInstance(), + "and has menace as long as there are four or more card types among cards in your graveyard. (A creature with menace can't be blocked except by two or more creatures.)")); + this.addAbility(ability); + } + + public ThrabenFoulbloods(final ThrabenFoulbloods card) { + super(card); + } + + @Override + public ThrabenFoulbloods copy() { + return new ThrabenFoulbloods(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/VampireCutthroat.java b/Mage.Sets/src/mage/sets/eldritchmoon/VampireCutthroat.java new file mode 100644 index 00000000000..9b69fd448c2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/VampireCutthroat.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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.keyword.SkulkAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class VampireCutthroat extends CardImpl { + + public VampireCutthroat(UUID ownerId) { + super(ownerId, 110, "Vampire Cutthroat", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.subtype.add("Rogue"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Skulk + this.addAbility(new SkulkAbility()); + // Lifelink + this.addAbility(LifelinkAbility.getInstance()); + } + + public VampireCutthroat(final VampireCutthroat card) { + super(card); + } + + @Override + public VampireCutthroat copy() { + return new VampireCutthroat(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/WeaverOfLightning.java b/Mage.Sets/src/mage/sets/eldritchmoon/WeaverOfLightning.java new file mode 100644 index 00000000000..fc510808737 --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/WeaverOfLightning.java @@ -0,0 +1,81 @@ +/* + * 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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.keyword.ReachAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.common.FilterInstantOrSorcerySpell; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class WeaverOfLightning extends CardImpl { + + private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls"); + + static { + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public WeaverOfLightning(UUID ownerId) { + super(ownerId, 149, "Weaver of Lightning", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Human"); + this.subtype.add("Shaman"); + this.power = new MageInt(1); + this.toughness = new MageInt(4); + + // Reach + this.addAbility(ReachAbility.getInstance()); + // Whenever you cast an instant or sorcery spell, Weaver of Lightning deals 1 damage to target creature an opponent controls. + Ability ability = new SpellCastControllerTriggeredAbility(new DamageTargetEffect(1), new FilterInstantOrSorcerySpell(), false); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } + + public WeaverOfLightning(final WeaverOfLightning card) { + super(card); + } + + @Override + public WeaverOfLightning copy() { + return new WeaverOfLightning(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eldritchmoon/WeirdedVampire.java b/Mage.Sets/src/mage/sets/eldritchmoon/WeirdedVampire.java new file mode 100644 index 00000000000..2aa2aa7f81d --- /dev/null +++ b/Mage.Sets/src/mage/sets/eldritchmoon/WeirdedVampire.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.eldritchmoon; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.MadnessAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class WeirdedVampire extends CardImpl { + + public WeirdedVampire(UUID ownerId) { + super(ownerId, 113, "Weirded Vampire", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.expansionSetCode = "EMN"; + this.subtype.add("Vampire"); + this.subtype.add("Horror"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Madness {2}{B} + this.addAbility(new MadnessAbility(this, new ManaCostsImpl("{2}{B}"))); + } + + public WeirdedVampire(final WeirdedVampire card) { + super(card); + } + + @Override + public WeirdedVampire copy() { + return new WeirdedVampire(this); + } +} diff --git a/Mage.Sets/src/mage/sets/gatecrash/Hindervines.java b/Mage.Sets/src/mage/sets/gatecrash/Hindervines.java index 3c31ca36337..2486f81c8a6 100644 --- a/Mage.Sets/src/mage/sets/gatecrash/Hindervines.java +++ b/Mage.Sets/src/mage/sets/gatecrash/Hindervines.java @@ -28,11 +28,16 @@ package mage.sets.gatecrash; import java.util.UUID; +import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; +import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; +<<<<<<< HEAD import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; +======= +>>>>>>> origin/master import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; import mage.filter.predicate.Predicates; diff --git a/Mage.Sets/src/mage/sets/guildpact/InkTreaderNephilim.java b/Mage.Sets/src/mage/sets/guildpact/InkTreaderNephilim.java index b1fb65c8084..5b257415d0c 100644 --- a/Mage.Sets/src/mage/sets/guildpact/InkTreaderNephilim.java +++ b/Mage.Sets/src/mage/sets/guildpact/InkTreaderNephilim.java @@ -44,6 +44,7 @@ import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; import mage.game.permanent.Permanent; import mage.game.stack.Spell; +import mage.players.Player; import mage.target.Target; import mage.util.TargetAddress; @@ -97,8 +98,8 @@ class InkTreaderNephilimTriggeredAbility extends TriggeredAbilityImpl { @Override public boolean checkTrigger(GameEvent event, Game game) { Spell spell = game.getStack().getSpell(event.getTargetId()); - if (spell != null && - (spell.getCardType().contains(CardType.INSTANT) || spell.getCardType().contains(CardType.SORCERY))){ + if (spell != null + && (spell.getCardType().contains(CardType.INSTANT) || spell.getCardType().contains(CardType.SORCERY))) { for (Effect effect : getEffects()) { effect.setValue("triggeringSpell", spell); } @@ -133,7 +134,6 @@ class InkTreaderNephilimTriggeredAbility extends TriggeredAbilityImpl { } } - class InkTreaderNephilimEffect extends CopySpellForEachItCouldTargetEffect { public InkTreaderNephilimEffect() { @@ -148,6 +148,11 @@ class InkTreaderNephilimEffect extends CopySpellForEachItCouldTargetEffect filter) { super(filter); } - + + @Override + protected Player getPlayer(Game game, Ability source) { + return game.getPlayer(source.getControllerId()); + } + @Override protected Spell getSpell(Game game, Ability source) { return (Spell) getValue("triggeringSpell"); diff --git a/Mage.Sets/src/mage/sets/tempest/LightningBlast.java b/Mage.Sets/src/mage/sets/tempest/LightningBlast.java index 9790a07e146..bd977cb86be 100644 --- a/Mage.Sets/src/mage/sets/tempest/LightningBlast.java +++ b/Mage.Sets/src/mage/sets/tempest/LightningBlast.java @@ -28,10 +28,10 @@ package mage.sets.tempest; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; import mage.abilities.effects.common.DamageTargetEffect; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; import mage.target.common.TargetCreatureOrPlayer; /** @@ -44,6 +44,7 @@ public class LightningBlast extends CardImpl { super(ownerId, 185, "Lightning Blast", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{3}{R}"); this.expansionSetCode = "TMP"; + // Lightning Blast deals 4 damage to target creature. this.getSpellAbility().addEffect(new DamageTargetEffect(4)); this.getSpellAbility().addTarget(new TargetCreatureOrPlayer()); } diff --git a/Mage.Sets/src/mage/sets/timeshifted/Darkness.java b/Mage.Sets/src/mage/sets/timeshifted/Darkness.java index fbebfd7b95f..4fd5121abcb 100644 --- a/Mage.Sets/src/mage/sets/timeshifted/Darkness.java +++ b/Mage.Sets/src/mage/sets/timeshifted/Darkness.java @@ -28,12 +28,17 @@ package mage.sets.timeshifted; import java.util.UUID; +<<<<<<< HEAD import mage.constants.CardType; import mage.constants.Rarity; +======= +>>>>>>> origin/master import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; import mage.cards.CardImpl; +import mage.constants.CardType; import mage.constants.Duration; +import mage.constants.Rarity; /** * diff --git a/Mage.Sets/src/mage/sets/torment/Radiate.java b/Mage.Sets/src/mage/sets/torment/Radiate.java index 85a52897a8c..c4d3d99a22c 100644 --- a/Mage.Sets/src/mage/sets/torment/Radiate.java +++ b/Mage.Sets/src/mage/sets/torment/Radiate.java @@ -44,11 +44,11 @@ import mage.filter.predicate.ObjectPlayerPredicate; import mage.game.Game; import mage.game.stack.Spell; import mage.game.stack.StackObject; +import mage.players.Player; import mage.target.Target; import mage.target.TargetSpell; import mage.util.TargetAddress; - /** * @author duncant */ @@ -61,7 +61,7 @@ public class Radiate extends CardImpl { filter.add(new SpellWithOnlyPermanentOrPlayerTargetsPredicate()); filter.setMessage("instant or sorcery spell that targets only a single permanent or player"); } - + public Radiate(UUID ownerId) { super(ownerId, 113, "Radiate", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{3}{R}{R}"); this.expansionSetCode = "TOR"; @@ -82,6 +82,7 @@ public class Radiate extends CardImpl { } class SpellWithOnlySingleTargetPredicate implements ObjectPlayerPredicate> { + @Override public boolean apply(ObjectPlayer input, Game game) { Spell spell = input.getObject(); @@ -104,6 +105,7 @@ class SpellWithOnlySingleTargetPredicate implements ObjectPlayerPredicate> { + @Override public boolean apply(ObjectPlayer input, Game game) { Spell spell = input.getObject(); @@ -114,7 +116,7 @@ class SpellWithOnlyPermanentOrPlayerTargetsPredicate implements ObjectPlayerPred Target targetInstance = addr.getTarget(spell); for (UUID targetId : targetInstance.getTargets()) { if (game.getPermanent(targetId) == null - && game.getPlayer(targetId) == null) { + && game.getPlayer(targetId) == null) { return false; } } @@ -122,15 +124,13 @@ class SpellWithOnlyPermanentOrPlayerTargetsPredicate implements ObjectPlayerPred return true; } } - - class RadiateEffect extends CopySpellForEachItCouldTargetEffect { public RadiateEffect() { this(new FilterPermanentOrPlayer()); } - + public RadiateEffect(RadiateEffect effect) { super(effect); } @@ -143,7 +143,12 @@ class RadiateEffect extends CopySpellForEachItCouldTargetEffect { public String getText(Mode mode) { return "Choose target instant or sorcery spell that targets only a single permanent or player. Copy that spell for each other permanent or player the spell could target. Each copy targets a different one of those permanents and players."; } - + + @Override + protected Player getPlayer(Game game, Ability source) { + return game.getPlayer(source.getControllerId()); + } + @Override protected Spell getSpell(Game game, Ability source) { StackObject ret = game.getStack().getStackObject(targetPointer.getFirst(game, source)); diff --git a/Mage.Sets/src/mage/sets/urzassaga/Lull.java b/Mage.Sets/src/mage/sets/urzassaga/Lull.java index 3ec979ab4ab..c90104861de 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/Lull.java +++ b/Mage.Sets/src/mage/sets/urzassaga/Lull.java @@ -28,13 +28,13 @@ package mage.sets.urzassaga; import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.PreventAllDamageByAllPermanentsEffect; +import mage.abilities.keyword.CyclingAbility; +import mage.cards.CardImpl; import mage.constants.CardType; import mage.constants.Duration; import mage.constants.Rarity; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.PreventAllDamageByAllEffect; -import mage.abilities.keyword.CyclingAbility; -import mage.cards.CardImpl; /** * @@ -48,7 +48,7 @@ public class Lull extends CardImpl { //Prevent all combat damage that would be dealt this turn. - this.getSpellAbility().addEffect(new PreventAllDamageByAllEffect(Duration.EndOfTurn, true)); + this.getSpellAbility().addEffect(new PreventAllDamageByAllPermanentsEffect(Duration.EndOfTurn, true)); this.addAbility(new CyclingAbility(new ManaCostsImpl("{2}"))); } diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/emn/NephaliaAcademyTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/emn/NephaliaAcademyTest.java new file mode 100644 index 00000000000..5063c289d72 --- /dev/null +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/emn/NephaliaAcademyTest.java @@ -0,0 +1,65 @@ +package org.mage.test.cards.single.emn; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author escplan9 (Derek Monturo - dmontur1 at gmail dot com) + */ +public class NephaliaAcademyTest extends CardTestPlayerBase { + + @Test + public void testReplacementEffectBySpell() { + // Sorcery {B} + // Target opponent reveals his or her hand. You choose a noncreature, nonland card from it. That player discards that card. + addCard(Zone.HAND, playerA, "Duress", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); + + // Nephalia Academy - Land <> + // If a spell or ability an opponent controls causes you to discard a card, + // you may reveal that card and put it on top of your library instead of putting it anywhere else. + addCard(Zone.HAND, playerB, "Giant Growth", 1); // discard fodder + addCard(Zone.BATTLEFIELD, playerB, "Nephalia Academy", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Duress"); + addTarget(playerA, playerB); + setChoice(playerA, "Giant Growth"); // choose to discard Giant Growth + setChoice(playerB, "Yes"); // replacement effect, choose to reveal the card and place on top of library + execute(); + + assertGraveyardCount(playerA, "Duress", 1); + assertHandCount(playerB, "Giant Growth", 0); + assertGraveyardCount(playerB, "Giant Growth", 0); + assertLibraryCount(playerB, "Giant Growth", 1); + } + + @Test + public void testDeclineReplacementEffectBySpell() { + // Sorcery {B} + // Target opponent reveals his or her hand. You choose a noncreature, nonland card from it. That player discards that card. + addCard(Zone.HAND, playerA, "Duress", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); + + // Nephalia Academy - Land <> + // If a spell or ability an opponent controls causes you to discard a card, + // you may reveal that card and put it on top of your library instead of putting it anywhere else. + addCard(Zone.HAND, playerB, "Giant Growth", 1); // discard fodder + addCard(Zone.BATTLEFIELD, playerB, "Nephalia Academy", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Duress"); + addTarget(playerA, playerB); + setChoice(playerA, "Giant Growth"); // choose to discard Giant Growth + setChoice(playerB, "No"); // decline the replacement effect, allow the discard to happen + execute(); + + assertGraveyardCount(playerA, "Duress", 1); + assertHandCount(playerB, "Giant Growth", 0); + assertGraveyardCount(playerB, "Giant Growth", 1); // discarded to grave + } + + //TODO: Add tests for replacement effect by ability + +} diff --git a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java index d1cd7427c41..0a871fa0526 100644 --- a/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/delayed/AtTheBeginOfMainPhaseDelayedTriggeredAbility.java @@ -27,10 +27,10 @@ */ package mage.abilities.common.delayed; -import mage.constants.TargetController; import mage.abilities.DelayedTriggeredAbility; import mage.abilities.effects.Effect; import mage.constants.Duration; +import mage.constants.TargetController; import mage.game.Game; import mage.game.events.GameEvent; import mage.game.events.GameEvent.EventType; @@ -44,9 +44,10 @@ public class AtTheBeginOfMainPhaseDelayedTriggeredAbility extends DelayedTrigger public enum PhaseSelection { - NEXT_PRECOMBAT_MAIN("next precombat"), - NEXT_POSTCOMAT_MAIN("next postcombat"), - NEXT_MAIN("next"); + NEXT_PRECOMBAT_MAIN("next precombat main phase"), + NEXT_POSTCOMAT_MAIN("next postcombat main phase"), + NEXT_MAIN("next main phase"), + NEXT_MAIN_THIS_TURN("next main phase this turn"); private final String text; @@ -63,7 +64,6 @@ public class AtTheBeginOfMainPhaseDelayedTriggeredAbility extends DelayedTrigger private final TargetController targetController; private final PhaseSelection phaseSelection; - public AtTheBeginOfMainPhaseDelayedTriggeredAbility(Effect effect, boolean optional, TargetController targetController, PhaseSelection phaseSelection) { super(effect, Duration.EndOfGame, true, optional); this.targetController = targetController; @@ -116,6 +116,7 @@ public class AtTheBeginOfMainPhaseDelayedTriggeredAbility extends DelayedTrigger private boolean checkPhase(EventType eventType) { switch (phaseSelection) { case NEXT_MAIN: + case NEXT_MAIN_THIS_TURN: return EventType.PRECOMBAT_MAIN_PHASE_PRE.equals(eventType) || EventType.POSTCOMBAT_MAIN_PHASE_PRE.equals(eventType); case NEXT_POSTCOMAT_MAIN: return EventType.POSTCOMBAT_MAIN_PHASE_PRE.equals(eventType); @@ -131,16 +132,16 @@ public class AtTheBeginOfMainPhaseDelayedTriggeredAbility extends DelayedTrigger StringBuilder sb = new StringBuilder(); switch (targetController) { case YOU: - sb.append("At the beginning of your ").append(phaseSelection.toString()).append(" main phase, "); + sb.append("At the beginning of your ").append(phaseSelection.toString()).append(", "); break; case OPPONENT: - sb.append("At the beginning of an opponent's ").append(phaseSelection.toString()).append(" main phase, "); + sb.append("At the beginning of an opponent's ").append(phaseSelection.toString()).append(", "); break; case ANY: - sb.append("At the beginning of the ").append(phaseSelection.toString()).append(" main phase, "); + sb.append("At the beginning of the ").append(phaseSelection.toString()).append(", "); break; case CONTROLLER_ATTACHED_TO: - sb.append("At the beginning of the ").append(phaseSelection.toString()).append(" main phase of enchanted creature's controller, "); + sb.append("At the beginning of the ").append(phaseSelection.toString()).append(" of enchanted creature's controller, "); break; } sb.append(getEffects().getText(modes.getMode())); diff --git a/Mage/src/main/java/mage/abilities/condition/common/AttachedCondition.java b/Mage/src/main/java/mage/abilities/condition/common/AttachedCondition.java new file mode 100644 index 00000000000..4020fe40970 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/condition/common/AttachedCondition.java @@ -0,0 +1,29 @@ +package mage.abilities.condition.common; + +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.game.Game; +import mage.game.permanent.Permanent; + +/** + * + * @author Quercitron + */ +public class AttachedCondition implements Condition { + + private static final AttachedCondition fInstance = new AttachedCondition(); + + public static AttachedCondition getInstance() { + return fInstance; + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent attachment = game.getPermanent(source.getSourceId()); + if (attachment == null || attachment.getAttachedTo() == null) { + return false; + } + Permanent attachedTo = game.getPermanent(attachment.getAttachedTo()); + return (attachedTo != null); + } +} diff --git a/Mage/src/main/java/mage/abilities/condition/common/WatcherCondition.java b/Mage/src/main/java/mage/abilities/condition/common/WatcherCondition.java new file mode 100644 index 00000000000..94d6e45f034 --- /dev/null +++ b/Mage/src/main/java/mage/abilities/condition/common/WatcherCondition.java @@ -0,0 +1,51 @@ +package mage.abilities.condition.common; + +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.constants.WatcherScope; +import mage.game.Game; +import mage.watchers.Watcher; + +/** + * + * @author Quercitron + */ +public class WatcherCondition implements Condition { + + private final String watcherKey; + private final WatcherScope watcherScope; + private final String text; + + public WatcherCondition(String watcherKey, WatcherScope watcherScope) { + this(watcherKey, watcherScope, ""); + } + + public WatcherCondition(String watcherKey, WatcherScope watcherScope, String text) { + this.watcherKey = watcherKey; + this.watcherScope = watcherScope; + this.text = text; + } + + @Override + public boolean apply(Game game, Ability source) { + Watcher watcher = null; + switch (watcherScope) { + case GAME: + watcher = game.getState().getWatchers().get(watcherKey); + break; + case PLAYER: + watcher = game.getState().getWatchers().get(watcherKey, source.getControllerId()); + break; + case CARD: + watcher = game.getState().getWatchers().get(watcherKey, source.getSourceId()); + break; + } + return watcher != null && watcher.conditionMet(); + } + + @Override + public String toString() { + return text; + } + +} diff --git a/Mage/src/main/java/mage/abilities/dynamicvalue/common/DiscardCostCardConvertedMana.java b/Mage/src/main/java/mage/abilities/dynamicvalue/common/DiscardCostCardConvertedMana.java index 6309f6776f1..0b51372789d 100644 --- a/Mage/src/main/java/mage/abilities/dynamicvalue/common/DiscardCostCardConvertedMana.java +++ b/Mage/src/main/java/mage/abilities/dynamicvalue/common/DiscardCostCardConvertedMana.java @@ -2,7 +2,7 @@ package mage.abilities.dynamicvalue.common; import mage.abilities.Ability; import mage.abilities.costs.Cost; -import mage.abilities.costs.common.DiscardCardCost; +import mage.abilities.costs.common.DiscardTargetCost; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effect; import mage.cards.Card; @@ -16,8 +16,8 @@ public class DiscardCostCardConvertedMana implements DynamicValue { @Override public int calculate(Game game, Ability sourceAbility, Effect effect) { for (Cost cost : sourceAbility.getCosts()) { - if (cost instanceof DiscardCardCost) { - DiscardCardCost discardCost = (DiscardCardCost) cost; + if (cost instanceof DiscardTargetCost) { + DiscardTargetCost discardCost = (DiscardTargetCost) cost; int cmc = 0; for (Card card : discardCost.getCards()) { cmc += card.getConvertedManaCost(); diff --git a/Mage/src/main/java/mage/abilities/effects/common/CopySpellForEachItCouldTargetEffect.java b/Mage/src/main/java/mage/abilities/effects/common/CopySpellForEachItCouldTargetEffect.java index 4fcf18e9eb5..543a4070865 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/CopySpellForEachItCouldTargetEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/CopySpellForEachItCouldTargetEffect.java @@ -72,6 +72,8 @@ public abstract class CopySpellForEachItCouldTargetEffect ex protected abstract Spell getSpell(Game game, Ability source); + protected abstract Player getPlayer(Game game, Ability source); + protected abstract boolean changeTarget(Target target, Game game, Ability source); protected abstract void modifyCopy(Spell copy, Game game, Ability source); @@ -82,8 +84,8 @@ public abstract class CopySpellForEachItCouldTargetEffect ex @Override public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller == null) { + Player actingPlayer = getPlayer(game, source); + if (actingPlayer == null) { return false; } Spell spell = getSpell(game, source); @@ -111,7 +113,7 @@ public abstract class CopySpellForEachItCouldTargetEffect ex sampleTarget.setNotTarget(true); Map> playerTargetCopyMap = new HashMap<>(); - for (UUID objId : sampleTarget.possibleTargets(controller.getId(), game)) { + for (UUID objId : sampleTarget.possibleTargets(actingPlayer.getId(), game)) { MageItem obj = game.getObject(objId); if (obj == null) { obj = game.getPlayer(objId); @@ -131,7 +133,7 @@ public abstract class CopySpellForEachItCouldTargetEffect ex for (TargetAddress addr : targetsToBeChanged) { // potential target must be legal for all targets that we're about to change Target targetInstance = addr.getTarget(copy); - legal &= targetInstance.canTarget(objId, addr.getSpellAbility(copy), game); + legal &= targetInstance.canTarget(actingPlayer.getId(), objId, addr.getSpellAbility(copy), game); if (!legal) { break; } diff --git a/Mage/src/main/java/mage/util/TargetAddress.java b/Mage/src/main/java/mage/util/TargetAddress.java index e4e89d18325..57bdddc23b4 100644 --- a/Mage/src/main/java/mage/util/TargetAddress.java +++ b/Mage/src/main/java/mage/util/TargetAddress.java @@ -28,6 +28,7 @@ package mage.util; import java.util.Iterator; +import java.util.Objects; import java.util.UUID; import mage.abilities.Mode; import mage.abilities.Modes; @@ -59,6 +60,7 @@ public class TargetAddress { this.card = card; } + @Override public Iterator iterator() { return new TargetAddressIterator(card); } @@ -87,10 +89,12 @@ public class TargetAddress { calcNext(); } + @Override public boolean hasNext() { return lastTargetIndex != null; } + @Override public TargetAddress next() { TargetAddress ret = new TargetAddress(lastSpellAbilityIndex, lastMode, @@ -100,6 +104,7 @@ public class TargetAddress { } + @Override public void remove() { throw new UnsupportedOperationException(); } @@ -188,4 +193,25 @@ public class TargetAddress { public int hashCode() { return spellAbilityIndex ^ mode.hashCode() ^ targetIndex; } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final TargetAddress other = (TargetAddress) obj; + if (this.spellAbilityIndex != other.spellAbilityIndex) { + return false; + } + if (this.targetIndex != other.targetIndex) { + return false; + } + return Objects.equals(this.mode, other.mode); + } } diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 585c87c7929..1d82416715c 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -5895,7 +5895,7 @@ Orator of Ojutai|Friday Night Magic|184|U|{1}{W}|Creature - Bird Monk|0|4|Defned Ultimate Price|Friday Night Magic|185|U|{1}{B}|Instant|||Destroy target monocolored creature.| Roast|Friday Night Magic|186|U|{1}{R}|Sorcery|||Roast deals 5 damage to target creature without flying.| Anticipate|Friday Night Magic|187|C|{1}{U}|Instant|||Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.| -Nissa's Pilgrimage|Friday Night Magic|188|C|{2}{G}|Sorcery|||Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library.$Spell Mastery — If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two.| +Nissa's Pilgrimage|Friday Night Magic|188|C|{2}{G}|Sorcery|||Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library.$Spell Mastery � If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two.| Clash of Wills|Friday Night Magic|189|U|{X}{U}|Instant|||Counter target spell unless its controller pays {X}.| Smash to Smithereens|Friday Night Magic|190|C|{1}{R}|Instant|||Destroy target artifact. Smash to Smithereens deals 3 damage to that artifact's controller.| Blighted Fen|Friday Night Magic|191|U||Land|||{T}: Add {C} to your mana pool.${4}{B}, {T}, Sacrifice Blighted Fen: Target opponent sacrifices a creature.| @@ -25304,71 +25304,71 @@ Defiant Ogre|Fate Reforged|96|C|{5}{R}|Creature - Ogre Warrior|3|5|When Defiant Dragonrage|Fate Reforged|97|U|{2}{R}|Instant|||Add {R} to your mana pool for each attacking creature you control. Until end of turn, attacking creatures you control gain "{R}: This creature gets +1/+0 until end of turn."| Fierce Invocation|Fate Reforged|98|C|{4}{R}|Sorcery|||Manifest the top card of your library, then put two +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 any time for its mana cost if it's a creature card.)| Flamerush Rider|Fate Reforged|99|R|{4}{R}|Creature - Human Warrior|3|3|Whenever Flamerush Rider attacks, put a token onto the battlefield tapped and attacking that's a copy of another target attacking creature. Exile the token at end of combat.$Dash {2}{R}{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.)| -Wood Elves|WPN Gateway|1|Special|{2}{G}|Creature — Elf Scout|1|1|When Wood Elves enters the battlefield, search your library for a Forest card and put that card onto the battlefield. Then shuffle your library.| -Icatian Javelineers|WPN Gateway|2|Special|{W}|Creature — Human Soldier|1|1|Icatian Javelineers enters the battlefield with a javelin counter on it.${T}, Remove a javelin counter from Icatian Javelineers: Icatian Javelineers deals 1 damage to target creature or player.| +Wood Elves|WPN Gateway|1|Special|{2}{G}|Creature � Elf Scout|1|1|When Wood Elves enters the battlefield, search your library for a Forest card and put that card onto the battlefield. Then shuffle your library.| +Icatian Javelineers|WPN Gateway|2|Special|{W}|Creature � Human Soldier|1|1|Icatian Javelineers enters the battlefield with a javelin counter on it.${T}, Remove a javelin counter from Icatian Javelineers: Icatian Javelineers deals 1 damage to target creature or player.| Fiery Temper|WPN Gateway|3|Special|{1}{R}{R}|Instant|||Fiery Temper deals 3 damage to target creature or player.$Madness {R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)| Boomerang|WPN Gateway|4|Special|{U}{U}|Instant|||Return target permanent to its owner's hand.| -Calciderm|WPN Gateway|5|Special|{2}{W}{W}|Creature — Beast|5|5|Shroud (This creature can't be the target of spells or abilities.)$Vanishing 4 (This permanent enters the battlefield with four time counters on it. At the beginning of your upkeep, remove a time counter from it. When the last is removed, sacrifice it.)| -Reckless Wurm|WPN Gateway|6|Special|{3}{R}{R}|Creature — Wurm|4|4|Trample$Madness {2}{R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)| -Yixlid Jailer|WPN Gateway|7|Special|{1}{B}|Creature — Zombie Wizard|2|1|Cards in graveyards lose all abilities.| +Calciderm|WPN Gateway|5|Special|{2}{W}{W}|Creature � Beast|5|5|Shroud (This creature can't be the target of spells or abilities.)$Vanishing 4 (This permanent enters the battlefield with four time counters on it. At the beginning of your upkeep, remove a time counter from it. When the last is removed, sacrifice it.)| +Reckless Wurm|WPN Gateway|6|Special|{3}{R}{R}|Creature � Wurm|4|4|Trample$Madness {2}{R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)| +Yixlid Jailer|WPN Gateway|7|Special|{1}{B}|Creature � Zombie Wizard|2|1|Cards in graveyards lose all abilities.| Zoetic Cavern|WPN Gateway|8|Special||Land|||{T}: Add {C} to your mana pool.$Morph {2} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| -Llanowar Elves|WPN Gateway|9|Special|{G}|Creature — Elf Druid|1|1|{T}: Add {G} to your mana pool.| -Mogg Fanatic|WPN Gateway|10|Special|{R}|Creature — Goblin|1|1|Sacrifice Mogg Fanatic: Mogg Fanatic deals 1 damage to target creature or player.| +Llanowar Elves|WPN Gateway|9|Special|{G}|Creature � Elf Druid|1|1|{T}: Add {G} to your mana pool.| +Mogg Fanatic|WPN Gateway|10|Special|{R}|Creature � Goblin|1|1|Sacrifice Mogg Fanatic: Mogg Fanatic deals 1 damage to target creature or player.| Mind Stone|WPN Gateway|11|Special|{2}|Artifact|||{T}: Add {C} to your mana pool.${1}, {T}, Sacrifice Mind Stone: Draw a card.| -Dauntless Dourbark|WPN Gateway|12|Special|{3}{G}|Creature — Treefolk Warrior|*|*|Dauntless Dourbark's power and toughness are each equal to the number of Forests you control plus the number of Treefolk you control.$Dauntless Dourbark has trample as long as you control another Treefolk.| +Dauntless Dourbark|WPN Gateway|12|Special|{3}{G}|Creature � Treefolk Warrior|*|*|Dauntless Dourbark's power and toughness are each equal to the number of Forests you control plus the number of Treefolk you control.$Dauntless Dourbark has trample as long as you control another Treefolk.| Lava Axe|WPN Gateway|13|Special|{4}{R}|Sorcery|||Lava Axe deals 5 damage to target player.| -Cenn's Tactician|WPN Gateway|14|Special|{W}|Creature — Kithkin Soldier|1|1|{W}, {T}: Put a +1/+1 counter on target Soldier creature.$Each creature you control with a +1/+1 counter on it can block an additional creature each combat.| -Oona's Blackguard|WPN Gateway|15|Special|{1}{B}|Creature — Faerie Rogue|1|1|Flying$Each other Rogue creature you control enters the battlefield with an additional +1/+1 counter on it.$Whenever a creature you control with a +1/+1 counter on it deals combat damage to a player, that player discards a card.| -Gravedigger|WPN Gateway|16|Special|{3}{B}|Creature — Zombie|2|2|When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand.| -Boggart Ram-Gang|WPN Gateway|17|Special|{RG}{RG}{RG}|Creature — Goblin Warrior|3|3|Haste$Wither (This deals damage to creatures in the form of -1/-1 counters.)| -Wilt-Leaf Cavaliers|WPN Gateway|18|Special|{GW}{GW}{GW}|Creature — Elf Knight|3|4|Vigilance| -Duergar Hedge-Mage|WPN Gateway|19|Special|{2}{RW}|Creature — Dwarf Shaman|2|2|When Duergar Hedge-Mage enters the battlefield, if you control two or more Mountains, you may destroy target artifact.$When Duergar Hedge-Mage enters the battlefield, if you control two or more Plains, you may destroy target enchantment.| -Selkie Hedge-Mage|WPN Gateway|20|Special|{2}{GU}|Creature — Merfolk Wizard|2|2|When Selkie Hedge-Mage enters the battlefield, if you control two or more Forests, you may gain 3 life.$When Selkie Hedge-Mage enters the battlefield, if you control two or more Islands, you may return target tapped creature to its owner's hand.| -Sprouting Thrinax|WPN Gateway|21|Special|{B}{R}{G}|Creature — Lizard|3|3|When Sprouting Thrinax dies, put three 1/1 green Saproling creature tokens onto the battlefield.| -Woolly Thoctar|WPN Gateway|22|Special|{W}{R}{G}|Creature — Beast|5|4|| +Cenn's Tactician|WPN Gateway|14|Special|{W}|Creature � Kithkin Soldier|1|1|{W}, {T}: Put a +1/+1 counter on target Soldier creature.$Each creature you control with a +1/+1 counter on it can block an additional creature each combat.| +Oona's Blackguard|WPN Gateway|15|Special|{1}{B}|Creature � Faerie Rogue|1|1|Flying$Each other Rogue creature you control enters the battlefield with an additional +1/+1 counter on it.$Whenever a creature you control with a +1/+1 counter on it deals combat damage to a player, that player discards a card.| +Gravedigger|WPN Gateway|16|Special|{3}{B}|Creature � Zombie|2|2|When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand.| +Boggart Ram-Gang|WPN Gateway|17|Special|{RG}{RG}{RG}|Creature � Goblin Warrior|3|3|Haste$Wither (This deals damage to creatures in the form of -1/-1 counters.)| +Wilt-Leaf Cavaliers|WPN Gateway|18|Special|{GW}{GW}{GW}|Creature � Elf Knight|3|4|Vigilance| +Duergar Hedge-Mage|WPN Gateway|19|Special|{2}{RW}|Creature � Dwarf Shaman|2|2|When Duergar Hedge-Mage enters the battlefield, if you control two or more Mountains, you may destroy target artifact.$When Duergar Hedge-Mage enters the battlefield, if you control two or more Plains, you may destroy target enchantment.| +Selkie Hedge-Mage|WPN Gateway|20|Special|{2}{GU}|Creature � Merfolk Wizard|2|2|When Selkie Hedge-Mage enters the battlefield, if you control two or more Forests, you may gain 3 life.$When Selkie Hedge-Mage enters the battlefield, if you control two or more Islands, you may return target tapped creature to its owner's hand.| +Sprouting Thrinax|WPN Gateway|21|Special|{B}{R}{G}|Creature � Lizard|3|3|When Sprouting Thrinax dies, put three 1/1 green Saproling creature tokens onto the battlefield.| +Woolly Thoctar|WPN Gateway|22|Special|{W}{R}{G}|Creature � Beast|5|4|| Path to Exile|WPN Gateway|24|Special|{W}|Instant|||Exile target creature. Its controller may search his or her library for a basic land card, put that card onto the battlefield tapped, then shuffle his or her library.| -Hellspark Elemental|WPN Gateway|25|Special|{1}{R}|Creature — Elemental|3|1|Trample, haste$At the beginning of the end step, sacrifice Hellspark Elemental.$Unearth {1}{R} ({1}{R}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)| -Marisi's Twinclaws|WPN Gateway|26|Special|{2}{RW}{G}|Creature — Cat Warrior|2|4|Double strike| +Hellspark Elemental|WPN Gateway|25|Special|{1}{R}|Creature � Elemental|3|1|Trample, haste$At the beginning of the end step, sacrifice Hellspark Elemental.$Unearth {1}{R} ({1}{R}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)| +Marisi's Twinclaws|WPN Gateway|26|Special|{2}{RW}{G}|Creature � Cat Warrior|2|4|Double strike| Slave of Bolas|WPN Gateway|27|Special|{3}{UR}{B}|Sorcery|||Gain control of target creature. Untap that creature. It gains haste until end of turn. Sacrifice it at the beginning of the next end step.| -Mycoid Shepherd|WPN Gateway|28|Special|{1}{W}{G}{G}|Creature — Fungus|5|4|Whenever Mycoid Shepherd or another creature you control with power 5 or greater dies, you may gain 5 life.| -Naya Sojourners|WPN Gateway|29|Special|{2}{W}{R}{G}|Creature — Elf Shaman|5|3|When you cycle Naya Sojourners or it dies, you may put a +1/+1 counter on target creature.$Cycling {2}{G} ({2}{G}, Discard this card: Draw a card.)| -Mind Control|WPN Gateway|30|Special|{3}{U}{U}|Enchantment — Aura|||Enchant creature$You control enchanted creature.| +Mycoid Shepherd|WPN Gateway|28|Special|{1}{W}{G}{G}|Creature � Fungus|5|4|Whenever Mycoid Shepherd or another creature you control with power 5 or greater dies, you may gain 5 life.| +Naya Sojourners|WPN Gateway|29|Special|{2}{W}{R}{G}|Creature � Elf Shaman|5|3|When you cycle Naya Sojourners or it dies, you may put a +1/+1 counter on target creature.$Cycling {2}{G} ({2}{G}, Discard this card: Draw a card.)| +Mind Control|WPN Gateway|30|Special|{3}{U}{U}|Enchantment � Aura|||Enchant creature$You control enchanted creature.| Rise from the Grave|WPN Gateway|31|Special|{4}{B}|Sorcery|||Put target creature card from a graveyard onto the battlefield under your control. That creature is a black Zombie in addition to its other colors and types.| -Kor Duelist|WPN Gateway|32|Special|{W}|Creature — Kor Soldier|1|1|As long as Kor Duelist is equipped, it has double strike. (It deals both first-strike and regular combat damage.)| -Vampire Nighthawk|WPN Gateway|33|Special|{1}{B}{B}|Creature — Vampire Shaman|2|3|Flying$Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| -Nissa's Chosen|WPN Gateway|34|Special|{G}{G}|Creature — Elf Warrior|2|3|If Nissa's Chosen would die, put it on the bottom of its owner's library instead.| -Emeria Angel|WPN Gateway|35|Special|{2}{W}{W}|Creature — Angel|3|3|Flying$Landfall — Whenever a land enters the battlefield under your control, you may put a 1/1 white Bird creature token with flying onto the battlefield.| -Kor Firewalker|WPN Gateway|36|Special|{W}{W}|Creature — Kor Soldier|2|2|Protection from red$Whenever a player casts a red spell, you may gain 1 life.| -Leatherback Baloth|WPN Gateway|37|Special|{G}{G}{G}|Creature — Beast|4|5|| -Hada Freeblade|WPN Gateway|38|Special|{W}|Creature — Human Soldier Ally|0|1|Whenever Hada Freeblade or another Ally enters the battlefield under your control, you may put a +1/+1 counter on Hada Freeblade.| -Kalastria Highborn|WPN Gateway|39|Special|{B}{B}|Creature — Vampire Shaman|2|2|Whenever Kalastria Highborn or another Vampire you control dies, you may pay {B}. If you do, target player loses 2 life and you gain 2 life.| +Kor Duelist|WPN Gateway|32|Special|{W}|Creature � Kor Soldier|1|1|As long as Kor Duelist is equipped, it has double strike. (It deals both first-strike and regular combat damage.)| +Vampire Nighthawk|WPN Gateway|33|Special|{1}{B}{B}|Creature � Vampire Shaman|2|3|Flying$Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| +Nissa's Chosen|WPN Gateway|34|Special|{G}{G}|Creature � Elf Warrior|2|3|If Nissa's Chosen would die, put it on the bottom of its owner's library instead.| +Emeria Angel|WPN Gateway|35|Special|{2}{W}{W}|Creature � Angel|3|3|Flying$Landfall � Whenever a land enters the battlefield under your control, you may put a 1/1 white Bird creature token with flying onto the battlefield.| +Kor Firewalker|WPN Gateway|36|Special|{W}{W}|Creature � Kor Soldier|2|2|Protection from red$Whenever a player casts a red spell, you may gain 1 life.| +Leatherback Baloth|WPN Gateway|37|Special|{G}{G}{G}|Creature � Beast|4|5|| +Hada Freeblade|WPN Gateway|38|Special|{W}|Creature � Human Soldier Ally|0|1|Whenever Hada Freeblade or another Ally enters the battlefield under your control, you may put a +1/+1 counter on Hada Freeblade.| +Kalastria Highborn|WPN Gateway|39|Special|{B}{B}|Creature � Vampire Shaman|2|2|Whenever Kalastria Highborn or another Vampire you control dies, you may pay {B}. If you do, target player loses 2 life and you gain 2 life.| Syphon Mind|WPN Gateway|40|Special|{3}{B}|Sorcery|||Each other player discards a card. You draw a card for each card discarded this way.| -Pathrazer of Ulamog|WPN Gateway|46|Special|{11}|Creature — Eldrazi|9|9|Annihilator 3 (Whenever this creature attacks, defending player sacrifices three permanents.)$Pathrazer of Ulamog can't be blocked except by three or more creatures.| +Pathrazer of Ulamog|WPN Gateway|46|Special|{11}|Creature � Eldrazi|9|9|Annihilator 3 (Whenever this creature attacks, defending player sacrifices three permanents.)$Pathrazer of Ulamog can't be blocked except by three or more creatures.| Curse of Wizardry|WPN Gateway|47|Special|{2}{B}{B}|Enchantment|||As Curse of Wizardry enters the battlefield, choose a color.$Whenever a player casts a spell of the chosen color, that player loses 1 life.| Staggershock|WPN Gateway|48|Special|{2}{R}|Instant|||Staggershock deals 2 damage to target creature or player.$Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)| -Deathless Angel|WPN Gateway|49|Special|{4}{W}{W}|Creature — Angel|5|7|Flying${W}{W}: Target creature gains indestructible until end of turn.| +Deathless Angel|WPN Gateway|49|Special|{4}{W}{W}|Creature � Angel|5|7|Flying${W}{W}: Target creature gains indestructible until end of turn.| Fling|WPN Gateway|50|Special|{1}{R}|Instant|||As an additional cost to cast Fling, sacrifice a creature.$Fling deals damage equal to the sacrificed creature's power to target creature or player.| -Sylvan Ranger|WPN Gateway|51|Special|{1}{G}|Creature — Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| -Plague Stinger|WPN Gateway|59|Special|{1}{B}|Creature — Insect Horror|1|1|Flying$Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)| +Sylvan Ranger|WPN Gateway|51|Special|{1}{G}|Creature � Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| +Plague Stinger|WPN Gateway|59|Special|{1}{B}|Creature � Insect Horror|1|1|Flying$Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)| Golem's Heart|WPN Gateway|60|Special|{2}|Artifact|||Whenever a player casts an artifact spell, you may gain 1 life.| -Skinrender|WPN Gateway|63|Special|{2}{B}{B}|Creature — Zombie|3|3|When Skinrender enters the battlefield, put three -1/-1 counters on target creature.| +Skinrender|WPN Gateway|63|Special|{2}{B}{B}|Creature � Zombie|3|3|When Skinrender enters the battlefield, put three -1/-1 counters on target creature.| Master's Call|WPN Gateway|64|Special|{2}{W}|Instant|||Put two 1/1 colorless Myr artifact creature tokens onto the battlefield.| -Plague Myr|WPN Gateway|65|Special|{2}|Artifact Creature — Myr|1|1|Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)${T}: Add {C} to your mana pool.| -Signal Pest|WPN Gateway|66|Special|{1}|Artifact Creature — Pest|0|1|Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)$Signal Pest can't be blocked except by creatures with flying or reach.| +Plague Myr|WPN Gateway|65|Special|{2}|Artifact Creature � Myr|1|1|Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)${T}: Add {C} to your mana pool.| +Signal Pest|WPN Gateway|66|Special|{1}|Artifact Creature � Pest|0|1|Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)$Signal Pest can't be blocked except by creatures with flying or reach.| Fling|WPN Gateway|69|Special|{1}{R}|Instant|||As an additional cost to cast Fling, sacrifice a creature.$Fling deals damage equal to the sacrificed creature's power to target creature or player.| -Sylvan Ranger|WPN Gateway|70|Special|{1}{G}|Creature — Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| -Vault Skirge|WPN Gateway|71|Special|{1}{BP}|Artifact Creature — Imp|1|1|({BP} can be paid with either {B} or 2 life.)$Flying$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| -Maul Splicer|WPN Gateway|72|Special|{6}{G}|Creature — Human Artificer|1|1|When Maul Splicer enters the battlefield, put two 3/3 colorless Golem artifact creature tokens onto the battlefield.$Golem creatures you control have trample.| +Sylvan Ranger|WPN Gateway|70|Special|{1}{G}|Creature � Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| +Vault Skirge|WPN Gateway|71|Special|{1}{BP}|Artifact Creature � Imp|1|1|({BP} can be paid with either {B} or 2 life.)$Flying$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| +Maul Splicer|WPN Gateway|72|Special|{6}{G}|Creature � Human Artificer|1|1|When Maul Splicer enters the battlefield, put two 3/3 colorless Golem artifact creature tokens onto the battlefield.$Golem creatures you control have trample.| Shrine of Burning Rage|WPN Gateway|73|Special|{2}|Artifact|||At the beginning of your upkeep or whenever you cast a red spell, put a charge counter on Shrine of Burning Rage.${3}, {T}, Sacrifice Shrine of Burning Rage: Shrine of Burning Rage deals damage equal to the number of charge counters on it to target creature or player.| -Tormented Soul|WPN Gateway|76|Special|{B}|Creature — Spirit|1|1|Tormented Soul can't block and can't be blocked.| -Auramancer|WPN Gateway|77|Special|{2}{W}|Creature — Human Wizard|2|2|When Auramancer enters the battlefield, you may return target enchantment card from your graveyard to your hand.| +Tormented Soul|WPN Gateway|76|Special|{B}|Creature � Spirit|1|1|Tormented Soul can't block and can't be blocked.| +Auramancer|WPN Gateway|77|Special|{2}{W}|Creature � Human Wizard|2|2|When Auramancer enters the battlefield, you may return target enchantment card from your graveyard to your hand.| Circle of Flame|WPN Gateway|78|Special|{1}{R}|Enchantment|||Whenever a creature without flying attacks you or a planeswalker you control, Circle of Flame deals 1 damage to that creature.| -Gather the Townsfolk|WPN Gateway|79|Special|{1}{W}|Sorcery|||Put two 1/1 white Human creature tokens onto the battlefield.$Fateful hour — If you have 5 or less life, put five of those tokens onto the battlefield instead.| -Curse of the Bloody Tome|WPN Gateway|80|Special|{2}{U}|Enchantment — Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, that player puts the top two cards of his or her library into his or her graveyard.| -Curse of Thirst|WPN Gateway|81|Special|{4}{B}|Enchantment — Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, Curse of Thirst deals damage to that player equal to the number of Curses attached to him or her.| -Nearheath Stalker|WPN Gateway|82|Special|{4}{R}|Creature — Vampire Rogue|4|1|Undying (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)| -Bloodcrazed Neonate|WPN Gateway|83|Special|{1}{R}|Creature — Vampire|2|1|Bloodcrazed Neonate attacks each turn if able.$Whenever Bloodcrazed Neonate deals combat damage to a player, put a +1/+1 counter on it.| -Boneyard Wurm|WPN Gateway|84|Special|{1}{G}|Creature — Wurm|*|*|Boneyard Wurm's power and toughness are each equal to the number of creature cards in your graveyard.| +Gather the Townsfolk|WPN Gateway|79|Special|{1}{W}|Sorcery|||Put two 1/1 white Human creature tokens onto the battlefield.$Fateful hour � If you have 5 or less life, put five of those tokens onto the battlefield instead.| +Curse of the Bloody Tome|WPN Gateway|80|Special|{2}{U}|Enchantment � Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, that player puts the top two cards of his or her library into his or her graveyard.| +Curse of Thirst|WPN Gateway|81|Special|{4}{B}|Enchantment � Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, Curse of Thirst deals damage to that player equal to the number of Curses attached to him or her.| +Nearheath Stalker|WPN Gateway|82|Special|{4}{R}|Creature � Vampire Rogue|4|1|Undying (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)| +Bloodcrazed Neonate|WPN Gateway|83|Special|{1}{R}|Creature � Vampire|2|1|Bloodcrazed Neonate attacks each turn if able.$Whenever Bloodcrazed Neonate deals combat damage to a player, put a +1/+1 counter on it.| +Boneyard Wurm|WPN Gateway|84|Special|{1}{G}|Creature � Wurm|*|*|Boneyard Wurm's power and toughness are each equal to the number of creature cards in your graveyard.| Dirtcowl Wurm|Prerelease Events|1|Special|{4}{G}|Creature - Wurm|3|4|Whenever an opponent plays a land, put a +1/+1 counter on Dirtcowl Wurm.| Revenant|Prerelease Events|2|Special|{4}{B}|Creature - Spirit|*|*|Flying$Revenant's power and toughness are each equal to the number of creature cards in your graveyard.| Monstrous Hount|Prerelease Events|3|Special|{3}{R}|Creature - Hound|4|4|Monstrous Hound can't attack unless you control more lands than defending player.$Monstrous Hound can't block unless you control more lands than attacking player.| @@ -25383,7 +25383,7 @@ Avatar of Hope|Prerelease Events|11|Special|{6}{W}{W}|Creature - Avatar|4|9|If y Raging Kavu|Prerelease Events|12|Special|{4}{1}{R}{G}|Creature - Kavu|3|1|Flash$Haste| Questing Phelddagrif|Prerelease Events|13|Special|{1}{W}{U}{G}|Creature - Phelddagrif|4|4|{G}: Questing Phelddagrif gets +1/+1 until end of turn. Target opponent puts a 1/1 green Hippo creature token onto the battlefield.${W}: Questing Phelddagrif gains protection from black and from red until end of turn. Target opponent gains 2 life.${U}: Questing Phelddagrif gains flying until end of turn. Target opponent may draw a card.| Fungal Shambler|Prerelease Events|14|Special|{4}{U}{B}{G}|Creature - Fungus Beast|6|4|Trample$Whenever Fungal Shambler deals damage to an opponent, you draw a card and that opponent discards a card.| -Stone-Tongue Baselisk|Prerelease Events|15|Special|{4}{G}{G}{G}|Creature - Basilisk|4|5|Whenever Stone-Tongue Basilisk deals combat damage to a creature, destroy that creature at end of combat.$Threshold — As long as seven or more cards are in your graveyard, all creatures able to block Stone-Tongue Basilisk do so.| +Stone-Tongue Baselisk|Prerelease Events|15|Special|{4}{G}{G}{G}|Creature - Basilisk|4|5|Whenever Stone-Tongue Basilisk deals combat damage to a creature, destroy that creature at end of combat.$Threshold � As long as seven or more cards are in your graveyard, all creatures able to block Stone-Tongue Basilisk do so.| Laquatus's Champion|Prerelease Events|16|Special|{4}{B}{B}|Creature - Nightmare Horror|6|3|When Laquatus's Champion enters the battlefield, target player loses 6 life.$When Laquatus's Champion leaves the battlefield, that player gains 6 life.${B}: Regenerate Laquatus's Champion.| Glory|Prerelease Events|17|Special|{{3}{W}{W}|Creature - Incarnation|3|3|Flying${2}{W}: Choose a color. Creatures you control gain protection from the chosen color until end of turn. Activate this ability only if Glory is in your graveyard.| Silent Specter|Prerelease Events|18|Special|{4}{B}{B}|Creature - Specter|4|4|Flying$Whenever Silent Specter deals combat damage to a player, that player discards two cards.$Morph {3}{B}{B} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| @@ -25401,7 +25401,7 @@ Avatar of Discord|Prerelease Events|29|Special|{BR}{BR}{BR}|Creature - Avatar|5| Allosaurus Rider|Prerelease Events|30|Special|{5}{G}{G}|Creature - Elf Warrior|1+*|1+*|You may exile two green cards from your hand rather than pay Allosaurus Rider's mana cost.$Allosaurus Rider's power and toughness are each equal to 1 plus the number of lands you control.| Lotus Bloom|Prerelease Events|31|Special||Artifact|||Suspend 3 {0} (Rather than cast this card from your hand, pay {0} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)${T}, Sacrifice Lotus Bloom: Add three mana of any one color to your mana pool. Oros, the Avenger|Prerelease Events|32|Special|{3}{W}{B}{R}|Legendary Creature - Dragon|6|6|Flying$Whenever Oros, the Avenger deals combat damage to a player, you may pay {2}{W}. If you do, Oros deals 3 damage to each nonwhite creature.| -Korlash, Heir to Blackblade|Prerelease Events|33|Special|{2}{B}{B}|Legendary Creature - Zombie Warrior|*|*|Korlash, Heir to Blackblade's power and toughness are each equal to the number of Swamps you control.${1}{B}: Regenerate Korlash.$Grandeur — Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.| +Korlash, Heir to Blackblade|Prerelease Events|33|Special|{2}{B}{B}|Legendary Creature - Zombie Warrior|*|*|Korlash, Heir to Blackblade's power and toughness are each equal to the number of Swamps you control.${1}{B}: Regenerate Korlash.$Grandeur � Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.| Wren's Run Packmaster|Prerelease Events|34|Special|{3}{G}|Creature - Elf Warrior|5|5|Champion an Elf (When this creature enters the battlefield, sacrifice it unless you exile another Elf you control. When this creature leaves the battlefield, that card returns to the battlefield.)${2}{G}: Put a 2/2 green Wolf creature token onto the battlefield.$Wolves you control have deathtouch.| Door of Destinies|Prerelease Events|35|Special|{4}|Artifact|||As Door of Destinies enters the battlefield, choose a creature type.$Whenever you cast a spell of the chosen type, put a charge counter on Door of Destinies.$Creatures you control of the chosen type get +1/+1 for each charge counter on Door of Destinies.| Demigod of Revenge|Prerelease Events|36|Special|{BR}{BR}{BR}{BR}{BR}|Creature - Spirit Avatar|5|4|Flying$Haste$When you cast Demigod of Revenge, return all cards named Demigod of Revenge from your graveyard to the battlefield.| @@ -25410,7 +25410,7 @@ Ajani Vengeant|Prerelease Events|38|Special|{2}{W}{R}|Planeswalker - Ajani|||+1: Malfegor|Prerelease Events|39|Special|{2}{B}{B}{R}{R}|Legendary Creature - Demon Dragon|6|6|Flying$When Malfegor enters the battlefield, discard your hand. Each opponent sacrifices a creature for each card discarded this way.| Dragon Broodmother|Prerelease Events|40|Special|{2}{R}{R}{R}{G}|Creature - Dragon|4|4|Flying$At the beginning of each upkeep, put a 1/1 red and green Dragon creature token with flying and devour 2 onto the battlefield. (As the token enters the battlefield, you may sacrifice any number of creatures. It enters the battlefield with twice that many +1/+1 counters on it.)| Vampire Nocturnus|Prerelease Events|41|Special|{1}{B}{B}{B}|Creature - Vampire|3|3|Play with the top card of your library revealed.$As long as the top card of your library is black, Vampire Nocturnus and other Vampire creatures you control get +2/+1 and have flying.| -Rampaging Baloths|Prerelease Events|42|Special|{4}{G}{G}|Creature - Beast|6|6|Trample$Landfall — Whenever a land enters the battlefield under your control, you may put a 4/4 green Beast creature token onto the battlefield.| +Rampaging Baloths|Prerelease Events|42|Special|{4}{G}{G}|Creature - Beast|6|6|Trample$Landfall � Whenever a land enters the battlefield under your control, you may put a 4/4 green Beast creature token onto the battlefield.| Comet Storm|Prerelease Events|43|Special|{X}{R}{R}|Instant|||Multikicker {1} (You may pay an additional {1} any number of times as you cast this spell.)$Choose target creature or player, then choose another target creature or player for each time Comet Storm was kicked. Comet Storm deals X damage to each of them.| Emrakul, the Aeons Torn|Prerelease Events|44|Special|{15}|Legendary Creature - Eldrazi|15|15|Emrakul, the Aeons Torn can't be countered.$When you cast Emrakul, take an extra turn after this one.$Flying, protection from colored spells, annihilator 6$When Emrakul is put into a graveyard from anywhere, its owner shuffles his or her graveyard into his or her library.| Sun Titan|Prerelease Events|45|Special|{4}{W}{W}|Creature - Giant|6|6|Vigilance$Whenever Sun Titan enters the battlefield or attacks, you may return target permanent card with converted mana cost 3 or less from your graveyard to the battlefield.| @@ -25433,7 +25433,7 @@ Grove of the Guardian|Prerelease Events|59|Special||Land|||{T}: Add {C} to your Consuming Aberration|Prerelease Events|60|Special|{3}{U}{B}|Creature - Horror|*|*|Consuming Aberration's power and toughness are each equal to the number of cards in your opponents' graveyards.$Whenever you cast a spell, each opponent reveals cards from the top of his or her library until he or she reveals a land card, then puts those cards into his or her graveyard.| Fathom Mage|Prerelease Events|61|Special|{2}{U}{G}|Creature - Human Wizard|1|1|Evolve (Whenever a creature enters the battlefield under your control, if that creature has greater power or toughness than this creature, put a +1/+1 counter on this creature.)$Whenever a +1/+1 counter is placed on Fathom Mage, you may draw a card.| Foundry Champion|Prerelease Events|62|Special|{4}{W}{R}|Creature - Elemental Soldier|4|4When Foundry Champion enters the battlefield, it deals damage to target creature or player equal to the number of creatures you control.${R}: Foundry Champion gets +1/+0 until end of turn.${W}: Foundry Champion gets +0/+1 until end of turn.| -Rubblehulk|Prerelease Events|63|Special|{4}{R}{G}|Creature - Elemental|*|*|Rubblehulk's power and toughness are each equal to the number of lands you control.$Bloodrush — {1}{R}{G}, Discard Rubblehulk: Target attacking creature gets +X/+X until end of turn, where X is the number of lands you control.| +Rubblehulk|Prerelease Events|63|Special|{4}{R}{G}|Creature - Elemental|*|*|Rubblehulk's power and toughness are each equal to the number of lands you control.$Bloodrush � {1}{R}{G}, Discard Rubblehulk: Target attacking creature gets +X/+X until end of turn, where X is the number of lands you control.| Treasury Thrull|Prerelease Events|64|Special|{4}{W}{B}|Creature - Thrull|4|4|Extort (Whenever you cast a spell, you may pay {WB}. If you do, each opponent loses 1 life and you gain that much life.)$Whenever Treasury Thrull attacks, you may return target artifact, creature, or enchantment card from your graveyard to your hand.| Maze's End|Prerelease Events|65|Special||Land|||Maze's End enters the battlefield tapped.${T}: Add {C} to your mana pool.${3}, {T}, Return Maze's End to its owner's hand: Search your library for a Gate card, put it onto the battlefield, then shuffle your library. If you control ten or more Gates with different names, you win the game.| Plains|Prerelease Events|66|Special||Basic Land - Plains|||({T}: Add {W} to your mana pool.)| @@ -25442,15 +25442,15 @@ Celestial Archon|Prerelease Events|68|Special|{3}{W}{W}|Enchantment Creature - A Shipbreaker Kraken|Prerelease Events|69|Special|{4}{U}{U}|Creature - Kraken|6|6|{6}{U}{U}: Monstrosity 4. (If this creature isn't monstrous, put four +1/+1 counters on it and it becomes monstrous.)$When Shipbreaker Kraken becomes monstrous, tap up to four target creatures. Those creatures don't untap during their controllers' untap steps for as long as you control Shipbreaker Kraken.| Abhorrent Overlord|Prerelease Events|70|Special|{5}{B}{B}|Creature - Demon|6|6|Flying$When Abhorrent Overlord enters the battlefield, put a number of 1/1 black Harpy creature tokens with flying onto the battlefield equal to your devotion to black. (Each {B} in the mana costs of permanents you control counts toward your devotion to black.)$At the beginning of your upkeep, sacrifice a creature.| Ember Swallower|Prerelease Events|71|Special|{2}{R}{R}|Creature - Elemental|4|5|{5}{R}{R}: Monstrosity 3. (If this creature isn't monstrous, put three +1/+1 counters on it and it becomes monstrous.)$When Ember Swallower becomes monstrous, each player sacrifices three lands.| -Anthousa, Setessan Hero|Prerelease Events|72|Special|{3}{G}{G}|Legendary Creature - Human Warrior|4|5|Heroic — Whenever you cast a spell that targets Anthousa, Setessan Hero, up to three target lands you control each become 2/2 Warrior creatures until end of turn. They're still lands.| +Anthousa, Setessan Hero|Prerelease Events|72|Special|{3}{G}{G}|Legendary Creature - Human Warrior|4|5|Heroic � Whenever you cast a spell that targets Anthousa, Setessan Hero, up to three target lands you control each become 2/2 Warrior creatures until end of turn. They're still lands.| Silent Sentinel|Prerelease Events|73|Special|{5}{W}{W}|Creature - Archon|4|6|Flying$Whenever Silent Sentinel attacks, you may return target enchantment card from your graveyard to the battlefield.| -Arbiter of the Ideal|Prerelease Events|74|Special|{4}{U}{U}|Creature - Sphinx|4|5|Flying$Inspired — Whenever Arbiter of the Ideal becomes untapped, reveal the top card of your library. If it's an artifact, creature, or land card, you may put it onto the battlefield with a manifestation counter on it. That permanent is an enchantment in addition to its other types.| +Arbiter of the Ideal|Prerelease Events|74|Special|{4}{U}{U}|Creature - Sphinx|4|5|Flying$Inspired � Whenever Arbiter of the Ideal becomes untapped, reveal the top card of your library. If it's an artifact, creature, or land card, you may put it onto the battlefield with a manifestation counter on it. That permanent is an enchantment in addition to its other types.| Eater of Hope|Prerelease Events|75|Special|{5}{B}{B}|Creature - Demon|6|4|Flying${B}, Sacrifice another creature: Regenerate Eater of Hope.${2}{B}, Sacrifice two other creatures: Destroy target creature.| Forgestoker Dragon|Prerelease Events|76|Special|{4}{R}{R}|Creature - Dragon|5|4|Flying${1}{R}: Forgestoker Dragon deals 1 damage to target creature. That creature can't block this combat. Activate this ability only if Forgestoker Dragon is attacking.| Nessian Wilds Ravager|Prerelease Events|77|Special|{4}{G}{G}|Creature - Hydra|6|6|Tribute 6 (As this creature enters the battlefield, an opponent of your choice may place six +1/+1 counters on it.)$When Nessian Wilds Ravager enters the battlefield, if tribute wasn't paid, you may have Nessian Wilds Ravager fight another target creature. (Each deals damage equal to its power to the other.)| -Dawnbringer Charioteers|Prerelease Events|78|Special|{2}{W}{W}|Creature - Human Soldier|2|4|Flying, lifelink$Heroic — Whenever you cast a spell that targets Dawnbringer Charioteers, put a +1/+1 counter on Dawnbringer Charioteers.| +Dawnbringer Charioteers|Prerelease Events|78|Special|{2}{W}{W}|Creature - Human Soldier|2|4|Flying, lifelink$Heroic � Whenever you cast a spell that targets Dawnbringer Charioteers, put a +1/+1 counter on Dawnbringer Charioteers.| Scourge of Fleets|Prerelease Events|79|Special|{5}{U}{U}|Creature - Kraken|6|6|When Scourge of Fleets enters the battlefield, return each creature your opponents control with toughness X or less to its owner's hand, where X is the number of Islands you control.| -Doomwake Giant|Prerelease Events|80|Special|{4}{B}|Enchantment Creature - Giant|4|6|Constellation — Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn.| +Doomwake Giant|Prerelease Events|80|Special|{4}{B}|Enchantment Creature - Giant|4|6|Constellation � Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn.| Spawn of Thraxes|Prerelease Events|81|Special|{5}{R}{R}|Creature - Dragon|5|5|Flying$When Spawn of Thraxes enters the battlefield, it deals damage to target creature or player equal to the number of Mountains you control.| Heroes' Bane|Prerelease Events|82|Special|{3}{G}{G}|Creature - Hydra|0|0|Heroes' Bane enters the battlefield with four +1/+1 counters on it.${2}{G}{G}: Put X +1/+1 counters on Heroes' Bane, where X is its power.| Resolute Archangel|Prerelease Events|83|Special|{5}{W}{W}|Creature - Angel|4|4|Flying$When Resolute Archangel enters the battlefield, if your life total is less than your starting life total, it becomes equal to your starting life total.| @@ -25572,12 +25572,12 @@ Abbot of Keral Keep|Prerelease Events|198|R|{1}{R}|Creature - Human Monk|2|1|Pro Alhammarret, High Arbiter|Prerelease Events|199|R|{5}{U}{U}|Legendary Creature - Sphinx|5|5|Flying$As Alhammarret, High Arbiter enters the battlefield, each opponent reveals his or her hand. You choose the name of a nonland card revealed this way.$Your opponents can't cast spells with the chosen name (as long as this creature is on the battlefield).| Chandra's Ignition|Prerelease Events|200|R|{3}{R}{R}|Sorcery|||Target creature you control deals damage equal to its power to each other creature and each opponent.| Chandra, Fire of Kaladesh|Prerelease Events|201|M|{1}{R}{R}|Legendary Creature - Human Shaman|2|2|Whenever you cast a red spell, untap Chandra, Fire of Kaladesh.${T}: Chandra, Fire of Kaladesh deals 1 damage to target player. If Chandra has dealt 3 or more damage this turn, exile her, then return her to the battlefield transformed under her owner's control.| -Dark Petition|Prerelease Events|202|R|{3}{B}{B}|Sorcery|||Search your library for a card and put that card into your hand. Then shuffle your library.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool.| +Dark Petition|Prerelease Events|202|R|{3}{B}{B}|Sorcery|||Search your library for a card and put that card into your hand. Then shuffle your library.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool.| Despoiler of Souls|Prerelease Events|203|R|{B}{B}|Creature - Horror|3|1|Despoiler of Souls can't block.${B}{B}, Exile two other creature cards from your graveyard: Return Despoiler of Souls from your graveyard to the battlefield.| Dwynen, Gilt-Leaf Daen|Prerelease Events|204|R|{2}{G}{G}|Legendary Creature - Elf Warrior|3|4|Reach$Other Elf creatures you control get +1/+1.$Whenever Dwynen, Gilt-Leaf Daen attacks, you gain 1 life for each attacking Elf you control.| Embermaw Hellion|Prerelease Events|205|R|{3}{R}{R}|Creature - Hellion|4|5|Trample$If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead.| Evolutionary Leap|Prerelease Events|206|R|{1}{G}|Enchantment|||{G}, Sacrifice a creature: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.| -Exquisite Firecraft|Prerelease Events|207|R|{1}{R}{R}|Sorcery|||Exquisite Firecraft deals 4 damage to target creature or player. $Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities.| +Exquisite Firecraft|Prerelease Events|207|R|{1}{R}{R}|Sorcery|||Exquisite Firecraft deals 4 damage to target creature or player. $Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities.| Gaea's Revenge|Prerelease Events|208|R|{5}{G}{G}|Creature - Elemental|8|5|Gaea's Revenge can't be countered.$Haste$Gaea's Revenge can't be the target of nongreen spells or abilities from nongreen sources.| Gideon's Phalanx|Prerelease Events|209|R|{5}{W}{W}|Instant|||Put four 2/2 white Knight creature tokens with vigilance onto the battlefield.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, creatures you control gain indestructible until end of turn.| Gilt-Leaf Winnower|Prerelease Events|210|R|{3}{B}{B}|Creature - Elf Warrior|4|3|Menace (This creature can't be blocked except by two or more creatures.)$When Gilt-Leaf Winnower enters the battlefield, you may destroy target non-Elf creature whose power and toughness aren't equal.| @@ -25608,17 +25608,17 @@ Thopter Spy Network|Prerelease Events|234|R|{2}{U}{U}|Enchantment|||At the begin Tragic Arrogance|Prerelease Events|235|R|{3}{W}{W}|Sorcery|||For each player, you choose from among the permanents that player controls an artifact, a creature, an enchantment, and a planeswalker. Then each player sacrifices all other nonland permanents he or she controls.| Vryn Wingmare|Prerelease Events|236|R|{2}{W}|Creature - Pegasus|2|1|Flying$Noncreature spells cost {1} more to cast.| Willbreaker|Prerelease Events|237|R|{3}{U}{U}|Creature - Human Wizard|2|3|Whenever a creature an opponent controls becomes the target of a spell or ability you control, gain control of that creature for as long as you control Willbreaker.| -Akoum Firebird|Prerelease Events|238|M|{2}{R}{R}|Creature - Phoenix|3|3|Flying, haste$Akoum Firebird attacks each turn if able.$Landfall — Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield.| -Akoum Hellkite|Prerelease Events|239|R|{4}{R}{R}|Creature - Dragon|4|4|Flying$Landfall — Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land was a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.| +Akoum Firebird|Prerelease Events|238|M|{2}{R}{R}|Creature - Phoenix|3|3|Flying, haste$Akoum Firebird attacks each turn if able.$Landfall � Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield.| +Akoum Hellkite|Prerelease Events|239|R|{4}{R}{R}|Creature - Dragon|4|4|Flying$Landfall � Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land was a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.| Aligned Hedron Network|Prerelease Events|240|R|{4}|Artifact|||When Aligned Hedron Network enters the battlefield, exile all creatures with power 5 or greater until Aligned Hedron Network leaves the battlefield. (Those creatures return under their owners' control.)| Ally Encampment|Prerelease Events|241|R||Land|||{t}: Add {C} to your mana pool.${t}: Add one mana of any color to your mana pool. Spend this mana only to cast an Ally spell.${1}, {t}, Sacrifice Ally Encampment: Return an Ally you control to its owner's hand.| Angelic Captain|Prerelease Events|242|R|{3}{R}{W}|Creature - Angel Ally|4|3|Flying$Whenever Angelic Captain attacks, it gets +1/+1 until end of turn for each other attacking Ally.| Barrage Tyrant|Prerelease Events|243|R|{4}{R}|Creature - Eldrazi|5|3|Devoid (This card has no color.)${2}{R}, Sacrifice another colorless creature: Barrage Tyrant deals damage equal to the sacrificed creature's power to target creature or player.| Beastcaller Savant|Prerelease Events|244|R|{1}{G}|Creature - Elf Shaman Ally|1|1|Haste${T}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell.| Blight Herder|Prerelease Events|245|R|{5}|Creature - Eldrazi Processor|4|5|When you cast Blight Herder, you may put two cards your opponents own from exile into their owners' graveyards. If you do, put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| -Bring to Light|Prerelease Events|246|R|{3}{G}{U}|Sorcery|||Converge — Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost.| +Bring to Light|Prerelease Events|246|R|{3}{G}{U}|Sorcery|||Converge � Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost.| Brood Butcher|Prerelease Events|247|R|{3}{B}{G}|Creature - Eldrazi Drone|3|3|Devoid (This card has no color.)$When Brood Butcher enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."${B}{G}, Sacrifice a creature: Target creature gets -2/-2 until end of turn.| -Brutal Expulsion|Prerelease Events|248|R|{2}{U}{R}|Instant|||Devoid (This card has no color.)$Choose one or both —$• Return target spell or creature to its owner's hand.$• Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead.| +Brutal Expulsion|Prerelease Events|248|R|{2}{U}{R}|Instant|||Devoid (This card has no color.)$Choose one or both �$� Return target spell or creature to its owner's hand.$� Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead.| Canopy Vista|Prerelease Events|249|R||Land - Forest Plains|||({T}: Add {G} or {W} to your mana pool.)$Canopy Vista enters the battlefield tapped unless you control two or more basic lands.| Cinder Glade|Prerelease Events|250|R||Land - Mountain Forest|||({T}: Add {R} or {G} to your mana pool.)$Cinder Glade enters the battlefield tapped unless you control two or more basic lands.| Conduit of Ruin|Prerelease Events|251|R|{6}|Creature - Eldrazi|5|5|When you cast Conduit of Ruin, you may search your library for a colorless creature card with converted mana cost 7 or greater, reveal it, then shuffle your library and put that card on top of it.$The first creature spell you cast each turn costs {2} less to cast.| @@ -25628,39 +25628,39 @@ Dragonmaster Outcast|Prerelease Events|254|M|{R}|Creature - Human Shaman|1|1|At Drana, Liberator of Malakir|Prerelease Events|255|M|{1}{B}{B}|Legendary Creature - Vampire Ally|2|3|Flying, first strike$Whenever Drana, Liberator of Malakir deals combat damage to a player, put a +1/+1 counter on each attacking creature you control.| Drowner of Hope|Prerelease Events|256|R|{5}{U}|Creature - Eldrazi|5|5|Devoid (This card has no color.)$When Drowner of Hope enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."$Sacrifice an Eldrazi Scion: Tap Target creature.| Dust Stalker|Prerelease Events|257|R|{2}{B}{R}|Creature - Eldrazi|5|3|Devoid (This card has no color.)$Haste$At the beginning of each end step, if you control no other colorless creatures, return Dust Stalker to its owner's hand.| -Emeria Shepherd|Prerelease Events|258|R|{5}{W}{W}|Creature - Angel|4|4|Flying$Landfall — Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead.| +Emeria Shepherd|Prerelease Events|258|R|{5}{W}{W}|Creature - Angel|4|4|Flying$Landfall � Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead.| Endless One|Prerelease Events|259|R|{X}|Creature - Eldrazi|0|0|Endless One enters the battlefield with X +1/+1 counters on it.| -Exert Influence|Prerelease Events|260|R|{4}{U}|Sorcery|||Converge — Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence.| +Exert Influence|Prerelease Events|260|R|{4}{U}|Sorcery|||Converge � Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence.| Fathom Feeder|Prerelease Events|261|R|{U}{B}|Creature - Eldrazi Drone|1|1|Devoid (This creature has no color.)$Deathtouch$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)${3}{U}{B}: Draw a card. Each opponent exiles the top card of his or her library.| Felidar Sovereign|Prerelease Events|262|R|{4}{W}{W}|Creature - Cat Beast|4|6|Vigilance, lifelink$At the beginning of your upkeep, if you have 40 or more life, you win the game.| From Beyond|Prerelease Events|263|R|{3}{G}|Enchantment|||Devoid (This card has no color.)$At the beginning of your upkeep, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."${1}{G}, Sacrifice From Beyond: Search your library for an Eldrazi card, reveal it, put it into your hand, then shuffle your library.| Gideon, Ally of Zendikar|Prerelease Events|264|M|{2}{W}{W}|Planeswalker - Gideon|4|+1: Until end of turn, Gideon, Ally of Zendikar becomes a 5/5 Human Soldier Ally creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.$0: Put a 2/2 white Knight Ally creature token onto the battlefield.$-4: You get an emblem with "Creatures you control get +1/+1."| Greenwarden of Murasa|Prerelease Events|265|M|{4}{G}{G}|Creature - Elemental|5|4|When Greenwarden of Murasa enters the battlefield, you may return target card from your graveyard to your hand.$When Greenwarden of Murasa dies, you may exile it. If you do, you may return target card from your graveyard to your hand.| Gruesome Slaughter|Prerelease Events|266|R|{6}|Sorcery|||Until end of turn, colorless creatures you control gain "{T}: This creature deals damage equal to its power to target creature."| -Guardian of Tazeem|Prerelease Events|267|R|{3}{U}{U}|Creature - Sphinx|4|5|Flying$Landfall — Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. | -Guul Draz Overseer|Prerelease Events|268|R|{4}{B}{B}|Creature - Vampire|3|4|Flying$Landfall — Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead.| -Hero of Goma Fada|Prerelease Events|269|R|{4}{W}|Creature - Human Knight Ally|4|3|Rally — Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| +Guardian of Tazeem|Prerelease Events|267|R|{3}{U}{U}|Creature - Sphinx|4|5|Flying$Landfall � Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. | +Guul Draz Overseer|Prerelease Events|268|R|{4}{B}{B}|Creature - Vampire|3|4|Flying$Landfall � Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead.| +Hero of Goma Fada|Prerelease Events|269|R|{4}{W}|Creature - Human Knight Ally|4|3|Rally � Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| Kiora, Master of the Depths|Prerelease Events|270|M|{2}{G}{U}|Planeswalker - Kiora|4|+1: Untap up to one target creature and up to one target land.$-2: Reveal the top four cards of your library. You may put a creature card and/or a land card from among them into your hand. Put the rest into your graveyard.$-8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may have it fight target creature." Then put three 8/8 blue Octopus creature tokens onto the battlefield under your control.| -Lantern Scout|Prerelease Events|271|R|{2}{W}|Creature - Human Scout Ally|3|2|Rally — Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn.| +Lantern Scout|Prerelease Events|271|R|{2}{W}|Creature - Human Scout Ally|3|2|Rally � Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn.| Lumbering Falls|Prerelease Events|272|R||Land|||Lumbering falls enters the battlefield tapped.${t}: Add {G} or {U} to your mana pool.${2}{G}{U}: Lumbering Falls becomes a 3/3 green and blue Elemental creature with hexproof until end of turn. It's still a land.| March from the Tomb|Prerelease Events|273|R|{3}{W}{B}|Sorcery|||Return any number of target Ally creature cards with total converted mana cost 8 or less from your graveyard to the battlefield.| -Munda, Ambush Leader|Prerelease Events|274|R|{2}{R}{W}|Legendary Creature - Kor Ally|3|4|Haste$Rally — Whenever Munda, Ambush Leader or another Ally enters the battlefield under you control, you may look at the top four cards of your library. If you do, reveal any number of Ally cards from among them, then put those cards on top of your library in any order and the rest on the bottom in any order.| +Munda, Ambush Leader|Prerelease Events|274|R|{2}{R}{W}|Legendary Creature - Kor Ally|3|4|Haste$Rally � Whenever Munda, Ambush Leader or another Ally enters the battlefield under you control, you may look at the top four cards of your library. If you do, reveal any number of Ally cards from among them, then put those cards on top of your library in any order and the rest on the bottom in any order.| Nissa's Renewal|Prerelease Events|275|R|{5}{G}|Sorcery|||Search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library. You gain 7 life.| Noyan Dar, Roil Shaper|Prerelease Events|276|R|{3}{W}{U}|Legendary Creature - Merfolk Ally|4|4|Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.| Ob Nixilis Reignited|Prerelease Events|277|M|{3}{B}{B}|Planeswalker - Nixilis|5|+1: You draw a card and you lose 1 life.$-3: Destroy target creature.$-8: Target opponent gets an emblem with "Whenever a player draws a card, you lose 2 life."| Oblivion Sower|Prerelease Events|278|M|{6}|Creature - Eldrazi|5|8|When you cast Oblivion Sower, target opponent exiles the top four cards of his or her library, then you may put any number of land cards that player owns from exile onto the battlefield under your control.| -Omnath, Locus of Rage|Prerelease Events|279|M|{3}{R}{R}{G}{G}|Legendary Creature - Elemental|5|5|Landfall — Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield.$Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player.| -Oran-Rief Hydra|Prerelease Events|280|R|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| -Painful Truths|Prerelease Events|281|R|{2}{B}|Sorcery|||Converge — You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths.| -Part the Waterveil|Prerelease Events|282|M|{4}{U}{U}|Sorcery|||Take an extra turn after this one. Exile Part the Waterveil.$Awaken 6—{6}{U}{U}{U} (If you cast this spell for {6}{U}{U}{U}, also put six +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Planar Outburst|Prerelease Events|283|R|{3}{W}{W}|Sorcery|||Destroy all nonland creatures.$Awaken 4—{5}{W}{W}{W} (If you cast this spell for {5}{W}{W}{W}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Omnath, Locus of Rage|Prerelease Events|279|M|{3}{R}{R}{G}{G}|Legendary Creature - Elemental|5|5|Landfall � Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield.$Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player.| +Oran-Rief Hydra|Prerelease Events|280|R|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall � Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| +Painful Truths|Prerelease Events|281|R|{2}{B}|Sorcery|||Converge � You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths.| +Part the Waterveil|Prerelease Events|282|M|{4}{U}{U}|Sorcery|||Take an extra turn after this one. Exile Part the Waterveil.$Awaken 6�{6}{U}{U}{U} (If you cast this spell for {6}{U}{U}{U}, also put six +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Planar Outburst|Prerelease Events|283|R|{3}{W}{W}|Sorcery|||Destroy all nonland creatures.$Awaken 4�{5}{W}{W}{W} (If you cast this spell for {5}{W}{W}{W}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Prairie Stream|Prerelease Events|284|R||Land - Plains Island|||({T}: Add {W} or {U} to your mana pool.)$Prairie Stream enters the battlefield tapped unless you control two or more basic lands.| -Prism Array|Prerelease Events|285|R|{4}{U}|Enchantment|||Converge — Prism Array enters the battlfield with a crystal counter on it for each color of mana spent to cast it.$Remove a crystal counter from Prism Array: Tap target creature.${W}{U}{B}{R}{G}: Scry 3. | +Prism Array|Prerelease Events|285|R|{4}{U}|Enchantment|||Converge � Prism Array enters the battlfield with a crystal counter on it for each color of mana spent to cast it.$Remove a crystal counter from Prism Array: Tap target creature.${W}{U}{B}{R}{G}: Scry 3. | Quarantine Field|Prerelease Events|286|M|{X}{X}{W}{W}|Enchantment|||Quarantine Field enters the battlefield with X isolation counters on it.$When Quarantine Field enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until Quarantine Field leaves the battlefield.| -Radiant Flames|Prerelease Events|287|R|{2}{R}|Sorcery|||Converge — Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames.| -Ruinous Path|Prerelease Events|288|R|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.$Awaken 4—{5}{B}{B} (If you cast this spell for {5}{B}{B}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Radiant Flames|Prerelease Events|287|R|{2}{R}|Sorcery|||Converge � Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames.| +Ruinous Path|Prerelease Events|288|R|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.$Awaken 4�{5}{B}{B} (If you cast this spell for {5}{B}{B}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Sanctum of Ugin|Prerelease Events|289|R||Land|||{T}: Add {C} to your mana pool.$Whenever you cast a colorless spell with converted mana cost 7 or greater, you may sacrifice Sanctum of Ugin. If you do, search your library for a colorless creature card, reveal it, put it into your hand, then shuffle your library.| -Scatter to the Winds|Prerelease Events|290|R|{1}{U}{U}|Instant|||Counter target spell.$Awaken 3—{4}{U}{U} (If you cast this spell for {4}{U}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Scatter to the Winds|Prerelease Events|290|R|{1}{U}{U}|Instant|||Counter target spell.$Awaken 3�{4}{U}{U} (If you cast this spell for {4}{U}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Serpentine Spike|Prerelease Events|291|R|{5}{R}{R}|Sorcery|||Devoid (This card has no color.)$Serpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead.| Shambling Vent|Prerelease Events|292|R||Land|||Shambling Vent enters the battlefield tapped.${T}: Add {W} or {B} to your mana pool.${1}{W}{B}: Shambling Vent becomes a 2/3 white and black elemental creature with lifelink until end of turn. It's still a land.| Shrine of the Forsaken Gods|Prerelease Events|293|R||Land|||{t}: Add {C} to your mana pool.${t}: Add {C}{C} to your mana pool. Spend this mana only to cast colorless spells. Activate this ability only if you control seven or more lands.| @@ -25670,11 +25670,11 @@ Smothering Abomination|Prerelease Events|296|R|{2}{B}{B}|Creature - Eldrazi|4|3| Sunken Hollow|Prerelease Events|297|R||Land - Island Swamp|||({T}: Add {U} or {B} to your mana pool.)$Sunken Hollow enters the battlefield tapped unless you control two or more basic lands.| Ugin's Insight|Prerelease Events|298|R|{3}{U}{U}|Sorcery|||Scry X, where X is the highest converted mana cost among permanents you control, then draw three cards.| Ulamog, the Ceaseless Hunger|Prerelease Events|299|M|{1}{0}|Legendary Creature - Eldrazi|10|10|When you cast Ulamog, the Ceaseless Hunger, exile two target permanents.$Indestructible$Whenever Ulamog attacks, defending player exiles the top twenty cards of his or her library.| -Undergrowth Champion|Prerelease Events|300|M|{1}{G}{G}|Creature - Elemental|2|2|If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion.$Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion.| +Undergrowth Champion|Prerelease Events|300|M|{1}{G}{G}|Creature - Elemental|2|2|If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion.$Landfall � Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion.| Veteran Warleader|Prerelease Events|301|R|{1}{G}{W}|Creature - Human Soldier Ally|0|0|Veteran Warleader's power and toughness are each equal to the number of creatures you control.$Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn.| Void Winnower|Prerelease Events|302|M|{9}|Creature - Eldrazi|11|9|Your opponent can't cast spells with even converted mana costs. (Zero is even.)$Your opponents can't block with creatures with even converted mana costs.| Wasteland Strangler|Prerelease Events|303|R|{2}{B}|Creature - Eldrazi Processor|3|2|Devoid (This card has no color.)$When Wasteland Strangler enters the battlefield, you may put a card an opponent owns from exile into that player's graveyard. If you do, target creature gets -3/-3 until end of turn.| -Woodland Wanderer|Prerelease Events|304|R|{3}{G}|Creature - Elemental|2|2|Vigilance, trample$Converge — Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| +Woodland Wanderer|Prerelease Events|304|R|{3}{G}|Creature - Elemental|2|2|Vigilance, trample$Converge � Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| Zada, Hedron Grinder|Prerelease Events|305|R|{3}{R}|Legendary Creature - Goblin Ally|3|3|Whenever you cast an instant or sorcery spell that targets only Zada, Hedron Grinder, copy that spell for each other creature you control that the spell could target. Each copy targets a different one of those creatures.| Scion of Ugin|Dragons of Tarkir|1|U|{6}|Creature - Dragon Spirit|4|4|Flying| Anafenza, Kin-Tree Spirit|Dragons of Tarkir|2|R|{W}{W}|Legendary Creature - Spirit Soldier|2|2|Whenever another nontoken creature enters the battlefield under your control, bolster 1. (Choose a creature with the least toughness among creatures you control and put a +1/+1 counter on it.)| @@ -26018,7 +26018,7 @@ Thrive|Modern Masters 2015 Edition|166|C|{X}{G}|Sorcery|||Put a +1/+1 counter on Tukatongue Thallid|Modern Masters 2015 Edition|167|C|{G}|Creature - Fungus|1|1|When Tukatongue Thallid dies, put a 1/1 green Saproling creature token onto the battlefield.| Vines of Vastwood|Modern Masters 2015 Edition|168|C|{G}|Instant|||Kicker {G} (You may pay an additional {G} as you cast this spell.)$Target creature can't be the target of spells or abilities your opponents control this turn. If Vines of Vastwood was kicked, that creature gets +4/+4 until end of turn.| Wolfbriar Elemental|Modern Masters 2015 Edition|169|R|{2}{G}{G}|Creature - Elemental|4|4|Multikicker {G} (You may pay an additional {G} any number of times as you cast this spell.)$When Wolfbriar Elemental enters the battlefield, put a 2/2 green Wolf creature token onto the battlefield for each time it was kicked.| -Fortify|Modern Masters 2015 Edition|17|C|{2}{W}|Instant|||Choose one -$• Creatures you control get +2/+0 until end of turn.$• Creatures you control get +0/+2 until end of turn.| +Fortify|Modern Masters 2015 Edition|17|C|{2}{W}|Instant|||Choose one -$� Creatures you control get +2/+0 until end of turn.$� Creatures you control get +0/+2 until end of turn.| Agony Warp|Modern Masters 2015 Edition|170|U|{U}{B}|Instant|||Target creature gets -3/-0 until end of turn.$Target creature gets -0/-3 until end of turn.| Apocalypse Hydra|Modern Masters 2015 Edition|171|R|{X}{R}{G}|Creature - Hydra|0|0|Apocalypse Hydra enters the battlefield with X +1/+1 counters on it. If X is 5 or more, it enters the battlefield with an additional X +1/+1 counters on it.${1}{R}, Remove a +1/+1 counter from Apocalypse Hydra: Apocalypse Hydra deals 1 damage to target creature or player.| Boros Swiftblade|Modern Masters 2015 Edition|172|U|{R}{W}|Creature - Human Soldier|1|2|Double strike| @@ -26127,7 +26127,7 @@ Karn Liberated|Modern Masters 2015 Edition|4|M|{7}|Planeswalker - Karn|||+4: Tar Air Servant|Modern Masters 2015 Edition|40|U|{4}{U}|Creature - Elemental|4|3|Flying${2}{U}: Tap target creature with flying.| Argent Sphinx|Modern Masters 2015 Edition|41|R|{2}{U}{U}|Creature - Sphinx|4|3|Flying$Metalcraft - {U}: Exile Argent Sphinx. Return it to the battlefield under your control at the beginning of the next end step. Activate this ability only if you control three or more artifacts.| Cloud Elemental|Modern Masters 2015 Edition|42|C|{2}{U}|Creature - Elemental|2|3|Flying$Cloud Elemental can block only creatures with flying.| -Cryptic Command|Modern Masters 2015 Edition|43|R|{1}{U}{U}{U}|Instant|||Choose two -$• Counter target spell.$• Return target permanent to its owner's hand.$• Tap all creatures your opponents control.$• Draw a card.| +Cryptic Command|Modern Masters 2015 Edition|43|R|{1}{U}{U}{U}|Instant|||Choose two -$� Counter target spell.$� Return target permanent to its owner's hand.$� Tap all creatures your opponents control.$� Draw a card.| Faerie Mechanist|Modern Masters 2015 Edition|44|C|{3}{U}|Artifact Creature - Faerie Artificer|2|2|Flying$When Faerie Mechanist enters the battlefield, look at the top three cards of your library. You may reveal an artifact card from among them and put it into your hand. Put the rest on the bottom of your library in any order.| Flashfreeze|Modern Masters 2015 Edition|45|U|{1}{U}|Instant|||Counter target red or green spell.| Guile|Modern Masters 2015 Edition|46|R|{3}{U}{U}{U}|Creature - Elemental Incarnation|6|6|Guile can't be blocked except by three or more creatures.$If a spell or ability you control would counter a spell, instead exile that spell and you may play that card without paying its mana cost.$When Guile is put into a graveyard from anywhere, shuffle it into its owner's library.| @@ -26179,7 +26179,7 @@ Nameless Inversion|Modern Masters 2015 Edition|87|C|{1}{B}|Tribal Instant - Shap Necroskitter|Modern Masters 2015 Edition|88|R|{1}{B}{B}|Creature - Elemental|1|4|Wither (This deals damage to creatures in the form of -1/-1 counters.)$Whenever a creature an opponent controls with a -1/-1 counter on it dies, you may return that card to the battlefield under your control.| Plagued Rusalka|Modern Masters 2015 Edition|89|C|{B}|Creature - Spirit|1|1|{B}, Sacrifice a creature: Target creature gets -1/-1 until end of turn.| Arrest|Modern Masters 2015 Edition|9|C|{2}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block, and its activated abilities can't be activated.| -Profane Command|Modern Masters 2015 Edition|90|R|{X}{B}{B}|Sorcery|||Choose two -$• Target player loses X life.$• Return target creature card with converted mana cost X or less from your graveyard to the battlefield.$• Target creature gets -X/-X until end of turn.$• Up to X target creatures gain fear until end of turn. (They can't be blocked except by artifact creatures and/or black creatures.)| +Profane Command|Modern Masters 2015 Edition|90|R|{X}{B}{B}|Sorcery|||Choose two -$� Target player loses X life.$� Return target creature card with converted mana cost X or less from your graveyard to the battlefield.$� Target creature gets -X/-X until end of turn.$� Up to X target creatures gain fear until end of turn. (They can't be blocked except by artifact creatures and/or black creatures.)| Puppeteer Clique|Modern Masters 2015 Edition|91|R|{3}{B}{B}|Creature - Faerie Wizard|3|2|Flying$When Puppeteer Clique enters the battlefield, put target creature card from an opponent's graveyard onto the battlefield under your control. It gains haste. At the beginning of your next end step, exile it.$Persist (When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it.)| Reassembling Skeleton|Modern Masters 2015 Edition|92|U|{1}{B}|Creature - Skeleton Warrior|1|1|{1}{B}: Return Reassembling Skeleton from your graveyard to the battlefield tapped.| Scavenger Drake|Modern Masters 2015 Edition|93|U|{3}{B}|Creature - Drake|1|1|Flying$Whenever another creature dies, you may put a +1/+1 counter on Scavenger Drake.| @@ -26224,7 +26224,7 @@ Sigil of the Empty Throne|Magic Origins|31|R|{3}{W}{W}|Enchantment|||Whenever yo Stalwart Aven|Magic Origins|32|C|{2}{W}|Creature - Bird Soldier|1|3|Flying$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)| Starfield of Nyx|Magic Origins|33|M|{4}{W}|Enchantment|||At the beginning of your upkeep, you may return target enchantment card from your graveyard to the battlefield.$As long as you control five or more enchantments, each other non-Aura enchantment you control is a creature in addition to its other types and has base power and base toughness each equal to its converted mana cost.| Suppression Bonds|Magic Origins|34|C|{3}{W}|Enchantment - Aura|||Enchant nonland permanent$Enchanted permanent can't attack or block, and its activated abilities can't be actiated.| -Swift Reckoning|Magic Origins|35|U|{1}{W}|Sorcery|||Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash.$Destroy target tapped creature.| +Swift Reckoning|Magic Origins|35|U|{1}{W}|Sorcery|||Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash.$Destroy target tapped creature.| Topan Freeblade|Magic Origins|36|C|{1}{W}|Creature - Human Soldier|2|2|Vigilance$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)| Totem-Guide Hartebeest|Magic Origins|37|U|{4}{W}|Creature - Antelope|2|5|When Totem-Guide Hartebeest enters the battlefield, you may search your library for an Aura card, reveal it, put it into your hand, then shuffle your library.| Tragic Arrogance|Magic Origins|38|R|{3}{W}{W}|Sorcery|||For each player, you choose from among the permanents that player controls an artifact, a creature, an enchantment, and a planeswalker. Then each player sacrifices all other nonland permanents he or she controls.| @@ -26257,7 +26257,7 @@ Maritime Guard|Magic Origins|63|C|{1}{U}|Creature - Merfolk Soldier|1|3|| Mizzium Meddler|Magic Origins|64|R|{2}{U}|Creature - Vedalken Wizard|1|4|Flash$When Mizzium Meddler enters the battlefield, you may change a target of target spell or ability to Mizzium Meddler.| Negate|Magic Origins|65|C|{1}{U}|Instant|||Counter target noncreature spell.| Nivix Barrier|Magic Origins|66|C|{3}{U}|Creature - Illusion Wall|0|4|Flash$Defender$When Nivix Barrier enters the battlefield, target attacking creature gets -4/-0 until end of turn.| -Psychic Rebuttal|Magic Origins|67|U|{1}{U}|Instant|||Counter target instant or sorcery spell that targets you.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may copy the spell countered this way. You may choose new targets for the copy.| +Psychic Rebuttal|Magic Origins|67|U|{1}{U}|Instant|||Counter target instant or sorcery spell that targets you.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, you may copy the spell countered this way. You may choose new targets for the copy.| Ringwarden Owl|Magic Origins|68|C|{3}{U}{U}|Creature - Bird|3|3|Flying (This creature can't be blocked except by creatures with flying or reach.)$Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)| Scrapskin Drake|Magic Origins|69|C|{2}{U}|Creature - Zombie Drake|2|3|Flying$Scrapskin Drake can block only creatures with flying.| Screeching Skaab|Magic Origins|70|C|{1}{U}|Creature - Zombie|2|1|When Screeching Skaab enters the battlefield, put the top two cards of your library into your graveyard.| @@ -26279,10 +26279,10 @@ Blightcaster|Magic Origins|85|U|{3}{B}|Creature - Human Wizard|2|3|Whenever you Catacomb Slug|Magic Origins|86|C|{4}{B}|Creature - Slug|2|6|| Consecrated By Blood|Magic Origins|87|U|{2}{B}{B}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2 and has flying and "Sacrifice two other creatures: Regenerate this creature." (The next time this creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)| Cruel Revival|Magic Origins|88|U|{4}{B}|Instant|||Destroy target non-Zombie creature. It can't be regenerated. Return up to one target Zombie card from your graveyard to your hand.| -Dark Dabbling|Magic Origins|89|C|{2}{B}|Instant|||Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control.| -Dark Petition|Magic Origins|90|R|{3}{B}{B}|Sorcery|||Search your library for a card and put that card into your hand. Then shuffle your library.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool.| +Dark Dabbling|Magic Origins|89|C|{2}{B}|Instant|||Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control.| +Dark Petition|Magic Origins|90|R|{3}{B}{B}|Sorcery|||Search your library for a card and put that card into your hand. Then shuffle your library.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool.| Deadbridge Shaman|Magic Origins|91|C|{2}{B}|Creature - Elf Shaman|3|1|When Deadbridge Shaman dies, target opponent discards a card.| -Demonic Pact|Magic Origins|92|M|{2}{B}{B}|Enchantment|||At the beginning of your upkeep, choose one that hasn't been chosen —$Demonic Pact deals 4 damage to target creature or player and you gain 4 life.$Target opponent discards two cards.$Draw two cards.$You lose the game.| +Demonic Pact|Magic Origins|92|M|{2}{B}{B}|Enchantment|||At the beginning of your upkeep, choose one that hasn't been chosen �$Demonic Pact deals 4 damage to target creature or player and you gain 4 life.$Target opponent discards two cards.$Draw two cards.$You lose the game.| Despoiler of Souls|Magic Origins|93|R|{B}{B}|Creature - Horror|3|1|Despoiler of Souls can't block.${B}{B}, Exile two other creature cards from your graveyard: Return Despoiler of Souls from your graveyard to the battlefield.| Erebos's Titan|Magic Origins|94|M|{1}{B}{B}{B}|Creature - Giant|5|5|As long as your opponents control no creatures, Erebos's Titan has indestructible.$Whenever a creature card leaves an opponent's graveyard, you may discard a card. If you do, return Erebos's Titan from your graveyard to your hand.| Eyeblight Assassin|Magic Origins|95|C|{2}{B}|Creature - Elf Assassin|2|2|When Eyeblight Assassin enters the battlefield, target creature an opponent controls gets -1/-1 until end of turn.| @@ -26301,7 +26301,7 @@ Liliana, Heretical Healer|Magic Origins|106|M|{1}{B}{B}|Legendary Creature - Hum Macabre Waltz|Magic Origins|107|C|{1}{B}|Sorcery|||Return up to two target creature cards from your graveyard to your hand, then discard a card.| Malakir Cullblade|Magic Origins|108|U|{1}{B}|Creature - Vampire Warrior|1|1|Whenever a creature an opponent controls dies, put a +1/+1 counter on Malakir Cullblade.| Nantuko Husk|Magic Origins|109|C|{2}{B}|Creature - Zombie Insect|2|2|Sacrifice a creature: Nantuko Husk gets +2/+2 until end of turn.| -Necromantic Summons|Magic Origins|110|U|{4}{B}|Sorcery|||Put target creature card from a graveyard onto the battlefield under your control.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it.| +Necromantic Summons|Magic Origins|110|U|{4}{B}|Sorcery|||Put target creature card from a graveyard onto the battlefield under your control.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it.| Nightsnare|Magic Origins|111|C|{3}{B}|Sorcery|||Target opponent reveals his or her hand. You may choose a nonland card from it. If you do, that player discards that card. If you don't, that player discards two cards.| Priest of the Blood Rite|Magic Origins|112|R|{3}{B}{B}|Creature - Human Cleric|2|2|When Priest of the Blood Rite enters the battlefield, put a 5/5 black Demon creature token with flying onto the battlefield.$At the beginning of your upkeep, you lose 2 life.| Rabid Bloodsucker|Magic Origins|113|C|{4}{B}|Creature - Vampire|3|2|Flying$When Rabid Bloodsucker enters the battlefield, each player loses 2 life.| @@ -26335,9 +26335,9 @@ Demolish|Magic Origins|139|C|{3}{R}|Sorcery|||Destroy target artifact or land.| Dragon Fodder|Magic Origins|140|C|{1}{R}|Sorcery|||Put two 1/1 red Goblin creature tokens onto the battlefield.| Embermaw Hellion|Magic Origins|141|R|{3}{R}{R}|Creature - Hellion|4|5|Trample$If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead.| Enthralling Victor|Magic Origins|142|U|{3}{R}|Creature - Human Warrior|3|2|When Enthralling Victor enters the battlefield, gain control of target creature an opponent controls with power 2 or less until end of turn. Untap that creature. It gains haste until end of turn.| -Exquisite Firecraft|Magic Origins|143|R|{1}{R}{R}|Sorcery|||Exquisite Firecraft deals 4 damage to target creature or player. $Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities.| +Exquisite Firecraft|Magic Origins|143|R|{1}{R}{R}|Sorcery|||Exquisite Firecraft deals 4 damage to target creature or player. $Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities.| Fiery Conclusion|Magic Origins|144|U|{1}{R}|Instant|||As an additional cost to cast Fiery Conclusion, sacrifice a creature.$Fiery Conclusion deals 5 damage to target creature.| -Fiery Impulse|Magic Origins|145|C|{R}|Instant|||Fiery Impulse deals 2 damage to target creature.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead.| +Fiery Impulse|Magic Origins|145|C|{R}|Instant|||Fiery Impulse deals 2 damage to target creature.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead.| Firefiend Elemental|Magic Origins|146|C|{3}{R}|Creature - Elemental|3|2|Haste$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)| Flameshadow Conjuring|Magic Origins|147|R|{3}{R}|Enchantment|||Whenever a nontoken creature enters the battlefield under your control, you may pay {R}. If you do, put a token onto the battlefield that's a copy of that creature. That token gains haste. Exile it at the beginning of the next end step.| Ghirapur AEther Grid|Magic Origins|148|U|{2}{R}|Enchantment|||Tap two untapped artifacts you control: Ghirapur AEther Grid deals 1 damage to target creature or player.| @@ -26351,7 +26351,7 @@ Magmatic Insight|Magic Origins|155|U|{R}|Sorcery|||As an additional cost to cast Molten Vortex|Magic Origins|156|R|{R}|Enchantment|||{R}, Discard a land card: Molten Vortex deals 2 damage to target creature or player.| Pia and Kiran Nalaar|Magic Origins|157|R|{2}{R}{R}|Legendary Creature - Human Artificer|2|2|When Pia and Kiran Nalaar enters the battlefield put 2 1/1 colorless Thopter artifact creature tokens with flying onto the battlefield.${2}{R}, Sacrifice an artifact: Pia and Kiran Nalaar deals 2 damage to target creature or player.| Prickleboar|Magic Origins|158|C|{4}{R}|Creature - Boar|3|3|As long as it's your turn, Prickleboar gets +2/+0 and has first strike.| -Ravaging Blaze|Magic Origins|159|U|{X}{R}{R}|Instant|||Ravaging Blaze deals X damage to target creature. $Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller.| +Ravaging Blaze|Magic Origins|159|U|{X}{R}{R}|Instant|||Ravaging Blaze deals X damage to target creature. $Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller.| Scab-Clan Berserker|Magic Origins|160|R|{1}{R}{R}|Creature - Human Berserker|2|2|Haste$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)$Whenever an opponent casts a noncreature spell, if Scab-Clan Berserker is renowned, Scab-Clan Berserker deals 2 damage to that player.| Seismic Elemental|Magic Origins|161|U|{3}{R}{R}|Creature - Elemental|4|4|When Seismic Elemental enters the battlefield, creatures without flying can't block this turn.| Skyraker Giant|Magic Origins|162|U|{2}{R}{R}|Creature - Giant|4|3|Reach| @@ -26363,7 +26363,7 @@ Volcanic Rambler|Magic Origins|167|C|{5}{R}|Creature - Elemental|6|4|{2}{R}: Vol Fiery Hellhound|Magic Origins|284|C|{1}{R}{R}|Creature - Elemental Hound|2|2|{R}: Fiery Hellhound gets +1/+0 until end of turn.| Shivan Dragon|Magic Origins|285|R|{4}{R}{R}|Creature - Dragon|5|5|Flying${R}: Shivan Dragon gets +1/+0 until end of turn.| Aerial Volley|Magic Origins|168|C|{G}|Instant|||Aerial Volley deals 3 damage divided as you choose among one, two, or three target creatures with flying.| -Animist's Awakening|Magic Origins|169|R|{X}{G}|Sorcery|||Reveal the top X cards of your library. Put all land cards from among them onto the battlefield tapped and the rest on the bottom of your library in any order.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, untap those lands.| +Animist's Awakening|Magic Origins|169|R|{X}{G}|Sorcery|||Reveal the top X cards of your library. Put all land cards from among them onto the battlefield tapped and the rest on the bottom of your library in any order.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, untap those lands.| Caustic Caterpillar|Magic Origins|170|C|{G}|Creature - Insect|1|1|{1}{G}, Sacrifice Caustic Caterpillar: Destroy target artifact or enchantment.| Conclave Naturalists|Magic Origins|171|U|{4}{G}|Creature - Dryad|4|4|When Conclave Naturalists enters the battlefield, you may destroy target artifact or enchantment.| Dwynen, Gilt-Leaf Daen|Magic Origins|172|R|{2}{G}{G}|Legendary Creature - Elf Warrior|3|4|Reach$Other Elf creatures you control get +1/+1.$Whenever Dwynen, Gilt-Leaf Daen attacks, you gain 1 life for each attacking Elf you control.| @@ -26372,7 +26372,7 @@ Elemental Bond|Magic Origins|174|U|{2}{G}|Enchantment|||Whenever a creature with Elvish Visionary|Magic Origins|175|C|{1}{G}|Creature - Elf Shaman|1|1|When Elvish Visionary enters the battlefield, draw a card.| Evolutionary Leap|Magic Origins|176|R|{1}{G}|Enchantment|||{G}, Sacrifice a creature: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.| Gaea's Revenge|Magic Origins|177|R|{5}{G}{G}|Creature - Elemental|8|5|Gaea's Revenge can't be countered.$Haste$Gaea's Revenge can't be the target of nongreen spells or abilities from nongreen sources.| -Gather the Pack|Magic Origins|178|U|{1}{G}|Sorcery|||Reveal the top five cards of your library. You may put a creature card from among them into your hand. Put the rest into your graveyard.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, put up to two creature cards from among the revealed cards into your hand instead of one.| +Gather the Pack|Magic Origins|178|U|{1}{G}|Sorcery|||Reveal the top five cards of your library. You may put a creature card from among them into your hand. Put the rest into your graveyard.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, put up to two creature cards from among the revealed cards into your hand instead of one.| The Great Aurora|Magic Origins|179|M|{6}{G}{G}{G}|Sorcery|||Each player shuffles all cards from his or her hand and all permanents he or she owns into his or her library, then draws that many cards. Each player may put any number of land cards from his or her hand onto the battlefield. Exile The Great Aurora.| Herald of the Pantheon|Magic Origins|180|R|{1}{G}|Creature - Centaur Shaman|2|2|Enchantment spells you cast cost {1} less to cast.$Whenever you cast an enchantment spell, you gain 1 life.| Hitchclaw Recluse|Magic Origins|181|C|{2}{G}|Creature - Spider|1|4|Reach| @@ -26385,7 +26385,7 @@ Mantle of Webs|Magic Origins|187|C|{1}{G}|Enchantment - Aura|||Enchant Creature$ Might of the Masses|Magic Origins|188|C|{G}|Instant|||Target creature gets +1/+1 until end of turn for each creature you control.| Nissa, Sage Animist|Magic Origins|189|M||Planeswalker - Nissa|3|+1: Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand.$-2: Put a legendary 4/4 green Elemental creature token named Ashaya, the Awoken World onto the battlefield.$-7: Untap up to six target lands. They become 6/6 Elemental creatures. They're still lands.| Nissa, Vastwood Seer|Magic Origins|189|M|{2}{G}|Legendary Creature - Elf Scout|2|2|When Nissa, Vastwood Seer enters the battlefield, you may search your library for a basic Forest card, reveal it, put it into your hand, then shuffle your library.$Whenever a land enters the battlefield under your control, if you control seven or more lands, exile Nissa, then return her to the battlefield transformed under her owner's control.| -Nissa's Pilgrimage|Magic Origins|190|C|{2}{G}|Sorcery|||Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library.$Spell Mastery — If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two.| +Nissa's Pilgrimage|Magic Origins|190|C|{2}{G}|Sorcery|||Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library.$Spell Mastery � If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two.| Nissa's Revelation|Magic Origins|191|R|{5}{G}{G}|Sorcery|||Scry 5, then reveal the top card of your library. If it's a creature card, you draw cards equal to its power and you gain life equal to its toughness.| Orchard Spirit|Magic Origins|192|C|{2}{G}|Creature - Spirit|2|2|Orchard Spirit can't be blocked except by creatures with flying or reach.| Outland Colossus|Magic Origins|193|R|{3}{G}{G}|Creature - Giant|6|6|Renown 6 (When this creature deals combat damage to a player, if it isn't renowned, put six +1/+1 counters on it and it becomes renowned.)$Outland Colossus can't be blocked by more than one creature.| @@ -26766,7 +26766,7 @@ Surrakar Banisher|Duel Decks: Elspeth vs. Kiora|43|C|{4}{U}|Creature - Surrakar| Whelming Wave|Duel Decks: Elspeth vs. Kiora|44|R|{2}{U}{U}|Sorcery|||Return all creatures to their owners' hands except for Krakens, Leviathans, Octopuses, and Serpents.| Explore|Duel Decks: Elspeth vs. Kiora|45|C|{1}{G}|Sorcery|||You may play an additional land this turn.$Draw a card.| Explosive Vegetation|Duel Decks: Elspeth vs. Kiora|46|U|{3}{G}|Sorcery|||Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library.| -Grazing Gladehart|Duel Decks: Elspeth vs. Kiora|47|C|{2}{G}|Creature - Antelope|2|2|Landfall — Whenever a land enters the battlefield under your control, you may gain 2 life.| +Grazing Gladehart|Duel Decks: Elspeth vs. Kiora|47|C|{2}{G}|Creature - Antelope|2|2|Landfall � Whenever a land enters the battlefield under your control, you may gain 2 life.| Nessian Asp|Duel Decks: Elspeth vs. Kiora|48|C|{4}{G}|Creature - Snake|4|5|Reach${6}{G}: Monstrosity 4. (If this creature isn't monstrous, put four +1/+1 counters on it and it becomes monstrous.)| Netcaster Spider|Duel Decks: Elspeth vs. Kiora|49|C|{2}{G}|Creature - Spider|2|3|Reach (This creature can block creatures with flying.)$Whenever Netcaster Spider blocks a creature with flying, Netcaster Spider gets +2/+0 until end of turn.| Time to Feed|Duel Decks: Elspeth vs. Kiora|50|C|{2}{G}|Sorcery|||Choose target creature an opponent controls. When that creature dies this turn, you gain 3 life. Target creature you control fights that creature. (Each deals damage equal to its power to the other.)| @@ -26837,7 +26837,7 @@ Day of Judgment|Magic Player Rewards|49|Special|{2}{W}{W}|Sorcery|||Destroy all Brave the Elements|Magic Player Rewards|50|Special|{W}|Instant|||Choose a color. White creatures you control gain protection from the chosen color until end of turn.| Doom Blade|Magic Player Rewards|51|Special|{1}{B}|Instant|||Destroy target nonblack creature.| Treasure Hunt|Magic Player Rewards|52|Special|{1}{U}|Sorcery|||Reveal cards from the top of your library until you reveal a nonland card, then put all cards revealed this way into your hand.| -Searing Blaze|Magic Player Rewards|53|Special|{R}{R}|Instant|||Searing Blaze deals 1 damage to target player and 1 damage to target creature that player controls.$Landfall — If you had a land enter the battlefield under your control this turn, Searing Blaze deals 3 damage to that player and 3 damage to that creature instead.| +Searing Blaze|Magic Player Rewards|53|Special|{R}{R}|Instant|||Searing Blaze deals 1 damage to target player and 1 damage to target creature that player controls.$Landfall � If you had a land enter the battlefield under your control this turn, Searing Blaze deals 3 damage to that player and 3 damage to that creature instead.| Angelic Blessing|Tempest Remastered|1|C|{2}{W}|Sorcery|||Target creature gets +3/+3 and gains flying until end of turn.| Angelic Protector|Tempest Remastered|2|U|{3}{W}|Creature - Angel|2|2|Flying$Whenever Angelic Protector becomes the target of a spell or ability, Angelic Protector gets +0/+3 until end of turn.| Anoint|Tempest Remastered|3|C|{W}|Instant|||Buyback {3} (You may pay an additional {3} as you cast this spell. If you do, put this card into your hand as it resolves.)$Prevent the next 3 damage that would be dealt to target creature this turn.| @@ -27362,7 +27362,7 @@ Beastbreaker of Bala Ged|Duel Decks: Zendikar vs. Eldrazi|10|U|{1}{G}|Creature - Daggerback Basilisk|Duel Decks: Zendikar vs. Eldrazi|11|C|{2}{G}|Creature - Basilisk|2|2|Deathtouch| Frontier Guide|Duel Decks: Zendikar vs. Eldrazi|12|U|{1}{G}|Creature - Elf Scout|1|1|{3}{G}, {tap}: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Graypelt Hunter|Duel Decks: Zendikar vs. Eldrazi|13|C|{3}{G}|Creature - Human Warrior Ally|2|2|Trample$Whenever Graypelt Hunter or another Ally enters the battlefield under your control, you may put a +1/+1 counter on Graypelt Hunter.| -Grazing Gladehart|Duel Decks: Zendikar vs. Eldrazi|14|C|{2}{G}|Creature - Antelope|2|2|Landfall — Whenever a land enters the battlefield under your control, you may gain 2 life.| +Grazing Gladehart|Duel Decks: Zendikar vs. Eldrazi|14|C|{2}{G}|Creature - Antelope|2|2|Landfall � Whenever a land enters the battlefield under your control, you may gain 2 life.| Groundswell|Duel Decks: Zendikar vs. Eldrazi|15|C|{G}|Instant|||Target creature gets +2/+2 until end of turn.$Landfall - If you had a land enter the battlefield under your control this turn, that creature gets +4/+4 until end of turn instead.| Harrow|Duel Decks: Zendikar vs. Eldrazi|16|C|{2}{G}|Instant|||As an additional cost to cast Harrow, sacrifice a land.$Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library.| Joraga Bard|Duel Decks: Zendikar vs. Eldrazi|17|C|{3}{G}|Creature - Elf Rogue Ally|1|4|Whenever Joraga Bard or another Ally enters the battlefield under your control, you may have Ally creatures you control gain vigilance until end of turn.| @@ -27445,8 +27445,8 @@ Angel of Renewal|Battle for Zendikar|018|U|{5}{W}|Creature - Angel Ally|4|4|Flyi Angelic Gift|Battle for Zendikar|019|C|{1}{W}|Enchantment - Aura|||Enchant creature$When Angelic Gift enters the battlefield, draw a card.$Enchanted creature has flying.| Cliffside Lookout|Battle for Zendikar|020|C|{W}|Creature - Kor Scout Ally|1|1|{4}{W}: Creatures you control get +1/+1 until end of turn.| Courier Griffin|Battle for Zendikar|020|C|{3}{W}|Creature - Griffin|2|3|Flying$When Courier Griffin enters the battlefield, you gain 2 life.| -Emeria Shepherd|Battle for Zendikar|22|R|{5}{W}{W}|Creature - Angel|4|4|Flying$Landfall — Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead.| -Encircling Fissure|Battle for Zendikar|023|U|{2}{W}|Instant|||Prevent all combat damage that would be dealt this turn by creatures target opponent controls.$Awaken 2 —{4}{W} (If you cast this spell for 5U, also put two +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Emeria Shepherd|Battle for Zendikar|22|R|{5}{W}{W}|Creature - Angel|4|4|Flying$Landfall � Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead.| +Encircling Fissure|Battle for Zendikar|023|U|{2}{W}|Instant|||Prevent all combat damage that would be dealt this turn by creatures target opponent controls.$Awaken 2 �{4}{W} (If you cast this spell for 5U, also put two +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Expedition Envoy|Battle for Zendikar|024|U|{W}|Creature - Human Scout Ally|2|1|| Felidar Cub|Battle for Zendikar|25|C|{1}{W}|Creature - Cat Beast|2|2|Sacrifice Felidar Cub: Destroy target enchantment.| Felidar Sovereign|Battle for Zendikar|26|R|{4}{W}{W}|Creature - Cat Beast|4|6|Vigilance, lifelink$At the beginning of your upkeep, if you have 40 or more life, you win the game.| @@ -27454,64 +27454,64 @@ Fortified Rampart|Battle for Zendikar|027|C|{1}{W}|Creature - Wall|0|6|Defender| Ghostly Sentinel|Battle for Zendikar|028|C|{4}{W}|Creature - Kor Spirit|3|3|Flying, vigilance| Gideon, Ally of Zendikar|Battle for Zendikar|29|M|{2}{W}{W}|Planeswalker - Gideon|4|+1: Until end of turn, Gideon, Ally of Zendikar becomes a 5/5 Human Soldier Ally creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.$0: Put a 2/2 white Knight Ally creature token onto the battlefield.$-4: You get an emblem with "Creatures you control get +1/+1."| Gideon's Reproach|Battle for Zendikar|30|C|{1}{W}|Instant|||Gideon's Reproach deals 4 damage to target attacking or blocking creature.| -Hero of Goma Fada|Battle for Zendikar|31|R|{4}{W}|Creature - Human Knight Ally|4|3|Rally — Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| +Hero of Goma Fada|Battle for Zendikar|31|R|{4}{W}|Creature - Human Knight Ally|4|3|Rally � Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| Inspired Charge|Battle for Zendikar|032|C|{2}{W}{W}|Instant|||Creatures you control get +2/+1 until end of turn.| Kitesail Scout|Battle for Zendikar|033|C|{W}|Creature - Kor Scout|1|1|Flying| -Kor Bladewhirl|Battle for Zendikar|034|U|{1}{W}|Creature - Kor Soldier Ally|2|2|Rally — Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn.| +Kor Bladewhirl|Battle for Zendikar|034|U|{1}{W}|Creature - Kor Soldier Ally|2|2|Rally � Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn.| Kor Castigator|Battle for Zendikar|035|C|{1}{W}|Creature - Kor Wizard Ally|3|1|Kor Castigator can't be blocked by Eldrazi Scions.| -Kor Entanglers|Battle for Zendikar|036|U|{4}{W}|Creature - Kor Soldier Ally|3|4|Rally — Whenever Kor Entanglers or another Ally enters the battlefield under your control, tap target creature an opponent controls.| -Lantern Scout|Battle for Zendikar|37|R|{2}{W}|Creature - Human Scout Ally|3|2|Rally — Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn.| +Kor Entanglers|Battle for Zendikar|036|U|{4}{W}|Creature - Kor Soldier Ally|3|4|Rally � Whenever Kor Entanglers or another Ally enters the battlefield under your control, tap target creature an opponent controls.| +Lantern Scout|Battle for Zendikar|37|R|{2}{W}|Creature - Human Scout Ally|3|2|Rally � Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn.| Lithomancer's Focus|Battle for Zendikar|038|C|{W}|Instant|||Target creature gets +2/+2 until end of turn. Prevent all damage that would be dealt to that creature this turn by colorless sources.| -Makindi Patrol|Battle for Zendikar|039|C|{2}{W}|Creature - Human Knight Ally|2|3|Rally — Whenever Makindi Patrol or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn.| -Ondu Greathorn|Battle for Zendikar|040|C|{3}{W}|Creature - Beast|2|3|First strike$Landfall — Whenever a land enters the battlefield under your control, Ondu Greathorn gets +2/+2 until end of turn.| -Ondu Rising|Battle for Zendikar|041|U|{1}{W}|Sorcery|||Whenever a creature attacks this turn, it gains lifelink until end of turn.$Awaken 4—{4}{W} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Planar Outburst|Battle for Zendikar|42|R|{3}{W}{W}|Sorcery|||Destroy all nonland creatures.$Awaken 4—{5}{W}{W}{W} (If you cast this spell for {5}{W}{W}{W}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Makindi Patrol|Battle for Zendikar|039|C|{2}{W}|Creature - Human Knight Ally|2|3|Rally � Whenever Makindi Patrol or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn.| +Ondu Greathorn|Battle for Zendikar|040|C|{3}{W}|Creature - Beast|2|3|First strike$Landfall � Whenever a land enters the battlefield under your control, Ondu Greathorn gets +2/+2 until end of turn.| +Ondu Rising|Battle for Zendikar|041|U|{1}{W}|Sorcery|||Whenever a creature attacks this turn, it gains lifelink until end of turn.$Awaken 4�{4}{W} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Planar Outburst|Battle for Zendikar|42|R|{3}{W}{W}|Sorcery|||Destroy all nonland creatures.$Awaken 4�{5}{W}{W}{W} (If you cast this spell for {5}{W}{W}{W}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Quarantine Field|Battle for Zendikar|43|M|{X}{X}{W}{W}|Enchantment|||Quarantine Field enters the battlefield with X isolation counters on it.$When Quarantine Field enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until Quarantine Field leaves the battlefield.| -Retreat to Emeria|Battle for Zendikar|44|U|{3}{W}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Put a 1/1 white Kor Ally creature token onto the battlefield.$• Creatures you control get +1/+1 until end of turn.| +Retreat to Emeria|Battle for Zendikar|44|U|{3}{W}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Put a 1/1 white Kor Ally creature token onto the battlefield.$� Creatures you control get +1/+1 until end of turn.| Roil's Retribution|Battle for Zendikar|045|U|{3}{W}{W}|Instant|||Roil's Retribution deals 5 damage divided as you choose among any number of target attacking or blocking creatures.| Serene Steward|Battle for Zendikar|046|U|{1}{W}|Creature - Human Cleric Ally|2|2|Whenever you gain life, you may pay {W}. If you do, put a +1/+1 counter on target creature.| Shadow Glider|Battle for Zendikar|047|C|{2}{W}|Creature - Kor Soldier|2|2|Flying| -Sheer Drop|Battle for Zendikar|48|C|{2}{W}|Sorcery|||Destroy target tapped creature.$Awaken 3—{5}{W} (If you cast this spell for {5}{W}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Sheer Drop|Battle for Zendikar|48|C|{2}{W}|Sorcery|||Destroy target tapped creature.$Awaken 3�{5}{W} (If you cast this spell for {5}{W}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Smite the Monstrous|Battle for Zendikar|049|C|{3}{W}|Instant|||Destroy target creature with power 4 or greater.| Stasis Snare|Battle for Zendikar|50|U|{1}{W}{W}|Enchantment|||Flash$When Stasis Snare enters the battlefield, exile target creature an opponent controls until Stasis Snare leaves the battlefield. (That creature returns under its owner's control.)| Stone Haven Medic|Battle for Zendikar|051|C|{1}{W}|Creature - Kor Cleric|1|3|{W}, {t}: You gain 1 life.| Tandem Tactics|Battle for Zendikar|52|C|{1}{W}|Instant|||Up to two target creatures each get +1/+2 until end of turn. You gain 2 life.| -Unified Front|Battle for Zendikar|053|U|{3}{W}|Sorcery|||Converge — Put a 1/1 white Kor Ally creature token onto the battlefield for each color of mana spent to cast Unified Front.| +Unified Front|Battle for Zendikar|053|U|{3}{W}|Sorcery|||Converge � Put a 1/1 white Kor Ally creature token onto the battlefield for each color of mana spent to cast Unified Front.| Adverse Conditions|Battle for Zendikar|54|U|{3}{U}|Instant|||Devoid (This card has no color.)$Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Anticipate|Battle for Zendikar|69|C|{1}{U}|Instant|||Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.| Benthic Infiltrator|Battle for Zendikar|55|C|{2}{U}|Creature - Eldrazi Drone|1|4|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)$Benthic Infiltrator can't be blocked.| -Brilliant Spectrum|Battle for Zendikar|70|C|{3}{U}|Sorcery|||Converge — Draw X cards, where X is the number of colors of mana spent to cast Brilliant Spectrum. Then discard two cards.| +Brilliant Spectrum|Battle for Zendikar|70|C|{3}{U}|Sorcery|||Converge � Draw X cards, where X is the number of colors of mana spent to cast Brilliant Spectrum. Then discard two cards.| Cloud Manta|Battle for Zendikar|71|C|{3}{U}|Creature - Fish|3|2|Flying| -Clutch of Currents|Battle for Zendikar|72|C|{U}|Sorcery|||Return target creature to its owner's hand.$Awaken 3—{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Coastal Discovery|Battle for Zendikar|073|U|{3}{U}|Sorcery|||Draw two cards.$Awaken 4—{5}{U} (If you cast this spell for {5}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Clutch of Currents|Battle for Zendikar|72|C|{U}|Sorcery|||Return target creature to its owner's hand.$Awaken 3�{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Coastal Discovery|Battle for Zendikar|073|U|{3}{U}|Sorcery|||Draw two cards.$Awaken 4�{5}{U} (If you cast this spell for {5}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Coralhelm Guide|Battle for Zendikar|74|C|{1}{U}|Creature - Merfolk Scout Ally|2|1|{4}{U}: Target creature can't be blocked this turn.| Cryptic Cruiser|Battle for Zendikar|56|U|{3}{U}|Creature - Eldrazi Processor|3|3|Devoid (This card has no color.)${2}{U}, Put a card an opponent owns from exile into that player's graveyard: Tap target creature.| Dampening Pulse|Battle for Zendikar|75|U|{3}{U}|Enchantment|||Creatures your opponents control get -1/-0.| Dispel|Battle for Zendikar|76|C|{U}|Instant|||Counter target instant spell.| Drowner of Hope|Battle for Zendikar|057|R|{5}{U}|Creature - Eldrazi|5|5|Devoid (This card has no color.)$When Drowner of Hope enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."$Sacrifice an Eldrazi Scion: Tap Target creature.| Eldrazi Skyspawner|Battle for Zendikar|58|C|{2}{U}|Creature - Eldrazi Drone|2|1|Devoid (This card has no color.)$Flying$When Eldrazi Skyspawner enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| -Exert Influence|Battle for Zendikar|077|R|{4}{U}|Sorcery|||Converge — Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence.| -Guardian of Tazeem|Battle for Zendikar|078|R|{3}{U}{U}|Creature - Sphinx|4|5|Flying$Landfall — Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. | +Exert Influence|Battle for Zendikar|077|R|{4}{U}|Sorcery|||Converge � Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence.| +Guardian of Tazeem|Battle for Zendikar|078|R|{3}{U}{U}|Creature - Sphinx|4|5|Flying$Landfall � Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. | Halimar Tidecaller|Battle for Zendikar|79|U|{2}{U}|Creature - Human Wizard Ally|2|3|When Halimar Tidecaller enters the battlefield, you may return target card with awaken from your graveyard to your hand.$Land creatures you control have flying.| Horribly Awry|Battle for Zendikar|059|U|{1}{U}|Instant|||Devoid (This card has no color.)$Counter target creature spell with converted mana cost 4 or less. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.| Incubator Drone|Battle for Zendikar|060|C|{3}{U}|Creature - Eldrazi Drone|2|3|Devoid (This card has no color.)$When Incubator Drone enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Mist Intruder|Battle for Zendikar|061|C|{1}{U}|Creature - Eldrazi Drone|1|2|Devoid (This card has no color.)$Flying$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)| Murk Strider|Battle for Zendikar|62|C|{3}{U}|Creature - Eldrazi Processor|3|2|When Murk Strider enters the battlefield, you may put a card an opponent owns from exile into that player's graveyard. If you do, return target creature to its owner's hand.| Oracle of Dust|Battle for Zendikar|63|C|{4}{U}|Creature - Eldrazi Processor|3|5|Devoid (This card has no color.)${2}, Put a card an opponent owns from exile into that player's graveyard: Draw a card, then discard a card.| -Part the Waterveil|Battle for Zendikar|80|M|{4}{U}{U}|Sorcery|||Take an extra turn after this one. Exile Part the Waterveil.$Awaken 6—{6}{U}{U}{U} (If you cast this spell for {6}{U}{U}{U}, also put six +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Prism Array|Battle for Zendikar|081|R|{4}{U}|Enchantment|||Converge — Prism Array enters the battlfield with a crystal counter on it for each color of mana spent to cast it.$Remove a crystal counter from Prism Array: Tap target creature.${W}{U}{B}{R}{G}: Scry 3. | -Retreat to Coralhelm|Battle for Zendikar|082|U|{2}{U}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• You may tap or untap target creature.$• Scry 1.| -Roilmage's Trick|Battle for Zendikar|83|C|{3}{U}|Instant|||Converge — Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast Roilmage's Trick.$Draw a card.| +Part the Waterveil|Battle for Zendikar|80|M|{4}{U}{U}|Sorcery|||Take an extra turn after this one. Exile Part the Waterveil.$Awaken 6�{6}{U}{U}{U} (If you cast this spell for {6}{U}{U}{U}, also put six +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Prism Array|Battle for Zendikar|081|R|{4}{U}|Enchantment|||Converge � Prism Array enters the battlfield with a crystal counter on it for each color of mana spent to cast it.$Remove a crystal counter from Prism Array: Tap target creature.${W}{U}{B}{R}{G}: Scry 3. | +Retreat to Coralhelm|Battle for Zendikar|082|U|{2}{U}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� You may tap or untap target creature.$� Scry 1.| +Roilmage's Trick|Battle for Zendikar|83|C|{3}{U}|Instant|||Converge � Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast Roilmage's Trick.$Draw a card.| Ruination Guide|Battle for Zendikar|64|U|{2}{U}|Creature - Eldrazi Drone|3|2|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)$Other colorless creatures you control get +1/+0.| -Rush of Ice|Battle for Zendikar|84|C|{U}|Sorcery|||Tap target creature. It doesn't untap during its controller's next untap step.$Awaken 3—{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Rush of Ice|Battle for Zendikar|84|C|{U}|Sorcery|||Tap target creature. It doesn't untap during its controller's next untap step.$Awaken 3�{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Salvage Drone|Battle for Zendikar|65|C|{U}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)$When Salvage Drone dies, you may draw a card. If you do, discard a card.| -Scatter to the Winds|Battle for Zendikar|85|R|{1}{U}{U}|Instant|||Counter target spell.$Awaken 3—{4}{U}{U} (If you cast this spell for {4}{U}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Scatter to the Winds|Battle for Zendikar|85|R|{1}{U}{U}|Instant|||Counter target spell.$Awaken 3�{4}{U}{U} (If you cast this spell for {4}{U}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Spell Shrivel|Battle for Zendikar|66|C|{2}{U}|Instant|||Devoid (This card has no color.)$Counter target spell unless its controller pays {4}. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.| Tide Drifter|Battle for Zendikar|67|U|{1}{U}|Creature - Eldrazi Drone|0|5|Devoid (This card has no color.)$Other colorless creatures you control get +0/+1.| Tightening Coils|Battle for Zendikar|86|C|{1}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature gets -6/-0 and loses flying.| Ugin's Insight|Battle for Zendikar|087|R|{3}{U}{U}|Sorcery|||Scry X, where X is the highest converted mana cost among permanents you control, then draw three cards.| Ulamog's Reclaimer|Battle for Zendikar|68|U|{4}{U}|Creature - Eldrazi Processor|2|5|Devoid (This card has no color.)$When Ulamog's Reclaimer enters the battlefield, you may put a card an opponent owns from exile into that player's graveyard. If you do, return target instant or sorcery card from your graveyard to your hand.| -Wave-Wing Elemental|Battle for Zendikar|088|C|{5}{U}|Creature - Elemental|3|4|Flying$Landfall — Whenver a land enters the battlefield under your control, Wave-Wing Elemental gets +2/+2 until end of turn.| +Wave-Wing Elemental|Battle for Zendikar|088|C|{5}{U}|Creature - Elemental|3|4|Flying$Landfall � Whenver a land enters the battlefield under your control, Wave-Wing Elemental gets +2/+2 until end of turn.| Windrider Patrol|Battle for Zendikar|089|U|{3}{U}{U}|Creature - Merfolk Wizard|4|3|Flying$Whenever Windrider Patrol deals combat damage to a player, scry 2.| Altar's Reap|Battle for Zendikar|103|C|{1}{B}|Instant|||As an additional cost to cast Altar's Reap, sacrifice a creature.$Draw two cards.| Bloodbond Vampire|Battle for Zendikar|104|U|{2}{B}{B}|Creature - Vampire Shaman Ally|3|3|Whenever you gain life, put a +1/+1 counter on Bloodbond Vampire.| @@ -27527,7 +27527,7 @@ Dutiful Return|Battle for Zendikar|110|C|{3}{B}|Sorcery|||Return up to two targe Geyserfield Stalker|Battle for Zendikar|111|C|{4}{B}|Creature - Elemental|3|2|Menace$Landfall - Whenever a land enters the battlefield under your control, Geyserfield Stalker gets +2/+2 until end of turn.| Grave Birthing|Battle for Zendikar|93|C|{2}{B}|Instant|||Devoid (This card has no color.)$Target opponent exiles a card from his or her graveyard. You put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."$Draw a card.| Grip of Desolation|Battle for Zendikar|94|U|{4}{B}{B}|Intant|||Devoid (This card has no color.)$Exile target creature and target land.| -Guul Draz Overseer|Battle for Zendikar|112|R|{4}{B}{B}|Creature - Vampire|3|4|Flying$Landfall — Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead.| +Guul Draz Overseer|Battle for Zendikar|112|R|{4}{B}{B}|Creature - Vampire|3|4|Flying$Landfall � Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead.| Hagra Sharpshooter|Battle for Zendikar|113|U|{2}{B}|Creature - Human Assassin Ally|2|2|{4}{B}: Target creature gets -1/-1 until end of turn.| Kalastria Healer|Battle for Zendikar|114|C|{1}{B}|Creature - Vampire Cleric Ally|1|2|Rally - Whenever Kalastria Healer or another Ally enters the battlefield under your control, each opponent loses 1 life and you gain 1 life.| Kalastria Nightwatch|Battle for Zendikar|115|C|{4}{B}|Creature - Vampire Warrior Ally|4|5|Whenever you gain life, Kalastria Nightwatch gains flying until end of turn.| @@ -27536,10 +27536,10 @@ Mind Raker|Battle for Zendikar|95|C|{3}{B}|Creature - Eldrazi Processor|3|3|Devo Mire's Malice|Battle for Zendikar|117|C|{3}{B}|Sorcery|||Target opponent discards two cards.$Awaken 3 - {5}{B} (If you cast this spell for {5}{B}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Nirkana Assassin|Battle for Zendikar|118|C|{2}{B}|Creature - Vampire Assassin Ally|2|3|Whenever you gain life, Nirkana Assassin gains deathtouch until end of turn.| Ob Nixilis Reignited|Battle for Zendikar|119|M|{3}{B}{B}|Planeswalker - Nixilis|5|+1: You draw a card and you lose 1 life.$-3: Destroy target creature.$-8: Target opponent gets an emblem with "Whenever a player draws a card, you lose 2 life."| -Painful Truths|Battle for Zendikar|120|R|{2}{B}|Sorcery|||Converge — You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths.| -Retreat to Hagra|Battle for Zendikar|121|U|{2}{B}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Target creature gets +1/+0 and gains deathtouch until end of turn.$• Each opponent loses 1 life and you gain 1 life.| +Painful Truths|Battle for Zendikar|120|R|{2}{B}|Sorcery|||Converge � You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths.| +Retreat to Hagra|Battle for Zendikar|121|U|{2}{B}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Target creature gets +1/+0 and gains deathtouch until end of turn.$� Each opponent loses 1 life and you gain 1 life.| Rising Miasma|Battle for Zendikar|122|U|{3}{B}|Sorcery|||All creatures get -2/-2 until end of turn. $Awaken 3 - {5}{B}{B} (If you cast this spell for {5}{B}{B}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Ruinous Path|Battle for Zendikar|123|R|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.$Awaken 4—{5}{B}{B} (If you cast this spell for {5}{B}{B}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Ruinous Path|Battle for Zendikar|123|R|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.$Awaken 4�{5}{B}{B} (If you cast this spell for {5}{B}{B}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Silent Skimmer|Battle for Zendikar|96|C|{3}{B}|Creature - Eldrazi Drone|0|4|Devoid (This card has no color.)$Flying$Whenever Silent Skimmer attacks, defending player loses 2 life.| Skitterskin|Battle for Zendikar|97|U|{3}{B}|Creature - Eldrazi Drone|4|3|Devoid (This card has no color.)$Skitterskin can't block.${1}{B}: Regenerate Skitterskin. Activate this ability only if you control another colorless creature.| Sludge Crawler|Battle for Zendikar|98|C|{B}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, exile the top card of his or her library)${2}: Sludge Crawler gets +1/+1 until end of turn.| @@ -27550,28 +27550,28 @@ Vampiric Rites|Battle for Zendikar|124|U|{B}|Enchantment|||{1}{B}, Sacrifice a c Voracious Null|Battle for Zendikar|125|C|{2}{B}|Creature - Zombie|2|2|{1}{B}, Sacrifice another creature: Put two +1/+1 counters on Voracious Null. Activate this ability only any time you could cast a sorcery.| Wasteland Strangler|Battle for Zendikar|102|R|{2}{B}|Creature - Eldrazi Processor|3|2|Devoid (This card has no color.)$When Wasteland Strangler enters the battlefield, you may put a card an opponent owns from exile into that player's graveyard. If you do, target creature gets -3/-3 until end of turn.| Zulaport Cutthroat|Battle for Zendikar|126|U|{1}{B}|Creature - Human Rogue Ally|1|1|Whenever Zulaport Cutthroat or another creature you control dies, each opponent loses 1 life and you gain 1 life.| -Akoum Firebird|Battle for Zendikar|138|M|{2}{R}{R}|Creature - Phoenix|3|3|Flying, haste$Akoum Firebird attacks each turn if able.$Landfall — Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield.| -Akoum Hellkite|Battle for Zendikar|139|R|{4}{R}{R}|Creature - Dragon|4|4|Flying$Landfall — Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land was a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.| -Akoum Stonewaker|Battle for Zendikar|140|U|{1}{R}|Creature - Human Shaman|2|1|Landfall — Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step.| +Akoum Firebird|Battle for Zendikar|138|M|{2}{R}{R}|Creature - Phoenix|3|3|Flying, haste$Akoum Firebird attacks each turn if able.$Landfall � Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield.| +Akoum Hellkite|Battle for Zendikar|139|R|{4}{R}{R}|Creature - Dragon|4|4|Flying$Landfall � Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land was a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.| +Akoum Stonewaker|Battle for Zendikar|140|U|{1}{R}|Creature - Human Shaman|2|1|Landfall � Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step.| Barrage Tyrant|Battle for Zendikar|127|R|{4}{R}|Creature - Eldrazi|5|3|Devoid (This card has no color.)${2}{R}, Sacrifice another colorless creature: Barrage Tyrant deals damage equal to the sacrificed creature's power to target creature or player.| -Belligerent Whiptail|Battle for Zendikar|141|C|{3}{R}|Creature - Wurm|4|2|Landfall — Whenever a land enters the battlefield under your control, Belligerent Whiptail gains first strike until end of turn.| -Boiling Earth|Battle for Zendikar|142|C|{1}{R}|Sorcery|||Boiling Earth deals 1 damage to each creature your opponents control.$Awaken 4—{6}{R} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Chasm Guide|Battle for Zendikar|143|U|{3}{R}|Creature - Goblin Scout Ally|3|2|Rally — Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn.| +Belligerent Whiptail|Battle for Zendikar|141|C|{3}{R}|Creature - Wurm|4|2|Landfall � Whenever a land enters the battlefield under your control, Belligerent Whiptail gains first strike until end of turn.| +Boiling Earth|Battle for Zendikar|142|C|{1}{R}|Sorcery|||Boiling Earth deals 1 damage to each creature your opponents control.$Awaken 4�{6}{R} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Chasm Guide|Battle for Zendikar|143|U|{3}{R}|Creature - Goblin Scout Ally|3|2|Rally � Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn.| Crumble to Dust|Battle for Zendikar|128|U|{3}{R}|Sorcery|||Devoid (This card has no color.)$Exile target nonbasic land. Search it's controller's graveyard, hand and library for any number of cards with the same name as that land and exile them. Then that player shuffles his or her library.| Dragonmaster Outcast|Battle for Zendikar|144|M|{R}|Creature - Human Shaman|1|1|At the beginning of your upkeep, if you control six or more lands, put a 5/5 red Dragon creature token with flying onto the battlefield.| -Firemantle Mage|Battle for Zendikar|145|U|{2}{R}|Creature - Human Shaman Ally|2|2|Rally — Whenver Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn.| +Firemantle Mage|Battle for Zendikar|145|U|{2}{R}|Creature - Human Shaman Ally|2|2|Rally � Whenver Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn.| Goblin War Paint|Battle for Zendikar|146|C|{1}{R}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2 and has haste.| Kozilek's Sentinel|Battle for Zendikar|129|C|{1}{R}|Creature - Eldrazi Drone|1|4|Devoid (This card has no color.)$Whenever you cast a colorless spell, Kozilek's Sentinel gets +1/+0 until end of turn.| Lavastep Raider|Battle for Zendikar|147|C|{R}|Creature - Goblin Warrior|1|1|{2}{R}: Lavastep Raider gets +2/+0 until end of turn.| -Makindi Sliderunner|Battle for Zendikar|148|C|{1}{R}|Creature - Beast|2|1|Trample$Landfall — Whenever a land enters the battlefield under your control, Makindi Sliderunner gets +1/+1 until end of turn.| +Makindi Sliderunner|Battle for Zendikar|148|C|{1}{R}|Creature - Beast|2|1|Trample$Landfall � Whenever a land enters the battlefield under your control, Makindi Sliderunner gets +1/+1 until end of turn.| Molten Nursery|Battle for Zendikar|130|U|{2}{R}|Enchantment|||Devoid (This card has no color.)$Whenever you cast a colorless spell, Molten Nursery deals 1 damage to target creature or player.| Nettle Drone|Battle for Zendikar|131|C|{2}{R}|Creature - Eldrazi Drone|3|1|Devoid (This card has no color.)${t}: Nettle Drone deals 1 damage to each opponent.$Whenever you cast a colorless spell, untap Nettle Drone.| -Ondu Champion|Battle for Zendikar|149|C|{2}{R}{R}|Creature - Minotaur Warrior Ally|4|3|Rally — Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn.| +Ondu Champion|Battle for Zendikar|149|C|{2}{R}{R}|Creature - Minotaur Warrior Ally|4|3|Rally � Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn.| Outnumber|Battle for Zendikar|150|C|{R}|Instant|||Outnumber deals damage to target creature equal to the number of creatures you control.| Processor Assault|Battle for Zendikar|132|U|{1}{R}|Sorcery|||Devoid (This card has no color.)$As an additional cost to cast Processor Assault, put a card an opponent owns from exile into its owner's graveyard.$Processor Assault deals 5 damage to target creature.| -Radiant Flames|Battle for Zendikar|151|R|{2}{R}|Sorcery|||Converge — Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames.| +Radiant Flames|Battle for Zendikar|151|R|{2}{R}|Sorcery|||Converge � Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames.| Reckless Cohort|Battle for Zendikar|152|C|{1}{R}|Creature - Human Warrior Ally|2|2|Reckless Cohort attacks each combat if able unless you control another Ally.| -Retreat to Valakut|Battle for Zendikar|153|U|{2}{R}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Target creature gets +2/+0 until end of turn.$• Target creature can't block this turn.| +Retreat to Valakut|Battle for Zendikar|153|U|{2}{R}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Target creature gets +2/+0 until end of turn.$� Target creature can't block this turn.| Rolling Thunder|Battle for Zendikar|154|U|{X}{R}{R}|Sorcery|||Rolling Thunder deals X damage divided as you choose among any number of target creatures and/or players.| Serpentine Spike|Battle for Zendikar|133|R|{5}{R}{R}|Sorcery|||Devoid (This card has no color.)$Serpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead.| Shatterskull Recruit|Battle for Zendikar|155|C|{3}{R}{R}|Creature - Giant Warrior Ally|4|4|Menace| @@ -27602,47 +27602,47 @@ Lifespring Druid|Battle for Zendikar|177|C|{2}{G}|Creature - Elf Druid|2|1|{T}: Murasa Ranger|Battle for Zendikar|178|U|{3}{G}|Creature - Human Warrior|3|3|Landfall - Whenever a land enters the battlefield under your control, you may pay {3}{G}. IF you do, put two +1/+1 counters on Murasa Ranger.| Natural Connection|Battle for Zendikar|179|C|{2}{G}|Instant|||Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| Nissa's Renewal|Battle for Zendikar|180|R|{5}{G}|Sorcery|||Search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library. You gain 7 life.| -Oran-Rief Hydra|Battle for Zendikar|181|R|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| +Oran-Rief Hydra|Battle for Zendikar|181|R|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall � Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| Oran-Rief Invoker|Battle for Zendikar|182|C|{1}{G}|Creature - Human Shaman|2|2|{8}: Oran-Rief Invoker gets +5/+5 and gains trample until end of turn.| Plated Crusher|Battle for Zendikar|183|U|{4}{G}{G}{G}|Creature - Beast|7|6|Trample, hexproof| Plummet|Battle for Zendikar|184|C|{1}{G}|Instant|||Destroy target creature with flying.| Reclaiming Vines|Battle for Zendikar|185|C|{2}{G}{G}|Sorcery|||Destroy target artifact, enchantment, or land.| -Retreat to Kazandu|Battle for Zendikar|186|U|{2}{G}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Put a +1/+1 counter on target creature.$• You gain 2 life.| +Retreat to Kazandu|Battle for Zendikar|186|U|{2}{G}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Put a +1/+1 counter on target creature.$� You gain 2 life.| Rot Shambler|Battle for Zendikar|187|U|{1}{G}|Creature - Fungus|1|1|Whenever another creature you control dies, put a +1/+1 counter on Rot Shambler.| -Scythe Leopard|Battle for Zendikar|188|U|{G}|Creature - Cat|1|1|Landfall — Whenever a land enters the battlefield under your control, Scythe Leopard gets +1/+1 until end of turn.| +Scythe Leopard|Battle for Zendikar|188|U|{G}|Creature - Cat|1|1|Landfall � Whenever a land enters the battlefield under your control, Scythe Leopard gets +1/+1 until end of turn.| Seek the Wilds|Battle for Zendikar|189|C|{1}{G}|Sorcery|||Look at the top four cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in any order.| -Snapping Gnarlid|Battle for Zendikar|190|C|{1}{G}|Creature - Beast|2|2|Landfall — Whenever a land enters the battlefield under your control, Snapping Gnarlid gets +1/+1 until end of turn.| +Snapping Gnarlid|Battle for Zendikar|190|C|{1}{G}|Creature - Beast|2|2|Landfall � Whenever a land enters the battlefield under your control, Snapping Gnarlid gets +1/+1 until end of turn.| Swell of Growth|Battle for Zendikar|191|C|{1}{G}|Instant|||Target creature gets +2/+2 until end of turn. You may put a land card from your hand onto the battlefield.| Sylvan Scrying|Battle for Zendikar|192|U|{1}{G}|Sorcery|||Search your library for a land card, reveal it, and put it into your hand. Then shuffle your library.| Tajuru Beastmaster|Battle for Zendikar|193|C|{5}{G}|Creature - Elf Warrior Ally|5|5|Rally - Whenever Tajuru Beastmaster or another Ally creature enters the battlefield under your control, creatures you control get +1/+1 until end of turn.| Tajuru Stalwart|Battle for Zendikar|194|C|{2}{G}|Creature - Elf Scout Ally|0|1|Converge - Tajuru Stalwart enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| -Tajuru Warcaller|Battle for Zendikar|195|U|{3}{G}{G}|Creature - Elf Warrior Ally|2|1|Rally — Whenever Tajuru Warcaller or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn.| +Tajuru Warcaller|Battle for Zendikar|195|U|{3}{G}{G}|Creature - Elf Warrior Ally|2|1|Rally � Whenever Tajuru Warcaller or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn.| Territorial Baloth|Battle for Zendikar|196|C|{4}{G}|Creature - Beast|4|4|Landfall - Whenever a land enters the battlefield under your control, Territorial Baloth gets +2/+2 until end of turn.| -Undergrowth Champion|Battle for Zendikar|197|M|{1}{G}{G}|Creature - Elemental|2|2|If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion.$Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion.| +Undergrowth Champion|Battle for Zendikar|197|M|{1}{G}{G}|Creature - Elemental|2|2|If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion.$Landfall � Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion.| Unnatural Aggression|Battle for Zendikar|168|C|{2}{G}|Instant|||Devoid (This card has no color.)$Target creature you control fights target creature an opponent controls. If the creature an opponent controls would die this turn, exile it instead.| Void Attendant|Battle for Zendikar|169|U|{2}{G}|Creature - Eldrazi Processor|2|3|Devoid (This card has no color.)${1}{G}, Put a card an opponent owns from exile into that player's graveyard: Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| -Woodland Wanderer|Battle for Zendikar|198|R|{3}{G}|Creature - Elemental|2|2|Vigilance, trample$Converge — Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| +Woodland Wanderer|Battle for Zendikar|198|R|{3}{G}|Creature - Elemental|2|2|Vigilance, trample$Converge � Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| Angelic Captain|Battle for Zendikar|208|R|{3}{R}{W}|Creature - Angel Ally|4|3|Flying$Whenever Angelic Captain attacks, it gets +1/+1 until end of turn for each other attacking Ally.| -Bring to Light|Battle for Zendikar|209|R|{3}{G}{U}|Sorcery|||Converge — Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost.| +Bring to Light|Battle for Zendikar|209|R|{3}{G}{U}|Sorcery|||Converge � Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost.| Brood Butcher|Battle for Zendikar|199|R|{3}{B}{G}|Creature - Eldrazi Drone|3|3|Devoid (This card has no color.)$When Brood Butcher enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."${B}{G}, Sacrifice a creature: Target creature gets -2/-2 until end of turn.| -Brutal Expulsion|Battle for Zendikar|200|R|{2}{U}{R}|Instant|||Devoid (This card has no color.)$Choose one or both —$• Return target spell or creature to its owner's hand.$• Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead.| +Brutal Expulsion|Battle for Zendikar|200|R|{2}{U}{R}|Instant|||Devoid (This card has no color.)$Choose one or both �$� Return target spell or creature to its owner's hand.$� Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead.| Catacomb Sifter|Battle for Zendikar|201|U|{1}{B}{G}|Creature - Eldrazi Drone|2|3|Devoid (This card has no color.)$When Catacomb Sifter enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: add {C} to your mana pool."$Whenever another creature you control dies, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)| Drana's Emissary|Battle for Zendikar|210|U|{1}{W}{B}|Creature - Vampire Cleric Ally|2|2|Flying$At the beginning of your upkeep, each opponent loses 1 life and you gain 1 life.| Dust Stalker|Battle for Zendikar|202|R|{2}{B}{R}|Creature - Eldrazi|5|3|Devoid (This card has no color.)$Haste$At the beginning of each end step, if you control no other colorless creatures, return Dust Stalker to its owner's hand.| Fathom Feeder|Battle for Zendikar|203|R|{U}{B}|Creature - Eldrazi Drone|1|1|Devoid (This creature has no color.)$Deathtouch$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)${3}{U}{B}: Draw a card. Each opponent exiles the top card of his or her library.| Forerunner of Slaughter|Battle for Zendikar|204|U|{B}{R}|Creature - Eldrazi Drone|3|2|Devoid (This card has no color.)${1}: Target colorless creature gains haste until end of turn.| -Grove Rumbler|Battle for Zendikar|211|U|{2}{R}{G}|Creature - Elemental|3|3|Trample$Landfall — Whenever a land enters the battlefield under your control, Grove Rumbler gets +2/+2 until end of turn.| -Grovetender Druids|Battle for Zendikar|212|U|{2}{G}{W}|Creature - Elf Druid Ally|3|3|Rally — Whenever Grovetender Druids or another Ally enters the battlefield under your control, you may pay {1}. If you do, put a 1/1 green Plant creature token onto the battlefield.| +Grove Rumbler|Battle for Zendikar|211|U|{2}{R}{G}|Creature - Elemental|3|3|Trample$Landfall � Whenever a land enters the battlefield under your control, Grove Rumbler gets +2/+2 until end of turn.| +Grovetender Druids|Battle for Zendikar|212|U|{2}{G}{W}|Creature - Elf Druid Ally|3|3|Rally � Whenever Grovetender Druids or another Ally enters the battlefield under your control, you may pay {1}. If you do, put a 1/1 green Plant creature token onto the battlefield.| Herald of Kozilek|Battle for Zendikar|205|U|{1}{U}{R}|Creature - Eldrazi Drone|2|4|Devoid (This card has no color.)$Colorless spells you cast cost {1} less.| Kiora, Master of the Depths|Battle for Zendikar|213|M|{2}{G}{U}|Planeswalker - Kiora|4|+1: Untap up to one target creature and up to one target land.$-2: Reveal the top four cards of your library. You may put a creature card and/or a land card from among them into your hand. Put the rest into your graveyard.$-8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may have it fight target creature." Then put three 8/8 blue Octopus creature tokens onto the battlefield under your control.| March from the Tomb|Battle for Zendikar|214|R|{3}{W}{B}|Sorcery|||Return any number of target Ally creature cards with total converted mana cost 8 or less from your graveyard to the battlefield.| -Munda, Ambush Leader|Battle for Zendikar|215|R|{2}{R}{W}|Legendary Creature - Kor Ally|3|4|Haste$Rally — Whenever Munda, Ambush Leader or another Ally enters the battlefield under you control, you may look at the top four cards of your library. If you do, reveal any number of Ally cards from among them, then put those cards on top of your library in any order and the rest on the bottom in any order.| +Munda, Ambush Leader|Battle for Zendikar|215|R|{2}{R}{W}|Legendary Creature - Kor Ally|3|4|Haste$Rally � Whenever Munda, Ambush Leader or another Ally enters the battlefield under you control, you may look at the top four cards of your library. If you do, reveal any number of Ally cards from among them, then put those cards on top of your library in any order and the rest on the bottom in any order.| Noyan Dar, Roil Shaper|Battle for Zendikar|216|R|{3}{W}{U}|Legendary Creature - Merfolk Ally|4|4|Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.| -Omnath, Locus of Rage|Battle for Zendikar|217|M|{3}{R}{R}{G}{G}|Legendary Creature - Elemental|5|5|Landfall — Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield.$Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player.| -Resolute Blademaster|Battle for Zendikar|218|U|{3}{R}{W}|Creature - Human Soldier Ally|2|2|Rally — Whenever Resolute Blademaster or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn.| -Roil Spout|Battle for Zendikar|219|U|{1}{W}{U}|Sorcery|||Put target creature on top of its owner's library.$Awaken 4—{4}{W}{U} (If you cast this spell for {4}{W}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Omnath, Locus of Rage|Battle for Zendikar|217|M|{3}{R}{R}{G}{G}|Legendary Creature - Elemental|5|5|Landfall � Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield.$Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player.| +Resolute Blademaster|Battle for Zendikar|218|U|{3}{R}{W}|Creature - Human Soldier Ally|2|2|Rally � Whenever Resolute Blademaster or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn.| +Roil Spout|Battle for Zendikar|219|U|{1}{W}{U}|Sorcery|||Put target creature on top of its owner's library.$Awaken 4�{4}{W}{U} (If you cast this spell for {4}{W}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Sire of Stagnation|Battle for Zendikar|206|M|{4}{U}{B}|Creature - Eldrazi|5|7|Devoid (This card has no color.)$Whenever a land enters the battlefield under an opponent's control, that player exiles the top two cards of his or her library and you draw two cards.| -Skyrider Elf|Battle for Zendikar|220|U|{X}{G}{U}|Creature - Elf Warrior Ally|0|0|Flying$Converge — Skyrider Elf enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| +Skyrider Elf|Battle for Zendikar|220|U|{X}{G}{U}|Creature - Elf Warrior Ally|0|0|Flying$Converge � Skyrider Elf enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| Ulamog's Nullifier|Battle for Zendikar|207|U|{2}{U}{B}|Creature - Eldrazi Processor|2|3|Devoid (This card has no color.)$Flash$Flying$When Ulamog's Nullifier enters the battlefield, you may put two cards your opponents own from exile into their owners' graveyards. If you do, counter target spell.| Veteran Warleader|Battle for Zendikar|221|R|{1}{G}{W}|Creature - Human Soldier Ally|0|0|Veteran Warleader's power and toughness are each equal to the number of creatures you control.$Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn.| Aligned Hedron Network|Battle for Zendikar|222|R|{4}|Artifact|||When Aligned Hedron Network enters the battlefield, exile all creatures with power 5 or greater until Aligned Hedron Network leaves the battlefield. (Those creatures return under their owners' control.)| @@ -27743,7 +27743,7 @@ Sever the Bloodline|Commander 2015|136|R|{3}{B}|Sorcery|||Exile target creature Shriekmaw|Commander 2015|137|U|{4}{B}|Creature - Elemental|3|2|Fear (This creature can't be blocked except by artifact creatures and/or black creatures.)$When Shriekmaw enters the battlefield, destroy target nonartifact, nonblack creature.$Evoke {1}{B} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.)| Underworld Connections|Commander 2015|138|R|{1}{B}{B}|Enchantment - Aura|||Enchant land$Enchanted land has "{tap}, Pay 1 life: Draw a card."| Victimize|Commander 2015|139|U|{2}{B}|Sorcery|||Choose two target creature cards in your graveyard. Sacrifice a creature. If you do, return the chosen cards to the battlefield tapped.| -Mystic Confluence|Commander 2015|14|R|{3}{U}{U}|Instant|||Choose three. You may choose the same mode more than once.$• Counter target spell unless its controller pays {3}.$• Return target creature to its owner's hand.$• Draw a card.| +Mystic Confluence|Commander 2015|14|R|{3}{U}{U}|Instant|||Choose three. You may choose the same mode more than once.$� Counter target spell unless its controller pays {3}.$� Return target creature to its owner's hand.$� Draw a card.| Vow of Malice|Commander 2015|140|U|{2}{B}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2, has intimidate, and can't attack you or a planeswalker you control. (A creature with intimidate can't be blocked except by artifact creatures and/or creatures that share a color with it.)| Act of Aggression|Commander 2015|141|U|{3}{RP}{RP}|Instant|||({RP} can be paid with either {R} or 2 life.)$Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.| Borderland Behemoth|Commander 2015|142|R|{5}{R}{R}|Creature - Giant Warrior|4|4|Trample$Borderland Behemoth gets +4/+4 for each other Giant you control.| @@ -27834,7 +27834,7 @@ Firemind's Foresight|Commander 2015|218|R|{5}{U}{R}|Instant|||Search your librar Gisela, Blade of Goldnight|Commander 2015|219|M|{4}{R}{W}{W}|Legendary Creature - Angel|5|5|Flying, first strike$If a source would deal damage to an opponent or a permanent an opponent controls, that source deals double that damage to that player or permanent instead.$If a source would deal damage to you or a permanent you control, prevent half that damage, rounded up.| Thief of Blood|Commander 2015|22|U|{4}{B}{B}|Creature - Vampire|1|1|Flying$As Thief of Blood enters the battlefield, remove all counters from all permanents. Thief of Blood enters the battlefield with a +1/+1 counter on it for each counter removed this way.| Goblin Electromancer|Commander 2015|220|C|{U}{R}|Creature - Goblin Wizard|2|2|Instant and sorcery spells you cast cost {1} less to cast.| -Golgari Charm|Commander 2015|221|U|{B}{G}|Instant|||Choose one -$• All creatures get -1/-1 until end of turn.$• Destroy target enchantment.$• Regenerate each creature you control.| +Golgari Charm|Commander 2015|221|U|{B}{G}|Instant|||Choose one -$� All creatures get -1/-1 until end of turn.$� Destroy target enchantment.$� Regenerate each creature you control.| Grisly Salvage|Commander 2015|222|C|{B}{G}|Instant|||Reveal the top five cards of your library. You may put a creature or land card from among them into your hand. Put the rest into your graveyard.| Jarad, Golgari Lich Lord|Commander 2015|223|M|{B}{B}{G}{G}|Legendary Creature - Zombie Elf|2|2|Jarad, Golgari Lich Lord gets +1/+1 for each creature card in your graveyard.${1}{B}{G}, Sacrifice another creature: Each opponent loses life equal to the sacrificed creature's power.$Sacrifice a Swamp and a Forest: Return Jarad from your graveyard to your hand.| Korozda Guildmage|Commander 2015|224|U|{B}{G}|Creature - Elf Shaman|2|2|{1}{B}{G}: Target creature gets +1/+1 and gains intimidate until end of turn. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.)${2}{B}{G}, Sacrifice a nontoken creature: Put X 1/1 green Saproling creature tokens onto the battlefield, where X is the sacrificed creature's toughness.| @@ -27843,7 +27843,7 @@ Lotleth Troll|Commander 2015|226|R|{B}{G}|Creature - Zombie Troll|2|1|Trample$Di Melek, Izzet Paragon|Commander 2015|227|R|{4}{U}{R}|Legendary Creature - Weird Wizard|2|4|Play with the top card of your library revealed.$You may cast the top card of your library if it's an instant or sorcery card.$Whenever you cast an instant or sorcery spell from your library, copy it. You may choose new targets for the copy.| Mystic Snake|Commander 2015|228|R|{1}{G}{U}{U}|Creature - Snake|2|2|Flash$When Mystic Snake enters the battlefield, counter target spell.| Necromancer's Covenant|Commander 2015|229|R|{3}{W}{B}{B}|Enchantment|||When Necromancer's Covenant enters the battlefield, exile all creature cards from target player's graveyard, then put a 2/2 black Zombie creature token onto the battlefield for each card exiled this way.$Zombies you control have lifelink.| -Wretched Confluence|Commander 2015|23|R|{3}{B}{B}|Instant|||Choose three. You may choose the same mode more than once.$• Target player draws a card and loses 1 life.$• Target creature gets -2/-2 until end of turn.$• Return target creature card from your graveyard to your hand.| +Wretched Confluence|Commander 2015|23|R|{3}{B}{B}|Instant|||Choose three. You may choose the same mode more than once.$� Target player draws a card and loses 1 life.$� Target creature gets -2/-2 until end of turn.$� Return target creature card from your graveyard to your hand.| Prime Speaker Zegana|Commander 2015|230|M|{2}{G}{G}{U}{U}|Legendary Creature - Merfolk Wizard|1|1|Prime Speaker Zegana enters the battlefield with X +1/+1 counters on it, where X is the greatest power among other creatures you control.$When Prime Speaker Zegana enters the battlefield, draw cards equal to its power.| Prophetic Bolt|Commander 2015|231|R|{3}{U}{R}|Instant|||Prophetic Bolt deals 4 damage to target creature or player. Look at the top four cards of your library. Put one of those cards into your hand and the rest on the bottom of your library in any order.| Putrefy|Commander 2015|232|U|{1}{B}{G}|Instant|||Destroy target artifact or creature. It can't be regenerated.| @@ -27876,7 +27876,7 @@ Izzet Signet|Commander 2015|256|C|{2}|Artifact|||{1}, {tap}: Add {U}{R} to your Lightning Greaves|Commander 2015|257|U|{2}|Artifact - Equipment|||Equipped creature has haste and shroud. (It can't be the target of spells or abilities.)$Equip {0}| Loxodon Warhammer|Commander 2015|258|R|{3}|Artifact - Equipment|||Equipped creature gets +3/+0 and has trample and lifelink.$Equip {3}| Mind Stone|Commander 2015|259|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| -Fiery Confluence|Commander 2015|26|R|{2}{R}{R}|Sorcery|||Choose three. You may choose the same mode more than once.$• Fiery Confluence deals 1 damage to each creature.$• Fiery Confluence deals 2 damage to each opponent.$• Destroy target artifact.| +Fiery Confluence|Commander 2015|26|R|{2}{R}{R}|Sorcery|||Choose three. You may choose the same mode more than once.$� Fiery Confluence deals 1 damage to each creature.$� Fiery Confluence deals 2 damage to each opponent.$� Destroy target artifact.| Orochi Hatchery|Commander 2015|260|R|{X}{X}|Artifact|||Orochi Hatchery enters the battlefield with X charge counters on it.${5}, {tap}: Put a 1/1 green Snake creature token onto the battlefield for each charge counter on Orochi Hatchery.| Orzhov Cluestone|Commander 2015|261|C|{3}|Artifact|||{tap}: Add {W} or {B} to your mana pool.${W}{B}, {tap}, Sacrifice Orzhov Cluestone: Draw a card.| Orzhov Signet|Commander 2015|262|C|{2}|Artifact|||{1}, {tap}: Add {W}{B} to your mana pool.| @@ -27975,7 +27975,7 @@ Great Oak Guardian|Commander 2015|37|U|{5}{G}|Creature - Treefolk|4|5|Flash ( Pathbreaker Ibex|Commander 2015|38|R|{4}{G}{G}|Creature - Goat|3|3|Whenever Pathbreaker Ibex attacks, creatures you control gain trample and get +X/+X until end of turn, where X is the greatest power among creatures you control.| Skullwinder|Commander 2015|39|U|{2}{G}|Creature - Snake|1|3|Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$When Skullwinder enters the battlefield, return target card from your graveyard to your hand, then choose an opponent. That player returns a card from his or her graveyard to his or her hand.| Herald of the Host|Commander 2015|4|U|{3}{W}{W}|Creature - Angel|4|4|Flying, vigilance$Myriad (Whenever this creature attacks, for each opponent other than defending player, you may put a token that's a copy of this creature onto the battlefield tapped and attacking that player or a planeswalker he or she controls. Exile the tokens at end of combat.)| -Verdant Confluence|Commander 2015|40|R|{4}{G}{G}|Sorcery|||Choose three. You may choose the same mode more than once.$• Put two +1/+1 counters on target creature.$• Return target permanent card from your graveyard to your hand.$• Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| +Verdant Confluence|Commander 2015|40|R|{4}{G}{G}|Sorcery|||Choose three. You may choose the same mode more than once.$� Put two +1/+1 counters on target creature.$� Return target permanent card from your graveyard to your hand.$� Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| Anya, Merciless Angel|Commander 2015|41|M|{3}{R}{W}|Legendary Creature - Angel|4|4|Flying$Anya, Merciless Angel gets +3/+3 for each opponent whose life total is less than half his or her starting life total.$As long as an opponent's life total is less than half his or her starting life total, Anya has indestructible.| Arjun, the Shifting Flame|Commander 2015|42|M|{4}{U}{R}|Legendary Creature - Sphinx Wizard|5|5|Flying$Whenever you cast a spell, put the cards in your hand on the bottom of your library in any order, then draw that many cards.| Daxos the Returned|Commander 2015|43|M|{1}{W}{B}|Legendary Creature - Zombie Soldier|2|2|Whenever you cast an enchantment spell, you get an experience counter.${1}{W}{B}: Put a white and black Spirit enchantment creature token onto the battlefield. It has "This creature's power and toughness are each equal to the number of experience counters you have."| @@ -28003,11 +28003,11 @@ Cage of Hands|Commander 2015|62|C|{2}{W}|Enchantment - Aura|||Enchant creature$E Celestial Ancient|Commander 2015|63|R|{3}{W}{W}|Creature - Elemental|3|3|Flying$Whenever you cast an enchantment spell, put a +1/+1 counter on each creature you control.| Celestial Archon|Commander 2015|64|R|{3}{W}{W}|Enchantment Creature - Archon|4|4|Bestow {5}{W}{W} (If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature.)$Flying, first strike$Enchanted creature gets +4/+4 and has flying and first strike.| Crib Swap|Commander 2015|65|U|{2}{W}|Tribal Instant - Shapeshifter|||Changeling (This card is every creature type at all times.)$Exile target creature. Its controller puts a 1/1 colorless Shapeshifter creature token with changeling onto the battlefield.| -Dawn to Dusk|Commander 2015|66|U|{2}{W}{W}|Sorcery|||Choose one or both -$• Return target enchantment card from your graveyard to your hand.$• Destroy target enchantment.| +Dawn to Dusk|Commander 2015|66|U|{2}{W}{W}|Sorcery|||Choose one or both -$� Return target enchantment card from your graveyard to your hand.$� Destroy target enchantment.| Dawnglare Invoker|Commander 2015|67|C|{2}{W}|Creature - Kor Wizard|2|1|Flying${8}: Tap all creatures target player controls.| Dictate of Heliod|Commander 2015|68|R|{3}{W}{W}|Enchantment|||Flash$Creatures you control get +2/+2.| Faith's Fetters|Commander 2015|69|C|{3}{W}|Enchantment - Aura|||Enchant permanent$When Faith's Fetters enters the battlefield, you gain 4 life.$Enchanted permanent's activated abilities can't be activated unless they're mana abilities. If enchanted permanent is a creature, it can't attack or block.| -Righteous Confluence|Commander 2015|7|R|{3}{W}{W}|Sorcery|||Choose three. You may choose the same mode more than once.$• Put a 2/2 white Knight creature token with vigilance onto the battlefield.$• Exile target enchantment.$• You gain 5 life.| +Righteous Confluence|Commander 2015|7|R|{3}{W}{W}|Sorcery|||Choose three. You may choose the same mode more than once.$� Put a 2/2 white Knight creature token with vigilance onto the battlefield.$� Exile target enchantment.$� You gain 5 life.| Ghostblade Eidolon|Commander 2015|70|U|{2}{W}|Enchantment Creature - Spirit|1|1|Bestow {5}{W} (If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature.)$Double strike (This creature deals both first-strike and regular combat damage.)$Enchanted creature gets +1/+1 and has double strike.| Jareth, Leonine Titan|Commander 2015|71|R|{3}{W}{W}{W}|Legendary Creature - Cat Giant|4|7|Whenever Jareth, Leonine Titan blocks, it gets +7/+7 until end of turn.${W}: Jareth gains protection from the color of your choice until end of turn.| Karmic Justice|Commander 2015|72|R|{2}{W}|Enchantment|||Whenever a spell or ability an opponent controls destroys a noncreature permanent you control, you may destroy target permanent that opponent controls.| @@ -53679,11 +53679,11 @@ Dromoka, the Eternal|Media Inserts|132|Special|{3}{G}{W}|Legendary Creature - Dr Siege Rhino|Media Inserts|133|Special|{1}{W}{B}{G}|Creature - Rhino|4|5|Trample$When Siege Rhino enters the battlefield, each opponent loses 3 life and you gain 3 life.| Sandsteppe Citadel|Media Inserts|134|Special||Land|||Sandsteppe Citadel enters the battlefield tapped.${tap}: Add {W}, {B}, or {G} to your mana pool.| Ruinous Path|Media Inserts|135|Special|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.$Awaken 4-{5}{B}{B} (If you cast this spell for {5}{B}{B}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Hero of Goma Fada|Media Inserts|136|Special|{4}{W}|Creature - Human Knight Ally|4|3|Rally — Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| +Hero of Goma Fada|Media Inserts|136|Special|{4}{W}|Creature - Human Knight Ally|4|3|Rally � Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| Drowner of Hope|Media Inserts|137|Special|{5}{U}|Creature - Eldrazi|5|5|Devoid (This card has no color.)$When Drowner of Hope enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."$Sacrifice an Eldrazi Scion: Tap Target creature.| Defiant Bloodlord|Media Inserts|138|Special|{5}{B}{B}|Creature - Vampire|4|5|Flying$Whenever you gain life, target opponent loses that much life.| Barrage Tyrant|Media Inserts|139|Special|{4}{R}|Creature - Eldrazi|5|3|Devoid (This card has no color.)${2}{R}, Sacrifice another colorless creature: Barrage Tyrant deals damage equal to the sacrificed creature's power to target creature or player.| -Oran-Rief Hydra|Media Inserts|140|Special|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| +Oran-Rief Hydra|Media Inserts|140|Special|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall � Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| Scythe Leopard|Media Inserts|141|Special|{G}|Creature - Cat|1|1|Landfall-Whenever a land enters the battlefield under your control, Scythe Leopard gets +1/+1 until end of turn.| Genesis Hydra|Media Inserts|142|Special|{X}{G}{G}|Creature - Plant Hydra|0|0|When you cast Genesis Hydra, reveal the top X cards of your library. You may put a nonland permanent card with converted mana cost X or less from among them onto the battlefield. Then shuffle the rest into your library.$Genesis Hydra enters the battlefield with X +1/+1 counters on it.| Munda's Vanguard|Media Inserts|143|R|{4}{W}|Creature - Kor Knight Ally|3|3|Cohort — {T}, Tap an untapped Ally you control: Put a +1/+1 counter on each creature you control.| @@ -53712,71 +53712,71 @@ Chandra, Roaring Flame|Media Inserts|997|Special||Planeswalker - Chandra|4|+1: C Nissa, Vastwood Seer|Media Inserts|998|Special|{2}{G}|Legendary Creature - Elf Scout|2|2|When Nissa, Vastwood Seer enters the battlefield, you may search your library for a basic Forest card, reveal it, put it into your hand, then shuffle your library.$Whenever a land enters the battlefield under your control, if you control seven or more lands, exile Nissa, then return her to the battlefield transformed under her owner's control.| Nissa, Sage Animist|Media Inserts|998|Special||Planeswalker - Nissa|3|+1: Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand.$-2: Put a legendary 4/4 green Elemental creature token named Ashaya, the Awoken World onto the battlefield.$-7: Untap up to six target lands. They become 6/6 Elemental creatures. They're still lands.| Sultai|Media Inserts|999|Special|{{U}{B}{G}|Legendary Creature - Placeholder|2|2|| -Wood Elves|WPN Gateway|1|Special|{2}{G}|Creature — Elf Scout|1|1|When Wood Elves enters the battlefield, search your library for a Forest card and put that card onto the battlefield. Then shuffle your library.| -Icatian Javelineers|WPN Gateway|2|Special|{W}|Creature — Human Soldier|1|1|Icatian Javelineers enters the battlefield with a javelin counter on it.${T}, Remove a javelin counter from Icatian Javelineers: Icatian Javelineers deals 1 damage to target creature or player.| +Wood Elves|WPN Gateway|1|Special|{2}{G}|Creature � Elf Scout|1|1|When Wood Elves enters the battlefield, search your library for a Forest card and put that card onto the battlefield. Then shuffle your library.| +Icatian Javelineers|WPN Gateway|2|Special|{W}|Creature � Human Soldier|1|1|Icatian Javelineers enters the battlefield with a javelin counter on it.${T}, Remove a javelin counter from Icatian Javelineers: Icatian Javelineers deals 1 damage to target creature or player.| Fiery Temper|WPN Gateway|3|Special|{1}{R}{R}|Instant|||Fiery Temper deals 3 damage to target creature or player.$Madness {R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)| Boomerang|WPN Gateway|4|Special|{U}{U}|Instant|||Return target permanent to its owner's hand.| -Calciderm|WPN Gateway|5|Special|{2}{W}{W}|Creature — Beast|5|5|Shroud (This creature can't be the target of spells or abilities.)$Vanishing 4 (This permanent enters the battlefield with four time counters on it. At the beginning of your upkeep, remove a time counter from it. When the last is removed, sacrifice it.)| -Reckless Wurm|WPN Gateway|6|Special|{3}{R}{R}|Creature — Wurm|4|4|Trample$Madness {2}{R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)| -Yixlid Jailer|WPN Gateway|7|Special|{1}{B}|Creature — Zombie Wizard|2|1|Cards in graveyards lose all abilities.| +Calciderm|WPN Gateway|5|Special|{2}{W}{W}|Creature � Beast|5|5|Shroud (This creature can't be the target of spells or abilities.)$Vanishing 4 (This permanent enters the battlefield with four time counters on it. At the beginning of your upkeep, remove a time counter from it. When the last is removed, sacrifice it.)| +Reckless Wurm|WPN Gateway|6|Special|{3}{R}{R}|Creature � Wurm|4|4|Trample$Madness {2}{R} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)| +Yixlid Jailer|WPN Gateway|7|Special|{1}{B}|Creature � Zombie Wizard|2|1|Cards in graveyards lose all abilities.| Zoetic Cavern|WPN Gateway|8|Special||Land|||{T}: Add {C} to your mana pool.$Morph {2} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| -Llanowar Elves|WPN Gateway|9|Special|{G}|Creature — Elf Druid|1|1|{T}: Add {G} to your mana pool.| -Mogg Fanatic|WPN Gateway|10|Special|{R}|Creature — Goblin|1|1|Sacrifice Mogg Fanatic: Mogg Fanatic deals 1 damage to target creature or player.| +Llanowar Elves|WPN Gateway|9|Special|{G}|Creature � Elf Druid|1|1|{T}: Add {G} to your mana pool.| +Mogg Fanatic|WPN Gateway|10|Special|{R}|Creature � Goblin|1|1|Sacrifice Mogg Fanatic: Mogg Fanatic deals 1 damage to target creature or player.| Mind Stone|WPN Gateway|11|Special|{2}|Artifact|||{T}: Add {C} to your mana pool.${1}, {T}, Sacrifice Mind Stone: Draw a card.| -Dauntless Dourbark|WPN Gateway|12|Special|{3}{G}|Creature — Treefolk Warrior|*|*|Dauntless Dourbark's power and toughness are each equal to the number of Forests you control plus the number of Treefolk you control.$Dauntless Dourbark has trample as long as you control another Treefolk.| +Dauntless Dourbark|WPN Gateway|12|Special|{3}{G}|Creature � Treefolk Warrior|*|*|Dauntless Dourbark's power and toughness are each equal to the number of Forests you control plus the number of Treefolk you control.$Dauntless Dourbark has trample as long as you control another Treefolk.| Lava Axe|WPN Gateway|13|Special|{4}{R}|Sorcery|||Lava Axe deals 5 damage to target player.| -Cenn's Tactician|WPN Gateway|14|Special|{W}|Creature — Kithkin Soldier|1|1|{W}, {T}: Put a +1/+1 counter on target Soldier creature.$Each creature you control with a +1/+1 counter on it can block an additional creature each combat.| -Oona's Blackguard|WPN Gateway|15|Special|{1}{B}|Creature — Faerie Rogue|1|1|Flying$Each other Rogue creature you control enters the battlefield with an additional +1/+1 counter on it.$Whenever a creature you control with a +1/+1 counter on it deals combat damage to a player, that player discards a card.| -Gravedigger|WPN Gateway|16|Special|{3}{B}|Creature — Zombie|2|2|When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand.| -Boggart Ram-Gang|WPN Gateway|17|Special|{RG}{RG}{RG}|Creature — Goblin Warrior|3|3|Haste$Wither (This deals damage to creatures in the form of -1/-1 counters.)| -Wilt-Leaf Cavaliers|WPN Gateway|18|Special|{GW}{GW}{GW}|Creature — Elf Knight|3|4|Vigilance| -Duergar Hedge-Mage|WPN Gateway|19|Special|{2}{RW}|Creature — Dwarf Shaman|2|2|When Duergar Hedge-Mage enters the battlefield, if you control two or more Mountains, you may destroy target artifact.$When Duergar Hedge-Mage enters the battlefield, if you control two or more Plains, you may destroy target enchantment.| -Selkie Hedge-Mage|WPN Gateway|20|Special|{2}{GU}|Creature — Merfolk Wizard|2|2|When Selkie Hedge-Mage enters the battlefield, if you control two or more Forests, you may gain 3 life.$When Selkie Hedge-Mage enters the battlefield, if you control two or more Islands, you may return target tapped creature to its owner's hand.| -Sprouting Thrinax|WPN Gateway|21|Special|{B}{R}{G}|Creature — Lizard|3|3|When Sprouting Thrinax dies, put three 1/1 green Saproling creature tokens onto the battlefield.| -Woolly Thoctar|WPN Gateway|22|Special|{W}{R}{G}|Creature — Beast|5|4|| +Cenn's Tactician|WPN Gateway|14|Special|{W}|Creature � Kithkin Soldier|1|1|{W}, {T}: Put a +1/+1 counter on target Soldier creature.$Each creature you control with a +1/+1 counter on it can block an additional creature each combat.| +Oona's Blackguard|WPN Gateway|15|Special|{1}{B}|Creature � Faerie Rogue|1|1|Flying$Each other Rogue creature you control enters the battlefield with an additional +1/+1 counter on it.$Whenever a creature you control with a +1/+1 counter on it deals combat damage to a player, that player discards a card.| +Gravedigger|WPN Gateway|16|Special|{3}{B}|Creature � Zombie|2|2|When Gravedigger enters the battlefield, you may return target creature card from your graveyard to your hand.| +Boggart Ram-Gang|WPN Gateway|17|Special|{RG}{RG}{RG}|Creature � Goblin Warrior|3|3|Haste$Wither (This deals damage to creatures in the form of -1/-1 counters.)| +Wilt-Leaf Cavaliers|WPN Gateway|18|Special|{GW}{GW}{GW}|Creature � Elf Knight|3|4|Vigilance| +Duergar Hedge-Mage|WPN Gateway|19|Special|{2}{RW}|Creature � Dwarf Shaman|2|2|When Duergar Hedge-Mage enters the battlefield, if you control two or more Mountains, you may destroy target artifact.$When Duergar Hedge-Mage enters the battlefield, if you control two or more Plains, you may destroy target enchantment.| +Selkie Hedge-Mage|WPN Gateway|20|Special|{2}{GU}|Creature � Merfolk Wizard|2|2|When Selkie Hedge-Mage enters the battlefield, if you control two or more Forests, you may gain 3 life.$When Selkie Hedge-Mage enters the battlefield, if you control two or more Islands, you may return target tapped creature to its owner's hand.| +Sprouting Thrinax|WPN Gateway|21|Special|{B}{R}{G}|Creature � Lizard|3|3|When Sprouting Thrinax dies, put three 1/1 green Saproling creature tokens onto the battlefield.| +Woolly Thoctar|WPN Gateway|22|Special|{W}{R}{G}|Creature � Beast|5|4|| Path to Exile|WPN Gateway|24|Special|{W}|Instant|||Exile target creature. Its controller may search his or her library for a basic land card, put that card onto the battlefield tapped, then shuffle his or her library.| -Hellspark Elemental|WPN Gateway|25|Special|{1}{R}|Creature — Elemental|3|1|Trample, haste$At the beginning of the end step, sacrifice Hellspark Elemental.$Unearth {1}{R} ({1}{R}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)| -Marisi's Twinclaws|WPN Gateway|26|Special|{2}{RW}{G}|Creature — Cat Warrior|2|4|Double strike| +Hellspark Elemental|WPN Gateway|25|Special|{1}{R}|Creature � Elemental|3|1|Trample, haste$At the beginning of the end step, sacrifice Hellspark Elemental.$Unearth {1}{R} ({1}{R}: Return this card from your graveyard to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)| +Marisi's Twinclaws|WPN Gateway|26|Special|{2}{RW}{G}|Creature � Cat Warrior|2|4|Double strike| Slave of Bolas|WPN Gateway|27|Special|{3}{UR}{B}|Sorcery|||Gain control of target creature. Untap that creature. It gains haste until end of turn. Sacrifice it at the beginning of the next end step.| -Mycoid Shepherd|WPN Gateway|28|Special|{1}{W}{G}{G}|Creature — Fungus|5|4|Whenever Mycoid Shepherd or another creature you control with power 5 or greater dies, you may gain 5 life.| -Naya Sojourners|WPN Gateway|29|Special|{2}{W}{R}{G}|Creature — Elf Shaman|5|3|When you cycle Naya Sojourners or it dies, you may put a +1/+1 counter on target creature.$Cycling {2}{G} ({2}{G}, Discard this card: Draw a card.)| -Mind Control|WPN Gateway|30|Special|{3}{U}{U}|Enchantment — Aura|||Enchant creature$You control enchanted creature.| +Mycoid Shepherd|WPN Gateway|28|Special|{1}{W}{G}{G}|Creature � Fungus|5|4|Whenever Mycoid Shepherd or another creature you control with power 5 or greater dies, you may gain 5 life.| +Naya Sojourners|WPN Gateway|29|Special|{2}{W}{R}{G}|Creature � Elf Shaman|5|3|When you cycle Naya Sojourners or it dies, you may put a +1/+1 counter on target creature.$Cycling {2}{G} ({2}{G}, Discard this card: Draw a card.)| +Mind Control|WPN Gateway|30|Special|{3}{U}{U}|Enchantment � Aura|||Enchant creature$You control enchanted creature.| Rise from the Grave|WPN Gateway|31|Special|{4}{B}|Sorcery|||Put target creature card from a graveyard onto the battlefield under your control. That creature is a black Zombie in addition to its other colors and types.| -Kor Duelist|WPN Gateway|32|Special|{W}|Creature — Kor Soldier|1|1|As long as Kor Duelist is equipped, it has double strike. (It deals both first-strike and regular combat damage.)| -Vampire Nighthawk|WPN Gateway|33|Special|{1}{B}{B}|Creature — Vampire Shaman|2|3|Flying$Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| -Nissa's Chosen|WPN Gateway|34|Special|{G}{G}|Creature — Elf Warrior|2|3|If Nissa's Chosen would die, put it on the bottom of its owner's library instead.| -Emeria Angel|WPN Gateway|35|Special|{2}{W}{W}|Creature — Angel|3|3|Flying$Landfall — Whenever a land enters the battlefield under your control, you may put a 1/1 white Bird creature token with flying onto the battlefield.| -Kor Firewalker|WPN Gateway|36|Special|{W}{W}|Creature — Kor Soldier|2|2|Protection from red$Whenever a player casts a red spell, you may gain 1 life.| -Leatherback Baloth|WPN Gateway|37|Special|{G}{G}{G}|Creature — Beast|4|5|| -Hada Freeblade|WPN Gateway|38|Special|{W}|Creature — Human Soldier Ally|0|1|Whenever Hada Freeblade or another Ally enters the battlefield under your control, you may put a +1/+1 counter on Hada Freeblade.| -Kalastria Highborn|WPN Gateway|39|Special|{B}{B}|Creature — Vampire Shaman|2|2|Whenever Kalastria Highborn or another Vampire you control dies, you may pay {B}. If you do, target player loses 2 life and you gain 2 life.| +Kor Duelist|WPN Gateway|32|Special|{W}|Creature � Kor Soldier|1|1|As long as Kor Duelist is equipped, it has double strike. (It deals both first-strike and regular combat damage.)| +Vampire Nighthawk|WPN Gateway|33|Special|{1}{B}{B}|Creature � Vampire Shaman|2|3|Flying$Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| +Nissa's Chosen|WPN Gateway|34|Special|{G}{G}|Creature � Elf Warrior|2|3|If Nissa's Chosen would die, put it on the bottom of its owner's library instead.| +Emeria Angel|WPN Gateway|35|Special|{2}{W}{W}|Creature � Angel|3|3|Flying$Landfall � Whenever a land enters the battlefield under your control, you may put a 1/1 white Bird creature token with flying onto the battlefield.| +Kor Firewalker|WPN Gateway|36|Special|{W}{W}|Creature � Kor Soldier|2|2|Protection from red$Whenever a player casts a red spell, you may gain 1 life.| +Leatherback Baloth|WPN Gateway|37|Special|{G}{G}{G}|Creature � Beast|4|5|| +Hada Freeblade|WPN Gateway|38|Special|{W}|Creature � Human Soldier Ally|0|1|Whenever Hada Freeblade or another Ally enters the battlefield under your control, you may put a +1/+1 counter on Hada Freeblade.| +Kalastria Highborn|WPN Gateway|39|Special|{B}{B}|Creature � Vampire Shaman|2|2|Whenever Kalastria Highborn or another Vampire you control dies, you may pay {B}. If you do, target player loses 2 life and you gain 2 life.| Syphon Mind|WPN Gateway|40|Special|{3}{B}|Sorcery|||Each other player discards a card. You draw a card for each card discarded this way.| -Pathrazer of Ulamog|WPN Gateway|46|Special|{11}|Creature — Eldrazi|9|9|Annihilator 3 (Whenever this creature attacks, defending player sacrifices three permanents.)$Pathrazer of Ulamog can't be blocked except by three or more creatures.| +Pathrazer of Ulamog|WPN Gateway|46|Special|{11}|Creature � Eldrazi|9|9|Annihilator 3 (Whenever this creature attacks, defending player sacrifices three permanents.)$Pathrazer of Ulamog can't be blocked except by three or more creatures.| Curse of Wizardry|WPN Gateway|47|Special|{2}{B}{B}|Enchantment|||As Curse of Wizardry enters the battlefield, choose a color.$Whenever a player casts a spell of the chosen color, that player loses 1 life.| Staggershock|WPN Gateway|48|Special|{2}{R}|Instant|||Staggershock deals 2 damage to target creature or player.$Rebound (If you cast this spell from your hand, exile it as it resolves. At the beginning of your next upkeep, you may cast this card from exile without paying its mana cost.)| -Deathless Angel|WPN Gateway|49|Special|{4}{W}{W}|Creature — Angel|5|7|Flying${W}{W}: Target creature gains indestructible until end of turn.| +Deathless Angel|WPN Gateway|49|Special|{4}{W}{W}|Creature � Angel|5|7|Flying${W}{W}: Target creature gains indestructible until end of turn.| Fling|WPN Gateway|50|Special|{1}{R}|Instant|||As an additional cost to cast Fling, sacrifice a creature.$Fling deals damage equal to the sacrificed creature's power to target creature or player.| -Sylvan Ranger|WPN Gateway|51|Special|{1}{G}|Creature — Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| -Plague Stinger|WPN Gateway|59|Special|{1}{B}|Creature — Insect Horror|1|1|Flying$Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)| +Sylvan Ranger|WPN Gateway|51|Special|{1}{G}|Creature � Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| +Plague Stinger|WPN Gateway|59|Special|{1}{B}|Creature � Insect Horror|1|1|Flying$Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)| Golem's Heart|WPN Gateway|60|Special|{2}|Artifact|||Whenever a player casts an artifact spell, you may gain 1 life.| -Skinrender|WPN Gateway|63|Special|{2}{B}{B}|Creature — Zombie|3|3|When Skinrender enters the battlefield, put three -1/-1 counters on target creature.| +Skinrender|WPN Gateway|63|Special|{2}{B}{B}|Creature � Zombie|3|3|When Skinrender enters the battlefield, put three -1/-1 counters on target creature.| Master's Call|WPN Gateway|64|Special|{2}{W}|Instant|||Put two 1/1 colorless Myr artifact creature tokens onto the battlefield.| -Plague Myr|WPN Gateway|65|Special|{2}|Artifact Creature — Myr|1|1|Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)${T}: Add {C} to your mana pool.| -Signal Pest|WPN Gateway|66|Special|{1}|Artifact Creature — Pest|0|1|Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)$Signal Pest can't be blocked except by creatures with flying or reach.| +Plague Myr|WPN Gateway|65|Special|{2}|Artifact Creature � Myr|1|1|Infect (This creature deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)${T}: Add {C} to your mana pool.| +Signal Pest|WPN Gateway|66|Special|{1}|Artifact Creature � Pest|0|1|Battle cry (Whenever this creature attacks, each other attacking creature gets +1/+0 until end of turn.)$Signal Pest can't be blocked except by creatures with flying or reach.| Fling|WPN Gateway|69|Special|{1}{R}|Instant|||As an additional cost to cast Fling, sacrifice a creature.$Fling deals damage equal to the sacrificed creature's power to target creature or player.| -Sylvan Ranger|WPN Gateway|70|Special|{1}{G}|Creature — Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| -Vault Skirge|WPN Gateway|71|Special|{1}{BP}|Artifact Creature — Imp|1|1|({BP} can be paid with either {B} or 2 life.)$Flying$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| -Maul Splicer|WPN Gateway|72|Special|{6}{G}|Creature — Human Artificer|1|1|When Maul Splicer enters the battlefield, put two 3/3 colorless Golem artifact creature tokens onto the battlefield.$Golem creatures you control have trample.| +Sylvan Ranger|WPN Gateway|70|Special|{1}{G}|Creature � Elf Scout|1|1|When Sylvan Ranger enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| +Vault Skirge|WPN Gateway|71|Special|{1}{BP}|Artifact Creature � Imp|1|1|({BP} can be paid with either {B} or 2 life.)$Flying$Lifelink (Damage dealt by this creature also causes you to gain that much life.)| +Maul Splicer|WPN Gateway|72|Special|{6}{G}|Creature � Human Artificer|1|1|When Maul Splicer enters the battlefield, put two 3/3 colorless Golem artifact creature tokens onto the battlefield.$Golem creatures you control have trample.| Shrine of Burning Rage|WPN Gateway|73|Special|{2}|Artifact|||At the beginning of your upkeep or whenever you cast a red spell, put a charge counter on Shrine of Burning Rage.${3}, {T}, Sacrifice Shrine of Burning Rage: Shrine of Burning Rage deals damage equal to the number of charge counters on it to target creature or player.| -Tormented Soul|WPN Gateway|76|Special|{B}|Creature — Spirit|1|1|Tormented Soul can't block and can't be blocked.| -Auramancer|WPN Gateway|77|Special|{2}{W}|Creature — Human Wizard|2|2|When Auramancer enters the battlefield, you may return target enchantment card from your graveyard to your hand.| +Tormented Soul|WPN Gateway|76|Special|{B}|Creature � Spirit|1|1|Tormented Soul can't block and can't be blocked.| +Auramancer|WPN Gateway|77|Special|{2}{W}|Creature � Human Wizard|2|2|When Auramancer enters the battlefield, you may return target enchantment card from your graveyard to your hand.| Circle of Flame|WPN Gateway|78|Special|{1}{R}|Enchantment|||Whenever a creature without flying attacks you or a planeswalker you control, Circle of Flame deals 1 damage to that creature.| -Gather the Townsfolk|WPN Gateway|79|Special|{1}{W}|Sorcery|||Put two 1/1 white Human creature tokens onto the battlefield.$Fateful hour — If you have 5 or less life, put five of those tokens onto the battlefield instead.| -Curse of the Bloody Tome|WPN Gateway|80|Special|{2}{U}|Enchantment — Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, that player puts the top two cards of his or her library into his or her graveyard.| -Curse of Thirst|WPN Gateway|81|Special|{4}{B}|Enchantment — Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, Curse of Thirst deals damage to that player equal to the number of Curses attached to him or her.| -Nearheath Stalker|WPN Gateway|82|Special|{4}{R}|Creature — Vampire Rogue|4|1|Undying (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)| -Bloodcrazed Neonate|WPN Gateway|83|Special|{1}{R}|Creature — Vampire|2|1|Bloodcrazed Neonate attacks each turn if able.$Whenever Bloodcrazed Neonate deals combat damage to a player, put a +1/+1 counter on it.| -Boneyard Wurm|WPN Gateway|84|Special|{1}{G}|Creature — Wurm|*|*|Boneyard Wurm's power and toughness are each equal to the number of creature cards in your graveyard.| +Gather the Townsfolk|WPN Gateway|79|Special|{1}{W}|Sorcery|||Put two 1/1 white Human creature tokens onto the battlefield.$Fateful hour � If you have 5 or less life, put five of those tokens onto the battlefield instead.| +Curse of the Bloody Tome|WPN Gateway|80|Special|{2}{U}|Enchantment � Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, that player puts the top two cards of his or her library into his or her graveyard.| +Curse of Thirst|WPN Gateway|81|Special|{4}{B}|Enchantment � Aura Curse|||Enchant player$At the beginning of enchanted player's upkeep, Curse of Thirst deals damage to that player equal to the number of Curses attached to him or her.| +Nearheath Stalker|WPN Gateway|82|Special|{4}{R}|Creature � Vampire Rogue|4|1|Undying (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)| +Bloodcrazed Neonate|WPN Gateway|83|Special|{1}{R}|Creature � Vampire|2|1|Bloodcrazed Neonate attacks each turn if able.$Whenever Bloodcrazed Neonate deals combat damage to a player, put a +1/+1 counter on it.| +Boneyard Wurm|WPN Gateway|84|Special|{1}{G}|Creature � Wurm|*|*|Boneyard Wurm's power and toughness are each equal to the number of creature cards in your graveyard.| Dirtcowl Wurm|Prerelease Events|1|Special|{4}{G}|Creature - Wurm|3|4|Whenever an opponent plays a land, put a +1/+1 counter on Dirtcowl Wurm.| Revenant|Prerelease Events|2|Special|{4}{B}|Creature - Spirit|*|*|Flying$Revenant's power and toughness are each equal to the number of creature cards in your graveyard.| Monstrous Hount|Prerelease Events|3|Special|{3}{R}|Creature - Hound|4|4|Monstrous Hound can't attack unless you control more lands than defending player.$Monstrous Hound can't block unless you control more lands than attacking player.| @@ -53791,7 +53791,7 @@ Avatar of Hope|Prerelease Events|11|Special|{6}{W}{W}|Creature - Avatar|4|9|If y Raging Kavu|Prerelease Events|12|Special|{4}{1}{R}{G}|Creature - Kavu|3|1|Flash$Haste| Questing Phelddagrif|Prerelease Events|13|Special|{1}{W}{U}{G}|Creature - Phelddagrif|4|4|{G}: Questing Phelddagrif gets +1/+1 until end of turn. Target opponent puts a 1/1 green Hippo creature token onto the battlefield.${W}: Questing Phelddagrif gains protection from black and from red until end of turn. Target opponent gains 2 life.${U}: Questing Phelddagrif gains flying until end of turn. Target opponent may draw a card.| Fungal Shambler|Prerelease Events|14|Special|{4}{U}{B}{G}|Creature - Fungus Beast|6|4|Trample$Whenever Fungal Shambler deals damage to an opponent, you draw a card and that opponent discards a card.| -Stone-Tongue Baselisk|Prerelease Events|15|Special|{4}{G}{G}{G}|Creature - Basilisk|4|5|Whenever Stone-Tongue Basilisk deals combat damage to a creature, destroy that creature at end of combat.$Threshold — As long as seven or more cards are in your graveyard, all creatures able to block Stone-Tongue Basilisk do so.| +Stone-Tongue Baselisk|Prerelease Events|15|Special|{4}{G}{G}{G}|Creature - Basilisk|4|5|Whenever Stone-Tongue Basilisk deals combat damage to a creature, destroy that creature at end of combat.$Threshold � As long as seven or more cards are in your graveyard, all creatures able to block Stone-Tongue Basilisk do so.| Laquatus's Champion|Prerelease Events|16|Special|{4}{B}{B}|Creature - Nightmare Horror|6|3|When Laquatus's Champion enters the battlefield, target player loses 6 life.$When Laquatus's Champion leaves the battlefield, that player gains 6 life.${B}: Regenerate Laquatus's Champion.| Glory|Prerelease Events|17|Special|{{3}{W}{W}|Creature - Incarnation|3|3|Flying${2}{W}: Choose a color. Creatures you control gain protection from the chosen color until end of turn. Activate this ability only if Glory is in your graveyard.| Silent Specter|Prerelease Events|18|Special|{4}{B}{B}|Creature - Specter|4|4|Flying$Whenever Silent Specter deals combat damage to a player, that player discards two cards.$Morph {3}{B}{B} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| @@ -53809,7 +53809,7 @@ Avatar of Discord|Prerelease Events|29|Special|{BR}{BR}{BR}|Creature - Avatar|5| Allosaurus Rider|Prerelease Events|30|Special|{5}{G}{G}|Creature - Elf Warrior|1+*|1+*|You may exile two green cards from your hand rather than pay Allosaurus Rider's mana cost.$Allosaurus Rider's power and toughness are each equal to 1 plus the number of lands you control.| Lotus Bloom|Prerelease Events|31|Special||Artifact|||Suspend 3 {0} (Rather than cast this card from your hand, pay {0} and exile it with three time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)${T}, Sacrifice Lotus Bloom: Add three mana of any one color to your mana pool. Oros, the Avenger|Prerelease Events|32|Special|{3}{W}{B}{R}|Legendary Creature - Dragon|6|6|Flying$Whenever Oros, the Avenger deals combat damage to a player, you may pay {2}{W}. If you do, Oros deals 3 damage to each nonwhite creature.| -Korlash, Heir to Blackblade|Prerelease Events|33|Special|{2}{B}{B}|Legendary Creature - Zombie Warrior|*|*|Korlash, Heir to Blackblade's power and toughness are each equal to the number of Swamps you control.${1}{B}: Regenerate Korlash.$Grandeur — Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.| +Korlash, Heir to Blackblade|Prerelease Events|33|Special|{2}{B}{B}|Legendary Creature - Zombie Warrior|*|*|Korlash, Heir to Blackblade's power and toughness are each equal to the number of Swamps you control.${1}{B}: Regenerate Korlash.$Grandeur � Discard another card named Korlash, Heir to Blackblade: Search your library for up to two Swamp cards, put them onto the battlefield tapped, then shuffle your library.| Wren's Run Packmaster|Prerelease Events|34|Special|{3}{G}|Creature - Elf Warrior|5|5|Champion an Elf (When this creature enters the battlefield, sacrifice it unless you exile another Elf you control. When this creature leaves the battlefield, that card returns to the battlefield.)${2}{G}: Put a 2/2 green Wolf creature token onto the battlefield.$Wolves you control have deathtouch.| Door of Destinies|Prerelease Events|35|Special|{4}|Artifact|||As Door of Destinies enters the battlefield, choose a creature type.$Whenever you cast a spell of the chosen type, put a charge counter on Door of Destinies.$Creatures you control of the chosen type get +1/+1 for each charge counter on Door of Destinies.| Demigod of Revenge|Prerelease Events|36|Special|{BR}{BR}{BR}{BR}{BR}|Creature - Spirit Avatar|5|4|Flying$Haste$When you cast Demigod of Revenge, return all cards named Demigod of Revenge from your graveyard to the battlefield.| @@ -53818,7 +53818,7 @@ Ajani Vengeant|Prerelease Events|38|Special|{2}{W}{R}|Planeswalker - Ajani|||+1: Malfegor|Prerelease Events|39|Special|{2}{B}{B}{R}{R}|Legendary Creature - Demon Dragon|6|6|Flying$When Malfegor enters the battlefield, discard your hand. Each opponent sacrifices a creature for each card discarded this way.| Dragon Broodmother|Prerelease Events|40|Special|{2}{R}{R}{R}{G}|Creature - Dragon|4|4|Flying$At the beginning of each upkeep, put a 1/1 red and green Dragon creature token with flying and devour 2 onto the battlefield. (As the token enters the battlefield, you may sacrifice any number of creatures. It enters the battlefield with twice that many +1/+1 counters on it.)| Vampire Nocturnus|Prerelease Events|41|Special|{1}{B}{B}{B}|Creature - Vampire|3|3|Play with the top card of your library revealed.$As long as the top card of your library is black, Vampire Nocturnus and other Vampire creatures you control get +2/+1 and have flying.| -Rampaging Baloths|Prerelease Events|42|Special|{4}{G}{G}|Creature - Beast|6|6|Trample$Landfall — Whenever a land enters the battlefield under your control, you may put a 4/4 green Beast creature token onto the battlefield.| +Rampaging Baloths|Prerelease Events|42|Special|{4}{G}{G}|Creature - Beast|6|6|Trample$Landfall � Whenever a land enters the battlefield under your control, you may put a 4/4 green Beast creature token onto the battlefield.| Comet Storm|Prerelease Events|43|Special|{X}{R}{R}|Instant|||Multikicker {1} (You may pay an additional {1} any number of times as you cast this spell.)$Choose target creature or player, then choose another target creature or player for each time Comet Storm was kicked. Comet Storm deals X damage to each of them.| Emrakul, the Aeons Torn|Prerelease Events|44|Special|{15}|Legendary Creature - Eldrazi|15|15|Emrakul, the Aeons Torn can't be countered.$When you cast Emrakul, take an extra turn after this one.$Flying, protection from colored spells, annihilator 6$When Emrakul is put into a graveyard from anywhere, its owner shuffles his or her graveyard into his or her library.| Sun Titan|Prerelease Events|45|Special|{4}{W}{W}|Creature - Giant|6|6|Vigilance$Whenever Sun Titan enters the battlefield or attacks, you may return target permanent card with converted mana cost 3 or less from your graveyard to the battlefield.| @@ -53841,7 +53841,7 @@ Grove of the Guardian|Prerelease Events|59|Special||Land|||{T}: Add {C} to your Consuming Aberration|Prerelease Events|60|Special|{3}{U}{B}|Creature - Horror|*|*|Consuming Aberration's power and toughness are each equal to the number of cards in your opponents' graveyards.$Whenever you cast a spell, each opponent reveals cards from the top of his or her library until he or she reveals a land card, then puts those cards into his or her graveyard.| Fathom Mage|Prerelease Events|61|Special|{2}{U}{G}|Creature - Human Wizard|1|1|Evolve (Whenever a creature enters the battlefield under your control, if that creature has greater power or toughness than this creature, put a +1/+1 counter on this creature.)$Whenever a +1/+1 counter is placed on Fathom Mage, you may draw a card.| Foundry Champion|Prerelease Events|62|Special|{4}{W}{R}|Creature - Elemental Soldier|4|4When Foundry Champion enters the battlefield, it deals damage to target creature or player equal to the number of creatures you control.${R}: Foundry Champion gets +1/+0 until end of turn.${W}: Foundry Champion gets +0/+1 until end of turn.| -Rubblehulk|Prerelease Events|63|Special|{4}{R}{G}|Creature - Elemental|*|*|Rubblehulk's power and toughness are each equal to the number of lands you control.$Bloodrush — {1}{R}{G}, Discard Rubblehulk: Target attacking creature gets +X/+X until end of turn, where X is the number of lands you control.| +Rubblehulk|Prerelease Events|63|Special|{4}{R}{G}|Creature - Elemental|*|*|Rubblehulk's power and toughness are each equal to the number of lands you control.$Bloodrush � {1}{R}{G}, Discard Rubblehulk: Target attacking creature gets +X/+X until end of turn, where X is the number of lands you control.| Treasury Thrull|Prerelease Events|64|Special|{4}{W}{B}|Creature - Thrull|4|4|Extort (Whenever you cast a spell, you may pay {WB}. If you do, each opponent loses 1 life and you gain that much life.)$Whenever Treasury Thrull attacks, you may return target artifact, creature, or enchantment card from your graveyard to your hand.| Maze's End|Prerelease Events|65|Special||Land|||Maze's End enters the battlefield tapped.${T}: Add {C} to your mana pool.${3}, {T}, Return Maze's End to its owner's hand: Search your library for a Gate card, put it onto the battlefield, then shuffle your library. If you control ten or more Gates with different names, you win the game.| Plains|Prerelease Events|66|Special||Basic Land - Plains|||({T}: Add {W} to your mana pool.)| @@ -53850,15 +53850,15 @@ Celestial Archon|Prerelease Events|68|Special|{3}{W}{W}|Enchantment Creature - A Shipbreaker Kraken|Prerelease Events|69|Special|{4}{U}{U}|Creature - Kraken|6|6|{6}{U}{U}: Monstrosity 4. (If this creature isn't monstrous, put four +1/+1 counters on it and it becomes monstrous.)$When Shipbreaker Kraken becomes monstrous, tap up to four target creatures. Those creatures don't untap during their controllers' untap steps for as long as you control Shipbreaker Kraken.| Abhorrent Overlord|Prerelease Events|70|Special|{5}{B}{B}|Creature - Demon|6|6|Flying$When Abhorrent Overlord enters the battlefield, put a number of 1/1 black Harpy creature tokens with flying onto the battlefield equal to your devotion to black. (Each {B} in the mana costs of permanents you control counts toward your devotion to black.)$At the beginning of your upkeep, sacrifice a creature.| Ember Swallower|Prerelease Events|71|Special|{2}{R}{R}|Creature - Elemental|4|5|{5}{R}{R}: Monstrosity 3. (If this creature isn't monstrous, put three +1/+1 counters on it and it becomes monstrous.)$When Ember Swallower becomes monstrous, each player sacrifices three lands.| -Anthousa, Setessan Hero|Prerelease Events|72|Special|{3}{G}{G}|Legendary Creature - Human Warrior|4|5|Heroic — Whenever you cast a spell that targets Anthousa, Setessan Hero, up to three target lands you control each become 2/2 Warrior creatures until end of turn. They're still lands.| +Anthousa, Setessan Hero|Prerelease Events|72|Special|{3}{G}{G}|Legendary Creature - Human Warrior|4|5|Heroic � Whenever you cast a spell that targets Anthousa, Setessan Hero, up to three target lands you control each become 2/2 Warrior creatures until end of turn. They're still lands.| Silent Sentinel|Prerelease Events|73|Special|{5}{W}{W}|Creature - Archon|4|6|Flying$Whenever Silent Sentinel attacks, you may return target enchantment card from your graveyard to the battlefield.| -Arbiter of the Ideal|Prerelease Events|74|Special|{4}{U}{U}|Creature - Sphinx|4|5|Flying$Inspired — Whenever Arbiter of the Ideal becomes untapped, reveal the top card of your library. If it's an artifact, creature, or land card, you may put it onto the battlefield with a manifestation counter on it. That permanent is an enchantment in addition to its other types.| +Arbiter of the Ideal|Prerelease Events|74|Special|{4}{U}{U}|Creature - Sphinx|4|5|Flying$Inspired � Whenever Arbiter of the Ideal becomes untapped, reveal the top card of your library. If it's an artifact, creature, or land card, you may put it onto the battlefield with a manifestation counter on it. That permanent is an enchantment in addition to its other types.| Eater of Hope|Prerelease Events|75|Special|{5}{B}{B}|Creature - Demon|6|4|Flying${B}, Sacrifice another creature: Regenerate Eater of Hope.${2}{B}, Sacrifice two other creatures: Destroy target creature.| Forgestoker Dragon|Prerelease Events|76|Special|{4}{R}{R}|Creature - Dragon|5|4|Flying${1}{R}: Forgestoker Dragon deals 1 damage to target creature. That creature can't block this combat. Activate this ability only if Forgestoker Dragon is attacking.| Nessian Wilds Ravager|Prerelease Events|77|Special|{4}{G}{G}|Creature - Hydra|6|6|Tribute 6 (As this creature enters the battlefield, an opponent of your choice may place six +1/+1 counters on it.)$When Nessian Wilds Ravager enters the battlefield, if tribute wasn't paid, you may have Nessian Wilds Ravager fight another target creature. (Each deals damage equal to its power to the other.)| -Dawnbringer Charioteers|Prerelease Events|78|Special|{2}{W}{W}|Creature - Human Soldier|2|4|Flying, lifelink$Heroic — Whenever you cast a spell that targets Dawnbringer Charioteers, put a +1/+1 counter on Dawnbringer Charioteers.| +Dawnbringer Charioteers|Prerelease Events|78|Special|{2}{W}{W}|Creature - Human Soldier|2|4|Flying, lifelink$Heroic � Whenever you cast a spell that targets Dawnbringer Charioteers, put a +1/+1 counter on Dawnbringer Charioteers.| Scourge of Fleets|Prerelease Events|79|Special|{5}{U}{U}|Creature - Kraken|6|6|When Scourge of Fleets enters the battlefield, return each creature your opponents control with toughness X or less to its owner's hand, where X is the number of Islands you control.| -Doomwake Giant|Prerelease Events|80|Special|{4}{B}|Enchantment Creature - Giant|4|6|Constellation — Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn.| +Doomwake Giant|Prerelease Events|80|Special|{4}{B}|Enchantment Creature - Giant|4|6|Constellation � Whenever Doomwake Giant or another enchantment enters the battlefield under your control, creatures your opponents control get -1/-1 until end of turn.| Spawn of Thraxes|Prerelease Events|81|Special|{5}{R}{R}|Creature - Dragon|5|5|Flying$When Spawn of Thraxes enters the battlefield, it deals damage to target creature or player equal to the number of Mountains you control.| Heroes' Bane|Prerelease Events|82|Special|{3}{G}{G}|Creature - Hydra|0|0|Heroes' Bane enters the battlefield with four +1/+1 counters on it.${2}{G}{G}: Put X +1/+1 counters on Heroes' Bane, where X is its power.| Resolute Archangel|Prerelease Events|83|Special|{5}{W}{W}|Creature - Angel|4|4|Flying$When Resolute Archangel enters the battlefield, if your life total is less than your starting life total, it becomes equal to your starting life total.| @@ -54248,7 +54248,7 @@ Thrive|Modern Masters 2015 Edition|166|C|{X}{G}|Sorcery|||Put a +1/+1 counter on Tukatongue Thallid|Modern Masters 2015 Edition|167|C|{G}|Creature - Fungus|1|1|When Tukatongue Thallid dies, put a 1/1 green Saproling creature token onto the battlefield.| Vines of Vastwood|Modern Masters 2015 Edition|168|C|{G}|Instant|||Kicker {G} (You may pay an additional {G} as you cast this spell.)$Target creature can't be the target of spells or abilities your opponents control this turn. If Vines of Vastwood was kicked, that creature gets +4/+4 until end of turn.| Wolfbriar Elemental|Modern Masters 2015 Edition|169|R|{2}{G}{G}|Creature - Elemental|4|4|Multikicker {G} (You may pay an additional {G} any number of times as you cast this spell.)$When Wolfbriar Elemental enters the battlefield, put a 2/2 green Wolf creature token onto the battlefield for each time it was kicked.| -Fortify|Modern Masters 2015 Edition|17|C|{2}{W}|Instant|||Choose one -$• Creatures you control get +2/+0 until end of turn.$• Creatures you control get +0/+2 until end of turn.| +Fortify|Modern Masters 2015 Edition|17|C|{2}{W}|Instant|||Choose one -$� Creatures you control get +2/+0 until end of turn.$� Creatures you control get +0/+2 until end of turn.| Agony Warp|Modern Masters 2015 Edition|170|U|{U}{B}|Instant|||Target creature gets -3/-0 until end of turn.$Target creature gets -0/-3 until end of turn.| Apocalypse Hydra|Modern Masters 2015 Edition|171|R|{X}{R}{G}|Creature - Hydra|0|0|Apocalypse Hydra enters the battlefield with X +1/+1 counters on it. If X is 5 or more, it enters the battlefield with an additional X +1/+1 counters on it.${1}{R}, Remove a +1/+1 counter from Apocalypse Hydra: Apocalypse Hydra deals 1 damage to target creature or player.| Boros Swiftblade|Modern Masters 2015 Edition|172|U|{R}{W}|Creature - Human Soldier|1|2|Double strike| @@ -54357,7 +54357,7 @@ Karn Liberated|Modern Masters 2015 Edition|4|M|{7}|Planeswalker - Karn|||+4: Tar Air Servant|Modern Masters 2015 Edition|40|U|{4}{U}|Creature - Elemental|4|3|Flying${2}{U}: Tap target creature with flying.| Argent Sphinx|Modern Masters 2015 Edition|41|R|{2}{U}{U}|Creature - Sphinx|4|3|Flying$Metalcraft - {U}: Exile Argent Sphinx. Return it to the battlefield under your control at the beginning of the next end step. Activate this ability only if you control three or more artifacts.| Cloud Elemental|Modern Masters 2015 Edition|42|C|{2}{U}|Creature - Elemental|2|3|Flying$Cloud Elemental can block only creatures with flying.| -Cryptic Command|Modern Masters 2015 Edition|43|R|{1}{U}{U}{U}|Instant|||Choose two -$• Counter target spell.$• Return target permanent to its owner's hand.$• Tap all creatures your opponents control.$• Draw a card.| +Cryptic Command|Modern Masters 2015 Edition|43|R|{1}{U}{U}{U}|Instant|||Choose two -$� Counter target spell.$� Return target permanent to its owner's hand.$� Tap all creatures your opponents control.$� Draw a card.| Faerie Mechanist|Modern Masters 2015 Edition|44|C|{3}{U}|Artifact Creature - Faerie Artificer|2|2|Flying$When Faerie Mechanist enters the battlefield, look at the top three cards of your library. You may reveal an artifact card from among them and put it into your hand. Put the rest on the bottom of your library in any order.| Flashfreeze|Modern Masters 2015 Edition|45|U|{1}{U}|Instant|||Counter target red or green spell.| Guile|Modern Masters 2015 Edition|46|R|{3}{U}{U}{U}|Creature - Elemental Incarnation|6|6|Guile can't be blocked except by three or more creatures.$If a spell or ability you control would counter a spell, instead exile that spell and you may play that card without paying its mana cost.$When Guile is put into a graveyard from anywhere, shuffle it into its owner's library.| @@ -54409,7 +54409,7 @@ Nameless Inversion|Modern Masters 2015 Edition|87|C|{1}{B}|Tribal Instant - Shap Necroskitter|Modern Masters 2015 Edition|88|R|{1}{B}{B}|Creature - Elemental|1|4|Wither (This deals damage to creatures in the form of -1/-1 counters.)$Whenever a creature an opponent controls with a -1/-1 counter on it dies, you may return that card to the battlefield under your control.| Plagued Rusalka|Modern Masters 2015 Edition|89|C|{B}|Creature - Spirit|1|1|{B}, Sacrifice a creature: Target creature gets -1/-1 until end of turn.| Arrest|Modern Masters 2015 Edition|9|C|{2}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block, and its activated abilities can't be activated.| -Profane Command|Modern Masters 2015 Edition|90|R|{X}{B}{B}|Sorcery|||Choose two -$• Target player loses X life.$• Return target creature card with converted mana cost X or less from your graveyard to the battlefield.$• Target creature gets -X/-X until end of turn.$• Up to X target creatures gain fear until end of turn. (They can't be blocked except by artifact creatures and/or black creatures.)| +Profane Command|Modern Masters 2015 Edition|90|R|{X}{B}{B}|Sorcery|||Choose two -$� Target player loses X life.$� Return target creature card with converted mana cost X or less from your graveyard to the battlefield.$� Target creature gets -X/-X until end of turn.$� Up to X target creatures gain fear until end of turn. (They can't be blocked except by artifact creatures and/or black creatures.)| Puppeteer Clique|Modern Masters 2015 Edition|91|R|{3}{B}{B}|Creature - Faerie Wizard|3|2|Flying$When Puppeteer Clique enters the battlefield, put target creature card from an opponent's graveyard onto the battlefield under your control. It gains haste. At the beginning of your next end step, exile it.$Persist (When this creature dies, if it had no -1/-1 counters on it, return it to the battlefield under its owner's control with a -1/-1 counter on it.)| Reassembling Skeleton|Modern Masters 2015 Edition|92|U|{1}{B}|Creature - Skeleton Warrior|1|1|{1}{B}: Return Reassembling Skeleton from your graveyard to the battlefield tapped.| Scavenger Drake|Modern Masters 2015 Edition|93|U|{3}{B}|Creature - Drake|1|1|Flying$Whenever another creature dies, you may put a +1/+1 counter on Scavenger Drake.| @@ -54454,7 +54454,7 @@ Sigil of the Empty Throne|Magic Origins|31|R|{3}{W}{W}|Enchantment|||Whenever yo Stalwart Aven|Magic Origins|32|C|{2}{W}|Creature - Bird Soldier|1|3|Flying$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)| Starfield of Nyx|Magic Origins|33|M|{4}{W}|Enchantment|||At the beginning of your upkeep, you may return target enchantment card from your graveyard to the battlefield.$As long as you control five or more enchantments, each other non-Aura enchantment you control is a creature in addition to its other types and has base power and base toughness each equal to its converted mana cost.| Suppression Bonds|Magic Origins|34|C|{3}{W}|Enchantment - Aura|||Enchant nonland permanent$Enchanted permanent can't attack or block, and its activated abilities can't be actiated.| -Swift Reckoning|Magic Origins|35|U|{1}{W}|Sorcery|||Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash.$Destroy target tapped creature.| +Swift Reckoning|Magic Origins|35|U|{1}{W}|Sorcery|||Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, you may cast Swift Reckoning as though it had flash.$Destroy target tapped creature.| Topan Freeblade|Magic Origins|36|C|{1}{W}|Creature - Human Soldier|2|2|Vigilance$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)| Totem-Guide Hartebeest|Magic Origins|37|U|{4}{W}|Creature - Antelope|2|5|When Totem-Guide Hartebeest enters the battlefield, you may search your library for an Aura card, reveal it, put it into your hand, then shuffle your library.| Tragic Arrogance|Magic Origins|38|R|{3}{W}{W}|Sorcery|||For each player, you choose from among the permanents that player controls an artifact, a creature, an enchantment, and a planeswalker. Then each player sacrifices all other nonland permanents he or she controls.| @@ -54487,7 +54487,7 @@ Maritime Guard|Magic Origins|63|C|{1}{U}|Creature - Merfolk Soldier|1|3|| Mizzium Meddler|Magic Origins|64|R|{2}{U}|Creature - Vedalken Wizard|1|4|Flash$When Mizzium Meddler enters the battlefield, you may change a target of target spell or ability to Mizzium Meddler.| Negate|Magic Origins|65|C|{1}{U}|Instant|||Counter target noncreature spell.| Nivix Barrier|Magic Origins|66|C|{3}{U}|Creature - Illusion Wall|0|4|Flash$Defender$When Nivix Barrier enters the battlefield, target attacking creature gets -4/-0 until end of turn.| -Psychic Rebuttal|Magic Origins|67|U|{1}{U}|Instant|||Counter target instant or sorcery spell that targets you.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, you may copy the spell countered this way. You may choose new targets for the copy.| +Psychic Rebuttal|Magic Origins|67|U|{1}{U}|Instant|||Counter target instant or sorcery spell that targets you.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, you may copy the spell countered this way. You may choose new targets for the copy.| Ringwarden Owl|Magic Origins|68|C|{3}{U}{U}|Creature - Bird|3|3|Flying (This creature can't be blocked except by creatures with flying or reach.)$Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)| Scrapskin Drake|Magic Origins|69|C|{2}{U}|Creature - Zombie Drake|2|3|Flying$Scrapskin Drake can block only creatures with flying.| Screeching Skaab|Magic Origins|70|C|{1}{U}|Creature - Zombie|2|1|When Screeching Skaab enters the battlefield, put the top two cards of your library into your graveyard.| @@ -54509,10 +54509,10 @@ Blightcaster|Magic Origins|85|U|{3}{B}|Creature - Human Wizard|2|3|Whenever you Catacomb Slug|Magic Origins|86|C|{4}{B}|Creature - Slug|2|6|| Consecrated By Blood|Magic Origins|87|U|{2}{B}{B}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2 and has flying and "Sacrifice two other creatures: Regenerate this creature." (The next time this creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)| Cruel Revival|Magic Origins|88|U|{4}{B}|Instant|||Destroy target non-Zombie creature. It can't be regenerated. Return up to one target Zombie card from your graveyard to your hand.| -Dark Dabbling|Magic Origins|89|C|{2}{B}|Instant|||Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control.| -Dark Petition|Magic Origins|90|R|{3}{B}{B}|Sorcery|||Search your library for a card and put that card into your hand. Then shuffle your library.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool.| +Dark Dabbling|Magic Origins|89|C|{2}{B}|Instant|||Regenerate target creature. Draw a card. (The next time the creature would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, also regenerate each other creature you control.| +Dark Petition|Magic Origins|90|R|{3}{B}{B}|Sorcery|||Search your library for a card and put that card into your hand. Then shuffle your library.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, add {B}{B}{B} to your mana pool.| Deadbridge Shaman|Magic Origins|91|C|{2}{B}|Creature - Elf Shaman|3|1|When Deadbridge Shaman dies, target opponent discards a card.| -Demonic Pact|Magic Origins|92|M|{2}{B}{B}|Enchantment|||At the beginning of your upkeep, choose one that hasn't been chosen —$Demonic Pact deals 4 damage to target creature or player and you gain 4 life.$Target opponent discards two cards.$Draw two cards.$You lose the game.| +Demonic Pact|Magic Origins|92|M|{2}{B}{B}|Enchantment|||At the beginning of your upkeep, choose one that hasn't been chosen �$Demonic Pact deals 4 damage to target creature or player and you gain 4 life.$Target opponent discards two cards.$Draw two cards.$You lose the game.| Despoiler of Souls|Magic Origins|93|R|{B}{B}|Creature - Horror|3|1|Despoiler of Souls can't block.${B}{B}, Exile two other creature cards from your graveyard: Return Despoiler of Souls from your graveyard to the battlefield.| Erebos's Titan|Magic Origins|94|M|{1}{B}{B}{B}|Creature - Giant|5|5|As long as your opponents control no creatures, Erebos's Titan has indestructible.$Whenever a creature card leaves an opponent's graveyard, you may discard a card. If you do, return Erebos's Titan from your graveyard to your hand.| Eyeblight Assassin|Magic Origins|95|C|{2}{B}|Creature - Elf Assassin|2|2|When Eyeblight Assassin enters the battlefield, target creature an opponent controls gets -1/-1 until end of turn.| @@ -54531,7 +54531,7 @@ Liliana, Heretical Healer|Magic Origins|106|M|{1}{B}{B}|Legendary Creature - Hum Macabre Waltz|Magic Origins|107|C|{1}{B}|Sorcery|||Return up to two target creature cards from your graveyard to your hand, then discard a card.| Malakir Cullblade|Magic Origins|108|U|{1}{B}|Creature - Vampire Warrior|1|1|Whenever a creature an opponent controls dies, put a +1/+1 counter on Malakir Cullblade.| Nantuko Husk|Magic Origins|109|C|{2}{B}|Creature - Zombie Insect|2|2|Sacrifice a creature: Nantuko Husk gets +2/+2 until end of turn.| -Necromantic Summons|Magic Origins|110|U|{4}{B}|Sorcery|||Put target creature card from a graveyard onto the battlefield under your control.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it.| +Necromantic Summons|Magic Origins|110|U|{4}{B}|Sorcery|||Put target creature card from a graveyard onto the battlefield under your control.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, that creature enters the battlefield with two additional +1/+1 counters on it.| Nightsnare|Magic Origins|111|C|{3}{B}|Sorcery|||Target opponent reveals his or her hand. You may choose a nonland card from it. If you do, that player discards that card. If you don't, that player discards two cards.| Priest of the Blood Rite|Magic Origins|112|R|{3}{B}{B}|Creature - Human Cleric|2|2|When Priest of the Blood Rite enters the battlefield, put a 5/5 black Demon creature token with flying onto the battlefield.$At the beginning of your upkeep, you lose 2 life.| Rabid Bloodsucker|Magic Origins|113|C|{4}{B}|Creature - Vampire|3|2|Flying$When Rabid Bloodsucker enters the battlefield, each player loses 2 life.| @@ -54565,9 +54565,9 @@ Demolish|Magic Origins|139|C|{3}{R}|Sorcery|||Destroy target artifact or land.| Dragon Fodder|Magic Origins|140|C|{1}{R}|Sorcery|||Put two 1/1 red Goblin creature tokens onto the battlefield.| Embermaw Hellion|Magic Origins|141|R|{3}{R}{R}|Creature - Hellion|4|5|Trample$If another red source you control would deal damage to a permanent or player, it deals that much damage plus 1 to that permanent or player instead.| Enthralling Victor|Magic Origins|142|U|{3}{R}|Creature - Human Warrior|3|2|When Enthralling Victor enters the battlefield, gain control of target creature an opponent controls with power 2 or less until end of turn. Untap that creature. It gains haste until end of turn.| -Exquisite Firecraft|Magic Origins|143|R|{1}{R}{R}|Sorcery|||Exquisite Firecraft deals 4 damage to target creature or player. $Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities.| +Exquisite Firecraft|Magic Origins|143|R|{1}{R}{R}|Sorcery|||Exquisite Firecraft deals 4 damage to target creature or player. $Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Exquisite Firecraft can't be countered by spells or abilities.| Fiery Conclusion|Magic Origins|144|U|{1}{R}|Instant|||As an additional cost to cast Fiery Conclusion, sacrifice a creature.$Fiery Conclusion deals 5 damage to target creature.| -Fiery Impulse|Magic Origins|145|C|{R}|Instant|||Fiery Impulse deals 2 damage to target creature.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead.| +Fiery Impulse|Magic Origins|145|C|{R}|Instant|||Fiery Impulse deals 2 damage to target creature.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Fiery Impulse deals 3 damage to that creature instead.| Firefiend Elemental|Magic Origins|146|C|{3}{R}|Creature - Elemental|3|2|Haste$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)| Flameshadow Conjuring|Magic Origins|147|R|{3}{R}|Enchantment|||Whenever a nontoken creature enters the battlefield under your control, you may pay {R}. If you do, put a token onto the battlefield that's a copy of that creature. That token gains haste. Exile it at the beginning of the next end step.| Ghirapur AEther Grid|Magic Origins|148|U|{2}{R}|Enchantment|||Tap two untapped artifacts you control: Ghirapur AEther Grid deals 1 damage to target creature or player.| @@ -54581,7 +54581,7 @@ Magmatic Insight|Magic Origins|155|U|{R}|Sorcery|||As an additional cost to cast Molten Vortex|Magic Origins|156|R|{R}|Enchantment|||{R}, Discard a land card: Molten Vortex deals 2 damage to target creature or player.| Pia and Kiran Nalaar|Magic Origins|157|R|{2}{R}{R}|Legendary Creature - Human Artificer|2|2|When Pia and Kiran Nalaar enters the battlefield put 2 1/1 colorless Thopter artifact creature tokens with flying onto the battlefield.${2}{R}, Sacrifice an artifact: Pia and Kiran Nalaar deals 2 damage to target creature or player.| Prickleboar|Magic Origins|158|C|{4}{R}|Creature - Boar|3|3|As long as it's your turn, Prickleboar gets +2/+0 and has first strike.| -Ravaging Blaze|Magic Origins|159|U|{X}{R}{R}|Instant|||Ravaging Blaze deals X damage to target creature. $Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller.| +Ravaging Blaze|Magic Origins|159|U|{X}{R}{R}|Instant|||Ravaging Blaze deals X damage to target creature. $Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, Ravaging Blaze also deals X damage to that creature's controller.| Scab-Clan Berserker|Magic Origins|160|R|{1}{R}{R}|Creature - Human Berserker|2|2|Haste$Renown 1 (When this creature deals combat damage to a player, if it isn't renowned, put a +1/+1 counter on it and it becomes renowned.)$Whenever an opponent casts a noncreature spell, if Scab-Clan Berserker is renowned, Scab-Clan Berserker deals 2 damage to that player.| Seismic Elemental|Magic Origins|161|U|{3}{R}{R}|Creature - Elemental|4|4|When Seismic Elemental enters the battlefield, creatures without flying can't block this turn.| Skyraker Giant|Magic Origins|162|U|{2}{R}{R}|Creature - Giant|4|3|Reach| @@ -54593,7 +54593,7 @@ Volcanic Rambler|Magic Origins|167|C|{5}{R}|Creature - Elemental|6|4|{2}{R}: Vol Fiery Hellhound|Magic Origins|284|C|{1}{R}{R}|Creature - Elemental Hound|2|2|{R}: Fiery Hellhound gets +1/+0 until end of turn.| Shivan Dragon|Magic Origins|285|R|{4}{R}{R}|Creature - Dragon|5|5|Flying${R}: Shivan Dragon gets +1/+0 until end of turn.| Aerial Volley|Magic Origins|168|C|{G}|Instant|||Aerial Volley deals 3 damage divided as you choose among one, two, or three target creatures with flying.| -Animist's Awakening|Magic Origins|169|R|{X}{G}|Sorcery|||Reveal the top X cards of your library. Put all land cards from among them onto the battlefield tapped and the rest on the bottom of your library in any order.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, untap those lands.| +Animist's Awakening|Magic Origins|169|R|{X}{G}|Sorcery|||Reveal the top X cards of your library. Put all land cards from among them onto the battlefield tapped and the rest on the bottom of your library in any order.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, untap those lands.| Caustic Caterpillar|Magic Origins|170|C|{G}|Creature - Insect|1|1|{1}{G}, Sacrifice Caustic Caterpillar: Destroy target artifact or enchantment.| Conclave Naturalists|Magic Origins|171|U|{4}{G}|Creature - Dryad|4|4|When Conclave Naturalists enters the battlefield, you may destroy target artifact or enchantment.| Dwynen, Gilt-Leaf Daen|Magic Origins|172|R|{2}{G}{G}|Legendary Creature - Elf Warrior|3|4|Reach$Other Elf creatures you control get +1/+1.$Whenever Dwynen, Gilt-Leaf Daen attacks, you gain 1 life for each attacking Elf you control.| @@ -54602,7 +54602,7 @@ Elemental Bond|Magic Origins|174|U|{2}{G}|Enchantment|||Whenever a creature with Elvish Visionary|Magic Origins|175|C|{1}{G}|Creature - Elf Shaman|1|1|When Elvish Visionary enters the battlefield, draw a card.| Evolutionary Leap|Magic Origins|176|R|{1}{G}|Enchantment|||{G}, Sacrifice a creature: Reveal cards from the top of your library until you reveal a creature card. Put that card into your hand and the rest on the bottom of your library in a random order.| Gaea's Revenge|Magic Origins|177|R|{5}{G}{G}|Creature - Elemental|8|5|Gaea's Revenge can't be countered.$Haste$Gaea's Revenge can't be the target of nongreen spells or abilities from nongreen sources.| -Gather the Pack|Magic Origins|178|U|{1}{G}|Sorcery|||Reveal the top five cards of your library. You may put a creature card from among them into your hand. Put the rest into your graveyard.$Spell mastery — If there are two or more instant and/or sorcery cards in your graveyard, put up to two creature cards from among the revealed cards into your hand instead of one.| +Gather the Pack|Magic Origins|178|U|{1}{G}|Sorcery|||Reveal the top five cards of your library. You may put a creature card from among them into your hand. Put the rest into your graveyard.$Spell mastery � If there are two or more instant and/or sorcery cards in your graveyard, put up to two creature cards from among the revealed cards into your hand instead of one.| The Great Aurora|Magic Origins|179|M|{6}{G}{G}{G}|Sorcery|||Each player shuffles all cards from his or her hand and all permanents he or she owns into his or her library, then draws that many cards. Each player may put any number of land cards from his or her hand onto the battlefield. Exile The Great Aurora.| Herald of the Pantheon|Magic Origins|180|R|{1}{G}|Creature - Centaur Shaman|2|2|Enchantment spells you cast cost {1} less to cast.$Whenever you cast an enchantment spell, you gain 1 life.| Hitchclaw Recluse|Magic Origins|181|C|{2}{G}|Creature - Spider|1|4|Reach| @@ -54615,7 +54615,7 @@ Mantle of Webs|Magic Origins|187|C|{1}{G}|Enchantment - Aura|||Enchant Creature$ Might of the Masses|Magic Origins|188|C|{G}|Instant|||Target creature gets +1/+1 until end of turn for each creature you control.| Nissa, Sage Animist|Magic Origins|189|M||Planeswalker - Nissa|3|+1: Reveal the top card of your library. If it's a land card, put it onto the battlefield. Otherwise, put it into your hand.$-2: Put a legendary 4/4 green Elemental creature token named Ashaya, the Awoken World onto the battlefield.$-7: Untap up to six target lands. They become 6/6 Elemental creatures. They're still lands.| Nissa, Vastwood Seer|Magic Origins|189|M|{2}{G}|Legendary Creature - Elf Scout|2|2|When Nissa, Vastwood Seer enters the battlefield, you may search your library for a basic Forest card, reveal it, put it into your hand, then shuffle your library.$Whenever a land enters the battlefield under your control, if you control seven or more lands, exile Nissa, then return her to the battlefield transformed under her owner's control.| -Nissa's Pilgrimage|Magic Origins|190|C|{2}{G}|Sorcery|||Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library.$Spell Mastery — If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two.| +Nissa's Pilgrimage|Magic Origins|190|C|{2}{G}|Sorcery|||Search your library for up to two basic Forest cards, reveal those cards, and put one onto the battlefield tapped and the rest into your hand. Then shuffle your library.$Spell Mastery � If there are two or more instant and/or sorcery cards in your graveyard, search your library for up to three basic Forest cards instead of two.| Nissa's Revelation|Magic Origins|191|R|{5}{G}{G}|Sorcery|||Scry 5, then reveal the top card of your library. If it's a creature card, you draw cards equal to its power and you gain life equal to its toughness.| Orchard Spirit|Magic Origins|192|C|{2}{G}|Creature - Spirit|2|2|Orchard Spirit can't be blocked except by creatures with flying or reach.| Outland Colossus|Magic Origins|193|R|{3}{G}{G}|Creature - Giant|6|6|Renown 6 (When this creature deals combat damage to a player, if it isn't renowned, put six +1/+1 counters on it and it becomes renowned.)$Outland Colossus can't be blocked by more than one creature.| @@ -54996,7 +54996,7 @@ Surrakar Banisher|Duel Decks: Elspeth vs. Kiora|43|C|{4}{U}|Creature - Surrakar| Whelming Wave|Duel Decks: Elspeth vs. Kiora|44|R|{2}{U}{U}|Sorcery|||Return all creatures to their owners' hands except for Krakens, Leviathans, Octopuses, and Serpents.| Explore|Duel Decks: Elspeth vs. Kiora|45|C|{1}{G}|Sorcery|||You may play an additional land this turn.$Draw a card.| Explosive Vegetation|Duel Decks: Elspeth vs. Kiora|46|U|{3}{G}|Sorcery|||Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library.| -Grazing Gladehart|Duel Decks: Elspeth vs. Kiora|47|C|{2}{G}|Creature - Antelope|2|2|Landfall — Whenever a land enters the battlefield under your control, you may gain 2 life.| +Grazing Gladehart|Duel Decks: Elspeth vs. Kiora|47|C|{2}{G}|Creature - Antelope|2|2|Landfall � Whenever a land enters the battlefield under your control, you may gain 2 life.| Nessian Asp|Duel Decks: Elspeth vs. Kiora|48|C|{4}{G}|Creature - Snake|4|5|Reach${6}{G}: Monstrosity 4. (If this creature isn't monstrous, put four +1/+1 counters on it and it becomes monstrous.)| Netcaster Spider|Duel Decks: Elspeth vs. Kiora|49|C|{2}{G}|Creature - Spider|2|3|Reach (This creature can block creatures with flying.)$Whenever Netcaster Spider blocks a creature with flying, Netcaster Spider gets +2/+0 until end of turn.| Time to Feed|Duel Decks: Elspeth vs. Kiora|50|C|{2}{G}|Sorcery|||Choose target creature an opponent controls. When that creature dies this turn, you gain 3 life. Target creature you control fights that creature. (Each deals damage equal to its power to the other.)| @@ -55067,7 +55067,7 @@ Day of Judgment|Magic Player Rewards|49|Special|{2}{W}{W}|Sorcery|||Destroy all Brave the Elements|Magic Player Rewards|50|Special|{W}|Instant|||Choose a color. White creatures you control gain protection from the chosen color until end of turn.| Doom Blade|Magic Player Rewards|51|Special|{1}{B}|Instant|||Destroy target nonblack creature.| Treasure Hunt|Magic Player Rewards|52|Special|{1}{U}|Sorcery|||Reveal cards from the top of your library until you reveal a nonland card, then put all cards revealed this way into your hand.| -Searing Blaze|Magic Player Rewards|53|Special|{R}{R}|Instant|||Searing Blaze deals 1 damage to target player and 1 damage to target creature that player controls.$Landfall — If you had a land enter the battlefield under your control this turn, Searing Blaze deals 3 damage to that player and 3 damage to that creature instead.| +Searing Blaze|Magic Player Rewards|53|Special|{R}{R}|Instant|||Searing Blaze deals 1 damage to target player and 1 damage to target creature that player controls.$Landfall � If you had a land enter the battlefield under your control this turn, Searing Blaze deals 3 damage to that player and 3 damage to that creature instead.| Angelic Blessing|Tempest Remastered|1|C|{2}{W}|Sorcery|||Target creature gets +3/+3 and gains flying until end of turn.| Angelic Protector|Tempest Remastered|2|U|{3}{W}|Creature - Angel|2|2|Flying$Whenever Angelic Protector becomes the target of a spell or ability, Angelic Protector gets +0/+3 until end of turn.| Anoint|Tempest Remastered|3|C|{W}|Instant|||Buyback {3} (You may pay an additional {3} as you cast this spell. If you do, put this card into your hand as it resolves.)$Prevent the next 3 damage that would be dealt to target creature this turn.| @@ -55592,7 +55592,7 @@ Beastbreaker of Bala Ged|Duel Decks: Zendikar vs. Eldrazi|10|U|{1}{G}|Creature - Daggerback Basilisk|Duel Decks: Zendikar vs. Eldrazi|11|C|{2}{G}|Creature - Basilisk|2|2|Deathtouch| Frontier Guide|Duel Decks: Zendikar vs. Eldrazi|12|U|{1}{G}|Creature - Elf Scout|1|1|{3}{G}, {tap}: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Graypelt Hunter|Duel Decks: Zendikar vs. Eldrazi|13|C|{3}{G}|Creature - Human Warrior Ally|2|2|Trample$Whenever Graypelt Hunter or another Ally enters the battlefield under your control, you may put a +1/+1 counter on Graypelt Hunter.| -Grazing Gladehart|Duel Decks: Zendikar vs. Eldrazi|14|C|{2}{G}|Creature - Antelope|2|2|Landfall — Whenever a land enters the battlefield under your control, you may gain 2 life.| +Grazing Gladehart|Duel Decks: Zendikar vs. Eldrazi|14|C|{2}{G}|Creature - Antelope|2|2|Landfall � Whenever a land enters the battlefield under your control, you may gain 2 life.| Groundswell|Duel Decks: Zendikar vs. Eldrazi|15|C|{G}|Instant|||Target creature gets +2/+2 until end of turn.$Landfall - If you had a land enter the battlefield under your control this turn, that creature gets +4/+4 until end of turn instead.| Harrow|Duel Decks: Zendikar vs. Eldrazi|16|C|{2}{G}|Instant|||As an additional cost to cast Harrow, sacrifice a land.$Search your library for up to two basic land cards and put them onto the battlefield. Then shuffle your library.| Joraga Bard|Duel Decks: Zendikar vs. Eldrazi|17|C|{3}{G}|Creature - Elf Rogue Ally|1|4|Whenever Joraga Bard or another Ally enters the battlefield under your control, you may have Ally creatures you control gain vigilance until end of turn.| @@ -55675,8 +55675,8 @@ Angel of Renewal|Battle for Zendikar|018|U|{5}{W}|Creature - Angel Ally|4|4|Flyi Angelic Gift|Battle for Zendikar|019|C|{1}{W}|Enchantment - Aura|||Enchant creature$When Angelic Gift enters the battlefield, draw a card.$Enchanted creature has flying.| Cliffside Lookout|Battle for Zendikar|020|C|{W}|Creature - Kor Scout Ally|1|1|{4}{W}: Creatures you control get +1/+1 until end of turn.| Courier Griffin|Battle for Zendikar|020|C|{3}{W}|Creature - Griffin|2|3|Flying$When Courier Griffin enters the battlefield, you gain 2 life.| -Emeria Shepherd|Battle for Zendikar|22|R|{5}{W}{W}|Creature - Angel|4|4|Flying$Landfall — Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead.| -Encircling Fissure|Battle for Zendikar|023|U|{2}{W}|Instant|||Prevent all combat damage that would be dealt this turn by creatures target opponent controls.$Awaken 2 —{4}{W} (If you cast this spell for 5U, also put two +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Emeria Shepherd|Battle for Zendikar|22|R|{5}{W}{W}|Creature - Angel|4|4|Flying$Landfall � Whenever a land enters the battlefield under your control, you may return target nonland permanent card from your graveyard to your hand. If that land is a Plains, you may return that nonland permanent card to the battlefield instead.| +Encircling Fissure|Battle for Zendikar|023|U|{2}{W}|Instant|||Prevent all combat damage that would be dealt this turn by creatures target opponent controls.$Awaken 2 �{4}{W} (If you cast this spell for 5U, also put two +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Expedition Envoy|Battle for Zendikar|024|U|{W}|Creature - Human Scout Ally|2|1|| Felidar Cub|Battle for Zendikar|25|C|{1}{W}|Creature - Cat Beast|2|2|Sacrifice Felidar Cub: Destroy target enchantment.| Felidar Sovereign|Battle for Zendikar|26|R|{4}{W}{W}|Creature - Cat Beast|4|6|Vigilance, lifelink$At the beginning of your upkeep, if you have 40 or more life, you win the game.| @@ -55684,64 +55684,64 @@ Fortified Rampart|Battle for Zendikar|027|C|{1}{W}|Creature - Wall|0|6|Defender| Ghostly Sentinel|Battle for Zendikar|028|C|{4}{W}|Creature - Kor Spirit|3|3|Flying, vigilance| Gideon, Ally of Zendikar|Battle for Zendikar|29|M|{2}{W}{W}|Planeswalker - Gideon|4|+1: Until end of turn, Gideon, Ally of Zendikar becomes a 5/5 Human Soldier Ally creature with indestructible that's still a planeswalker. Prevent all damage that would be dealt to him this turn.$0: Put a 2/2 white Knight Ally creature token onto the battlefield.$-4: You get an emblem with "Creatures you control get +1/+1."| Gideon's Reproach|Battle for Zendikar|30|C|{1}{W}|Instant|||Gideon's Reproach deals 4 damage to target attacking or blocking creature.| -Hero of Goma Fada|Battle for Zendikar|31|R|{4}{W}|Creature - Human Knight Ally|4|3|Rally — Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| +Hero of Goma Fada|Battle for Zendikar|31|R|{4}{W}|Creature - Human Knight Ally|4|3|Rally � Whenever Hero of Goma Fada or another Ally enters the battlefield under your control, creatures you control gain indestructible until end of turn.| Inspired Charge|Battle for Zendikar|032|C|{2}{W}{W}|Instant|||Creatures you control get +2/+1 until end of turn.| Kitesail Scout|Battle for Zendikar|033|C|{W}|Creature - Kor Scout|1|1|Flying| -Kor Bladewhirl|Battle for Zendikar|034|U|{1}{W}|Creature - Kor Soldier Ally|2|2|Rally — Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn.| +Kor Bladewhirl|Battle for Zendikar|034|U|{1}{W}|Creature - Kor Soldier Ally|2|2|Rally � Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn.| Kor Castigator|Battle for Zendikar|035|C|{1}{W}|Creature - Kor Wizard Ally|3|1|Kor Castigator can't be blocked by Eldrazi Scions.| -Kor Entanglers|Battle for Zendikar|036|U|{4}{W}|Creature - Kor Soldier Ally|3|4|Rally — Whenever Kor Entanglers or another Ally enters the battlefield under your control, tap target creature an opponent controls.| -Lantern Scout|Battle for Zendikar|37|R|{2}{W}|Creature - Human Scout Ally|3|2|Rally — Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn.| +Kor Entanglers|Battle for Zendikar|036|U|{4}{W}|Creature - Kor Soldier Ally|3|4|Rally � Whenever Kor Entanglers or another Ally enters the battlefield under your control, tap target creature an opponent controls.| +Lantern Scout|Battle for Zendikar|37|R|{2}{W}|Creature - Human Scout Ally|3|2|Rally � Whenever Lantern Scout or another Ally enters the battlefield under your control, creatures you control gain lifelink until end of turn.| Lithomancer's Focus|Battle for Zendikar|038|C|{W}|Instant|||Target creature gets +2/+2 until end of turn. Prevent all damage that would be dealt to that creature this turn by colorless sources.| -Makindi Patrol|Battle for Zendikar|039|C|{2}{W}|Creature - Human Knight Ally|2|3|Rally — Whenever Makindi Patrol or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn.| -Ondu Greathorn|Battle for Zendikar|040|C|{3}{W}|Creature - Beast|2|3|First strike$Landfall — Whenever a land enters the battlefield under your control, Ondu Greathorn gets +2/+2 until end of turn.| -Ondu Rising|Battle for Zendikar|041|U|{1}{W}|Sorcery|||Whenever a creature attacks this turn, it gains lifelink until end of turn.$Awaken 4—{4}{W} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Planar Outburst|Battle for Zendikar|42|R|{3}{W}{W}|Sorcery|||Destroy all nonland creatures.$Awaken 4—{5}{W}{W}{W} (If you cast this spell for {5}{W}{W}{W}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Makindi Patrol|Battle for Zendikar|039|C|{2}{W}|Creature - Human Knight Ally|2|3|Rally � Whenever Makindi Patrol or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn.| +Ondu Greathorn|Battle for Zendikar|040|C|{3}{W}|Creature - Beast|2|3|First strike$Landfall � Whenever a land enters the battlefield under your control, Ondu Greathorn gets +2/+2 until end of turn.| +Ondu Rising|Battle for Zendikar|041|U|{1}{W}|Sorcery|||Whenever a creature attacks this turn, it gains lifelink until end of turn.$Awaken 4�{4}{W} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Planar Outburst|Battle for Zendikar|42|R|{3}{W}{W}|Sorcery|||Destroy all nonland creatures.$Awaken 4�{5}{W}{W}{W} (If you cast this spell for {5}{W}{W}{W}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Quarantine Field|Battle for Zendikar|43|M|{X}{X}{W}{W}|Enchantment|||Quarantine Field enters the battlefield with X isolation counters on it.$When Quarantine Field enters the battlefield, for each isolation counter on it, exile up to one target nonland permanent an opponent controls until Quarantine Field leaves the battlefield.| -Retreat to Emeria|Battle for Zendikar|44|U|{3}{W}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Put a 1/1 white Kor Ally creature token onto the battlefield.$• Creatures you control get +1/+1 until end of turn.| +Retreat to Emeria|Battle for Zendikar|44|U|{3}{W}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Put a 1/1 white Kor Ally creature token onto the battlefield.$� Creatures you control get +1/+1 until end of turn.| Roil's Retribution|Battle for Zendikar|045|U|{3}{W}{W}|Instant|||Roil's Retribution deals 5 damage divided as you choose among any number of target attacking or blocking creatures.| Serene Steward|Battle for Zendikar|046|U|{1}{W}|Creature - Human Cleric Ally|2|2|Whenever you gain life, you may pay {W}. If you do, put a +1/+1 counter on target creature.| Shadow Glider|Battle for Zendikar|047|C|{2}{W}|Creature - Kor Soldier|2|2|Flying| -Sheer Drop|Battle for Zendikar|48|C|{2}{W}|Sorcery|||Destroy target tapped creature.$Awaken 3—{5}{W} (If you cast this spell for {5}{W}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Sheer Drop|Battle for Zendikar|48|C|{2}{W}|Sorcery|||Destroy target tapped creature.$Awaken 3�{5}{W} (If you cast this spell for {5}{W}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Smite the Monstrous|Battle for Zendikar|049|C|{3}{W}|Instant|||Destroy target creature with power 4 or greater.| Stasis Snare|Battle for Zendikar|50|U|{1}{W}{W}|Enchantment|||Flash$When Stasis Snare enters the battlefield, exile target creature an opponent controls until Stasis Snare leaves the battlefield. (That creature returns under its owner's control.)| Stone Haven Medic|Battle for Zendikar|051|C|{1}{W}|Creature - Kor Cleric|1|3|{W}, {t}: You gain 1 life.| Tandem Tactics|Battle for Zendikar|52|C|{1}{W}|Instant|||Up to two target creatures each get +1/+2 until end of turn. You gain 2 life.| -Unified Front|Battle for Zendikar|053|U|{3}{W}|Sorcery|||Converge — Put a 1/1 white Kor Ally creature token onto the battlefield for each color of mana spent to cast Unified Front.| +Unified Front|Battle for Zendikar|053|U|{3}{W}|Sorcery|||Converge � Put a 1/1 white Kor Ally creature token onto the battlefield for each color of mana spent to cast Unified Front.| Adverse Conditions|Battle for Zendikar|54|U|{3}{U}|Instant|||Devoid (This card has no color.)$Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Anticipate|Battle for Zendikar|69|C|{1}{U}|Instant|||Look at the top three cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.| Benthic Infiltrator|Battle for Zendikar|55|C|{2}{U}|Creature - Eldrazi Drone|1|4|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)$Benthic Infiltrator can't be blocked.| -Brilliant Spectrum|Battle for Zendikar|70|C|{3}{U}|Sorcery|||Converge — Draw X cards, where X is the number of colors of mana spent to cast Brilliant Spectrum. Then discard two cards.| +Brilliant Spectrum|Battle for Zendikar|70|C|{3}{U}|Sorcery|||Converge � Draw X cards, where X is the number of colors of mana spent to cast Brilliant Spectrum. Then discard two cards.| Cloud Manta|Battle for Zendikar|71|C|{3}{U}|Creature - Fish|3|2|Flying| -Clutch of Currents|Battle for Zendikar|72|C|{U}|Sorcery|||Return target creature to its owner's hand.$Awaken 3—{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Coastal Discovery|Battle for Zendikar|073|U|{3}{U}|Sorcery|||Draw two cards.$Awaken 4—{5}{U} (If you cast this spell for {5}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Clutch of Currents|Battle for Zendikar|72|C|{U}|Sorcery|||Return target creature to its owner's hand.$Awaken 3�{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Coastal Discovery|Battle for Zendikar|073|U|{3}{U}|Sorcery|||Draw two cards.$Awaken 4�{5}{U} (If you cast this spell for {5}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Coralhelm Guide|Battle for Zendikar|74|C|{1}{U}|Creature - Merfolk Scout Ally|2|1|{4}{U}: Target creature can't be blocked this turn.| Cryptic Cruiser|Battle for Zendikar|56|U|{3}{U}|Creature - Eldrazi Processor|3|3|Devoid (This card has no color.)${2}{U}, Put a card an opponent owns from exile into that player's graveyard: Tap target creature.| Dampening Pulse|Battle for Zendikar|75|U|{3}{U}|Enchantment|||Creatures your opponents control get -1/-0.| Dispel|Battle for Zendikar|76|C|{U}|Instant|||Counter target instant spell.| Drowner of Hope|Battle for Zendikar|057|R|{5}{U}|Creature - Eldrazi|5|5|Devoid (This card has no color.)$When Drowner of Hope enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."$Sacrifice an Eldrazi Scion: Tap Target creature.| Eldrazi Skyspawner|Battle for Zendikar|58|C|{2}{U}|Creature - Eldrazi Drone|2|1|Devoid (This card has no color.)$Flying$When Eldrazi Skyspawner enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| -Exert Influence|Battle for Zendikar|077|R|{4}{U}|Sorcery|||Converge — Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence.| -Guardian of Tazeem|Battle for Zendikar|078|R|{3}{U}{U}|Creature - Sphinx|4|5|Flying$Landfall — Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. | +Exert Influence|Battle for Zendikar|077|R|{4}{U}|Sorcery|||Converge � Gain control of target creature if its power is less than or equal to the number of colors of mana spent to cast Exert Influence.| +Guardian of Tazeem|Battle for Zendikar|078|R|{3}{U}{U}|Creature - Sphinx|4|5|Flying$Landfall � Whenever a land enters the battlefield under your control, tap target creature an opponent controls. If that land is an Island, that creature doesn't untap during its controller's next untap step. | Halimar Tidecaller|Battle for Zendikar|79|U|{2}{U}|Creature - Human Wizard Ally|2|3|When Halimar Tidecaller enters the battlefield, you may return target card with awaken from your graveyard to your hand.$Land creatures you control have flying.| Horribly Awry|Battle for Zendikar|059|U|{1}{U}|Instant|||Devoid (This card has no color.)$Counter target creature spell with converted mana cost 4 or less. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.| Incubator Drone|Battle for Zendikar|060|C|{3}{U}|Creature - Eldrazi Drone|2|3|Devoid (This card has no color.)$When Incubator Drone enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Mist Intruder|Battle for Zendikar|061|C|{1}{U}|Creature - Eldrazi Drone|1|2|Devoid (This card has no color.)$Flying$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)| Murk Strider|Battle for Zendikar|62|C|{3}{U}|Creature - Eldrazi Processor|3|2|When Murk Strider enters the battlefield, you may put a card an opponent owns from exile into that player's graveyard. If you do, return target creature to its owner's hand.| Oracle of Dust|Battle for Zendikar|63|C|{4}{U}|Creature - Eldrazi Processor|3|5|Devoid (This card has no color.)${2}, Put a card an opponent owns from exile into that player's graveyard: Draw a card, then discard a card.| -Part the Waterveil|Battle for Zendikar|80|M|{4}{U}{U}|Sorcery|||Take an extra turn after this one. Exile Part the Waterveil.$Awaken 6—{6}{U}{U}{U} (If you cast this spell for {6}{U}{U}{U}, also put six +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Prism Array|Battle for Zendikar|081|R|{4}{U}|Enchantment|||Converge — Prism Array enters the battlfield with a crystal counter on it for each color of mana spent to cast it.$Remove a crystal counter from Prism Array: Tap target creature.${W}{U}{B}{R}{G}: Scry 3. | -Retreat to Coralhelm|Battle for Zendikar|082|U|{2}{U}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• You may tap or untap target creature.$• Scry 1.| -Roilmage's Trick|Battle for Zendikar|83|C|{3}{U}|Instant|||Converge — Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast Roilmage's Trick.$Draw a card.| +Part the Waterveil|Battle for Zendikar|80|M|{4}{U}{U}|Sorcery|||Take an extra turn after this one. Exile Part the Waterveil.$Awaken 6�{6}{U}{U}{U} (If you cast this spell for {6}{U}{U}{U}, also put six +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Prism Array|Battle for Zendikar|081|R|{4}{U}|Enchantment|||Converge � Prism Array enters the battlfield with a crystal counter on it for each color of mana spent to cast it.$Remove a crystal counter from Prism Array: Tap target creature.${W}{U}{B}{R}{G}: Scry 3. | +Retreat to Coralhelm|Battle for Zendikar|082|U|{2}{U}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� You may tap or untap target creature.$� Scry 1.| +Roilmage's Trick|Battle for Zendikar|83|C|{3}{U}|Instant|||Converge � Creatures your opponents control get -X/-0 until end of turn, where X is the number of colors of mana spent to cast Roilmage's Trick.$Draw a card.| Ruination Guide|Battle for Zendikar|64|U|{2}{U}|Creature - Eldrazi Drone|3|2|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)$Other colorless creatures you control get +1/+0.| -Rush of Ice|Battle for Zendikar|84|C|{U}|Sorcery|||Tap target creature. It doesn't untap during its controller's next untap step.$Awaken 3—{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Rush of Ice|Battle for Zendikar|84|C|{U}|Sorcery|||Tap target creature. It doesn't untap during its controller's next untap step.$Awaken 3�{4}{U} (If you cast this spell for {4}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Salvage Drone|Battle for Zendikar|65|C|{U}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)$When Salvage Drone dies, you may draw a card. If you do, discard a card.| -Scatter to the Winds|Battle for Zendikar|85|R|{1}{U}{U}|Instant|||Counter target spell.$Awaken 3—{4}{U}{U} (If you cast this spell for {4}{U}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Scatter to the Winds|Battle for Zendikar|85|R|{1}{U}{U}|Instant|||Counter target spell.$Awaken 3�{4}{U}{U} (If you cast this spell for {4}{U}{U}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Spell Shrivel|Battle for Zendikar|66|C|{2}{U}|Instant|||Devoid (This card has no color.)$Counter target spell unless its controller pays {4}. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.| Tide Drifter|Battle for Zendikar|67|U|{1}{U}|Creature - Eldrazi Drone|0|5|Devoid (This card has no color.)$Other colorless creatures you control get +0/+1.| Tightening Coils|Battle for Zendikar|86|C|{1}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature gets -6/-0 and loses flying.| Ugin's Insight|Battle for Zendikar|087|R|{3}{U}{U}|Sorcery|||Scry X, where X is the highest converted mana cost among permanents you control, then draw three cards.| Ulamog's Reclaimer|Battle for Zendikar|68|U|{4}{U}|Creature - Eldrazi Processor|2|5|Devoid (This card has no color.)$When Ulamog's Reclaimer enters the battlefield, you may put a card an opponent owns from exile into that player's graveyard. If you do, return target instant or sorcery card from your graveyard to your hand.| -Wave-Wing Elemental|Battle for Zendikar|088|C|{5}{U}|Creature - Elemental|3|4|Flying$Landfall — Whenver a land enters the battlefield under your control, Wave-Wing Elemental gets +2/+2 until end of turn.| +Wave-Wing Elemental|Battle for Zendikar|088|C|{5}{U}|Creature - Elemental|3|4|Flying$Landfall � Whenver a land enters the battlefield under your control, Wave-Wing Elemental gets +2/+2 until end of turn.| Windrider Patrol|Battle for Zendikar|089|U|{3}{U}{U}|Creature - Merfolk Wizard|4|3|Flying$Whenever Windrider Patrol deals combat damage to a player, scry 2.| Altar's Reap|Battle for Zendikar|103|C|{1}{B}|Instant|||As an additional cost to cast Altar's Reap, sacrifice a creature.$Draw two cards.| Bloodbond Vampire|Battle for Zendikar|104|U|{2}{B}{B}|Creature - Vampire Shaman Ally|3|3|Whenever you gain life, put a +1/+1 counter on Bloodbond Vampire.| @@ -55757,7 +55757,7 @@ Dutiful Return|Battle for Zendikar|110|C|{3}{B}|Sorcery|||Return up to two targe Geyserfield Stalker|Battle for Zendikar|111|C|{4}{B}|Creature - Elemental|3|2|Menace$Landfall - Whenever a land enters the battlefield under your control, Geyserfield Stalker gets +2/+2 until end of turn.| Grave Birthing|Battle for Zendikar|93|C|{2}{B}|Instant|||Devoid (This card has no color.)$Target opponent exiles a card from his or her graveyard. You put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."$Draw a card.| Grip of Desolation|Battle for Zendikar|94|U|{4}{B}{B}|Intant|||Devoid (This card has no color.)$Exile target creature and target land.| -Guul Draz Overseer|Battle for Zendikar|112|R|{4}{B}{B}|Creature - Vampire|3|4|Flying$Landfall — Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead.| +Guul Draz Overseer|Battle for Zendikar|112|R|{4}{B}{B}|Creature - Vampire|3|4|Flying$Landfall � Whenever a land enters the battlefield under your control, other creatures you control get +1/+0 until end of turn. If that land is a Swamp, those creatures get +2/+0 until end of turn instead.| Hagra Sharpshooter|Battle for Zendikar|113|U|{2}{B}|Creature - Human Assassin Ally|2|2|{4}{B}: Target creature gets -1/-1 until end of turn.| Kalastria Healer|Battle for Zendikar|114|C|{1}{B}|Creature - Vampire Cleric Ally|1|2|Rally - Whenever Kalastria Healer or another Ally enters the battlefield under your control, each opponent loses 1 life and you gain 1 life.| Kalastria Nightwatch|Battle for Zendikar|115|C|{4}{B}|Creature - Vampire Warrior Ally|4|5|Whenever you gain life, Kalastria Nightwatch gains flying until end of turn.| @@ -55766,10 +55766,10 @@ Mind Raker|Battle for Zendikar|95|C|{3}{B}|Creature - Eldrazi Processor|3|3|Devo Mire's Malice|Battle for Zendikar|117|C|{3}{B}|Sorcery|||Target opponent discards two cards.$Awaken 3 - {5}{B} (If you cast this spell for {5}{B}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Nirkana Assassin|Battle for Zendikar|118|C|{2}{B}|Creature - Vampire Assassin Ally|2|3|Whenever you gain life, Nirkana Assassin gains deathtouch until end of turn.| Ob Nixilis Reignited|Battle for Zendikar|119|M|{3}{B}{B}|Planeswalker - Nixilis|5|+1: You draw a card and you lose 1 life.$-3: Destroy target creature.$-8: Target opponent gets an emblem with "Whenever a player draws a card, you lose 2 life."| -Painful Truths|Battle for Zendikar|120|R|{2}{B}|Sorcery|||Converge — You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths.| -Retreat to Hagra|Battle for Zendikar|121|U|{2}{B}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Target creature gets +1/+0 and gains deathtouch until end of turn.$• Each opponent loses 1 life and you gain 1 life.| +Painful Truths|Battle for Zendikar|120|R|{2}{B}|Sorcery|||Converge � You draw X cards and you lose X life, where X is the number of colors of mana spent to cast Painful Truths.| +Retreat to Hagra|Battle for Zendikar|121|U|{2}{B}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Target creature gets +1/+0 and gains deathtouch until end of turn.$� Each opponent loses 1 life and you gain 1 life.| Rising Miasma|Battle for Zendikar|122|U|{3}{B}|Sorcery|||All creatures get -2/-2 until end of turn. $Awaken 3 - {5}{B}{B} (If you cast this spell for {5}{B}{B}, also put three +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Ruinous Path|Battle for Zendikar|123|R|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.$Awaken 4—{5}{B}{B} (If you cast this spell for {5}{B}{B}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Ruinous Path|Battle for Zendikar|123|R|{1}{B}{B}|Sorcery|||Destroy target creature or planeswalker.$Awaken 4�{5}{B}{B} (If you cast this spell for {5}{B}{B}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Silent Skimmer|Battle for Zendikar|96|C|{3}{B}|Creature - Eldrazi Drone|0|4|Devoid (This card has no color.)$Flying$Whenever Silent Skimmer attacks, defending player loses 2 life.| Skitterskin|Battle for Zendikar|97|U|{3}{B}|Creature - Eldrazi Drone|4|3|Devoid (This card has no color.)$Skitterskin can't block.${1}{B}: Regenerate Skitterskin. Activate this ability only if you control another colorless creature.| Sludge Crawler|Battle for Zendikar|98|C|{B}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$Ingest (Whenever this creature deals combat damage to a player, exile the top card of his or her library)${2}: Sludge Crawler gets +1/+1 until end of turn.| @@ -55780,28 +55780,28 @@ Vampiric Rites|Battle for Zendikar|124|U|{B}|Enchantment|||{1}{B}, Sacrifice a c Voracious Null|Battle for Zendikar|125|C|{2}{B}|Creature - Zombie|2|2|{1}{B}, Sacrifice another creature: Put two +1/+1 counters on Voracious Null. Activate this ability only any time you could cast a sorcery.| Wasteland Strangler|Battle for Zendikar|102|R|{2}{B}|Creature - Eldrazi Processor|3|2|Devoid (This card has no color.)$When Wasteland Strangler enters the battlefield, you may put a card an opponent owns from exile into that player's graveyard. If you do, target creature gets -3/-3 until end of turn.| Zulaport Cutthroat|Battle for Zendikar|126|U|{1}{B}|Creature - Human Rogue Ally|1|1|Whenever Zulaport Cutthroat or another creature you control dies, each opponent loses 1 life and you gain 1 life.| -Akoum Firebird|Battle for Zendikar|138|M|{2}{R}{R}|Creature - Phoenix|3|3|Flying, haste$Akoum Firebird attacks each turn if able.$Landfall — Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield.| -Akoum Hellkite|Battle for Zendikar|139|R|{4}{R}{R}|Creature - Dragon|4|4|Flying$Landfall — Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land was a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.| -Akoum Stonewaker|Battle for Zendikar|140|U|{1}{R}|Creature - Human Shaman|2|1|Landfall — Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step.| +Akoum Firebird|Battle for Zendikar|138|M|{2}{R}{R}|Creature - Phoenix|3|3|Flying, haste$Akoum Firebird attacks each turn if able.$Landfall � Whenever a land enters the battlefield under your control, you may pay {4}{R}{R}. If you do, return Akoum Firebird from your graveyard to the battlefield.| +Akoum Hellkite|Battle for Zendikar|139|R|{4}{R}{R}|Creature - Dragon|4|4|Flying$Landfall � Whenever a land enters the battlefield under your control, Akoum Hellkite deals 1 damage to target creature or player. If that land was a Mountain, Akoum Hellkite deals 2 damage to that creature or player instead.| +Akoum Stonewaker|Battle for Zendikar|140|U|{1}{R}|Creature - Human Shaman|2|1|Landfall � Whenever a land enters the battlefield under your control, you may pay {2}{R}. If you do, put a 3/1 red Elemental creature token with trample and haste onto the battlefield. Exile that token at the beginning of the next end step.| Barrage Tyrant|Battle for Zendikar|127|R|{4}{R}|Creature - Eldrazi|5|3|Devoid (This card has no color.)${2}{R}, Sacrifice another colorless creature: Barrage Tyrant deals damage equal to the sacrificed creature's power to target creature or player.| -Belligerent Whiptail|Battle for Zendikar|141|C|{3}{R}|Creature - Wurm|4|2|Landfall — Whenever a land enters the battlefield under your control, Belligerent Whiptail gains first strike until end of turn.| -Boiling Earth|Battle for Zendikar|142|C|{1}{R}|Sorcery|||Boiling Earth deals 1 damage to each creature your opponents control.$Awaken 4—{6}{R} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| -Chasm Guide|Battle for Zendikar|143|U|{3}{R}|Creature - Goblin Scout Ally|3|2|Rally — Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn.| +Belligerent Whiptail|Battle for Zendikar|141|C|{3}{R}|Creature - Wurm|4|2|Landfall � Whenever a land enters the battlefield under your control, Belligerent Whiptail gains first strike until end of turn.| +Boiling Earth|Battle for Zendikar|142|C|{1}{R}|Sorcery|||Boiling Earth deals 1 damage to each creature your opponents control.$Awaken 4�{6}{R} (If you cast this spell for 5U, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Chasm Guide|Battle for Zendikar|143|U|{3}{R}|Creature - Goblin Scout Ally|3|2|Rally � Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn.| Crumble to Dust|Battle for Zendikar|128|U|{3}{R}|Sorcery|||Devoid (This card has no color.)$Exile target nonbasic land. Search it's controller's graveyard, hand and library for any number of cards with the same name as that land and exile them. Then that player shuffles his or her library.| Dragonmaster Outcast|Battle for Zendikar|144|M|{R}|Creature - Human Shaman|1|1|At the beginning of your upkeep, if you control six or more lands, put a 5/5 red Dragon creature token with flying onto the battlefield.| -Firemantle Mage|Battle for Zendikar|145|U|{2}{R}|Creature - Human Shaman Ally|2|2|Rally — Whenver Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn.| +Firemantle Mage|Battle for Zendikar|145|U|{2}{R}|Creature - Human Shaman Ally|2|2|Rally � Whenver Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn.| Goblin War Paint|Battle for Zendikar|146|C|{1}{R}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2 and has haste.| Kozilek's Sentinel|Battle for Zendikar|129|C|{1}{R}|Creature - Eldrazi Drone|1|4|Devoid (This card has no color.)$Whenever you cast a colorless spell, Kozilek's Sentinel gets +1/+0 until end of turn.| Lavastep Raider|Battle for Zendikar|147|C|{R}|Creature - Goblin Warrior|1|1|{2}{R}: Lavastep Raider gets +2/+0 until end of turn.| -Makindi Sliderunner|Battle for Zendikar|148|C|{1}{R}|Creature - Beast|2|1|Trample$Landfall — Whenever a land enters the battlefield under your control, Makindi Sliderunner gets +1/+1 until end of turn.| +Makindi Sliderunner|Battle for Zendikar|148|C|{1}{R}|Creature - Beast|2|1|Trample$Landfall � Whenever a land enters the battlefield under your control, Makindi Sliderunner gets +1/+1 until end of turn.| Molten Nursery|Battle for Zendikar|130|U|{2}{R}|Enchantment|||Devoid (This card has no color.)$Whenever you cast a colorless spell, Molten Nursery deals 1 damage to target creature or player.| Nettle Drone|Battle for Zendikar|131|C|{2}{R}|Creature - Eldrazi Drone|3|1|Devoid (This card has no color.)${t}: Nettle Drone deals 1 damage to each opponent.$Whenever you cast a colorless spell, untap Nettle Drone.| -Ondu Champion|Battle for Zendikar|149|C|{2}{R}{R}|Creature - Minotaur Warrior Ally|4|3|Rally — Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn.| +Ondu Champion|Battle for Zendikar|149|C|{2}{R}{R}|Creature - Minotaur Warrior Ally|4|3|Rally � Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn.| Outnumber|Battle for Zendikar|150|C|{R}|Instant|||Outnumber deals damage to target creature equal to the number of creatures you control.| Processor Assault|Battle for Zendikar|132|U|{1}{R}|Sorcery|||Devoid (This card has no color.)$As an additional cost to cast Processor Assault, put a card an opponent owns from exile into its owner's graveyard.$Processor Assault deals 5 damage to target creature.| -Radiant Flames|Battle for Zendikar|151|R|{2}{R}|Sorcery|||Converge — Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames.| +Radiant Flames|Battle for Zendikar|151|R|{2}{R}|Sorcery|||Converge � Radiant Flames deals X damage to each creature, where X is the number of colors of mana spent to cast Radiant Flames.| Reckless Cohort|Battle for Zendikar|152|C|{1}{R}|Creature - Human Warrior Ally|2|2|Reckless Cohort attacks each combat if able unless you control another Ally.| -Retreat to Valakut|Battle for Zendikar|153|U|{2}{R}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Target creature gets +2/+0 until end of turn.$• Target creature can't block this turn.| +Retreat to Valakut|Battle for Zendikar|153|U|{2}{R}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Target creature gets +2/+0 until end of turn.$� Target creature can't block this turn.| Rolling Thunder|Battle for Zendikar|154|U|{X}{R}{R}|Sorcery|||Rolling Thunder deals X damage divided as you choose among any number of target creatures and/or players.| Serpentine Spike|Battle for Zendikar|133|R|{5}{R}{R}|Sorcery|||Devoid (This card has no color.)$Serpentine Spike deals 2 damage to target creature, 3 damage to another target creature, and 4 damage to a third target creature. If a creature dealt damage this way would die this turn, exile it instead.| Shatterskull Recruit|Battle for Zendikar|155|C|{3}{R}{R}|Creature - Giant Warrior Ally|4|4|Menace| @@ -55832,47 +55832,47 @@ Lifespring Druid|Battle for Zendikar|177|C|{2}{G}|Creature - Elf Druid|2|1|{T}: Murasa Ranger|Battle for Zendikar|178|U|{3}{G}|Creature - Human Warrior|3|3|Landfall - Whenever a land enters the battlefield under your control, you may pay {3}{G}. IF you do, put two +1/+1 counters on Murasa Ranger.| Natural Connection|Battle for Zendikar|179|C|{2}{G}|Instant|||Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| Nissa's Renewal|Battle for Zendikar|180|R|{5}{G}|Sorcery|||Search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library. You gain 7 life.| -Oran-Rief Hydra|Battle for Zendikar|181|R|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| +Oran-Rief Hydra|Battle for Zendikar|181|R|{4}{G}{G}|Creature - Hydra|5|5|Trample$Landfall � Whenever a land enters the battlefield under your control, put a +1/+1 counter on Oran-Rief Hydra. If that land is a Forest, put two +1/+1 counters on Oran-Rief Hydra instead.| Oran-Rief Invoker|Battle for Zendikar|182|C|{1}{G}|Creature - Human Shaman|2|2|{8}: Oran-Rief Invoker gets +5/+5 and gains trample until end of turn.| Plated Crusher|Battle for Zendikar|183|U|{4}{G}{G}{G}|Creature - Beast|7|6|Trample, hexproof| Plummet|Battle for Zendikar|184|C|{1}{G}|Instant|||Destroy target creature with flying.| Reclaiming Vines|Battle for Zendikar|185|C|{2}{G}{G}|Sorcery|||Destroy target artifact, enchantment, or land.| -Retreat to Kazandu|Battle for Zendikar|186|U|{2}{G}|Enchantment|||Landfall — Whenever a land enters the battlefield under your control, choose one —$• Put a +1/+1 counter on target creature.$• You gain 2 life.| +Retreat to Kazandu|Battle for Zendikar|186|U|{2}{G}|Enchantment|||Landfall � Whenever a land enters the battlefield under your control, choose one �$� Put a +1/+1 counter on target creature.$� You gain 2 life.| Rot Shambler|Battle for Zendikar|187|U|{1}{G}|Creature - Fungus|1|1|Whenever another creature you control dies, put a +1/+1 counter on Rot Shambler.| -Scythe Leopard|Battle for Zendikar|188|U|{G}|Creature - Cat|1|1|Landfall — Whenever a land enters the battlefield under your control, Scythe Leopard gets +1/+1 until end of turn.| +Scythe Leopard|Battle for Zendikar|188|U|{G}|Creature - Cat|1|1|Landfall � Whenever a land enters the battlefield under your control, Scythe Leopard gets +1/+1 until end of turn.| Seek the Wilds|Battle for Zendikar|189|C|{1}{G}|Sorcery|||Look at the top four cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in any order.| -Snapping Gnarlid|Battle for Zendikar|190|C|{1}{G}|Creature - Beast|2|2|Landfall — Whenever a land enters the battlefield under your control, Snapping Gnarlid gets +1/+1 until end of turn.| +Snapping Gnarlid|Battle for Zendikar|190|C|{1}{G}|Creature - Beast|2|2|Landfall � Whenever a land enters the battlefield under your control, Snapping Gnarlid gets +1/+1 until end of turn.| Swell of Growth|Battle for Zendikar|191|C|{1}{G}|Instant|||Target creature gets +2/+2 until end of turn. You may put a land card from your hand onto the battlefield.| Sylvan Scrying|Battle for Zendikar|192|U|{1}{G}|Sorcery|||Search your library for a land card, reveal it, and put it into your hand. Then shuffle your library.| Tajuru Beastmaster|Battle for Zendikar|193|C|{5}{G}|Creature - Elf Warrior Ally|5|5|Rally - Whenever Tajuru Beastmaster or another Ally creature enters the battlefield under your control, creatures you control get +1/+1 until end of turn.| Tajuru Stalwart|Battle for Zendikar|194|C|{2}{G}|Creature - Elf Scout Ally|0|1|Converge - Tajuru Stalwart enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| -Tajuru Warcaller|Battle for Zendikar|195|U|{3}{G}{G}|Creature - Elf Warrior Ally|2|1|Rally — Whenever Tajuru Warcaller or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn.| +Tajuru Warcaller|Battle for Zendikar|195|U|{3}{G}{G}|Creature - Elf Warrior Ally|2|1|Rally � Whenever Tajuru Warcaller or another Ally enters the battlefield under your control, creatures you control get +2/+2 until end of turn.| Territorial Baloth|Battle for Zendikar|196|C|{4}{G}|Creature - Beast|4|4|Landfall - Whenever a land enters the battlefield under your control, Territorial Baloth gets +2/+2 until end of turn.| -Undergrowth Champion|Battle for Zendikar|197|M|{1}{G}{G}|Creature - Elemental|2|2|If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion.$Landfall — Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion.| +Undergrowth Champion|Battle for Zendikar|197|M|{1}{G}{G}|Creature - Elemental|2|2|If damage would be dealt to Undergrowth Champion while it has a +1/+1 counter on it, prevent that damage and remove a +1/+1 counter from Undergrowth Champion.$Landfall � Whenever a land enters the battlefield under your control, put a +1/+1 counter on Undergrowth Champion.| Unnatural Aggression|Battle for Zendikar|168|C|{2}{G}|Instant|||Devoid (This card has no color.)$Target creature you control fights target creature an opponent controls. If the creature an opponent controls would die this turn, exile it instead.| Void Attendant|Battle for Zendikar|169|U|{2}{G}|Creature - Eldrazi Processor|2|3|Devoid (This card has no color.)${1}{G}, Put a card an opponent owns from exile into that player's graveyard: Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| -Woodland Wanderer|Battle for Zendikar|198|R|{3}{G}|Creature - Elemental|2|2|Vigilance, trample$Converge — Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| +Woodland Wanderer|Battle for Zendikar|198|R|{3}{G}|Creature - Elemental|2|2|Vigilance, trample$Converge � Woodland Wanderer enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| Angelic Captain|Battle for Zendikar|208|R|{3}{R}{W}|Creature - Angel Ally|4|3|Flying$Whenever Angelic Captain attacks, it gets +1/+1 until end of turn for each other attacking Ally.| -Bring to Light|Battle for Zendikar|209|R|{3}{G}{U}|Sorcery|||Converge — Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost.| +Bring to Light|Battle for Zendikar|209|R|{3}{G}{U}|Sorcery|||Converge � Search your library for a creature, instant, or sorcery card with converted mana cost less than or equal to the number of colors of mana spent to cast Bring to Light, exile that card, then shuffle your library. You may cast that card without paying its mana cost.| Brood Butcher|Battle for Zendikar|199|R|{3}{B}{G}|Creature - Eldrazi Drone|3|3|Devoid (This card has no color.)$When Brood Butcher enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."${B}{G}, Sacrifice a creature: Target creature gets -2/-2 until end of turn.| -Brutal Expulsion|Battle for Zendikar|200|R|{2}{U}{R}|Instant|||Devoid (This card has no color.)$Choose one or both —$• Return target spell or creature to its owner's hand.$• Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead.| +Brutal Expulsion|Battle for Zendikar|200|R|{2}{U}{R}|Instant|||Devoid (This card has no color.)$Choose one or both �$� Return target spell or creature to its owner's hand.$� Brutal Expulsion deals 2 damage to target creature or planeswalker. If that permanent would be put into a graveyard this turn, exile it instead.| Catacomb Sifter|Battle for Zendikar|201|U|{1}{B}{G}|Creature - Eldrazi Drone|2|3|Devoid (This card has no color.)$When Catacomb Sifter enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: add {C} to your mana pool."$Whenever another creature you control dies, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)| Drana's Emissary|Battle for Zendikar|210|U|{1}{W}{B}|Creature - Vampire Cleric Ally|2|2|Flying$At the beginning of your upkeep, each opponent loses 1 life and you gain 1 life.| Dust Stalker|Battle for Zendikar|202|R|{2}{B}{R}|Creature - Eldrazi|5|3|Devoid (This card has no color.)$Haste$At the beginning of each end step, if you control no other colorless creatures, return Dust Stalker to its owner's hand.| Fathom Feeder|Battle for Zendikar|203|R|{U}{B}|Creature - Eldrazi Drone|1|1|Devoid (This creature has no color.)$Deathtouch$Ingest (Whenever this creature deals combat damage to a player, that player exiles the top card of his or her library.)${3}{U}{B}: Draw a card. Each opponent exiles the top card of his or her library.| Forerunner of Slaughter|Battle for Zendikar|204|U|{B}{R}|Creature - Eldrazi Drone|3|2|Devoid (This card has no color.)${1}: Target colorless creature gains haste until end of turn.| -Grove Rumbler|Battle for Zendikar|211|U|{2}{R}{G}|Creature - Elemental|3|3|Trample$Landfall — Whenever a land enters the battlefield under your control, Grove Rumbler gets +2/+2 until end of turn.| -Grovetender Druids|Battle for Zendikar|212|U|{2}{G}{W}|Creature - Elf Druid Ally|3|3|Rally — Whenever Grovetender Druids or another Ally enters the battlefield under your control, you may pay {1}. If you do, put a 1/1 green Plant creature token onto the battlefield.| +Grove Rumbler|Battle for Zendikar|211|U|{2}{R}{G}|Creature - Elemental|3|3|Trample$Landfall � Whenever a land enters the battlefield under your control, Grove Rumbler gets +2/+2 until end of turn.| +Grovetender Druids|Battle for Zendikar|212|U|{2}{G}{W}|Creature - Elf Druid Ally|3|3|Rally � Whenever Grovetender Druids or another Ally enters the battlefield under your control, you may pay {1}. If you do, put a 1/1 green Plant creature token onto the battlefield.| Herald of Kozilek|Battle for Zendikar|205|U|{1}{U}{R}|Creature - Eldrazi Drone|2|4|Devoid (This card has no color.)$Colorless spells you cast cost {1} less.| Kiora, Master of the Depths|Battle for Zendikar|213|M|{2}{G}{U}|Planeswalker - Kiora|4|+1: Untap up to one target creature and up to one target land.$-2: Reveal the top four cards of your library. You may put a creature card and/or a land card from among them into your hand. Put the rest into your graveyard.$-8: You get an emblem with "Whenever a creature enters the battlefield under your control, you may have it fight target creature." Then put three 8/8 blue Octopus creature tokens onto the battlefield under your control.| March from the Tomb|Battle for Zendikar|214|R|{3}{W}{B}|Sorcery|||Return any number of target Ally creature cards with total converted mana cost 8 or less from your graveyard to the battlefield.| -Munda, Ambush Leader|Battle for Zendikar|215|R|{2}{R}{W}|Legendary Creature - Kor Ally|3|4|Haste$Rally — Whenever Munda, Ambush Leader or another Ally enters the battlefield under you control, you may look at the top four cards of your library. If you do, reveal any number of Ally cards from among them, then put those cards on top of your library in any order and the rest on the bottom in any order.| +Munda, Ambush Leader|Battle for Zendikar|215|R|{2}{R}{W}|Legendary Creature - Kor Ally|3|4|Haste$Rally � Whenever Munda, Ambush Leader or another Ally enters the battlefield under you control, you may look at the top four cards of your library. If you do, reveal any number of Ally cards from among them, then put those cards on top of your library in any order and the rest on the bottom in any order.| Noyan Dar, Roil Shaper|Battle for Zendikar|216|R|{3}{W}{U}|Legendary Creature - Merfolk Ally|4|4|Whenever you cast an instant or sorcery spell, you may put three +1/+1 counters on target land you control. If you do, that land becomes a 0/0 Elemental creature with haste that's still a land.| -Omnath, Locus of Rage|Battle for Zendikar|217|M|{3}{R}{R}{G}{G}|Legendary Creature - Elemental|5|5|Landfall — Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield.$Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player.| -Resolute Blademaster|Battle for Zendikar|218|U|{3}{R}{W}|Creature - Human Soldier Ally|2|2|Rally — Whenever Resolute Blademaster or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn.| -Roil Spout|Battle for Zendikar|219|U|{1}{W}{U}|Sorcery|||Put target creature on top of its owner's library.$Awaken 4—{4}{W}{U} (If you cast this spell for {4}{W}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| +Omnath, Locus of Rage|Battle for Zendikar|217|M|{3}{R}{R}{G}{G}|Legendary Creature - Elemental|5|5|Landfall � Whenever a land enters the battlefield under your control, put a 5/5 red and green Elemental creature token onto the battlefield.$Whenever Omnath, Locus of Rage or another Elemental you control dies, Omnath deals 3 damage to target creature or player.| +Resolute Blademaster|Battle for Zendikar|218|U|{3}{R}{W}|Creature - Human Soldier Ally|2|2|Rally � Whenever Resolute Blademaster or another Ally enters the battlefield under your control, creatures you control gain double strike until end of turn.| +Roil Spout|Battle for Zendikar|219|U|{1}{W}{U}|Sorcery|||Put target creature on top of its owner's library.$Awaken 4�{4}{W}{U} (If you cast this spell for {4}{W}{U}, also put four +1/+1 counters on target land you control and it becomes a 0/0 Elemental creature with haste. It's still a land.)| Sire of Stagnation|Battle for Zendikar|206|M|{4}{U}{B}|Creature - Eldrazi|5|7|Devoid (This card has no color.)$Whenever a land enters the battlefield under an opponent's control, that player exiles the top two cards of his or her library and you draw two cards.| -Skyrider Elf|Battle for Zendikar|220|U|{X}{G}{U}|Creature - Elf Warrior Ally|0|0|Flying$Converge — Skyrider Elf enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| +Skyrider Elf|Battle for Zendikar|220|U|{X}{G}{U}|Creature - Elf Warrior Ally|0|0|Flying$Converge � Skyrider Elf enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.| Ulamog's Nullifier|Battle for Zendikar|207|U|{2}{U}{B}|Creature - Eldrazi Processor|2|3|Devoid (This card has no color.)$Flash$Flying$When Ulamog's Nullifier enters the battlefield, you may put two cards your opponents own from exile into their owners' graveyards. If you do, counter target spell.| Veteran Warleader|Battle for Zendikar|221|R|{1}{G}{W}|Creature - Human Soldier Ally|0|0|Veteran Warleader's power and toughness are each equal to the number of creatures you control.$Tap another untapped Ally you control: Veteran Warleader gains your choice of first strike, vigilance, or trample until end of turn.| Aligned Hedron Network|Battle for Zendikar|222|R|{4}|Artifact|||When Aligned Hedron Network enters the battlefield, exile all creatures with power 5 or greater until Aligned Hedron Network leaves the battlefield. (Those creatures return under their owners' control.)| @@ -55973,7 +55973,7 @@ Sever the Bloodline|Commander 2015|136|R|{3}{B}|Sorcery|||Exile target creature Shriekmaw|Commander 2015|137|U|{4}{B}|Creature - Elemental|3|2|Fear (This creature can't be blocked except by artifact creatures and/or black creatures.)$When Shriekmaw enters the battlefield, destroy target nonartifact, nonblack creature.$Evoke {1}{B} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.)| Underworld Connections|Commander 2015|138|R|{1}{B}{B}|Enchantment - Aura|||Enchant land$Enchanted land has "{tap}, Pay 1 life: Draw a card."| Victimize|Commander 2015|139|U|{2}{B}|Sorcery|||Choose two target creature cards in your graveyard. Sacrifice a creature. If you do, return the chosen cards to the battlefield tapped.| -Mystic Confluence|Commander 2015|14|R|{3}{U}{U}|Instant|||Choose three. You may choose the same mode more than once.$• Counter target spell unless its controller pays {3}.$• Return target creature to its owner's hand.$• Draw a card.| +Mystic Confluence|Commander 2015|14|R|{3}{U}{U}|Instant|||Choose three. You may choose the same mode more than once.$� Counter target spell unless its controller pays {3}.$� Return target creature to its owner's hand.$� Draw a card.| Vow of Malice|Commander 2015|140|U|{2}{B}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2, has intimidate, and can't attack you or a planeswalker you control. (A creature with intimidate can't be blocked except by artifact creatures and/or creatures that share a color with it.)| Act of Aggression|Commander 2015|141|U|{3}{RP}{RP}|Instant|||({RP} can be paid with either {R} or 2 life.)$Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.| Borderland Behemoth|Commander 2015|142|R|{5}{R}{R}|Creature - Giant Warrior|4|4|Trample$Borderland Behemoth gets +4/+4 for each other Giant you control.| @@ -56064,7 +56064,7 @@ Firemind's Foresight|Commander 2015|218|R|{5}{U}{R}|Instant|||Search your librar Gisela, Blade of Goldnight|Commander 2015|219|M|{4}{R}{W}{W}|Legendary Creature - Angel|5|5|Flying, first strike$If a source would deal damage to an opponent or a permanent an opponent controls, that source deals double that damage to that player or permanent instead.$If a source would deal damage to you or a permanent you control, prevent half that damage, rounded up.| Thief of Blood|Commander 2015|22|U|{4}{B}{B}|Creature - Vampire|1|1|Flying$As Thief of Blood enters the battlefield, remove all counters from all permanents. Thief of Blood enters the battlefield with a +1/+1 counter on it for each counter removed this way.| Goblin Electromancer|Commander 2015|220|C|{U}{R}|Creature - Goblin Wizard|2|2|Instant and sorcery spells you cast cost {1} less to cast.| -Golgari Charm|Commander 2015|221|U|{B}{G}|Instant|||Choose one -$• All creatures get -1/-1 until end of turn.$• Destroy target enchantment.$• Regenerate each creature you control.| +Golgari Charm|Commander 2015|221|U|{B}{G}|Instant|||Choose one -$� All creatures get -1/-1 until end of turn.$� Destroy target enchantment.$� Regenerate each creature you control.| Grisly Salvage|Commander 2015|222|C|{B}{G}|Instant|||Reveal the top five cards of your library. You may put a creature or land card from among them into your hand. Put the rest into your graveyard.| Jarad, Golgari Lich Lord|Commander 2015|223|M|{B}{B}{G}{G}|Legendary Creature - Zombie Elf|2|2|Jarad, Golgari Lich Lord gets +1/+1 for each creature card in your graveyard.${1}{B}{G}, Sacrifice another creature: Each opponent loses life equal to the sacrificed creature's power.$Sacrifice a Swamp and a Forest: Return Jarad from your graveyard to your hand.| Korozda Guildmage|Commander 2015|224|U|{B}{G}|Creature - Elf Shaman|2|2|{1}{B}{G}: Target creature gets +1/+1 and gains intimidate until end of turn. (It can't be blocked except by artifact creatures and/or creatures that share a color with it.)${2}{B}{G}, Sacrifice a nontoken creature: Put X 1/1 green Saproling creature tokens onto the battlefield, where X is the sacrificed creature's toughness.| @@ -56073,7 +56073,7 @@ Lotleth Troll|Commander 2015|226|R|{B}{G}|Creature - Zombie Troll|2|1|Trample$Di Melek, Izzet Paragon|Commander 2015|227|R|{4}{U}{R}|Legendary Creature - Weird Wizard|2|4|Play with the top card of your library revealed.$You may cast the top card of your library if it's an instant or sorcery card.$Whenever you cast an instant or sorcery spell from your library, copy it. You may choose new targets for the copy.| Mystic Snake|Commander 2015|228|R|{1}{G}{U}{U}|Creature - Snake|2|2|Flash$When Mystic Snake enters the battlefield, counter target spell.| Necromancer's Covenant|Commander 2015|229|R|{3}{W}{B}{B}|Enchantment|||When Necromancer's Covenant enters the battlefield, exile all creature cards from target player's graveyard, then put a 2/2 black Zombie creature token onto the battlefield for each card exiled this way.$Zombies you control have lifelink.| -Wretched Confluence|Commander 2015|23|R|{3}{B}{B}|Instant|||Choose three. You may choose the same mode more than once.$• Target player draws a card and loses 1 life.$• Target creature gets -2/-2 until end of turn.$• Return target creature card from your graveyard to your hand.| +Wretched Confluence|Commander 2015|23|R|{3}{B}{B}|Instant|||Choose three. You may choose the same mode more than once.$� Target player draws a card and loses 1 life.$� Target creature gets -2/-2 until end of turn.$� Return target creature card from your graveyard to your hand.| Prime Speaker Zegana|Commander 2015|230|M|{2}{G}{G}{U}{U}|Legendary Creature - Merfolk Wizard|1|1|Prime Speaker Zegana enters the battlefield with X +1/+1 counters on it, where X is the greatest power among other creatures you control.$When Prime Speaker Zegana enters the battlefield, draw cards equal to its power.| Prophetic Bolt|Commander 2015|231|R|{3}{U}{R}|Instant|||Prophetic Bolt deals 4 damage to target creature or player. Look at the top four cards of your library. Put one of those cards into your hand and the rest on the bottom of your library in any order.| Putrefy|Commander 2015|232|U|{1}{B}{G}|Instant|||Destroy target artifact or creature. It can't be regenerated.| @@ -56106,7 +56106,7 @@ Izzet Signet|Commander 2015|256|C|{2}|Artifact|||{1}, {tap}: Add {U}{R} to your Lightning Greaves|Commander 2015|257|U|{2}|Artifact - Equipment|||Equipped creature has haste and shroud. (It can't be the target of spells or abilities.)$Equip {0}| Loxodon Warhammer|Commander 2015|258|R|{3}|Artifact - Equipment|||Equipped creature gets +3/+0 and has trample and lifelink.$Equip {3}| Mind Stone|Commander 2015|259|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| -Fiery Confluence|Commander 2015|26|R|{2}{R}{R}|Sorcery|||Choose three. You may choose the same mode more than once.$• Fiery Confluence deals 1 damage to each creature.$• Fiery Confluence deals 2 damage to each opponent.$• Destroy target artifact.| +Fiery Confluence|Commander 2015|26|R|{2}{R}{R}|Sorcery|||Choose three. You may choose the same mode more than once.$� Fiery Confluence deals 1 damage to each creature.$� Fiery Confluence deals 2 damage to each opponent.$� Destroy target artifact.| Orochi Hatchery|Commander 2015|260|R|{X}{X}|Artifact|||Orochi Hatchery enters the battlefield with X charge counters on it.${5}, {tap}: Put a 1/1 green Snake creature token onto the battlefield for each charge counter on Orochi Hatchery.| Orzhov Cluestone|Commander 2015|261|C|{3}|Artifact|||{tap}: Add {W} or {B} to your mana pool.${W}{B}, {tap}, Sacrifice Orzhov Cluestone: Draw a card.| Orzhov Signet|Commander 2015|262|C|{2}|Artifact|||{1}, {tap}: Add {W}{B} to your mana pool.| @@ -56205,7 +56205,7 @@ Great Oak Guardian|Commander 2015|37|U|{5}{G}|Creature - Treefolk|4|5|Flash ( Pathbreaker Ibex|Commander 2015|38|R|{4}{G}{G}|Creature - Goat|3|3|Whenever Pathbreaker Ibex attacks, creatures you control gain trample and get +X/+X until end of turn, where X is the greatest power among creatures you control.| Skullwinder|Commander 2015|39|U|{2}{G}|Creature - Snake|1|3|Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$When Skullwinder enters the battlefield, return target card from your graveyard to your hand, then choose an opponent. That player returns a card from his or her graveyard to his or her hand.| Herald of the Host|Commander 2015|4|U|{3}{W}{W}|Creature - Angel|4|4|Flying, vigilance$Myriad (Whenever this creature attacks, for each opponent other than defending player, you may put a token that's a copy of this creature onto the battlefield tapped and attacking that player or a planeswalker he or she controls. Exile the tokens at end of combat.)| -Verdant Confluence|Commander 2015|40|R|{4}{G}{G}|Sorcery|||Choose three. You may choose the same mode more than once.$• Put two +1/+1 counters on target creature.$• Return target permanent card from your graveyard to your hand.$• Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| +Verdant Confluence|Commander 2015|40|R|{4}{G}{G}|Sorcery|||Choose three. You may choose the same mode more than once.$� Put two +1/+1 counters on target creature.$� Return target permanent card from your graveyard to your hand.$� Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| Anya, Merciless Angel|Commander 2015|41|M|{3}{R}{W}|Legendary Creature - Angel|4|4|Flying$Anya, Merciless Angel gets +3/+3 for each opponent whose life total is less than half his or her starting life total.$As long as an opponent's life total is less than half his or her starting life total, Anya has indestructible.| Arjun, the Shifting Flame|Commander 2015|42|M|{4}{U}{R}|Legendary Creature - Sphinx Wizard|5|5|Flying$Whenever you cast a spell, put the cards in your hand on the bottom of your library in any order, then draw that many cards.| Daxos the Returned|Commander 2015|43|M|{1}{W}{B}|Legendary Creature - Zombie Soldier|2|2|Whenever you cast an enchantment spell, you get an experience counter.${1}{W}{B}: Put a white and black Spirit enchantment creature token onto the battlefield. It has "This creature's power and toughness are each equal to the number of experience counters you have."| @@ -56233,11 +56233,11 @@ Cage of Hands|Commander 2015|62|C|{2}{W}|Enchantment - Aura|||Enchant creature$E Celestial Ancient|Commander 2015|63|R|{3}{W}{W}|Creature - Elemental|3|3|Flying$Whenever you cast an enchantment spell, put a +1/+1 counter on each creature you control.| Celestial Archon|Commander 2015|64|R|{3}{W}{W}|Enchantment Creature - Archon|4|4|Bestow {5}{W}{W} (If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature.)$Flying, first strike$Enchanted creature gets +4/+4 and has flying and first strike.| Crib Swap|Commander 2015|65|U|{2}{W}|Tribal Instant - Shapeshifter|||Changeling (This card is every creature type at all times.)$Exile target creature. Its controller puts a 1/1 colorless Shapeshifter creature token with changeling onto the battlefield.| -Dawn to Dusk|Commander 2015|66|U|{2}{W}{W}|Sorcery|||Choose one or both -$• Return target enchantment card from your graveyard to your hand.$• Destroy target enchantment.| +Dawn to Dusk|Commander 2015|66|U|{2}{W}{W}|Sorcery|||Choose one or both -$� Return target enchantment card from your graveyard to your hand.$� Destroy target enchantment.| Dawnglare Invoker|Commander 2015|67|C|{2}{W}|Creature - Kor Wizard|2|1|Flying${8}: Tap all creatures target player controls.| Dictate of Heliod|Commander 2015|68|R|{3}{W}{W}|Enchantment|||Flash$Creatures you control get +2/+2.| Faith's Fetters|Commander 2015|69|C|{3}{W}|Enchantment - Aura|||Enchant permanent$When Faith's Fetters enters the battlefield, you gain 4 life.$Enchanted permanent's activated abilities can't be activated unless they're mana abilities. If enchanted permanent is a creature, it can't attack or block.| -Righteous Confluence|Commander 2015|7|R|{3}{W}{W}|Sorcery|||Choose three. You may choose the same mode more than once.$• Put a 2/2 white Knight creature token with vigilance onto the battlefield.$• Exile target enchantment.$• You gain 5 life.| +Righteous Confluence|Commander 2015|7|R|{3}{W}{W}|Sorcery|||Choose three. You may choose the same mode more than once.$� Put a 2/2 white Knight creature token with vigilance onto the battlefield.$� Exile target enchantment.$� You gain 5 life.| Ghostblade Eidolon|Commander 2015|70|U|{2}{W}|Enchantment Creature - Spirit|1|1|Bestow {5}{W} (If you cast this card for its bestow cost, it's an Aura spell with enchant creature. It becomes a creature again if it's not attached to a creature.)$Double strike (This creature deals both first-strike and regular combat damage.)$Enchanted creature gets +1/+1 and has double strike.| Jareth, Leonine Titan|Commander 2015|71|R|{3}{W}{W}{W}|Legendary Creature - Cat Giant|4|7|Whenever Jareth, Leonine Titan blocks, it gets +7/+7 until end of turn.${W}: Jareth gains protection from the color of your choice until end of turn.| Karmic Justice|Commander 2015|72|R|{2}{W}|Enchantment|||Whenever a spell or ability an opponent controls destroys a noncreature permanent you control, you may destroy target permanent that opponent controls.| @@ -57418,7 +57418,7 @@ Wailing Ghoul|Eldritch Moon|112|C|{1}{B}|Creature - Zombie|1|3|When Wailing Ghou Weirded Vampire|Eldritch Moon|113|C|{3}{B}|Creature - Vampire Horror|3|3|Madness {2}{B} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.)| Whispers of Emrakul|Eldritch Moon|114|U|{1}{B}|Sorcery|||Target opponent discards a card at random.$Delirium — If there are four or more card types among cards in your graveyard, that player discards two cards at random instead.| Abandon Reason|Eldritch Moon|115|U|{2}{R}|Instant|||Up to two target creatures each get +1/+0 and gain first strike until end of turn.$Madness {1}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.)| -Alchemist's Greetin|Eldritch Moon|116|C|{4}{R}|Sorcery|||Alchemist's Greeting deals 4 damage to target creature.$Madness {1}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.)| +Alchemist's GreetinG|Eldritch Moon|116|C|{4}{R}|Sorcery|||Alchemist's Greeting deals 4 damage to target creature.$Madness {1}{R} (If you discard this card, discard it into exile. When you do, cast it for its madness cost or put it into your graveyard.)| Assembled Alphas|Eldritch Moon|117|R|{5}{R}|Creature - Wolf|5|5|Whenever Assembled Alphas blocks or becomes blocked by a creature, Assembled Alphas deals 3 damage to that creature and 3 damage to that creature's controller.| Bedlam Reveler|Eldritch Moon|118|R|{6}{R}{R}|Creature - Devil Horror|3|4|Bedlam Reveler costs {1} less to cast for each instant or sorcery card in your graveyard.$Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)$When Bedlam Reveler enters the battlefield, discard your hand, then draw three cards.| Blood Mist|Eldritch Moon|119|U|{3}{R}|Enchantment|||At the beginning of combat on your turn, target creature you control gains double strike until end of turn.|