diff --git a/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java b/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java index 72842b8ad4a..cbd7c330895 100644 --- a/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java +++ b/Mage.Sets/src/mage/sets/alliances/BalduvianTradingPost.java @@ -1,91 +1,91 @@ -/* - * 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.alliances; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.EnterBattlefieldPayCostOrPutGraveyardEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetAttackingCreature; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class BalduvianTradingPost extends CardImpl { - - private static final FilterControlledPermanent filter = new FilterControlledPermanent("an untapped Mountain"); - - static { - filter.add(new SubtypePredicate("Mountain")); - filter.add(Predicates.not(new TappedPredicate())); - } - - public BalduvianTradingPost(UUID ownerId) { - super(ownerId, 182, "Balduvian Trading Post", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ALL"; - - // If Balduvian Trading Post would enter the battlefield, sacrifice an untapped Mountain instead. If you do, put Balduvian Trading Post onto the battlefield. If you don't, put it into its owner's graveyard. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))))); - - // {tap}: Add {1}{R} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 1,0 ), new TapSourceCost())); - - // {1}, {tap}: Balduvian Trading Post deals 1 damage to target attacking creature. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetAttackingCreature()); - this.addAbility(ability); - } - - public BalduvianTradingPost(final BalduvianTradingPost card) { - super(card); - } - - @Override - public BalduvianTradingPost copy() { - return new BalduvianTradingPost(this); - } -} +/* + * 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.alliances; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.effects.common.EnterBattlefieldPayCostOrPutGraveyardEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetAttackingCreature; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class BalduvianTradingPost extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("an untapped Mountain"); + + static { + filter.add(new SubtypePredicate("Mountain")); + filter.add(Predicates.not(new TappedPredicate())); + } + + public BalduvianTradingPost(UUID ownerId) { + super(ownerId, 182, "Balduvian Trading Post", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ALL"; + + // If Balduvian Trading Post would enter the battlefield, sacrifice an untapped Mountain instead. If you do, put Balduvian Trading Post onto the battlefield. If you don't, put it into its owner's graveyard. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))))); + + // {tap}: Add {C}{R} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 1,0 ), new TapSourceCost())); + + // {1}, {tap}: Balduvian Trading Post deals 1 damage to target attacking creature. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetAttackingCreature()); + this.addAbility(ability); + } + + public BalduvianTradingPost(final BalduvianTradingPost card) { + super(card); + } + + @Override + public BalduvianTradingPost copy() { + return new BalduvianTradingPost(this); + } +} diff --git a/Mage.Sets/src/mage/sets/alliances/SchoolOfTheUnseen.java b/Mage.Sets/src/mage/sets/alliances/SchoolOfTheUnseen.java index 88b9331e425..675ea4182e7 100644 --- a/Mage.Sets/src/mage/sets/alliances/SchoolOfTheUnseen.java +++ b/Mage.Sets/src/mage/sets/alliances/SchoolOfTheUnseen.java @@ -47,7 +47,7 @@ public class SchoolOfTheUnseen extends CardImpl { super(ownerId, 186, "School of the Unseen", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ALL"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}, {tap}: Add one mana of any color to your mana pool. Ability ability = new AnyColorManaAbility(new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/sets/alliances/ShelteredValley.java b/Mage.Sets/src/mage/sets/alliances/ShelteredValley.java index b8d81deb48a..b897797aa1e 100644 --- a/Mage.Sets/src/mage/sets/alliances/ShelteredValley.java +++ b/Mage.Sets/src/mage/sets/alliances/ShelteredValley.java @@ -79,7 +79,7 @@ public class ShelteredValley extends CardImpl { effect.setText("if you control three or fewer lands, you gain 1 life"); ability = new BeginningOfUpkeepTriggeredAbility(Zone.BATTLEFIELD, effect, TargetController.YOU, false); this.addAbility(ability); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); } diff --git a/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java b/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java index a4705db82e3..204b0e70da3 100644 --- a/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java +++ b/Mage.Sets/src/mage/sets/alliances/SoldeviExcavations.java @@ -1,88 +1,88 @@ -/* - * 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.alliances; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.EnterBattlefieldPayCostOrPutGraveyardEffect; -import mage.abilities.effects.keyword.ScryEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class SoldeviExcavations extends CardImpl { - - private static final FilterControlledPermanent filter = new FilterControlledPermanent("an untapped Island"); - - static { - filter.add(new SubtypePredicate("Island")); - filter.add(Predicates.not(new TappedPredicate())); - } - - public SoldeviExcavations(UUID ownerId) { - super(ownerId, 188, "Soldevi Excavations", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ALL"; - - // If Soldevi Excavations would enter the battlefield, sacrifice an untapped Island instead. If you do, put Soldevi Excavations onto the battlefield. If you don't, put it into its owner's graveyard. - this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))))); - - // {tap}: Add {1}{U} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1, 0), new TapSourceCost())); - - // {1}, {tap}: Scry 1. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public SoldeviExcavations(final SoldeviExcavations card) { - super(card); - } - - @Override - public SoldeviExcavations copy() { - return new SoldeviExcavations(this); - } -} +/* + * 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.alliances; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.EnterBattlefieldPayCostOrPutGraveyardEffect; +import mage.abilities.effects.keyword.ScryEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class SoldeviExcavations extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("an untapped Island"); + + static { + filter.add(new SubtypePredicate("Island")); + filter.add(Predicates.not(new TappedPredicate())); + } + + public SoldeviExcavations(UUID ownerId) { + super(ownerId, 188, "Soldevi Excavations", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ALL"; + + // If Soldevi Excavations would enter the battlefield, sacrifice an untapped Island instead. If you do, put Soldevi Excavations onto the battlefield. If you don't, put it into its owner's graveyard. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))))); + + // {tap}: Add {C}{U} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1, 0), new TapSourceCost())); + + // {1}, {tap}: Scry 1. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryEffect(1), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public SoldeviExcavations(final SoldeviExcavations card) { + super(card); + } + + @Override + public SoldeviExcavations copy() { + return new SoldeviExcavations(this); + } +} diff --git a/Mage.Sets/src/mage/sets/anthologyjacevschandra/TerrainGenerator.java b/Mage.Sets/src/mage/sets/anthologyjacevschandra/TerrainGenerator.java index 70d9d0ece9b..09a28d1904d 100644 --- a/Mage.Sets/src/mage/sets/anthologyjacevschandra/TerrainGenerator.java +++ b/Mage.Sets/src/mage/sets/anthologyjacevschandra/TerrainGenerator.java @@ -60,7 +60,7 @@ public class TerrainGenerator extends CardImpl { super(ownerId, 29, "Terrain Generator", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "DD3D"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}, {tap}: You may put a basic land card from your hand onto the battlefield tapped. diff --git a/Mage.Sets/src/mage/sets/archenemy/NantukoMonastery.java b/Mage.Sets/src/mage/sets/archenemy/NantukoMonastery.java index 485c90500a1..341918ccdae 100644 --- a/Mage.Sets/src/mage/sets/archenemy/NantukoMonastery.java +++ b/Mage.Sets/src/mage/sets/archenemy/NantukoMonastery.java @@ -55,7 +55,7 @@ public class NantukoMonastery extends CardImpl { super(ownerId, 131, "Nantuko Monastery", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ARC"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard. Effect effect = new BecomesCreatureSourceEffect(new NantukoMonasteryToken(), "land", Duration.Custom); diff --git a/Mage.Sets/src/mage/sets/avacynrestored/AlchemistsRefuge.java b/Mage.Sets/src/mage/sets/avacynrestored/AlchemistsRefuge.java index d952646b877..5a138a95d24 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/AlchemistsRefuge.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/AlchemistsRefuge.java @@ -60,7 +60,7 @@ public class AlchemistsRefuge extends CardImpl { super(ownerId, 225, "Alchemist's Refuge", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "AVR"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {G}{U}, {tap}: You may cast nonland cards this turn as though they had flash. diff --git a/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java b/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java index 5ff7b12ef69..f84dff7fc55 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/CavernOfSouls.java @@ -69,7 +69,7 @@ public class CavernOfSouls extends CardImpl { // As Cavern of Souls enters the battlefield, choose a creature type. this.addAbility(new AsEntersBattlefieldAbility(new ChooseCreatureTypeEffect(Outcome.BoostCreature))); - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell of the chosen type, and that spell can't be countered. diff --git a/Mage.Sets/src/mage/sets/avacynrestored/DemonlordOfAshmouth.java b/Mage.Sets/src/mage/sets/avacynrestored/DemonlordOfAshmouth.java index b4015abd630..b89ba1d0abe 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/DemonlordOfAshmouth.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/DemonlordOfAshmouth.java @@ -27,21 +27,20 @@ */ package mage.sets.avacynrestored; -import mage.constants.CardType; -import mage.constants.Rarity; +import java.util.UUID; import mage.MageInt; import mage.abilities.common.EntersBattlefieldTriggeredAbility; import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.abilities.effects.common.ExileSourceUnlessPaysEffect; import mage.abilities.keyword.FlyingAbility; import mage.abilities.keyword.UndyingAbility; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; import mage.filter.common.FilterControlledCreaturePermanent; import mage.filter.predicate.permanent.AnotherPredicate; import mage.target.common.TargetControlledPermanent; -import java.util.UUID; - /** * @author noxx */ @@ -64,7 +63,7 @@ public class DemonlordOfAshmouth extends CardImpl { this.addAbility(FlyingAbility.getInstance()); // When Demonlord of Ashmouth enters the battlefield, exile it unless you sacrifice another creature. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))))); + this.addAbility(new EntersBattlefieldTriggeredAbility(new ExileSourceUnlessPaysEffect(new SacrificeTargetCost(new TargetControlledPermanent(filter))))); this.addAbility(new UndyingAbility()); } diff --git a/Mage.Sets/src/mage/sets/avacynrestored/DesolateLighthouse.java b/Mage.Sets/src/mage/sets/avacynrestored/DesolateLighthouse.java index 6017ed78ea5..b3545f4ef0e 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/DesolateLighthouse.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/DesolateLighthouse.java @@ -1,69 +1,69 @@ -/* - * 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.avacynrestored; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.DrawDiscardControllerEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author North - */ -public class DesolateLighthouse extends CardImpl { - - public DesolateLighthouse(UUID ownerId) { - super(ownerId, 227, "Desolate Lighthouse", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "AVR"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}{U}{R}, {tap}: Draw a card, then discard a card. - SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new DrawDiscardControllerEffect(), - new ManaCostsImpl("{1}{U}{R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public DesolateLighthouse(final DesolateLighthouse card) { - super(card); - } - - @Override - public DesolateLighthouse copy() { - return new DesolateLighthouse(this); - } -} +/* + * 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.avacynrestored; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DrawDiscardControllerEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class DesolateLighthouse extends CardImpl { + + public DesolateLighthouse(UUID ownerId) { + super(ownerId, 227, "Desolate Lighthouse", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "AVR"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}{U}{R}, {tap}: Draw a card, then discard a card. + SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new DrawDiscardControllerEffect(), + new ManaCostsImpl("{1}{U}{R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public DesolateLighthouse(final DesolateLighthouse card) { + super(card); + } + + @Override + public DesolateLighthouse copy() { + return new DesolateLighthouse(this); + } +} diff --git a/Mage.Sets/src/mage/sets/avacynrestored/SeraphSanctuary.java b/Mage.Sets/src/mage/sets/avacynrestored/SeraphSanctuary.java index 85f06da6f04..216b6527d3e 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/SeraphSanctuary.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/SeraphSanctuary.java @@ -1,72 +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.avacynrestored; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; - -/** - * - * @author North - */ -public class SeraphSanctuary extends CardImpl { - - private static final FilterPermanent filter = new FilterControlledCreaturePermanent("an Angel"); - static { - filter.add(new SubtypePredicate("Angel")); - } - public SeraphSanctuary(UUID ownerId) { - super(ownerId, 228, "Seraph Sanctuary", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "AVR"; - - // When Seraph Sanctuary enters the battlefield, you gain 1 life. - this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(1))); - // Whenever an Angel enters the battlefield under your control, you gain 1 life. - this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new GainLifeEffect(1), filter)); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public SeraphSanctuary(final SeraphSanctuary card) { - super(card); - } - - @Override - public SeraphSanctuary copy() { - return new SeraphSanctuary(this); - } -} +/* + * 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.avacynrestored; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.common.EntersBattlefieldControlledTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author North + */ +public class SeraphSanctuary extends CardImpl { + + private static final FilterPermanent filter = new FilterControlledCreaturePermanent("an Angel"); + static { + filter.add(new SubtypePredicate("Angel")); + } + public SeraphSanctuary(UUID ownerId) { + super(ownerId, 228, "Seraph Sanctuary", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "AVR"; + + // When Seraph Sanctuary enters the battlefield, you gain 1 life. + this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(1))); + // Whenever an Angel enters the battlefield under your control, you gain 1 life. + this.addAbility(new EntersBattlefieldControlledTriggeredAbility(new GainLifeEffect(1), filter)); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public SeraphSanctuary(final SeraphSanctuary card) { + super(card); + } + + @Override + public SeraphSanctuary copy() { + return new SeraphSanctuary(this); + } +} diff --git a/Mage.Sets/src/mage/sets/avacynrestored/SlayersStronghold.java b/Mage.Sets/src/mage/sets/avacynrestored/SlayersStronghold.java index c7a0465b28e..0559a69d5e4 100644 --- a/Mage.Sets/src/mage/sets/avacynrestored/SlayersStronghold.java +++ b/Mage.Sets/src/mage/sets/avacynrestored/SlayersStronghold.java @@ -55,7 +55,7 @@ public class SlayersStronghold extends CardImpl { super(ownerId, 229, "Slayers' Stronghold", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "AVR"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {R}{W}, {tap}: Target creature gets +2/+0 and gains vigilance and haste until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}{W}")); diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/AdverseConditions.java b/Mage.Sets/src/mage/sets/battleforzendikar/AdverseConditions.java index fef0c55058b..501c68e7d87 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/AdverseConditions.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/AdverseConditions.java @@ -1,77 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; -import mage.abilities.effects.common.TapTargetEffect; -import mage.abilities.keyword.DevoidAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.permanent.token.EldraziScionToken; -import mage.target.common.TargetCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class AdverseConditions extends CardImpl { - - public AdverseConditions(UUID ownerId) { - super(ownerId, 54, "Adverse Conditions", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{U}"); - this.expansionSetCode = "BFZ"; - - // Devoid - Ability ability = new DevoidAbility(this.color); - ability.setRuleAtTheTop(true); - this.addAbility(ability); - - // Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. - this.getSpellAbility().addEffect(new TapTargetEffect()); - this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); - this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); - // Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken()); - effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\""); - this.getSpellAbility().addEffect(effect); - - } - - public AdverseConditions(final AdverseConditions card) { - super(card); - } - - @Override - public AdverseConditions copy() { - return new AdverseConditions(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect; +import mage.abilities.effects.common.TapTargetEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class AdverseConditions extends CardImpl { + + public AdverseConditions(UUID ownerId) { + super(ownerId, 54, "Adverse Conditions", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{U}"); + this.expansionSetCode = "BFZ"; + + // Devoid + Ability ability = new DevoidAbility(this.color); + ability.setRuleAtTheTop(true); + this.addAbility(ability); + + // Tap up to two target creatures. Those creatures don't untap during their controller's next untap step. + this.getSpellAbility().addEffect(new TapTargetEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, 2)); + this.getSpellAbility().addEffect(new DontUntapInControllersNextUntapStepTargetEffect()); + // Put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." + Effect effect = new CreateTokenEffect(new EldraziScionToken()); + effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.getSpellAbility().addEffect(effect); + + } + + public AdverseConditions(final AdverseConditions card) { + super(card); + } + + @Override + public AdverseConditions copy() { + return new AdverseConditions(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/AllyEncampment.java b/Mage.Sets/src/mage/sets/battleforzendikar/AllyEncampment.java index 8f2e4c81fb0..c1dbe52d378 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/AllyEncampment.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/AllyEncampment.java @@ -1,87 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.ReturnToHandTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.ConditionalAnyColorManaAbility; -import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.FilterSpell; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.target.common.TargetControlledCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class AllyEncampment extends CardImpl { - - private static final FilterSpell filter = new FilterSpell("an Ally spell"); - - static { - filter.add(new SubtypePredicate("Ally")); - } - - public AllyEncampment(UUID ownerId) { - super(ownerId, 228, "Ally Encampment", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BFZ"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {T} Add one mana of any color to your mana pool. Spend this mana only to cast an Ally spell. - this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new ConditionalSpellManaBuilder(filter), true)); - - // {1}, {T}, Sacrifice Ally Encampment: Return target Ally you control to its owner's hand. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("Ally", "Ally you control"))); - this.addAbility(ability); - } - - public AllyEncampment(final AllyEncampment card) { - super(card); - } - - @Override - public AllyEncampment copy() { - return new AllyEncampment(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ConditionalAnyColorManaAbility; +import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterSpell; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class AllyEncampment extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("an Ally spell"); + + static { + filter.add(new SubtypePredicate("Ally")); + } + + public AllyEncampment(UUID ownerId) { + super(ownerId, 228, "Ally Encampment", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BFZ"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {T} Add one mana of any color to your mana pool. Spend this mana only to cast an Ally spell. + this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new ConditionalSpellManaBuilder(filter), true)); + + // {1}, {T}, Sacrifice Ally Encampment: Return target Ally you control to its owner's hand. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetControlledCreaturePermanent(new FilterControlledCreaturePermanent("Ally", "Ally you control"))); + this.addAbility(ability); + } + + public AllyEncampment(final AllyEncampment card) { + super(card); + } + + @Override + public AllyEncampment copy() { + return new AllyEncampment(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BlightHerder.java b/Mage.Sets/src/mage/sets/battleforzendikar/BlightHerder.java index d6317ebf1bf..51ba0d733fa 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BlightHerder.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BlightHerder.java @@ -1,118 +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.battleforzendikar; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.CastSourceTriggeredAbility; -import mage.abilities.effects.common.CreateTokenEffect; -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.TargetController; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.predicate.other.OwnerPredicate; -import mage.game.Game; -import mage.game.permanent.token.EldraziScionToken; -import mage.players.Player; -import mage.target.Target; -import mage.target.common.TargetCardInExile; - -/** - * - * @author LevelX2 - */ -public class BlightHerder extends CardImpl { - - public BlightHerder(UUID ownerId) { - super(ownerId, 2, "Blight Herder", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}"); - this.expansionSetCode = "BFZ"; - this.subtype.add("Eldrazi"); - this.subtype.add("Processor"); - this.power = new MageInt(4); - this.toughness = new MageInt(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 {1} to your mana pool." - this.addAbility(new CastSourceTriggeredAbility(new BlightHerderEffect(), true)); - } - - public BlightHerder(final BlightHerder card) { - super(card); - } - - @Override - public BlightHerder copy() { - return new BlightHerder(this); - } -} - -class BlightHerderEffect extends OneShotEffect { - - private final static FilterCard filter = new FilterCard("cards your opponents own from exile"); - - static { - filter.add(new OwnerPredicate(TargetController.OPPONENT)); - } - - public BlightHerderEffect() { - super(Outcome.PutCreatureInPlay); - this.staticText = "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 {1} to your mana pool."; - } - - public BlightHerderEffect(final BlightHerderEffect effect) { - super(effect); - } - - @Override - public BlightHerderEffect copy() { - return new BlightHerderEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - Target target = new TargetCardInExile(2, 2, filter, null); - if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) { - if (controller.chooseTarget(outcome, target, source, game)) { - Cards cardsToGraveyard = new CardsImpl(target.getTargets()); - controller.moveCards(cardsToGraveyard, null, Zone.GRAVEYARD, source, game); - return new CreateTokenEffect(new EldraziScionToken(), 3).apply(game, source); - } - } - return true; - } - return false; - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CastSourceTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +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.TargetController; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.other.OwnerPredicate; +import mage.game.Game; +import mage.game.permanent.token.EldraziScionToken; +import mage.players.Player; +import mage.target.Target; +import mage.target.common.TargetCardInExile; + +/** + * + * @author LevelX2 + */ +public class BlightHerder extends CardImpl { + + public BlightHerder(UUID ownerId) { + super(ownerId, 2, "Blight Herder", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{5}"); + this.expansionSetCode = "BFZ"; + this.subtype.add("Eldrazi"); + this.subtype.add("Processor"); + this.power = new MageInt(4); + this.toughness = new MageInt(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." + this.addAbility(new CastSourceTriggeredAbility(new BlightHerderEffect(), true)); + } + + public BlightHerder(final BlightHerder card) { + super(card); + } + + @Override + public BlightHerder copy() { + return new BlightHerder(this); + } +} + +class BlightHerderEffect extends OneShotEffect { + + private final static FilterCard filter = new FilterCard("cards your opponents own from exile"); + + static { + filter.add(new OwnerPredicate(TargetController.OPPONENT)); + } + + public BlightHerderEffect() { + super(Outcome.PutCreatureInPlay); + this.staticText = "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."; + } + + public BlightHerderEffect(final BlightHerderEffect effect) { + super(effect); + } + + @Override + public BlightHerderEffect copy() { + return new BlightHerderEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Target target = new TargetCardInExile(2, 2, filter, null); + if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) { + if (controller.chooseTarget(outcome, target, source, game)) { + Cards cardsToGraveyard = new CardsImpl(target.getTargets()); + controller.moveCards(cardsToGraveyard, null, Zone.GRAVEYARD, source, game); + return new CreateTokenEffect(new EldraziScionToken(), 3).apply(game, source); + } + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedCataract.java b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedCataract.java index a94c79afa25..4741961e7a9 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedCataract.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedCataract.java @@ -50,7 +50,7 @@ public class BlightedCataract extends CardImpl { super(ownerId, 229, "Blighted Cataract", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "BFZ"; - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {5}{U}, {T}, Sacrifice Blighted Cataract: Draw two cards. diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedFen.java b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedFen.java index 253e3d337c9..f742192a59a 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedFen.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedFen.java @@ -1,76 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.SacrificeEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterCreaturePermanent; -import mage.target.common.TargetOpponent; - -/** - * - * @author LevelX2 - */ -public class BlightedFen extends CardImpl { - - public BlightedFen(UUID ownerId) { - super(ownerId, 230, "Blighted Fen", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BFZ"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {4}{B}, {T}, Sacrifice Blighted Fen: Target opponent sacrifices a creature. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new SacrificeEffect(new FilterCreaturePermanent(), 1, "Target opponent"), - new ManaCostsImpl<>("{4}{B}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetOpponent()); - this.addAbility(ability); - } - - public BlightedFen(final BlightedFen card) { - super(card); - } - - @Override - public BlightedFen copy() { - return new BlightedFen(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.SacrificeEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.common.TargetOpponent; + +/** + * + * @author LevelX2 + */ +public class BlightedFen extends CardImpl { + + public BlightedFen(UUID ownerId) { + super(ownerId, 230, "Blighted Fen", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BFZ"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {4}{B}, {T}, Sacrifice Blighted Fen: Target opponent sacrifices a creature. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new SacrificeEffect(new FilterCreaturePermanent(), 1, "Target opponent"), + new ManaCostsImpl<>("{4}{B}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetOpponent()); + this.addAbility(ability); + } + + public BlightedFen(final BlightedFen card) { + super(card); + } + + @Override + public BlightedFen copy() { + return new BlightedFen(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedGorge.java b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedGorge.java index b67954fd390..10f6dd8d209 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedGorge.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedGorge.java @@ -1,75 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.target.common.TargetCreatureOrPlayer; - -/** - * - * @author LevelX2 - */ -public class BlightedGorge extends CardImpl { - - public BlightedGorge(UUID ownerId) { - super(ownerId, 231, "Blighted Gorge", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BFZ"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {4}{R}, {T}, Sacrifice Blighted Gorge: Blighted Gorge deals 2 damage to target creature or player. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new DamageTargetEffect(2), - new ManaCostsImpl<>("{4}{R}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetCreatureOrPlayer()); - this.addAbility(ability); - } - - public BlightedGorge(final BlightedGorge card) { - super(card); - } - - @Override - public BlightedGorge copy() { - return new BlightedGorge(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author LevelX2 + */ +public class BlightedGorge extends CardImpl { + + public BlightedGorge(UUID ownerId) { + super(ownerId, 231, "Blighted Gorge", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BFZ"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {4}{R}, {T}, Sacrifice Blighted Gorge: Blighted Gorge deals 2 damage to target creature or player. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new DamageTargetEffect(2), + new ManaCostsImpl<>("{4}{R}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(ability); + } + + public BlightedGorge(final BlightedGorge card) { + super(card); + } + + @Override + public BlightedGorge copy() { + return new BlightedGorge(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedSteppe.java b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedSteppe.java index c0c4d00ff6f..104550d6a89 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedSteppe.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedSteppe.java @@ -1,75 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; -import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class BlightedSteppe extends CardImpl { - - public BlightedSteppe(UUID ownerId) { - super(ownerId, 232, "Blighted Steppe", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BFZ"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {3}{W}, {T}, Sacrifice Blighted Steppe: You gain 2 life for each creature you control. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new GainLifeEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creature you control"), 2)), - new ManaCostsImpl<>("{3}{W}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public BlightedSteppe(final BlightedSteppe card) { - super(card); - } - - @Override - public BlightedSteppe copy() { - return new BlightedSteppe(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class BlightedSteppe extends CardImpl { + + public BlightedSteppe(UUID ownerId) { + super(ownerId, 232, "Blighted Steppe", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BFZ"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {3}{W}, {T}, Sacrifice Blighted Steppe: You gain 2 life for each creature you control. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new GainLifeEffect(new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent("creature you control"), 2)), + new ManaCostsImpl<>("{3}{W}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public BlightedSteppe(final BlightedSteppe card) { + super(card); + } + + @Override + public BlightedSteppe copy() { + return new BlightedSteppe(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedWoodland.java b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedWoodland.java index 694a2e74187..e47bb573456 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BlightedWoodland.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BlightedWoodland.java @@ -1,75 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterBasicLandCard; -import mage.target.common.TargetCardInLibrary; - -/** - * - * @author LevelX2 - */ -public class BlightedWoodland extends CardImpl { - - public BlightedWoodland(UUID ownerId) { - super(ownerId, 233, "Blighted Woodland", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BFZ"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {3}{G}, {T}, Sacrifice Blighted Woodland: Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, new FilterBasicLandCard()), true, true), - new ManaCostsImpl<>("{3}{G}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public BlightedWoodland(final BlightedWoodland card) { - super(card); - } - - @Override - public BlightedWoodland copy() { - return new BlightedWoodland(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterBasicLandCard; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author LevelX2 + */ +public class BlightedWoodland extends CardImpl { + + public BlightedWoodland(UUID ownerId) { + super(ownerId, 233, "Blighted Woodland", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BFZ"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {3}{G}, {T}, Sacrifice Blighted Woodland: Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(0, 2, new FilterBasicLandCard()), true, true), + new ManaCostsImpl<>("{3}{G}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public BlightedWoodland(final BlightedWoodland card) { + super(card); + } + + @Override + public BlightedWoodland copy() { + return new BlightedWoodland(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/Blisterpod.java b/Mage.Sets/src/mage/sets/battleforzendikar/Blisterpod.java index 41398c4c2d7..aac60d73b5d 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/Blisterpod.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/Blisterpod.java @@ -1,71 +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.battleforzendikar; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.common.DiesTriggeredAbility; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DevoidAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.permanent.token.EldraziScionToken; - -/** - * - * @author LevelX2 - */ -public class Blisterpod extends CardImpl { - - public Blisterpod(UUID ownerId) { - super(ownerId, 163, "Blisterpod", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}"); - this.expansionSetCode = "BFZ"; - this.subtype.add("Eldrazi"); - this.subtype.add("Drone"); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // Devoid - this.addAbility(new DevoidAbility(this.color)); - // When Blisterpod dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken()); - effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\""); - this.addAbility(new DiesTriggeredAbility(effect, false)); - } - - public Blisterpod(final Blisterpod card) { - super(card); - } - - @Override - public Blisterpod copy() { - return new Blisterpod(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author LevelX2 + */ +public class Blisterpod extends CardImpl { + + public Blisterpod(UUID ownerId) { + super(ownerId, 163, "Blisterpod", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}"); + this.expansionSetCode = "BFZ"; + this.subtype.add("Eldrazi"); + this.subtype.add("Drone"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Devoid + this.addAbility(new DevoidAbility(this.color)); + // When Blisterpod dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool." + Effect effect = new CreateTokenEffect(new EldraziScionToken()); + effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.addAbility(new DiesTriggeredAbility(effect, false)); + } + + public Blisterpod(final Blisterpod card) { + super(card); + } + + @Override + public Blisterpod copy() { + return new Blisterpod(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BroodButcher.java b/Mage.Sets/src/mage/sets/battleforzendikar/BroodButcher.java index 15f532eb8db..db3c5ccbd05 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BroodButcher.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BroodButcher.java @@ -66,7 +66,7 @@ public class BroodButcher extends CardImpl { // Devoid this.addAbility(new DevoidAbility(this.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 {1} to your mana pool." + // 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." this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new EldraziScionToken()), false)); // {B}{G}, Sacrifice a creature: Target creature gets -2/-2 until end of turn. diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BroodMonitor.java b/Mage.Sets/src/mage/sets/battleforzendikar/BroodMonitor.java index ecf6c1431d5..02d19141a58 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/BroodMonitor.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/BroodMonitor.java @@ -1,72 +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.battleforzendikar; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DevoidAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.permanent.token.EldraziScionToken; - -/** - * - * @author LevelX2 - */ -public class BroodMonitor extends CardImpl { - - public BroodMonitor(UUID ownerId) { - super(ownerId, 164, "Brood Monitor", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); - this.expansionSetCode = "BFZ"; - this.subtype.add("Eldrazi"); - this.subtype.add("Drone"); - this.power = new MageInt(3); - this.toughness = new MageInt(3); - - // Devoid - this.addAbility(new DevoidAbility(this.color)); - // When Brood Monitor enters the battlefield, put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken(), 3); - effect.setText("put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {1} to your mana pool.\""); - this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); - - } - - public BroodMonitor(final BroodMonitor card) { - super(card); - } - - @Override - public BroodMonitor copy() { - return new BroodMonitor(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author LevelX2 + */ +public class BroodMonitor extends CardImpl { + + public BroodMonitor(UUID ownerId) { + super(ownerId, 164, "Brood Monitor", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{G}{G}"); + this.expansionSetCode = "BFZ"; + this.subtype.add("Eldrazi"); + this.subtype.add("Drone"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // Devoid + this.addAbility(new DevoidAbility(this.color)); + // When Brood Monitor enters the battlefield, put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool." + Effect effect = new CreateTokenEffect(new EldraziScionToken(), 3); + effect.setText("put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); + + } + + public BroodMonitor(final BroodMonitor card) { + super(card); + } + + @Override + public BroodMonitor copy() { + return new BroodMonitor(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/CallTheScions.java b/Mage.Sets/src/mage/sets/battleforzendikar/CallTheScions.java index 439dbe84a3a..75ca36a3b92 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/CallTheScions.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/CallTheScions.java @@ -1,69 +1,69 @@ -/* - * 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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DevoidAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.permanent.token.EldraziScionToken; - -/** - * - * @author LevelX2 - */ -public class CallTheScions extends CardImpl { - - public CallTheScions(UUID ownerId) { - super(ownerId, 165, "Call the Scions", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{2}{G}"); - this.expansionSetCode = "BFZ"; - - // Devoid - Ability ability = new DevoidAbility(this.color); - ability.setRuleAtTheTop(true); - this.addAbility(ability); - // Put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: add {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken(), 2); - effect.setText("put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {1} to your mana pool.\""); - this.getSpellAbility().addEffect(effect); - - } - - public CallTheScions(final CallTheScions card) { - super(card); - } - - @Override - public CallTheScions copy() { - return new CallTheScions(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author LevelX2 + */ +public class CallTheScions extends CardImpl { + + public CallTheScions(UUID ownerId) { + super(ownerId, 165, "Call the Scions", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{2}{G}"); + this.expansionSetCode = "BFZ"; + + // Devoid + Ability ability = new DevoidAbility(this.color); + ability.setRuleAtTheTop(true); + this.addAbility(ability); + // Put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: add {C} to your mana pool." + Effect effect = new CreateTokenEffect(new EldraziScionToken(), 2); + effect.setText("put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.getSpellAbility().addEffect(effect); + + } + + public CallTheScions(final CallTheScions card) { + super(card); + } + + @Override + public CallTheScions copy() { + return new CallTheScions(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/CarrierThrall.java b/Mage.Sets/src/mage/sets/battleforzendikar/CarrierThrall.java index a3097ea8114..508906072e6 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/CarrierThrall.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/CarrierThrall.java @@ -1,68 +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.battleforzendikar; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.common.DiesTriggeredAbility; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.permanent.token.EldraziScionToken; - -/** - * - * @author LevelX2 - */ -public class CarrierThrall extends CardImpl { - - public CarrierThrall(UUID ownerId) { - super(ownerId, 106, "Carrier Thrall", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); - this.expansionSetCode = "BFZ"; - this.subtype.add("Vampire"); - this.power = new MageInt(2); - this.toughness = new MageInt(1); - - // When Carrier Thrall dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature. Add {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken()); - effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\""); - this.addAbility(new DiesTriggeredAbility(effect, false)); - - } - - public CarrierThrall(final CarrierThrall card) { - super(card); - } - - @Override - public CarrierThrall copy() { - return new CarrierThrall(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author LevelX2 + */ +public class CarrierThrall extends CardImpl { + + public CarrierThrall(UUID ownerId) { + super(ownerId, 106, "Carrier Thrall", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{B}"); + this.expansionSetCode = "BFZ"; + this.subtype.add("Vampire"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // When Carrier Thrall dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature. Add {C} to your mana pool." + Effect effect = new CreateTokenEffect(new EldraziScionToken()); + effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.addAbility(new DiesTriggeredAbility(effect, false)); + + } + + public CarrierThrall(final CarrierThrall card) { + super(card); + } + + @Override + public CarrierThrall copy() { + return new CarrierThrall(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/CatacombSifter.java b/Mage.Sets/src/mage/sets/battleforzendikar/CatacombSifter.java index 7faeaddd544..7cb7e1951ab 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/CatacombSifter.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/CatacombSifter.java @@ -66,7 +66,7 @@ public class CatacombSifter extends CardImpl { // Devoid this.addAbility(new DevoidAbility(this.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 {1} to your mana pool." + // 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." this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateTokenEffect(new EldraziScionToken()))); // Whenever another creature you control dies, scry 1 diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/DrownerOfHope.java b/Mage.Sets/src/mage/sets/battleforzendikar/DrownerOfHope.java index c71ed280b54..22e8337bbbc 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/DrownerOfHope.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/DrownerOfHope.java @@ -72,9 +72,9 @@ public class DrownerOfHope extends CardImpl { // Devoid this.addAbility(new DevoidAbility(this.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 {1} to your mana pool." + // 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." Effect effect = new CreateTokenEffect(new EldraziScionToken(), 2); - effect.setText("put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {1} to your mana pool"); + effect.setText("put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {C} to your mana pool"); this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); // Sacrifice an Eldrazi Scion: Tap target creature. diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/EldraziSkyspawner.java b/Mage.Sets/src/mage/sets/battleforzendikar/EldraziSkyspawner.java index f741b022af0..db77a61b7a3 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/EldraziSkyspawner.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/EldraziSkyspawner.java @@ -1,74 +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.battleforzendikar; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DevoidAbility; -import mage.abilities.keyword.FlyingAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.permanent.token.EldraziScionToken; - -/** - * - * @author LevelX2 - */ -public class EldraziSkyspawner extends CardImpl { - - public EldraziSkyspawner(UUID ownerId) { - super(ownerId, 58, "Eldrazi Skyspawner", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{U}"); - this.expansionSetCode = "BFZ"; - this.subtype.add("Eldrazi"); - this.subtype.add("Drone"); - this.power = new MageInt(2); - this.toughness = new MageInt(1); - - // Devoid - this.addAbility(new DevoidAbility(this.color)); - // Flying - this.addAbility(FlyingAbility.getInstance()); - // When Eldrazi Skyspawner enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken()); - effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\""); - this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); - } - - public EldraziSkyspawner(final EldraziSkyspawner card) { - super(card); - } - - @Override - public EldraziSkyspawner copy() { - return new EldraziSkyspawner(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author LevelX2 + */ +public class EldraziSkyspawner extends CardImpl { + + public EldraziSkyspawner(UUID ownerId) { + super(ownerId, 58, "Eldrazi Skyspawner", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{U}"); + this.expansionSetCode = "BFZ"; + this.subtype.add("Eldrazi"); + this.subtype.add("Drone"); + this.power = new MageInt(2); + this.toughness = new MageInt(1); + + // Devoid + this.addAbility(new DevoidAbility(this.color)); + // Flying + this.addAbility(FlyingAbility.getInstance()); + // 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." + Effect effect = new CreateTokenEffect(new EldraziScionToken()); + effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); + } + + public EldraziSkyspawner(final EldraziSkyspawner card) { + super(card); + } + + @Override + public EldraziSkyspawner copy() { + return new EldraziSkyspawner(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/EyelessWatcher.java b/Mage.Sets/src/mage/sets/battleforzendikar/EyelessWatcher.java index f21d030f168..23f247f5a28 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/EyelessWatcher.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/EyelessWatcher.java @@ -1,72 +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.battleforzendikar; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DevoidAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.permanent.token.EldraziScionToken; - -/** - * - * @author LevelX2 - */ -public class EyelessWatcher extends CardImpl { - - public EyelessWatcher(UUID ownerId) { - super(ownerId, 166, "Eyeless Watcher", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{G}"); - this.expansionSetCode = "BFZ"; - this.subtype.add("Eldrazi"); - this.subtype.add("Drone"); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // Devoid - this.addAbility(new DevoidAbility(this.color)); - // When Eyeless Watcher enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken(), 2); - effect.setText("put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {1} to your mana pool.\""); - this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); - - } - - public EyelessWatcher(final EyelessWatcher card) { - super(card); - } - - @Override - public EyelessWatcher copy() { - return new EyelessWatcher(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author LevelX2 + */ +public class EyelessWatcher extends CardImpl { + + public EyelessWatcher(UUID ownerId) { + super(ownerId, 166, "Eyeless Watcher", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{G}"); + this.expansionSetCode = "BFZ"; + this.subtype.add("Eldrazi"); + this.subtype.add("Drone"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Devoid + this.addAbility(new DevoidAbility(this.color)); + // When Eyeless Watcher 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." + Effect effect = new CreateTokenEffect(new EldraziScionToken(), 2); + effect.setText("put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {C} to your mana pool.\""); + this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); + + } + + public EyelessWatcher(final EyelessWatcher card) { + super(card); + } + + @Override + public EyelessWatcher copy() { + return new EyelessWatcher(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/FromBeyond.java b/Mage.Sets/src/mage/sets/battleforzendikar/FromBeyond.java index 048f5b9264b..ba3a135a056 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/FromBeyond.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/FromBeyond.java @@ -65,7 +65,7 @@ public class FromBeyond extends CardImpl { // Devoid this.addAbility(new DevoidAbility(this.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 {1} to your mana pool." + // 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." this.addAbility(new BeginningOfUpkeepTriggeredAbility(new CreateTokenEffect(new EldraziScionToken()), TargetController.YOU, false)); // {1}{G}, Sacrifice From Beyond: Search your library for an Eldrazi card, reveal it, put it into your hand, then shuffle your library. diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/GraveBirthing.java b/Mage.Sets/src/mage/sets/battleforzendikar/GraveBirthing.java index a33a559e1bd..7d907fff3c4 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/GraveBirthing.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/GraveBirthing.java @@ -1,112 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.effects.Effect; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.keyword.DevoidAbility; -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.game.permanent.token.EldraziScionToken; -import mage.players.Player; -import mage.target.Target; -import mage.target.common.TargetCardInYourGraveyard; -import mage.target.common.TargetOpponent; - -/** - * - * @author LevelX2 - */ -public class GraveBirthing extends CardImpl { - - public GraveBirthing(UUID ownerId) { - super(ownerId, 93, "Grave Birthing", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{B}"); - this.expansionSetCode = "BFZ"; - - // Devoid - Ability ability = new DevoidAbility(this.color); - ability.setRuleAtTheTop(true); - this.addAbility(ability); - // 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 {1} to your mana pool." - this.getSpellAbility().addEffect(new GraveBirthingEffect()); - this.getSpellAbility().addTarget(new TargetOpponent()); - Effect effect = new CreateTokenEffect(new EldraziScionToken()); - effect.setText("You put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\"
"); - this.getSpellAbility().addEffect(effect); // Draw a card. - this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); - } - - public GraveBirthing(final GraveBirthing card) { - super(card); - } - - @Override - public GraveBirthing copy() { - return new GraveBirthing(this); - } -} - -class GraveBirthingEffect extends OneShotEffect { - - public GraveBirthingEffect() { - super(Outcome.Benefit); - this.staticText = "Target opponent exiles a card from his or her graveyard"; - } - - public GraveBirthingEffect(final GraveBirthingEffect effect) { - super(effect); - } - - @Override - public GraveBirthingEffect copy() { - return new GraveBirthingEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player opponent = game.getPlayer(getTargetPointer().getFirst(game, source)); - if (opponent != null) { - Target target = new TargetCardInYourGraveyard(); - target.setNotTarget(true); - opponent.chooseTarget(outcome, target, source, game); - Card card = game.getCard(target.getFirstTarget()); - opponent.moveCards(card, null, Zone.EXILED, source, game); - return true; - } - return false; - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.Effect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.keyword.DevoidAbility; +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.game.permanent.token.EldraziScionToken; +import mage.players.Player; +import mage.target.Target; +import mage.target.common.TargetCardInYourGraveyard; +import mage.target.common.TargetOpponent; + +/** + * + * @author LevelX2 + */ +public class GraveBirthing extends CardImpl { + + public GraveBirthing(UUID ownerId) { + super(ownerId, 93, "Grave Birthing", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{B}"); + this.expansionSetCode = "BFZ"; + + // Devoid + Ability ability = new DevoidAbility(this.color); + ability.setRuleAtTheTop(true); + this.addAbility(ability); + // 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." + this.getSpellAbility().addEffect(new GraveBirthingEffect()); + this.getSpellAbility().addTarget(new TargetOpponent()); + Effect effect = new CreateTokenEffect(new EldraziScionToken()); + effect.setText("You put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\"
"); + this.getSpellAbility().addEffect(effect); // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + } + + public GraveBirthing(final GraveBirthing card) { + super(card); + } + + @Override + public GraveBirthing copy() { + return new GraveBirthing(this); + } +} + +class GraveBirthingEffect extends OneShotEffect { + + public GraveBirthingEffect() { + super(Outcome.Benefit); + this.staticText = "Target opponent exiles a card from his or her graveyard"; + } + + public GraveBirthingEffect(final GraveBirthingEffect effect) { + super(effect); + } + + @Override + public GraveBirthingEffect copy() { + return new GraveBirthingEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player opponent = game.getPlayer(getTargetPointer().getFirst(game, source)); + if (opponent != null) { + Target target = new TargetCardInYourGraveyard(); + target.setNotTarget(true); + opponent.chooseTarget(outcome, target, source, game); + Card card = game.getCard(target.getFirstTarget()); + opponent.moveCards(card, null, Zone.EXILED, source, game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/HedronArchive.java b/Mage.Sets/src/mage/sets/battleforzendikar/HedronArchive.java index 460abc0d4e7..aeb8296cbcb 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/HedronArchive.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/HedronArchive.java @@ -51,7 +51,7 @@ public class HedronArchive extends CardImpl { super(ownerId, 223, "Hedron Archive", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); this.expansionSetCode = "BFZ"; - // {T}: Add {2} to your mana pool. + // {T}: Add {C}{C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); // {2}, {T}, Sacrifice Hedron Archive: Draw two cards. diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/IncubatorDrone.java b/Mage.Sets/src/mage/sets/battleforzendikar/IncubatorDrone.java index aeba4330a7e..76143d1dd73 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/IncubatorDrone.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/IncubatorDrone.java @@ -55,9 +55,9 @@ public class IncubatorDrone extends CardImpl { // Devoid this.addAbility(new DevoidAbility(this.color)); - // Whenever Incubator Drone enters the battlefield, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool." + // Whenever 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." Effect effect = new CreateTokenEffect(new EldraziScionToken()); - effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\""); + effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""); this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); } diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/KozileksChanneler.java b/Mage.Sets/src/mage/sets/battleforzendikar/KozileksChanneler.java index f2542a772a9..b90069d329d 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/KozileksChanneler.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/KozileksChanneler.java @@ -50,7 +50,7 @@ public class KozileksChanneler extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); - // {T}: Add {2} to your mana pool. + // {T}: Add {C}{C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); } diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/SanctumOfUgin.java b/Mage.Sets/src/mage/sets/battleforzendikar/SanctumOfUgin.java index 43f2551ad26..eeb6d11cf79 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/SanctumOfUgin.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/SanctumOfUgin.java @@ -63,7 +63,7 @@ public class SanctumOfUgin extends CardImpl { super(ownerId, 242, "Sanctum of Ugin", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "BFZ"; - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // Whenever you cast a colorless spell with converted mana cost 7 or greater, you may sacrifice Sanctum of Ugin. diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/ShrineOfTheForsakenGods.java b/Mage.Sets/src/mage/sets/battleforzendikar/ShrineOfTheForsakenGods.java index 70a54cc1a08..a335c4d1057 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/ShrineOfTheForsakenGods.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/ShrineOfTheForsakenGods.java @@ -1,80 +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.battleforzendikar; - -import java.util.UUID; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.AddConditionalColorlessManaEffect; -import mage.abilities.mana.ActivateIfConditionManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.FilterSpell; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.predicate.mageobject.ColorlessPredicate; - -/** - * - * @author LevelX2 - */ -public class ShrineOfTheForsakenGods extends CardImpl { - - private static final FilterSpell filter = new FilterSpell("colorless spells"); - - static { - filter.add(new ColorlessPredicate()); - } - - public ShrineOfTheForsakenGods(UUID ownerId) { - super(ownerId, 245, "Shrine of the Forsaken Gods", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BFZ"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {T}: Add {2} to your mana pool. Spend this mana only to cast colorless spells. Activate this ability only if you control seven or more lands. - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new AddConditionalColorlessManaEffect(2, new ConditionalSpellManaBuilder(filter)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent("you control seven or more lands"), PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 6))); - } - - public ShrineOfTheForsakenGods(final ShrineOfTheForsakenGods card) { - super(card); - } - - @Override - public ShrineOfTheForsakenGods copy() { - return new ShrineOfTheForsakenGods(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.AddConditionalColorlessManaEffect; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterSpell; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.mageobject.ColorlessPredicate; + +/** + * + * @author LevelX2 + */ +public class ShrineOfTheForsakenGods extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("colorless spells"); + + static { + filter.add(new ColorlessPredicate()); + } + + public ShrineOfTheForsakenGods(UUID ownerId) { + super(ownerId, 245, "Shrine of the Forsaken Gods", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BFZ"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {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. + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new AddConditionalColorlessManaEffect(2, new ConditionalSpellManaBuilder(filter)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(new FilterControlledLandPermanent("you control seven or more lands"), PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 6))); + } + + public ShrineOfTheForsakenGods(final ShrineOfTheForsakenGods card) { + super(card); + } + + @Override + public ShrineOfTheForsakenGods copy() { + return new ShrineOfTheForsakenGods(this); + } +} diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/SpawningBed.java b/Mage.Sets/src/mage/sets/battleforzendikar/SpawningBed.java index 1dc801574ed..1a1c132e84e 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/SpawningBed.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/SpawningBed.java @@ -51,10 +51,10 @@ public class SpawningBed extends CardImpl { super(ownerId, 248, "Spawning Bed", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "BFZ"; - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); - // {6}, {T}, Sacrifice Spawning Bed: Put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." + // {6}, {T}, Sacrifice Spawning Bed: Put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool." Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new EldraziScionToken(), 3), new ManaCostsImpl("{6}")); ability.addCost(new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/VoidAttendant.java b/Mage.Sets/src/mage/sets/battleforzendikar/VoidAttendant.java index 44baa72841d..8c2b6df9459 100644 --- a/Mage.Sets/src/mage/sets/battleforzendikar/VoidAttendant.java +++ b/Mage.Sets/src/mage/sets/battleforzendikar/VoidAttendant.java @@ -1,79 +1,79 @@ -/* - * 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.battleforzendikar; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.ExileOpponentsCardFromExileToGraveyardCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.DevoidAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.game.permanent.token.EldraziScionToken; - -/** - * - * @author LevelX2 - */ -public class VoidAttendant extends CardImpl { - - public VoidAttendant(UUID ownerId) { - super(ownerId, 169, "Void Attendant", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); - this.expansionSetCode = "BFZ"; - this.subtype.add("Eldrazi"); - this.subtype.add("Processor"); - this.power = new MageInt(2); - this.toughness = new MageInt(3); - - // Devoid - this.addAbility(new DevoidAbility(this.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 {1} to your mana pool." - Effect effect = new CreateTokenEffect(new EldraziScionToken()); - effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\""); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{G}")); - ability.addCost(new ExileOpponentsCardFromExileToGraveyardCost(true)); - this.addAbility(ability); - - } - - public VoidAttendant(final VoidAttendant card) { - super(card); - } - - @Override - public VoidAttendant copy() { - return new VoidAttendant(this); - } -} +/* + * 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.battleforzendikar; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.ExileOpponentsCardFromExileToGraveyardCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.DevoidAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.permanent.token.EldraziScionToken; + +/** + * + * @author LevelX2 + */ +public class VoidAttendant extends CardImpl { + + public VoidAttendant(UUID ownerId) { + super(ownerId, 169, "Void Attendant", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); + this.expansionSetCode = "BFZ"; + this.subtype.add("Eldrazi"); + this.subtype.add("Processor"); + this.power = new MageInt(2); + this.toughness = new MageInt(3); + + // Devoid + this.addAbility(new DevoidAbility(this.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." + Effect effect = new CreateTokenEffect(new EldraziScionToken()); + effect.setText("put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{1}{G}")); + ability.addCost(new ExileOpponentsCardFromExileToGraveyardCost(true)); + this.addAbility(ability); + + } + + public VoidAttendant(final VoidAttendant card) { + super(card); + } + + @Override + public VoidAttendant copy() { + return new VoidAttendant(this); + } +} diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/GodsEyeGateToTheReikai.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/GodsEyeGateToTheReikai.java index 4dea48f8b70..3097eef6c15 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/GodsEyeGateToTheReikai.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/GodsEyeGateToTheReikai.java @@ -1,63 +1,63 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.betrayersofkamigawa; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.game.permanent.token.SpiritToken; - -/** - * - * @author Loki - */ -public class GodsEyeGateToTheReikai extends CardImpl { - - public GodsEyeGateToTheReikai(UUID ownerId) { - super(ownerId, 164, "Gods' Eye, Gate to the Reikai", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BOK"; - this.supertype.add("Legendary"); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // When Gods' Eye, Gate to the Reikai is put into a graveyard from the battlefield, put a 1/1 colorless Spirit creature token onto the battlefield. - this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new CreateTokenEffect(new SpiritToken(), 1), false)); - } - - public GodsEyeGateToTheReikai(final GodsEyeGateToTheReikai card) { - super(card); - } - - @Override - public GodsEyeGateToTheReikai copy() { - return new GodsEyeGateToTheReikai(this); - } -} +/* + * 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.betrayersofkamigawa; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.common.PutIntoGraveFromBattlefieldSourceTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.game.permanent.token.SpiritToken; + +/** + * + * @author Loki + */ +public class GodsEyeGateToTheReikai extends CardImpl { + + public GodsEyeGateToTheReikai(UUID ownerId) { + super(ownerId, 164, "Gods' Eye, Gate to the Reikai", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BOK"; + this.supertype.add("Legendary"); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // When Gods' Eye, Gate to the Reikai is put into a graveyard from the battlefield, put a 1/1 colorless Spirit creature token onto the battlefield. + this.addAbility(new PutIntoGraveFromBattlefieldSourceTriggeredAbility(new CreateTokenEffect(new SpiritToken(), 1), false)); + } + + public GodsEyeGateToTheReikai(final GodsEyeGateToTheReikai card) { + super(card); + } + + @Override + public GodsEyeGateToTheReikai copy() { + return new GodsEyeGateToTheReikai(this); + } +} diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/TendoIceBridge.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/TendoIceBridge.java index c8a286f55cc..eb6c4bd5e10 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/TendoIceBridge.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/TendoIceBridge.java @@ -1,69 +1,69 @@ -/* - * 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.betrayersofkamigawa; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldAbility; -import mage.abilities.costs.common.RemoveCountersSourceCost; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.AnyColorManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.counters.CounterType; - -/** - * - * @author Loki - */ -public class TendoIceBridge extends CardImpl { - - public TendoIceBridge(UUID ownerId) { - super(ownerId, 165, "Tendo Ice Bridge", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "BOK"; - // Tendo Ice Bridge enters the battlefield with a charge counter on it. - this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1)))); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}, Remove a charge counter from Tendo Ice Bridge: Add one mana of any color to your mana pool. - Ability ability = new AnyColorManaAbility(); - ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(1))); - this.addAbility(ability); - } - - public TendoIceBridge(final TendoIceBridge card) { - super(card); - } - - @Override - public TendoIceBridge copy() { - return new TendoIceBridge(this); - } -} +/* + * 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.betrayersofkamigawa; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.AnyColorManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.counters.CounterType; + +/** + * + * @author Loki + */ +public class TendoIceBridge extends CardImpl { + + public TendoIceBridge(UUID ownerId) { + super(ownerId, 165, "Tendo Ice Bridge", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "BOK"; + // Tendo Ice Bridge enters the battlefield with a charge counter on it. + this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance(1)))); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}, Remove a charge counter from Tendo Ice Bridge: Add one mana of any color to your mana pool. + Ability ability = new AnyColorManaAbility(); + ability.addCost(new RemoveCountersSourceCost(CounterType.CHARGE.createInstance(1))); + this.addAbility(ability); + } + + public TendoIceBridge(final TendoIceBridge card) { + super(card); + } + + @Override + public TendoIceBridge copy() { + return new TendoIceBridge(this); + } +} diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java b/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java index add2214866e..2e42ccfa63b 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/BoseijuWhoSheltersAll.java @@ -1,174 +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.championsofkamigawa; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.common.PayLifeCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.WatcherScope; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.common.FilterInstantOrSorceryCard; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.stack.Spell; -import mage.watchers.Watcher; - -/** - * - * @author LevelX2 - */ -public class BoseijuWhoSheltersAll extends CardImpl { - - public BoseijuWhoSheltersAll(UUID ownerId) { - super(ownerId, 273, "Boseiju, Who Shelters All", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CHK"; - this.supertype.add("Legendary"); - - // Boseiju, Who Shelters All enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // {tap}, Pay 2 life: Add {1} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities. - Mana mana = new Mana(0, 0, 0, 0, 0, 1, 0); - mana.setFlag(true); // used to indicate this mana ability - SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, mana, new TapSourceCost()); - ability.addCost(new PayLifeCost(2)); - ability.getEffects().get(0).setText("Add {1} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities"); - this.addAbility(ability); - - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoseijuWhoSheltersAllCantCounterEffect()), new BoseijuWhoSheltersAllWatcher()); - } - - public BoseijuWhoSheltersAll(final BoseijuWhoSheltersAll card) { - super(card); - } - - @Override - public BoseijuWhoSheltersAll copy() { - return new BoseijuWhoSheltersAll(this); - } -} - -class BoseijuWhoSheltersAllWatcher extends Watcher { - - public List spells = new ArrayList<>(); - - public BoseijuWhoSheltersAllWatcher() { - super("ManaPaidFromBoseijuWhoSheltersAllWatcher", WatcherScope.GAME); - } - - public BoseijuWhoSheltersAllWatcher(final BoseijuWhoSheltersAllWatcher watcher) { - super(watcher); - } - - @Override - public BoseijuWhoSheltersAllWatcher copy() { - return new BoseijuWhoSheltersAllWatcher(this); - } - - @Override - public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.MANA_PAYED) { - MageObject object = game.getObject(event.getSourceId()); - // TODO: Replace identification by name by better method that also works if ability is copied from other land with other name - if (object != null && object.getName().equals("Boseiju, Who Shelters All") && event.getFlag()) { - spells.add(event.getTargetId()); - } - } - } - - @Override - public void reset() { - super.reset(); - spells.clear(); - } -} - -class BoseijuWhoSheltersAllCantCounterEffect extends ContinuousRuleModifyingEffectImpl { - - private static final FilterCard filter = new FilterInstantOrSorceryCard(); - - public BoseijuWhoSheltersAllCantCounterEffect() { - super(Duration.WhileOnBattlefield, Outcome.Benefit); - staticText = null; - } - - public BoseijuWhoSheltersAllCantCounterEffect(final BoseijuWhoSheltersAllCantCounterEffect effect) { - super(effect); - } - - @Override - public BoseijuWhoSheltersAllCantCounterEffect copy() { - return new BoseijuWhoSheltersAllCantCounterEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - return true; - } - - @Override - public String getInfoMessage(Ability source, GameEvent event, Game game) { - MageObject sourceObject = game.getObject(source.getSourceId()); - if (sourceObject != null) { - return "This spell can't be countered by spells or abilities (" + sourceObject.getName() + ")."; - } - return null; - } - - @Override - public boolean checksEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.COUNTER; - } - - @Override - public boolean applies(GameEvent event, Ability source, Game game) { - BoseijuWhoSheltersAllWatcher watcher = (BoseijuWhoSheltersAllWatcher) game.getState().getWatchers().get("ManaPaidFromBoseijuWhoSheltersAllWatcher"); - Spell spell = game.getStack().getSpell(event.getTargetId()); - if (spell != null && watcher.spells.contains(spell.getId())) { - if (filter.match(spell.getCard(), game)) { - return true; - } - } - return false; - } -} +/* + * 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.championsofkamigawa; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.PayLifeCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.WatcherScope; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.common.FilterInstantOrSorceryCard; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.stack.Spell; +import mage.watchers.Watcher; + +/** + * + * @author LevelX2 + */ +public class BoseijuWhoSheltersAll extends CardImpl { + + public BoseijuWhoSheltersAll(UUID ownerId) { + super(ownerId, 273, "Boseiju, Who Shelters All", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CHK"; + this.supertype.add("Legendary"); + + // Boseiju, Who Shelters All enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // {tap}, Pay 2 life: Add {C} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities. + Mana mana = new Mana(0, 0, 0, 0, 0, 1, 0); + mana.setFlag(true); // used to indicate this mana ability + SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, mana, new TapSourceCost()); + ability.addCost(new PayLifeCost(2)); + ability.getEffects().get(0).setText("Add {C} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities"); + this.addAbility(ability); + + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoseijuWhoSheltersAllCantCounterEffect()), new BoseijuWhoSheltersAllWatcher()); + } + + public BoseijuWhoSheltersAll(final BoseijuWhoSheltersAll card) { + super(card); + } + + @Override + public BoseijuWhoSheltersAll copy() { + return new BoseijuWhoSheltersAll(this); + } +} + +class BoseijuWhoSheltersAllWatcher extends Watcher { + + public List spells = new ArrayList<>(); + + public BoseijuWhoSheltersAllWatcher() { + super("ManaPaidFromBoseijuWhoSheltersAllWatcher", WatcherScope.GAME); + } + + public BoseijuWhoSheltersAllWatcher(final BoseijuWhoSheltersAllWatcher watcher) { + super(watcher); + } + + @Override + public BoseijuWhoSheltersAllWatcher copy() { + return new BoseijuWhoSheltersAllWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.MANA_PAYED) { + MageObject object = game.getObject(event.getSourceId()); + // TODO: Replace identification by name by better method that also works if ability is copied from other land with other name + if (object != null && object.getName().equals("Boseiju, Who Shelters All") && event.getFlag()) { + spells.add(event.getTargetId()); + } + } + } + + @Override + public void reset() { + super.reset(); + spells.clear(); + } +} + +class BoseijuWhoSheltersAllCantCounterEffect extends ContinuousRuleModifyingEffectImpl { + + private static final FilterCard filter = new FilterInstantOrSorceryCard(); + + public BoseijuWhoSheltersAllCantCounterEffect() { + super(Duration.WhileOnBattlefield, Outcome.Benefit); + staticText = null; + } + + public BoseijuWhoSheltersAllCantCounterEffect(final BoseijuWhoSheltersAllCantCounterEffect effect) { + super(effect); + } + + @Override + public BoseijuWhoSheltersAllCantCounterEffect copy() { + return new BoseijuWhoSheltersAllCantCounterEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public String getInfoMessage(Ability source, GameEvent event, Game game) { + MageObject sourceObject = game.getObject(source.getSourceId()); + if (sourceObject != null) { + return "This spell can't be countered by spells or abilities (" + sourceObject.getName() + ")."; + } + return null; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.COUNTER; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + BoseijuWhoSheltersAllWatcher watcher = (BoseijuWhoSheltersAllWatcher) game.getState().getWatchers().get("ManaPaidFromBoseijuWhoSheltersAllWatcher"); + Spell spell = game.getStack().getSpell(event.getTargetId()); + if (spell != null && watcher.spells.contains(spell.getId())) { + if (filter.match(spell.getCard(), game)) { + return true; + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java b/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java index 451fe33a81e..b73a9b8c464 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/CloudcrestLake.java @@ -1,69 +1,69 @@ -/* - * 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.championsofkamigawa; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; -import mage.abilities.mana.BlueManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.WhiteManaAbility; -import mage.cards.CardImpl; - -/** - * @author Loki - */ -public class CloudcrestLake extends CardImpl { - - public CloudcrestLake(UUID ownerId) { - super(ownerId, 274, "Cloudcrest Lake", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CHK"; - - // {T}: Add {1} to your mana pool. - // {T}: Add {W} or {U} to your mana pool. Cloudcrest Lake doesn't untap during your next untap step. - this.addAbility(new ColorlessManaAbility()); - Ability whiteManaAbility = new WhiteManaAbility(); - whiteManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(whiteManaAbility); - Ability blueManaAbility = new BlueManaAbility(); - blueManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(blueManaAbility); - } - - public CloudcrestLake(final CloudcrestLake card) { - super(card); - } - - @Override - public CloudcrestLake copy() { - return new CloudcrestLake(this); - } -} +/* + * 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.championsofkamigawa; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; + +/** + * @author Loki + */ +public class CloudcrestLake extends CardImpl { + + public CloudcrestLake(UUID ownerId) { + super(ownerId, 274, "Cloudcrest Lake", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CHK"; + + // {T}: Add {C} to your mana pool. + // {T}: Add {W} or {U} to your mana pool. Cloudcrest Lake doesn't untap during your next untap step. + this.addAbility(new ColorlessManaAbility()); + Ability whiteManaAbility = new WhiteManaAbility(); + whiteManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(whiteManaAbility); + Ability blueManaAbility = new BlueManaAbility(); + blueManaAbility.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(blueManaAbility); + } + + public CloudcrestLake(final CloudcrestLake card) { + super(card); + } + + @Override + public CloudcrestLake copy() { + return new CloudcrestLake(this); + } +} diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/HallOfTheBanditLord.java b/Mage.Sets/src/mage/sets/championsofkamigawa/HallOfTheBanditLord.java index 95a7e71b4be..ede04a9b808 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/HallOfTheBanditLord.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/HallOfTheBanditLord.java @@ -1,157 +1,157 @@ -/* - * 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.championsofkamigawa; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.costs.common.PayLifeCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.ContinuousEffect; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.effects.common.ManaEffect; -import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; -import mage.abilities.keyword.HasteAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Rarity; -import mage.constants.WatcherScope; -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.game.stack.Spell; -import mage.target.targetpointer.FixedTarget; -import mage.watchers.Watcher; - -/** - * - * @author emerald000 - */ -public class HallOfTheBanditLord extends CardImpl { - - public HallOfTheBanditLord(UUID ownerId) { - super(ownerId, 277, "Hall of the Bandit Lord", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CHK"; - this.supertype.add("Legendary"); - - // Hall of the Bandit Lord enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // {T}, Pay 3 life: Add {1} to your mana pool. If that mana is spent on a creature spell, it gains haste. - Mana mana = Mana.ColorlessMana(1); - mana.setFlag(true); - ManaEffect effect = new BasicManaEffect(mana); - effect.setText("Add {1} to your mana pool. If that mana is spent on a creature spell, it gains haste"); - Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); - ability.addCost(new PayLifeCost(3)); - this.addAbility(ability, new HallOfTheBanditLordWatcher(ability)); - } - - public HallOfTheBanditLord(final HallOfTheBanditLord card) { - super(card); - } - - @Override - public HallOfTheBanditLord copy() { - return new HallOfTheBanditLord(this); - } -} - -class HallOfTheBanditLordWatcher extends Watcher { - - private final Ability source; - private final List creatures = new ArrayList<>(); - - HallOfTheBanditLordWatcher(Ability source) { - super("HallOfTheBanditLordWatcher", WatcherScope.CARD); - this.source = source; - } - - HallOfTheBanditLordWatcher(final HallOfTheBanditLordWatcher watcher) { - super(watcher); - this.creatures.addAll(watcher.creatures); - this.source = watcher.source; - } - - @Override - public HallOfTheBanditLordWatcher copy() { - return new HallOfTheBanditLordWatcher(this); - } - - @Override - public void watch(GameEvent event, Game game) { - if (event.getType() == EventType.MANA_PAYED) { - MageObject target = game.getObject(event.getTargetId()); - if (event.getSourceId() != null - && event.getSourceId().equals(this.getSourceId()) - && target != null && target.getCardType().contains(CardType.CREATURE) - && event.getFlag()) { - if (target instanceof Spell) { - this.creatures.add(((Spell) target).getCard().getId()); - } - } - } - if (event.getType() == EventType.COUNTERED) { - if (creatures.contains(event.getTargetId())) { - creatures.remove(event.getSourceId()); - } - } - if (event.getType() == EventType.ZONE_CHANGE) { - if (creatures.contains(event.getSourceId())) { - ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - // spell was e.g. exiled and goes again to stack, so previous cast has not resolved. - if (zEvent.getToZone() == Zone.STACK) { - creatures.remove(event.getSourceId()); - } - } - } - if (event.getType() == EventType.ENTERS_THE_BATTLEFIELD) { - if (creatures.contains(event.getSourceId())) { - ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); - effect.setTargetPointer(new FixedTarget(event.getSourceId())); - game.addEffect(effect, source); - creatures.remove(event.getSourceId()); - } - } - } - - @Override - public void reset() { - super.reset(); - creatures.clear(); - } - -} +/* + * 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.championsofkamigawa; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.costs.common.PayLifeCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.WatcherScope; +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.game.stack.Spell; +import mage.target.targetpointer.FixedTarget; +import mage.watchers.Watcher; + +/** + * + * @author emerald000 + */ +public class HallOfTheBanditLord extends CardImpl { + + public HallOfTheBanditLord(UUID ownerId) { + super(ownerId, 277, "Hall of the Bandit Lord", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CHK"; + this.supertype.add("Legendary"); + + // Hall of the Bandit Lord enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // {T}, Pay 3 life: Add {C} to your mana pool. If that mana is spent on a creature spell, it gains haste. + Mana mana = Mana.ColorlessMana(1); + mana.setFlag(true); + ManaEffect effect = new BasicManaEffect(mana); + effect.setText("Add {C} to your mana pool. If that mana is spent on a creature spell, it gains haste"); + Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); + ability.addCost(new PayLifeCost(3)); + this.addAbility(ability, new HallOfTheBanditLordWatcher(ability)); + } + + public HallOfTheBanditLord(final HallOfTheBanditLord card) { + super(card); + } + + @Override + public HallOfTheBanditLord copy() { + return new HallOfTheBanditLord(this); + } +} + +class HallOfTheBanditLordWatcher extends Watcher { + + private final Ability source; + private final List creatures = new ArrayList<>(); + + HallOfTheBanditLordWatcher(Ability source) { + super("HallOfTheBanditLordWatcher", WatcherScope.CARD); + this.source = source; + } + + HallOfTheBanditLordWatcher(final HallOfTheBanditLordWatcher watcher) { + super(watcher); + this.creatures.addAll(watcher.creatures); + this.source = watcher.source; + } + + @Override + public HallOfTheBanditLordWatcher copy() { + return new HallOfTheBanditLordWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == EventType.MANA_PAYED) { + MageObject target = game.getObject(event.getTargetId()); + if (event.getSourceId() != null + && event.getSourceId().equals(this.getSourceId()) + && target != null && target.getCardType().contains(CardType.CREATURE) + && event.getFlag()) { + if (target instanceof Spell) { + this.creatures.add(((Spell) target).getCard().getId()); + } + } + } + if (event.getType() == EventType.COUNTERED) { + if (creatures.contains(event.getTargetId())) { + creatures.remove(event.getSourceId()); + } + } + if (event.getType() == EventType.ZONE_CHANGE) { + if (creatures.contains(event.getSourceId())) { + ZoneChangeEvent zEvent = (ZoneChangeEvent) event; + // spell was e.g. exiled and goes again to stack, so previous cast has not resolved. + if (zEvent.getToZone() == Zone.STACK) { + creatures.remove(event.getSourceId()); + } + } + } + if (event.getType() == EventType.ENTERS_THE_BATTLEFIELD) { + if (creatures.contains(event.getSourceId())) { + ContinuousEffect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.Custom); + effect.setTargetPointer(new FixedTarget(event.getSourceId())); + game.addEffect(effect, source); + creatures.remove(event.getSourceId()); + } + } + } + + @Override + public void reset() { + super.reset(); + creatures.clear(); + } + +} diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/ManaSeism.java b/Mage.Sets/src/mage/sets/championsofkamigawa/ManaSeism.java index 97ae3f3be4c..79243bb39db 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/ManaSeism.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/ManaSeism.java @@ -1,107 +1,107 @@ -/* - * 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.championsofkamigawa; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.effects.OneShotEffect; -import mage.cards.CardImpl; -import mage.filter.common.FilterControlledLandPermanent; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class ManaSeism extends CardImpl { - - public ManaSeism(UUID ownerId) { - super(ownerId, 179, "Mana Seism", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); - this.expansionSetCode = "CHK"; - - - // Sacrifice any number of lands. Add {1} to your mana pool for each land sacrificed this way. - this.getSpellAbility().addEffect(new ManaSeismEffect()); - - } - - public ManaSeism(final ManaSeism card) { - super(card); - } - - @Override - public ManaSeism copy() { - return new ManaSeism(this); - } -} - -class ManaSeismEffect extends OneShotEffect { - - public ManaSeismEffect() { - super(Outcome.Neutral); - staticText = "Sacrifice any number of lands. Add {1} to your mana pool for each land sacrificed this way"; - } - - public ManaSeismEffect(final ManaSeismEffect effect) { - super(effect); - } - - @Override - public ManaSeismEffect copy() { - return new ManaSeismEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getControllerId()); - if (player == null){ - return false; - } - int amount = 0; - TargetControlledPermanent sacrificeLand = new TargetControlledPermanent(0, Integer.MAX_VALUE, new FilterControlledLandPermanent(), true); - if(player.chooseTarget(Outcome.Sacrifice, sacrificeLand, source, game)){ - for(Object uuid : sacrificeLand.getTargets()){ - Permanent land = game.getPermanent((UUID)uuid); - if(land != null){ - land.sacrifice(source.getSourceId(), game); - amount++; - } - } - } - player.getManaPool().addMana(Mana.ColorlessMana(amount), game, source); - return true; - } - -} +/* + * 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.championsofkamigawa; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterControlledLandPermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class ManaSeism extends CardImpl { + + public ManaSeism(UUID ownerId) { + super(ownerId, 179, "Mana Seism", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); + this.expansionSetCode = "CHK"; + + + // Sacrifice any number of lands. Add {C} to your mana pool for each land sacrificed this way. + this.getSpellAbility().addEffect(new ManaSeismEffect()); + + } + + public ManaSeism(final ManaSeism card) { + super(card); + } + + @Override + public ManaSeism copy() { + return new ManaSeism(this); + } +} + +class ManaSeismEffect extends OneShotEffect { + + public ManaSeismEffect() { + super(Outcome.Neutral); + staticText = "Sacrifice any number of lands. Add {C} to your mana pool for each land sacrificed this way"; + } + + public ManaSeismEffect(final ManaSeismEffect effect) { + super(effect); + } + + @Override + public ManaSeismEffect copy() { + return new ManaSeismEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player == null){ + return false; + } + int amount = 0; + TargetControlledPermanent sacrificeLand = new TargetControlledPermanent(0, Integer.MAX_VALUE, new FilterControlledLandPermanent(), true); + if(player.chooseTarget(Outcome.Sacrifice, sacrificeLand, source, game)){ + for(Object uuid : sacrificeLand.getTargets()){ + Permanent land = game.getPermanent((UUID)uuid); + if(land != null){ + land.sacrifice(source.getSourceId(), game); + amount++; + } + } + } + player.getManaPool().addMana(Mana.ColorlessMana(amount), game, source); + return true; + } + +} diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/UntaidakeTheCloudKeeper.java b/Mage.Sets/src/mage/sets/championsofkamigawa/UntaidakeTheCloudKeeper.java index 1319d9af8c3..368d39bd172 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/UntaidakeTheCloudKeeper.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/UntaidakeTheCloudKeeper.java @@ -58,7 +58,7 @@ public class UntaidakeTheCloudKeeper extends CardImpl { // Untaidake, the Cloud Keeper enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}, Pay 2 life: Add {2} to your mana pool. Spend this mana only to cast legendary spells. + // {tap}, Pay 2 life: Add {C}{C} to your mana pool. Spend this mana only to cast legendary spells. Ability ability = new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new LegendarySpellManaBuilder()); ability.addCost(new PayLifeCost(2)); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/coldsnap/BorealDruid.java b/Mage.Sets/src/mage/sets/coldsnap/BorealDruid.java index 7e7de97ad85..e1b742d9d63 100644 --- a/Mage.Sets/src/mage/sets/coldsnap/BorealDruid.java +++ b/Mage.Sets/src/mage/sets/coldsnap/BorealDruid.java @@ -1,65 +1,65 @@ -/* - * 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.coldsnap; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageInt; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author LevelX2 - */ -public class BorealDruid extends CardImpl { - - public BorealDruid(UUID ownerId) { - super(ownerId, 105, "Boreal Druid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}"); - this.expansionSetCode = "CSP"; - this.supertype.add("Snow"); - this.subtype.add("Elf"); - this.subtype.add("Druid"); - - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public BorealDruid(final BorealDruid card) { - super(card); - } - - @Override - public BorealDruid copy() { - return new BorealDruid(this); - } -} +/* + * 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.coldsnap; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.MageInt; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author LevelX2 + */ +public class BorealDruid extends CardImpl { + + public BorealDruid(UUID ownerId) { + super(ownerId, 105, "Boreal Druid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}"); + this.expansionSetCode = "CSP"; + this.supertype.add("Snow"); + this.subtype.add("Elf"); + this.subtype.add("Druid"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public BorealDruid(final BorealDruid card) { + super(card); + } + + @Override + public BorealDruid copy() { + return new BorealDruid(this); + } +} diff --git a/Mage.Sets/src/mage/sets/coldsnap/MouthOfRonom.java b/Mage.Sets/src/mage/sets/coldsnap/MouthOfRonom.java index b4ea1d2ab05..c4891ad0203 100644 --- a/Mage.Sets/src/mage/sets/coldsnap/MouthOfRonom.java +++ b/Mage.Sets/src/mage/sets/coldsnap/MouthOfRonom.java @@ -52,7 +52,7 @@ public class MouthOfRonom extends CardImpl { this.expansionSetCode = "CSP"; this.supertype.add("Snow"); - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {4}{S}, {T}, Sacrifice Mouth of Ronom: Mouth of Ronom deals 4 damage to target creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(4), new ManaCostsImpl("{4}{S}")); diff --git a/Mage.Sets/src/mage/sets/coldsnap/ScryingSheets.java b/Mage.Sets/src/mage/sets/coldsnap/ScryingSheets.java index 0aaf3714f36..c13863000f4 100644 --- a/Mage.Sets/src/mage/sets/coldsnap/ScryingSheets.java +++ b/Mage.Sets/src/mage/sets/coldsnap/ScryingSheets.java @@ -1,115 +1,115 @@ -/* - * 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.coldsnap; - -import java.util.UUID; -import mage.MageObject; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.CardsImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.game.Game; -import mage.players.Player; - -/** - * - * @author emerald000 - */ -public class ScryingSheets extends CardImpl { - - public ScryingSheets(UUID ownerId) { - super(ownerId, 149, "Scrying Sheets", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CSP"; - this.supertype.add("Snow"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}{S}, {T}: Look at the top card of your library. If that card is snow, you may reveal it and put it into your hand. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryingSheetsEffect(), new ManaCostsImpl<>("{1}{S}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public ScryingSheets(final ScryingSheets card) { - super(card); - } - - @Override - public ScryingSheets copy() { - return new ScryingSheets(this); - } -} - -class ScryingSheetsEffect extends OneShotEffect { - - ScryingSheetsEffect() { - super(Outcome.Benefit); - this.staticText = "Look at the top card of your library. If that card is snow, you may reveal it and put it into your hand"; - } - - ScryingSheetsEffect(final ScryingSheetsEffect effect) { - super(effect); - } - - @Override - public ScryingSheetsEffect copy() { - return new ScryingSheetsEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - MageObject sourceObject = game.getObject(source.getSourceId()); - if (controller != null && sourceObject != null) { - Card card = controller.getLibrary().getFromTop(game); - if (card != null) { - CardsImpl cards = new CardsImpl(); - cards.add(card); - controller.lookAtCards(sourceObject.getIdName(), cards, game); - if (card.getSupertype().contains("Snow")) { - if (controller.chooseUse(outcome, "Reveal " + card.getLogName() + " and put it into your hand?", source, game)) { - controller.moveCards(card, null, Zone.HAND, source, game); - controller.revealCards(sourceObject.getIdName(), cards, game); - } - } - } - return true; - } - return false; - } -} +/* + * 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.coldsnap; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.CardsImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author emerald000 + */ +public class ScryingSheets extends CardImpl { + + public ScryingSheets(UUID ownerId) { + super(ownerId, 149, "Scrying Sheets", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CSP"; + this.supertype.add("Snow"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}{S}, {T}: Look at the top card of your library. If that card is snow, you may reveal it and put it into your hand. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ScryingSheetsEffect(), new ManaCostsImpl<>("{1}{S}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public ScryingSheets(final ScryingSheets card) { + super(card); + } + + @Override + public ScryingSheets copy() { + return new ScryingSheets(this); + } +} + +class ScryingSheetsEffect extends OneShotEffect { + + ScryingSheetsEffect() { + super(Outcome.Benefit); + this.staticText = "Look at the top card of your library. If that card is snow, you may reveal it and put it into your hand"; + } + + ScryingSheetsEffect(final ScryingSheetsEffect effect) { + super(effect); + } + + @Override + public ScryingSheetsEffect copy() { + return new ScryingSheetsEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = game.getObject(source.getSourceId()); + if (controller != null && sourceObject != null) { + Card card = controller.getLibrary().getFromTop(game); + if (card != null) { + CardsImpl cards = new CardsImpl(); + cards.add(card); + controller.lookAtCards(sourceObject.getIdName(), cards, game); + if (card.getSupertype().contains("Snow")) { + if (controller.chooseUse(outcome, "Reveal " + card.getLogName() + " and put it into your hand?", source, game)) { + controller.moveCards(card, null, Zone.HAND, source, game); + controller.revealCards(sourceObject.getIdName(), cards, game); + } + } + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/commander/DreadshipReef.java b/Mage.Sets/src/mage/sets/commander/DreadshipReef.java index 1e7a8d0e5d8..e121b59e4e9 100644 --- a/Mage.Sets/src/mage/sets/commander/DreadshipReef.java +++ b/Mage.Sets/src/mage/sets/commander/DreadshipReef.java @@ -1,80 +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.commander; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.RemoveVariableCountersSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; -import mage.abilities.effects.common.AddManaInAnyCombinationEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; - -/** - * - * @author LevelX2 - */ -public class DreadshipReef extends CardImpl { - - public DreadshipReef(UUID ownerId) { - super(ownerId, 271, "Dreadship Reef", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CMD"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {tap}: Put a storage counter on Dreadship Reef. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - // {1}, Remove X storage counters from Dreadship Reef: Add X mana in any combination of {U} and/or {B} to your mana pool. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.U, ColoredManaSymbol.B), - new GenericManaCost(1)); - ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); - this.addAbility(ability); - - } - - public DreadshipReef(final DreadshipReef card) { - super(card); - } - - @Override - public DreadshipReef copy() { - return new DreadshipReef(this); - } -} +/* + * 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.commander; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveVariableCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; +import mage.abilities.effects.common.AddManaInAnyCombinationEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author LevelX2 + */ +public class DreadshipReef extends CardImpl { + + public DreadshipReef(UUID ownerId) { + super(ownerId, 271, "Dreadship Reef", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CMD"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {tap}: Put a storage counter on Dreadship Reef. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + // {1}, Remove X storage counters from Dreadship Reef: Add X mana in any combination of {U} and/or {B} to your mana pool. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.U, ColoredManaSymbol.B), + new GenericManaCost(1)); + ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); + this.addAbility(ability); + + } + + public DreadshipReef(final DreadshipReef card) { + super(card); + } + + @Override + public DreadshipReef copy() { + return new DreadshipReef(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander/FungalReaches.java b/Mage.Sets/src/mage/sets/commander/FungalReaches.java index 275bb376e65..4be3a004ec6 100644 --- a/Mage.Sets/src/mage/sets/commander/FungalReaches.java +++ b/Mage.Sets/src/mage/sets/commander/FungalReaches.java @@ -1,82 +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.commander; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.RemoveVariableCountersSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; -import mage.abilities.effects.common.AddManaInAnyCombinationEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; - -/** - * - * @author LevelX2 - */ -public class FungalReaches extends CardImpl { - - public FungalReaches(UUID ownerId) { - super(ownerId, 274, "Fungal Reaches", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CMD"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}, {tap}: Put a storage counter on Fungal Reaches. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - // {1}, Remove X storage counters from Fungal Reaches: Add X mana in any combination of {R} and/or {G} to your mana pool. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.R, ColoredManaSymbol.G), - new GenericManaCost(1)); - ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); - this.addAbility(ability); - - } - - public FungalReaches(final FungalReaches card) { - super(card); - } - - @Override - public FungalReaches copy() { - return new FungalReaches(this); - } -} +/* + * 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.commander; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveVariableCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; +import mage.abilities.effects.common.AddManaInAnyCombinationEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author LevelX2 + */ +public class FungalReaches extends CardImpl { + + public FungalReaches(UUID ownerId) { + super(ownerId, 274, "Fungal Reaches", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CMD"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}, {tap}: Put a storage counter on Fungal Reaches. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + // {1}, Remove X storage counters from Fungal Reaches: Add X mana in any combination of {R} and/or {G} to your mana pool. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.R, ColoredManaSymbol.G), + new GenericManaCost(1)); + ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); + this.addAbility(ability); + + } + + public FungalReaches(final FungalReaches card) { + super(card); + } + + @Override + public FungalReaches copy() { + return new FungalReaches(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander/SvogthosTheRestlessTomb.java b/Mage.Sets/src/mage/sets/commander/SvogthosTheRestlessTomb.java index 806aa410f90..20295e5b611 100644 --- a/Mage.Sets/src/mage/sets/commander/SvogthosTheRestlessTomb.java +++ b/Mage.Sets/src/mage/sets/commander/SvogthosTheRestlessTomb.java @@ -55,7 +55,7 @@ public class SvogthosTheRestlessTomb extends CardImpl { super(ownerId, 289, "Svogthos, the Restless Tomb", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "CMD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new SvogthosToken(), "land", Duration.EndOfTurn), new ManaCostsImpl<>("{3}{B}{G}")); diff --git a/Mage.Sets/src/mage/sets/commander2013/HomewardPath.java b/Mage.Sets/src/mage/sets/commander2013/HomewardPath.java index 19fc60b898c..8b752542d26 100644 --- a/Mage.Sets/src/mage/sets/commander2013/HomewardPath.java +++ b/Mage.Sets/src/mage/sets/commander2013/HomewardPath.java @@ -1,133 +1,133 @@ -/* - * 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.commander2013; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.UUID; -import mage.MageObjectReference; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.ContinuousEffectImpl; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -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.predicate.other.OwnerIdPredicate; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; - -/** - * - * @author LevelX2 - */ -public class HomewardPath extends CardImpl { - - public HomewardPath(UUID ownerId) { - super(ownerId, 295, "Homeward Path", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C13"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Each player gains control of all creatures he or she owns. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new HomewardPathControlEffect(), new TapSourceCost())); - - } - - public HomewardPath(final HomewardPath card) { - super(card); - } - - @Override - public HomewardPath copy() { - return new HomewardPath(this); - } -} - -class HomewardPathControlEffect extends ContinuousEffectImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); - - public HomewardPathControlEffect() { - super(Duration.EndOfGame, Layer.ControlChangingEffects_2, SubLayer.NA, Outcome.GainControl); - this.staticText = "Each player gains control of all creatures he or she owns"; - } - - public HomewardPathControlEffect(final HomewardPathControlEffect effect) { - super(effect); - } - - @Override - public HomewardPathControlEffect copy() { - return new HomewardPathControlEffect(this); - } - - @Override - public void init(Ability source, Game game) { - super.init(source, game); - // add all creatures in range - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - for (UUID playerId : controller.getInRange()) { - FilterPermanent playerFilter = filter.copy(); - playerFilter.add(new OwnerIdPredicate(playerId)); - for (Permanent permanent :game.getBattlefield().getActivePermanents(playerFilter, playerId, game)) { - affectedObjectList.add(new MageObjectReference(permanent, game)); - } - } - } - } - - @Override - public boolean apply(Game game, Ability source) { - for (Iterator it = affectedObjectList.iterator(); it.hasNext();) { - Permanent creature = it.next().getPermanent(game); - if (creature != null) { - if (!creature.getControllerId().equals(creature.getOwnerId())) { - creature.changeControllerId(creature.getOwnerId(), game); - } - } else { - it.remove(); - } - } - if (affectedObjectList.isEmpty()) { - this.discard(); - } - return true; - } -} +/* + * 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.commander2013; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.UUID; +import mage.MageObjectReference; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +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.predicate.other.OwnerIdPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author LevelX2 + */ +public class HomewardPath extends CardImpl { + + public HomewardPath(UUID ownerId) { + super(ownerId, 295, "Homeward Path", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C13"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Each player gains control of all creatures he or she owns. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new HomewardPathControlEffect(), new TapSourceCost())); + + } + + public HomewardPath(final HomewardPath card) { + super(card); + } + + @Override + public HomewardPath copy() { + return new HomewardPath(this); + } +} + +class HomewardPathControlEffect extends ContinuousEffectImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent(); + + public HomewardPathControlEffect() { + super(Duration.EndOfGame, Layer.ControlChangingEffects_2, SubLayer.NA, Outcome.GainControl); + this.staticText = "Each player gains control of all creatures he or she owns"; + } + + public HomewardPathControlEffect(final HomewardPathControlEffect effect) { + super(effect); + } + + @Override + public HomewardPathControlEffect copy() { + return new HomewardPathControlEffect(this); + } + + @Override + public void init(Ability source, Game game) { + super.init(source, game); + // add all creatures in range + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + for (UUID playerId : controller.getInRange()) { + FilterPermanent playerFilter = filter.copy(); + playerFilter.add(new OwnerIdPredicate(playerId)); + for (Permanent permanent :game.getBattlefield().getActivePermanents(playerFilter, playerId, game)) { + affectedObjectList.add(new MageObjectReference(permanent, game)); + } + } + } + } + + @Override + public boolean apply(Game game, Ability source) { + for (Iterator it = affectedObjectList.iterator(); it.hasNext();) { + Permanent creature = it.next().getPermanent(game); + if (creature != null) { + if (!creature.getControllerId().equals(creature.getOwnerId())) { + creature.changeControllerId(creature.getOwnerId(), game); + } + } else { + it.remove(); + } + } + if (affectedObjectList.isEmpty()) { + this.discard(); + } + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/commander2013/KherKeep.java b/Mage.Sets/src/mage/sets/commander2013/KherKeep.java index 753d6b1df13..98eb052ffe5 100644 --- a/Mage.Sets/src/mage/sets/commander2013/KherKeep.java +++ b/Mage.Sets/src/mage/sets/commander2013/KherKeep.java @@ -1,84 +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.commander2013; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.game.permanent.token.Token; - -/** - * - * @author LevelX2 - */ -public class KherKeep extends CardImpl { - - public KherKeep(UUID ownerId) { - super(ownerId, 303, "Kher Keep", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C13"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}{R}, {tap}: Put a 0/1 red Kobold creature token named Kobolds of Kher Keep onto the battlefield. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new KherKeepKoboldToken()), new ManaCostsImpl("{1}{R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public KherKeep(final KherKeep card) { - super(card); - } - - @Override - public KherKeep copy() { - return new KherKeep(this); - } -} - -class KherKeepKoboldToken extends Token { - - public KherKeepKoboldToken() { - super("Kobolds of Kher Keep", "0/1 red Kobold creature token named Kobolds of Kher Keep"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Kobold"); - power = new MageInt(0); - toughness = new MageInt(1); - } - -} +/* + * 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.commander2013; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.permanent.token.Token; + +/** + * + * @author LevelX2 + */ +public class KherKeep extends CardImpl { + + public KherKeep(UUID ownerId) { + super(ownerId, 303, "Kher Keep", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C13"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}{R}, {tap}: Put a 0/1 red Kobold creature token named Kobolds of Kher Keep onto the battlefield. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new KherKeepKoboldToken()), new ManaCostsImpl("{1}{R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public KherKeep(final KherKeep card) { + super(card); + } + + @Override + public KherKeep copy() { + return new KherKeep(this); + } +} + +class KherKeepKoboldToken extends Token { + + public KherKeepKoboldToken() { + super("Kobolds of Kher Keep", "0/1 red Kobold creature token named Kobolds of Kher Keep"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Kobold"); + power = new MageInt(0); + toughness = new MageInt(1); + } + +} diff --git a/Mage.Sets/src/mage/sets/commander2013/MoltenSlagheap.java b/Mage.Sets/src/mage/sets/commander2013/MoltenSlagheap.java index f7e82a24152..7b7a554e7b3 100644 --- a/Mage.Sets/src/mage/sets/commander2013/MoltenSlagheap.java +++ b/Mage.Sets/src/mage/sets/commander2013/MoltenSlagheap.java @@ -1,79 +1,79 @@ -/* - * 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.commander2013; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.RemoveVariableCountersSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; -import mage.abilities.effects.common.AddManaInAnyCombinationEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; - -/** - * - * @author LevelX2 - */ -public class MoltenSlagheap extends CardImpl { - - public MoltenSlagheap(UUID ownerId) { - super(ownerId, 306, "Molten Slagheap", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C13"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {tap}: Put a storage counter on Molten Slagheap. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - // {1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.B, ColoredManaSymbol.R), - new GenericManaCost(1)); - ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); - this.addAbility(ability); - } - - public MoltenSlagheap(final MoltenSlagheap card) { - super(card); - } - - @Override - public MoltenSlagheap copy() { - return new MoltenSlagheap(this); - } -} +/* + * 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.commander2013; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveVariableCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; +import mage.abilities.effects.common.AddManaInAnyCombinationEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author LevelX2 + */ +public class MoltenSlagheap extends CardImpl { + + public MoltenSlagheap(UUID ownerId) { + super(ownerId, 306, "Molten Slagheap", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C13"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {tap}: Put a storage counter on Molten Slagheap. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + // {1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.B, ColoredManaSymbol.R), + new GenericManaCost(1)); + ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); + this.addAbility(ability); + } + + public MoltenSlagheap(final MoltenSlagheap card) { + super(card); + } + + @Override + public MoltenSlagheap copy() { + return new MoltenSlagheap(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2013/OpalPalace.java b/Mage.Sets/src/mage/sets/commander2013/OpalPalace.java index 53bb7eb50b8..f8f53fbceb2 100644 --- a/Mage.Sets/src/mage/sets/commander2013/OpalPalace.java +++ b/Mage.Sets/src/mage/sets/commander2013/OpalPalace.java @@ -1,182 +1,182 @@ -/* - * 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.commander2013; - -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.ReplacementEffectImpl; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.CommanderColorIdentityManaAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.WatcherScope; -import mage.constants.Zone; -import mage.counters.CounterType; -import mage.game.Game; -import mage.game.events.EntersTheBattlefieldEvent; -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.watchers.Watcher; - -/** - * - * @author LevelX2 - */ -public class OpalPalace extends CardImpl { - - public OpalPalace(UUID ownerId) { - super(ownerId, 310, "Opal Palace", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C13"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {tap}: Add to your mana pool one mana of any color in your commander's color identity. If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it equal to the number of times it's been cast from the command zone this game. - Ability ability = new CommanderColorIdentityManaAbility(new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability, new OpalPalaceWatcher(ability.getOriginalId().toString())); - - ability = new SimpleStaticAbility(Zone.ALL, new OpalPalaceEntersBattlefieldEffect()); - ability.setRuleVisible(false); - this.addAbility(ability); - - } - - public OpalPalace(final OpalPalace card) { - super(card); - } - - @Override - public OpalPalace copy() { - return new OpalPalace(this); - } -} - -class OpalPalaceWatcher extends Watcher { - - public List commanderId = new ArrayList<>(); - private final String originalId; - - public OpalPalaceWatcher(String originalId) { - super("ManaPaidFromOpalPalaceWatcher", WatcherScope.CARD); - this.originalId = originalId; - } - - public OpalPalaceWatcher(final OpalPalaceWatcher watcher) { - super(watcher); - this.commanderId.addAll(watcher.commanderId); - this.originalId = watcher.originalId; - } - - @Override - public OpalPalaceWatcher copy() { - return new OpalPalaceWatcher(this); - } - - @Override - public void watch(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.MANA_PAYED) { - if (event.getData() != null && event.getData().equals(originalId)) { - Spell spell = game.getStack().getSpell(event.getTargetId()); - if (spell != null) { - Card card = spell.getCard(); - if (card != null) { - for (UUID playerId : game.getPlayerList()) { - Player player = game.getPlayer(playerId); - if (player != null) { - if (player.getCommanderId() != null && player.getCommanderId().equals(card.getId())) { - commanderId.add(card.getId()); - break; - } - } - } - } - } - } - } - } - - @Override - public void reset() { - super.reset(); - commanderId.clear(); - } -} - -class OpalPalaceEntersBattlefieldEffect extends ReplacementEffectImpl { - - public OpalPalaceEntersBattlefieldEffect() { - super(Duration.EndOfGame, Outcome.BoostCreature, false); - staticText = "If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it equal to the number of times it's been cast from the command zone this game"; - } - - public OpalPalaceEntersBattlefieldEffect(OpalPalaceEntersBattlefieldEffect effect) { - super(effect); - } - - @Override - public boolean checksEventType(GameEvent event, Game game) { - return event.getType() == EventType.ENTERS_THE_BATTLEFIELD; - } - - @Override - public boolean applies(GameEvent event, Ability source, Game game) { - OpalPalaceWatcher watcher = (OpalPalaceWatcher) game.getState().getWatchers().get("ManaPaidFromOpalPalaceWatcher", source.getSourceId()); - return watcher != null - && watcher.commanderId.contains(event.getTargetId()); - } - - @Override - public boolean replaceEvent(GameEvent event, Ability source, Game game) { - Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget(); - if (permanent != null) { - Integer castCount = (Integer) game.getState().getValue(permanent.getId() + "_castCount"); - if (castCount != null && castCount > 0) { - permanent.addCounters(CounterType.P1P1.createInstance(castCount), game); - } - } - return false; - } - - @Override - public OpalPalaceEntersBattlefieldEffect copy() { - return new OpalPalaceEntersBattlefieldEffect(this); - } - -} +/* + * 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.commander2013; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.ReplacementEffectImpl; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.CommanderColorIdentityManaAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.WatcherScope; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; +import mage.game.events.EntersTheBattlefieldEvent; +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.watchers.Watcher; + +/** + * + * @author LevelX2 + */ +public class OpalPalace extends CardImpl { + + public OpalPalace(UUID ownerId) { + super(ownerId, 310, "Opal Palace", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C13"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {tap}: Add to your mana pool one mana of any color in your commander's color identity. If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it equal to the number of times it's been cast from the command zone this game. + Ability ability = new CommanderColorIdentityManaAbility(new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability, new OpalPalaceWatcher(ability.getOriginalId().toString())); + + ability = new SimpleStaticAbility(Zone.ALL, new OpalPalaceEntersBattlefieldEffect()); + ability.setRuleVisible(false); + this.addAbility(ability); + + } + + public OpalPalace(final OpalPalace card) { + super(card); + } + + @Override + public OpalPalace copy() { + return new OpalPalace(this); + } +} + +class OpalPalaceWatcher extends Watcher { + + public List commanderId = new ArrayList<>(); + private final String originalId; + + public OpalPalaceWatcher(String originalId) { + super("ManaPaidFromOpalPalaceWatcher", WatcherScope.CARD); + this.originalId = originalId; + } + + public OpalPalaceWatcher(final OpalPalaceWatcher watcher) { + super(watcher); + this.commanderId.addAll(watcher.commanderId); + this.originalId = watcher.originalId; + } + + @Override + public OpalPalaceWatcher copy() { + return new OpalPalaceWatcher(this); + } + + @Override + public void watch(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.MANA_PAYED) { + if (event.getData() != null && event.getData().equals(originalId)) { + Spell spell = game.getStack().getSpell(event.getTargetId()); + if (spell != null) { + Card card = spell.getCard(); + if (card != null) { + for (UUID playerId : game.getPlayerList()) { + Player player = game.getPlayer(playerId); + if (player != null) { + if (player.getCommanderId() != null && player.getCommanderId().equals(card.getId())) { + commanderId.add(card.getId()); + break; + } + } + } + } + } + } + } + } + + @Override + public void reset() { + super.reset(); + commanderId.clear(); + } +} + +class OpalPalaceEntersBattlefieldEffect extends ReplacementEffectImpl { + + public OpalPalaceEntersBattlefieldEffect() { + super(Duration.EndOfGame, Outcome.BoostCreature, false); + staticText = "If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it equal to the number of times it's been cast from the command zone this game"; + } + + public OpalPalaceEntersBattlefieldEffect(OpalPalaceEntersBattlefieldEffect effect) { + super(effect); + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == EventType.ENTERS_THE_BATTLEFIELD; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + OpalPalaceWatcher watcher = (OpalPalaceWatcher) game.getState().getWatchers().get("ManaPaidFromOpalPalaceWatcher", source.getSourceId()); + return watcher != null + && watcher.commanderId.contains(event.getTargetId()); + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + Permanent permanent = ((EntersTheBattlefieldEvent) event).getTarget(); + if (permanent != null) { + Integer castCount = (Integer) game.getState().getValue(permanent.getId() + "_castCount"); + if (castCount != null && castCount > 0) { + permanent.addCounters(CounterType.P1P1.createInstance(castCount), game); + } + } + return false; + } + + @Override + public OpalPalaceEntersBattlefieldEffect copy() { + return new OpalPalaceEntersBattlefieldEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/commander2013/SaltcrustedSteppe.java b/Mage.Sets/src/mage/sets/commander2013/SaltcrustedSteppe.java index 75920199ae7..44343b08895 100644 --- a/Mage.Sets/src/mage/sets/commander2013/SaltcrustedSteppe.java +++ b/Mage.Sets/src/mage/sets/commander2013/SaltcrustedSteppe.java @@ -1,80 +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.commander2013; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.RemoveVariableCountersSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; -import mage.abilities.effects.common.AddManaInAnyCombinationEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; - -/** - * - * @author LevelX2 - */ -public class SaltcrustedSteppe extends CardImpl { - - public SaltcrustedSteppe(UUID ownerId) { - super(ownerId, 316, "Saltcrusted Steppe", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C13"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {tap}: Put a storage counter on Saltcrusted Steppe. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - // {1}, Remove X storage counters from Saltcrusted Steppe: Add X mana in any combination of {G} and/or {W} to your mana pool. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.G, ColoredManaSymbol.W), - new GenericManaCost(1)); - ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); - this.addAbility(ability); - - } - - public SaltcrustedSteppe(final SaltcrustedSteppe card) { - super(card); - } - - @Override - public SaltcrustedSteppe copy() { - return new SaltcrustedSteppe(this); - } -} +/* + * 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.commander2013; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveVariableCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; +import mage.abilities.effects.common.AddManaInAnyCombinationEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author LevelX2 + */ +public class SaltcrustedSteppe extends CardImpl { + + public SaltcrustedSteppe(UUID ownerId) { + super(ownerId, 316, "Saltcrusted Steppe", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C13"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {tap}: Put a storage counter on Saltcrusted Steppe. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + // {1}, Remove X storage counters from Saltcrusted Steppe: Add X mana in any combination of {G} and/or {W} to your mana pool. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.G, ColoredManaSymbol.W), + new GenericManaCost(1)); + ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); + this.addAbility(ability); + + } + + public SaltcrustedSteppe(final SaltcrustedSteppe card) { + super(card); + } + + @Override + public SaltcrustedSteppe copy() { + return new SaltcrustedSteppe(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java b/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java index d4873e2dd16..dd13a0d9b80 100644 --- a/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java +++ b/Mage.Sets/src/mage/sets/commander2013/SpringjackPasture.java @@ -1,138 +1,138 @@ - /* - * 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.commander2013; - -import java.util.UUID; -import mage.MageInt; -import mage.Mana; -import mage.ObjectColor; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeXTargetCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.dynamicvalue.common.GetXValue; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.choices.ChoiceColor; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.game.permanent.token.GoatToken; -import mage.players.Player; - -/** - * - * @author jeffwadsworth - * - */ -public class SpringjackPasture extends CardImpl { - - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Goats"); - - static { - filter.add(new SubtypePredicate("Goat")); - } - - public SpringjackPasture(UUID ownerId) { - super(ownerId, 326, "Springjack Pasture", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C13"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {4}, {tap}: Put a 0/1 white Goat creature token onto the battlefield. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GoatToken()), new ManaCostsImpl("{4}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - // {tap}, Sacrifice X Goats: Add X mana of any one color to your mana pool. You gain X life. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SpringjackPastureEffect(), new TapSourceCost()); - ability.addChoice(new ChoiceColor()); - ability.addCost(new SacrificeXTargetCost(filter)); - ability.addEffect(new GainLifeEffect(new GetXValue())); - this.addAbility(ability); - - } - - public SpringjackPasture(final SpringjackPasture card) { - super(card); - } - - @Override - public SpringjackPasture copy() { - return new SpringjackPasture(this); - } -} - -class SpringjackPastureEffect extends OneShotEffect { - - public SpringjackPastureEffect() { - super(Outcome.Benefit); - staticText = "Add X mana of any one color to your mana pool"; - } - - public SpringjackPastureEffect(final SpringjackPastureEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Player you = game.getPlayer(source.getControllerId()); - ChoiceColor choice = (ChoiceColor) source.getChoices().get(0); - if (you != null && choice != null) { - int count = new GetXValue().calculate(game, source, this); - if (choice.getColor().isBlack()) { - you.getManaPool().addMana(new Mana(0, 0, 0, 0, count, 0, 0), game, source); - } else if (choice.getColor().isBlue()) { - you.getManaPool().addMana(new Mana(0, 0, count, 0, 0, 0, 0), game, source); - } else if (choice.getColor().isRed()) { - you.getManaPool().addMana(new Mana(count, 0, 0, 0, 0, 0, 0), game, source); - } else if (choice.getColor().isGreen()) { - you.getManaPool().addMana(new Mana(0, count, 0, 0, 0, 0, 0), game, source); - } else if (choice.getColor().isWhite()) { - you.getManaPool().addMana(new Mana(0, 0, 0, count, 0, 0, 0), game, source); - } - return true; - - } - return false; - } - - @Override - public SpringjackPastureEffect copy() { - return new SpringjackPastureEffect(this); - } -} + /* + * 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.commander2013; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeXTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.GetXValue; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.choices.ChoiceColor; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.permanent.token.GoatToken; +import mage.players.Player; + +/** + * + * @author jeffwadsworth + * + */ +public class SpringjackPasture extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Goats"); + + static { + filter.add(new SubtypePredicate("Goat")); + } + + public SpringjackPasture(UUID ownerId) { + super(ownerId, 326, "Springjack Pasture", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C13"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {4}, {tap}: Put a 0/1 white Goat creature token onto the battlefield. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new GoatToken()), new ManaCostsImpl("{4}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + // {tap}, Sacrifice X Goats: Add X mana of any one color to your mana pool. You gain X life. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SpringjackPastureEffect(), new TapSourceCost()); + ability.addChoice(new ChoiceColor()); + ability.addCost(new SacrificeXTargetCost(filter)); + ability.addEffect(new GainLifeEffect(new GetXValue())); + this.addAbility(ability); + + } + + public SpringjackPasture(final SpringjackPasture card) { + super(card); + } + + @Override + public SpringjackPasture copy() { + return new SpringjackPasture(this); + } +} + +class SpringjackPastureEffect extends OneShotEffect { + + public SpringjackPastureEffect() { + super(Outcome.Benefit); + staticText = "Add X mana of any one color to your mana pool"; + } + + public SpringjackPastureEffect(final SpringjackPastureEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Player you = game.getPlayer(source.getControllerId()); + ChoiceColor choice = (ChoiceColor) source.getChoices().get(0); + if (you != null && choice != null) { + int count = new GetXValue().calculate(game, source, this); + if (choice.getColor().isBlack()) { + you.getManaPool().addMana(new Mana(0, 0, 0, 0, count, 0, 0), game, source); + } else if (choice.getColor().isBlue()) { + you.getManaPool().addMana(new Mana(0, 0, count, 0, 0, 0, 0), game, source); + } else if (choice.getColor().isRed()) { + you.getManaPool().addMana(new Mana(count, 0, 0, 0, 0, 0, 0), game, source); + } else if (choice.getColor().isGreen()) { + you.getManaPool().addMana(new Mana(0, count, 0, 0, 0, 0, 0), game, source); + } else if (choice.getColor().isWhite()) { + you.getManaPool().addMana(new Mana(0, 0, 0, count, 0, 0, 0), game, source); + } + return true; + + } + return false; + } + + @Override + public SpringjackPastureEffect copy() { + return new SpringjackPastureEffect(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2013/TempleOfTheFalseGod.java b/Mage.Sets/src/mage/sets/commander2013/TempleOfTheFalseGod.java index b417a862006..de0142acc6c 100644 --- a/Mage.Sets/src/mage/sets/commander2013/TempleOfTheFalseGod.java +++ b/Mage.Sets/src/mage/sets/commander2013/TempleOfTheFalseGod.java @@ -1,70 +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.commander2013; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.ActivateIfConditionManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterLandPermanent; - -/** - * - * @author LevelX2 - */ -public class TempleOfTheFalseGod extends CardImpl { - - private static final FilterLandPermanent filter = new FilterLandPermanent("you control five or more lands"); - - public TempleOfTheFalseGod(UUID ownerId) { - super(ownerId, 327, "Temple of the False God", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C13"; - - // {tap}: Add {2} to your mana pool. Activate this ability only if you control five or more lands. - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.ColorlessMana(2)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 4))); - } - - public TempleOfTheFalseGod(final TempleOfTheFalseGod card) { - super(card); - } - - @Override - public TempleOfTheFalseGod copy() { - return new TempleOfTheFalseGod(this); - } -} +/* + * 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.commander2013; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterLandPermanent; + +/** + * + * @author LevelX2 + */ +public class TempleOfTheFalseGod extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("you control five or more lands"); + + public TempleOfTheFalseGod(UUID ownerId) { + super(ownerId, 327, "Temple of the False God", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C13"; + + // {tap}: Add {C}{C} to your mana pool. Activate this ability only if you control five or more lands. + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.ColorlessMana(2)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 4))); + } + + public TempleOfTheFalseGod(final TempleOfTheFalseGod card) { + super(card); + } + + @Override + public TempleOfTheFalseGod copy() { + return new TempleOfTheFalseGod(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/ArcaneLighthouse.java b/Mage.Sets/src/mage/sets/commander2014/ArcaneLighthouse.java index 318a59c7074..2e2e35afa9d 100644 --- a/Mage.Sets/src/mage/sets/commander2014/ArcaneLighthouse.java +++ b/Mage.Sets/src/mage/sets/commander2014/ArcaneLighthouse.java @@ -1,89 +1,89 @@ -/* - * 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.commander2014; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.continuous.CreaturesCantGetOrHaveAbilityEffect; -import mage.abilities.keyword.HexproofAbility; -import mage.abilities.keyword.ShroudAbility; -import mage.abilities.mana.ColorlessManaAbility; -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.ControllerPredicate; - -/** - * - * @author LevelX2 - */ -public class ArcaneLighthouse extends CardImpl { - - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures your opponents control"); - - static { - filter.add(new ControllerPredicate(TargetController.OPPONENT)); - } - - public ArcaneLighthouse(UUID ownerId) { - super(ownerId, 59, "Arcane Lighthouse", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}, {tap}: Until end of turn, creatures your opponents control lose hexproof and shroud and can't have hexproof or shroud. - Effect effect = new CreaturesCantGetOrHaveAbilityEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, filter); - effect.setText("Until end of turn, creatures your opponents control lose hexproof"); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - effect = new CreaturesCantGetOrHaveAbilityEffect(ShroudAbility.getInstance(), Duration.EndOfTurn, filter); - effect.setText("and shroud and can't have hexproof or shroud"); - ability.addEffect(effect); - this.addAbility(ability); - - } - - public ArcaneLighthouse(final ArcaneLighthouse card) { - super(card); - } - - @Override - public ArcaneLighthouse copy() { - return new ArcaneLighthouse(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.CreaturesCantGetOrHaveAbilityEffect; +import mage.abilities.keyword.HexproofAbility; +import mage.abilities.keyword.ShroudAbility; +import mage.abilities.mana.ColorlessManaAbility; +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.ControllerPredicate; + +/** + * + * @author LevelX2 + */ +public class ArcaneLighthouse extends CardImpl { + + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures your opponents control"); + + static { + filter.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public ArcaneLighthouse(UUID ownerId) { + super(ownerId, 59, "Arcane Lighthouse", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}, {tap}: Until end of turn, creatures your opponents control lose hexproof and shroud and can't have hexproof or shroud. + Effect effect = new CreaturesCantGetOrHaveAbilityEffect(HexproofAbility.getInstance(), Duration.EndOfTurn, filter); + effect.setText("Until end of turn, creatures your opponents control lose hexproof"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + effect = new CreaturesCantGetOrHaveAbilityEffect(ShroudAbility.getInstance(), Duration.EndOfTurn, filter); + effect.setText("and shroud and can't have hexproof or shroud"); + ability.addEffect(effect); + this.addAbility(ability); + + } + + public ArcaneLighthouse(final ArcaneLighthouse card) { + super(card); + } + + @Override + public ArcaneLighthouse copy() { + return new ArcaneLighthouse(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java b/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java index 3785405c2c3..6d16e8d86f3 100644 --- a/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java +++ b/Mage.Sets/src/mage/sets/commander2014/CoralAtoll.java @@ -1,84 +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.commander2014; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class CoralAtoll extends CardImpl { - - private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Island"); - - static{ - filter.add(new SubtypePredicate("Island")); - filter.add(Predicates.not(new TappedPredicate())); - } - - - public CoralAtoll(UUID ownerId) { - super(ownerId, 287, "Coral Atoll", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // Coral Atoll enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - // When Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); - // {tap}: Add {1}{U} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1,0 ), new TapSourceCost())); - - - } - - public CoralAtoll(final CoralAtoll card) { - super(card); - } - - @Override - public CoralAtoll copy() { - return new CoralAtoll(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class CoralAtoll extends CardImpl { + + private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Island"); + + static{ + filter.add(new SubtypePredicate("Island")); + filter.add(Predicates.not(new TappedPredicate())); + } + + + public CoralAtoll(UUID ownerId) { + super(ownerId, 287, "Coral Atoll", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // Coral Atoll enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // When Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); + // {tap}: Add {C}{U} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 1, 0, 0, 1,0 ), new TapSourceCost())); + + + } + + public CoralAtoll(final CoralAtoll card) { + super(card); + } + + @Override + public CoralAtoll copy() { + return new CoralAtoll(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java b/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java index c4b046863bd..67d9a874e6c 100644 --- a/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java +++ b/Mage.Sets/src/mage/sets/commander2014/DormantVolcano.java @@ -1,84 +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.commander2014; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class DormantVolcano extends CardImpl { - - private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Mountain"); - - static{ - filter.add(new SubtypePredicate("Mountain")); - filter.add(Predicates.not(new TappedPredicate())); - } - - public DormantVolcano(UUID ownerId) { - super(ownerId, 291, "Dormant Volcano", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // Dormant Volcano enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // When Dormant Volcano enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); - - // {tap}: Add {1}{R} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 1,0 ), new TapSourceCost())); - - } - - public DormantVolcano(final DormantVolcano card) { - super(card); - } - - @Override - public DormantVolcano copy() { - return new DormantVolcano(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class DormantVolcano extends CardImpl { + + private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Mountain"); + + static{ + filter.add(new SubtypePredicate("Mountain")); + filter.add(Predicates.not(new TappedPredicate())); + } + + public DormantVolcano(UUID ownerId) { + super(ownerId, 291, "Dormant Volcano", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // Dormant Volcano enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // When Dormant Volcano enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); + + // {tap}: Add {C}{R} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 1,0 ), new TapSourceCost())); + + } + + public DormantVolcano(final DormantVolcano card) { + super(card); + } + + @Override + public DormantVolcano copy() { + return new DormantVolcano(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/Everglades.java b/Mage.Sets/src/mage/sets/commander2014/Everglades.java index e9693d66a88..f85a283357a 100644 --- a/Mage.Sets/src/mage/sets/commander2014/Everglades.java +++ b/Mage.Sets/src/mage/sets/commander2014/Everglades.java @@ -1,84 +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.commander2014; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class Everglades extends CardImpl { - - private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Swamp"); - - static { - filter.add(new SubtypePredicate("Swamp")); - filter.add(Predicates.not(new TappedPredicate())); - } - - public Everglades(UUID ownerId) { - super(ownerId, 294, "Everglades", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // Everglades enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // When Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(1, 1, filter, true))))); - - // {tap}: Add {1}{B} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 1, 1, 0), new TapSourceCost())); - - } - - public Everglades(final Everglades card) { - super(card); - } - - @Override - public Everglades copy() { - return new Everglades(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class Everglades extends CardImpl { + + private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Swamp"); + + static { + filter.add(new SubtypePredicate("Swamp")); + filter.add(Predicates.not(new TappedPredicate())); + } + + public Everglades(UUID ownerId) { + super(ownerId, 294, "Everglades", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // Everglades enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // When Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(1, 1, filter, true))))); + + // {tap}: Add {C}{B} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 1, 1, 0), new TapSourceCost())); + + } + + public Everglades(final Everglades card) { + super(card); + } + + @Override + public Everglades copy() { + return new Everglades(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java b/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java index dfa53c525a9..b64f47cee8b 100644 --- a/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java +++ b/Mage.Sets/src/mage/sets/commander2014/JungleBasin.java @@ -1,84 +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.commander2014; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class JungleBasin extends CardImpl { - - private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Forest"); - - static{ - filter.add(new SubtypePredicate("Forest")); - filter.add(Predicates.not(new TappedPredicate())); - } - - public JungleBasin(UUID ownerId) { - super(ownerId, 302, "Jungle Basin", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // Jungle Basin enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // When Jungle Basin enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); - - // {tap}: Add {1}{G} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 1,0 ), new TapSourceCost())); - - } - - public JungleBasin(final JungleBasin card) { - super(card); - } - - @Override - public JungleBasin copy() { - return new JungleBasin(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class JungleBasin extends CardImpl { + + private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Forest"); + + static{ + filter.add(new SubtypePredicate("Forest")); + filter.add(Predicates.not(new TappedPredicate())); + } + + public JungleBasin(UUID ownerId) { + super(ownerId, 302, "Jungle Basin", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // Jungle Basin enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // When Jungle Basin enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); + + // {tap}: Add {C}{G} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 1,0 ), new TapSourceCost())); + + } + + public JungleBasin(final JungleBasin card) { + super(card); + } + + @Override + public JungleBasin copy() { + return new JungleBasin(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/Karoo.java b/Mage.Sets/src/mage/sets/commander2014/Karoo.java index 095d04b79d6..319a92cb888 100644 --- a/Mage.Sets/src/mage/sets/commander2014/Karoo.java +++ b/Mage.Sets/src/mage/sets/commander2014/Karoo.java @@ -1,84 +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.commander2014; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class Karoo extends CardImpl { - - private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Plains"); - - static{ - filter.add(new SubtypePredicate("Plains")); - filter.add(Predicates.not(new TappedPredicate())); - } - - public Karoo(UUID ownerId) { - super(ownerId, 303, "Karoo", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // Karoo enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // When Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand. - this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); - - // {tap}: Add {1}{W} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 0, 1,0 ), new TapSourceCost())); - - } - - public Karoo(final Karoo card) { - super(card); - } - - @Override - public Karoo copy() { - return new Karoo(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.ReturnToHandChosenControlledPermanentCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.SacrificeSourceUnlessPaysEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class Karoo extends CardImpl { + + private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("an untapped Plains"); + + static{ + filter.add(new SubtypePredicate("Plains")); + filter.add(Predicates.not(new TappedPredicate())); + } + + public Karoo(UUID ownerId) { + super(ownerId, 303, "Karoo", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // Karoo enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // When Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand. + this.addAbility(new EntersBattlefieldTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new ReturnToHandChosenControlledPermanentCost(new TargetControlledPermanent(filter))))); + + // {tap}: Add {C}{W} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 0, 1,0 ), new TapSourceCost())); + + } + + public Karoo(final Karoo card) { + super(card); + } + + @Override + public Karoo copy() { + return new Karoo(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/MyriadLandscape.java b/Mage.Sets/src/mage/sets/commander2014/MyriadLandscape.java index 4aaa88a426d..17c47b39b64 100644 --- a/Mage.Sets/src/mage/sets/commander2014/MyriadLandscape.java +++ b/Mage.Sets/src/mage/sets/commander2014/MyriadLandscape.java @@ -1,147 +1,147 @@ -/* - * 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.commander2014; - -import java.util.HashSet; -import java.util.Iterator; -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.cards.Cards; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.common.FilterBasicLandCard; -import mage.game.Game; -import mage.target.common.TargetCardInLibrary; - -/** - * - * @author LevelX2 - */ -public class MyriadLandscape extends CardImpl { - - private static final FilterBasicLandCard filter = new FilterBasicLandCard(); - - public MyriadLandscape(UUID ownerId) { - super(ownerId, 61, "Myriad Landscape", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // Myriad Landscape enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {2}, {tap}, Sacrifice Myriad Landscape: Search your library for up to two basic land cards that share a land type, put them onto the battlefield tapped, then shuffle your library. - Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrarySharingLandType(0, 2, filter), true); - effect.setText("Search your library for up to two basic land cards that share a land type, put them onto the battlefield tapped, then shuffle your library"); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - - - } - - public MyriadLandscape(final MyriadLandscape card) { - super(card); - } - - @Override - public MyriadLandscape copy() { - return new MyriadLandscape(this); - } -} - -class TargetCardInLibrarySharingLandType extends TargetCardInLibrary { - - public TargetCardInLibrarySharingLandType(int minNumTargets, int maxNumTargets, FilterCard filter) { - super(minNumTargets, maxNumTargets, filter); - } - - public TargetCardInLibrarySharingLandType(final TargetCardInLibrarySharingLandType target) { - super(target); - } - - @Override - public boolean canTarget(UUID id, Cards cards, Game game) { - if (super.canTarget(id, cards, game)) { - if (!getTargets().isEmpty()) { - // check if new target shares a Land Type - HashSet landTypes = null; - for (UUID landId: getTargets()) { - Card landCard = game.getCard(landId); - if (landCard != null) { - if (landTypes == null) { - landTypes = new HashSet<>(); - landTypes.addAll(landCard.getSubtype()); - } else { - for (Iterator iterator = landTypes.iterator(); iterator.hasNext();) { - String next = iterator.next(); - if (!landCard.getSubtype().contains(next)) { - iterator.remove(); - } - } - } - } - } - Card card = game.getCard(id); - if (card != null && landTypes != null) { - for (Iterator iterator = landTypes.iterator(); iterator.hasNext();) { - String next = iterator.next(); - if (card.getSubtype().contains(next)) { - return true; - } - } - } - } else { - // first target - return true; - } - } - return false; - } - - - @Override - public TargetCardInLibrarySharingLandType copy() { - return new TargetCardInLibrarySharingLandType(this); - } - -} +/* + * 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.commander2014; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.cards.Cards; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.common.FilterBasicLandCard; +import mage.game.Game; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author LevelX2 + */ +public class MyriadLandscape extends CardImpl { + + private static final FilterBasicLandCard filter = new FilterBasicLandCard(); + + public MyriadLandscape(UUID ownerId) { + super(ownerId, 61, "Myriad Landscape", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // Myriad Landscape enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {2}, {tap}, Sacrifice Myriad Landscape: Search your library for up to two basic land cards that share a land type, put them onto the battlefield tapped, then shuffle your library. + Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrarySharingLandType(0, 2, filter), true); + effect.setText("Search your library for up to two basic land cards that share a land type, put them onto the battlefield tapped, then shuffle your library"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + + + } + + public MyriadLandscape(final MyriadLandscape card) { + super(card); + } + + @Override + public MyriadLandscape copy() { + return new MyriadLandscape(this); + } +} + +class TargetCardInLibrarySharingLandType extends TargetCardInLibrary { + + public TargetCardInLibrarySharingLandType(int minNumTargets, int maxNumTargets, FilterCard filter) { + super(minNumTargets, maxNumTargets, filter); + } + + public TargetCardInLibrarySharingLandType(final TargetCardInLibrarySharingLandType target) { + super(target); + } + + @Override + public boolean canTarget(UUID id, Cards cards, Game game) { + if (super.canTarget(id, cards, game)) { + if (!getTargets().isEmpty()) { + // check if new target shares a Land Type + HashSet landTypes = null; + for (UUID landId: getTargets()) { + Card landCard = game.getCard(landId); + if (landCard != null) { + if (landTypes == null) { + landTypes = new HashSet<>(); + landTypes.addAll(landCard.getSubtype()); + } else { + for (Iterator iterator = landTypes.iterator(); iterator.hasNext();) { + String next = iterator.next(); + if (!landCard.getSubtype().contains(next)) { + iterator.remove(); + } + } + } + } + } + Card card = game.getCard(id); + if (card != null && landTypes != null) { + for (Iterator iterator = landTypes.iterator(); iterator.hasNext();) { + String next = iterator.next(); + if (card.getSubtype().contains(next)) { + return true; + } + } + } + } else { + // first target + return true; + } + } + return false; + } + + + @Override + public TargetCardInLibrarySharingLandType copy() { + return new TargetCardInLibrarySharingLandType(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/commander2014/UnstableObelisk.java b/Mage.Sets/src/mage/sets/commander2014/UnstableObelisk.java index 48c80956510..0798dc206f1 100644 --- a/Mage.Sets/src/mage/sets/commander2014/UnstableObelisk.java +++ b/Mage.Sets/src/mage/sets/commander2014/UnstableObelisk.java @@ -1,74 +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.commander2014; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.target.TargetPermanent; - -/** - * - * @author LevelX2 - */ -public class UnstableObelisk extends CardImpl { - - public UnstableObelisk(UUID ownerId) { - super(ownerId, 58, "Unstable Obelisk", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.expansionSetCode = "C14"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {7}, {tap}, Sacrifice Unstable Obelisk: Destroy target permanent. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(7)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetPermanent()); - this.addAbility(ability); - - } - - public UnstableObelisk(final UnstableObelisk card) { - super(card); - } - - @Override - public UnstableObelisk copy() { - return new UnstableObelisk(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.TargetPermanent; + +/** + * + * @author LevelX2 + */ +public class UnstableObelisk extends CardImpl { + + public UnstableObelisk(UUID ownerId) { + super(ownerId, 58, "Unstable Obelisk", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "C14"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {7}, {tap}, Sacrifice Unstable Obelisk: Destroy target permanent. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(7)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetPermanent()); + this.addAbility(ability); + + } + + public UnstableObelisk(final UnstableObelisk card) { + super(card); + } + + @Override + public UnstableObelisk copy() { + return new UnstableObelisk(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2014/ZoeticCavern.java b/Mage.Sets/src/mage/sets/commander2014/ZoeticCavern.java index ed54e110b30..1cc16b06892 100644 --- a/Mage.Sets/src/mage/sets/commander2014/ZoeticCavern.java +++ b/Mage.Sets/src/mage/sets/commander2014/ZoeticCavern.java @@ -1,62 +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.commander2014; - -import java.util.UUID; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.keyword.MorphAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; - -/** - * - * @author LevelX2 - */ -public class ZoeticCavern extends CardImpl { - - public ZoeticCavern(UUID ownerId) { - super(ownerId, 317, "Zoetic Cavern", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C14"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // Morph {2} - this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}"))); - } - - public ZoeticCavern(final ZoeticCavern card) { - super(card); - } - - @Override - public ZoeticCavern copy() { - return new ZoeticCavern(this); - } -} +/* + * 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.commander2014; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.MorphAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class ZoeticCavern extends CardImpl { + + public ZoeticCavern(UUID ownerId) { + super(ownerId, 317, "Zoetic Cavern", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C14"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // Morph {2} + this.addAbility(new MorphAbility(this, new ManaCostsImpl("{2}"))); + } + + public ZoeticCavern(final ZoeticCavern card) { + super(card); + } + + @Override + public ZoeticCavern copy() { + return new ZoeticCavern(this); + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/CommandBeacon.java b/Mage.Sets/src/mage/sets/commander2015/CommandBeacon.java index 9d7004c9e3b..c9fd36b02c0 100644 --- a/Mage.Sets/src/mage/sets/commander2015/CommandBeacon.java +++ b/Mage.Sets/src/mage/sets/commander2015/CommandBeacon.java @@ -1,102 +1,102 @@ -/* - * 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.commander2015; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.ColorlessManaAbility; -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; - -/** - * - * @author emerald000 - */ -public class CommandBeacon extends CardImpl { - - public CommandBeacon(UUID ownerId) { - super(ownerId, 56, "Command Beacon", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "C15"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {T}, Sacrifice Command Beacon: Put your commander into your hand from the command zone. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CommandBeaconEffect(), new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public CommandBeacon(final CommandBeacon card) { - super(card); - } - - @Override - public CommandBeacon copy() { - return new CommandBeacon(this); - } -} - -class CommandBeaconEffect extends OneShotEffect { - - CommandBeaconEffect() { - super(Outcome.ReturnToHand); - this.staticText = "Put your commander into your hand from the command zone"; - } - - CommandBeaconEffect(final CommandBeaconEffect effect) { - super(effect); - } - - @Override - public CommandBeaconEffect copy() { - return new CommandBeaconEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - Card commander = game.getCard(controller.getCommanderId()); - if (commander != null && game.getState().getZone(commander.getId()) == Zone.COMMAND) { - controller.moveCards(commander, Zone.HAND, source, game); - } - return true; - } - return false; - } -} +/* + * 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.commander2015; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.ColorlessManaAbility; +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; + +/** + * + * @author emerald000 + */ +public class CommandBeacon extends CardImpl { + + public CommandBeacon(UUID ownerId) { + super(ownerId, 56, "Command Beacon", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "C15"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {T}, Sacrifice Command Beacon: Put your commander into your hand from the command zone. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CommandBeaconEffect(), new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public CommandBeacon(final CommandBeacon card) { + super(card); + } + + @Override + public CommandBeacon copy() { + return new CommandBeacon(this); + } +} + +class CommandBeaconEffect extends OneShotEffect { + + CommandBeaconEffect() { + super(Outcome.ReturnToHand); + this.staticText = "Put your commander into your hand from the command zone"; + } + + CommandBeaconEffect(final CommandBeaconEffect effect) { + super(effect); + } + + @Override + public CommandBeaconEffect copy() { + return new CommandBeaconEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Card commander = game.getCard(controller.getCommanderId()); + if (commander != null && game.getState().getZone(commander.getId()) == Zone.COMMAND) { + controller.moveCards(commander, Zone.HAND, source, game); + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/commander2015/ThoughtVessel.java b/Mage.Sets/src/mage/sets/commander2015/ThoughtVessel.java index d5437bbcb0e..3b27b69f92c 100644 --- a/Mage.Sets/src/mage/sets/commander2015/ThoughtVessel.java +++ b/Mage.Sets/src/mage/sets/commander2015/ThoughtVessel.java @@ -52,7 +52,7 @@ public class ThoughtVessel extends CardImpl { Effect effect = new MaximumHandSizeControllerEffect(Integer.MAX_VALUE, Duration.WhileOnBattlefield, MaximumHandSizeControllerEffect.HandSizeModification.SET); this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); } diff --git a/Mage.Sets/src/mage/sets/conflux/ReliquaryTower.java b/Mage.Sets/src/mage/sets/conflux/ReliquaryTower.java index 5780d94680a..ac4a4dbc7d6 100644 --- a/Mage.Sets/src/mage/sets/conflux/ReliquaryTower.java +++ b/Mage.Sets/src/mage/sets/conflux/ReliquaryTower.java @@ -1,68 +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.conflux; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect; -import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect.HandSizeModification; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author nantuko - */ -public class ReliquaryTower extends CardImpl { - - public ReliquaryTower(UUID ownerId) { - super(ownerId, 143, "Reliquary Tower", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CON"; - - // You have no maximum hand size. - Effect effect = new MaximumHandSizeControllerEffect(Integer.MAX_VALUE, Duration.WhileOnBattlefield, HandSizeModification.SET); - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public ReliquaryTower(final ReliquaryTower card) { - super(card); - } - - @Override - public ReliquaryTower copy() { - return new ReliquaryTower(this); - } -} +/* + * 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.conflux; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect; +import mage.abilities.effects.common.continuous.MaximumHandSizeControllerEffect.HandSizeModification; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author nantuko + */ +public class ReliquaryTower extends CardImpl { + + public ReliquaryTower(UUID ownerId) { + super(ownerId, 143, "Reliquary Tower", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CON"; + + // You have no maximum hand size. + Effect effect = new MaximumHandSizeControllerEffect(Integer.MAX_VALUE, Duration.WhileOnBattlefield, HandSizeModification.SET); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect)); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public ReliquaryTower(final ReliquaryTower card) { + super(card); + } + + @Override + public ReliquaryTower copy() { + return new ReliquaryTower(this); + } +} diff --git a/Mage.Sets/src/mage/sets/conflux/UnstableFrontier.java b/Mage.Sets/src/mage/sets/conflux/UnstableFrontier.java index 46c79c956f9..2b18e3172f7 100644 --- a/Mage.Sets/src/mage/sets/conflux/UnstableFrontier.java +++ b/Mage.Sets/src/mage/sets/conflux/UnstableFrontier.java @@ -1,72 +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.conflux; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.continuous.BecomesBasicLandTargetEffect; -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.filter.common.FilterControlledLandPermanent; -import mage.target.Target; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class UnstableFrontier extends CardImpl { - - public UnstableFrontier(UUID ownerId) { - super(ownerId, 145, "Unstable Frontier", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "CON"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Target land you control becomes the basic land type of your choice until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new TapSourceCost()); - Target target = new TargetControlledPermanent(new FilterControlledLandPermanent()); - ability.addTarget(target); - this.addAbility(ability); - } - - public UnstableFrontier(final UnstableFrontier card) { - super(card); - } - - @Override - public UnstableFrontier copy() { - return new UnstableFrontier(this); - } -} +/* + * 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.conflux; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.continuous.BecomesBasicLandTargetEffect; +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.filter.common.FilterControlledLandPermanent; +import mage.target.Target; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class UnstableFrontier extends CardImpl { + + public UnstableFrontier(UUID ownerId) { + super(ownerId, 145, "Unstable Frontier", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "CON"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Target land you control becomes the basic land type of your choice until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesBasicLandTargetEffect(Duration.EndOfTurn), new TapSourceCost()); + Target target = new TargetControlledPermanent(new FilterControlledLandPermanent()); + ability.addTarget(target); + this.addAbility(ability); + } + + public UnstableFrontier(final UnstableFrontier card) { + super(card); + } + + @Override + public UnstableFrontier copy() { + return new UnstableFrontier(this); + } +} diff --git a/Mage.Sets/src/mage/sets/darkascension/GrimBackwoods.java b/Mage.Sets/src/mage/sets/darkascension/GrimBackwoods.java index 5376e95f348..c5c3d7ffbf4 100644 --- a/Mage.Sets/src/mage/sets/darkascension/GrimBackwoods.java +++ b/Mage.Sets/src/mage/sets/darkascension/GrimBackwoods.java @@ -1,71 +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.darkascension; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.target.common.TargetControlledCreaturePermanent; - -/** - * - * @author North - */ -public class GrimBackwoods extends CardImpl { - - public GrimBackwoods(UUID ownerId) { - super(ownerId, 156, "Grim Backwoods", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DKA"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {2}{B}{G}, {tap}, Sacrifice a creature: Draw a card. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}{B}{G}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); - this.addAbility(ability); - } - - public GrimBackwoods(final GrimBackwoods card) { - super(card); - } - - @Override - public GrimBackwoods copy() { - return new GrimBackwoods(this); - } -} +/* + * 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.darkascension; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author North + */ +public class GrimBackwoods extends CardImpl { + + public GrimBackwoods(UUID ownerId) { + super(ownerId, 156, "Grim Backwoods", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DKA"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {2}{B}{G}, {tap}, Sacrifice a creature: Draw a card. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl("{2}{B}{G}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); + this.addAbility(ability); + } + + public GrimBackwoods(final GrimBackwoods card) { + super(card); + } + + @Override + public GrimBackwoods copy() { + return new GrimBackwoods(this); + } +} diff --git a/Mage.Sets/src/mage/sets/darkascension/HauntedFengraf.java b/Mage.Sets/src/mage/sets/darkascension/HauntedFengraf.java index 0e48f13ce19..80e8777b2ee 100644 --- a/Mage.Sets/src/mage/sets/darkascension/HauntedFengraf.java +++ b/Mage.Sets/src/mage/sets/darkascension/HauntedFengraf.java @@ -1,110 +1,110 @@ -/* - * 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.darkascension; - -import java.util.Random; -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.filter.common.FilterCreatureCard; -import mage.game.Game; -import mage.players.Player; - -/** - * - * @author North - */ -public class HauntedFengraf extends CardImpl { - - public HauntedFengraf(UUID ownerId) { - super(ownerId, 157, "Haunted Fengraf", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DKA"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {3}, {tap}, Sacrifice Haunted Fengraf: Return a creature card at random from your graveyard to your hand. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HauntedFengrafEffect(), new GenericManaCost(3)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public HauntedFengraf(final HauntedFengraf card) { - super(card); - } - - @Override - public HauntedFengraf copy() { - return new HauntedFengraf(this); - } -} - -class HauntedFengrafEffect extends OneShotEffect { - - public HauntedFengrafEffect() { - super(Outcome.ReturnToHand); - this.staticText = "Return a creature card at random from your graveyard to your hand"; - } - - public HauntedFengrafEffect(final HauntedFengrafEffect effect) { - super(effect); - } - - @Override - public HauntedFengrafEffect copy() { - return new HauntedFengrafEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getControllerId()); - if (player != null) { - Card[] cards = player.getGraveyard().getCards(new FilterCreatureCard(), game).toArray(new Card[0]); - if (cards.length > 0) { - Random rnd = new Random(); - Card card = cards[rnd.nextInt(cards.length)]; - card.moveToZone(Zone.HAND, source.getSourceId(), game, true); - game.informPlayers(card.getName() + " returned to the hand of " + player.getLogName()); - return true; - } - } - return false; - } -} +/* + * 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.darkascension; + +import java.util.Random; +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreatureCard; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author North + */ +public class HauntedFengraf extends CardImpl { + + public HauntedFengraf(UUID ownerId) { + super(ownerId, 157, "Haunted Fengraf", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DKA"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {3}, {tap}, Sacrifice Haunted Fengraf: Return a creature card at random from your graveyard to your hand. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new HauntedFengrafEffect(), new GenericManaCost(3)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public HauntedFengraf(final HauntedFengraf card) { + super(card); + } + + @Override + public HauntedFengraf copy() { + return new HauntedFengraf(this); + } +} + +class HauntedFengrafEffect extends OneShotEffect { + + public HauntedFengrafEffect() { + super(Outcome.ReturnToHand); + this.staticText = "Return a creature card at random from your graveyard to your hand"; + } + + public HauntedFengrafEffect(final HauntedFengrafEffect effect) { + super(effect); + } + + @Override + public HauntedFengrafEffect copy() { + return new HauntedFengrafEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player != null) { + Card[] cards = player.getGraveyard().getCards(new FilterCreatureCard(), game).toArray(new Card[0]); + if (cards.length > 0) { + Random rnd = new Random(); + Card card = cards[rnd.nextInt(cards.length)]; + card.moveToZone(Zone.HAND, source.getSourceId(), game, true); + game.informPlayers(card.getName() + " returned to the hand of " + player.getLogName()); + return true; + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/darkascension/VaultOfTheArchangel.java b/Mage.Sets/src/mage/sets/darkascension/VaultOfTheArchangel.java index f4b079affea..9f2b9777145 100644 --- a/Mage.Sets/src/mage/sets/darkascension/VaultOfTheArchangel.java +++ b/Mage.Sets/src/mage/sets/darkascension/VaultOfTheArchangel.java @@ -1,75 +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.darkascension; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.abilities.keyword.DeathtouchAbility; -import mage.abilities.keyword.LifelinkAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.filter.common.FilterControlledCreaturePermanent; - -/** - * - * @author North - */ -public class VaultOfTheArchangel extends CardImpl { - - public VaultOfTheArchangel(UUID ownerId) { - super(ownerId, 158, "Vault of the Archangel", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DKA"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {2}{W}{B}, {tap}: Creatures you control gain deathtouch and lifelink until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new GainAbilityControlledEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures"), false), - new ManaCostsImpl("{2}{W}{B}")); - ability.addEffect(new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures"), false)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public VaultOfTheArchangel(final VaultOfTheArchangel card) { - super(card); - } - - @Override - public VaultOfTheArchangel copy() { - return new VaultOfTheArchangel(this); - } -} +/* + * 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.darkascension; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.keyword.DeathtouchAbility; +import mage.abilities.keyword.LifelinkAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterControlledCreaturePermanent; + +/** + * + * @author North + */ +public class VaultOfTheArchangel extends CardImpl { + + public VaultOfTheArchangel(UUID ownerId) { + super(ownerId, 158, "Vault of the Archangel", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DKA"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {2}{W}{B}, {tap}: Creatures you control gain deathtouch and lifelink until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new GainAbilityControlledEffect(DeathtouchAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures"), false), + new ManaCostsImpl("{2}{W}{B}")); + ability.addEffect(new GainAbilityControlledEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("Creatures"), false)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public VaultOfTheArchangel(final VaultOfTheArchangel card) { + super(card); + } + + @Override + public VaultOfTheArchangel copy() { + return new VaultOfTheArchangel(this); + } +} diff --git a/Mage.Sets/src/mage/sets/darkascension/WardenOfTheWall.java b/Mage.Sets/src/mage/sets/darkascension/WardenOfTheWall.java index a93cf763274..f23299837f4 100644 --- a/Mage.Sets/src/mage/sets/darkascension/WardenOfTheWall.java +++ b/Mage.Sets/src/mage/sets/darkascension/WardenOfTheWall.java @@ -57,7 +57,7 @@ public class WardenOfTheWall extends CardImpl { // Warden of the Wall enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // As long as it's not your turn, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying. diff --git a/Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java b/Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java index 2ddadf0ed3a..b8c759e99ba 100644 --- a/Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java +++ b/Mage.Sets/src/mage/sets/darksteel/BlinkmothNexus.java @@ -1,102 +1,102 @@ -/* - * 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.darksteel; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Rarity; -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; -import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.filter.FilterPermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.permanent.token.Token; -import mage.target.TargetPermanent; - -/** - * @author Loki - */ -public class BlinkmothNexus extends CardImpl { - - private static final FilterPermanent filter = new FilterPermanent("Blinkmoth"); - - static { - filter.add(new SubtypePredicate("Blinkmoth")); - } - - public BlinkmothNexus(UUID ownerId) { - super(ownerId, 163, "Blinkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "DST"; - - // {T}: Add {1}to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new BlinkmothNexusToken(), "land", Duration.EndOfTurn), new GenericManaCost(1))); - - // {1}, {T}: Target Blinkmoth creature gets +1/+1 until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetPermanent(filter)); - this.addAbility(ability); - - } - - public BlinkmothNexus(final BlinkmothNexus card) { - super(card); - } - - @Override - public BlinkmothNexus copy() { - return new BlinkmothNexus(this); - } - -} - -class BlinkmothNexusToken extends Token { - public BlinkmothNexusToken() { - super("Blinkmoth", "1/1 Blinkmoth artifact creature with flying"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - this.subtype.add("Blinkmoth"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - } -} +/* + * 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.darksteel; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.filter.FilterPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.permanent.token.Token; +import mage.target.TargetPermanent; + +/** + * @author Loki + */ +public class BlinkmothNexus extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("Blinkmoth"); + + static { + filter.add(new SubtypePredicate("Blinkmoth")); + } + + public BlinkmothNexus(UUID ownerId) { + super(ownerId, 163, "Blinkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "DST"; + + // {T}: Add {C}to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new BlinkmothNexusToken(), "land", Duration.EndOfTurn), new GenericManaCost(1))); + + // {1}, {T}: Target Blinkmoth creature gets +1/+1 until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(1, 1, Duration.EndOfTurn), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + + } + + public BlinkmothNexus(final BlinkmothNexus card) { + super(card); + } + + @Override + public BlinkmothNexus copy() { + return new BlinkmothNexus(this); + } + +} + +class BlinkmothNexusToken extends Token { + public BlinkmothNexusToken() { + super("Blinkmoth", "1/1 Blinkmoth artifact creature with flying"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + this.subtype.add("Blinkmoth"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java b/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java index d230e02a283..02c21d793e0 100644 --- a/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java +++ b/Mage.Sets/src/mage/sets/darksteel/DarksteelCitadel.java @@ -1,64 +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.darksteel; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.keyword.IndestructibleAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class DarksteelCitadel extends CardImpl { - - public DarksteelCitadel (UUID ownerId) { - super(ownerId, 164, "Darksteel Citadel", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.LAND}, null); - this.expansionSetCode = "DST"; - - // Indestructible (Effects that say "destroy" don't destroy this land.) - this.addAbility(IndestructibleAbility.getInstance()); - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public DarksteelCitadel (final DarksteelCitadel card) { - super(card); - } - - @Override - public DarksteelCitadel copy() { - return new DarksteelCitadel(this); - } - -} +/* + * 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.darksteel; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.keyword.IndestructibleAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class DarksteelCitadel extends CardImpl { + + public DarksteelCitadel (UUID ownerId) { + super(ownerId, 164, "Darksteel Citadel", Rarity.COMMON, new CardType[]{CardType.ARTIFACT, CardType.LAND}, null); + this.expansionSetCode = "DST"; + + // Indestructible (Effects that say "destroy" don't destroy this land.) + this.addAbility(IndestructibleAbility.getInstance()); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public DarksteelCitadel (final DarksteelCitadel card) { + super(card); + } + + @Override + public DarksteelCitadel copy() { + return new DarksteelCitadel(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/darksteel/SerumPowder.java b/Mage.Sets/src/mage/sets/darksteel/SerumPowder.java index 217b49f519b..76739c91931 100644 --- a/Mage.Sets/src/mage/sets/darksteel/SerumPowder.java +++ b/Mage.Sets/src/mage/sets/darksteel/SerumPowder.java @@ -1,124 +1,124 @@ -/* - * 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.darksteel; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -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.game.Game; -import mage.game.events.GameEvent; -import mage.players.Player; - -/** - * - * @author LevelX2 - */ -public class SerumPowder extends CardImpl { - - public SerumPowder(UUID ownerId) { - super(ownerId, 138, "Serum Powder", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.expansionSetCode = "DST"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // Any time you could mulligan and Serum Powder is in your hand, you may exile all the cards from your hand, then draw that many cards. - this.addAbility(new SimpleStaticAbility(Zone.HAND, new SerumPowderReplaceEffect())); - } - - public SerumPowder(final SerumPowder card) { - super(card); - } - - @Override - public SerumPowder copy() { - return new SerumPowder(this); - } -} - -class SerumPowderReplaceEffect extends ReplacementEffectImpl { - SerumPowderReplaceEffect() { - super(Duration.EndOfGame, Outcome.Detriment); - staticText = "Any time you could mulligan and {this} is in your hand, you may exile all the cards from your hand, then draw that many cards"; - } - - SerumPowderReplaceEffect(final SerumPowderReplaceEffect effect) { - super(effect); - } - - @Override - public boolean replaceEvent(GameEvent event, Ability source, Game game) { - Player controller = game.getPlayer(source.getControllerId()); - Card sourceCard = game.getCard(source.getSourceId()); - if (controller != null && sourceCard != null) { - if (!controller.chooseUse(outcome, "Exile all cards from hand and draw that many cards?", source, game)) { - return false; - } - int cardsHand = controller.getHand().size(); - if (cardsHand > 0){ - Cards cards = new CardsImpl(); - for (UUID cardId: controller.getHand()) { - cards.add(game.getCard(cardId)); - } - for (Card card: cards.getCards(game)) { - card.moveToExile(null, null, source.getSourceId(), game); - } - controller.drawCards(cardsHand, game); - } - game.informPlayers(sourceCard.getLogName() +": " + controller.getLogName() + " exiles hand and draws " + cardsHand + " card(s)"); - return true; - } - return false; - } - - @Override - public boolean checksEventType(GameEvent event, Game game) { - return event.getType() == GameEvent.EventType.CAN_TAKE_MULLIGAN; - } - - @Override - public boolean applies(GameEvent event, Ability source, Game game) { - return source.getControllerId().equals(event.getPlayerId()); - } - - @Override - public SerumPowderReplaceEffect copy() { - return new SerumPowderReplaceEffect(this); - } -} +/* + * 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.darksteel; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +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.game.Game; +import mage.game.events.GameEvent; +import mage.players.Player; + +/** + * + * @author LevelX2 + */ +public class SerumPowder extends CardImpl { + + public SerumPowder(UUID ownerId) { + super(ownerId, 138, "Serum Powder", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "DST"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // Any time you could mulligan and Serum Powder is in your hand, you may exile all the cards from your hand, then draw that many cards. + this.addAbility(new SimpleStaticAbility(Zone.HAND, new SerumPowderReplaceEffect())); + } + + public SerumPowder(final SerumPowder card) { + super(card); + } + + @Override + public SerumPowder copy() { + return new SerumPowder(this); + } +} + +class SerumPowderReplaceEffect extends ReplacementEffectImpl { + SerumPowderReplaceEffect() { + super(Duration.EndOfGame, Outcome.Detriment); + staticText = "Any time you could mulligan and {this} is in your hand, you may exile all the cards from your hand, then draw that many cards"; + } + + SerumPowderReplaceEffect(final SerumPowderReplaceEffect effect) { + super(effect); + } + + @Override + public boolean replaceEvent(GameEvent event, Ability source, Game game) { + Player controller = game.getPlayer(source.getControllerId()); + Card sourceCard = game.getCard(source.getSourceId()); + if (controller != null && sourceCard != null) { + if (!controller.chooseUse(outcome, "Exile all cards from hand and draw that many cards?", source, game)) { + return false; + } + int cardsHand = controller.getHand().size(); + if (cardsHand > 0){ + Cards cards = new CardsImpl(); + for (UUID cardId: controller.getHand()) { + cards.add(game.getCard(cardId)); + } + for (Card card: cards.getCards(game)) { + card.moveToExile(null, null, source.getSourceId(), game); + } + controller.drawCards(cardsHand, game); + } + game.informPlayers(sourceCard.getLogName() +": " + controller.getLogName() + " exiles hand and draws " + cardsHand + " card(s)"); + return true; + } + return false; + } + + @Override + public boolean checksEventType(GameEvent event, Game game) { + return event.getType() == GameEvent.EventType.CAN_TAKE_MULLIGAN; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + return source.getControllerId().equals(event.getPlayerId()); + } + + @Override + public SerumPowderReplaceEffect copy() { + return new SerumPowderReplaceEffect(this); + } +} diff --git a/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java b/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java index 00a0be0f4a4..c5599a8d824 100644 --- a/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java +++ b/Mage.Sets/src/mage/sets/darksteel/UrGolemsEye.java @@ -48,7 +48,7 @@ public class UrGolemsEye extends CardImpl { super(ownerId, 155, "Ur-Golem's Eye", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); this.expansionSetCode = "DST"; - // {tap}: Add {2} to your mana pool. + // {tap}: Add {C}{C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0,0,0,0,0,2,0), new TapSourceCost())); } diff --git a/Mage.Sets/src/mage/sets/dissension/NovijenHeartOfProgress.java b/Mage.Sets/src/mage/sets/dissension/NovijenHeartOfProgress.java index 2b592312e37..06c6d0a1cc8 100644 --- a/Mage.Sets/src/mage/sets/dissension/NovijenHeartOfProgress.java +++ b/Mage.Sets/src/mage/sets/dissension/NovijenHeartOfProgress.java @@ -1,109 +1,109 @@ -/* - * 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.dissension; - -import java.util.UUID; -import mage.MageObject; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; -import mage.filter.common.FilterCreaturePermanent; -import mage.game.Game; -import mage.game.permanent.Permanent; -import mage.players.Player; - -/** - * - * @author someoneseth@gmail.com - */ -public class NovijenHeartOfProgress extends CardImpl { - - public NovijenHeartOfProgress(UUID ownerId) { - super(ownerId, 175, "Novijen, Heart of Progress", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DIS"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {G}{U}, {T}: Put a +1/+1 counter on each creature that entered the battlefield this turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NovijenHeartOfProgressEffect(), new ManaCostsImpl<>("{G}{U}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public NovijenHeartOfProgress(final NovijenHeartOfProgress card) { - super(card); - } - - @Override - public NovijenHeartOfProgress copy() { - return new NovijenHeartOfProgress(this); - } -} - -class NovijenHeartOfProgressEffect extends OneShotEffect { - - public NovijenHeartOfProgressEffect() { - super(Outcome.BoostCreature); - staticText = "put a +1/+1 counter on each creature that came into play this turn"; - } - - public NovijenHeartOfProgressEffect(final NovijenHeartOfProgressEffect effect) { - super(effect); - } - - @Override - public NovijenHeartOfProgressEffect copy() { - return new NovijenHeartOfProgressEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - MageObject sourceObject = game.getObject(source.getSourceId()); - if (controller != null && sourceObject != null) { - for (Permanent permanent: game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) { - if (permanent.getTurnsOnBattlefield() == 0) { - permanent.addCounters(CounterType.P1P1.createInstance(), game); - game.informPlayers(sourceObject.getLogName()+ ": " + controller.getLogName() + " puts a +1/+1 counter on " + permanent.getLogName()); - } - } - return true; - } - return false; - } +/* + * 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.dissension; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author someoneseth@gmail.com + */ +public class NovijenHeartOfProgress extends CardImpl { + + public NovijenHeartOfProgress(UUID ownerId) { + super(ownerId, 175, "Novijen, Heart of Progress", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DIS"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {G}{U}, {T}: Put a +1/+1 counter on each creature that entered the battlefield this turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NovijenHeartOfProgressEffect(), new ManaCostsImpl<>("{G}{U}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public NovijenHeartOfProgress(final NovijenHeartOfProgress card) { + super(card); + } + + @Override + public NovijenHeartOfProgress copy() { + return new NovijenHeartOfProgress(this); + } +} + +class NovijenHeartOfProgressEffect extends OneShotEffect { + + public NovijenHeartOfProgressEffect() { + super(Outcome.BoostCreature); + staticText = "put a +1/+1 counter on each creature that came into play this turn"; + } + + public NovijenHeartOfProgressEffect(final NovijenHeartOfProgressEffect effect) { + super(effect); + } + + @Override + public NovijenHeartOfProgressEffect copy() { + return new NovijenHeartOfProgressEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = game.getObject(source.getSourceId()); + if (controller != null && sourceObject != null) { + for (Permanent permanent: game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), source.getControllerId(), game)) { + if (permanent.getTurnsOnBattlefield() == 0) { + permanent.addCounters(CounterType.P1P1.createInstance(), game); + game.informPlayers(sourceObject.getLogName()+ ": " + controller.getLogName() + " puts a +1/+1 counter on " + permanent.getLogName()); + } + } + return true; + } + return false; + } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/dissension/PrahvSpiresOfOrder.java b/Mage.Sets/src/mage/sets/dissension/PrahvSpiresOfOrder.java index 960079e9a3e..752ddf8eb3d 100644 --- a/Mage.Sets/src/mage/sets/dissension/PrahvSpiresOfOrder.java +++ b/Mage.Sets/src/mage/sets/dissension/PrahvSpiresOfOrder.java @@ -1,70 +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.dissension; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.PreventDamageBySourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class PrahvSpiresOfOrder extends CardImpl { - - public PrahvSpiresOfOrder(UUID ownerId) { - super(ownerId, 177, "Prahv, Spires of Order", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DIS"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {4}{W}{U}, {T}: Prevent all damage a source of your choice would deal this turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageBySourceEffect(), new ManaCostsImpl("{4}{W}{U}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - } - - public PrahvSpiresOfOrder(final PrahvSpiresOfOrder card) { - super(card); - } - - @Override - public PrahvSpiresOfOrder copy() { - return new PrahvSpiresOfOrder(this); - } -} +/* + * 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.dissension; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.PreventDamageBySourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class PrahvSpiresOfOrder extends CardImpl { + + public PrahvSpiresOfOrder(UUID ownerId) { + super(ownerId, 177, "Prahv, Spires of Order", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DIS"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {4}{W}{U}, {T}: Prevent all damage a source of your choice would deal this turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PreventDamageBySourceEffect(), new ManaCostsImpl("{4}{W}{U}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + } + + public PrahvSpiresOfOrder(final PrahvSpiresOfOrder card) { + super(card); + } + + @Override + public PrahvSpiresOfOrder copy() { + return new PrahvSpiresOfOrder(this); + } +} diff --git a/Mage.Sets/src/mage/sets/dissension/RixMaadiDungeonPalace.java b/Mage.Sets/src/mage/sets/dissension/RixMaadiDungeonPalace.java index 1f126ba83fd..43e2c02d944 100644 --- a/Mage.Sets/src/mage/sets/dissension/RixMaadiDungeonPalace.java +++ b/Mage.Sets/src/mage/sets/dissension/RixMaadiDungeonPalace.java @@ -1,70 +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.dissension; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.ActivateAsSorceryActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class RixMaadiDungeonPalace extends CardImpl { - - public RixMaadiDungeonPalace(UUID ownerId) { - super(ownerId, 179, "Rix Maadi, Dungeon Palace", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DIS"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}{B}{R}, {tap}: Each player discards a card. Activate this ability only any time you could cast a sorcery. - Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardEachPlayerEffect(), new ManaCostsImpl("{1}{B}{R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public RixMaadiDungeonPalace(final RixMaadiDungeonPalace card) { - super(card); - } - - @Override - public RixMaadiDungeonPalace copy() { - return new RixMaadiDungeonPalace(this); - } -} +/* + * 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.dissension; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class RixMaadiDungeonPalace extends CardImpl { + + public RixMaadiDungeonPalace(UUID ownerId) { + super(ownerId, 179, "Rix Maadi, Dungeon Palace", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DIS"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}{B}{R}, {tap}: Each player discards a card. Activate this ability only any time you could cast a sorcery. + Ability ability = new ActivateAsSorceryActivatedAbility(Zone.BATTLEFIELD, new DiscardEachPlayerEffect(), new ManaCostsImpl("{1}{B}{R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public RixMaadiDungeonPalace(final RixMaadiDungeonPalace card) { + super(card); + } + + @Override + public RixMaadiDungeonPalace copy() { + return new RixMaadiDungeonPalace(this); + } +} diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java index d91d3f2a861..5b9929053b8 100644 --- a/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java +++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/CircleOfElders.java @@ -1,80 +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.dragonsoftarkir; - -import java.util.UUID; -import mage.MageInt; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.condition.common.FormidableCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.keyword.VigilanceAbility; -import mage.abilities.mana.ActivateIfConditionManaAbility; -import mage.cards.CardImpl; -import mage.constants.AbilityWord; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class CircleOfElders extends CardImpl { - - public CircleOfElders(UUID ownerId) { - super(ownerId, 176, "Circle of Elders", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); - this.expansionSetCode = "DTK"; - this.subtype.add("Human"); - this.subtype.add("Shaman"); - this.power = new MageInt(2); - this.toughness = new MageInt(4); - - // Vigilance - this.addAbility(VigilanceAbility.getInstance()); - - // Formidable - {T}: Add {3} to your mana pool. Activate this only if creatures you control have total power 8 or greater. - Ability ability = new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(new Mana(0,0,0,0,0,3,0)), - new TapSourceCost(), - FormidableCondition.getInstance()); - ability.setAbilityWord(AbilityWord.FORMIDABLE); - this.addAbility(ability); - } - - public CircleOfElders(final CircleOfElders card) { - super(card); - } - - @Override - public CircleOfElders copy() { - return new CircleOfElders(this); - } -} +/* + * 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.dragonsoftarkir; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.condition.common.FormidableCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.cards.CardImpl; +import mage.constants.AbilityWord; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class CircleOfElders extends CardImpl { + + public CircleOfElders(UUID ownerId) { + super(ownerId, 176, "Circle of Elders", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}{G}"); + this.expansionSetCode = "DTK"; + this.subtype.add("Human"); + this.subtype.add("Shaman"); + this.power = new MageInt(2); + this.toughness = new MageInt(4); + + // Vigilance + this.addAbility(VigilanceAbility.getInstance()); + + // Formidable - {T}: Add {C}{C}{C} to your mana pool. Activate this only if creatures you control have total power 8 or greater. + Ability ability = new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(new Mana(0,0,0,0,0,3,0)), + new TapSourceCost(), + FormidableCondition.getInstance()); + ability.setAbilityWord(AbilityWord.FORMIDABLE); + this.addAbility(ability); + } + + public CircleOfElders(final CircleOfElders card) { + super(card); + } + + @Override + public CircleOfElders copy() { + return new CircleOfElders(this); + } +} diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/HavenOfTheSpiritDragon.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/HavenOfTheSpiritDragon.java index b8f4ce26ffa..d426f75a336 100644 --- a/Mage.Sets/src/mage/sets/dragonsoftarkir/HavenOfTheSpiritDragon.java +++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/HavenOfTheSpiritDragon.java @@ -1,167 +1,167 @@ -/* - * 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.dragonsoftarkir; - -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.ConditionalAnyColorManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -import mage.abilities.mana.conditional.CreatureCastManaCondition; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.predicate.Predicate; -import mage.filter.predicate.Predicates; -import mage.game.Game; -import mage.target.common.TargetCardInYourGraveyard; - -/** - * - * @author jeffwadsworth - */ -public class HavenOfTheSpiritDragon extends CardImpl { - - private static final FilterCard filter = new FilterCard("Dragon creature card or Ugin planeswalker card from your graveyard"); - - static { - filter.add(Predicates.or(new DragonCreatureCardPredicate(), - new UginPlaneswalkerCardPredicate())); - } - - public HavenOfTheSpiritDragon(UUID ownerId) { - super(ownerId, 249, "Haven of the Spirit Dragon", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DTK"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {T}: add one mana of any color to your mana pool. Spend this mana only to cast a Dragon creature spell. - this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new HavenOfTheSpiritManaBuilder(), true)); - - // {2}, {T}, Sacrifice Haven of the Spirit Dragon: Return target Dragon creature card or Ugin planeswalker card from your graveyard to your hand. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{2}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetCardInYourGraveyard(filter)); - this.addAbility(ability); - - } - - public HavenOfTheSpiritDragon(final HavenOfTheSpiritDragon card) { - super(card); - } - - @Override - public HavenOfTheSpiritDragon copy() { - return new HavenOfTheSpiritDragon(this); - } -} - -class HavenOfTheSpiritManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - this.mana.setFlag(true); // indicates that the mana is from second ability - return new HavenOfTheSpiritConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to cast a Dragon creature spell."; - } -} - -class HavenOfTheSpiritConditionalMana extends ConditionalMana { - - HavenOfTheSpiritConditionalMana(Mana mana) { - super(mana); - staticText = "Spend this mana only to cast a Dragon creature spell."; - addCondition(new HavenOfTheSpiritManaCondition()); - } -} - -class HavenOfTheSpiritManaCondition extends CreatureCastManaCondition { - - @Override - public boolean apply(Game game, Ability source, UUID manaProducer) { - if (super.apply(game, source)) { - MageObject object = game.getObject(source.getSourceId()); - if (object.hasSubtype("Dragon") - && object.getCardType().contains(CardType.CREATURE)) { - return true; - } - } - return false; - } -} - -class DragonCreatureCardPredicate implements Predicate { - - public DragonCreatureCardPredicate() { - } - - @Override - public boolean apply(Card input, Game game) { - return input.getCardType().contains(CardType.CREATURE) - && input.getSubtype().contains("Dragon"); - } - - @Override - public String toString() { - return ""; - } -} - -class UginPlaneswalkerCardPredicate implements Predicate { - - public UginPlaneswalkerCardPredicate() { - } - - @Override - public boolean apply(Card input, Game game) { - return input.getCardType().contains(CardType.PLANESWALKER) - && input.getName().contains("Ugin, the Spirit Dragon"); - } - - @Override - public String toString() { - return ""; - } -} +/* + * 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.dragonsoftarkir; + +import java.util.UUID; +import mage.ConditionalMana; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ConditionalAnyColorManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +import mage.abilities.mana.conditional.CreatureCastManaCondition; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicate; +import mage.filter.predicate.Predicates; +import mage.game.Game; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author jeffwadsworth + */ +public class HavenOfTheSpiritDragon extends CardImpl { + + private static final FilterCard filter = new FilterCard("Dragon creature card or Ugin planeswalker card from your graveyard"); + + static { + filter.add(Predicates.or(new DragonCreatureCardPredicate(), + new UginPlaneswalkerCardPredicate())); + } + + public HavenOfTheSpiritDragon(UUID ownerId) { + super(ownerId, 249, "Haven of the Spirit Dragon", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DTK"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {T}: add one mana of any color to your mana pool. Spend this mana only to cast a Dragon creature spell. + this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new HavenOfTheSpiritManaBuilder(), true)); + + // {2}, {T}, Sacrifice Haven of the Spirit Dragon: Return target Dragon creature card or Ugin planeswalker card from your graveyard to your hand. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnFromGraveyardToHandTargetEffect(), new ManaCostsImpl("{2}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCardInYourGraveyard(filter)); + this.addAbility(ability); + + } + + public HavenOfTheSpiritDragon(final HavenOfTheSpiritDragon card) { + super(card); + } + + @Override + public HavenOfTheSpiritDragon copy() { + return new HavenOfTheSpiritDragon(this); + } +} + +class HavenOfTheSpiritManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + this.mana.setFlag(true); // indicates that the mana is from second ability + return new HavenOfTheSpiritConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to cast a Dragon creature spell."; + } +} + +class HavenOfTheSpiritConditionalMana extends ConditionalMana { + + HavenOfTheSpiritConditionalMana(Mana mana) { + super(mana); + staticText = "Spend this mana only to cast a Dragon creature spell."; + addCondition(new HavenOfTheSpiritManaCondition()); + } +} + +class HavenOfTheSpiritManaCondition extends CreatureCastManaCondition { + + @Override + public boolean apply(Game game, Ability source, UUID manaProducer) { + if (super.apply(game, source)) { + MageObject object = game.getObject(source.getSourceId()); + if (object.hasSubtype("Dragon") + && object.getCardType().contains(CardType.CREATURE)) { + return true; + } + } + return false; + } +} + +class DragonCreatureCardPredicate implements Predicate { + + public DragonCreatureCardPredicate() { + } + + @Override + public boolean apply(Card input, Game game) { + return input.getCardType().contains(CardType.CREATURE) + && input.getSubtype().contains("Dragon"); + } + + @Override + public String toString() { + return ""; + } +} + +class UginPlaneswalkerCardPredicate implements Predicate { + + public UginPlaneswalkerCardPredicate() { + } + + @Override + public boolean apply(Card input, Game game) { + return input.getCardType().contains(CardType.PLANESWALKER) + && input.getName().contains("Ugin, the Spirit Dragon"); + } + + @Override + public String toString() { + return ""; + } +} diff --git a/Mage.Sets/src/mage/sets/dragonsoftarkir/QarsiDeceiver.java b/Mage.Sets/src/mage/sets/dragonsoftarkir/QarsiDeceiver.java index 082ab5fbe6e..ec66988e45a 100644 --- a/Mage.Sets/src/mage/sets/dragonsoftarkir/QarsiDeceiver.java +++ b/Mage.Sets/src/mage/sets/dragonsoftarkir/QarsiDeceiver.java @@ -1,111 +1,111 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.dragonsoftarkir; - -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.TurnFaceUpAbility; -import mage.abilities.condition.Condition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.ConditionalColorlessManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.Game; -import mage.game.stack.Spell; - -/** - * - * @author LevelX2 - */ -public class QarsiDeceiver extends CardImpl { - - public QarsiDeceiver(UUID ownerId) { - super(ownerId, 71, "Qarsi Deceiver", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); - this.expansionSetCode = "DTK"; - this.subtype.add("Naga"); - this.subtype.add("Wizard"); - this.power = new MageInt(0); - this.toughness = new MageInt(4); - - // {T}: Add {1} to your mana pool. Spend this mana only to cast a face-down creature spell, pay a mana cost to turn a manifested creature face up, or pay a morph cost. - this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 1, new QarsiDeceiverManaBuilder())); - } - - public QarsiDeceiver(final QarsiDeceiver card) { - super(card); - } - - @Override - public QarsiDeceiver copy() { - return new QarsiDeceiver(this); - } -} - -class QarsiDeceiverManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - return new QarsiDeceiverConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to cast a face-down creature spell, pay a mana cost to turn a manifested creature face up, or pay a morph cost. (A megamorph cost is a morph cost.)"; - } -} - -class QarsiDeceiverConditionalMana extends ConditionalMana { - - public QarsiDeceiverConditionalMana(Mana mana) { - super(mana); - addCondition(new QarsiDeceiverManaCondition()); - } -} - -class QarsiDeceiverManaCondition implements Condition { - - @Override - public boolean apply(Game game, Ability source) { - MageObject object = game.getObject(source.getSourceId()); - if (object instanceof Spell) { - if (((Spell) object).isFaceDown(game)) { - return true; - } - } - if (source instanceof TurnFaceUpAbility) { - return true; - } - return false; - } -} +/* + * 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.dragonsoftarkir; + +import java.util.UUID; +import mage.ConditionalMana; +import mage.MageInt; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.TurnFaceUpAbility; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.ConditionalColorlessManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.Game; +import mage.game.stack.Spell; + +/** + * + * @author LevelX2 + */ +public class QarsiDeceiver extends CardImpl { + + public QarsiDeceiver(UUID ownerId) { + super(ownerId, 71, "Qarsi Deceiver", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); + this.expansionSetCode = "DTK"; + this.subtype.add("Naga"); + this.subtype.add("Wizard"); + this.power = new MageInt(0); + this.toughness = new MageInt(4); + + // {T}: Add {C} to your mana pool. Spend this mana only to cast a face-down creature spell, pay a mana cost to turn a manifested creature face up, or pay a morph cost. + this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 1, new QarsiDeceiverManaBuilder())); + } + + public QarsiDeceiver(final QarsiDeceiver card) { + super(card); + } + + @Override + public QarsiDeceiver copy() { + return new QarsiDeceiver(this); + } +} + +class QarsiDeceiverManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + return new QarsiDeceiverConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to cast a face-down creature spell, pay a mana cost to turn a manifested creature face up, or pay a morph cost. (A megamorph cost is a morph cost.)"; + } +} + +class QarsiDeceiverConditionalMana extends ConditionalMana { + + public QarsiDeceiverConditionalMana(Mana mana) { + super(mana); + addCondition(new QarsiDeceiverManaCondition()); + } +} + +class QarsiDeceiverManaCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source.getSourceId()); + if (object instanceof Spell) { + if (((Spell) object).isFaceDown(game)) { + return true; + } + } + if (source instanceof TurnFaceUpAbility) { + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java b/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java index 1ae1752a22f..deda0137e10 100644 --- a/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java +++ b/Mage.Sets/src/mage/sets/eventide/CascadeBluffs.java @@ -1,77 +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.eventide; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; - -/** - * @author Loki - */ -public class CascadeBluffs extends CardImpl { - - public CascadeBluffs(UUID ownerId) { - super(ownerId, 175, "Cascade Bluffs", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "EVE"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {U/R}, {tap}: Add {U}{U}, {U}{R}, or {R}{R} to your mana pool. - SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new ManaCostsImpl("{U/R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{U/R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new ManaCostsImpl("{U/R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public CascadeBluffs(final CascadeBluffs card) { - super(card); - } - - @Override - public CascadeBluffs copy() { - return new CascadeBluffs(this); - } -} +/* + * 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.eventide; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; + +/** + * @author Loki + */ +public class CascadeBluffs extends CardImpl { + + public CascadeBluffs(UUID ownerId) { + super(ownerId, 175, "Cascade Bluffs", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "EVE"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {U/R}, {tap}: Add {U}{U}, {U}{R}, or {R}{R} to your mana pool. + SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new ManaCostsImpl("{U/R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 1, 0, 0, 0, 0), new ManaCostsImpl("{U/R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new ManaCostsImpl("{U/R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public CascadeBluffs(final CascadeBluffs card) { + super(card); + } + + @Override + public CascadeBluffs copy() { + return new CascadeBluffs(this); + } +} diff --git a/Mage.Sets/src/mage/sets/eventide/FetidHeath.java b/Mage.Sets/src/mage/sets/eventide/FetidHeath.java index c6b8a11e40d..17b91c2a6a6 100644 --- a/Mage.Sets/src/mage/sets/eventide/FetidHeath.java +++ b/Mage.Sets/src/mage/sets/eventide/FetidHeath.java @@ -1,80 +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.eventide; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.BasicManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; - -/** - * - * @author Loki - */ -public class FetidHeath extends CardImpl { - - public FetidHeath (UUID ownerId) { - super(ownerId, 176, "Fetid Heath", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "EVE"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {W/B}, {tap}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool. - SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new ManaCostsImpl("{W/B}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0), new ManaCostsImpl("{W/B}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new ManaCostsImpl("{W/B}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public FetidHeath (final FetidHeath card) { - super(card); - } - - @Override - public FetidHeath copy() { - return new FetidHeath(this); - } - -} +/* + * 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.eventide; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.BasicManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; + +/** + * + * @author Loki + */ +public class FetidHeath extends CardImpl { + + public FetidHeath (UUID ownerId) { + super(ownerId, 176, "Fetid Heath", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "EVE"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {W/B}, {tap}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool. + SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new ManaCostsImpl("{W/B}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 1, 1, 0, 0), new ManaCostsImpl("{W/B}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new ManaCostsImpl("{W/B}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public FetidHeath (final FetidHeath card) { + super(card); + } + + @Override + public FetidHeath copy() { + return new FetidHeath(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java b/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java index dfae1c21cee..8179e60230f 100644 --- a/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java +++ b/Mage.Sets/src/mage/sets/eventide/FloodedGrove.java @@ -1,79 +1,79 @@ -/* - * 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.eventide; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author Loki - */ -public class FloodedGrove extends CardImpl { - - public FloodedGrove (UUID ownerId) { - super(ownerId, 177, "Flooded Grove", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "EVE"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {(G/U)}, {T}: Add {G}{G}, {G}{U}, or {U}{U} to your mana pool. - SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new ManaCostsImpl("{G/U}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{G/U}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new ManaCostsImpl("{G/U}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - } - - public FloodedGrove (final FloodedGrove card) { - super(card); - } - - @Override - public FloodedGrove copy() { - return new FloodedGrove(this); - } - -} +/* + * 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.eventide; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author Loki + */ +public class FloodedGrove extends CardImpl { + + public FloodedGrove (UUID ownerId) { + super(ownerId, 177, "Flooded Grove", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "EVE"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {(G/U)}, {T}: Add {G}{G}, {G}{U}, or {U}{U} to your mana pool. + SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new ManaCostsImpl("{G/U}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 1, 0, 0, 0, 0), new ManaCostsImpl("{G/U}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new ManaCostsImpl("{G/U}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + } + + public FloodedGrove (final FloodedGrove card) { + super(card); + } + + @Override + public FloodedGrove copy() { + return new FloodedGrove(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java b/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java index a89604a0634..1a0c6f0c1dd 100644 --- a/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java +++ b/Mage.Sets/src/mage/sets/eventide/RuggedPrairie.java @@ -1,76 +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.eventide; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; - -/** - * - * @author Loki - */ -public class RuggedPrairie extends CardImpl { - - public RuggedPrairie (UUID ownerId) { - super(ownerId, 178, "Rugged Prairie", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "EVE"; - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {R/W}, {tap}: Add {R}{R}, {R}{W}, or {W}{W} to your mana pool. - SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new ManaCostsImpl("{R/W}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{R/W}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new ManaCostsImpl("{R/W}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public RuggedPrairie (final RuggedPrairie card) { - super(card); - } - - @Override - public RuggedPrairie copy() { - return new RuggedPrairie(this); - } -} +/* + * 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.eventide; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; + +/** + * + * @author Loki + */ +public class RuggedPrairie extends CardImpl { + + public RuggedPrairie (UUID ownerId) { + super(ownerId, 178, "Rugged Prairie", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "EVE"; + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {R/W}, {tap}: Add {R}{R}, {R}{W}, or {W}{W} to your mana pool. + SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new ManaCostsImpl("{R/W}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 1, 0, 0, 0), new ManaCostsImpl("{R/W}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new ManaCostsImpl("{R/W}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public RuggedPrairie (final RuggedPrairie card) { + super(card); + } + + @Override + public RuggedPrairie copy() { + return new RuggedPrairie(this); + } +} diff --git a/Mage.Sets/src/mage/sets/exodus/CityOfTraitors.java b/Mage.Sets/src/mage/sets/exodus/CityOfTraitors.java index 07d2ccdfd64..0a125184a5e 100644 --- a/Mage.Sets/src/mage/sets/exodus/CityOfTraitors.java +++ b/Mage.Sets/src/mage/sets/exodus/CityOfTraitors.java @@ -1,104 +1,104 @@ -/* - * 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.exodus; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.SacrificeSourceEffect; -import mage.abilities.mana.SimpleManaAbility; -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.events.GameEvent.EventType; -import mage.game.permanent.Permanent; - -/** - * - * @author jeffwadsworth - */ -public class CityOfTraitors extends CardImpl { - - public CityOfTraitors(UUID ownerId) { - super(ownerId, 143, "City of Traitors", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "EXO"; - - // When you play another land, sacrifice City of Traitors. - this.addAbility(new CityOfTraitorsTriggeredAbility()); - - // {tap}: Add {2} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); - } - - public CityOfTraitors(final CityOfTraitors card) { - super(card); - } - - @Override - public CityOfTraitors copy() { - return new CityOfTraitors(this); - } -} - -class CityOfTraitorsTriggeredAbility extends TriggeredAbilityImpl { - - CityOfTraitorsTriggeredAbility() { - super(Zone.BATTLEFIELD, new SacrificeSourceEffect()); - } - - CityOfTraitorsTriggeredAbility(CityOfTraitorsTriggeredAbility ability) { - super(ability); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.LAND_PLAYED; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - Permanent land = game.getPermanent(event.getTargetId()); - return land.getCardType().contains(CardType.LAND) - && land.getControllerId().equals(this.controllerId) - && event.getTargetId() != this.getSourceId(); - } - - @Override - public CityOfTraitorsTriggeredAbility copy() { - return new CityOfTraitorsTriggeredAbility(this); - } - - @Override - public String getRule() { - return "When you play another land, sacrifice {this}"; - } -} +/* + * 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.exodus; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.mana.SimpleManaAbility; +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.events.GameEvent.EventType; +import mage.game.permanent.Permanent; + +/** + * + * @author jeffwadsworth + */ +public class CityOfTraitors extends CardImpl { + + public CityOfTraitors(UUID ownerId) { + super(ownerId, 143, "City of Traitors", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "EXO"; + + // When you play another land, sacrifice City of Traitors. + this.addAbility(new CityOfTraitorsTriggeredAbility()); + + // {tap}: Add {C}{C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); + } + + public CityOfTraitors(final CityOfTraitors card) { + super(card); + } + + @Override + public CityOfTraitors copy() { + return new CityOfTraitors(this); + } +} + +class CityOfTraitorsTriggeredAbility extends TriggeredAbilityImpl { + + CityOfTraitorsTriggeredAbility() { + super(Zone.BATTLEFIELD, new SacrificeSourceEffect()); + } + + CityOfTraitorsTriggeredAbility(CityOfTraitorsTriggeredAbility ability) { + super(ability); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.LAND_PLAYED; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + Permanent land = game.getPermanent(event.getTargetId()); + return land.getCardType().contains(CardType.LAND) + && land.getControllerId().equals(this.controllerId) + && event.getTargetId() != this.getSourceId(); + } + + @Override + public CityOfTraitorsTriggeredAbility copy() { + return new CityOfTraitorsTriggeredAbility(this); + } + + @Override + public String getRule() { + return "When you play another land, sacrifice {this}"; + } +} diff --git a/Mage.Sets/src/mage/sets/exodus/Workhorse.java b/Mage.Sets/src/mage/sets/exodus/Workhorse.java index d681e6b96b9..ac3c4701a3c 100644 --- a/Mage.Sets/src/mage/sets/exodus/Workhorse.java +++ b/Mage.Sets/src/mage/sets/exodus/Workhorse.java @@ -56,7 +56,7 @@ public class Workhorse extends CardImpl { // Workhorse enters the battlefield with four +1/+1 counters on it. this.addAbility(new EntersBattlefieldAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance(4)), "with four +1/+1 counters on it")); - // Remove a +1/+1 counter from Workhorse: Add {1} to your mana pool. + // Remove a +1/+1 counter from Workhorse: Add {C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(new Mana(0, 0, 0, 0, 0, 1, 0)), new RemoveCountersSourceCost(CounterType.P1P1.createInstance()))); diff --git a/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger1.java b/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger1.java new file mode 100644 index 00000000000..f047aafece0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger1.java @@ -0,0 +1,90 @@ +/* + * 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.fallenempires; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.condition.common.IsStepCondition; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.dynamicvalue.common.CountersCount; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.PhaseStep; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author fireshoes + */ +public class IcatianMoneychanger1 extends CardImpl { + + public IcatianMoneychanger1(UUID ownerId) { + super(ownerId, 152, "Icatian Moneychanger", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}"); + this.expansionSetCode = "FEM"; + this.subtype.add("Human"); + this.power = new MageInt(0); + this.toughness = new MageInt(2); + + // Icatian Moneychanger enters the battlefield with three credit counters on it. + Effect effect = new AddCountersSourceEffect(CounterType.CREDIT.createInstance(3)); + effect.setText("with three credit counters on it"); + this.addAbility(new EntersBattlefieldAbility(effect)); + + // When Icatian Moneychanger enters the battlefield, it deals 3 damage to you. + effect = new DamageControllerEffect(3); + effect.setText("it deals 3 damage to you"); + this.addAbility(new EntersBattlefieldTriggeredAbility(effect, false)); + + // At the beginning of your upkeep, put a credit counter on Icatian Moneychanger. + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.CREDIT.createInstance()), TargetController.YOU, false)); + + // Sacrifice Icatian Moneychanger: You gain 1 life for each credit counter on Icatian Moneychanger. Activate this ability only during your upkeep. + this.addAbility(new ConditionalActivatedAbility(Zone.BATTLEFIELD, + new GainLifeEffect(new CountersCount(CounterType.CREDIT)), new SacrificeSourceCost(), new IsStepCondition(PhaseStep.UPKEEP), null)); + } + + public IcatianMoneychanger1(final IcatianMoneychanger1 card) { + super(card); + } + + @Override + public IcatianMoneychanger1 copy() { + return new IcatianMoneychanger1(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger2.java b/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger2.java new file mode 100644 index 00000000000..15824afa30d --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger2.java @@ -0,0 +1,51 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class IcatianMoneychanger2 extends IcatianMoneychanger1 { + + public IcatianMoneychanger2(UUID ownerId) { + super(ownerId); + this.cardNumber = 153; + } + + public IcatianMoneychanger2(final IcatianMoneychanger2 card) { + super(card); + } + + @Override + public IcatianMoneychanger2 copy() { + return new IcatianMoneychanger2(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger3.java b/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger3.java new file mode 100644 index 00000000000..8fe9b66b038 --- /dev/null +++ b/Mage.Sets/src/mage/sets/fallenempires/IcatianMoneychanger3.java @@ -0,0 +1,51 @@ +/* + * 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.fallenempires; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class IcatianMoneychanger3 extends IcatianMoneychanger1 { + + public IcatianMoneychanger3(UUID ownerId) { + super(ownerId); + this.cardNumber = 154; + } + + public IcatianMoneychanger3(final IcatianMoneychanger3 card) { + super(card); + } + + @Override + public IcatianMoneychanger3 copy() { + return new IcatianMoneychanger3(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fatereforged/CrucibleOfTheSpiritDragon.java b/Mage.Sets/src/mage/sets/fatereforged/CrucibleOfTheSpiritDragon.java index 6a065ebd932..3e7c8fe5cb1 100644 --- a/Mage.Sets/src/mage/sets/fatereforged/CrucibleOfTheSpiritDragon.java +++ b/Mage.Sets/src/mage/sets/fatereforged/CrucibleOfTheSpiritDragon.java @@ -1,123 +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.fatereforged; - -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.condition.Condition; -import mage.abilities.costs.common.RemoveVariableCountersSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.ConditionalAnyColorManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; -import mage.game.Game; - -/** - * - * @author LevelX2 - */ -public class CrucibleOfTheSpiritDragon extends CardImpl { - - public CrucibleOfTheSpiritDragon(UUID ownerId) { - super(ownerId, 167, "Crucible of the Spirit Dragon", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "FRF"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}, {T}: Put a storage counter on Crucible of the Spirit Dragon. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - // {T}, Remove X storage counters from Crucible of the Spirit Dragon: Add X mana in any combination of colors to your mana pool. Spend this mana only to cast Dragon spells or activate abilities of Dragons. - ability = new ConditionalAnyColorManaAbility( - new TapSourceCost(), - new RemovedCountersForCostValue(), - new CrucibleOfTheSpiritDragonManaBuilder(), - false - ); - ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); - this.addAbility(ability); - } - - public CrucibleOfTheSpiritDragon(final CrucibleOfTheSpiritDragon card) { - super(card); - } - - @Override - public CrucibleOfTheSpiritDragon copy() { - return new CrucibleOfTheSpiritDragon(this); - } -} - -class CrucibleOfTheSpiritDragonManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - return new CrucibleOfTheSpiritDragonConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to cast Dragon spells or activate abilities of Dragons"; - } -} - -class CrucibleOfTheSpiritDragonConditionalMana extends ConditionalMana { - - public CrucibleOfTheSpiritDragonConditionalMana(Mana mana) { - super(mana); - this.staticText = "Spend this mana only to cast Dragon spells or activate abilities of Dragons"; - addCondition(new CrucibleOfTheSpiritDragonManaCondition()); - } -} - -class CrucibleOfTheSpiritDragonManaCondition implements Condition { - - @Override - public boolean apply(Game game, Ability source) { - MageObject object = game.getObject(source.getSourceId()); - if (object != null && object.hasSubtype("Dragon")) { - return true; - } - return false; - } +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.ConditionalMana; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.RemoveVariableCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ConditionalAnyColorManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.Game; + +/** + * + * @author LevelX2 + */ +public class CrucibleOfTheSpiritDragon extends CardImpl { + + public CrucibleOfTheSpiritDragon(UUID ownerId) { + super(ownerId, 167, "Crucible of the Spirit Dragon", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "FRF"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}, {T}: Put a storage counter on Crucible of the Spirit Dragon. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + // {T}, Remove X storage counters from Crucible of the Spirit Dragon: Add X mana in any combination of colors to your mana pool. Spend this mana only to cast Dragon spells or activate abilities of Dragons. + ability = new ConditionalAnyColorManaAbility( + new TapSourceCost(), + new RemovedCountersForCostValue(), + new CrucibleOfTheSpiritDragonManaBuilder(), + false + ); + ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); + this.addAbility(ability); + } + + public CrucibleOfTheSpiritDragon(final CrucibleOfTheSpiritDragon card) { + super(card); + } + + @Override + public CrucibleOfTheSpiritDragon copy() { + return new CrucibleOfTheSpiritDragon(this); + } +} + +class CrucibleOfTheSpiritDragonManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + return new CrucibleOfTheSpiritDragonConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to cast Dragon spells or activate abilities of Dragons"; + } +} + +class CrucibleOfTheSpiritDragonConditionalMana extends ConditionalMana { + + public CrucibleOfTheSpiritDragonConditionalMana(Mana mana) { + super(mana); + this.staticText = "Spend this mana only to cast Dragon spells or activate abilities of Dragons"; + addCondition(new CrucibleOfTheSpiritDragonManaCondition()); + } +} + +class CrucibleOfTheSpiritDragonManaCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source.getSourceId()); + if (object != null && object.hasSubtype("Dragon")) { + return true; + } + return false; + } } \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/fatereforged/RenownedWeaponsmith.java b/Mage.Sets/src/mage/sets/fatereforged/RenownedWeaponsmith.java index f82c282471f..d2daeff57e3 100644 --- a/Mage.Sets/src/mage/sets/fatereforged/RenownedWeaponsmith.java +++ b/Mage.Sets/src/mage/sets/fatereforged/RenownedWeaponsmith.java @@ -1,166 +1,166 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.fatereforged; - -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.condition.Condition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.ConditionalColorlessManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -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.Predicates; -import mage.filter.predicate.mageobject.NamePredicate; -import mage.game.Game; -import mage.players.Player; -import mage.target.common.TargetCardInLibrary; - -/** - * - * @author jeffwadsworth - */ -public class RenownedWeaponsmith extends CardImpl { - - public RenownedWeaponsmith(UUID ownerId) { - super(ownerId, 48, "Renowned Weaponsmith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); - this.expansionSetCode = "FRF"; - this.subtype.add("Human"); - this.subtype.add("Artificer"); - this.power = new MageInt(1); - this.toughness = new MageInt(3); - - // {t}: Add {2} to your mana pool. Spend this mana only to cast artifact spells or activate abilities of artifacts. - this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new RenownedWeaponsmithManaBuilder())); - - // {U}, {T}: Search your library for a card named Heart-Piercer Bow or Vial of Dragonfire, reveal it, put it into your hand, then shuffle your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RenownedWeaponsmithEffect(), new ManaCostsImpl("{U")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - } - - public RenownedWeaponsmith(final RenownedWeaponsmith card) { - super(card); - } - - @Override - public RenownedWeaponsmith copy() { - return new RenownedWeaponsmith(this); - } -} - -class RenownedWeaponsmithManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - return new RenownedWeaponsmithConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to cast artifact spells or activate abilities of artifacts"; - } -} - -class RenownedWeaponsmithConditionalMana extends ConditionalMana { - - public RenownedWeaponsmithConditionalMana(Mana mana) { - super(mana); - addCondition(new RenownedWeaponsmithCondition()); - } -} - -class RenownedWeaponsmithCondition implements Condition { - - @Override - public boolean apply(Game game, Ability source) { - MageObject object = game.getObject(source.getSourceId()); - return (object != null - && object.getCardType().contains(CardType.ARTIFACT)); - } -} - -class RenownedWeaponsmithEffect extends OneShotEffect { - - private static final FilterCard filter = new FilterCard("card named Heart-Piercer Vial of Dragonfire"); - - static { - filter.add(Predicates.or(new NamePredicate("Heart-Piercer Bow"), - new NamePredicate("Vial of Dragonfire"))); - } - - public RenownedWeaponsmithEffect() { - super(Outcome.DrawCard); - staticText = "Search your library for a card named Heart-Piercer Bow or Vial of Dragonfire, reveal it, put it into your hand, then shuffle your library"; - } - - public RenownedWeaponsmithEffect(final RenownedWeaponsmithEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - MageObject sourceObject = game.getObject(source.getSourceId()); - if (sourceObject != null && controller != null) { - TargetCardInLibrary target = new TargetCardInLibrary(filter); - if (controller.searchLibrary(target, game)) { - if (target.getTargets().size() > 0) { - Card card = game.getCard(target.getFirstTarget()); - Cards revealed = new CardsImpl(); - revealed.add(card); - controller.revealCards(sourceObject.getIdName(), revealed, game); - controller.moveCards(revealed, null, Zone.HAND, source, game); - } - } - controller.shuffleLibrary(game); - return true; - } - return false; - } - - @Override - public RenownedWeaponsmithEffect copy() { - return new RenownedWeaponsmithEffect(this); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.fatereforged; + +import java.util.UUID; +import mage.ConditionalMana; +import mage.MageInt; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.ConditionalColorlessManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +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.Predicates; +import mage.filter.predicate.mageobject.NamePredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author jeffwadsworth + */ +public class RenownedWeaponsmith extends CardImpl { + + public RenownedWeaponsmith(UUID ownerId) { + super(ownerId, 48, "Renowned Weaponsmith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); + this.expansionSetCode = "FRF"; + this.subtype.add("Human"); + this.subtype.add("Artificer"); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // {t}: Add {C}{C} to your mana pool. Spend this mana only to cast artifact spells or activate abilities of artifacts. + this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new RenownedWeaponsmithManaBuilder())); + + // {U}, {T}: Search your library for a card named Heart-Piercer Bow or Vial of Dragonfire, reveal it, put it into your hand, then shuffle your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RenownedWeaponsmithEffect(), new ManaCostsImpl("{U")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + } + + public RenownedWeaponsmith(final RenownedWeaponsmith card) { + super(card); + } + + @Override + public RenownedWeaponsmith copy() { + return new RenownedWeaponsmith(this); + } +} + +class RenownedWeaponsmithManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + return new RenownedWeaponsmithConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to cast artifact spells or activate abilities of artifacts"; + } +} + +class RenownedWeaponsmithConditionalMana extends ConditionalMana { + + public RenownedWeaponsmithConditionalMana(Mana mana) { + super(mana); + addCondition(new RenownedWeaponsmithCondition()); + } +} + +class RenownedWeaponsmithCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source.getSourceId()); + return (object != null + && object.getCardType().contains(CardType.ARTIFACT)); + } +} + +class RenownedWeaponsmithEffect extends OneShotEffect { + + private static final FilterCard filter = new FilterCard("card named Heart-Piercer Vial of Dragonfire"); + + static { + filter.add(Predicates.or(new NamePredicate("Heart-Piercer Bow"), + new NamePredicate("Vial of Dragonfire"))); + } + + public RenownedWeaponsmithEffect() { + super(Outcome.DrawCard); + staticText = "Search your library for a card named Heart-Piercer Bow or Vial of Dragonfire, reveal it, put it into your hand, then shuffle your library"; + } + + public RenownedWeaponsmithEffect(final RenownedWeaponsmithEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + MageObject sourceObject = game.getObject(source.getSourceId()); + if (sourceObject != null && controller != null) { + TargetCardInLibrary target = new TargetCardInLibrary(filter); + if (controller.searchLibrary(target, game)) { + if (target.getTargets().size() > 0) { + Card card = game.getCard(target.getFirstTarget()); + Cards revealed = new CardsImpl(); + revealed.add(card); + controller.revealCards(sourceObject.getIdName(), revealed, game); + controller.moveCards(revealed, null, Zone.HAND, source, game); + } + } + controller.shuffleLibrary(game); + return true; + } + return false; + } + + @Override + public RenownedWeaponsmithEffect copy() { + return new RenownedWeaponsmithEffect(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fifthdawn/GuardianIdol.java b/Mage.Sets/src/mage/sets/fifthdawn/GuardianIdol.java index 2202874d7f2..a14b3828a22 100644 --- a/Mage.Sets/src/mage/sets/fifthdawn/GuardianIdol.java +++ b/Mage.Sets/src/mage/sets/fifthdawn/GuardianIdol.java @@ -53,7 +53,7 @@ public class GuardianIdol extends CardImpl { // Guardian Idol enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}: Guardian Idol becomes a 2/2 Golem artifact creature until end of turn. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesCreatureSourceEffect(new GuardianIdolGolemToken(), "", Duration.EndOfTurn), new ManaCostsImpl("{2}"))); diff --git a/Mage.Sets/src/mage/sets/fifthdawn/KrarkClanIronworks.java b/Mage.Sets/src/mage/sets/fifthdawn/KrarkClanIronworks.java index 53a8dc3130b..49048d2feb2 100644 --- a/Mage.Sets/src/mage/sets/fifthdawn/KrarkClanIronworks.java +++ b/Mage.Sets/src/mage/sets/fifthdawn/KrarkClanIronworks.java @@ -1,66 +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.fifthdawn; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.filter.common.FilterControlledArtifactPermanent; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author LevelX2 - */ -public class KrarkClanIronworks extends CardImpl { - - public KrarkClanIronworks(UUID ownerId) { - super(ownerId, 134, "Krark-Clan Ironworks", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); - this.expansionSetCode = "5DN"; - - // Sacrifice an artifact: Add {2} to your mana pool. - Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledArtifactPermanent("an artifact")))); - this.addAbility(ability); - - } - - public KrarkClanIronworks(final KrarkClanIronworks card) { - super(card); - } - - @Override - public KrarkClanIronworks copy() { - return new KrarkClanIronworks(this); - } -} +/* + * 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.fifthdawn; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterControlledArtifactPermanent; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author LevelX2 + */ +public class KrarkClanIronworks extends CardImpl { + + public KrarkClanIronworks(UUID ownerId) { + super(ownerId, 134, "Krark-Clan Ironworks", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "5DN"; + + // Sacrifice an artifact: Add {C}{C} to your mana pool. + Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledArtifactPermanent("an artifact")))); + this.addAbility(ability); + + } + + public KrarkClanIronworks(final KrarkClanIronworks card) { + super(card); + } + + @Override + public KrarkClanIronworks copy() { + return new KrarkClanIronworks(this); + } +} diff --git a/Mage.Sets/src/mage/sets/fifthedition/AshnodsAltar.java b/Mage.Sets/src/mage/sets/fifthedition/AshnodsAltar.java index 2321a43e03b..79916d6b85a 100644 --- a/Mage.Sets/src/mage/sets/fifthedition/AshnodsAltar.java +++ b/Mage.Sets/src/mage/sets/fifthedition/AshnodsAltar.java @@ -48,7 +48,7 @@ public class AshnodsAltar extends CardImpl { super(ownerId, 349, "Ashnod's Altar", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); this.expansionSetCode = "5ED"; - // Sacrifice a creature: Add {2} to your mana pool. + // Sacrifice a creature: Add {C}{C} to your mana pool. SacrificeTargetCost cost = new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,new FilterControlledCreaturePermanent("a creature"), true)); this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), cost)); } diff --git a/Mage.Sets/src/mage/sets/fifthedition/UrzasMine.java b/Mage.Sets/src/mage/sets/fifthedition/UrzasMine.java index 7f00f1cc6ee..aaae717d06d 100644 --- a/Mage.Sets/src/mage/sets/fifthedition/UrzasMine.java +++ b/Mage.Sets/src/mage/sets/fifthedition/UrzasMine.java @@ -47,9 +47,9 @@ public class UrzasMine extends CardImpl { this.subtype.add("Mine"); this.expansionSetCode = "5ED"; - // {T}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead. + // {T}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead. Ability urzaManaAbility = new DynamicManaAbility(Mana.ColorlessMana(1), new UrzaTerrainValue(2), - "Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead"); + "Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead"); this.addAbility(urzaManaAbility); } diff --git a/Mage.Sets/src/mage/sets/fifthedition/UrzasPowerPlant.java b/Mage.Sets/src/mage/sets/fifthedition/UrzasPowerPlant.java index 38d6113fd9f..583c2c28e80 100644 --- a/Mage.Sets/src/mage/sets/fifthedition/UrzasPowerPlant.java +++ b/Mage.Sets/src/mage/sets/fifthedition/UrzasPowerPlant.java @@ -47,9 +47,9 @@ public class UrzasPowerPlant extends CardImpl { this.subtype.add("Power-Plant"); this.expansionSetCode = "5ED"; - // {T}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead. + // {T}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead. Ability urzaManaAbility = new DynamicManaAbility(Mana.ColorlessMana(1), new UrzaTerrainValue(2), - "Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead"); + "Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead"); this.addAbility(urzaManaAbility); } diff --git a/Mage.Sets/src/mage/sets/fifthedition/UrzasTower.java b/Mage.Sets/src/mage/sets/fifthedition/UrzasTower.java index ef6d3628ff7..3bd330dd54c 100644 --- a/Mage.Sets/src/mage/sets/fifthedition/UrzasTower.java +++ b/Mage.Sets/src/mage/sets/fifthedition/UrzasTower.java @@ -47,9 +47,9 @@ public class UrzasTower extends CardImpl { this.subtype.add("Tower"); this.expansionSetCode = "5ED"; - // {T}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead. + // {T}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead. Ability urzaManaAbility = new DynamicManaAbility(Mana.ColorlessMana(1), new UrzaTerrainValue(3), - "Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead"); + "Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead"); this.addAbility(urzaManaAbility); } diff --git a/Mage.Sets/src/mage/sets/fourthedition/StripMine.java b/Mage.Sets/src/mage/sets/fourthedition/StripMine.java index 9e20b2b2908..aa6932565e9 100644 --- a/Mage.Sets/src/mage/sets/fourthedition/StripMine.java +++ b/Mage.Sets/src/mage/sets/fourthedition/StripMine.java @@ -1,72 +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.fourthedition; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.target.common.TargetLandPermanent; - -/** - * - * @author jeffwadsworth - */ -public class StripMine extends CardImpl { - - public StripMine(UUID ownerId) { - super(ownerId, 189, "Strip Mine", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "4ED"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}, Sacrifice Strip Mine: Destroy target land. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetLandPermanent()); - this.addAbility(ability); - } - - public StripMine(final StripMine card) { - super(card); - } - - @Override - public StripMine copy() { - return new StripMine(this); - } -} +/* + * 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.fourthedition; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author jeffwadsworth + */ +public class StripMine extends CardImpl { + + public StripMine(UUID ownerId) { + super(ownerId, 189, "Strip Mine", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "4ED"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}, Sacrifice Strip Mine: Destroy target land. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetLandPermanent()); + this.addAbility(ability); + } + + public StripMine(final StripMine card) { + super(card); + } + + @Override + public StripMine copy() { + return new StripMine(this); + } +} diff --git a/Mage.Sets/src/mage/sets/futuresight/GroveOfTheBurnwillows.java b/Mage.Sets/src/mage/sets/futuresight/GroveOfTheBurnwillows.java index 550967d47b7..eafeb93324f 100644 --- a/Mage.Sets/src/mage/sets/futuresight/GroveOfTheBurnwillows.java +++ b/Mage.Sets/src/mage/sets/futuresight/GroveOfTheBurnwillows.java @@ -51,7 +51,7 @@ public class GroveOfTheBurnwillows extends CardImpl { super(ownerId, 176, "Grove of the Burnwillows", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "FUT"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add {R} or {G} to your mana pool. Each opponent gains 1 life. Ability RedManaAbility = new RedManaAbility(); diff --git a/Mage.Sets/src/mage/sets/futuresight/NimbusMaze.java b/Mage.Sets/src/mage/sets/futuresight/NimbusMaze.java index e6754694f8a..c842eee5936 100644 --- a/Mage.Sets/src/mage/sets/futuresight/NimbusMaze.java +++ b/Mage.Sets/src/mage/sets/futuresight/NimbusMaze.java @@ -63,7 +63,7 @@ public class NimbusMaze extends CardImpl { super(ownerId, 178, "Nimbus Maze", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "FUT"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add {W} to your mana pool. Activate this ability only if you control an Island. this.addAbility(new ActivateIfConditionManaAbility( diff --git a/Mage.Sets/src/mage/sets/homelands/AnHavvaTownship.java b/Mage.Sets/src/mage/sets/homelands/AnHavvaTownship.java index 8553de7e730..a5c83594441 100644 --- a/Mage.Sets/src/mage/sets/homelands/AnHavvaTownship.java +++ b/Mage.Sets/src/mage/sets/homelands/AnHavvaTownship.java @@ -49,7 +49,7 @@ public class AnHavvaTownship extends CardImpl { super(ownerId, 136, "An-Havva Township", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "HML"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Add {G} to your mana pool. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(1), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/sets/homelands/AysenAbbey.java b/Mage.Sets/src/mage/sets/homelands/AysenAbbey.java index 4493e419578..79f61ebfbb2 100644 --- a/Mage.Sets/src/mage/sets/homelands/AysenAbbey.java +++ b/Mage.Sets/src/mage/sets/homelands/AysenAbbey.java @@ -49,7 +49,7 @@ public class AysenAbbey extends CardImpl { super(ownerId, 137, "Aysen Abbey", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "HML"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Add {W} to your mana pool. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(1), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/sets/homelands/CastleSengir.java b/Mage.Sets/src/mage/sets/homelands/CastleSengir.java index 60ea0d23c19..2d9f1157a0a 100644 --- a/Mage.Sets/src/mage/sets/homelands/CastleSengir.java +++ b/Mage.Sets/src/mage/sets/homelands/CastleSengir.java @@ -49,7 +49,7 @@ public class CastleSengir extends CardImpl { super(ownerId, 138, "Castle Sengir", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "HML"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Add {B} to your mana pool. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(1), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/sets/homelands/CoralReef.java b/Mage.Sets/src/mage/sets/homelands/CoralReef.java new file mode 100644 index 00000000000..511cbe43c9f --- /dev/null +++ b/Mage.Sets/src/mage/sets/homelands/CoralReef.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.homelands; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapTargetCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.effects.common.counter.AddCountersTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetControlledPermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class CoralReef extends CardImpl { + + private static final FilterControlledPermanent islandFilter = new FilterControlledPermanent("an Island"); + private static final FilterControlledCreaturePermanent untappedBlueCreatureFilter = new FilterControlledCreaturePermanent("an untapped blue creature you control"); + + static { + islandFilter.add(new SubtypePredicate("Island")); + untappedBlueCreatureFilter.add(Predicates.not(new TappedPredicate())); + untappedBlueCreatureFilter.add(new ColorPredicate(ObjectColor.BLUE)); + } + + public CoralReef(UUID ownerId) { + super(ownerId, 29, "Coral Reef", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{U}{U}"); + this.expansionSetCode = "HML"; + + // Coral Reef enters the battlefield with four polyp counters on it. + Effect effect = new AddCountersSourceEffect(CounterType.POLYP.createInstance(4)); + effect.setText("with four polyp counters on it"); + this.addAbility(new EntersBattlefieldAbility(effect)); + + // Sacrifice an Island: Put two polyp counters on Coral Reef. + effect = new AddCountersSourceEffect(CounterType.POLYP.createInstance(2), true); + effect.setText("Put two polyp counters on {this}"); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, + new SacrificeTargetCost(new TargetControlledPermanent(islandFilter)))); + + // {U}, Tap an untapped blue creature you control, Remove a polyp counter from Coral Reef: Put a +0/+1 counter on target creature. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.P0P1.createInstance()), new ManaCostsImpl("{U}")); + ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(untappedBlueCreatureFilter))); + ability.addCost(new RemoveCountersSourceCost(CounterType.POLYP.createInstance())); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public CoralReef(final CoralReef card) { + super(card); + } + + @Override + public CoralReef copy() { + return new CoralReef(this); + } +} diff --git a/Mage.Sets/src/mage/sets/homelands/KoskunKeep.java b/Mage.Sets/src/mage/sets/homelands/KoskunKeep.java index a05a608eae1..83db7c8e26d 100644 --- a/Mage.Sets/src/mage/sets/homelands/KoskunKeep.java +++ b/Mage.Sets/src/mage/sets/homelands/KoskunKeep.java @@ -49,7 +49,7 @@ public class KoskunKeep extends CardImpl { super(ownerId, 139, "Koskun Keep", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "HML"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Add {R} to your mana pool. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(1), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/sets/homelands/WizardsSchool.java b/Mage.Sets/src/mage/sets/homelands/WizardsSchool.java index 40029c7ef39..4b26608fdaa 100644 --- a/Mage.Sets/src/mage/sets/homelands/WizardsSchool.java +++ b/Mage.Sets/src/mage/sets/homelands/WizardsSchool.java @@ -49,7 +49,7 @@ public class WizardsSchool extends CardImpl { super(ownerId, 140, "Wizards' School", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "HML"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Add {U} to your mana pool. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(1), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/sets/iceage/SpoilsOfEvil.java b/Mage.Sets/src/mage/sets/iceage/SpoilsOfEvil.java index 731676b24a4..51899f80eb1 100644 --- a/Mage.Sets/src/mage/sets/iceage/SpoilsOfEvil.java +++ b/Mage.Sets/src/mage/sets/iceage/SpoilsOfEvil.java @@ -1,105 +1,105 @@ -/* - * 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.iceage; - -import java.util.UUID; -import mage.Mana; -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.filter.FilterCard; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.game.Game; -import mage.players.Player; -import mage.target.common.TargetOpponent; - -/** - * - * @author Blinke - */ -public class SpoilsOfEvil extends CardImpl { - private static final FilterCard filter = new FilterCard("artifact or creature card in target opponents graveyard"); - static { - filter.add(Predicates.or( - new CardTypePredicate(CardType.ARTIFACT), - new CardTypePredicate(CardType.CREATURE))); - } - - public SpoilsOfEvil(UUID ownerId) { - super(ownerId, 51, "Spoils of Evil", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{2}{B}"); - this.expansionSetCode = "ICE"; - - // For each artifact or creature card in target opponent's graveyard, add {1} to your mana pool and you gain 1 life. - this.getSpellAbility().addEffect(new SpoilsOfEvilEffect()); - this.getSpellAbility().addTarget(new TargetOpponent()); - } - - public SpoilsOfEvil(final SpoilsOfEvil card) { - super(card); - } - - @Override - public SpoilsOfEvil copy() { - return new SpoilsOfEvil(this); - } - - class SpoilsOfEvilEffect extends OneShotEffect { - - public SpoilsOfEvilEffect() { - super(Outcome.GainLife); - this.staticText = "For each artifact or creature card in target opponent's graveyard, add {1} to your mana pool and you gain 1 life."; - } - - public SpoilsOfEvilEffect(final SpoilsOfEvilEffect effect) { - super(effect); - } - - @Override - public SpoilsOfEvilEffect copy() { - return new SpoilsOfEvilEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player targetOpponent = game.getPlayer(targetPointer.getFirst(game, source)); - Player controller = game.getPlayer(source.getControllerId()); - - if(targetOpponent != null && controller != null) { - int cardCount = targetOpponent.getGraveyard().count(filter, game); - controller.gainLife(cardCount, game); - controller.getManaPool().addMana(Mana.ColorlessMana(cardCount), game, source); - return true; - } - return false; - } - } -} +/* + * 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.iceage; + +import java.util.UUID; +import mage.Mana; +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.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetOpponent; + +/** + * + * @author Blinke + */ +public class SpoilsOfEvil extends CardImpl { + private static final FilterCard filter = new FilterCard("artifact or creature card in target opponents graveyard"); + static { + filter.add(Predicates.or( + new CardTypePredicate(CardType.ARTIFACT), + new CardTypePredicate(CardType.CREATURE))); + } + + public SpoilsOfEvil(UUID ownerId) { + super(ownerId, 51, "Spoils of Evil", Rarity.RARE, new CardType[]{CardType.INSTANT}, "{2}{B}"); + this.expansionSetCode = "ICE"; + + // For each artifact or creature card in target opponent's graveyard, add {C} to your mana pool and you gain 1 life. + this.getSpellAbility().addEffect(new SpoilsOfEvilEffect()); + this.getSpellAbility().addTarget(new TargetOpponent()); + } + + public SpoilsOfEvil(final SpoilsOfEvil card) { + super(card); + } + + @Override + public SpoilsOfEvil copy() { + return new SpoilsOfEvil(this); + } + + class SpoilsOfEvilEffect extends OneShotEffect { + + public SpoilsOfEvilEffect() { + super(Outcome.GainLife); + this.staticText = "For each artifact or creature card in target opponent's graveyard, add {C} to your mana pool and you gain 1 life."; + } + + public SpoilsOfEvilEffect(final SpoilsOfEvilEffect effect) { + super(effect); + } + + @Override + public SpoilsOfEvilEffect copy() { + return new SpoilsOfEvilEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player targetOpponent = game.getPlayer(targetPointer.getFirst(game, source)); + Player controller = game.getPlayer(source.getControllerId()); + + if(targetOpponent != null && controller != null) { + int cardCount = targetOpponent.getGraveyard().count(filter, game); + controller.gainLife(cardCount, game); + controller.getManaPool().addMana(Mana.ColorlessMana(cardCount), game, source); + return true; + } + return false; + } + } +} diff --git a/Mage.Sets/src/mage/sets/iceage/Whiteout.java b/Mage.Sets/src/mage/sets/iceage/Whiteout.java new file mode 100644 index 00000000000..1486bb6a30c --- /dev/null +++ b/Mage.Sets/src/mage/sets/iceage/Whiteout.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.iceage; + +import java.util.UUID; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.effects.common.continuous.LoseAbilityAllEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SupertypePredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author fireshoes + */ +public class Whiteout extends CardImpl { + + private static final FilterControlledLandPermanent filter = new FilterControlledLandPermanent("a snow land"); + + static { + filter.add(new SupertypePredicate("Snow")); + } + + public Whiteout(UUID ownerId) { + super(ownerId, 163, "Whiteout", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{G}"); + this.expansionSetCode = "ICE"; + + // All creatures lose flying until end of turn. + this.getSpellAbility().addEffect(new LoseAbilityAllEffect(new FilterCreaturePermanent(), FlyingAbility.getInstance(), Duration.EndOfTurn)); + + // Sacrifice a snow land: Return Whiteout from your graveyard to your hand. + this.addAbility(new SimpleActivatedAbility(Zone.GRAVEYARD, new ReturnToHandSourceEffect(), new SacrificeTargetCost(new TargetControlledPermanent(filter)))); + } + + public Whiteout(final Whiteout card) { + super(card); + } + + @Override + public Whiteout copy() { + return new Whiteout(this); + } +} diff --git a/Mage.Sets/src/mage/sets/innistrad/DerangedAssistant.java b/Mage.Sets/src/mage/sets/innistrad/DerangedAssistant.java index 39db94f380a..aeae66e728e 100644 --- a/Mage.Sets/src/mage/sets/innistrad/DerangedAssistant.java +++ b/Mage.Sets/src/mage/sets/innistrad/DerangedAssistant.java @@ -1,68 +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.innistrad; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageInt; -import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author North - */ -public class DerangedAssistant extends CardImpl { - - public DerangedAssistant(UUID ownerId) { - super(ownerId, 52, "Deranged Assistant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); - this.expansionSetCode = "ISD"; - this.subtype.add("Human"); - this.subtype.add("Wizard"); - - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // {T}, Put the top card of your library into your graveyard: Add {1} to your mana pool. - ColorlessManaAbility ability = new ColorlessManaAbility(); - ability.addCost(new PutTopCardOfYourLibraryToGraveyardCost()); - ability.setUndoPossible(false); - this.addAbility(ability); - } - - public DerangedAssistant(final DerangedAssistant card) { - super(card); - } - - @Override - public DerangedAssistant copy() { - return new DerangedAssistant(this); - } -} +/* + * 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.innistrad; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.MageInt; +import mage.abilities.costs.common.PutTopCardOfYourLibraryToGraveyardCost; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author North + */ +public class DerangedAssistant extends CardImpl { + + public DerangedAssistant(UUID ownerId) { + super(ownerId, 52, "Deranged Assistant", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); + this.expansionSetCode = "ISD"; + this.subtype.add("Human"); + this.subtype.add("Wizard"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {T}, Put the top card of your library into your graveyard: Add {C} to your mana pool. + ColorlessManaAbility ability = new ColorlessManaAbility(); + ability.addCost(new PutTopCardOfYourLibraryToGraveyardCost()); + ability.setUndoPossible(false); + this.addAbility(ability); + } + + public DerangedAssistant(final DerangedAssistant card) { + super(card); + } + + @Override + public DerangedAssistant copy() { + return new DerangedAssistant(this); + } +} diff --git a/Mage.Sets/src/mage/sets/innistrad/GhostQuarter.java b/Mage.Sets/src/mage/sets/innistrad/GhostQuarter.java index 5d05bc28c57..cad64ff772c 100644 --- a/Mage.Sets/src/mage/sets/innistrad/GhostQuarter.java +++ b/Mage.Sets/src/mage/sets/innistrad/GhostQuarter.java @@ -58,7 +58,7 @@ public class GhostQuarter extends CardImpl { super(ownerId, 240, "Ghost Quarter", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ISD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library. SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/sets/innistrad/KessigWolfRun.java b/Mage.Sets/src/mage/sets/innistrad/KessigWolfRun.java index 6dfc7f87a19..c122622f971 100644 --- a/Mage.Sets/src/mage/sets/innistrad/KessigWolfRun.java +++ b/Mage.Sets/src/mage/sets/innistrad/KessigWolfRun.java @@ -1,77 +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.innistrad; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.dynamicvalue.common.ManacostVariableValue; -import mage.abilities.dynamicvalue.common.StaticValue; -import mage.abilities.effects.common.continuous.BoostTargetEffect; -import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; -import mage.abilities.keyword.TrampleAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.target.common.TargetCreaturePermanent; - -import java.util.UUID; -import mage.constants.Duration; -import mage.constants.Zone; - -/** - * @author nantuko - */ -public class KessigWolfRun extends CardImpl { - - public KessigWolfRun(UUID ownerId) { - super(ownerId, 243, "Kessig Wolf Run", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ISD"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{X}{R}{G}")); - ability.addCost(new TapSourceCost()); - ability.addEffect(new BoostTargetEffect(new ManacostVariableValue(), new StaticValue(0), Duration.EndOfTurn)); - ability.addTarget(new TargetCreaturePermanent()); - this.addAbility(ability); - } - - public KessigWolfRun(final KessigWolfRun card) { - super(card); - } - - @Override - public KessigWolfRun copy() { - return new KessigWolfRun(this); - } -} +/* + * 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.innistrad; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.dynamicvalue.common.StaticValue; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +import mage.abilities.effects.common.continuous.GainAbilityTargetEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; +import mage.constants.Duration; +import mage.constants.Zone; + +/** + * @author nantuko + */ +public class KessigWolfRun extends CardImpl { + + public KessigWolfRun(UUID ownerId) { + super(ownerId, 243, "Kessig Wolf Run", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ISD"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainAbilityTargetEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{X}{R}{G}")); + ability.addCost(new TapSourceCost()); + ability.addEffect(new BoostTargetEffect(new ManacostVariableValue(), new StaticValue(0), Duration.EndOfTurn)); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public KessigWolfRun(final KessigWolfRun card) { + super(card); + } + + @Override + public KessigWolfRun copy() { + return new KessigWolfRun(this); + } +} diff --git a/Mage.Sets/src/mage/sets/innistrad/MoorlandHaunt.java b/Mage.Sets/src/mage/sets/innistrad/MoorlandHaunt.java index 478a59c5a1f..22b26ca8a7b 100644 --- a/Mage.Sets/src/mage/sets/innistrad/MoorlandHaunt.java +++ b/Mage.Sets/src/mage/sets/innistrad/MoorlandHaunt.java @@ -1,76 +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.innistrad; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.ExileFromGraveCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.filter.common.FilterCreatureCard; -import mage.game.permanent.token.SpiritWhiteToken; -import mage.target.common.TargetCardInYourGraveyard; - -/** - * - * @author North - */ -public class MoorlandHaunt extends CardImpl { - - private static final FilterCreatureCard filter = new FilterCreatureCard("a creature card from your graveyard"); - - public MoorlandHaunt(UUID ownerId) { - super(ownerId, 244, "Moorland Haunt", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ISD"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {W}{U}, {tap}, Exile a creature card from your graveyard: Put a 1/1 white Spirit creature token with flying onto the battlefield. - SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new CreateTokenEffect(new SpiritWhiteToken()), - new ManaCostsImpl("{W}{U}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(filter))); - this.addAbility(ability); - } - - public MoorlandHaunt(final MoorlandHaunt card) { - super(card); - } - - @Override - public MoorlandHaunt copy() { - return new MoorlandHaunt(this); - } -} +/* + * 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.innistrad; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.ExileFromGraveCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterCreatureCard; +import mage.game.permanent.token.SpiritWhiteToken; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author North + */ +public class MoorlandHaunt extends CardImpl { + + private static final FilterCreatureCard filter = new FilterCreatureCard("a creature card from your graveyard"); + + public MoorlandHaunt(UUID ownerId) { + super(ownerId, 244, "Moorland Haunt", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ISD"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {W}{U}, {tap}, Exile a creature card from your graveyard: Put a 1/1 white Spirit creature token with flying onto the battlefield. + SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new CreateTokenEffect(new SpiritWhiteToken()), + new ManaCostsImpl("{W}{U}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new ExileFromGraveCost(new TargetCardInYourGraveyard(filter))); + this.addAbility(ability); + } + + public MoorlandHaunt(final MoorlandHaunt card) { + super(card); + } + + @Override + public MoorlandHaunt copy() { + return new MoorlandHaunt(this); + } +} diff --git a/Mage.Sets/src/mage/sets/innistrad/StensiaBloodhall.java b/Mage.Sets/src/mage/sets/innistrad/StensiaBloodhall.java index 94b072ce12a..e15ce10d8f5 100644 --- a/Mage.Sets/src/mage/sets/innistrad/StensiaBloodhall.java +++ b/Mage.Sets/src/mage/sets/innistrad/StensiaBloodhall.java @@ -1,71 +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.innistrad; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.target.TargetPlayer; - -import java.util.UUID; - -/** - * @author nantuko - */ -public class StensiaBloodhall extends CardImpl { - - public StensiaBloodhall(UUID ownerId) { - super(ownerId, 247, "Stensia Bloodhall", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ISD"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {3}{B}{R}, {T}: Stensia Bloodhall deals 2 damage to target player. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{3}{B}{R}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetPlayer()); - this.addAbility(ability); - } - - public StensiaBloodhall(final StensiaBloodhall card) { - super(card); - } - - @Override - public StensiaBloodhall copy() { - return new StensiaBloodhall(this); - } -} +/* + * 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.innistrad; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.target.TargetPlayer; + +import java.util.UUID; + +/** + * @author nantuko + */ +public class StensiaBloodhall extends CardImpl { + + public StensiaBloodhall(UUID ownerId) { + super(ownerId, 247, "Stensia Bloodhall", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ISD"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {3}{B}{R}, {T}: Stensia Bloodhall deals 2 damage to target player. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl("{3}{B}{R}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetPlayer()); + this.addAbility(ability); + } + + public StensiaBloodhall(final StensiaBloodhall card) { + super(card); + } + + @Override + public StensiaBloodhall copy() { + return new StensiaBloodhall(this); + } +} diff --git a/Mage.Sets/src/mage/sets/invasion/ArchaeologicalDig.java b/Mage.Sets/src/mage/sets/invasion/ArchaeologicalDig.java index 0b29e38acfa..e5ee5dc2001 100644 --- a/Mage.Sets/src/mage/sets/invasion/ArchaeologicalDig.java +++ b/Mage.Sets/src/mage/sets/invasion/ArchaeologicalDig.java @@ -47,7 +47,7 @@ public class ArchaeologicalDig extends CardImpl { super(ownerId, 320, "Archaeological Dig", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "INV"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}, Sacrifice Archaeological Dig: Add one mana of any color to your mana pool. Ability ability = new AnyColorManaAbility(new TapSourceCost()); diff --git a/Mage.Sets/src/mage/sets/invasion/KeldonNecropolis.java b/Mage.Sets/src/mage/sets/invasion/KeldonNecropolis.java index 027fde0dfcc..11274806a41 100644 --- a/Mage.Sets/src/mage/sets/invasion/KeldonNecropolis.java +++ b/Mage.Sets/src/mage/sets/invasion/KeldonNecropolis.java @@ -1,74 +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.invasion; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.target.common.TargetCreatureOrPlayer; - -/** - * - * @author Plopman - */ -public class KeldonNecropolis extends CardImpl { - - public KeldonNecropolis(UUID ownerId) { - super(ownerId, 325, "Keldon Necropolis", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "INV"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {4}{R}, {tap}, Sacrifice a creature: Keldon Necropolis deals 2 damage to target creature or player. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl(new ManaCostsImpl("{4}{R}"))); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetCreatureOrPlayer()); - this.addAbility(ability); - - } - - public KeldonNecropolis(final KeldonNecropolis card) { - super(card); - } - - @Override - public KeldonNecropolis copy() { - return new KeldonNecropolis(this); - } -} +/* + * 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.invasion; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetCreatureOrPlayer; + +/** + * + * @author Plopman + */ +public class KeldonNecropolis extends CardImpl { + + public KeldonNecropolis(UUID ownerId) { + super(ownerId, 325, "Keldon Necropolis", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "INV"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {4}{R}, {tap}, Sacrifice a creature: Keldon Necropolis deals 2 damage to target creature or player. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(2), new ManaCostsImpl(new ManaCostsImpl("{4}{R}"))); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCreatureOrPlayer()); + this.addAbility(ability); + + } + + public KeldonNecropolis(final KeldonNecropolis card) { + super(card); + } + + @Override + public KeldonNecropolis copy() { + return new KeldonNecropolis(this); + } +} diff --git a/Mage.Sets/src/mage/sets/invasion/SwayOfIllusion.java b/Mage.Sets/src/mage/sets/invasion/SwayOfIllusion.java new file mode 100644 index 00000000000..a9b74a53e78 --- /dev/null +++ b/Mage.Sets/src/mage/sets/invasion/SwayOfIllusion.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.invasion; + +import java.util.UUID; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.filter.common.FilterCreaturePermanent; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class SwayOfIllusion extends CardImpl { + + public SwayOfIllusion(UUID ownerId) { + super(ownerId, 77, "Sway of Illusion", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{U}"); + this.expansionSetCode = "INV"; + + // Any number of target creatures become the color of your choice until end of turn. + Effect effect = new BecomesColorTargetEffect(Duration.EndOfTurn); + effect.setText("Any number of target creatures become the color of your choice until end of turn"); + this.getSpellAbility().addEffect(effect); + this.getSpellAbility().addTarget(new TargetCreaturePermanent(0, Integer.MAX_VALUE, new FilterCreaturePermanent(), false)); + + // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + } + + public SwayOfIllusion(final SwayOfIllusion card) { + super(card); + } + + @Override + public SwayOfIllusion copy() { + return new SwayOfIllusion(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/invasion/TurfWound.java b/Mage.Sets/src/mage/sets/invasion/TurfWound.java new file mode 100644 index 00000000000..3645143c470 --- /dev/null +++ b/Mage.Sets/src/mage/sets/invasion/TurfWound.java @@ -0,0 +1,110 @@ +/* + * 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.invasion; + +import java.util.UUID; +import mage.MageObject; +import mage.abilities.Ability; +import mage.abilities.effects.ContinuousRuleModifyingEffectImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.target.TargetPlayer; + +/** + * + * @author fireshoes + */ +public class TurfWound extends CardImpl { + + public TurfWound(UUID ownerId) { + super(ownerId, 177, "Turf Wound", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{R}"); + this.expansionSetCode = "INV"; + + // Target player can't play land cards this turn. + this.getSpellAbility().addEffect(new TurfWoundEffect()); + this.getSpellAbility().addTarget(new TargetPlayer()); + + // Draw a card. + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1)); + } + + public TurfWound(final TurfWound card) { + super(card); + } + + @Override + public TurfWound copy() { + return new TurfWound(this); + } +} + +class TurfWoundEffect extends ContinuousRuleModifyingEffectImpl { + + public TurfWoundEffect() { + super(Duration.EndOfTurn, Outcome.Detriment); + staticText = "Target player can't play land cards this turn."; + } + + public TurfWoundEffect(final TurfWoundEffect effect) { + super(effect); + } + + @Override + public TurfWoundEffect copy() { + return new TurfWoundEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public String getInfoMessage(Ability source, GameEvent event, Game game) { + MageObject mageObject = game.getObject(source.getSourceId()); + if (mageObject != null) { + return "You can't play lands this turn (" + mageObject.getIdName() + ")."; + } + return null; + } + + @Override + public boolean applies(GameEvent event, Ability source, Game game) { + if (event.getType() == GameEvent.EventType.PLAY_LAND && event.getPlayerId().equals(source.getFirstTarget())) { + return true; + } + return false; + } + +} diff --git a/Mage.Sets/src/mage/sets/izzetvsgolgari/NivixAerieOfTheFiremind.java b/Mage.Sets/src/mage/sets/izzetvsgolgari/NivixAerieOfTheFiremind.java index ba37bcea266..006beb5e712 100644 --- a/Mage.Sets/src/mage/sets/izzetvsgolgari/NivixAerieOfTheFiremind.java +++ b/Mage.Sets/src/mage/sets/izzetvsgolgari/NivixAerieOfTheFiremind.java @@ -1,146 +1,146 @@ -/* - * 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.izzetvsgolgari; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.AsThoughEffectImpl; -import mage.abilities.effects.ContinuousEffect; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.Card; -import mage.cards.CardImpl; -import mage.constants.AsThoughEffectType; -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.players.Library; -import mage.players.Player; -import mage.target.targetpointer.FixedTarget; - -/** - * - * @author emerald000 - */ -public class NivixAerieOfTheFiremind extends CardImpl { - - public NivixAerieOfTheFiremind(UUID ownerId) { - super(ownerId, 36, "Nivix, Aerie of the Firemind", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "DDJ"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {2}{U}{R}, {tap}: Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NivixAerieOfTheFiremindEffect(), new ManaCostsImpl<>("{2}{U}{R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public NivixAerieOfTheFiremind(final NivixAerieOfTheFiremind card) { - super(card); - } - - @Override - public NivixAerieOfTheFiremind copy() { - return new NivixAerieOfTheFiremind(this); - } -} - -class NivixAerieOfTheFiremindEffect extends OneShotEffect { - - NivixAerieOfTheFiremindEffect() { - super(Outcome.Benefit); - this.staticText = "Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery"; - } - - NivixAerieOfTheFiremindEffect(final NivixAerieOfTheFiremindEffect effect) { - super(effect); - } - - @Override - public NivixAerieOfTheFiremindEffect copy() { - return new NivixAerieOfTheFiremindEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - Library library = controller.getLibrary(); - if (library.size() > 0) { - Card card = library.removeFromTop(game); - if (card != null - && controller.moveCardsToExile(card, source, game, true, source.getSourceId(), "Nivix, Aerie of the Firemind") - && (card.getCardType().contains(CardType.INSTANT) || card.getCardType().contains(CardType.SORCERY))) { - ContinuousEffect effect = new NivixAerieOfTheFiremindCanCastEffect(); - effect.setTargetPointer(new FixedTarget(card.getId())); - game.addEffect(effect, source); - } - } - return true; - } - return false; - } -} - -class NivixAerieOfTheFiremindCanCastEffect extends AsThoughEffectImpl { - - NivixAerieOfTheFiremindCanCastEffect() { - super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.UntilYourNextTurn, Outcome.Benefit); - staticText = "Until your next turn, you may cast that card"; - } - - NivixAerieOfTheFiremindCanCastEffect(final NivixAerieOfTheFiremindCanCastEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - return true; - } - - @Override - public NivixAerieOfTheFiremindCanCastEffect copy() { - return new NivixAerieOfTheFiremindCanCastEffect(this); - } - - @Override - public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) { - return this.getTargetPointer().getFirst(game, source) != null - && this.getTargetPointer().getFirst(game, source).equals(sourceId) - && source.getControllerId().equals(affectedControllerId) - && game.getState().getZone(sourceId).equals(Zone.EXILED); - } -} +/* + * 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.izzetvsgolgari; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.AsThoughEffectImpl; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.Card; +import mage.cards.CardImpl; +import mage.constants.AsThoughEffectType; +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.players.Library; +import mage.players.Player; +import mage.target.targetpointer.FixedTarget; + +/** + * + * @author emerald000 + */ +public class NivixAerieOfTheFiremind extends CardImpl { + + public NivixAerieOfTheFiremind(UUID ownerId) { + super(ownerId, 36, "Nivix, Aerie of the Firemind", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "DDJ"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {2}{U}{R}, {tap}: Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new NivixAerieOfTheFiremindEffect(), new ManaCostsImpl<>("{2}{U}{R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public NivixAerieOfTheFiremind(final NivixAerieOfTheFiremind card) { + super(card); + } + + @Override + public NivixAerieOfTheFiremind copy() { + return new NivixAerieOfTheFiremind(this); + } +} + +class NivixAerieOfTheFiremindEffect extends OneShotEffect { + + NivixAerieOfTheFiremindEffect() { + super(Outcome.Benefit); + this.staticText = "Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery"; + } + + NivixAerieOfTheFiremindEffect(final NivixAerieOfTheFiremindEffect effect) { + super(effect); + } + + @Override + public NivixAerieOfTheFiremindEffect copy() { + return new NivixAerieOfTheFiremindEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + Library library = controller.getLibrary(); + if (library.size() > 0) { + Card card = library.removeFromTop(game); + if (card != null + && controller.moveCardsToExile(card, source, game, true, source.getSourceId(), "Nivix, Aerie of the Firemind") + && (card.getCardType().contains(CardType.INSTANT) || card.getCardType().contains(CardType.SORCERY))) { + ContinuousEffect effect = new NivixAerieOfTheFiremindCanCastEffect(); + effect.setTargetPointer(new FixedTarget(card.getId())); + game.addEffect(effect, source); + } + } + return true; + } + return false; + } +} + +class NivixAerieOfTheFiremindCanCastEffect extends AsThoughEffectImpl { + + NivixAerieOfTheFiremindCanCastEffect() { + super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.UntilYourNextTurn, Outcome.Benefit); + staticText = "Until your next turn, you may cast that card"; + } + + NivixAerieOfTheFiremindCanCastEffect(final NivixAerieOfTheFiremindCanCastEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + return true; + } + + @Override + public NivixAerieOfTheFiremindCanCastEffect copy() { + return new NivixAerieOfTheFiremindCanCastEffect(this); + } + + @Override + public boolean applies(UUID sourceId, Ability source, UUID affectedControllerId, Game game) { + return this.getTargetPointer().getFirst(game, source) != null + && this.getTargetPointer().getFirst(game, source).equals(sourceId) + && source.getControllerId().equals(affectedControllerId) + && game.getState().getZone(sourceId).equals(Zone.EXILED); + } +} diff --git a/Mage.Sets/src/mage/sets/judgment/RiftstonePortal.java b/Mage.Sets/src/mage/sets/judgment/RiftstonePortal.java index 34e77f78dfb..6a45ec80716 100644 --- a/Mage.Sets/src/mage/sets/judgment/RiftstonePortal.java +++ b/Mage.Sets/src/mage/sets/judgment/RiftstonePortal.java @@ -1,78 +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.judgment; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.effects.ContinuousEffect; -import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.GreenManaAbility; -import mage.abilities.mana.WhiteManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledLandPermanent; - -/** - * - * @author emerald000 - */ -public class RiftstonePortal extends CardImpl { - - public RiftstonePortal(UUID ownerId) { - super(ownerId, 143, "Riftstone Portal", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "JUD"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // As long as Riftstone Portal is in your graveyard, lands you control have "{T}: Add {G} or {W} to your mana pool." - ContinuousEffect effect = new GainAbilityControlledEffect(new GreenManaAbility(), - Duration.WhileOnBattlefield, new FilterControlledLandPermanent()); - effect.setText("As long as Riftstone Portal is in your graveyard, lands you control have \"{T}: Add {G} or {W} to your mana pool.\""); - Ability ability = new SimpleStaticAbility(Zone.GRAVEYARD, effect); - effect = new GainAbilityControlledEffect(new WhiteManaAbility(), - Duration.WhileOnBattlefield, new FilterControlledLandPermanent()); - effect.setText(""); - ability.addEffect(effect); - this.addAbility(ability); - } - - public RiftstonePortal(final RiftstonePortal card) { - super(card); - } - - @Override - public RiftstonePortal copy() { - return new RiftstonePortal(this); - } -} +/* + * 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.judgment; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.ContinuousEffect; +import mage.abilities.effects.common.continuous.GainAbilityControlledEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledLandPermanent; + +/** + * + * @author emerald000 + */ +public class RiftstonePortal extends CardImpl { + + public RiftstonePortal(UUID ownerId) { + super(ownerId, 143, "Riftstone Portal", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "JUD"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // As long as Riftstone Portal is in your graveyard, lands you control have "{T}: Add {G} or {W} to your mana pool." + ContinuousEffect effect = new GainAbilityControlledEffect(new GreenManaAbility(), + Duration.WhileOnBattlefield, new FilterControlledLandPermanent()); + effect.setText("As long as Riftstone Portal is in your graveyard, lands you control have \"{T}: Add {G} or {W} to your mana pool.\""); + Ability ability = new SimpleStaticAbility(Zone.GRAVEYARD, effect); + effect = new GainAbilityControlledEffect(new WhiteManaAbility(), + Duration.WhileOnBattlefield, new FilterControlledLandPermanent()); + effect.setText(""); + ability.addEffect(effect); + this.addAbility(ability); + } + + public RiftstonePortal(final RiftstonePortal card) { + super(card); + } + + @Override + public RiftstonePortal copy() { + return new RiftstonePortal(this); + } +} diff --git a/Mage.Sets/src/mage/sets/legends/AlchorsTomb.java b/Mage.Sets/src/mage/sets/legends/AlchorsTomb.java new file mode 100644 index 00000000000..3556caf0ee5 --- /dev/null +++ b/Mage.Sets/src/mage/sets/legends/AlchorsTomb.java @@ -0,0 +1,52 @@ +/* + * 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.legends; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class AlchorsTomb extends mage.sets.masterseditioniv.AlchorsTomb { + + public AlchorsTomb(UUID ownerId) { + super(ownerId); + this.cardNumber = 214; + this.expansionSetCode = "LEG"; + } + + public AlchorsTomb(final AlchorsTomb card) { + super(card); + } + + @Override + public AlchorsTomb copy() { + return new AlchorsTomb(this); + } +} diff --git a/Mage.Sets/src/mage/sets/legends/Hellfire.java b/Mage.Sets/src/mage/sets/legends/Hellfire.java new file mode 100644 index 00000000000..c3628791fba --- /dev/null +++ b/Mage.Sets/src/mage/sets/legends/Hellfire.java @@ -0,0 +1,52 @@ +/* + * 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.legends; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class Hellfire extends mage.sets.masterseditioniii.Hellfire { + + public Hellfire(UUID ownerId) { + super(ownerId); + this.cardNumber = 18; + this.expansionSetCode = "LEG"; + } + + public Hellfire(final Hellfire card) { + super(card); + } + + @Override + public Hellfire copy() { + return new Hellfire(this); + } +} diff --git a/Mage.Sets/src/mage/sets/legends/SunastianFalconer.java b/Mage.Sets/src/mage/sets/legends/SunastianFalconer.java index 3bd67e12fb0..09876490849 100644 --- a/Mage.Sets/src/mage/sets/legends/SunastianFalconer.java +++ b/Mage.Sets/src/mage/sets/legends/SunastianFalconer.java @@ -52,7 +52,7 @@ public class SunastianFalconer extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); - // {tap}: Add {2} to your mana pool. + // {tap}: Add {C}{C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); } diff --git a/Mage.Sets/src/mage/sets/legions/WarbreakTrumpeter.java b/Mage.Sets/src/mage/sets/legions/WarbreakTrumpeter.java new file mode 100644 index 00000000000..457bff62954 --- /dev/null +++ b/Mage.Sets/src/mage/sets/legions/WarbreakTrumpeter.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.legions; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.TurnedFaceUpSourceTriggeredAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.MorphManacostVariableValue; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.MorphAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.permanent.token.GoblinToken; + +/** + * + * @author fireshoes + */ +public class WarbreakTrumpeter extends CardImpl { + + public WarbreakTrumpeter(UUID ownerId) { + super(ownerId, 116, "Warbreak Trumpeter", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{R}"); + this.expansionSetCode = "LGN"; + this.subtype.add("Goblin"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // Morph {X}{X}{R} + this.addAbility(new MorphAbility(this, new ManaCostsImpl("{X}{X}{R}"))); + + // When Warbreak Trumpeter is turned face up, put X 1/1 red Goblin creature tokens onto the battlefield. + DynamicValue morphX = new MorphManacostVariableValue(); + this.addAbility(new TurnedFaceUpSourceTriggeredAbility(new CreateTokenEffect(new GoblinToken(), morphX))); + } + + public WarbreakTrumpeter(final WarbreakTrumpeter card) { + super(card); + } + + @Override + public WarbreakTrumpeter copy() { + return new WarbreakTrumpeter(this); + } +} diff --git a/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java b/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java index 9a2b6da3859..2d0f72a8e50 100644 --- a/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java +++ b/Mage.Sets/src/mage/sets/limitedalpha/BasaltMonolith.java @@ -1,70 +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.limitedalpha; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; -import mage.abilities.effects.common.UntapSourceEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class BasaltMonolith extends CardImpl { - - public BasaltMonolith(UUID ownerId) { - super(ownerId, 231, "Basalt Monolith", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.expansionSetCode = "LEA"; - - // Basalt Monolith doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); - // {tap}: Add {3} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0,0,0,0,0,3,0),new TapSourceCost())); - // {3}: Untap Basalt Monolith. - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new GenericManaCost(3))); - } - - public BasaltMonolith(final BasaltMonolith card) { - super(card); - } - - @Override - public BasaltMonolith copy() { - return new BasaltMonolith(this); - } -} +/* + * 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.limitedalpha; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; +import mage.abilities.effects.common.UntapSourceEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class BasaltMonolith extends CardImpl { + + public BasaltMonolith(UUID ownerId) { + super(ownerId, 231, "Basalt Monolith", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "LEA"; + + // Basalt Monolith doesn't untap during your untap step. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); + // {tap}: Add {C}{C}{C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0,0,0,0,0,3,0),new TapSourceCost())); + // {3}: Untap Basalt Monolith. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new GenericManaCost(3))); + } + + public BasaltMonolith(final BasaltMonolith card) { + super(card); + } + + @Override + public BasaltMonolith copy() { + return new BasaltMonolith(this); + } +} diff --git a/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java b/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java index be0e1a38f9f..ab2faa6dfc0 100644 --- a/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java +++ b/Mage.Sets/src/mage/sets/limitedalpha/ManaVault.java @@ -1,85 +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.limitedalpha; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.common.BeginningOfDrawTriggeredAbility; -import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.common.SimpleStaticAbility; -import mage.abilities.condition.common.SourceTappedCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.decorator.ConditionalTriggeredAbility; -import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.effects.common.DoIfCostPaid; -import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; -import mage.abilities.effects.common.UntapSourceEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.TargetController; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class ManaVault extends CardImpl { - - public ManaVault(UUID ownerId) { - super(ownerId, 259, "Mana Vault", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{1}"); - this.expansionSetCode = "LEA"; - - // Mana Vault doesn't untap during your untap step. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); - // At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault. - this.addAbility(new BeginningOfUpkeepTriggeredAbility( - Zone.BATTLEFIELD, - new DoIfCostPaid(new UntapSourceEffect(), new GenericManaCost(4), "Pay {4} to untap {this}?"), - TargetController.YOU, - false)); - // At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you. - this.addAbility(new ConditionalTriggeredAbility( - new BeginningOfDrawTriggeredAbility(Zone.BATTLEFIELD, new DamageControllerEffect(1), TargetController.YOU, false), - SourceTappedCondition.getInstance(), - "At the beginning of your draw step, if {this} is tapped, it deals 1 damage to you.")); - // {tap}: Add {3} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost())); - } - - public ManaVault(final ManaVault card) { - super(card); - } - - @Override - public ManaVault copy() { - return new ManaVault(this); - } -} +/* + * 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.limitedalpha; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.common.BeginningOfDrawTriggeredAbility; +import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.SourceTappedCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.decorator.ConditionalTriggeredAbility; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.DontUntapInControllersUntapStepSourceEffect; +import mage.abilities.effects.common.UntapSourceEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class ManaVault extends CardImpl { + + public ManaVault(UUID ownerId) { + super(ownerId, 259, "Mana Vault", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{1}"); + this.expansionSetCode = "LEA"; + + // Mana Vault doesn't untap during your untap step. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); + // At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault. + this.addAbility(new BeginningOfUpkeepTriggeredAbility( + Zone.BATTLEFIELD, + new DoIfCostPaid(new UntapSourceEffect(), new GenericManaCost(4), "Pay {4} to untap {this}?"), + TargetController.YOU, + false)); + // At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you. + this.addAbility(new ConditionalTriggeredAbility( + new BeginningOfDrawTriggeredAbility(Zone.BATTLEFIELD, new DamageControllerEffect(1), TargetController.YOU, false), + SourceTappedCondition.getInstance(), + "At the beginning of your draw step, if {this} is tapped, it deals 1 damage to you.")); + // {tap}: Add {C}{C}{C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost())); + } + + public ManaVault(final ManaVault card) { + super(card); + } + + @Override + public ManaVault copy() { + return new ManaVault(this); + } +} diff --git a/Mage.Sets/src/mage/sets/lorwyn/ShimmeringGrotto.java b/Mage.Sets/src/mage/sets/lorwyn/ShimmeringGrotto.java index 9a4cbd2fb8a..94732fba68d 100644 --- a/Mage.Sets/src/mage/sets/lorwyn/ShimmeringGrotto.java +++ b/Mage.Sets/src/mage/sets/lorwyn/ShimmeringGrotto.java @@ -1,66 +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.lorwyn; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.mana.AnyColorManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -import java.util.UUID; - -/** - * - * @author Loki - */ -public class ShimmeringGrotto extends CardImpl { - - public ShimmeringGrotto(UUID ownerId) { - super(ownerId, 273, "Shimmering Grotto", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "LRW"; - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {tap}: Add one mana of any color to your mana pool. - Ability ability = new AnyColorManaAbility(new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public ShimmeringGrotto(final ShimmeringGrotto card) { - super(card); - } - - @Override - public ShimmeringGrotto copy() { - return new ShimmeringGrotto(this); - } -} +/* + * 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.lorwyn; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.mana.AnyColorManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +import java.util.UUID; + +/** + * + * @author Loki + */ +public class ShimmeringGrotto extends CardImpl { + + public ShimmeringGrotto(UUID ownerId) { + super(ownerId, 273, "Shimmering Grotto", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "LRW"; + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {tap}: Add one mana of any color to your mana pool. + Ability ability = new AnyColorManaAbility(new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public ShimmeringGrotto(final ShimmeringGrotto card) { + super(card); + } + + @Override + public ShimmeringGrotto copy() { + return new ShimmeringGrotto(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2013/CathedralOfWar.java b/Mage.Sets/src/mage/sets/magic2013/CathedralOfWar.java index f65fd4c6318..852a862f213 100644 --- a/Mage.Sets/src/mage/sets/magic2013/CathedralOfWar.java +++ b/Mage.Sets/src/mage/sets/magic2013/CathedralOfWar.java @@ -1,66 +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.magic2013; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.keyword.ExaltedAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author jeffwadsworth - */ -public class CathedralOfWar extends CardImpl { - - public CathedralOfWar(UUID ownerId) { - super(ownerId, 221, "Cathedral of War", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "M13"; - - // Cathedral of War enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - - // Exalted - this.addAbility(new ExaltedAbility()); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public CathedralOfWar(final CathedralOfWar card) { - super(card); - } - - @Override - public CathedralOfWar copy() { - return new CathedralOfWar(this); - } -} +/* + * 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.magic2013; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.keyword.ExaltedAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author jeffwadsworth + */ +public class CathedralOfWar extends CardImpl { + + public CathedralOfWar(UUID ownerId) { + super(ownerId, 221, "Cathedral of War", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "M13"; + + // Cathedral of War enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // Exalted + this.addAbility(new ExaltedAbility()); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public CathedralOfWar(final CathedralOfWar card) { + super(card); + } + + @Override + public CathedralOfWar copy() { + return new CathedralOfWar(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2013/HellionCrucible.java b/Mage.Sets/src/mage/sets/magic2013/HellionCrucible.java index 4f9f0ce463e..af447af6dc1 100644 --- a/Mage.Sets/src/mage/sets/magic2013/HellionCrucible.java +++ b/Mage.Sets/src/mage/sets/magic2013/HellionCrucible.java @@ -1,96 +1,96 @@ -/* - * 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.magic2013; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.RemoveCountersSourceCost; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.keyword.HasteAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.counters.CounterType; -import mage.game.permanent.token.Token; - -import java.util.UUID; - -/** - * - * @author jeffwadsworth - */ -public class HellionCrucible extends CardImpl { - - public HellionCrucible(UUID ownerId) { - super(ownerId, 226, "Hellion Crucible", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "M13"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}{R}, {tap}: Put a pressure counter on Hellion Crucible. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.PRESSURE.createInstance()), new ManaCostsImpl("{1}{R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - // {1}{R}, {tap}, Remove two pressure counters from Hellion Crucible and sacrifice it: Put a 4/4 red Hellion creature token with haste onto the battlefield. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HellionToken(), 1), new ManaCostsImpl("{1}{R}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new RemoveCountersSourceCost(CounterType.PRESSURE.createInstance(2))); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public HellionCrucible(final HellionCrucible card) { - super(card); - } - - @Override - public HellionCrucible copy() { - return new HellionCrucible(this); - } -} - -class HellionToken extends Token { - public HellionToken() { - super("Hellion", "4/4 red Hellion creature token with haste"); - cardType.add(CardType.CREATURE); - color.setRed(true); - subtype.add("Hellion"); - power = new MageInt(4); - toughness = new MageInt(4); - addAbility(HasteAbility.getInstance()); - } -} +/* + * 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.magic2013; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveCountersSourceCost; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.keyword.HasteAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.counters.CounterType; +import mage.game.permanent.token.Token; + +import java.util.UUID; + +/** + * + * @author jeffwadsworth + */ +public class HellionCrucible extends CardImpl { + + public HellionCrucible(UUID ownerId) { + super(ownerId, 226, "Hellion Crucible", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "M13"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}{R}, {tap}: Put a pressure counter on Hellion Crucible. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.PRESSURE.createInstance()), new ManaCostsImpl("{1}{R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + // {1}{R}, {tap}, Remove two pressure counters from Hellion Crucible and sacrifice it: Put a 4/4 red Hellion creature token with haste onto the battlefield. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new HellionToken(), 1), new ManaCostsImpl("{1}{R}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new RemoveCountersSourceCost(CounterType.PRESSURE.createInstance(2))); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public HellionCrucible(final HellionCrucible card) { + super(card); + } + + @Override + public HellionCrucible copy() { + return new HellionCrucible(this); + } +} + +class HellionToken extends Token { + public HellionToken() { + super("Hellion", "4/4 red Hellion creature token with haste"); + cardType.add(CardType.CREATURE); + color.setRed(true); + subtype.add("Hellion"); + power = new MageInt(4); + toughness = new MageInt(4); + addAbility(HasteAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2014/EncroachingWastes.java b/Mage.Sets/src/mage/sets/magic2014/EncroachingWastes.java index 72bc1b381e6..9290bbb25a8 100644 --- a/Mage.Sets/src/mage/sets/magic2014/EncroachingWastes.java +++ b/Mage.Sets/src/mage/sets/magic2014/EncroachingWastes.java @@ -1,74 +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.magic2014; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterLandPermanent; -import mage.target.common.TargetLandPermanent; - -/** - * - * @author LevelX2 - */ -public class EncroachingWastes extends CardImpl { - private static final FilterLandPermanent filter = new FilterLandPermanent("nonbasic land"); - - public EncroachingWastes(UUID ownerId) { - super(ownerId, 227, "Encroaching Wastes", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "M14"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {4}, {T}, Sacrifice Encroaching Wastes: Destroy target nonbasic land. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(4)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetLandPermanent(filter)); - this.addAbility(ability); - } - - public EncroachingWastes(final EncroachingWastes card) { - super(card); - } - - @Override - public EncroachingWastes copy() { - return new EncroachingWastes(this); - } -} +/* + * 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.magic2014; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterLandPermanent; +import mage.target.common.TargetLandPermanent; + +/** + * + * @author LevelX2 + */ +public class EncroachingWastes extends CardImpl { + private static final FilterLandPermanent filter = new FilterLandPermanent("nonbasic land"); + + public EncroachingWastes(UUID ownerId) { + super(ownerId, 227, "Encroaching Wastes", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "M14"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {4}, {T}, Sacrifice Encroaching Wastes: Destroy target nonbasic land. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(4)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetLandPermanent(filter)); + this.addAbility(ability); + } + + public EncroachingWastes(final EncroachingWastes card) { + super(card); + } + + @Override + public EncroachingWastes copy() { + return new EncroachingWastes(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2015/GeneratorServant.java b/Mage.Sets/src/mage/sets/magic2015/GeneratorServant.java index 898e79c6943..bdb59e5a188 100644 --- a/Mage.Sets/src/mage/sets/magic2015/GeneratorServant.java +++ b/Mage.Sets/src/mage/sets/magic2015/GeneratorServant.java @@ -70,12 +70,12 @@ public class GeneratorServant extends CardImpl { this.power = new MageInt(2); this.toughness = new MageInt(1); - // {T}, Sacrifice Generator Servant: Add {2} to your mana pool. If that mana is spent on a creature spell, it gains haste until end of turn. + // {T}, Sacrifice Generator Servant: Add {C}{C} to your mana pool. If that mana is spent on a creature spell, it gains haste until end of turn. Mana mana = Mana.ColorlessMana(2); mana.setFlag(true); // used to indicate this mana ability SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, mana, new TapSourceCost()); ability.addCost(new SacrificeSourceCost()); - ability.getEffects().get(0).setText("Add {2} to your mana pool. If that mana is spent on a creature spell, it gains haste until end of turn."); + ability.getEffects().get(0).setText("Add {C}{C} to your mana pool. If that mana is spent on a creature spell, it gains haste until end of turn."); this.addAbility(ability); this.addAbility(new SimpleStaticAbility(Zone.ALL, new GeneratorServantHasteEffect()), new GeneratorServantWatcher()); diff --git a/Mage.Sets/src/mage/sets/magic2015/RadiantFountain.java b/Mage.Sets/src/mage/sets/magic2015/RadiantFountain.java index 1c7d53b2f22..5981bd63c84 100644 --- a/Mage.Sets/src/mage/sets/magic2015/RadiantFountain.java +++ b/Mage.Sets/src/mage/sets/magic2015/RadiantFountain.java @@ -1,63 +1,63 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.magic2015; - -import java.util.UUID; -import mage.abilities.common.EntersBattlefieldTriggeredAbility; -import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; - -/** - * - * @author emerald000 - */ -public class RadiantFountain extends CardImpl { - - public RadiantFountain(UUID ownerId) { - super(ownerId, 245, "Radiant Fountain", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "M15"; - - // When Radiant Fountain enters the battlefield, you gain 2 life. - this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(2), false)); - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public RadiantFountain(final RadiantFountain card) { - super(card); - } - - @Override - public RadiantFountain copy() { - return new RadiantFountain(this); - } -} +/* + * 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.magic2015; + +import java.util.UUID; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author emerald000 + */ +public class RadiantFountain extends CardImpl { + + public RadiantFountain(UUID ownerId) { + super(ownerId, 245, "Radiant Fountain", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "M15"; + + // When Radiant Fountain enters the battlefield, you gain 2 life. + this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(2), false)); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public RadiantFountain(final RadiantFountain card) { + super(card); + } + + @Override + public RadiantFountain copy() { + return new RadiantFountain(this); + } +} diff --git a/Mage.Sets/src/mage/sets/magic2015/SliverHive.java b/Mage.Sets/src/mage/sets/magic2015/SliverHive.java index cfba0c94491..5ec2056da03 100644 --- a/Mage.Sets/src/mage/sets/magic2015/SliverHive.java +++ b/Mage.Sets/src/mage/sets/magic2015/SliverHive.java @@ -1,136 +1,136 @@ -/* - * 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.magic2015; - -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.decorator.ConditionalActivatedAbility; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.ConditionalAnyColorManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; -import mage.abilities.mana.conditional.CreatureCastManaCondition; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.FilterSpell; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.game.permanent.token.SliverToken; - -/** - * - * @author emerald000 - */ -public class SliverHive extends CardImpl { - - private static final FilterControlledPermanent filter = new FilterControlledPermanent("Sliver"); - private static final FilterSpell filterSpell = new FilterSpell("a Sliver spell"); - - static { - } - - static { - filter.add(new SubtypePredicate("Sliver")); - filterSpell.add(new SubtypePredicate("Sliver")); - } - - public SliverHive(UUID ownerId) { - super(ownerId, 247, "Sliver Hive", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "M15"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a Sliver spell. - this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new ConditionalSpellManaBuilder(filterSpell), true)); - - // {5}, {T}: Put a 1/1 colorless Sliver creature token onto the battlefield. Activate this ability only if you control a Sliver. - Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SliverToken()), new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter), - "{5}, {T}: Put a 1/1 colorless Sliver creature token onto the battlefield. Activate this ability only if you control a Sliver."); - ability.addCost(new GenericManaCost(5)); - this.addAbility(ability); - } - - public SliverHive(final SliverHive card) { - super(card); - } - - @Override - public SliverHive copy() { - return new SliverHive(this); - } -} - -class SliverHiveManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - this.mana.setFlag(true); // indicates that the mana is from second ability - return new SliverHiveConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to cast a Sliver spell."; - } -} - -class SliverHiveConditionalMana extends ConditionalMana { - - SliverHiveConditionalMana(Mana mana) { - super(mana); - staticText = "Spend this mana only to cast a Sliver spell."; - addCondition(new SliverHiveManaCondition()); - } -} - -class SliverHiveManaCondition extends CreatureCastManaCondition { - - @Override - public boolean apply(Game game, Ability source, UUID manaProducer) { - if (super.apply(game, source)) { - MageObject object = game.getObject(source.getSourceId()); - if (object.hasSubtype("Sliver")) { - return true; - } - } - return false; - } -} +/* + * 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.magic2015; + +import java.util.UUID; +import mage.ConditionalMana; +import mage.MageInt; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ConditionalAnyColorManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; +import mage.abilities.mana.conditional.CreatureCastManaCondition; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterSpell; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.permanent.token.SliverToken; + +/** + * + * @author emerald000 + */ +public class SliverHive extends CardImpl { + + private static final FilterControlledPermanent filter = new FilterControlledPermanent("Sliver"); + private static final FilterSpell filterSpell = new FilterSpell("a Sliver spell"); + + static { + } + + static { + filter.add(new SubtypePredicate("Sliver")); + filterSpell.add(new SubtypePredicate("Sliver")); + } + + public SliverHive(UUID ownerId) { + super(ownerId, 247, "Sliver Hive", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "M15"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a Sliver spell. + this.addAbility(new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new ConditionalSpellManaBuilder(filterSpell), true)); + + // {5}, {T}: Put a 1/1 colorless Sliver creature token onto the battlefield. Activate this ability only if you control a Sliver. + Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SliverToken()), new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter), + "{5}, {T}: Put a 1/1 colorless Sliver creature token onto the battlefield. Activate this ability only if you control a Sliver."); + ability.addCost(new GenericManaCost(5)); + this.addAbility(ability); + } + + public SliverHive(final SliverHive card) { + super(card); + } + + @Override + public SliverHive copy() { + return new SliverHive(this); + } +} + +class SliverHiveManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + this.mana.setFlag(true); // indicates that the mana is from second ability + return new SliverHiveConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to cast a Sliver spell."; + } +} + +class SliverHiveConditionalMana extends ConditionalMana { + + SliverHiveConditionalMana(Mana mana) { + super(mana); + staticText = "Spend this mana only to cast a Sliver spell."; + addCondition(new SliverHiveManaCondition()); + } +} + +class SliverHiveManaCondition extends CreatureCastManaCondition { + + @Override + public boolean apply(Game game, Ability source, UUID manaProducer) { + if (super.apply(game, source)) { + MageObject object = game.getObject(source.getSourceId()); + if (object.hasSubtype("Sliver")) { + return true; + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/magicorigins/FoundryOfTheConsuls.java b/Mage.Sets/src/mage/sets/magicorigins/FoundryOfTheConsuls.java index d6b8561812d..605011db26a 100644 --- a/Mage.Sets/src/mage/sets/magicorigins/FoundryOfTheConsuls.java +++ b/Mage.Sets/src/mage/sets/magicorigins/FoundryOfTheConsuls.java @@ -52,7 +52,7 @@ public class FoundryOfTheConsuls extends CardImpl { super(ownerId, 247, "Foundry of the Consuls", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ORI"; - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {5}, {T}, Sacrifice Foundry of the Consuls: Put two 1/1 colorless Thopter artifact creature tokens with flying onto the battlefield. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ThopterColorlessToken(), 2), diff --git a/Mage.Sets/src/mage/sets/magicorigins/MageRingNetwork.java b/Mage.Sets/src/mage/sets/magicorigins/MageRingNetwork.java index b62a9f2eacc..efab88d84d8 100644 --- a/Mage.Sets/src/mage/sets/magicorigins/MageRingNetwork.java +++ b/Mage.Sets/src/mage/sets/magicorigins/MageRingNetwork.java @@ -56,7 +56,7 @@ public class MageRingNetwork extends CardImpl { super(ownerId, 249, "Mage-Ring Network", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ORI"; - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {T}: Put a storage counter on Mage-Ring Network. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()), diff --git a/Mage.Sets/src/mage/sets/mastersedition/ApprenticeWizard.java b/Mage.Sets/src/mage/sets/mastersedition/ApprenticeWizard.java index 7269e5fe276..c08f6618fe2 100644 --- a/Mage.Sets/src/mage/sets/mastersedition/ApprenticeWizard.java +++ b/Mage.Sets/src/mage/sets/mastersedition/ApprenticeWizard.java @@ -53,7 +53,7 @@ public class ApprenticeWizard extends CardImpl { this.power = new MageInt(0); this.toughness = new MageInt(1); - // {U}, {tap}: Add {3} to your mana pool. + // {U}, {tap}: Add {C}{C}{C} to your mana pool. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new ManaCostsImpl("{U}")); ability.addCost(new TapSourceCost()); this.addAbility(ability); diff --git a/Mage.Sets/src/mage/sets/mastersedition/EaterOfTheDead.java b/Mage.Sets/src/mage/sets/mastersedition/EaterOfTheDead.java new file mode 100644 index 00000000000..bf4cdff95fb --- /dev/null +++ b/Mage.Sets/src/mage/sets/mastersedition/EaterOfTheDead.java @@ -0,0 +1,102 @@ +/* + * 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.mastersedition; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.OneShotEffect; +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.filter.common.FilterCreatureCard; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetCardInGraveyard; + +/** + * + * @author fireshoes + */ +public class EaterOfTheDead extends CardImpl { + + public EaterOfTheDead(UUID ownerId) { + super(ownerId, 67, "Eater of the Dead", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{B}"); + this.expansionSetCode = "MED"; + this.subtype.add("Horror"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // {0}: If Eater of the Dead is tapped, exile target creature card from a graveyard and untap Eater of the Dead. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new EaterOfTheDeadEffect(), new GenericManaCost(0)); + ability.addTarget(new TargetCardInGraveyard(new FilterCreatureCard())); + this.addAbility(ability); + } + + public EaterOfTheDead(final EaterOfTheDead card) { + super(card); + } + + @Override + public EaterOfTheDead copy() { + return new EaterOfTheDead(this); + } +} + +class EaterOfTheDeadEffect extends OneShotEffect { + EaterOfTheDeadEffect() { + super(Outcome.DestroyPermanent); + staticText = "If {this} is tapped, exile target creature card from a graveyard and untap {this}"; + } + + EaterOfTheDeadEffect(final EaterOfTheDeadEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent sourcePermanent = game.getPermanent(source.getSourceId()); + Card card = game.getCard(source.getFirstTarget()); + if (sourcePermanent != null && sourcePermanent.isTapped() && card != null) { + card.moveToExile(null, "Eater of the Dead", source.getSourceId(), game); + sourcePermanent.untap(game); + } + return false; + } + + @Override + public EaterOfTheDeadEffect copy() { + return new EaterOfTheDeadEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/masterseditionii/OrcGeneral.java b/Mage.Sets/src/mage/sets/masterseditionii/OrcGeneral.java new file mode 100644 index 00000000000..a764d465bfa --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditionii/OrcGeneral.java @@ -0,0 +1,52 @@ +/* + * 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.masterseditionii; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class OrcGeneral extends mage.sets.thedark.OrcGeneral { + + public OrcGeneral(UUID ownerId) { + super(ownerId); + this.cardNumber = 137; + this.expansionSetCode = "ME2"; + } + + public OrcGeneral(final OrcGeneral card) { + super(card); + } + + @Override + public OrcGeneral copy() { + return new OrcGeneral(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditionii/Whiteout.java b/Mage.Sets/src/mage/sets/masterseditionii/Whiteout.java new file mode 100644 index 00000000000..6881b855493 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditionii/Whiteout.java @@ -0,0 +1,54 @@ +/* + * 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.masterseditionii; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class Whiteout extends mage.sets.iceage.Whiteout { + + public Whiteout(UUID ownerId) { + super(ownerId); + this.cardNumber = 185; + this.expansionSetCode = "ME2"; + this.rarity = Rarity.COMMON; + } + + public Whiteout(final Whiteout card) { + super(card); + } + + @Override + public Whiteout copy() { + return new Whiteout(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditioniii/Hellfire.java b/Mage.Sets/src/mage/sets/masterseditioniii/Hellfire.java new file mode 100644 index 00000000000..4176c94a2cc --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditioniii/Hellfire.java @@ -0,0 +1,105 @@ +/* + * 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.masterseditioniii; + +import java.util.UUID; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.ColorPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class Hellfire extends CardImpl { + + public Hellfire(UUID ownerId) { + super(ownerId, 70, "Hellfire", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{2}{B}{B}{B}"); + this.expansionSetCode = "ME3"; + + // Destroy all nonblack creatures. Hellfire deals X plus 3 damage to you, where X is the number of creatures that died this way. + this.getSpellAbility().addEffect(new HellfireEffect()); + } + + public Hellfire(final Hellfire card) { + super(card); + } + + @Override + public Hellfire copy() { + return new Hellfire(this); + } +} + +class HellfireEffect extends OneShotEffect { + + public HellfireEffect() { + super(Outcome.DestroyPermanent); + this.staticText = "Destroy all nonblack creatures. {this} deals X plus 3 damage to you, where X is the number of creatures that died this way"; + } + + public HellfireEffect(final HellfireEffect effect) { + super(effect); + } + + @Override + public HellfireEffect copy() { + return new HellfireEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + int destroyedCreature = 0; + FilterCreaturePermanent filter = new FilterCreaturePermanent("all nonblack creatures"); + filter.add(Predicates.not(new ColorPredicate(ObjectColor.BLACK))); + for(Permanent creature: game.getState().getBattlefield().getActivePermanents(filter, controller.getId(), game)) { + if (creature.destroy(source.getSourceId(), game, false)) { + destroyedCreature++; + } + } + if (destroyedCreature > 0) { + new DamageControllerEffect(destroyedCreature + 3).apply(game, source); + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditioniv/AlchorsTomb.java b/Mage.Sets/src/mage/sets/masterseditioniv/AlchorsTomb.java new file mode 100644 index 00000000000..1a8c60423f9 --- /dev/null +++ b/Mage.Sets/src/mage/sets/masterseditioniv/AlchorsTomb.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.masterseditioniv; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.BecomesColorTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author fireshoes + */ +public class AlchorsTomb extends CardImpl { + + public AlchorsTomb(UUID ownerId) { + super(ownerId, 178, "Alchor's Tomb", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "ME4"; + + // {2}, {tap}: Target permanent you control becomes the color of your choice. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BecomesColorTargetEffect(Duration.WhileOnBattlefield), new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetControlledPermanent()); + this.addAbility(ability); + } + + public AlchorsTomb(final AlchorsTomb card) { + super(card); + } + + @Override + public AlchorsTomb copy() { + return new AlchorsTomb(this); + } +} diff --git a/Mage.Sets/src/mage/sets/masterseditioniv/ElephantGraveyard.java b/Mage.Sets/src/mage/sets/masterseditioniv/ElephantGraveyard.java index 74064359648..78e41f56747 100644 --- a/Mage.Sets/src/mage/sets/masterseditioniv/ElephantGraveyard.java +++ b/Mage.Sets/src/mage/sets/masterseditioniv/ElephantGraveyard.java @@ -52,7 +52,7 @@ public class ElephantGraveyard extends CardImpl { super(ownerId, 244, "Elephant Graveyard", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ME4"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Regenerate target Elephant. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/sets/masterseditioniv/SoldeviMachinist.java b/Mage.Sets/src/mage/sets/masterseditioniv/SoldeviMachinist.java index 6af888069af..ba2b128d299 100644 --- a/Mage.Sets/src/mage/sets/masterseditioniv/SoldeviMachinist.java +++ b/Mage.Sets/src/mage/sets/masterseditioniv/SoldeviMachinist.java @@ -1,115 +1,115 @@ -/* - * 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.masterseditioniv; - -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.condition.Condition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.ConditionalColorlessManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -import mage.abilities.mana.conditional.ManaCondition; -import mage.cards.CardImpl; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.Game; - -/** - * - * @author hanasu - */ -public class SoldeviMachinist extends CardImpl { - - public SoldeviMachinist(UUID ownerId) { - super(ownerId, 63, "Soldevi Machinist", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); - this.expansionSetCode = "ME4"; - this.subtype.add("Human"); - this.subtype.add("Wizard"); - this.subtype.add("Artificer"); - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // {tap}: Add {2} to your mana pool. Spend this mana only to activate abilities of artifacts. - this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new SoldeviMachinistManaBuilder())); - } - - public SoldeviMachinist(final SoldeviMachinist card) { - super(card); - } - - @Override - public SoldeviMachinist copy() { - return new SoldeviMachinist(this); - } -} - -class SoldeviMachinistManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - return new ArtifactAbilityConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to activate abilities of artifacts"; - } -} - -class ArtifactAbilityConditionalMana extends ConditionalMana { - - public ArtifactAbilityConditionalMana(Mana mana) { - super(mana); - staticText = "Spend this mana only to activate abilities of artifacts"; - addCondition(new ArtifactAbilityManaCondition()); - } -} - -class ArtifactAbilityManaCondition extends ManaCondition implements Condition { - - @Override - public boolean apply(Game game, Ability source) { - if (source != null && source.getAbilityType().equals(AbilityType.ACTIVATED)) { - MageObject object = game.getObject(source.getSourceId()); - if (object != null && object.getCardType().contains(CardType.ARTIFACT)) { - return true; - } - } - return false; - } - - @Override - public boolean apply(Game game, Ability source, UUID originalId) { - return apply(game, source); - } -} +/* + * 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.masterseditioniv; + +import java.util.UUID; +import mage.ConditionalMana; +import mage.MageInt; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.ConditionalColorlessManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +import mage.abilities.mana.conditional.ManaCondition; +import mage.cards.CardImpl; +import mage.constants.AbilityType; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.Game; + +/** + * + * @author hanasu + */ +public class SoldeviMachinist extends CardImpl { + + public SoldeviMachinist(UUID ownerId) { + super(ownerId, 63, "Soldevi Machinist", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); + this.expansionSetCode = "ME4"; + this.subtype.add("Human"); + this.subtype.add("Wizard"); + this.subtype.add("Artificer"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {tap}: Add {C}{C} to your mana pool. Spend this mana only to activate abilities of artifacts. + this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new SoldeviMachinistManaBuilder())); + } + + public SoldeviMachinist(final SoldeviMachinist card) { + super(card); + } + + @Override + public SoldeviMachinist copy() { + return new SoldeviMachinist(this); + } +} + +class SoldeviMachinistManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + return new ArtifactAbilityConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to activate abilities of artifacts"; + } +} + +class ArtifactAbilityConditionalMana extends ConditionalMana { + + public ArtifactAbilityConditionalMana(Mana mana) { + super(mana); + staticText = "Spend this mana only to activate abilities of artifacts"; + addCondition(new ArtifactAbilityManaCondition()); + } +} + +class ArtifactAbilityManaCondition extends ManaCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + if (source != null && source.getAbilityType().equals(AbilityType.ACTIVATED)) { + MageObject object = game.getObject(source.getSourceId()); + if (object != null && object.getCardType().contains(CardType.ARTIFACT)) { + return true; + } + } + return false; + } + + @Override + public boolean apply(Game game, Ability source, UUID originalId) { + return apply(game, source); + } +} diff --git a/Mage.Sets/src/mage/sets/mediainserts/Warmonger.java b/Mage.Sets/src/mage/sets/mediainserts/Warmonger.java new file mode 100644 index 00000000000..36df650df9a --- /dev/null +++ b/Mage.Sets/src/mage/sets/mediainserts/Warmonger.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.mediainserts; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DamageEverythingEffect; +import mage.abilities.effects.common.InfoEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AbilityPredicate; + +/** + * + * @author fireshoes + */ +public class Warmonger extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); + static { + filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); + } + + public Warmonger(UUID ownerId) { + super(ownerId, 12, "Warmonger", Rarity.SPECIAL, new CardType[]{CardType.CREATURE}, "{3}{R}"); + this.expansionSetCode = "MBP"; + this.subtype.add("Minotaur"); + this.subtype.add("Monger"); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // {2}: Warmonger deals 1 damage to each creature without flying and each player. Any player may activate this ability. + SimpleActivatedAbility ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageEverythingEffect(1, filter) , new GenericManaCost(2)); + ability.setMayActivate(TargetController.ANY); + ability.addEffect(new InfoEffect("Any player may activate this ability")); + this.addAbility(ability); + } + + public Warmonger(final Warmonger card) { + super(card); + } + + @Override + public Warmonger copy() { + return new Warmonger(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/DustBowl.java b/Mage.Sets/src/mage/sets/mercadianmasques/DustBowl.java index 0b16698ed6e..445e6eac289 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/DustBowl.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/DustBowl.java @@ -1,78 +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.mercadianmasques; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.DestroyTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.FilterPermanent; -import mage.filter.common.FilterControlledLandPermanent; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.target.Target; -import mage.target.common.TargetControlledPermanent; -import mage.target.common.TargetNonBasicLandPermanent; - -/** - * - * @author LevelX2 - */ -public class DustBowl extends CardImpl { - - public DustBowl(UUID ownerId) { - super(ownerId, 316, "Dust Bowl", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "MMQ"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {3}, {tap}, Sacrifice a land: Destroy target nonbasic land. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(3)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land")))); - Target target = new TargetNonBasicLandPermanent(); - ability.addTarget(target); - this.addAbility(ability); - } - - public DustBowl(final DustBowl card) { - super(card); - } - - @Override - public DustBowl copy() { - return new DustBowl(this); - } -} +/* + * 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.mercadianmasques; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledLandPermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.target.Target; +import mage.target.common.TargetControlledPermanent; +import mage.target.common.TargetNonBasicLandPermanent; + +/** + * + * @author LevelX2 + */ +public class DustBowl extends CardImpl { + + public DustBowl(UUID ownerId) { + super(ownerId, 316, "Dust Bowl", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "MMQ"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {3}, {tap}, Sacrifice a land: Destroy target nonbasic land. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new GenericManaCost(3)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(new FilterControlledLandPermanent("a land")))); + Target target = new TargetNonBasicLandPermanent(); + ability.addTarget(target); + this.addAbility(ability); + } + + public DustBowl(final DustBowl card) { + super(card); + } + + @Override + public DustBowl copy() { + return new DustBowl(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/HengeOfRamos.java b/Mage.Sets/src/mage/sets/mercadianmasques/HengeOfRamos.java index fa3fe67ba7f..af7a4909698 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/HengeOfRamos.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/HengeOfRamos.java @@ -47,7 +47,7 @@ public class HengeOfRamos extends CardImpl { super(ownerId, 318, "Henge of Ramos", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "MMQ"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}, {tap}: Add one mana of any color to your mana pool. Ability ability = new AnyColorManaAbility(new ManaCostsImpl<>("{2}")); diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/HighMarket.java b/Mage.Sets/src/mage/sets/mercadianmasques/HighMarket.java index a43cf187fa9..ad7b925ee3a 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/HighMarket.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/HighMarket.java @@ -50,7 +50,7 @@ public class HighMarket extends CardImpl { super(ownerId, 320, "High Market", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "MMQ"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}, Sacrifice a creature: You gain 1 life. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/RishadanPort.java b/Mage.Sets/src/mage/sets/mercadianmasques/RishadanPort.java index 8632c663115..c6ff1826edd 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/RishadanPort.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/RishadanPort.java @@ -51,7 +51,7 @@ public class RishadanPort extends CardImpl { super(ownerId, 324, "Rishadan Port", Rarity.RARE, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "MMQ"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Tap target land. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new GenericManaCost(1)); diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/TowerOfTheMagistrate.java b/Mage.Sets/src/mage/sets/mercadianmasques/TowerOfTheMagistrate.java index dbcf1c4df77..4b9160b5178 100644 --- a/Mage.Sets/src/mage/sets/mercadianmasques/TowerOfTheMagistrate.java +++ b/Mage.Sets/src/mage/sets/mercadianmasques/TowerOfTheMagistrate.java @@ -1,73 +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.mercadianmasques; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.continuous.GainProtectionFromTypeTargetEffect; -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.filter.common.FilterArtifactCard; -import mage.target.common.TargetCreaturePermanent; - -/** - * - * @author emerald000 - */ -public class TowerOfTheMagistrate extends CardImpl { - - public TowerOfTheMagistrate(UUID ownerId) { - super(ownerId, 330, "Tower of the Magistrate", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "MMQ"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}, {tap}: Target creature gains protection from artifacts until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainProtectionFromTypeTargetEffect(Duration.EndOfTurn, new FilterArtifactCard("artifacts")), new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCreaturePermanent()); - this.addAbility(ability); - } - - public TowerOfTheMagistrate(final TowerOfTheMagistrate card) { - super(card); - } - - @Override - public TowerOfTheMagistrate copy() { - return new TowerOfTheMagistrate(this); - } -} +/* + * 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.mercadianmasques; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.continuous.GainProtectionFromTypeTargetEffect; +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.filter.common.FilterArtifactCard; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author emerald000 + */ +public class TowerOfTheMagistrate extends CardImpl { + + public TowerOfTheMagistrate(UUID ownerId) { + super(ownerId, 330, "Tower of the Magistrate", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "MMQ"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}, {tap}: Target creature gains protection from artifacts until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainProtectionFromTypeTargetEffect(Duration.EndOfTurn, new FilterArtifactCard("artifacts")), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public TowerOfTheMagistrate(final TowerOfTheMagistrate card) { + super(card); + } + + @Override + public TowerOfTheMagistrate copy() { + return new TowerOfTheMagistrate(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mercadianmasques/Warmonger.java b/Mage.Sets/src/mage/sets/mercadianmasques/Warmonger.java new file mode 100644 index 00000000000..2353def5a0c --- /dev/null +++ b/Mage.Sets/src/mage/sets/mercadianmasques/Warmonger.java @@ -0,0 +1,54 @@ +/* + * 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.mercadianmasques; + +import java.util.UUID; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class Warmonger extends mage.sets.mediainserts.Warmonger { + + public Warmonger(UUID ownerId) { + super(ownerId); + this.cardNumber = 225; + this.expansionSetCode = "MMQ"; + this.rarity = Rarity.UNCOMMON; + } + + public Warmonger(final Warmonger card) { + super(card); + } + + @Override + public Warmonger copy() { + return new Warmonger(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirage/CrystalVein.java b/Mage.Sets/src/mage/sets/mirage/CrystalVein.java index 828e586ba5a..bbde0ab8896 100644 --- a/Mage.Sets/src/mage/sets/mirage/CrystalVein.java +++ b/Mage.Sets/src/mage/sets/mirage/CrystalVein.java @@ -1,67 +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.mirage; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class CrystalVein extends CardImpl { - - public CrystalVein(UUID ownerId) { - super(ownerId, 290, "Crystal Vein", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "MIR"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}, Sacrifice Crystal Vein: Add {2} to your mana pool. - SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public CrystalVein(final CrystalVein card) { - super(card); - } - - @Override - public CrystalVein copy() { - return new CrystalVein(this); - } -} +/* + * 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.mirage; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class CrystalVein extends CardImpl { + + public CrystalVein(UUID ownerId) { + super(ownerId, 290, "Crystal Vein", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "MIR"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}, Sacrifice Crystal Vein: Add {C}{C} to your mana pool. + SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public CrystalVein(final CrystalVein card) { + super(card); + } + + @Override + public CrystalVein copy() { + return new CrystalVein(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirage/ManaPrism.java b/Mage.Sets/src/mage/sets/mirage/ManaPrism.java index fb2aef36bc6..512e50e2e7e 100644 --- a/Mage.Sets/src/mage/sets/mirage/ManaPrism.java +++ b/Mage.Sets/src/mage/sets/mirage/ManaPrism.java @@ -49,7 +49,7 @@ public class ManaPrism extends CardImpl { super(ownerId, 273, "Mana Prism", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); this.expansionSetCode = "MIR"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new TapSourceCost())); // {1}, {tap}: Add one mana of any color to your mana pool. diff --git a/Mage.Sets/src/mage/sets/mirage/SeaScryer.java b/Mage.Sets/src/mage/sets/mirage/SeaScryer.java index ee10ca43a6d..fc70364c581 100644 --- a/Mage.Sets/src/mage/sets/mirage/SeaScryer.java +++ b/Mage.Sets/src/mage/sets/mirage/SeaScryer.java @@ -1,75 +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.mirage; - -import java.util.UUID; -import mage.MageInt; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class SeaScryer extends CardImpl { - - public SeaScryer(UUID ownerId) { - super(ownerId, 90, "Sea Scryer", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); - this.expansionSetCode = "MIR"; - this.subtype.add("Merfolk"); - this.subtype.add("Wizard"); - - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {tap}: Add {U} to your mana pool. - Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlueMana(1)), new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public SeaScryer(final SeaScryer card) { - super(card); - } - - @Override - public SeaScryer copy() { - return new SeaScryer(this); - } -} +/* + * 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.mirage; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class SeaScryer extends CardImpl { + + public SeaScryer(UUID ownerId) { + super(ownerId, 90, "Sea Scryer", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}"); + this.expansionSetCode = "MIR"; + this.subtype.add("Merfolk"); + this.subtype.add("Wizard"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {tap}: Add {U} to your mana pool. + Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new BasicManaEffect(Mana.BlueMana(1)), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public SeaScryer(final SeaScryer card) { + super(card); + } + + @Override + public SeaScryer copy() { + return new SeaScryer(this); + } +} diff --git a/Mage.Sets/src/mage/sets/mirage/SoulRend.java b/Mage.Sets/src/mage/sets/mirage/SoulRend.java new file mode 100644 index 00000000000..c6fa2abe605 --- /dev/null +++ b/Mage.Sets/src/mage/sets/mirage/SoulRend.java @@ -0,0 +1,96 @@ +/* + * 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.mirage; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.delayed.AtTheBeginOfNextUpkeepDelayedTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +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.target.common.TargetCreaturePermanent; + +/** + * + * @author fireshoes + */ +public class SoulRend extends CardImpl { + + public SoulRend(UUID ownerId) { + super(ownerId, 42, "Soul Rend", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{B}"); + this.expansionSetCode = "MIR"; + + // Destroy target creature if it's white. A creature destroyed this way can't be regenerated. + this.getSpellAbility().addEffect(new SoulRendEffect()); + this.getSpellAbility().addTarget(new TargetCreaturePermanent()); + + // Draw a card at the beginning of the next turn's upkeep. + this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new AtTheBeginOfNextUpkeepDelayedTriggeredAbility(new DrawCardSourceControllerEffect(1)), false)); + } + + public SoulRend(final SoulRend card) { + super(card); + } + + @Override + public SoulRend copy() { + return new SoulRend(this); + } +} + +class SoulRendEffect extends OneShotEffect { + SoulRendEffect() { + super(Outcome.DestroyPermanent); + staticText = "destroy target creature if it's white. A creature destroyed this way can't be regenerated"; + } + + SoulRendEffect(final SoulRendEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = game.getPermanent(targetPointer.getFirst(game, source)); + if (permanent != null && permanent.getColor(game).isWhite()) { + permanent.destroy(source.getSourceId(), game, true); + } + return false; + } + + @Override + public SoulRendEffect copy() { + return new SoulRendEffect(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/mirrodin/BlinkmothWell.java b/Mage.Sets/src/mage/sets/mirrodin/BlinkmothWell.java index 894222dbb6f..4525e6c92d7 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/BlinkmothWell.java +++ b/Mage.Sets/src/mage/sets/mirrodin/BlinkmothWell.java @@ -59,7 +59,7 @@ public class BlinkmothWell extends CardImpl { super(ownerId, 279, "Blinkmoth Well", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "MRD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}, {tap}: Tap target noncreature artifact. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new GenericManaCost(2)); diff --git a/Mage.Sets/src/mage/sets/mirrodin/Cloudpost.java b/Mage.Sets/src/mage/sets/mirrodin/Cloudpost.java index a1453e09636..4c1b48ab555 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/Cloudpost.java +++ b/Mage.Sets/src/mage/sets/mirrodin/Cloudpost.java @@ -57,7 +57,7 @@ public class Cloudpost extends CardImpl { // Cloudpost enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool for each Locus on the battlefield. + // {tap}: Add {C} to your mana pool for each Locus on the battlefield. this.addAbility(new DynamicManaAbility(Mana.ColorlessMana(1), new PermanentsOnBattlefieldCount(filter))); } diff --git a/Mage.Sets/src/mage/sets/mirrodin/Leveler.java b/Mage.Sets/src/mage/sets/mirrodin/Leveler.java index e76e9b346e1..99c4018d9c1 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/Leveler.java +++ b/Mage.Sets/src/mage/sets/mirrodin/Leveler.java @@ -88,7 +88,7 @@ class LevelerExileLibraryEffect extends OneShotEffect { int count = controller.getLibrary().size(); Cards cards = new CardsImpl(); cards.addAll(controller.getLibrary().getTopCards(game, count)); - controller.moveCards(cards, Zone.LIBRARY, Zone.EXILED, source, game); + controller.moveCards(cards, Zone.EXILED, source, game); return true; } return false; diff --git a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfDominance.java b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfDominance.java index f22aea13fd3..fd2329319a4 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfDominance.java +++ b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfDominance.java @@ -47,7 +47,7 @@ public class TalismanOfDominance extends CardImpl { super(ownerId, 253, "Talisman of Dominance", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); this.expansionSetCode = "MRD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add {U} or {B} to your mana pool. Talisman of Dominance deals 1 damage to you. Ability blueManaAbility = new BlueManaAbility(); diff --git a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfImpulse.java b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfImpulse.java index f0072e4c5b2..877527647be 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfImpulse.java +++ b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfImpulse.java @@ -47,7 +47,7 @@ public class TalismanOfImpulse extends CardImpl { super(ownerId, 254, "Talisman of Impulse", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); this.expansionSetCode = "MRD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add {R} or {G} to your mana pool. Talisman of Impulse deals 1 damage to you. Ability redManaAbility = new RedManaAbility(); diff --git a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfIndulgence.java b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfIndulgence.java index d2b54e48067..26114da582e 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfIndulgence.java +++ b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfIndulgence.java @@ -47,7 +47,7 @@ public class TalismanOfIndulgence extends CardImpl { super(ownerId, 255, "Talisman of Indulgence", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); this.expansionSetCode = "MRD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add {B} or {R} to your mana pool. Talisman of Indulgence deals 1 damage to you. Ability blackManaAbility = new BlackManaAbility(); diff --git a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfProgress.java b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfProgress.java index 906fe8f676d..65352bebd08 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfProgress.java +++ b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfProgress.java @@ -47,7 +47,7 @@ public class TalismanOfProgress extends CardImpl { super(ownerId, 256, "Talisman of Progress", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); this.expansionSetCode = "MRD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add {W} or {U} to your mana pool. Talisman of Progress deals 1 damage to you. Ability whiteManaAbility = new WhiteManaAbility(); diff --git a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfUnity.java b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfUnity.java index 2be502e301b..c88f9188fba 100644 --- a/Mage.Sets/src/mage/sets/mirrodin/TalismanOfUnity.java +++ b/Mage.Sets/src/mage/sets/mirrodin/TalismanOfUnity.java @@ -47,7 +47,7 @@ public class TalismanOfUnity extends CardImpl { super(ownerId, 257, "Talisman of Unity", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); this.expansionSetCode = "MRD"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add {G} or {W} to your mana pool. Talisman of Unity deals 1 damage to you. Ability greenManaAbility = new GreenManaAbility(); diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/ContestedWarZone.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/ContestedWarZone.java index 1558ed15381..e58956625a3 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/ContestedWarZone.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/ContestedWarZone.java @@ -67,7 +67,7 @@ public class ContestedWarZone extends CardImpl { // Whenever a creature deals combat damage to you, that creature's controller gains control of Contested War Zone. this.addAbility(new ContestedWarZoneAbility()); - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {T}: Attacking creatures get +1/+0 until end of turn. diff --git a/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java b/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java index 2032e3cb8d5..29c56cc86c8 100644 --- a/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java +++ b/Mage.Sets/src/mage/sets/mirrodinbesieged/InkmothNexus.java @@ -1,87 +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.mirrodinbesieged; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.MageInt; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; -import mage.abilities.keyword.FlyingAbility; -import mage.abilities.keyword.InfectAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.game.permanent.token.Token; - -/** - * - * @author Loki - */ -public class InkmothNexus extends CardImpl { - - public InkmothNexus (UUID ownerId) { - super(ownerId, 145, "Inkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "MBS"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}: Inkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) - Effect effect = new BecomesCreatureSourceEffect(new InkmothNexusToken(), "land", Duration.EndOfTurn); - effect.setText("{this} becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)"); - this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1))); - } - - public InkmothNexus (final InkmothNexus card) { - super(card); - } - - @Override - public InkmothNexus copy() { - return new InkmothNexus(this); - } -} - -class InkmothNexusToken extends Token { - public InkmothNexusToken() { - super("Blinkmoth", "a 1/1 Blinkmoth artifact creature with flying and infect"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - this.subtype.add("Blinkmoth"); - power = new MageInt(1); - toughness = new MageInt(1); - this.addAbility(FlyingAbility.getInstance()); - this.addAbility(InfectAbility.getInstance()); - } -} +/* + * 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.mirrodinbesieged; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.continuous.BecomesCreatureSourceEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.abilities.keyword.InfectAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.game.permanent.token.Token; + +/** + * + * @author Loki + */ +public class InkmothNexus extends CardImpl { + + public InkmothNexus (UUID ownerId) { + super(ownerId, 145, "Inkmoth Nexus", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "MBS"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}: Inkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.) + Effect effect = new BecomesCreatureSourceEffect(new InkmothNexusToken(), "land", Duration.EndOfTurn); + effect.setText("{this} becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)"); + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(1))); + } + + public InkmothNexus (final InkmothNexus card) { + super(card); + } + + @Override + public InkmothNexus copy() { + return new InkmothNexus(this); + } +} + +class InkmothNexusToken extends Token { + public InkmothNexusToken() { + super("Blinkmoth", "a 1/1 Blinkmoth artifact creature with flying and infect"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + this.subtype.add("Blinkmoth"); + power = new MageInt(1); + toughness = new MageInt(1); + this.addAbility(FlyingAbility.getInstance()); + this.addAbility(InfectAbility.getInstance()); + } +} diff --git a/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java b/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java index 540e8f9e988..3d239e84e5c 100644 --- a/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java +++ b/Mage.Sets/src/mage/sets/modernmasters/GrinningIgnus.java @@ -1,70 +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.modernmasters; - -import java.util.UUID; -import mage.MageInt; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.costs.common.ReturnToHandSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.mana.ActivateAsSorceryManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class GrinningIgnus extends CardImpl { - - public GrinningIgnus(UUID ownerId) { - super(ownerId, 118, "Grinning Ignus", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); - this.expansionSetCode = "MMA"; - this.subtype.add("Elemental"); - - this.power = new MageInt(2); - this.toughness = new MageInt(2); - - // {R}, Return Grinning Ignus to its owner's hand: Add {2}{R} to your mana pool. Activate this ability only any time you could cast a sorcery. - Ability ability = new ActivateAsSorceryManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 2, 0), new ManaCostsImpl("{R}")); - ability.addCost(new ReturnToHandSourceCost()); - this.addAbility(ability); - } - - public GrinningIgnus(final GrinningIgnus card) { - super(card); - } - - @Override - public GrinningIgnus copy() { - return new GrinningIgnus(this); - } -} +/* + * 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.modernmasters; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.ReturnToHandSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.mana.ActivateAsSorceryManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class GrinningIgnus extends CardImpl { + + public GrinningIgnus(UUID ownerId) { + super(ownerId, 118, "Grinning Ignus", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "MMA"; + this.subtype.add("Elemental"); + + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // {R}, Return Grinning Ignus to its owner's hand: Add {C}{C}{R} to your mana pool. Activate this ability only any time you could cast a sorcery. + Ability ability = new ActivateAsSorceryManaAbility(Zone.BATTLEFIELD, new Mana(1, 0, 0, 0, 0, 2, 0), new ManaCostsImpl("{R}")); + ability.addCost(new ReturnToHandSourceCost()); + this.addAbility(ability); + } + + public GrinningIgnus(final GrinningIgnus card) { + super(card); + } + + @Override + public GrinningIgnus copy() { + return new GrinningIgnus(this); + } +} diff --git a/Mage.Sets/src/mage/sets/morningtide/Mutavault.java b/Mage.Sets/src/mage/sets/morningtide/Mutavault.java index 7463b642e88..9ca26718d4c 100644 --- a/Mage.Sets/src/mage/sets/morningtide/Mutavault.java +++ b/Mage.Sets/src/mage/sets/morningtide/Mutavault.java @@ -51,7 +51,7 @@ public class Mutavault extends CardImpl { super(ownerId, 148, "Mutavault", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "MOR"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, diff --git a/Mage.Sets/src/mage/sets/morningtide/PrimalBeyond.java b/Mage.Sets/src/mage/sets/morningtide/PrimalBeyond.java index ff3738c83a0..77b9ec0548e 100644 --- a/Mage.Sets/src/mage/sets/morningtide/PrimalBeyond.java +++ b/Mage.Sets/src/mage/sets/morningtide/PrimalBeyond.java @@ -66,7 +66,7 @@ public class PrimalBeyond extends CardImpl { // As Primal Beyond enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Primal Beyond enters the battlefield tapped. this.addAbility(new AsEntersBattlefieldAbility(new TapSourceUnlessPaysEffect(new RevealTargetFromHandCost(new TargetCardInHand(filter))), "you may reveal a Elemental card from your hand. If you don't, {this} enters the battlefield tapped")); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add one mana of any color to your mana pool. Spend this mana only to cast an Elemental spell or activate an ability of an Elemental. Ability ability = new ConditionalAnyColorManaAbility(new TapSourceCost(), 1, new PrimalBeyondManaBuilder(), true); diff --git a/Mage.Sets/src/mage/sets/nemesis/KorHaven.java b/Mage.Sets/src/mage/sets/nemesis/KorHaven.java index 09bc2c2cb88..325ef8b7d9b 100644 --- a/Mage.Sets/src/mage/sets/nemesis/KorHaven.java +++ b/Mage.Sets/src/mage/sets/nemesis/KorHaven.java @@ -1,76 +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.nemesis; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.PreventDamageByTargetEffect; -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.TargetAttackingCreature; - -/** - * - * @author emerald000 - */ -public class KorHaven extends CardImpl { - - public KorHaven(UUID ownerId) { - super(ownerId, 141, "Kor Haven", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "NMS"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}{W}, {tap}: Prevent all combat damage that would be dealt by target attacking creature this turn. - Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true); - effect.setText("Prevent all combat damage that would be dealt by target attacking creature this turn"); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{W}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetAttackingCreature()); - this.addAbility(ability); - } - - public KorHaven(final KorHaven card) { - super(card); - } - - @Override - public KorHaven copy() { - return new KorHaven(this); - } -} +/* + * 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.nemesis; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.PreventDamageByTargetEffect; +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.TargetAttackingCreature; + +/** + * + * @author emerald000 + */ +public class KorHaven extends CardImpl { + + public KorHaven(UUID ownerId) { + super(ownerId, 141, "Kor Haven", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "NMS"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}{W}, {tap}: Prevent all combat damage that would be dealt by target attacking creature this turn. + Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true); + effect.setText("Prevent all combat damage that would be dealt by target attacking creature this turn"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{W}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetAttackingCreature()); + this.addAbility(ability); + } + + public KorHaven(final KorHaven card) { + super(card); + } + + @Override + public KorHaven copy() { + return new KorHaven(this); + } +} diff --git a/Mage.Sets/src/mage/sets/nemesis/RathsEdge.java b/Mage.Sets/src/mage/sets/nemesis/RathsEdge.java index b4b8f28c357..3b4e80a47ae 100644 --- a/Mage.Sets/src/mage/sets/nemesis/RathsEdge.java +++ b/Mage.Sets/src/mage/sets/nemesis/RathsEdge.java @@ -56,7 +56,7 @@ public class RathsEdge extends CardImpl { this.expansionSetCode = "NMS"; this.supertype.add("Legendary"); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {4}, {tap}, Sacrifice a land: Rath's Edge deals 1 damage to target creature or player. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new ManaCostsImpl<>("{4}")); diff --git a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java index a8475f44f34..a8a5d7cb79a 100644 --- a/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java +++ b/Mage.Sets/src/mage/sets/newphyrexia/ShrineOfBoundlessGrowth.java @@ -1,86 +1,86 @@ -/* - * 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.newphyrexia; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.TargetController; -import mage.Mana; -import mage.ObjectColor; -import mage.abilities.Ability; -import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.common.SpellCastControllerTriggeredAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.dynamicvalue.common.CountersCount; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.DynamicManaAbility; -import mage.cards.CardImpl; -import mage.counters.CounterType; -import mage.filter.FilterSpell; -import mage.filter.predicate.mageobject.ColorPredicate; - -/** - * - * @author North - */ -public class ShrineOfBoundlessGrowth extends CardImpl { - - private static final FilterSpell filter = new FilterSpell("a green spell"); - - static { - filter.add(new ColorPredicate(ObjectColor.GREEN)); - } - - public ShrineOfBoundlessGrowth (UUID ownerId) { - super(ownerId, 152, "Shrine of Boundless Growth", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.expansionSetCode = "NPH"; - - // At the beginning of your upkeep or whenever you cast a green spell, put a charge counter on Shrine of Boundless Growth. - this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), TargetController.YOU, false)); - this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), filter, false)); - - // {T}, Sacrifice Shrine of Boundless Growth: Add {1} to your mana pool for each charge counter on Shrine of Boundless Growth. - Ability ability = new DynamicManaAbility(Mana.ColorlessMana(1), new CountersCount(CounterType.CHARGE), new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - - } - - public ShrineOfBoundlessGrowth (final ShrineOfBoundlessGrowth card) { - super(card); - } - - @Override - public ShrineOfBoundlessGrowth copy() { - return new ShrineOfBoundlessGrowth(this); - } - -} +/* + * 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.newphyrexia; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.Mana; +import mage.ObjectColor; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; +import mage.abilities.common.SpellCastControllerTriggeredAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.dynamicvalue.common.CountersCount; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.DynamicManaAbility; +import mage.cards.CardImpl; +import mage.counters.CounterType; +import mage.filter.FilterSpell; +import mage.filter.predicate.mageobject.ColorPredicate; + +/** + * + * @author North + */ +public class ShrineOfBoundlessGrowth extends CardImpl { + + private static final FilterSpell filter = new FilterSpell("a green spell"); + + static { + filter.add(new ColorPredicate(ObjectColor.GREEN)); + } + + public ShrineOfBoundlessGrowth (UUID ownerId) { + super(ownerId, 152, "Shrine of Boundless Growth", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "NPH"; + + // At the beginning of your upkeep or whenever you cast a green spell, put a charge counter on Shrine of Boundless Growth. + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), TargetController.YOU, false)); + this.addAbility(new SpellCastControllerTriggeredAbility(new AddCountersSourceEffect(CounterType.CHARGE.createInstance()), filter, false)); + + // {T}, Sacrifice Shrine of Boundless Growth: Add {C} to your mana pool for each charge counter on Shrine of Boundless Growth. + Ability ability = new DynamicManaAbility(Mana.ColorlessMana(1), new CountersCount(CounterType.CHARGE), new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + + } + + public ShrineOfBoundlessGrowth (final ShrineOfBoundlessGrowth card) { + super(card); + } + + @Override + public ShrineOfBoundlessGrowth copy() { + return new ShrineOfBoundlessGrowth(this); + } + +} diff --git a/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java b/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java index 61e1bdaff65..a39dfba2bba 100644 --- a/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java +++ b/Mage.Sets/src/mage/sets/odyssey/CrystalQuarry.java @@ -49,7 +49,7 @@ public class CrystalQuarry extends CardImpl { super(ownerId, 318, "Crystal Quarry", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ODY"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {5}, {tap}: Add {W}{U}{B}{R}{G} to your mana pool. Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(1, 1, 1, 1, 1, 0, 0), new ManaCostsImpl("{5}")); diff --git a/Mage.Sets/src/mage/sets/odyssey/DesertedTemple.java b/Mage.Sets/src/mage/sets/odyssey/DesertedTemple.java index 86c8c41530f..bae498a229a 100644 --- a/Mage.Sets/src/mage/sets/odyssey/DesertedTemple.java +++ b/Mage.Sets/src/mage/sets/odyssey/DesertedTemple.java @@ -50,7 +50,7 @@ public class DesertedTemple extends CardImpl { super(ownerId, 320, "Deserted Temple", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ODY"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Untap target land. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new ManaCostsImpl("{1}")); diff --git a/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java b/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java index 054d1d0fd5f..8b72ec99cf2 100644 --- a/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java +++ b/Mage.Sets/src/mage/sets/odyssey/NantukoElder.java @@ -1,68 +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.odyssey; - -import java.util.UUID; -import mage.MageInt; -import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class NantukoElder extends CardImpl { - - public NantukoElder(UUID ownerId) { - super(ownerId, 254, "Nantuko Elder", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); - this.expansionSetCode = "ODY"; - this.subtype.add("Insect"); - this.subtype.add("Druid"); - - this.power = new MageInt(1); - this.toughness = new MageInt(2); - - // {tap}: Add {1}{G} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 1,0 ), new TapSourceCost())); - - } - - public NantukoElder(final NantukoElder card) { - super(card); - } - - @Override - public NantukoElder copy() { - return new NantukoElder(this); - } -} +/* + * 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.odyssey; + +import java.util.UUID; +import mage.MageInt; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class NantukoElder extends CardImpl { + + public NantukoElder(UUID ownerId) { + super(ownerId, 254, "Nantuko Elder", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{G}"); + this.expansionSetCode = "ODY"; + this.subtype.add("Insect"); + this.subtype.add("Druid"); + + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // {tap}: Add {C}{G} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 1, 0, 0, 0, 1,0 ), new TapSourceCost())); + + } + + public NantukoElder(final NantukoElder card) { + super(card); + } + + @Override + public NantukoElder copy() { + return new NantukoElder(this); + } +} diff --git a/Mage.Sets/src/mage/sets/odyssey/PetrifiedField.java b/Mage.Sets/src/mage/sets/odyssey/PetrifiedField.java index c0546c5710b..d36309b2231 100644 --- a/Mage.Sets/src/mage/sets/odyssey/PetrifiedField.java +++ b/Mage.Sets/src/mage/sets/odyssey/PetrifiedField.java @@ -1,75 +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.odyssey; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterLandCard; -import mage.target.common.TargetCardInYourGraveyard; - -/** - * - * @author emerald000 - */ -public class PetrifiedField extends CardImpl { - - public PetrifiedField(UUID ownerId) { - super(ownerId, 323, "Petrified Field", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ODY"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}, Sacrifice Petrified Field: Return target land card from your graveyard to your hand. - Effect effect = new ReturnFromGraveyardToHandTargetEffect(); - effect.setText("Return target land card from your graveyard to your hand."); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - ability.addTarget(new TargetCardInYourGraveyard(new FilterLandCard())); - this.addAbility(ability); - } - - public PetrifiedField(final PetrifiedField card) { - super(card); - } - - @Override - public PetrifiedField copy() { - return new PetrifiedField(this); - } -} +/* + * 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.odyssey; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterLandCard; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author emerald000 + */ +public class PetrifiedField extends CardImpl { + + public PetrifiedField(UUID ownerId) { + super(ownerId, 323, "Petrified Field", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ODY"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}, Sacrifice Petrified Field: Return target land card from your graveyard to your hand. + Effect effect = new ReturnFromGraveyardToHandTargetEffect(); + effect.setText("Return target land card from your graveyard to your hand."); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + ability.addTarget(new TargetCardInYourGraveyard(new FilterLandCard())); + this.addAbility(ability); + } + + public PetrifiedField(final PetrifiedField card) { + super(card); + } + + @Override + public PetrifiedField copy() { + return new PetrifiedField(this); + } +} diff --git a/Mage.Sets/src/mage/sets/odyssey/TarnishedCitadel.java b/Mage.Sets/src/mage/sets/odyssey/TarnishedCitadel.java index 08f9895da5f..27f2a4404c7 100644 --- a/Mage.Sets/src/mage/sets/odyssey/TarnishedCitadel.java +++ b/Mage.Sets/src/mage/sets/odyssey/TarnishedCitadel.java @@ -1,68 +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.odyssey; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.mana.AnyColorManaAbility; -import mage.abilities.mana.ManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author Plopman - */ -public class TarnishedCitadel extends CardImpl { - - public TarnishedCitadel(UUID ownerId) { - super(ownerId, 329, "Tarnished Citadel", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ODY"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new TapSourceCost())); - // {tap}: Add one mana of any color to your mana pool. Tarnished Citadel deals 3 damage to you. - ManaAbility ability = new AnyColorManaAbility(new TapSourceCost()); - ability.addEffect(new DamageControllerEffect(3)); - this.addAbility(ability); - } - - public TarnishedCitadel(final TarnishedCitadel card) { - super(card); - } - - @Override - public TarnishedCitadel copy() { - return new TarnishedCitadel(this); - } -} +/* + * 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.odyssey; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.mana.AnyColorManaAbility; +import mage.abilities.mana.ManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author Plopman + */ +public class TarnishedCitadel extends CardImpl { + + public TarnishedCitadel(UUID ownerId) { + super(ownerId, 329, "Tarnished Citadel", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ODY"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(1), new TapSourceCost())); + // {tap}: Add one mana of any color to your mana pool. Tarnished Citadel deals 3 damage to you. + ManaAbility ability = new AnyColorManaAbility(new TapSourceCost()); + ability.addEffect(new DamageControllerEffect(3)); + this.addAbility(ability); + } + + public TarnishedCitadel(final TarnishedCitadel card) { + super(card); + } + + @Override + public TarnishedCitadel copy() { + return new TarnishedCitadel(this); + } +} diff --git a/Mage.Sets/src/mage/sets/odyssey/VolcanicSpray.java b/Mage.Sets/src/mage/sets/odyssey/VolcanicSpray.java index 9e155f56116..63d57823587 100644 --- a/Mage.Sets/src/mage/sets/odyssey/VolcanicSpray.java +++ b/Mage.Sets/src/mage/sets/odyssey/VolcanicSpray.java @@ -1,73 +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.odyssey; - -import java.util.UUID; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.DamageAllEffect; -import mage.abilities.keyword.FlashbackAbility; -import mage.abilities.keyword.FlyingAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.TimingRule; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.AbilityPredicate; - -/** - * - * @author cbt33 - */ -public class VolcanicSpray extends CardImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); - static { - filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); - } - - public VolcanicSpray(UUID ownerId) { - super(ownerId, 226, "Volcanic Spray", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); - this.expansionSetCode = "ODY"; - - - // Volcanic Spray deals 1 damage to each creature without flying and each player. - this.getSpellAbility().addEffect(new DamageAllEffect(1, filter)); - // Flashback {1}{R} - this.addAbility(new FlashbackAbility(new ManaCostsImpl("{1}{R}"), TimingRule.SORCERY)); - } - - public VolcanicSpray(final VolcanicSpray card) { - super(card); - } - - @Override - public VolcanicSpray copy() { - return new VolcanicSpray(this); - } -} +/* + * 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.odyssey; + +import java.util.UUID; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamageEverythingEffect; +import mage.abilities.keyword.FlashbackAbility; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TimingRule; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.AbilityPredicate; + +/** + * + * @author cbt33 + */ +public class VolcanicSpray extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without flying"); + static { + filter.add(Predicates.not(new AbilityPredicate(FlyingAbility.class))); + } + + public VolcanicSpray(UUID ownerId) { + super(ownerId, 226, "Volcanic Spray", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); + this.expansionSetCode = "ODY"; + + + // Volcanic Spray deals 1 damage to each creature without flying and each player. + this.getSpellAbility().addEffect(new DamageEverythingEffect(1, filter)); + // Flashback {1}{R} + this.addAbility(new FlashbackAbility(new ManaCostsImpl("{1}{R}"), TimingRule.SORCERY)); + } + + public VolcanicSpray(final VolcanicSpray card) { + super(card); + } + + @Override + public VolcanicSpray copy() { + return new VolcanicSpray(this); + } +} diff --git a/Mage.Sets/src/mage/sets/onslaught/ContestedCliffs.java b/Mage.Sets/src/mage/sets/onslaught/ContestedCliffs.java index b6459876d7f..cf19f6b52ad 100644 --- a/Mage.Sets/src/mage/sets/onslaught/ContestedCliffs.java +++ b/Mage.Sets/src/mage/sets/onslaught/ContestedCliffs.java @@ -1,90 +1,90 @@ -/* - * 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.onslaught; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.FightTargetsEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.permanent.ControllerPredicate; -import mage.target.Target; -import mage.target.common.TargetCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class ContestedCliffs extends CardImpl { - - private static final FilterCreaturePermanent filter1 = new FilterCreaturePermanent("Beast creature you control"); - private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("creature an opponent controls"); - static { - filter1.add(new ControllerPredicate(TargetController.YOU)); - filter1.add(new SubtypePredicate("Beast")); - filter2.add(new ControllerPredicate(TargetController.OPPONENT)); - } - - public ContestedCliffs(UUID ownerId) { - super(ownerId, 314, "Contested Cliffs", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ONS"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {R}{G}, {tap}: Choose target Beast creature you control and target creature an opponent controls. Those creatures fight each other. - Effect effect = new FightTargetsEffect(); - effect.setText("Choose target Beast creature you control and target creature an opponent controls. Those creatures fight each other"); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{R}{G}")); - ability.addCost(new TapSourceCost()); - Target target1 = new TargetCreaturePermanent(filter1); - ability.addTarget(target1); - Target target2 = new TargetCreaturePermanent(filter2); - ability.addTarget(target2); - this.addAbility(ability); - - } - - public ContestedCliffs(final ContestedCliffs card) { - super(card); - } - - @Override - public ContestedCliffs copy() { - return new ContestedCliffs(this); - } -} +/* + * 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.onslaught; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.FightTargetsEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.ControllerPredicate; +import mage.target.Target; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class ContestedCliffs extends CardImpl { + + private static final FilterCreaturePermanent filter1 = new FilterCreaturePermanent("Beast creature you control"); + private static final FilterCreaturePermanent filter2 = new FilterCreaturePermanent("creature an opponent controls"); + static { + filter1.add(new ControllerPredicate(TargetController.YOU)); + filter1.add(new SubtypePredicate("Beast")); + filter2.add(new ControllerPredicate(TargetController.OPPONENT)); + } + + public ContestedCliffs(UUID ownerId) { + super(ownerId, 314, "Contested Cliffs", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ONS"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {R}{G}, {tap}: Choose target Beast creature you control and target creature an opponent controls. Those creatures fight each other. + Effect effect = new FightTargetsEffect(); + effect.setText("Choose target Beast creature you control and target creature an opponent controls. Those creatures fight each other"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{R}{G}")); + ability.addCost(new TapSourceCost()); + Target target1 = new TargetCreaturePermanent(filter1); + ability.addTarget(target1); + Target target2 = new TargetCreaturePermanent(filter2); + ability.addTarget(target2); + this.addAbility(ability); + + } + + public ContestedCliffs(final ContestedCliffs card) { + super(card); + } + + @Override + public ContestedCliffs copy() { + return new ContestedCliffs(this); + } +} diff --git a/Mage.Sets/src/mage/sets/onslaught/GoblinBurrows.java b/Mage.Sets/src/mage/sets/onslaught/GoblinBurrows.java index 66bcc8033fe..596195a03c7 100644 --- a/Mage.Sets/src/mage/sets/onslaught/GoblinBurrows.java +++ b/Mage.Sets/src/mage/sets/onslaught/GoblinBurrows.java @@ -1,79 +1,79 @@ -/* - * 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.onslaught; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.continuous.BoostTargetEffect; -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.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.target.common.TargetCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class GoblinBurrows extends CardImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Goblin creature"); - - static { - filter.add(new SubtypePredicate(("Goblin"))); - } - - public GoblinBurrows(UUID ownerId) { - super(ownerId, 318, "Goblin Burrows", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ONS"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2,0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCreaturePermanent(filter)); - this.addAbility(ability); - } - - public GoblinBurrows(final GoblinBurrows card) { - super(card); - } - - @Override - public GoblinBurrows copy() { - return new GoblinBurrows(this); - } -} +/* + * 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.onslaught; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.continuous.BoostTargetEffect; +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.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class GoblinBurrows extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Goblin creature"); + + static { + filter.add(new SubtypePredicate(("Goblin"))); + } + + public GoblinBurrows(UUID ownerId) { + super(ownerId, 318, "Goblin Burrows", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ONS"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2,0, Duration.EndOfTurn), new ManaCostsImpl("{1}{R}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + } + + public GoblinBurrows(final GoblinBurrows card) { + super(card); + } + + @Override + public GoblinBurrows copy() { + return new GoblinBurrows(this); + } +} diff --git a/Mage.Sets/src/mage/sets/onslaught/GrandColiseum.java b/Mage.Sets/src/mage/sets/onslaught/GrandColiseum.java index 8f4892e43c7..68f0694edaf 100644 --- a/Mage.Sets/src/mage/sets/onslaught/GrandColiseum.java +++ b/Mage.Sets/src/mage/sets/onslaught/GrandColiseum.java @@ -49,7 +49,7 @@ public class GrandColiseum extends CardImpl { // Grand Coliseum enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Add one mana of any color to your mana pool. Grand Coliseum deals 1 damage to you. Ability ability = new AnyColorManaAbility(); diff --git a/Mage.Sets/src/mage/sets/onslaught/RiptideLaboratory.java b/Mage.Sets/src/mage/sets/onslaught/RiptideLaboratory.java index 808150e100c..c09e0948c34 100644 --- a/Mage.Sets/src/mage/sets/onslaught/RiptideLaboratory.java +++ b/Mage.Sets/src/mage/sets/onslaught/RiptideLaboratory.java @@ -1,79 +1,79 @@ -/* - * 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.onslaught; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.ReturnToHandTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledPermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.target.common.TargetControlledPermanent; - -/** - * - * @author emerald000 - */ -public class RiptideLaboratory extends CardImpl { - - private final static FilterControlledPermanent filter = new FilterControlledPermanent("Wizard you control"); - - static { - filter.add(new SubtypePredicate("Wizard")); - } - - public RiptideLaboratory(UUID ownerId) { - super(ownerId, 322, "Riptide Laboratory", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ONS"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}{U}, {tap}: Return target Wizard you control to its owner's hand. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{1}{U}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetControlledPermanent(filter)); - this.addAbility(ability); - } - - public RiptideLaboratory(final RiptideLaboratory card) { - super(card); - } - - @Override - public RiptideLaboratory copy() { - return new RiptideLaboratory(this); - } -} +/* + * 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.onslaught; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author emerald000 + */ +public class RiptideLaboratory extends CardImpl { + + private final static FilterControlledPermanent filter = new FilterControlledPermanent("Wizard you control"); + + static { + filter.add(new SubtypePredicate("Wizard")); + } + + public RiptideLaboratory(UUID ownerId) { + super(ownerId, 322, "Riptide Laboratory", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ONS"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}{U}, {tap}: Return target Wizard you control to its owner's hand. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new ManaCostsImpl("{1}{U}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetControlledPermanent(filter)); + this.addAbility(ability); + } + + public RiptideLaboratory(final RiptideLaboratory card) { + super(card); + } + + @Override + public RiptideLaboratory copy() { + return new RiptideLaboratory(this); + } +} diff --git a/Mage.Sets/src/mage/sets/onslaught/SeasideHaven.java b/Mage.Sets/src/mage/sets/onslaught/SeasideHaven.java index ab893d66547..862e95581ce 100644 --- a/Mage.Sets/src/mage/sets/onslaught/SeasideHaven.java +++ b/Mage.Sets/src/mage/sets/onslaught/SeasideHaven.java @@ -59,7 +59,7 @@ public class SeasideHaven extends CardImpl { super(ownerId, 323, "Seaside Haven", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ONS"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {W}{U}, {tap}, Sacrifice a Bird: Draw a card. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), new ManaCostsImpl<>("{W}{U}")); diff --git a/Mage.Sets/src/mage/sets/onslaught/StarlitSanctum.java b/Mage.Sets/src/mage/sets/onslaught/StarlitSanctum.java index 6c46627377c..0e6cdcbcbeb 100644 --- a/Mage.Sets/src/mage/sets/onslaught/StarlitSanctum.java +++ b/Mage.Sets/src/mage/sets/onslaught/StarlitSanctum.java @@ -58,7 +58,7 @@ public class StarlitSanctum extends CardImpl { super(ownerId, 325, "Starlit Sanctum", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ONS"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {W}, {tap}, Sacrifice a Cleric creature: You gain life equal to the sacrificed creature's toughness. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new StarlitSanctumWhiteEffect(), new ManaCostsImpl<>("{W}")); diff --git a/Mage.Sets/src/mage/sets/onslaught/ThunderOfHooves.java b/Mage.Sets/src/mage/sets/onslaught/ThunderOfHooves.java index d5b051cb3a9..3c4a77eba86 100644 --- a/Mage.Sets/src/mage/sets/onslaught/ThunderOfHooves.java +++ b/Mage.Sets/src/mage/sets/onslaught/ThunderOfHooves.java @@ -61,7 +61,7 @@ public class ThunderOfHooves extends CardImpl { // Thunder of Hooves deals X damage to each creature without flying and each player, where X is the number of Beasts on the battlefield. Effect effect = new DamageEverythingEffect(new PermanentsOnBattlefieldCount(new FilterPermanent(filterBeasts)), new FilterCreaturePermanent(filterNotFlying)); - effect.setText("{this} deals X damage to each creature, where X is the number of creatures on the battlefield"); + effect.setText("{this} deals X damage to each creature and each player, where X is the number of creatures on the battlefield"); this.getSpellAbility().addEffect(effect); } diff --git a/Mage.Sets/src/mage/sets/onslaught/UnholyGrotto.java b/Mage.Sets/src/mage/sets/onslaught/UnholyGrotto.java index f2cb660c7bc..c899e908f50 100644 --- a/Mage.Sets/src/mage/sets/onslaught/UnholyGrotto.java +++ b/Mage.Sets/src/mage/sets/onslaught/UnholyGrotto.java @@ -58,7 +58,7 @@ public class UnholyGrotto extends CardImpl { super(ownerId, 327, "Unholy Grotto", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ONS"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {B}, {tap}: Put target Zombie card from your graveyard on top of your library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl<>("{B}")); diff --git a/Mage.Sets/src/mage/sets/onslaught/WirewoodLodge.java b/Mage.Sets/src/mage/sets/onslaught/WirewoodLodge.java index 594d11f12bf..4f619d339ba 100644 --- a/Mage.Sets/src/mage/sets/onslaught/WirewoodLodge.java +++ b/Mage.Sets/src/mage/sets/onslaught/WirewoodLodge.java @@ -58,7 +58,7 @@ public class WirewoodLodge extends CardImpl { super(ownerId, 329, "Wirewood Lodge", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "ONS"; - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {G}, {T}: Untap target Elf. diff --git a/Mage.Sets/src/mage/sets/planarchaos/MagusOfTheLibrary.java b/Mage.Sets/src/mage/sets/planarchaos/MagusOfTheLibrary.java index 81163b98e6b..ca3447db62f 100644 --- a/Mage.Sets/src/mage/sets/planarchaos/MagusOfTheLibrary.java +++ b/Mage.Sets/src/mage/sets/planarchaos/MagusOfTheLibrary.java @@ -53,7 +53,7 @@ public class MagusOfTheLibrary extends CardImpl { this.power = new MageInt(1); this.toughness = new MageInt(1); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand. diff --git a/Mage.Sets/src/mage/sets/planechase2012/KrosanVerge.java b/Mage.Sets/src/mage/sets/planechase2012/KrosanVerge.java index 1a749cafc9c..78b030ccd14 100644 --- a/Mage.Sets/src/mage/sets/planechase2012/KrosanVerge.java +++ b/Mage.Sets/src/mage/sets/planechase2012/KrosanVerge.java @@ -1,92 +1,92 @@ -/* - * 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.planechase2012; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.filter.FilterCard; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.target.common.TargetCardInLibrary; - -/** - * - * @author LevelX2 - */ -public class KrosanVerge extends CardImpl { - - private static final FilterCard filterForest = new FilterCard("a Forest"); - private static final FilterCard filterPlains = new FilterCard("a Plains"); - - static { - filterForest.add(new SubtypePredicate("Forest")); - filterPlains.add(new SubtypePredicate("Plains")); - } - - public KrosanVerge(UUID ownerId) { - super(ownerId, 123, "Krosan Verge", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "PC2"; - - // Krosan Verge enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {2}, {T}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library. - Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterForest), true, Outcome.PutLandInPlay); - effect.setText("Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library"); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); - effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterPlains), true, Outcome.PutLandInPlay); - effect.setText(null); - ability.addEffect(effect); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - - } - - public KrosanVerge(final KrosanVerge card) { - super(card); - } - - @Override - public KrosanVerge copy() { - return new KrosanVerge(this); - } -} +/* + * 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.planechase2012; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author LevelX2 + */ +public class KrosanVerge extends CardImpl { + + private static final FilterCard filterForest = new FilterCard("a Forest"); + private static final FilterCard filterPlains = new FilterCard("a Plains"); + + static { + filterForest.add(new SubtypePredicate("Forest")); + filterPlains.add(new SubtypePredicate("Plains")); + } + + public KrosanVerge(UUID ownerId) { + super(ownerId, 123, "Krosan Verge", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "PC2"; + + // Krosan Verge enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {2}, {T}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library. + Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterForest), true, Outcome.PutLandInPlay); + effect.setText("Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); + effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filterPlains), true, Outcome.PutLandInPlay); + effect.setText(null); + ability.addEffect(effect); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + + } + + public KrosanVerge(final KrosanVerge card) { + super(card); + } + + @Override + public KrosanVerge copy() { + return new KrosanVerge(this); + } +} diff --git a/Mage.Sets/src/mage/sets/planechase2012/TaintedIsle.java b/Mage.Sets/src/mage/sets/planechase2012/TaintedIsle.java index f56d3ea3e28..ced64408df0 100644 --- a/Mage.Sets/src/mage/sets/planechase2012/TaintedIsle.java +++ b/Mage.Sets/src/mage/sets/planechase2012/TaintedIsle.java @@ -1,84 +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.planechase2012; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.Mana; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.ActivateIfConditionManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.filter.common.FilterLandPermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; - -/** - * - * @author LevelX2 - */ -public class TaintedIsle extends CardImpl { - - private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); - static { - filter.add(new SubtypePredicate("Swamp")); - } - - public TaintedIsle(UUID ownerId) { - super(ownerId, 128, "Tainted Isle", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "PC2"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}: Add {U} or {B} to your mana pool. Activate this ability only if you control a Swamp. - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.BlueMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.BlackMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - - } - - public TaintedIsle(final TaintedIsle card) { - super(card); - } - - @Override - public TaintedIsle copy() { - return new TaintedIsle(this); - } -} +/* + * 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.planechase2012; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.Mana; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author LevelX2 + */ +public class TaintedIsle extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); + static { + filter.add(new SubtypePredicate("Swamp")); + } + + public TaintedIsle(UUID ownerId) { + super(ownerId, 128, "Tainted Isle", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "PC2"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}: Add {U} or {B} to your mana pool. Activate this ability only if you control a Swamp. + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.BlueMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.BlackMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + + } + + public TaintedIsle(final TaintedIsle card) { + super(card); + } + + @Override + public TaintedIsle copy() { + return new TaintedIsle(this); + } +} diff --git a/Mage.Sets/src/mage/sets/planeshift/TerminalMoraine.java b/Mage.Sets/src/mage/sets/planeshift/TerminalMoraine.java index 2db3a01cc0c..9fd6f36d059 100644 --- a/Mage.Sets/src/mage/sets/planeshift/TerminalMoraine.java +++ b/Mage.Sets/src/mage/sets/planeshift/TerminalMoraine.java @@ -54,7 +54,7 @@ public class TerminalMoraine extends CardImpl { super(ownerId, 142, "Terminal Moraine", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "PLS"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}, {tap}, Sacrifice Terminal Moraine: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(filter), true, true), new ManaCostsImpl<>("{2}")); diff --git a/Mage.Sets/src/mage/sets/prophecy/Rethink.java b/Mage.Sets/src/mage/sets/prophecy/Rethink.java new file mode 100644 index 00000000000..0b35a6b139e --- /dev/null +++ b/Mage.Sets/src/mage/sets/prophecy/Rethink.java @@ -0,0 +1,99 @@ +/* + * 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.prophecy; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.mana.GenericManaCost; +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.stack.StackObject; +import mage.players.Player; +import mage.target.TargetSpell; + +/** + * + * @author fireshoes + */ +public class Rethink extends CardImpl { + + public Rethink(UUID ownerId) { + super(ownerId, 42, "Rethink", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{U}"); + this.expansionSetCode = "PCY"; + + // Counter target spell unless its controller pays {X}, where X is its converted mana cost. + this.getSpellAbility().addEffect(new RethinkEffect()); + this.getSpellAbility().addTarget(new TargetSpell()); + } + + public Rethink(final Rethink card) { + super(card); + } + + @Override + public Rethink copy() { + return new Rethink(this); + } +} + +class RethinkEffect extends OneShotEffect { + + RethinkEffect() { + super(Outcome.Detriment); + this.staticText = "Counter target spell unless that player pays {X}, where X is its converted mana cost"; + } + + RethinkEffect(final RethinkEffect effect) { + super(effect); + } + + @Override + public RethinkEffect copy() { + return new RethinkEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + StackObject spell = game.getStack().getStackObject(targetPointer.getFirst(game, source)); + if (spell != null) { + Player player = game.getPlayer(spell.getControllerId()); + if (player != null) { + GenericManaCost cost = new GenericManaCost(spell.getManaCost().convertedManaCost()); + if (!cost.pay(source, game, source.getSourceId(), player.getId(), false)) { + game.getStack().counter(spell.getId(), source.getSourceId(), game); + } + return true; + } + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/prophecy/WintermoonMesa.java b/Mage.Sets/src/mage/sets/prophecy/WintermoonMesa.java index 41e285b6b91..ae609b11d60 100644 --- a/Mage.Sets/src/mage/sets/prophecy/WintermoonMesa.java +++ b/Mage.Sets/src/mage/sets/prophecy/WintermoonMesa.java @@ -54,7 +54,7 @@ public class WintermoonMesa extends CardImpl { // Wintermoon Mesa enters the battlefield tapped. this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {2}, {tap}, Sacrifice Wintermoon Mesa: Tap two target lands. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapTargetEffect(), new ManaCostsImpl<>("{2}")); diff --git a/Mage.Sets/src/mage/sets/ravnica/DuskmantleHouseOfShadow.java b/Mage.Sets/src/mage/sets/ravnica/DuskmantleHouseOfShadow.java index 9f3703dc39e..5dedc1cf4f0 100644 --- a/Mage.Sets/src/mage/sets/ravnica/DuskmantleHouseOfShadow.java +++ b/Mage.Sets/src/mage/sets/ravnica/DuskmantleHouseOfShadow.java @@ -1,71 +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.ravnica; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.target.TargetPlayer; - -/** - * - * @author Loki - */ -public class DuskmantleHouseOfShadow extends CardImpl { - - public DuskmantleHouseOfShadow(UUID ownerId) { - super(ownerId, 277, "Duskmantle, House of Shadow", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "RAV"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {U}{B}, {tap}: Target player puts the top card of his or her library into his or her graveyard. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(1), new ManaCostsImpl("{U}{B}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetPlayer()); - this.addAbility(ability); - } - - public DuskmantleHouseOfShadow(final DuskmantleHouseOfShadow card) { - super(card); - } - - @Override - public DuskmantleHouseOfShadow copy() { - return new DuskmantleHouseOfShadow(this); - } -} +/* + * 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.ravnica; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.PutLibraryIntoGraveTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.target.TargetPlayer; + +/** + * + * @author Loki + */ +public class DuskmantleHouseOfShadow extends CardImpl { + + public DuskmantleHouseOfShadow(UUID ownerId) { + super(ownerId, 277, "Duskmantle, House of Shadow", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "RAV"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {U}{B}, {tap}: Target player puts the top card of his or her library into his or her graveyard. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutLibraryIntoGraveTargetEffect(1), new ManaCostsImpl("{U}{B}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetPlayer()); + this.addAbility(ability); + } + + public DuskmantleHouseOfShadow(final DuskmantleHouseOfShadow card) { + super(card); + } + + @Override + public DuskmantleHouseOfShadow copy() { + return new DuskmantleHouseOfShadow(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ravnica/VituGhaziTheCityTree.java b/Mage.Sets/src/mage/sets/ravnica/VituGhaziTheCityTree.java index 1d7e0273971..81ff11b9437 100644 --- a/Mage.Sets/src/mage/sets/ravnica/VituGhaziTheCityTree.java +++ b/Mage.Sets/src/mage/sets/ravnica/VituGhaziTheCityTree.java @@ -1,70 +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.ravnica; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.game.permanent.token.SaprolingToken; - -/** - * - * @author Loki - */ -public class VituGhaziTheCityTree extends CardImpl { - - public VituGhaziTheCityTree(UUID ownerId) { - super(ownerId, 285, "Vitu-Ghazi, the City-Tree", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "RAV"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl("{2}{G}{W}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public VituGhaziTheCityTree(final VituGhaziTheCityTree card) { - super(card); - } - - @Override - public VituGhaziTheCityTree copy() { - return new VituGhaziTheCityTree(this); - } -} +/* + * 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.ravnica; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.game.permanent.token.SaprolingToken; + +/** + * + * @author Loki + */ +public class VituGhaziTheCityTree extends CardImpl { + + public VituGhaziTheCityTree(UUID ownerId) { + super(ownerId, 285, "Vitu-Ghazi, the City-Tree", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "RAV"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new SaprolingToken()), new ManaCostsImpl("{2}{G}{W}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public VituGhaziTheCityTree(final VituGhaziTheCityTree card) { + super(card); + } + + @Override + public VituGhaziTheCityTree copy() { + return new VituGhaziTheCityTree(this); + } +} diff --git a/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java b/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java index 549d0a03dbc..cb6ffe31384 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/GroveOfTheGuardian.java @@ -1,101 +1,101 @@ -/* - * 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.returntoravnica; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageInt; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.common.TapTargetCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.VigilanceAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.permanent.TappedPredicate; -import mage.game.permanent.token.Token; -import mage.target.common.TargetControlledCreaturePermanent; - -/** - * @author LevelX2 - */ -public class GroveOfTheGuardian extends CardImpl { - - private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped creatures you control"); - - static { - filter.add(Predicates.not(new TappedPredicate())); - } - - public GroveOfTheGuardian(UUID ownerId) { - super(ownerId, 240, "Grove of the Guardian", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "RTR"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 1, 0), new TapSourceCost())); - - // {3}{G}{W}, {T}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Put an 8/8 green and white Elemental creature token with vigilance onto the battlefield. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElementalToken(), 1), new ManaCostsImpl("{3}{G}{W}")); - ability.addCost(new TapSourceCost()); - ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(2, 2, filter, false))); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public GroveOfTheGuardian(final GroveOfTheGuardian card) { - super(card); - } - - @Override - public GroveOfTheGuardian copy() { - return new GroveOfTheGuardian(this); - } - - private class ElementalToken extends Token { - ElementalToken() { - super("Elemental", "an 8/8 green and white Elemental creature token with vigilance"); - - cardType.add(CardType.CREATURE); - color.setGreen(true); - color.setWhite(true); - this.subtype.add("Elemental"); - power = new MageInt(8); - toughness = new MageInt(8); - this.addAbility(VigilanceAbility.getInstance()); - } - } -} +/* + * 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.returntoravnica; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.MageInt; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.common.TapTargetCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.VigilanceAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.game.permanent.token.Token; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * @author LevelX2 + */ +public class GroveOfTheGuardian extends CardImpl { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("untapped creatures you control"); + + static { + filter.add(Predicates.not(new TappedPredicate())); + } + + public GroveOfTheGuardian(UUID ownerId) { + super(ownerId, 240, "Grove of the Guardian", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "RTR"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 1, 0), new TapSourceCost())); + + // {3}{G}{W}, {T}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Put an 8/8 green and white Elemental creature token with vigilance onto the battlefield. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new ElementalToken(), 1), new ManaCostsImpl("{3}{G}{W}")); + ability.addCost(new TapSourceCost()); + ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(2, 2, filter, false))); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public GroveOfTheGuardian(final GroveOfTheGuardian card) { + super(card); + } + + @Override + public GroveOfTheGuardian copy() { + return new GroveOfTheGuardian(this); + } + + private class ElementalToken extends Token { + ElementalToken() { + super("Elemental", "an 8/8 green and white Elemental creature token with vigilance"); + + cardType.add(CardType.CREATURE); + color.setGreen(true); + color.setWhite(true); + this.subtype.add("Elemental"); + power = new MageInt(8); + toughness = new MageInt(8); + this.addAbility(VigilanceAbility.getInstance()); + } + } +} diff --git a/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java b/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java index 989b4edbf25..67671fd3796 100644 --- a/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java +++ b/Mage.Sets/src/mage/sets/returntoravnica/RoguesPassage.java @@ -1,72 +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.returntoravnica; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.target.common.TargetCreaturePermanent; - -/** - * @author LevelX2 - */ -public class RoguesPassage extends CardImpl { - - public RoguesPassage(UUID ownerId) { - super(ownerId, 245, "Rogue's Passage", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "RTR"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 1, 0), new TapSourceCost())); - - // {4}, {T}: Target creature can't be blocked this turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(), new ManaCostsImpl("{4}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCreaturePermanent()); - this.addAbility(ability); - } - - public RoguesPassage(final RoguesPassage card) { - super(card); - } - - @Override - public RoguesPassage copy() { - return new RoguesPassage(this); - } -} +/* + * 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.returntoravnica; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetCreaturePermanent; + +/** + * @author LevelX2 + */ +public class RoguesPassage extends CardImpl { + + public RoguesPassage(UUID ownerId) { + super(ownerId, 245, "Rogue's Passage", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "RTR"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0, 0, 0, 0, 0, 1, 0), new TapSourceCost())); + + // {4}, {T}: Target creature can't be blocked this turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CantBeBlockedTargetEffect(), new ManaCostsImpl("{4}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent()); + this.addAbility(ability); + } + + public RoguesPassage(final RoguesPassage card) { + super(card); + } + + @Override + public RoguesPassage copy() { + return new RoguesPassage(this); + } +} diff --git a/Mage.Sets/src/mage/sets/revisededition/Channel.java b/Mage.Sets/src/mage/sets/revisededition/Channel.java index 98f7d7197a7..41e6ea03a39 100644 --- a/Mage.Sets/src/mage/sets/revisededition/Channel.java +++ b/Mage.Sets/src/mage/sets/revisededition/Channel.java @@ -1,145 +1,145 @@ -/* - * 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.revisededition; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.DelayedTriggeredAbility; -import mage.abilities.SpecialAction; -import mage.abilities.costs.common.PayLifeCost; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; -import mage.abilities.effects.common.CreateSpecialActionEffect; -import mage.abilities.effects.common.RemoveSpecialActionEffect; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Duration; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; - -/** - * - * @author emerald000 - */ -public class Channel extends CardImpl { - - public Channel(UUID ownerId) { - super(ownerId, 95, "Channel", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{G}{G}"); - this.expansionSetCode = "3ED"; - - // Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool. - this.getSpellAbility().addEffect(new ChannelEffect()); - } - - public Channel(final Channel card) { - super(card); - } - - @Override - public Channel copy() { - return new Channel(this); - } -} - -class ChannelEffect extends OneShotEffect { - - ChannelEffect() { - super(Outcome.PutManaInPool); - this.staticText = "Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool"; - } - - ChannelEffect(final ChannelEffect effect) { - super(effect); - } - - @Override - public ChannelEffect copy() { - return new ChannelEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - SpecialAction specialAction = new ChannelSpecialAction(); - new CreateSpecialActionEffect(specialAction).apply(game, source); - - // Create a hidden delayed triggered ability to remove the special action at end of turn. - new CreateDelayedTriggeredAbilityEffect(new ChannelDelayedTriggeredAbility(specialAction.getId()), false).apply(game, source); - return true; - } -} - -class ChannelSpecialAction extends SpecialAction { - - ChannelSpecialAction() { - super(); - this.addCost(new PayLifeCost(1)); - this.addEffect(new BasicManaEffect(Mana.ColorlessMana(1))); - } - - ChannelSpecialAction(final ChannelSpecialAction ability) { - super(ability); - } - - @Override - public ChannelSpecialAction copy() { - return new ChannelSpecialAction(this); - } -} - -class ChannelDelayedTriggeredAbility extends DelayedTriggeredAbility { - - ChannelDelayedTriggeredAbility(UUID specialActionId) { - super(new RemoveSpecialActionEffect(specialActionId), Duration.OneUse); - this.usesStack = false; - this.setRuleVisible(false); - } - - ChannelDelayedTriggeredAbility(ChannelDelayedTriggeredAbility ability) { - super(ability); - } - - @Override - public ChannelDelayedTriggeredAbility copy() { - return new ChannelDelayedTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.CLEANUP_STEP_PRE; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - return true; - } -} +/* + * 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.revisededition; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.DelayedTriggeredAbility; +import mage.abilities.SpecialAction; +import mage.abilities.costs.common.PayLifeCost; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect; +import mage.abilities.effects.common.CreateSpecialActionEffect; +import mage.abilities.effects.common.RemoveSpecialActionEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; + +/** + * + * @author emerald000 + */ +public class Channel extends CardImpl { + + public Channel(UUID ownerId) { + super(ownerId, 95, "Channel", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{G}{G}"); + this.expansionSetCode = "3ED"; + + // Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool. + this.getSpellAbility().addEffect(new ChannelEffect()); + } + + public Channel(final Channel card) { + super(card); + } + + @Override + public Channel copy() { + return new Channel(this); + } +} + +class ChannelEffect extends OneShotEffect { + + ChannelEffect() { + super(Outcome.PutManaInPool); + this.staticText = "Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool"; + } + + ChannelEffect(final ChannelEffect effect) { + super(effect); + } + + @Override + public ChannelEffect copy() { + return new ChannelEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + SpecialAction specialAction = new ChannelSpecialAction(); + new CreateSpecialActionEffect(specialAction).apply(game, source); + + // Create a hidden delayed triggered ability to remove the special action at end of turn. + new CreateDelayedTriggeredAbilityEffect(new ChannelDelayedTriggeredAbility(specialAction.getId()), false).apply(game, source); + return true; + } +} + +class ChannelSpecialAction extends SpecialAction { + + ChannelSpecialAction() { + super(); + this.addCost(new PayLifeCost(1)); + this.addEffect(new BasicManaEffect(Mana.ColorlessMana(1))); + } + + ChannelSpecialAction(final ChannelSpecialAction ability) { + super(ability); + } + + @Override + public ChannelSpecialAction copy() { + return new ChannelSpecialAction(this); + } +} + +class ChannelDelayedTriggeredAbility extends DelayedTriggeredAbility { + + ChannelDelayedTriggeredAbility(UUID specialActionId) { + super(new RemoveSpecialActionEffect(specialActionId), Duration.OneUse); + this.usesStack = false; + this.setRuleVisible(false); + } + + ChannelDelayedTriggeredAbility(ChannelDelayedTriggeredAbility ability) { + super(ability); + } + + @Override + public ChannelDelayedTriggeredAbility copy() { + return new ChannelDelayedTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.CLEANUP_STEP_PRE; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/BroodBirthing.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/BroodBirthing.java index 16904f6c3d0..3c52327373b 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/BroodBirthing.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/BroodBirthing.java @@ -1,93 +1,93 @@ -/* - * 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.riseoftheeldrazi; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.OneShotEffect; -import mage.cards.CardImpl; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.game.permanent.token.EldraziSpawnToken; - -/** - * - * @author North - */ -public class BroodBirthing extends CardImpl { - - public BroodBirthing(UUID ownerId) { - super(ownerId, 138, "Brood Birthing", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); - this.expansionSetCode = "ROE"; - - - this.getSpellAbility().addEffect(new BroodBirthingEffect()); - } - - public BroodBirthing(final BroodBirthing card) { - super(card); - } - - @Override - public BroodBirthing copy() { - return new BroodBirthing(this); - } -} - -class BroodBirthingEffect extends OneShotEffect { - - public BroodBirthingEffect() { - super(Outcome.PutCreatureInPlay); - this.staticText = "If you control an Eldrazi Spawn, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {1} to your mana pool.\" Otherwise, put one of those tokens onto the battlefield"; - } - - public BroodBirthingEffect(final BroodBirthingEffect effect) { - super(effect); - } - - @Override - public BroodBirthingEffect copy() { - return new BroodBirthingEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Eldrazi Spawn"); - filter.add(new SubtypePredicate("Eldrazi")); - filter.add(new SubtypePredicate("Spawn")); - - EldraziSpawnToken token = new EldraziSpawnToken(); - int count = game.getBattlefield().countAll(filter, source.getControllerId(), game) > 0 ? 3 : 1; - token.putOntoBattlefield(count, game, source.getSourceId(), source.getControllerId()); - return true; - } -} +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +import mage.cards.CardImpl; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.permanent.token.EldraziSpawnToken; + +/** + * + * @author North + */ +public class BroodBirthing extends CardImpl { + + public BroodBirthing(UUID ownerId) { + super(ownerId, 138, "Brood Birthing", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{R}"); + this.expansionSetCode = "ROE"; + + + this.getSpellAbility().addEffect(new BroodBirthingEffect()); + } + + public BroodBirthing(final BroodBirthing card) { + super(card); + } + + @Override + public BroodBirthing copy() { + return new BroodBirthing(this); + } +} + +class BroodBirthingEffect extends OneShotEffect { + + public BroodBirthingEffect() { + super(Outcome.PutCreatureInPlay); + this.staticText = "If you control an Eldrazi Spawn, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {C} to your mana pool.\" Otherwise, put one of those tokens onto the battlefield"; + } + + public BroodBirthingEffect(final BroodBirthingEffect effect) { + super(effect); + } + + @Override + public BroodBirthingEffect copy() { + return new BroodBirthingEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("Eldrazi Spawn"); + filter.add(new SubtypePredicate("Eldrazi")); + filter.add(new SubtypePredicate("Spawn")); + + EldraziSpawnToken token = new EldraziSpawnToken(); + int count = game.getBattlefield().countAll(filter, source.getControllerId(), game) > 0 ? 3 : 1; + token.putOntoBattlefield(count, game, source.getSourceId(), source.getControllerId()); + return true; + } +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java index 07282e367fa..70959b92df0 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/EldraziTemple.java @@ -1,101 +1,101 @@ -/* - * 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.riseoftheeldrazi; - -import java.util.UUID; - -import mage.ConditionalMana; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.condition.Condition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.ConditionalColorlessManaAbility; -import mage.abilities.mana.builder.ConditionalManaBuilder; -import mage.cards.CardImpl; -import mage.game.Game; - -/** - * - * @author Loki, nantuko - */ -public class EldraziTemple extends CardImpl { - - public EldraziTemple(UUID ownerId) { - super(ownerId, 227, "Eldrazi Temple", Rarity.RARE, new CardType[]{ CardType.LAND }, null); - this.expansionSetCode = "ROE"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {T}: Add {2} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi. - this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new EldraziTempleManaBuilder())); - } - - public EldraziTemple(final EldraziTemple card) { - super(card); - } - - @Override - public EldraziTemple copy() { - return new EldraziTemple(this); - } -} - -class EldraziTempleManaBuilder extends ConditionalManaBuilder { - - @Override - public ConditionalMana build(Object... options) { - return new EldraziTempleConditionalMana(this.mana); - } - - @Override - public String getRule() { - return "Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi"; - } -} - -class EldraziTempleConditionalMana extends ConditionalMana { - - public EldraziTempleConditionalMana(Mana mana) { - super(mana); - addCondition(new EldraziTempleCondition()); - } -} - -class EldraziTempleCondition implements Condition { - - @Override - public boolean apply(Game game, Ability source) { - MageObject object = game.getObject(source.getSourceId()); - return object != null && object.hasSubtype("Eldrazi") && object.getColor(game).isColorless(); - } -} +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; + +import mage.ConditionalMana; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ConditionalColorlessManaAbility; +import mage.abilities.mana.builder.ConditionalManaBuilder; +import mage.cards.CardImpl; +import mage.game.Game; + +/** + * + * @author Loki, nantuko + */ +public class EldraziTemple extends CardImpl { + + public EldraziTemple(UUID ownerId) { + super(ownerId, 227, "Eldrazi Temple", Rarity.RARE, new CardType[]{ CardType.LAND }, null); + this.expansionSetCode = "ROE"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {T}: Add {C}{C} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi. + this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 2, new EldraziTempleManaBuilder())); + } + + public EldraziTemple(final EldraziTemple card) { + super(card); + } + + @Override + public EldraziTemple copy() { + return new EldraziTemple(this); + } +} + +class EldraziTempleManaBuilder extends ConditionalManaBuilder { + + @Override + public ConditionalMana build(Object... options) { + return new EldraziTempleConditionalMana(this.mana); + } + + @Override + public String getRule() { + return "Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi"; + } +} + +class EldraziTempleConditionalMana extends ConditionalMana { + + public EldraziTempleConditionalMana(Mana mana) { + super(mana); + addCondition(new EldraziTempleCondition()); + } +} + +class EldraziTempleCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source.getSourceId()); + return object != null && object.hasSubtype("Eldrazi") && object.getColor(game).isColorless(); + } +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/PawnOfUlamog.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PawnOfUlamog.java index cb8fabc54a3..676bcee6613 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/PawnOfUlamog.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/PawnOfUlamog.java @@ -1,118 +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.riseoftheeldrazi; - -import java.util.UUID; -import mage.MageInt; -import mage.MageObject; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.common.CreateTokenEffect; -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.events.GameEvent.EventType; -import mage.game.events.ZoneChangeEvent; -import mage.game.permanent.Permanent; -import mage.game.permanent.PermanentToken; -import mage.game.permanent.token.EldraziSpawnToken; - -/** - * - * @author North - */ -public class PawnOfUlamog extends CardImpl { - - public PawnOfUlamog(UUID ownerId) { - super(ownerId, 122, "Pawn of Ulamog", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{B}{B}"); - this.expansionSetCode = "ROE"; - this.subtype.add("Vampire"); - this.subtype.add("Shaman"); - - this.power = new MageInt(2); - this.toughness = new MageInt(2); - - this.addAbility(new PawnOfUlamogTriggeredAbility()); - } - - public PawnOfUlamog(final PawnOfUlamog card) { - super(card); - } - - @Override - public PawnOfUlamog copy() { - return new PawnOfUlamog(this); - } -} - -class PawnOfUlamogTriggeredAbility extends TriggeredAbilityImpl { - - public PawnOfUlamogTriggeredAbility() { - super(Zone.BATTLEFIELD, new CreateTokenEffect(new EldraziSpawnToken()), true); - } - - public PawnOfUlamogTriggeredAbility(PawnOfUlamogTriggeredAbility ability) { - super(ability); - } - - @Override - public PawnOfUlamogTriggeredAbility copy() { - return new PawnOfUlamogTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.ZONE_CHANGE; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - UUID targetId = event.getTargetId(); - MageObject card = game.getLastKnownInformation(targetId, Zone.BATTLEFIELD); - if (card != null && card instanceof Permanent && !(card instanceof PermanentToken)) { - Permanent permanent = (Permanent) card; - ZoneChangeEvent zEvent = (ZoneChangeEvent) event; - if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD - && permanent.getControllerId().equals(this.controllerId) - && (targetId.equals(this.getSourceId()) - || (permanent.getCardType().contains(CardType.CREATURE) - && !targetId.equals(this.getSourceId()) - && !(permanent instanceof PermanentToken)))) { - return true; - } - } - return false; - } - - @Override - public String getRule() { - return "Whenever Pawn of Ulamog or another nontoken creature you control dies, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has \"Sacrifice this creature: Add {1} to your mana pool.\""; - } -} +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.CreateTokenEffect; +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.events.GameEvent.EventType; +import mage.game.events.ZoneChangeEvent; +import mage.game.permanent.Permanent; +import mage.game.permanent.PermanentToken; +import mage.game.permanent.token.EldraziSpawnToken; + +/** + * + * @author North + */ +public class PawnOfUlamog extends CardImpl { + + public PawnOfUlamog(UUID ownerId) { + super(ownerId, 122, "Pawn of Ulamog", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{B}{B}"); + this.expansionSetCode = "ROE"; + this.subtype.add("Vampire"); + this.subtype.add("Shaman"); + + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + this.addAbility(new PawnOfUlamogTriggeredAbility()); + } + + public PawnOfUlamog(final PawnOfUlamog card) { + super(card); + } + + @Override + public PawnOfUlamog copy() { + return new PawnOfUlamog(this); + } +} + +class PawnOfUlamogTriggeredAbility extends TriggeredAbilityImpl { + + public PawnOfUlamogTriggeredAbility() { + super(Zone.BATTLEFIELD, new CreateTokenEffect(new EldraziSpawnToken()), true); + } + + public PawnOfUlamogTriggeredAbility(PawnOfUlamogTriggeredAbility ability) { + super(ability); + } + + @Override + public PawnOfUlamogTriggeredAbility copy() { + return new PawnOfUlamogTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.ZONE_CHANGE; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + UUID targetId = event.getTargetId(); + MageObject card = game.getLastKnownInformation(targetId, Zone.BATTLEFIELD); + if (card != null && card instanceof Permanent && !(card instanceof PermanentToken)) { + Permanent permanent = (Permanent) card; + ZoneChangeEvent zEvent = (ZoneChangeEvent) event; + if (zEvent.getFromZone() == Zone.BATTLEFIELD && zEvent.getToZone() == Zone.GRAVEYARD + && permanent.getControllerId().equals(this.controllerId) + && (targetId.equals(this.getSourceId()) + || (permanent.getCardType().contains(CardType.CREATURE) + && !targetId.equals(this.getSourceId()) + && !(permanent instanceof PermanentToken)))) { + return true; + } + } + return false; + } + + @Override + public String getRule() { + return "Whenever Pawn of Ulamog or another nontoken creature you control dies, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has \"Sacrifice this creature: Add {C} to your mana pool.\""; + } +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/RapaciousOne.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/RapaciousOne.java index cf2796dfc5a..73a01d95e94 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/RapaciousOne.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/RapaciousOne.java @@ -1,108 +1,108 @@ -/* - * 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.riseoftheeldrazi; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.keyword.TrampleAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.game.Game; -import mage.game.events.DamagedPlayerEvent; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; -import mage.game.permanent.token.EldraziSpawnToken; - -/** - * - * @author North - */ -public class RapaciousOne extends CardImpl { - - public RapaciousOne(UUID ownerId) { - super(ownerId, 162, "Rapacious One", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{5}{R}"); - this.expansionSetCode = "ROE"; - this.subtype.add("Eldrazi"); - this.subtype.add("Drone"); - - this.power = new MageInt(5); - this.toughness = new MageInt(4); - - this.addAbility(TrampleAbility.getInstance()); - this.addAbility(new RapaciousOneTriggeredAbility()); - } - - public RapaciousOne(final RapaciousOne card) { - super(card); - } - - @Override - public RapaciousOne copy() { - return new RapaciousOne(this); - } -} - -class RapaciousOneTriggeredAbility extends TriggeredAbilityImpl { - - public RapaciousOneTriggeredAbility() { - super(Zone.BATTLEFIELD, null, false); - } - - public RapaciousOneTriggeredAbility(final RapaciousOneTriggeredAbility ability) { - super(ability); - } - - @Override - public RapaciousOneTriggeredAbility copy() { - return new RapaciousOneTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.DAMAGED_PLAYER; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - if (event.getSourceId().equals(this.sourceId) && ((DamagedPlayerEvent) event).isCombatDamage()) { - this.getEffects().clear(); - this.addEffect(new CreateTokenEffect(new EldraziSpawnToken(), event.getAmount())); - return true; - } - return false; - } - - @Override - public String getRule() { - return "Whenever {this} deals combat damage to a player, put that many 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {1} to your mana pool.\""; - } -} +/* + * 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.riseoftheeldrazi; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.keyword.TrampleAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.game.events.DamagedPlayerEvent; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.game.permanent.token.EldraziSpawnToken; + +/** + * + * @author North + */ +public class RapaciousOne extends CardImpl { + + public RapaciousOne(UUID ownerId) { + super(ownerId, 162, "Rapacious One", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{5}{R}"); + this.expansionSetCode = "ROE"; + this.subtype.add("Eldrazi"); + this.subtype.add("Drone"); + + this.power = new MageInt(5); + this.toughness = new MageInt(4); + + this.addAbility(TrampleAbility.getInstance()); + this.addAbility(new RapaciousOneTriggeredAbility()); + } + + public RapaciousOne(final RapaciousOne card) { + super(card); + } + + @Override + public RapaciousOne copy() { + return new RapaciousOne(this); + } +} + +class RapaciousOneTriggeredAbility extends TriggeredAbilityImpl { + + public RapaciousOneTriggeredAbility() { + super(Zone.BATTLEFIELD, null, false); + } + + public RapaciousOneTriggeredAbility(final RapaciousOneTriggeredAbility ability) { + super(ability); + } + + @Override + public RapaciousOneTriggeredAbility copy() { + return new RapaciousOneTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.DAMAGED_PLAYER; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getSourceId().equals(this.sourceId) && ((DamagedPlayerEvent) event).isCombatDamage()) { + this.getEffects().clear(); + this.addEffect(new CreateTokenEffect(new EldraziSpawnToken(), event.getAmount())); + return true; + } + return false; + } + + @Override + public String getRule() { + return "Whenever {this} deals combat damage to a player, put that many 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have \"Sacrifice this creature: Add {C} to your mana pool.\""; + } +} diff --git a/Mage.Sets/src/mage/sets/riseoftheeldrazi/SpawnsireOfUlamog.java b/Mage.Sets/src/mage/sets/riseoftheeldrazi/SpawnsireOfUlamog.java index 7a79b6ea9bf..ccc9cd00f5c 100644 --- a/Mage.Sets/src/mage/sets/riseoftheeldrazi/SpawnsireOfUlamog.java +++ b/Mage.Sets/src/mage/sets/riseoftheeldrazi/SpawnsireOfUlamog.java @@ -67,7 +67,7 @@ public class SpawnsireOfUlamog extends CardImpl { // Annihilator 1 this.addAbility(new AnnihilatorAbility(1)); - // {4}: Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." + // {4}: Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool." this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new EldraziSpawnToken(), 2), new GenericManaCost(4))); // {20}: Cast any number of Eldrazi cards you own from outside the game without paying their mana costs. diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/MikokoroCenterOfTheSea.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/MikokoroCenterOfTheSea.java index 17806f4c2b6..2eb051b846e 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/MikokoroCenterOfTheSea.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/MikokoroCenterOfTheSea.java @@ -1,69 +1,69 @@ -/* - * 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.saviorsofkamigawa; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.DrawCardAllEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; - -/** - * - * @author Loki - */ -public class MikokoroCenterOfTheSea extends CardImpl { - - public MikokoroCenterOfTheSea(UUID ownerId) { - super(ownerId, 162, "Mikokoro, Center of the Sea", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "SOK"; - this.supertype.add("Legendary"); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {2}, {tap}: Each player draws a card. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardAllEffect(1), new GenericManaCost(2)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public MikokoroCenterOfTheSea(final MikokoroCenterOfTheSea card) { - super(card); - } - - @Override - public MikokoroCenterOfTheSea copy() { - return new MikokoroCenterOfTheSea(this); - } -} +/* + * 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.saviorsofkamigawa; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.DrawCardAllEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; + +/** + * + * @author Loki + */ +public class MikokoroCenterOfTheSea extends CardImpl { + + public MikokoroCenterOfTheSea(UUID ownerId) { + super(ownerId, 162, "Mikokoro, Center of the Sea", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "SOK"; + this.supertype.add("Legendary"); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {2}, {tap}: Each player draws a card. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardAllEffect(1), new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public MikokoroCenterOfTheSea(final MikokoroCenterOfTheSea card) { + super(card); + } + + @Override + public MikokoroCenterOfTheSea copy() { + return new MikokoroCenterOfTheSea(this); + } +} diff --git a/Mage.Sets/src/mage/sets/saviorsofkamigawa/MirenTheMoaningWell.java b/Mage.Sets/src/mage/sets/saviorsofkamigawa/MirenTheMoaningWell.java index 44c86acf12b..b96cbb0462d 100644 --- a/Mage.Sets/src/mage/sets/saviorsofkamigawa/MirenTheMoaningWell.java +++ b/Mage.Sets/src/mage/sets/saviorsofkamigawa/MirenTheMoaningWell.java @@ -1,112 +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.saviorsofkamigawa; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.Cost; -import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.game.Game; -import mage.players.Player; -import mage.target.common.TargetControlledCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class MirenTheMoaningWell extends CardImpl { - - public MirenTheMoaningWell(UUID ownerId) { - super(ownerId, 163, "Miren, the Moaning Well", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "SOK"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {3}, {tap}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirenTheMoaningWellEffect(), new GenericManaCost(3)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,new FilterControlledCreaturePermanent("a creature"), true))); - this.addAbility(ability); - } - - public MirenTheMoaningWell(final MirenTheMoaningWell card) { - super(card); - } - - @Override - public MirenTheMoaningWell copy() { - return new MirenTheMoaningWell(this); - } -} - -class MirenTheMoaningWellEffect extends OneShotEffect { - - public MirenTheMoaningWellEffect() { - super(Outcome.GainLife); - this.staticText = "You gain life equal to the sacrificed creature's toughness"; - } - - public MirenTheMoaningWellEffect(final MirenTheMoaningWellEffect effect) { - super(effect); - } - - @Override - public MirenTheMoaningWellEffect copy() { - return new MirenTheMoaningWellEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - for (Cost cost : source.getCosts()) { - if (cost instanceof SacrificeTargetCost) { - int amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getToughness().getValue(); - if (amount > 0) { - controller.gainLife(amount, game); - } - } - } - return true; - } - return false; - } -} +/* + * 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.saviorsofkamigawa; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.Cost; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class MirenTheMoaningWell extends CardImpl { + + public MirenTheMoaningWell(UUID ownerId) { + super(ownerId, 163, "Miren, the Moaning Well", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "SOK"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {3}, {tap}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new MirenTheMoaningWellEffect(), new GenericManaCost(3)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent(1,1,new FilterControlledCreaturePermanent("a creature"), true))); + this.addAbility(ability); + } + + public MirenTheMoaningWell(final MirenTheMoaningWell card) { + super(card); + } + + @Override + public MirenTheMoaningWell copy() { + return new MirenTheMoaningWell(this); + } +} + +class MirenTheMoaningWellEffect extends OneShotEffect { + + public MirenTheMoaningWellEffect() { + super(Outcome.GainLife); + this.staticText = "You gain life equal to the sacrificed creature's toughness"; + } + + public MirenTheMoaningWellEffect(final MirenTheMoaningWellEffect effect) { + super(effect); + } + + @Override + public MirenTheMoaningWellEffect copy() { + return new MirenTheMoaningWellEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + for (Cost cost : source.getCosts()) { + if (cost instanceof SacrificeTargetCost) { + int amount = ((SacrificeTargetCost) cost).getPermanents().get(0).getToughness().getValue(); + if (amount > 0) { + controller.gainLife(amount, game); + } + } + } + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java index 07863fd0e74..a29f82650aa 100644 --- a/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java +++ b/Mage.Sets/src/mage/sets/scarsofmirrodin/MyrReservoir.java @@ -1,122 +1,122 @@ -/* - * 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.scarsofmirrodin; - -import mage.ConditionalMana; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.condition.Condition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.effects.common.ReturnToHandTargetEffect; -import mage.abilities.mana.BasicManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.game.Game; -import mage.target.common.TargetCardInYourGraveyard; - -import java.util.UUID; - -/** - * @author nantuko - */ -public class MyrReservoir extends CardImpl { - - private static final FilterCard myrCardFilter = new FilterCard("Myr card from your graveyard"); - - static { - myrCardFilter.add(new SubtypePredicate("Myr")); - } - - public MyrReservoir(UUID ownerId) { - super(ownerId, 183, "Myr Reservoir", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}"); - this.expansionSetCode = "SOM"; - - // {tap}: Add {2} to your mana pool. Spend this mana only to cast Myr spells or activate abilities of Myr. - this.addAbility(new MyrReservoirManaAbility()); - - // {3}, {tap}: Return target Myr card from your graveyard to your hand. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new GenericManaCost(3)); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCardInYourGraveyard(myrCardFilter)); - this.addAbility(ability); - } - - public MyrReservoir(final MyrReservoir card) { - super(card); - } - - @Override - public MyrReservoir copy() { - return new MyrReservoir(this); - } -} - -class MyrReservoirManaAbility extends BasicManaAbility { - - MyrReservoirManaAbility() { - super(new BasicManaEffect(new MyrConditionalMana())); - this.netMana.add(new Mana(0,0,0,0,0,2,0)); - } - - MyrReservoirManaAbility(MyrReservoirManaAbility ability) { - super(ability); - } - - @Override - public MyrReservoirManaAbility copy() { - return new MyrReservoirManaAbility(this); - } -} - -class MyrConditionalMana extends ConditionalMana { - - public MyrConditionalMana() { - super(Mana.ColorlessMana(2)); - staticText = "Spend this mana only to cast Myr spells or activate abilities of Myr"; - addCondition(new MyrManaCondition()); - } -} - -class MyrManaCondition implements Condition { - @Override - public boolean apply(Game game, Ability source) { - MageObject object = game.getObject(source.getSourceId()); - if (object != null && object.hasSubtype("Myr")) { - return true; - } - return false; - } -} +/* + * 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.scarsofmirrodin; + +import mage.ConditionalMana; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.condition.Condition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.effects.common.ReturnToHandTargetEffect; +import mage.abilities.mana.BasicManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.target.common.TargetCardInYourGraveyard; + +import java.util.UUID; + +/** + * @author nantuko + */ +public class MyrReservoir extends CardImpl { + + private static final FilterCard myrCardFilter = new FilterCard("Myr card from your graveyard"); + + static { + myrCardFilter.add(new SubtypePredicate("Myr")); + } + + public MyrReservoir(UUID ownerId) { + super(ownerId, 183, "Myr Reservoir", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{3}"); + this.expansionSetCode = "SOM"; + + // {tap}: Add {C}{C} to your mana pool. Spend this mana only to cast Myr spells or activate abilities of Myr. + this.addAbility(new MyrReservoirManaAbility()); + + // {3}, {tap}: Return target Myr card from your graveyard to your hand. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandTargetEffect(), new GenericManaCost(3)); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCardInYourGraveyard(myrCardFilter)); + this.addAbility(ability); + } + + public MyrReservoir(final MyrReservoir card) { + super(card); + } + + @Override + public MyrReservoir copy() { + return new MyrReservoir(this); + } +} + +class MyrReservoirManaAbility extends BasicManaAbility { + + MyrReservoirManaAbility() { + super(new BasicManaEffect(new MyrConditionalMana())); + this.netMana.add(new Mana(0,0,0,0,0,2,0)); + } + + MyrReservoirManaAbility(MyrReservoirManaAbility ability) { + super(ability); + } + + @Override + public MyrReservoirManaAbility copy() { + return new MyrReservoirManaAbility(this); + } +} + +class MyrConditionalMana extends ConditionalMana { + + public MyrConditionalMana() { + super(Mana.ColorlessMana(2)); + staticText = "Spend this mana only to cast Myr spells or activate abilities of Myr"; + addCondition(new MyrManaCondition()); + } +} + +class MyrManaCondition implements Condition { + @Override + public boolean apply(Game game, Ability source) { + MageObject object = game.getObject(source.getSourceId()); + if (object != null && object.hasSubtype("Myr")) { + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/scourge/ThundercloudElemental.java b/Mage.Sets/src/mage/sets/scourge/ThundercloudElemental.java new file mode 100644 index 00000000000..b53bb51cf03 --- /dev/null +++ b/Mage.Sets/src/mage/sets/scourge/ThundercloudElemental.java @@ -0,0 +1,86 @@ +/* + * 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.scourge; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.TapAllEffect; +import mage.abilities.effects.common.continuous.LoseAbilityAllEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.Filter; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.ToughnessPredicate; +import mage.filter.predicate.permanent.AnotherPredicate; + +/** + * + * @author fireshoes + */ +public class ThundercloudElemental extends CardImpl { + + private static final FilterCreaturePermanent toughnessFilter = new FilterCreaturePermanent("creatures with toughness 2 or less"); + private static final FilterCreaturePermanent flyingFilter = new FilterCreaturePermanent("All other creatures"); + + static { + toughnessFilter.add(new ToughnessPredicate(Filter.ComparisonType.LessThan, 3)); + flyingFilter.add(new AnotherPredicate()); + } + + public ThundercloudElemental(UUID ownerId) { + super(ownerId, 54, "Thundercloud Elemental", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{5}{U}{U}"); + this.expansionSetCode = "SCG"; + this.subtype.add("Elemental"); + this.power = new MageInt(3); + this.toughness = new MageInt(4); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // {3}{U}: Tap all creatures with toughness 2 or less. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new TapAllEffect(toughnessFilter), new ManaCostsImpl("{3}{U}"))); + + // {3}{U}: All other creatures lose flying until end of turn. + this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new LoseAbilityAllEffect(flyingFilter, FlyingAbility.getInstance(), Duration.EndOfTurn), new ManaCostsImpl("{3}{U}"))); + } + + public ThundercloudElemental(final ThundercloudElemental card) { + super(card); + } + + @Override + public ThundercloudElemental copy() { + return new ThundercloudElemental(this); + } +} diff --git a/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java b/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java index 9232bea4d46..5f57cf73898 100644 --- a/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java +++ b/Mage.Sets/src/mage/sets/seventhedition/SisaysRing.java @@ -46,7 +46,7 @@ public class SisaysRing extends CardImpl { super(ownerId, 315, "Sisay's Ring", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); this.expansionSetCode = "7ED"; - // {tap}: Add {2} to your mana pool. + // {tap}: Add {C}{C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new Mana(0,0,0,0,0,2,0), new TapSourceCost())); } diff --git a/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java b/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java index eaf0eaba966..2f519202309 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/FireLitThicket.java @@ -48,7 +48,7 @@ public class FireLitThicket extends CardImpl { super(ownerId, 271, "Fire-Lit Thicket", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "SHM"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {RG}, {tap}: Add {R}{R}, {R}{G}, or {G}{G} to your mana pool. SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.RedMana(2), new ManaCostsImpl("{R/G}")); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java b/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java index 32ef2c7ab24..0ceeb37c22f 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/GravenCairns.java @@ -48,7 +48,7 @@ public class GravenCairns extends CardImpl { super(ownerId, 272, "Graven Cairns", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "SHM"; - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {B/R}, {tap}: Add {B}{B}, {B}{R}, or {R}{R} to your mana pool. diff --git a/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java b/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java index 6509ba77bff..3c557dfcd5b 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/MysticGate.java @@ -48,7 +48,7 @@ public class MysticGate extends CardImpl { super(ownerId, 277, "Mystic Gate", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "SHM"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {WU}, {tap}: Add {W}{W}, {W}{U}, or {U}{U} to your mana pool. SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.WhiteMana(2), new ManaCostsImpl("{W/U}")); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java b/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java index 6907063e21f..05eb96aa6fd 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/RosheenMeanderer.java @@ -1,114 +1,114 @@ -/* - * 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.shadowmoor; - -import java.util.UUID; -import mage.ConditionalMana; -import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.condition.Condition; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.BasicManaAbility; -import mage.cards.CardImpl; -import mage.constants.AbilityType; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.game.Game; - -/** - * - * @author jeffwadsworth - */ -public class RosheenMeanderer extends CardImpl { - - public RosheenMeanderer(UUID ownerId) { - super(ownerId, 214, "Rosheen Meanderer", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{R/G}"); - this.expansionSetCode = "SHM"; - this.supertype.add("Legendary"); - this.subtype.add("Giant"); - this.subtype.add("Shaman"); - this.power = new MageInt(4); - this.toughness = new MageInt(4); - - // {T}: Add {4} to your mana pool. Spend this mana only on costs that contain {X}. - this.addAbility(new RosheenMeandererManaAbility()); - - } - - public RosheenMeanderer(final RosheenMeanderer card) { - super(card); - } - - @Override - public RosheenMeanderer copy() { - return new RosheenMeanderer(this); - } -} - -class RosheenMeandererManaAbility extends BasicManaAbility { - - RosheenMeandererManaAbility() { - super(new BasicManaEffect(new RosheenMeandererConditionalMana())); - this.netMana.add(new Mana(0, 0, 0, 0, 0, 4, 0)); - } - - RosheenMeandererManaAbility(RosheenMeandererManaAbility ability) { - super(ability); - } - - @Override - public RosheenMeandererManaAbility copy() { - return new RosheenMeandererManaAbility(this); - } -} - -class RosheenMeandererConditionalMana extends ConditionalMana { - - public RosheenMeandererConditionalMana() { - super(Mana.ColorlessMana(4)); - staticText = "Spend this mana only on costs that contain {X}"; - addCondition(new RosheenMeandererManaCondition()); - } -} - -class RosheenMeandererManaCondition implements Condition { - - @Override - public boolean apply(Game game, Ability source) { - if (AbilityType.SPELL.equals(source.getAbilityType())) { - MageObject object = game.getObject(source.getSourceId()); - return object != null - && object.getManaCost().getText().contains("X"); - - } else { - return source.getManaCosts().getText().contains("X"); - } - } -} +/* + * 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.shadowmoor; + +import java.util.UUID; +import mage.ConditionalMana; +import mage.MageInt; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.condition.Condition; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.BasicManaAbility; +import mage.cards.CardImpl; +import mage.constants.AbilityType; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.game.Game; + +/** + * + * @author jeffwadsworth + */ +public class RosheenMeanderer extends CardImpl { + + public RosheenMeanderer(UUID ownerId) { + super(ownerId, 214, "Rosheen Meanderer", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{3}{R/G}"); + this.expansionSetCode = "SHM"; + this.supertype.add("Legendary"); + this.subtype.add("Giant"); + this.subtype.add("Shaman"); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // {T}: Add {C}{C}{C}{C} to your mana pool. Spend this mana only on costs that contain {X}. + this.addAbility(new RosheenMeandererManaAbility()); + + } + + public RosheenMeanderer(final RosheenMeanderer card) { + super(card); + } + + @Override + public RosheenMeanderer copy() { + return new RosheenMeanderer(this); + } +} + +class RosheenMeandererManaAbility extends BasicManaAbility { + + RosheenMeandererManaAbility() { + super(new BasicManaEffect(new RosheenMeandererConditionalMana())); + this.netMana.add(new Mana(0, 0, 0, 0, 0, 4, 0)); + } + + RosheenMeandererManaAbility(RosheenMeandererManaAbility ability) { + super(ability); + } + + @Override + public RosheenMeandererManaAbility copy() { + return new RosheenMeandererManaAbility(this); + } +} + +class RosheenMeandererConditionalMana extends ConditionalMana { + + public RosheenMeandererConditionalMana() { + super(Mana.ColorlessMana(4)); + staticText = "Spend this mana only on costs that contain {X}"; + addCondition(new RosheenMeandererManaCondition()); + } +} + +class RosheenMeandererManaCondition implements Condition { + + @Override + public boolean apply(Game game, Ability source) { + if (AbilityType.SPELL.equals(source.getAbilityType())) { + MageObject object = game.getObject(source.getSourceId()); + return object != null + && object.getManaCost().getText().contains("X"); + + } else { + return source.getManaCosts().getText().contains("X"); + } + } +} diff --git a/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java b/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java index bc204454e2f..ff6fe2bc7dd 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/SunkenRuins.java @@ -48,7 +48,7 @@ public class SunkenRuins extends CardImpl { super(ownerId, 280, "Sunken Ruins", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "SHM"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {UB}, {tap}: Add {U}{U}, {U}{B}, or {B}{B} to your mana pool. SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlueMana(2), new ManaCostsImpl("{U/B}")); diff --git a/Mage.Sets/src/mage/sets/shadowmoor/WoodedBastion.java b/Mage.Sets/src/mage/sets/shadowmoor/WoodedBastion.java index 0c6327d65ee..aaca1d70f12 100644 --- a/Mage.Sets/src/mage/sets/shadowmoor/WoodedBastion.java +++ b/Mage.Sets/src/mage/sets/shadowmoor/WoodedBastion.java @@ -48,7 +48,7 @@ public class WoodedBastion extends CardImpl { super(ownerId, 281, "Wooded Bastion", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "SHM"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {GW}, {tap}: Add {G}{G}, {G}{W}, or {W}{W} to your mana pool. SimpleManaAbility ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.GreenMana(2), new ManaCostsImpl("{G/W}")); diff --git a/Mage.Sets/src/mage/sets/shardsofalara/BantPanorama.java b/Mage.Sets/src/mage/sets/shardsofalara/BantPanorama.java index d93ffc176f5..d68bb36047d 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/BantPanorama.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/BantPanorama.java @@ -1,90 +1,90 @@ -/* - * 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.shardsofalara; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.SacrificeSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.filter.predicate.mageobject.SupertypePredicate; -import mage.target.common.TargetCardInLibrary; - -/** - * - * @author North - */ -public class BantPanorama extends CardImpl { - - private static final FilterCard filter = new FilterCard("a basic Forest, Plains, or Island card"); - - static { - filter.add(new CardTypePredicate(CardType.LAND)); - filter.add(new SupertypePredicate("Basic")); - filter.add(Predicates.or( - new SubtypePredicate("Forest"), - new SubtypePredicate("Plains"), - new SubtypePredicate("Island"))); - } - - public BantPanorama(UUID ownerId) { - super(ownerId, 221, "Bant Panorama", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "ALA"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}, {T}, Sacrifice Bant Panorama: Search your library for a basic Forest, Plains, or Island card and put it onto the battlefield tapped. Then shuffle your library. - TargetCardInLibrary target = new TargetCardInLibrary(filter); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true, Outcome.PutLandInPlay), new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - ability.addCost(new SacrificeSourceCost()); - this.addAbility(ability); - } - - public BantPanorama(final BantPanorama card) { - super(card); - } - - @Override - public BantPanorama copy() { - return new BantPanorama(this); - } -} +/* + * 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.shardsofalara; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.mageobject.SupertypePredicate; +import mage.target.common.TargetCardInLibrary; + +/** + * + * @author North + */ +public class BantPanorama extends CardImpl { + + private static final FilterCard filter = new FilterCard("a basic Forest, Plains, or Island card"); + + static { + filter.add(new CardTypePredicate(CardType.LAND)); + filter.add(new SupertypePredicate("Basic")); + filter.add(Predicates.or( + new SubtypePredicate("Forest"), + new SubtypePredicate("Plains"), + new SubtypePredicate("Island"))); + } + + public BantPanorama(UUID ownerId) { + super(ownerId, 221, "Bant Panorama", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "ALA"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}, {T}, Sacrifice Bant Panorama: Search your library for a basic Forest, Plains, or Island card and put it onto the battlefield tapped. Then shuffle your library. + TargetCardInLibrary target = new TargetCardInLibrary(filter); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new SearchLibraryPutInPlayEffect(target, true, Outcome.PutLandInPlay), new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public BantPanorama(final BantPanorama card) { + super(card); + } + + @Override + public BantPanorama copy() { + return new BantPanorama(this); + } +} diff --git a/Mage.Sets/src/mage/sets/shardsofalara/Drumhunter.java b/Mage.Sets/src/mage/sets/shardsofalara/Drumhunter.java index 6f11a6e1fa3..227e9c95cce 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/Drumhunter.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/Drumhunter.java @@ -1,121 +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.shardsofalara; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.Filter; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.PowerPredicate; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; - -/** - * - * @author North - */ -public class Drumhunter extends CardImpl { - - public Drumhunter(UUID ownerId) { - super(ownerId, 129, "Drumhunter", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{G}"); - this.expansionSetCode = "ALA"; - this.subtype.add("Human"); - this.subtype.add("Druid"); - this.subtype.add("Warrior"); - - this.power = new MageInt(2); - this.toughness = new MageInt(2); - - // At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card. - this.addAbility(new DrumHunterTriggeredAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public Drumhunter(final Drumhunter card) { - super(card); - } - - @Override - public Drumhunter copy() { - return new Drumhunter(this); - } -} - -class DrumHunterTriggeredAbility extends TriggeredAbilityImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); - - static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); - } - - public DrumHunterTriggeredAbility() { - super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), true); - } - - public DrumHunterTriggeredAbility(final DrumHunterTriggeredAbility ability) { - super(ability); - } - - @Override - public DrumHunterTriggeredAbility copy() { - return new DrumHunterTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.END_TURN_STEP_PRE; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - if (event.getType() == GameEvent.EventType.END_TURN_STEP_PRE && event.getPlayerId().equals(this.controllerId)) { - return true; - } - return false; - } - - @Override - public boolean checkInterveningIfClause(Game game) { - return game.getBattlefield().countAll(filter, this.controllerId, game) > 0; - } - - @Override - public String getRule() { - return "At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card."; - } -} +/* + * 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.shardsofalara; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.Filter; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; + +/** + * + * @author North + */ +public class Drumhunter extends CardImpl { + + public Drumhunter(UUID ownerId) { + super(ownerId, 129, "Drumhunter", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{G}"); + this.expansionSetCode = "ALA"; + this.subtype.add("Human"); + this.subtype.add("Druid"); + this.subtype.add("Warrior"); + + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card. + this.addAbility(new DrumHunterTriggeredAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public Drumhunter(final Drumhunter card) { + super(card); + } + + @Override + public Drumhunter copy() { + return new Drumhunter(this); + } +} + +class DrumHunterTriggeredAbility extends TriggeredAbilityImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); + + static { + filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + } + + public DrumHunterTriggeredAbility() { + super(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(1), true); + } + + public DrumHunterTriggeredAbility(final DrumHunterTriggeredAbility ability) { + super(ability); + } + + @Override + public DrumHunterTriggeredAbility copy() { + return new DrumHunterTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.END_TURN_STEP_PRE; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + if (event.getType() == GameEvent.EventType.END_TURN_STEP_PRE && event.getPlayerId().equals(this.controllerId)) { + return true; + } + return false; + } + + @Override + public boolean checkInterveningIfClause(Game game) { + return game.getBattlefield().countAll(filter, this.controllerId, game) > 0; + } + + @Override + public String getRule() { + return "At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card."; + } +} diff --git a/Mage.Sets/src/mage/sets/shardsofalara/ExuberantFirestoker.java b/Mage.Sets/src/mage/sets/shardsofalara/ExuberantFirestoker.java index c1fa5e7a721..f6b5aaa48b9 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/ExuberantFirestoker.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/ExuberantFirestoker.java @@ -1,120 +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.shardsofalara; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.Filter; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.PowerPredicate; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; -import mage.target.TargetPlayer; - -/** - * - * @author North - */ -public class ExuberantFirestoker extends CardImpl { - - public ExuberantFirestoker(UUID ownerId) { - super(ownerId, 99, "Exuberant Firestoker", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); - this.expansionSetCode = "ALA"; - this.subtype.add("Human"); - this.subtype.add("Druid"); - this.subtype.add("Shaman"); - - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // At the beginning of your end step, if you control a creature with power 5 or greater, you may have Exuberant Firestoker deal 2 damage to target player. - this.addAbility(new ExuberantFirestokerTriggeredAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public ExuberantFirestoker(final ExuberantFirestoker card) { - super(card); - } - - @Override - public ExuberantFirestoker copy() { - return new ExuberantFirestoker(this); - } -} - -class ExuberantFirestokerTriggeredAbility extends TriggeredAbilityImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); - - static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); - } - - public ExuberantFirestokerTriggeredAbility() { - super(Zone.BATTLEFIELD, new DamageTargetEffect(2), true); - this.addTarget(new TargetPlayer()); - } - - public ExuberantFirestokerTriggeredAbility(final ExuberantFirestokerTriggeredAbility ability) { - super(ability); - } - - @Override - public ExuberantFirestokerTriggeredAbility copy() { - return new ExuberantFirestokerTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.END_TURN_STEP_PRE; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - return event.getPlayerId().equals(this.controllerId); - } - - @Override - public boolean checkInterveningIfClause(Game game) { - return game.getBattlefield().countAll(filter, this.controllerId, game) > 0; - } - - @Override - public String getRule() { - return "At the beginning of your end step, if you control a creature with power 5 or greater, you may have {this} deal 2 damage to target player."; - } -} +/* + * 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.shardsofalara; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.Filter; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; +import mage.target.TargetPlayer; + +/** + * + * @author North + */ +public class ExuberantFirestoker extends CardImpl { + + public ExuberantFirestoker(UUID ownerId) { + super(ownerId, 99, "Exuberant Firestoker", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "ALA"; + this.subtype.add("Human"); + this.subtype.add("Druid"); + this.subtype.add("Shaman"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // At the beginning of your end step, if you control a creature with power 5 or greater, you may have Exuberant Firestoker deal 2 damage to target player. + this.addAbility(new ExuberantFirestokerTriggeredAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public ExuberantFirestoker(final ExuberantFirestoker card) { + super(card); + } + + @Override + public ExuberantFirestoker copy() { + return new ExuberantFirestoker(this); + } +} + +class ExuberantFirestokerTriggeredAbility extends TriggeredAbilityImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); + + static { + filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + } + + public ExuberantFirestokerTriggeredAbility() { + super(Zone.BATTLEFIELD, new DamageTargetEffect(2), true); + this.addTarget(new TargetPlayer()); + } + + public ExuberantFirestokerTriggeredAbility(final ExuberantFirestokerTriggeredAbility ability) { + super(ability); + } + + @Override + public ExuberantFirestokerTriggeredAbility copy() { + return new ExuberantFirestokerTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.END_TURN_STEP_PRE; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return event.getPlayerId().equals(this.controllerId); + } + + @Override + public boolean checkInterveningIfClause(Game game) { + return game.getBattlefield().countAll(filter, this.controllerId, game) > 0; + } + + @Override + public String getRule() { + return "At the beginning of your end step, if you control a creature with power 5 or greater, you may have {this} deal 2 damage to target player."; + } +} diff --git a/Mage.Sets/src/mage/sets/shardsofalara/SunseedNurturer.java b/Mage.Sets/src/mage/sets/shardsofalara/SunseedNurturer.java index 48981e3b3e1..6630dc57bac 100644 --- a/Mage.Sets/src/mage/sets/shardsofalara/SunseedNurturer.java +++ b/Mage.Sets/src/mage/sets/shardsofalara/SunseedNurturer.java @@ -1,118 +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.shardsofalara; - -import java.util.UUID; -import mage.MageInt; -import mage.abilities.TriggeredAbilityImpl; -import mage.abilities.effects.common.GainLifeEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.Filter; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.mageobject.PowerPredicate; -import mage.game.Game; -import mage.game.events.GameEvent; -import mage.game.events.GameEvent.EventType; - -/** - * - * @author North - */ -public class SunseedNurturer extends CardImpl { - - public SunseedNurturer(UUID ownerId) { - super(ownerId, 29, "Sunseed Nurturer", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); - this.expansionSetCode = "ALA"; - this.subtype.add("Human"); - this.subtype.add("Druid"); - this.subtype.add("Wizard"); - - this.power = new MageInt(1); - this.toughness = new MageInt(1); - - // At the beginning of your end step, if you control a creature with power 5 or greater, you may gain 2 life. - this.addAbility(new SunseedNurturerTriggeredAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - } - - public SunseedNurturer(final SunseedNurturer card) { - super(card); - } - - @Override - public SunseedNurturer copy() { - return new SunseedNurturer(this); - } -} - -class SunseedNurturerTriggeredAbility extends TriggeredAbilityImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); - - static { - filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); - } - - public SunseedNurturerTriggeredAbility() { - super(Zone.BATTLEFIELD, new GainLifeEffect(2), true); - } - - public SunseedNurturerTriggeredAbility(final SunseedNurturerTriggeredAbility ability) { - super(ability); - } - - @Override - public SunseedNurturerTriggeredAbility copy() { - return new SunseedNurturerTriggeredAbility(this); - } - - @Override - public boolean checkEventType(GameEvent event, Game game) { - return event.getType() == EventType.END_TURN_STEP_PRE; - } - - @Override - public boolean checkTrigger(GameEvent event, Game game) { - return event.getPlayerId().equals(this.controllerId); - } - - @Override - public boolean checkInterveningIfClause(Game game) { - return game.getBattlefield().countAll(filter, this.controllerId, game) > 0; - } - - @Override - public String getRule() { - return "At the beginning of your end step, if you control a creature with power 5 or greater, you may gain 2 life."; - } -} +/* + * 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.shardsofalara; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.TriggeredAbilityImpl; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.Filter; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.mageobject.PowerPredicate; +import mage.game.Game; +import mage.game.events.GameEvent; +import mage.game.events.GameEvent.EventType; + +/** + * + * @author North + */ +public class SunseedNurturer extends CardImpl { + + public SunseedNurturer(UUID ownerId) { + super(ownerId, 29, "Sunseed Nurturer", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{W}"); + this.expansionSetCode = "ALA"; + this.subtype.add("Human"); + this.subtype.add("Druid"); + this.subtype.add("Wizard"); + + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // At the beginning of your end step, if you control a creature with power 5 or greater, you may gain 2 life. + this.addAbility(new SunseedNurturerTriggeredAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + } + + public SunseedNurturer(final SunseedNurturer card) { + super(card); + } + + @Override + public SunseedNurturer copy() { + return new SunseedNurturer(this); + } +} + +class SunseedNurturerTriggeredAbility extends TriggeredAbilityImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature with power 5 or greater"); + + static { + filter.add(new PowerPredicate(Filter.ComparisonType.GreaterThan, 4)); + } + + public SunseedNurturerTriggeredAbility() { + super(Zone.BATTLEFIELD, new GainLifeEffect(2), true); + } + + public SunseedNurturerTriggeredAbility(final SunseedNurturerTriggeredAbility ability) { + super(ability); + } + + @Override + public SunseedNurturerTriggeredAbility copy() { + return new SunseedNurturerTriggeredAbility(this); + } + + @Override + public boolean checkEventType(GameEvent event, Game game) { + return event.getType() == EventType.END_TURN_STEP_PRE; + } + + @Override + public boolean checkTrigger(GameEvent event, Game game) { + return event.getPlayerId().equals(this.controllerId); + } + + @Override + public boolean checkInterveningIfClause(Game game) { + return game.getBattlefield().countAll(filter, this.controllerId, game) > 0; + } + + @Override + public String getRule() { + return "At the beginning of your end step, if you control a creature with power 5 or greater, you may gain 2 life."; + } +} diff --git a/Mage.Sets/src/mage/sets/stronghold/JinxedRing.java b/Mage.Sets/src/mage/sets/stronghold/JinxedRing.java new file mode 100644 index 00000000000..7b71557c18f --- /dev/null +++ b/Mage.Sets/src/mage/sets/stronghold/JinxedRing.java @@ -0,0 +1,115 @@ +/* + * 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.stronghold; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.PutIntoGraveFromBattlefieldAllTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.effects.ContinuousEffectImpl; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.cards.CardImpl; +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.predicate.Predicates; +import mage.filter.predicate.permanent.TokenPredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.target.common.TargetOpponent; + +/** + * + * @author fireshoes + */ +public class JinxedRing extends CardImpl { + + private static final FilterPermanent filter = new FilterPermanent("a nontoken permanent"); + + static { + filter.add(Predicates.not(new TokenPredicate())); + } + + public JinxedRing(UUID ownerId) { + super(ownerId, 131, "Jinxed Ring", Rarity.RARE, new CardType[]{CardType.ARTIFACT}, "{2}"); + this.expansionSetCode = "STH"; + + // Whenever a nontoken permanent is put into your graveyard from the battlefield, Jinxed Ring deals 1 damage to you. + this.addAbility(new PutIntoGraveFromBattlefieldAllTriggeredAbility(new DamageControllerEffect(1), false, filter, false, true)); + + // Sacrifice a creature: Target opponent gains control of Jinxed Ring. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new JinxedRingEffect(), new SacrificeTargetCost(new TargetControlledCreaturePermanent())); + ability.addTarget(new TargetOpponent()); + this.addAbility(ability); + } + + public JinxedRing(final JinxedRing card) { + super(card); + } + + @Override + public JinxedRing copy() { + return new JinxedRing(this); + } +} + +class JinxedRingEffect extends ContinuousEffectImpl { + + public JinxedRingEffect() { + super(Duration.Custom, Layer.ControlChangingEffects_2, SubLayer.NA, Outcome.GainControl); + staticText = "Target opponent gains control of {this}"; + } + + public JinxedRingEffect(final JinxedRingEffect effect) { + super(effect); + } + + @Override + public JinxedRingEffect copy() { + return new JinxedRingEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Permanent permanent = (Permanent) source.getSourceObjectIfItStillExists(game); + if (permanent != null) { + return permanent.changeControllerId(source.getFirstTarget(), game); + } else { + discard(); + } + return false; + } + +} diff --git a/Mage.Sets/src/mage/sets/stronghold/VolrathsStronghold.java b/Mage.Sets/src/mage/sets/stronghold/VolrathsStronghold.java index d5b08d98bac..48886b225e4 100644 --- a/Mage.Sets/src/mage/sets/stronghold/VolrathsStronghold.java +++ b/Mage.Sets/src/mage/sets/stronghold/VolrathsStronghold.java @@ -1,81 +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.stronghold; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.PutOnLibraryTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.filter.FilterCard; -import mage.filter.predicate.mageobject.CardTypePredicate; -import mage.target.common.TargetCardInYourGraveyard; - -/** - * - * @author jeffwadsworth - */ -public class VolrathsStronghold extends CardImpl { - - private static final FilterCard filter = new FilterCard("creature card from your graveyard"); - - static { - filter.add(new CardTypePredicate(CardType.CREATURE)); - } - - public VolrathsStronghold(UUID ownerId) { - super(ownerId, 137, "Volrath's Stronghold", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "STH"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {1}{B}, {tap}: Put target creature card from your graveyard on top of your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{1}{B}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCardInYourGraveyard(filter)); - this.addAbility(ability); - } - - public VolrathsStronghold(final VolrathsStronghold card) { - super(card); - } - - @Override - public VolrathsStronghold copy() { - return new VolrathsStronghold(this); - } -} +/* + * 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.stronghold; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.PutOnLibraryTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.CardTypePredicate; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author jeffwadsworth + */ +public class VolrathsStronghold extends CardImpl { + + private static final FilterCard filter = new FilterCard("creature card from your graveyard"); + + static { + filter.add(new CardTypePredicate(CardType.CREATURE)); + } + + public VolrathsStronghold(UUID ownerId) { + super(ownerId, 137, "Volrath's Stronghold", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "STH"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {1}{B}, {tap}: Put target creature card from your graveyard on top of your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{1}{B}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCardInYourGraveyard(filter)); + this.addAbility(ability); + } + + public VolrathsStronghold(final VolrathsStronghold card) { + super(card); + } + + @Override + public VolrathsStronghold copy() { + return new VolrathsStronghold(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/CalderaLake.java b/Mage.Sets/src/mage/sets/tempest/CalderaLake.java index ae2b93364f1..753423e9c00 100644 --- a/Mage.Sets/src/mage/sets/tempest/CalderaLake.java +++ b/Mage.Sets/src/mage/sets/tempest/CalderaLake.java @@ -1,70 +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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.mana.*; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class CalderaLake extends CardImpl { - - public CalderaLake(UUID ownerId) { - super(ownerId, 306, "Caldera Lake", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // Caldera Lake enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you. - Ability ability = new BlueManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - ability = new RedManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - } - - public CalderaLake(final CalderaLake card) { - super(card); - } - - @Override - public CalderaLake copy() { - return new CalderaLake(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.mana.*; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class CalderaLake extends CardImpl { + + public CalderaLake(UUID ownerId) { + super(ownerId, 306, "Caldera Lake", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // Caldera Lake enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you. + Ability ability = new BlueManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + ability = new RedManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + } + + public CalderaLake(final CalderaLake card) { + super(card); + } + + @Override + public CalderaLake copy() { + return new CalderaLake(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java b/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java index febd5a1b225..0ca76c64a7a 100644 --- a/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java +++ b/Mage.Sets/src/mage/sets/tempest/CinderMarsh.java @@ -1,67 +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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; -import mage.abilities.mana.*; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class CinderMarsh extends CardImpl { - - public CinderMarsh(UUID ownerId) { - super(ownerId, 307, "Cinder Marsh", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step. - Ability ability = new BlackManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - ability = new RedManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - } - - public CinderMarsh(final CinderMarsh card) { - super(card); - } - - @Override - public CinderMarsh copy() { - return new CinderMarsh(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; +import mage.abilities.mana.*; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class CinderMarsh extends CardImpl { + + public CinderMarsh(UUID ownerId) { + super(ownerId, 307, "Cinder Marsh", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step. + Ability ability = new BlackManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + ability = new RedManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + } + + public CinderMarsh(final CinderMarsh card) { + super(card); + } + + @Override + public CinderMarsh copy() { + return new CinderMarsh(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/GhostTown.java b/Mage.Sets/src/mage/sets/tempest/GhostTown.java index 475a88bc6e6..1afab876321 100644 --- a/Mage.Sets/src/mage/sets/tempest/GhostTown.java +++ b/Mage.Sets/src/mage/sets/tempest/GhostTown.java @@ -1,67 +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.tempest; - -import java.util.UUID; -import mage.abilities.common.ActivateIfConditionActivatedAbility; -import mage.abilities.condition.InvertCondition; -import mage.abilities.condition.common.MyTurnCondition; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.ReturnToHandSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author emerald000 - */ -public class GhostTown extends CardImpl { - - public GhostTown(UUID ownerId) { - super(ownerId, 312, "Ghost Town", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TMP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {0}: Return Ghost Town to its owner's hand. Activate this ability only if it's not your turn. - this.addAbility(new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new GenericManaCost(0), new InvertCondition(MyTurnCondition.getInstance()))); - } - - public GhostTown(final GhostTown card) { - super(card); - } - - @Override - public GhostTown copy() { - return new GhostTown(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.abilities.common.ActivateIfConditionActivatedAbility; +import mage.abilities.condition.InvertCondition; +import mage.abilities.condition.common.MyTurnCondition; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.ReturnToHandSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author emerald000 + */ +public class GhostTown extends CardImpl { + + public GhostTown(UUID ownerId) { + super(ownerId, 312, "Ghost Town", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TMP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {0}: Return Ghost Town to its owner's hand. Activate this ability only if it's not your turn. + this.addAbility(new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ReturnToHandSourceEffect(true), new GenericManaCost(0), new InvertCondition(MyTurnCondition.getInstance()))); + } + + public GhostTown(final GhostTown card) { + super(card); + } + + @Override + public GhostTown copy() { + return new GhostTown(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/MazeOfShadows.java b/Mage.Sets/src/mage/sets/tempest/MazeOfShadows.java index 9c68c495207..130c8a3bb89 100644 --- a/Mage.Sets/src/mage/sets/tempest/MazeOfShadows.java +++ b/Mage.Sets/src/mage/sets/tempest/MazeOfShadows.java @@ -1,87 +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.tempest; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.PreventDamageByTargetEffect; -import mage.abilities.effects.common.PreventDamageToTargetEffect; -import mage.abilities.effects.common.UntapTargetEffect; -import mage.abilities.keyword.ShadowAbility; -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.filter.common.FilterAttackingCreature; -import mage.filter.predicate.mageobject.AbilityPredicate; -import mage.target.common.TargetAttackingCreature; - -/** - * - * @author emerald000 - */ -public class MazeOfShadows extends CardImpl { - - private static final FilterAttackingCreature filter = new FilterAttackingCreature("attacking creature with shadow"); - static { - filter.add(new AbilityPredicate(ShadowAbility.class)); - } - - public MazeOfShadows(UUID ownerId) { - super(ownerId, 317, "Maze of Shadows", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TMP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}: Untap target attacking creature with shadow. Prevent all combat damage that would be dealt to and dealt by that creature this turn. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new TapSourceCost()); - Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true); - effect.setText("Prevent all combat damage that would be dealt to"); - ability.addEffect(effect); - effect = new PreventDamageToTargetEffect(Duration.EndOfTurn, Integer.MAX_VALUE, true); - effect.setText("and dealt by that creature this turn"); - ability.addEffect(effect); - ability.addTarget(new TargetAttackingCreature(1, 1, filter, false)); - this.addAbility(ability); - } - - public MazeOfShadows(final MazeOfShadows card) { - super(card); - } - - @Override - public MazeOfShadows copy() { - return new MazeOfShadows(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.PreventDamageByTargetEffect; +import mage.abilities.effects.common.PreventDamageToTargetEffect; +import mage.abilities.effects.common.UntapTargetEffect; +import mage.abilities.keyword.ShadowAbility; +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.filter.common.FilterAttackingCreature; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.target.common.TargetAttackingCreature; + +/** + * + * @author emerald000 + */ +public class MazeOfShadows extends CardImpl { + + private static final FilterAttackingCreature filter = new FilterAttackingCreature("attacking creature with shadow"); + static { + filter.add(new AbilityPredicate(ShadowAbility.class)); + } + + public MazeOfShadows(UUID ownerId) { + super(ownerId, 317, "Maze of Shadows", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TMP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}: Untap target attacking creature with shadow. Prevent all combat damage that would be dealt to and dealt by that creature this turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapTargetEffect(), new TapSourceCost()); + Effect effect = new PreventDamageByTargetEffect(Duration.EndOfTurn, true); + effect.setText("Prevent all combat damage that would be dealt to"); + ability.addEffect(effect); + effect = new PreventDamageToTargetEffect(Duration.EndOfTurn, Integer.MAX_VALUE, true); + effect.setText("and dealt by that creature this turn"); + ability.addEffect(effect); + ability.addTarget(new TargetAttackingCreature(1, 1, filter, false)); + this.addAbility(ability); + } + + public MazeOfShadows(final MazeOfShadows card) { + super(card); + } + + @Override + public MazeOfShadows copy() { + return new MazeOfShadows(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/MoggHollows.java b/Mage.Sets/src/mage/sets/tempest/MoggHollows.java index b97976d634e..d9c45d61550 100644 --- a/Mage.Sets/src/mage/sets/tempest/MoggHollows.java +++ b/Mage.Sets/src/mage/sets/tempest/MoggHollows.java @@ -1,69 +1,69 @@ -/* - * 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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.GreenManaAbility; -import mage.abilities.mana.RedManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class MoggHollows extends CardImpl { - - public MoggHollows(UUID ownerId) { - super(ownerId, 318, "Mogg Hollows", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step. - Ability ability = new RedManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - ability = new GreenManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - } - - public MoggHollows(final MoggHollows card) { - super(card); - } - - @Override - public MoggHollows copy() { - return new MoggHollows(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.RedManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class MoggHollows extends CardImpl { + + public MoggHollows(UUID ownerId) { + super(ownerId, 318, "Mogg Hollows", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step. + Ability ability = new RedManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + ability = new GreenManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + } + + public MoggHollows(final MoggHollows card) { + super(card); + } + + @Override + public MoggHollows copy() { + return new MoggHollows(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/PineBarrens.java b/Mage.Sets/src/mage/sets/tempest/PineBarrens.java index 137aff07796..385725760e2 100644 --- a/Mage.Sets/src/mage/sets/tempest/PineBarrens.java +++ b/Mage.Sets/src/mage/sets/tempest/PineBarrens.java @@ -1,72 +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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.mana.BlackManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.GreenManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class PineBarrens extends CardImpl { - - public PineBarrens(UUID ownerId) { - super(ownerId, 323, "Pine Barrens", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TMP"; - - // Pine Barrens enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you. - Ability ability = new BlackManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - ability = new GreenManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - } - - public PineBarrens(final PineBarrens card) { - super(card); - } - - @Override - public PineBarrens copy() { - return new PineBarrens(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class PineBarrens extends CardImpl { + + public PineBarrens(UUID ownerId) { + super(ownerId, 323, "Pine Barrens", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TMP"; + + // Pine Barrens enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you. + Ability ability = new BlackManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + ability = new GreenManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + } + + public PineBarrens(final PineBarrens card) { + super(card); + } + + @Override + public PineBarrens copy() { + return new PineBarrens(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java b/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java index 9b4b641e510..b1441a2f8f8 100644 --- a/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java +++ b/Mage.Sets/src/mage/sets/tempest/RootwaterDepths.java @@ -1,69 +1,69 @@ -/* - * 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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; -import mage.abilities.mana.BlackManaAbility; -import mage.abilities.mana.BlueManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class RootwaterDepths extends CardImpl { - - public RootwaterDepths(UUID ownerId) { - super(ownerId, 329, "Rootwater Depths", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {U} or {B} to your mana pool. Rootwater Depths doesn't untap during your next untap step. - Ability ability = new BlueManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - ability = new BlackManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - } - - public RootwaterDepths(final RootwaterDepths card) { - super(card); - } - - @Override - public RootwaterDepths copy() { - return new RootwaterDepths(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class RootwaterDepths extends CardImpl { + + public RootwaterDepths(UUID ownerId) { + super(ownerId, 329, "Rootwater Depths", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {U} or {B} to your mana pool. Rootwater Depths doesn't untap during your next untap step. + Ability ability = new BlueManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + ability = new BlackManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + } + + public RootwaterDepths(final RootwaterDepths card) { + super(card); + } + + @Override + public RootwaterDepths copy() { + return new RootwaterDepths(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/SaltFlats.java b/Mage.Sets/src/mage/sets/tempest/SaltFlats.java index 1f960242273..a8a687df1f2 100644 --- a/Mage.Sets/src/mage/sets/tempest/SaltFlats.java +++ b/Mage.Sets/src/mage/sets/tempest/SaltFlats.java @@ -1,72 +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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.mana.BlackManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.WhiteManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class SaltFlats extends CardImpl { - - public SaltFlats(UUID ownerId) { - super(ownerId, 330, "Salt Flats", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // Salt Flats enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you. - Ability ability = new WhiteManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - ability = new BlackManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - } - - public SaltFlats(final SaltFlats card) { - super(card); - } - - @Override - public SaltFlats copy() { - return new SaltFlats(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.mana.BlackManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class SaltFlats extends CardImpl { + + public SaltFlats(UUID ownerId) { + super(ownerId, 330, "Salt Flats", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // Salt Flats enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you. + Ability ability = new WhiteManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + ability = new BlackManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + } + + public SaltFlats(final SaltFlats card) { + super(card); + } + + @Override + public SaltFlats copy() { + return new SaltFlats(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/Scabland.java b/Mage.Sets/src/mage/sets/tempest/Scabland.java index 04d54c717c5..77ee7af08a1 100644 --- a/Mage.Sets/src/mage/sets/tempest/Scabland.java +++ b/Mage.Sets/src/mage/sets/tempest/Scabland.java @@ -1,72 +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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.RedManaAbility; -import mage.abilities.mana.WhiteManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class Scabland extends CardImpl { - - public Scabland(UUID ownerId) { - super(ownerId, 331, "Scabland", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // Scabland enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you. - Ability ability = new RedManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - ability = new WhiteManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - } - - public Scabland(final Scabland card) { - super(card); - } - - @Override - public Scabland copy() { - return new Scabland(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.RedManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class Scabland extends CardImpl { + + public Scabland(UUID ownerId) { + super(ownerId, 331, "Scabland", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // Scabland enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you. + Ability ability = new RedManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + ability = new WhiteManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + } + + public Scabland(final Scabland card) { + super(card); + } + + @Override + public Scabland copy() { + return new Scabland(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/SkyshroudForest.java b/Mage.Sets/src/mage/sets/tempest/SkyshroudForest.java index f4bb7eca0f4..a4a179e93f1 100644 --- a/Mage.Sets/src/mage/sets/tempest/SkyshroudForest.java +++ b/Mage.Sets/src/mage/sets/tempest/SkyshroudForest.java @@ -1,72 +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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.common.EntersBattlefieldTappedAbility; -import mage.abilities.effects.common.DamageControllerEffect; -import mage.abilities.mana.BlueManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.GreenManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class SkyshroudForest extends CardImpl { - - public SkyshroudForest(UUID ownerId) { - super(ownerId, 332, "Skyshroud Forest", Rarity.RARE, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // Skyshroud Forest enters the battlefield tapped. - this.addAbility(new EntersBattlefieldTappedAbility()); - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you. - Ability ability = new GreenManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - ability = new BlueManaAbility(); - ability.addEffect(new DamageControllerEffect(1)); - this.addAbility(ability); - } - - public SkyshroudForest(final SkyshroudForest card) { - super(card); - } - - @Override - public SkyshroudForest copy() { - return new SkyshroudForest(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.effects.common.DamageControllerEffect; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class SkyshroudForest extends CardImpl { + + public SkyshroudForest(UUID ownerId) { + super(ownerId, 332, "Skyshroud Forest", Rarity.RARE, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // Skyshroud Forest enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you. + Ability ability = new GreenManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + ability = new BlueManaAbility(); + ability.addEffect(new DamageControllerEffect(1)); + this.addAbility(ability); + } + + public SkyshroudForest(final SkyshroudForest card) { + super(card); + } + + @Override + public SkyshroudForest copy() { + return new SkyshroudForest(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java b/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java index b03dbbf3773..284c8d5f5a6 100644 --- a/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java +++ b/Mage.Sets/src/mage/sets/tempest/ThalakosLowlands.java @@ -1,69 +1,69 @@ -/* - * 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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; -import mage.abilities.mana.BlueManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.WhiteManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class ThalakosLowlands extends CardImpl { - - public ThalakosLowlands(UUID ownerId) { - super(ownerId, 338, "Thalakos Lowlands", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step. - Ability ability = new WhiteManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - ability = new BlueManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - } - - public ThalakosLowlands(final ThalakosLowlands card) { - super(card); - } - - @Override - public ThalakosLowlands copy() { - return new ThalakosLowlands(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; +import mage.abilities.mana.BlueManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class ThalakosLowlands extends CardImpl { + + public ThalakosLowlands(UUID ownerId) { + super(ownerId, 338, "Thalakos Lowlands", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step. + Ability ability = new WhiteManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + ability = new BlueManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + } + + public ThalakosLowlands(final ThalakosLowlands card) { + super(card); + } + + @Override + public ThalakosLowlands copy() { + return new ThalakosLowlands(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/VecTownships.java b/Mage.Sets/src/mage/sets/tempest/VecTownships.java index 7c05cbd2a6f..014295c5fbd 100644 --- a/Mage.Sets/src/mage/sets/tempest/VecTownships.java +++ b/Mage.Sets/src/mage/sets/tempest/VecTownships.java @@ -1,69 +1,69 @@ -/* - * 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.tempest; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.abilities.Ability; -import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.GreenManaAbility; -import mage.abilities.mana.WhiteManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author Loki - */ -public class VecTownships extends CardImpl { - - public VecTownships(UUID ownerId) { - super(ownerId, 339, "Vec Townships", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); - this.expansionSetCode = "TMP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step. - Ability ability = new GreenManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - ability = new WhiteManaAbility(); - ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); - this.addAbility(ability); - } - - public VecTownships(final VecTownships card) { - super(card); - } - - @Override - public VecTownships copy() { - return new VecTownships(this); - } -} +/* + * 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.tempest; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.abilities.Ability; +import mage.abilities.effects.common.DontUntapInControllersNextUntapStepSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.GreenManaAbility; +import mage.abilities.mana.WhiteManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author Loki + */ +public class VecTownships extends CardImpl { + + public VecTownships(UUID ownerId) { + super(ownerId, 339, "Vec Townships", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); + this.expansionSetCode = "TMP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step. + Ability ability = new GreenManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + ability = new WhiteManaAbility(); + ability.addEffect(new DontUntapInControllersNextUntapStepSourceEffect()); + this.addAbility(ability); + } + + public VecTownships(final VecTownships card) { + super(card); + } + + @Override + public VecTownships copy() { + return new VecTownships(this); + } +} diff --git a/Mage.Sets/src/mage/sets/tempest/Wasteland.java b/Mage.Sets/src/mage/sets/tempest/Wasteland.java index 2f753dba43e..ea7f66943a3 100644 --- a/Mage.Sets/src/mage/sets/tempest/Wasteland.java +++ b/Mage.Sets/src/mage/sets/tempest/Wasteland.java @@ -51,7 +51,7 @@ public class Wasteland extends CardImpl { super(ownerId, 340, "Wasteland", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, null); this.expansionSetCode = "TMP"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}, Sacrifice Wasteland: Destroy target nonbasic land. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DestroyTargetEffect(), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/sets/thedark/EaterOfTheDead.java b/Mage.Sets/src/mage/sets/thedark/EaterOfTheDead.java new file mode 100644 index 00000000000..d82460f0cb3 --- /dev/null +++ b/Mage.Sets/src/mage/sets/thedark/EaterOfTheDead.java @@ -0,0 +1,52 @@ +/* + * 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.thedark; + +import java.util.UUID; + +/** + * + * @author fireshoes + */ +public class EaterOfTheDead extends mage.sets.mastersedition.EaterOfTheDead { + + public EaterOfTheDead(UUID ownerId) { + super(ownerId); + this.cardNumber = 6; + this.expansionSetCode = "DRK"; + } + + public EaterOfTheDead(final EaterOfTheDead card) { + super(card); + } + + @Override + public EaterOfTheDead copy() { + return new EaterOfTheDead(this); + } +} diff --git a/Mage.Sets/src/mage/sets/thedark/ElectricEel.java b/Mage.Sets/src/mage/sets/thedark/ElectricEel.java new file mode 100644 index 00000000000..8176202c347 --- /dev/null +++ b/Mage.Sets/src/mage/sets/thedark/ElectricEel.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.thedark; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DamageControllerEffect; +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 fireshoes + */ +public class ElectricEel extends CardImpl { + + public ElectricEel(UUID ownerId) { + super(ownerId, 24, "Electric Eel", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{U}"); + this.expansionSetCode = "DRK"; + this.subtype.add("Fish"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // When Electric Eel enters the battlefield, it deals 1 damage to you. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DamageControllerEffect(1), false)); + + // {R}{R}: Electric Eel gets +2/+0 until end of turn and deals 1 damage to you. + Effect effect = new DamageControllerEffect(1); + effect.setText("and deals 1 damage to you"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 0, Duration.EndOfTurn), new ManaCostsImpl("{R}{R}")); + ability.addEffect(effect); + this.addAbility(ability); + } + + public ElectricEel(final ElectricEel card) { + super(card); + } + + @Override + public ElectricEel copy() { + return new ElectricEel(this); + } +} diff --git a/Mage.Sets/src/mage/sets/thedark/GraveRobbers.java b/Mage.Sets/src/mage/sets/thedark/GraveRobbers.java new file mode 100644 index 00000000000..4e9b8bab849 --- /dev/null +++ b/Mage.Sets/src/mage/sets/thedark/GraveRobbers.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.thedark; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterArtifactCard; +import mage.target.common.TargetCardInGraveyard; + +/** + * + * @author fireshoes + */ +public class GraveRobbers extends CardImpl { + + public GraveRobbers(UUID ownerId) { + super(ownerId, 8, "Grave Robbers", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{1}{B}{B}"); + this.expansionSetCode = "DRK"; + this.subtype.add("Human"); + this.subtype.add("Rogue"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {B}, {tap}: Exile target artifact card from a graveyard. You gain 2 life. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new ExileTargetEffect(), new ManaCostsImpl("{B}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCardInGraveyard(new FilterArtifactCard())); + ability.addEffect(new GainLifeEffect(2)); + this.addAbility(ability); + } + + public GraveRobbers(final GraveRobbers card) { + super(card); + } + + @Override + public GraveRobbers copy() { + return new GraveRobbers(this); + } +} diff --git a/Mage.Sets/src/mage/sets/thedark/OrcGeneral.java b/Mage.Sets/src/mage/sets/thedark/OrcGeneral.java new file mode 100644 index 00000000000..70be7bc4475 --- /dev/null +++ b/Mage.Sets/src/mage/sets/thedark/OrcGeneral.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.thedark; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.continuous.BoostAllEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.permanent.AnotherPredicate; +import mage.target.common.TargetControlledPermanent; + +/** + * + * @author fireshoes + */ +public class OrcGeneral extends CardImpl { + + private static final FilterControlledPermanent filterOrcOrGoblin = new FilterControlledPermanent("another Orc or Goblin"); + private static final FilterCreaturePermanent filterOrc = new FilterCreaturePermanent("Other Orc creatures"); + + static { + filterOrcOrGoblin.add(Predicates.or(new SubtypePredicate("Orc"), + new SubtypePredicate("Goblin"))); + filterOrcOrGoblin.add(new AnotherPredicate()); + filterOrc.add(new SubtypePredicate("Orc")); + } + + public OrcGeneral(UUID ownerId) { + super(ownerId, 72, "Orc General", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{2}{R}"); + this.expansionSetCode = "DRK"; + this.subtype.add("Orc"); + this.subtype.add("Warrior"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // {tap}, Sacrifice another Orc or Goblin: Other Orc creatures get +1/+1 until end of turn. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostAllEffect(1, 1, Duration.EndOfTurn, filterOrc, true), new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(filterOrcOrGoblin))); + this.addAbility(ability); + } + + public OrcGeneral(final OrcGeneral card) { + super(card); + } + + @Override + public OrcGeneral copy() { + return new OrcGeneral(this); + } +} diff --git a/Mage.Sets/src/mage/sets/thedark/PeopleOfTheWoods.java b/Mage.Sets/src/mage/sets/thedark/PeopleOfTheWoods.java new file mode 100644 index 00000000000..5163d15e10e --- /dev/null +++ b/Mage.Sets/src/mage/sets/thedark/PeopleOfTheWoods.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.thedark; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.continuous.SetToughnessSourceEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterControlledPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author fireshoes + */ +public class PeopleOfTheWoods extends CardImpl { + + final static FilterControlledPermanent filterLands = new FilterControlledPermanent("Forests you control"); + + static { + filterLands.add(new SubtypePredicate("Forest")); + } + + public PeopleOfTheWoods(UUID ownerId) { + super(ownerId, 46, "People of the Woods", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{G}{G}"); + this.expansionSetCode = "DRK"; + this.subtype.add("Human"); + this.power = new MageInt(1); + this.toughness = new MageInt(0); + + // People of the Woods's toughness is equal to the number of Forests you control. + this.addAbility(new SimpleStaticAbility(Zone.ALL, new SetToughnessSourceEffect(new PermanentsOnBattlefieldCount(filterLands), Duration.EndOfGame))); + } + + public PeopleOfTheWoods(final PeopleOfTheWoods card) { + super(card); + } + + @Override + public PeopleOfTheWoods copy() { + return new PeopleOfTheWoods(this); + } +} diff --git a/Mage.Sets/src/mage/sets/thedark/SavaenElves.java b/Mage.Sets/src/mage/sets/thedark/SavaenElves.java new file mode 100644 index 00000000000..e206d209fc0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/thedark/SavaenElves.java @@ -0,0 +1,105 @@ +/* + * 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.thedark; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.DestroyTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterEnchantmentPermanent; +import mage.filter.predicate.ObjectPlayer; +import mage.filter.predicate.ObjectPlayerPredicate; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.target.TargetPermanent; + +/** + * + * @author fireshoes + */ +public class SavaenElves extends CardImpl { + + private static final FilterEnchantmentPermanent filter = new FilterEnchantmentPermanent("Auras attached to a land"); + + static { + filter.add(new SubtypePredicate("Aura")); + filter.add(new SavaenElvesPredicate()); + } + + public SavaenElves(UUID ownerId) { + super(ownerId, 47, "Savaen Elves", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{G}"); + this.expansionSetCode = "DRK"; + this.subtype.add("Elf"); + this.power = new MageInt(1); + this.toughness = new MageInt(1); + + // {G}{G}, {tap}: Destroy target Aura attached to a land. + Effect effect = new DestroyTargetEffect(); + effect.setText("Destroy target Aura attached to a land"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl("{G}{G}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + } + + public SavaenElves(final SavaenElves card) { + super(card); + } + + @Override + public SavaenElves copy() { + return new SavaenElves(this); + } +} + +class SavaenElvesPredicate implements ObjectPlayerPredicate> { + @Override + public boolean apply(ObjectPlayer input, Game game) { + Permanent attachment = input.getObject(); + if (attachment != null) { + Permanent permanent = game.getPermanent(attachment.getAttachedTo()); + if (permanent != null && permanent.getCardType().contains(CardType.LAND)) { + return true; + } + } + return false; + } + @Override + public String toString() { + return "Attached to a land"; + } +} diff --git a/Mage.Sets/src/mage/sets/theros/NykthosShrineToNyx.java b/Mage.Sets/src/mage/sets/theros/NykthosShrineToNyx.java index a174dd8dc5d..37a7101ebc0 100644 --- a/Mage.Sets/src/mage/sets/theros/NykthosShrineToNyx.java +++ b/Mage.Sets/src/mage/sets/theros/NykthosShrineToNyx.java @@ -1,172 +1,172 @@ -/* - * 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.theros; - -import java.util.List; -import java.util.UUID; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.DevotionCount; -import mage.abilities.effects.common.ManaEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.ManaAbility; -import mage.cards.CardImpl; -import mage.choices.ChoiceColor; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.game.Game; -import mage.players.Player; - -/** - * - * @author LevelX2 - */ -public class NykthosShrineToNyx extends CardImpl { - - public NykthosShrineToNyx(UUID ownerId) { - super(ownerId, 223, "Nykthos, Shrine to Nyx", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "THS"; - this.supertype.add("Legendary"); - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {2}, {T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. - Ability ability = new NykthosShrineToNyxManaAbility(); - this.addAbility(ability); - } - - public NykthosShrineToNyx(final NykthosShrineToNyx card) { - super(card); - } - - @Override - public NykthosShrineToNyx copy() { - return new NykthosShrineToNyx(this); - } -} - -class NykthosShrineToNyxManaAbility extends ManaAbility { - - public NykthosShrineToNyxManaAbility() { - super(Zone.BATTLEFIELD, new NykthosDynamicManaEffect(), new GenericManaCost(2)); - this.addCost(new TapSourceCost()); - } - - public NykthosShrineToNyxManaAbility(final NykthosShrineToNyxManaAbility ability) { - super(ability); - } - - @Override - public NykthosShrineToNyxManaAbility copy() { - return new NykthosShrineToNyxManaAbility(this); - } - - @Override - public List getNetMana(Game game) { - netMana.clear(); - if (game != null) { - for (String colorChoice :ChoiceColor.colorChoices) { - netMana.add(((NykthosDynamicManaEffect)this.getEffects().get(0)).computeMana(colorChoice, game, this)); - } - } - return netMana; - } -} - - -class NykthosDynamicManaEffect extends ManaEffect { - - private final Mana computedMana; - - public NykthosDynamicManaEffect() { - super(); - computedMana = new Mana(); - this.staticText = "Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. (Your devotion to a color is the number of mana symbols of that color in the mana costs of permanents you control.)"; - } - - public NykthosDynamicManaEffect(final NykthosDynamicManaEffect effect) { - super(effect); - this.computedMana = effect.computedMana.copy(); - } - - @Override - public NykthosDynamicManaEffect copy() { - return new NykthosDynamicManaEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - ChoiceColor choice = new ChoiceColor(); - choice.setMessage("Choose a color for devotion of Nykthos"); - if (controller.choose(outcome, choice, game)) { - computeMana(choice.getChoice(), game, source); - checkToFirePossibleEvents(computedMana, game, source); - game.getPlayer(source.getControllerId()).getManaPool().addMana(computedMana, game, source); - return true; - } - } - return false; - - } - - @Override - public Mana getMana(Game game, Ability source) { - return null; - } - - - public Mana computeMana(String color, Game game, Ability source){ - this.computedMana.clear(); - if (color !=null && !color.isEmpty()) { - switch (color) { - case "Red": - computedMana.setRed(new DevotionCount(ColoredManaSymbol.R).calculate(game, source, this)); - break; - case "Blue": - computedMana.setBlue(new DevotionCount(ColoredManaSymbol.U).calculate(game, source, this)); - break; - case "White": - computedMana.setWhite(new DevotionCount(ColoredManaSymbol.W).calculate(game, source, this)); - break; - case "Black": - computedMana.setBlack(new DevotionCount(ColoredManaSymbol.B).calculate(game, source, this)); - break; - case "Green": - computedMana.setGreen(new DevotionCount(ColoredManaSymbol.G).calculate(game, source, this)); - break; - } - } - return computedMana.copy(); - } -} +/* + * 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.theros; + +import java.util.List; +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.DevotionCount; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.ManaAbility; +import mage.cards.CardImpl; +import mage.choices.ChoiceColor; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author LevelX2 + */ +public class NykthosShrineToNyx extends CardImpl { + + public NykthosShrineToNyx(UUID ownerId) { + super(ownerId, 223, "Nykthos, Shrine to Nyx", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "THS"; + this.supertype.add("Legendary"); + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {2}, {T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. + Ability ability = new NykthosShrineToNyxManaAbility(); + this.addAbility(ability); + } + + public NykthosShrineToNyx(final NykthosShrineToNyx card) { + super(card); + } + + @Override + public NykthosShrineToNyx copy() { + return new NykthosShrineToNyx(this); + } +} + +class NykthosShrineToNyxManaAbility extends ManaAbility { + + public NykthosShrineToNyxManaAbility() { + super(Zone.BATTLEFIELD, new NykthosDynamicManaEffect(), new GenericManaCost(2)); + this.addCost(new TapSourceCost()); + } + + public NykthosShrineToNyxManaAbility(final NykthosShrineToNyxManaAbility ability) { + super(ability); + } + + @Override + public NykthosShrineToNyxManaAbility copy() { + return new NykthosShrineToNyxManaAbility(this); + } + + @Override + public List getNetMana(Game game) { + netMana.clear(); + if (game != null) { + for (String colorChoice :ChoiceColor.colorChoices) { + netMana.add(((NykthosDynamicManaEffect)this.getEffects().get(0)).computeMana(colorChoice, game, this)); + } + } + return netMana; + } +} + + +class NykthosDynamicManaEffect extends ManaEffect { + + private final Mana computedMana; + + public NykthosDynamicManaEffect() { + super(); + computedMana = new Mana(); + this.staticText = "Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. (Your devotion to a color is the number of mana symbols of that color in the mana costs of permanents you control.)"; + } + + public NykthosDynamicManaEffect(final NykthosDynamicManaEffect effect) { + super(effect); + this.computedMana = effect.computedMana.copy(); + } + + @Override + public NykthosDynamicManaEffect copy() { + return new NykthosDynamicManaEffect(this); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + ChoiceColor choice = new ChoiceColor(); + choice.setMessage("Choose a color for devotion of Nykthos"); + if (controller.choose(outcome, choice, game)) { + computeMana(choice.getChoice(), game, source); + checkToFirePossibleEvents(computedMana, game, source); + game.getPlayer(source.getControllerId()).getManaPool().addMana(computedMana, game, source); + return true; + } + } + return false; + + } + + @Override + public Mana getMana(Game game, Ability source) { + return null; + } + + + public Mana computeMana(String color, Game game, Ability source){ + this.computedMana.clear(); + if (color !=null && !color.isEmpty()) { + switch (color) { + case "Red": + computedMana.setRed(new DevotionCount(ColoredManaSymbol.R).calculate(game, source, this)); + break; + case "Blue": + computedMana.setBlue(new DevotionCount(ColoredManaSymbol.U).calculate(game, source, this)); + break; + case "White": + computedMana.setWhite(new DevotionCount(ColoredManaSymbol.W).calculate(game, source, this)); + break; + case "Black": + computedMana.setBlack(new DevotionCount(ColoredManaSymbol.B).calculate(game, source, this)); + break; + case "Green": + computedMana.setGreen(new DevotionCount(ColoredManaSymbol.G).calculate(game, source, this)); + break; + } + } + return computedMana.copy(); + } +} diff --git a/Mage.Sets/src/mage/sets/theros/UnknownShores.java b/Mage.Sets/src/mage/sets/theros/UnknownShores.java index 3feb1b99ba8..e7afe7df875 100644 --- a/Mage.Sets/src/mage/sets/theros/UnknownShores.java +++ b/Mage.Sets/src/mage/sets/theros/UnknownShores.java @@ -1,67 +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.theros; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.mana.AnyColorManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; - -/** - * - * @author LevelX2 - */ -public class UnknownShores extends CardImpl { - - public UnknownShores(UUID ownerId) { - super(ownerId, 229, "Unknown Shores", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "THS"; - - // {T}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {T}: Add one mana of any color to your mana pool. - Ability ability = new AnyColorManaAbility(new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - - } - - public UnknownShores(final UnknownShores card) { - super(card); - } - - @Override - public UnknownShores copy() { - return new UnknownShores(this); - } -} +/* + * 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.theros; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.mana.AnyColorManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author LevelX2 + */ +public class UnknownShores extends CardImpl { + + public UnknownShores(UUID ownerId) { + super(ownerId, 229, "Unknown Shores", Rarity.COMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "THS"; + + // {T}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {T}: Add one mana of any color to your mana pool. + Ability ability = new AnyColorManaAbility(new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + + } + + public UnknownShores(final UnknownShores card) { + super(card); + } + + @Override + public UnknownShores copy() { + return new UnknownShores(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timeshifted/Desert.java b/Mage.Sets/src/mage/sets/timeshifted/Desert.java index bb0f3ecd957..daff38a7af2 100644 --- a/Mage.Sets/src/mage/sets/timeshifted/Desert.java +++ b/Mage.Sets/src/mage/sets/timeshifted/Desert.java @@ -1,80 +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.timeshifted; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.condition.common.IsStepCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.decorator.ConditionalActivatedAbility; -import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.PhaseStep; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.permanent.AttackingPredicate; -import mage.target.Target; -import mage.target.common.TargetCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class Desert extends CardImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking creature"); - static { - filter.add(new AttackingPredicate()); - } - - public Desert(UUID ownerId) { - super(ownerId, 118, "Desert", Rarity.SPECIAL, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TSB"; - this.subtype.add("Desert"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step. - Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost(), new IsStepCondition(PhaseStep.END_COMBAT, false), null); - Target target = new TargetCreaturePermanent(filter); - ability.addTarget(target); - this.addAbility(ability); - } - - public Desert(final Desert card) { - super(card); - } - - @Override - public Desert copy() { - return new Desert(this); - } -} +/* + * 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.timeshifted; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.condition.common.IsStepCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.common.DamageTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.PhaseStep; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.AttackingPredicate; +import mage.target.Target; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class Desert extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking creature"); + static { + filter.add(new AttackingPredicate()); + } + + public Desert(UUID ownerId) { + super(ownerId, 118, "Desert", Rarity.SPECIAL, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TSB"; + this.subtype.add("Desert"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step. + Ability ability = new ConditionalActivatedAbility(Zone.BATTLEFIELD, new DamageTargetEffect(1), new TapSourceCost(), new IsStepCondition(PhaseStep.END_COMBAT, false), null); + Target target = new TargetCreaturePermanent(filter); + ability.addTarget(target); + this.addAbility(ability); + } + + public Desert(final Desert card) { + super(card); + } + + @Override + public Desert copy() { + return new Desert(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/AcademyRuins.java b/Mage.Sets/src/mage/sets/timespiral/AcademyRuins.java index c7d91fdb766..a67a3519476 100644 --- a/Mage.Sets/src/mage/sets/timespiral/AcademyRuins.java +++ b/Mage.Sets/src/mage/sets/timespiral/AcademyRuins.java @@ -1,72 +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.timespiral; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.PutOnLibraryTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterArtifactCard; -import mage.target.common.TargetCardInYourGraveyard; - -/** - * - * @author Plopman - */ -public class AcademyRuins extends CardImpl { - - public AcademyRuins(UUID ownerId) { - super(ownerId, 269, "Academy Ruins", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TSP"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}{U}, {tap}: Put target artifact card from your graveyard on top of your library. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{1}{U}")); - ability.addCost(new TapSourceCost()); - ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard"))); - this.addAbility(ability); - } - - public AcademyRuins(final AcademyRuins card) { - super(card); - } - - @Override - public AcademyRuins copy() { - return new AcademyRuins(this); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.timespiral; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.PutOnLibraryTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterArtifactCard; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author Plopman + */ +public class AcademyRuins extends CardImpl { + + public AcademyRuins(UUID ownerId) { + super(ownerId, 269, "Academy Ruins", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TSP"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}{U}, {tap}: Put target artifact card from your graveyard on top of your library. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new PutOnLibraryTargetEffect(true), new ManaCostsImpl("{1}{U}")); + ability.addCost(new TapSourceCost()); + ability.addTarget(new TargetCardInYourGraveyard(new FilterArtifactCard("artifact card from your graveyard"))); + this.addAbility(ability); + } + + public AcademyRuins(final AcademyRuins card) { + super(card); + } + + @Override + public AcademyRuins copy() { + return new AcademyRuins(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/CalciformPools.java b/Mage.Sets/src/mage/sets/timespiral/CalciformPools.java index 3e67c5bee9c..12a3dc3af73 100644 --- a/Mage.Sets/src/mage/sets/timespiral/CalciformPools.java +++ b/Mage.Sets/src/mage/sets/timespiral/CalciformPools.java @@ -1,80 +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.timespiral; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.RemoveVariableCountersSourceCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; -import mage.abilities.effects.common.AddManaInAnyCombinationEffect; -import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.ColoredManaSymbol; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; - -/** - * - * @author LevelX2 - */ -public class CalciformPools extends CardImpl { - - public CalciformPools(UUID ownerId) { - super(ownerId, 270, "Calciform Pools", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TSP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {1}, {tap}: Put a storage counter on Calciform Pools. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - // {1}, Remove X storage counters from Calciform Pools: Add X mana in any combination of {W} and/or {U} to your mana pool. - ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, - new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.W, ColoredManaSymbol.U), - new GenericManaCost(1)); - ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); - this.addAbility(ability); - - } - - public CalciformPools(final CalciformPools card) { - super(card); - } - - @Override - public CalciformPools copy() { - return new CalciformPools(this); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.timespiral; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.RemoveVariableCountersSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.dynamicvalue.common.RemovedCountersForCostValue; +import mage.abilities.effects.common.AddManaInAnyCombinationEffect; +import mage.abilities.effects.common.counter.AddCountersSourceEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.ColoredManaSymbol; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author LevelX2 + */ +public class CalciformPools extends CardImpl { + + public CalciformPools(UUID ownerId) { + super(ownerId, 270, "Calciform Pools", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TSP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {1}, {tap}: Put a storage counter on Calciform Pools. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.STORAGE.createInstance()),new GenericManaCost(1)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + // {1}, Remove X storage counters from Calciform Pools: Add X mana in any combination of {W} and/or {U} to your mana pool. + ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, + new AddManaInAnyCombinationEffect(new RemovedCountersForCostValue(), ColoredManaSymbol.W, ColoredManaSymbol.U), + new GenericManaCost(1)); + ability.addCost(new RemoveVariableCountersSourceCost(CounterType.STORAGE.createInstance())); + this.addAbility(ability); + + } + + public CalciformPools(final CalciformPools card) { + super(card); + } + + @Override + public CalciformPools copy() { + return new CalciformPools(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/GemstoneCaverns.java b/Mage.Sets/src/mage/sets/timespiral/GemstoneCaverns.java index d3d7bae1323..4f5dc69e14d 100644 --- a/Mage.Sets/src/mage/sets/timespiral/GemstoneCaverns.java +++ b/Mage.Sets/src/mage/sets/timespiral/GemstoneCaverns.java @@ -1,79 +1,79 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.timespiral; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.GemstoneCavernsAbility; -import mage.abilities.condition.common.SourceHasCounterCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.decorator.ConditionalManaEffect; -import mage.abilities.effects.common.AddManaOfAnyColorEffect; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.ConditionalManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.counters.CounterType; - -/** - * - * @author emerald000 - */ -public class GemstoneCaverns extends CardImpl { - - public GemstoneCaverns(UUID ownerId) { - super(ownerId, 274, "Gemstone Caverns", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TSP"; - this.supertype.add("Legendary"); - - // If Gemstone Caverns is in your opening hand and you're not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand. - this.addAbility(new GemstoneCavernsAbility()); - - // {tap}: Add {1} to your mana pool. If Gemstone Caverns has a luck counter on it, instead add one mana of any color to your mana pool. - Ability ability = new ConditionalManaAbility(Zone.BATTLEFIELD, - new ConditionalManaEffect( - new AddManaOfAnyColorEffect(), - new BasicManaEffect(Mana.ColorlessMana(1)), - new SourceHasCounterCondition(CounterType.LUCK), - "Add {1} to your mana pool. If {this} has a luck counter on it, instead add one mana of any color to your mana pool."), - new TapSourceCost()); - this.addAbility(ability); - } - - public GemstoneCaverns(final GemstoneCaverns card) { - super(card); - } - - @Override - public GemstoneCaverns copy() { - return new GemstoneCaverns(this); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.timespiral; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.GemstoneCavernsAbility; +import mage.abilities.condition.common.SourceHasCounterCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.decorator.ConditionalManaEffect; +import mage.abilities.effects.common.AddManaOfAnyColorEffect; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.ConditionalManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.counters.CounterType; + +/** + * + * @author emerald000 + */ +public class GemstoneCaverns extends CardImpl { + + public GemstoneCaverns(UUID ownerId) { + super(ownerId, 274, "Gemstone Caverns", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TSP"; + this.supertype.add("Legendary"); + + // If Gemstone Caverns is in your opening hand and you're not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand. + this.addAbility(new GemstoneCavernsAbility()); + + // {tap}: Add {C} to your mana pool. If Gemstone Caverns has a luck counter on it, instead add one mana of any color to your mana pool. + Ability ability = new ConditionalManaAbility(Zone.BATTLEFIELD, + new ConditionalManaEffect( + new AddManaOfAnyColorEffect(), + new BasicManaEffect(Mana.ColorlessMana(1)), + new SourceHasCounterCondition(CounterType.LUCK), + "Add {C} to your mana pool. If {this} has a luck counter on it, instead add one mana of any color to your mana pool."), + new TapSourceCost()); + this.addAbility(ability); + } + + public GemstoneCaverns(final GemstoneCaverns card) { + super(card); + } + + @Override + public GemstoneCaverns copy() { + return new GemstoneCaverns(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/PrismaticLens.java b/Mage.Sets/src/mage/sets/timespiral/PrismaticLens.java index 69d276bf33d..a35b34b8297 100644 --- a/Mage.Sets/src/mage/sets/timespiral/PrismaticLens.java +++ b/Mage.Sets/src/mage/sets/timespiral/PrismaticLens.java @@ -47,7 +47,7 @@ public class PrismaticLens extends CardImpl { super(ownerId, 262, "Prismatic Lens", Rarity.COMMON, new CardType[]{CardType.ARTIFACT}, "{2}"); this.expansionSetCode = "TSP"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {1}, {tap}: Add one mana of any color to your mana pool. Ability ability = new AnyColorManaAbility(new ManaCostsImpl("{1}")); diff --git a/Mage.Sets/src/mage/sets/timespiral/Swarmyard.java b/Mage.Sets/src/mage/sets/timespiral/Swarmyard.java index 370c66a8d04..fd78f5bd630 100644 --- a/Mage.Sets/src/mage/sets/timespiral/Swarmyard.java +++ b/Mage.Sets/src/mage/sets/timespiral/Swarmyard.java @@ -1,84 +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.timespiral; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.RegenerateTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.filter.common.FilterCreaturePermanent; -import mage.filter.predicate.Predicates; -import mage.filter.predicate.mageobject.SubtypePredicate; -import mage.target.common.TargetCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class Swarmyard extends CardImpl { - - private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Insect, Rat, Spider, or Squirrel"); - - static { - filter.add(Predicates.or( - new SubtypePredicate("Insect"), - new SubtypePredicate("Rat"), - new SubtypePredicate("Spider"), - new SubtypePredicate("Squirrel") - )); - } - - public Swarmyard(UUID ownerId) { - super(ownerId, 278, "Swarmyard", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TSP"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}: Regenerate target Insect, Rat, Spider, or Squirrel. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new TapSourceCost()); - ability.addTarget(new TargetCreaturePermanent(filter)); - this.addAbility(ability); - - } - - public Swarmyard(final Swarmyard card) { - super(card); - } - - @Override - public Swarmyard copy() { - return new Swarmyard(this); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.timespiral; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.RegenerateTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.Predicates; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class Swarmyard extends CardImpl { + + private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Insect, Rat, Spider, or Squirrel"); + + static { + filter.add(Predicates.or( + new SubtypePredicate("Insect"), + new SubtypePredicate("Rat"), + new SubtypePredicate("Spider"), + new SubtypePredicate("Squirrel") + )); + } + + public Swarmyard(UUID ownerId) { + super(ownerId, 278, "Swarmyard", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TSP"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}: Regenerate target Insect, Rat, Spider, or Squirrel. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new TapSourceCost()); + ability.addTarget(new TargetCreaturePermanent(filter)); + this.addAbility(ability); + + } + + public Swarmyard(final Swarmyard card) { + super(card); + } + + @Override + public Swarmyard copy() { + return new Swarmyard(this); + } +} diff --git a/Mage.Sets/src/mage/sets/timespiral/UrzasFactory.java b/Mage.Sets/src/mage/sets/timespiral/UrzasFactory.java index a0b80418462..fc140f3c4bd 100644 --- a/Mage.Sets/src/mage/sets/timespiral/UrzasFactory.java +++ b/Mage.Sets/src/mage/sets/timespiral/UrzasFactory.java @@ -1,83 +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.timespiral; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.MageInt; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.common.CreateTokenEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.game.permanent.token.Token; - -/** - * - * @author Loki - */ -public class UrzasFactory extends CardImpl { - - public UrzasFactory(UUID ownerId) { - super(ownerId, 280, "Urza's Factory", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TSP"; - this.subtype.add("Urza's"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new AssemblyWorkerToken()), new GenericManaCost(7)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public UrzasFactory(final UrzasFactory card) { - super(card); - } - - @Override - public UrzasFactory copy() { - return new UrzasFactory(this); - } -} - -class AssemblyWorkerToken extends Token { - AssemblyWorkerToken() { - super("Assembly-Worker", "a 2/2 colorless Assembly-Worker artifact creature token"); - cardType.add(CardType.ARTIFACT); - cardType.add(CardType.CREATURE); - subtype.add("Assembly-Worker"); - power = new MageInt(2); - toughness = new MageInt(2); - } -} +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ +package mage.sets.timespiral; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.game.permanent.token.Token; + +/** + * + * @author Loki + */ +public class UrzasFactory extends CardImpl { + + public UrzasFactory(UUID ownerId) { + super(ownerId, 280, "Urza's Factory", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TSP"; + this.subtype.add("Urza's"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new AssemblyWorkerToken()), new GenericManaCost(7)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public UrzasFactory(final UrzasFactory card) { + super(card); + } + + @Override + public UrzasFactory copy() { + return new UrzasFactory(this); + } +} + +class AssemblyWorkerToken extends Token { + AssemblyWorkerToken() { + super("Assembly-Worker", "a 2/2 colorless Assembly-Worker artifact creature token"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add("Assembly-Worker"); + power = new MageInt(2); + toughness = new MageInt(2); + } +} diff --git a/Mage.Sets/src/mage/sets/torment/TaintedField.java b/Mage.Sets/src/mage/sets/torment/TaintedField.java index 04fe0e700a2..973566e123a 100644 --- a/Mage.Sets/src/mage/sets/torment/TaintedField.java +++ b/Mage.Sets/src/mage/sets/torment/TaintedField.java @@ -1,84 +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.torment; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.ActivateIfConditionManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.filter.common.FilterLandPermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; - -/** - * - * @author LevelX2 - */ -public class TaintedField extends CardImpl { - - private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); - static { - filter.add(new SubtypePredicate("Swamp")); - } - - public TaintedField(UUID ownerId) { - super(ownerId, 140, "Tainted Field", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TOR"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp. - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.WhiteMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.BlackMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - } - - public TaintedField(final TaintedField card) { - super(card); - } - - @Override - public TaintedField copy() { - return new TaintedField(this); - } -} +/* + * 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.torment; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author LevelX2 + */ +public class TaintedField extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); + static { + filter.add(new SubtypePredicate("Swamp")); + } + + public TaintedField(UUID ownerId) { + super(ownerId, 140, "Tainted Field", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TOR"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp. + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.WhiteMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.BlackMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + } + + public TaintedField(final TaintedField card) { + super(card); + } + + @Override + public TaintedField copy() { + return new TaintedField(this); + } +} diff --git a/Mage.Sets/src/mage/sets/torment/TaintedPeak.java b/Mage.Sets/src/mage/sets/torment/TaintedPeak.java index dae03937cfb..6af42df6802 100644 --- a/Mage.Sets/src/mage/sets/torment/TaintedPeak.java +++ b/Mage.Sets/src/mage/sets/torment/TaintedPeak.java @@ -1,85 +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.torment; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.ActivateIfConditionManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.filter.common.FilterLandPermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; - -/** - * - * @author LevelX2 - */ -public class TaintedPeak extends CardImpl { - - private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); - static { - filter.add(new SubtypePredicate("Swamp")); - } - - public TaintedPeak(UUID ownerId) { - super(ownerId, 142, "Tainted Peak", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TOR"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}: Add {B} or {R} to your mana pool. Activate this ability only if you control a Swamp. - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.BlackMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.RedMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - - } - - public TaintedPeak(final TaintedPeak card) { - super(card); - } - - @Override - public TaintedPeak copy() { - return new TaintedPeak(this); - } -} +/* + * 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.torment; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author LevelX2 + */ +public class TaintedPeak extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); + static { + filter.add(new SubtypePredicate("Swamp")); + } + + public TaintedPeak(UUID ownerId) { + super(ownerId, 142, "Tainted Peak", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TOR"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}: Add {B} or {R} to your mana pool. Activate this ability only if you control a Swamp. + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.BlackMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.RedMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + + } + + public TaintedPeak(final TaintedPeak card) { + super(card); + } + + @Override + public TaintedPeak copy() { + return new TaintedPeak(this); + } +} diff --git a/Mage.Sets/src/mage/sets/torment/TaintedWood.java b/Mage.Sets/src/mage/sets/torment/TaintedWood.java index 4a3ce5a8121..c1e41e79597 100644 --- a/Mage.Sets/src/mage/sets/torment/TaintedWood.java +++ b/Mage.Sets/src/mage/sets/torment/TaintedWood.java @@ -1,84 +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.torment; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.BasicManaEffect; -import mage.abilities.mana.ActivateIfConditionManaAbility; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; -import mage.filter.common.FilterLandPermanent; -import mage.filter.predicate.mageobject.SubtypePredicate; - -/** - * - * @author LevelX2 - */ -public class TaintedWood extends CardImpl { - - private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); - static { - filter.add(new SubtypePredicate("Swamp")); - } - - public TaintedWood(UUID ownerId) { - super(ownerId, 143, "Tainted Wood", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "TOR"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp. - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.BlackMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - this.addAbility(new ActivateIfConditionManaAbility( - Zone.BATTLEFIELD, - new BasicManaEffect(Mana.GreenMana(1)), - new TapSourceCost(), - new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); - } - - public TaintedWood(final TaintedWood card) { - super(card); - } - - @Override - public TaintedWood copy() { - return new TaintedWood(this); - } -} +/* + * 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.torment; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.BasicManaEffect; +import mage.abilities.mana.ActivateIfConditionManaAbility; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; +import mage.filter.common.FilterLandPermanent; +import mage.filter.predicate.mageobject.SubtypePredicate; + +/** + * + * @author LevelX2 + */ +public class TaintedWood extends CardImpl { + + private static final FilterLandPermanent filter = new FilterLandPermanent("you control a swamp"); + static { + filter.add(new SubtypePredicate("Swamp")); + } + + public TaintedWood(UUID ownerId) { + super(ownerId, 143, "Tainted Wood", Rarity.UNCOMMON, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "TOR"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp. + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.BlackMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + this.addAbility(new ActivateIfConditionManaAbility( + Zone.BATTLEFIELD, + new BasicManaEffect(Mana.GreenMana(1)), + new TapSourceCost(), + new PermanentsOnTheBattlefieldCondition(filter, PermanentsOnTheBattlefieldCondition.CountType.MORE_THAN, 0))); + } + + public TaintedWood(final TaintedWood card) { + super(card); + } + + @Override + public TaintedWood copy() { + return new TaintedWood(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/BodySnatcher.java b/Mage.Sets/src/mage/sets/urzasdestiny/BodySnatcher.java new file mode 100644 index 00000000000..cf979d248fd --- /dev/null +++ b/Mage.Sets/src/mage/sets/urzasdestiny/BodySnatcher.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.urzasdestiny; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.costs.common.DiscardTargetCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.ExileSourceEffect; +import mage.abilities.effects.common.ExileSourceUnlessPaysEffect; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.common.FilterCreatureCard; +import mage.target.common.TargetCardInHand; +import mage.target.common.TargetCardInYourGraveyard; + +/** + * + * @author fireshoes + */ +public class BodySnatcher extends CardImpl { + + public BodySnatcher(UUID ownerId) { + super(ownerId, 53, "Body Snatcher", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{2}{B}{B}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Minion"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // When Body Snatcher enters the battlefield, exile it unless you discard a creature card. + this.addAbility(new EntersBattlefieldTriggeredAbility(new ExileSourceUnlessPaysEffect(new DiscardTargetCost(new TargetCardInHand(new FilterCreatureCard("a creature card")))))); + + // When Body Snatcher dies, exile Body Snatcher and return target creature card from your graveyard to the battlefield. + Effect effect = new ReturnFromGraveyardToBattlefieldTargetEffect(); + effect.setText("and return target creature card from your graveyard to the battlefield"); + Ability ability = new DiesTriggeredAbility(new ExileSourceEffect(), false); + ability.addEffect(effect); + ability.addTarget(new TargetCardInYourGraveyard(new FilterCreatureCard("creature card from your graveyard"))); + this.addAbility(ability); + } + + public BodySnatcher(final BodySnatcher card) { + super(card); + } + + @Override + public BodySnatcher copy() { + return new BodySnatcher(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/Metalworker.java b/Mage.Sets/src/mage/sets/urzasdestiny/Metalworker.java index a06535181fc..55e54c215b7 100644 --- a/Mage.Sets/src/mage/sets/urzasdestiny/Metalworker.java +++ b/Mage.Sets/src/mage/sets/urzasdestiny/Metalworker.java @@ -1,130 +1,130 @@ -/* - * 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.urzasdestiny; - -import java.util.UUID; -import mage.MageInt; -import mage.MageObject; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.common.ManaEffect; -import mage.abilities.mana.SimpleManaAbility; -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.common.FilterArtifactCard; -import mage.game.Game; -import mage.players.Player; -import mage.target.common.TargetCardInHand; - -/** - * - * @author anonymous - */ -public class Metalworker extends CardImpl { - - public Metalworker(UUID ownerId) { - super(ownerId, 135, "Metalworker", Rarity.RARE, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); - this.expansionSetCode = "UDS"; - this.subtype.add("Construct"); - - this.power = new MageInt(1); - this.toughness = new MageInt(2); - - // {tap}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new MetalworkerManaEffect(), new TapSourceCost())); - } - - public Metalworker(final Metalworker card) { - super(card); - } - - @Override - public Metalworker copy() { - return new Metalworker(this); - } -} - -class MetalworkerManaEffect extends ManaEffect { - - private static final FilterCard filter = new FilterArtifactCard(); - - public MetalworkerManaEffect() { - super(); - staticText = "Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way"; - } - - public MetalworkerManaEffect(final MetalworkerManaEffect effect) { - super(effect); - } - - @Override - public MetalworkerManaEffect copy() { - return new MetalworkerManaEffect(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) { - return false; - } - - if (controller.getHand().count(filter, game) > 0) { - TargetCardInHand target = new TargetCardInHand(0, Integer.MAX_VALUE, filter); - if (controller.choose(Outcome.Benefit, target, source.getSourceId(), game)) { - Cards cards = new CardsImpl(target.getTargets()); - controller.revealCards(sourceObject.getIdName(), cards, game); - Mana mana = Mana.ColorlessMana(target.getTargets().size() * 2); - checkToFirePossibleEvents(mana, game, source); - controller.getManaPool().addMana(mana, game, source); - } - } - return true; - } - - @Override - public Mana getMana(Game game, Ability source) { - Player controller = game.getPlayer(source.getControllerId()); - if (controller != null) { - int artifactsHand = controller.getHand().count(filter, game); - if (artifactsHand > 0) { - return Mana.ColorlessMana(artifactsHand * 2); - } - } - return null; - } - -} +/* + * 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.urzasdestiny; + +import java.util.UUID; +import mage.MageInt; +import mage.MageObject; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.common.ManaEffect; +import mage.abilities.mana.SimpleManaAbility; +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.common.FilterArtifactCard; +import mage.game.Game; +import mage.players.Player; +import mage.target.common.TargetCardInHand; + +/** + * + * @author anonymous + */ +public class Metalworker extends CardImpl { + + public Metalworker(UUID ownerId) { + super(ownerId, 135, "Metalworker", Rarity.RARE, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{3}"); + this.expansionSetCode = "UDS"; + this.subtype.add("Construct"); + + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // {tap}: Reveal any number of artifact cards in your hand. Add {C}{C} to your mana pool for each card revealed this way. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, new MetalworkerManaEffect(), new TapSourceCost())); + } + + public Metalworker(final Metalworker card) { + super(card); + } + + @Override + public Metalworker copy() { + return new Metalworker(this); + } +} + +class MetalworkerManaEffect extends ManaEffect { + + private static final FilterCard filter = new FilterArtifactCard(); + + public MetalworkerManaEffect() { + super(); + staticText = "Reveal any number of artifact cards in your hand. Add {C}{C} to your mana pool for each card revealed this way"; + } + + public MetalworkerManaEffect(final MetalworkerManaEffect effect) { + super(effect); + } + + @Override + public MetalworkerManaEffect copy() { + return new MetalworkerManaEffect(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) { + return false; + } + + if (controller.getHand().count(filter, game) > 0) { + TargetCardInHand target = new TargetCardInHand(0, Integer.MAX_VALUE, filter); + if (controller.choose(Outcome.Benefit, target, source.getSourceId(), game)) { + Cards cards = new CardsImpl(target.getTargets()); + controller.revealCards(sourceObject.getIdName(), cards, game); + Mana mana = Mana.ColorlessMana(target.getTargets().size() * 2); + checkToFirePossibleEvents(mana, game, source); + controller.getManaPool().addMana(mana, game, source); + } + } + return true; + } + + @Override + public Mana getMana(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + int artifactsHand = controller.getHand().count(filter, game); + if (artifactsHand > 0) { + return Mana.ColorlessMana(artifactsHand * 2); + } + } + return null; + } + +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/ThranDynamo.java b/Mage.Sets/src/mage/sets/urzasdestiny/ThranDynamo.java index e596c4d543d..b7d08398873 100644 --- a/Mage.Sets/src/mage/sets/urzasdestiny/ThranDynamo.java +++ b/Mage.Sets/src/mage/sets/urzasdestiny/ThranDynamo.java @@ -1,63 +1,63 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.urzasdestiny; - -import java.util.UUID; - -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.Mana; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.Zone; - -/** - * - * @author anonymous - */ -public class ThranDynamo extends CardImpl { - - public ThranDynamo(UUID ownerId) { - super(ownerId, 139, "Thran Dynamo", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); - this.expansionSetCode = "UDS"; - - // {tap}: Add {3} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost())); - - } - - public ThranDynamo(final ThranDynamo card) { - super(card); - } - - @Override - public ThranDynamo copy() { - return new ThranDynamo(this); - } -} +/* + * 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.urzasdestiny; + +import java.util.UUID; + +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.Mana; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.Zone; + +/** + * + * @author anonymous + */ +public class ThranDynamo extends CardImpl { + + public ThranDynamo(UUID ownerId) { + super(ownerId, 139, "Thran Dynamo", Rarity.UNCOMMON, new CardType[]{CardType.ARTIFACT}, "{4}"); + this.expansionSetCode = "UDS"; + + // {tap}: Add {C}{C}{C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost())); + + } + + public ThranDynamo(final ThranDynamo card) { + super(card); + } + + @Override + public ThranDynamo copy() { + return new ThranDynamo(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/YavimayaHollow.java b/Mage.Sets/src/mage/sets/urzasdestiny/YavimayaHollow.java index 4ca528ca9f7..f41ad191929 100644 --- a/Mage.Sets/src/mage/sets/urzasdestiny/YavimayaHollow.java +++ b/Mage.Sets/src/mage/sets/urzasdestiny/YavimayaHollow.java @@ -1,72 +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.urzasdestiny; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.RegenerateTargetEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.target.common.TargetCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class YavimayaHollow extends CardImpl { - - public YavimayaHollow(UUID ownerId) { - super(ownerId, 143, "Yavimaya Hollow", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "UDS"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {G}, {tap}: Regenerate target creature. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{G}")); - ability.addTarget(new TargetCreaturePermanent()); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public YavimayaHollow(final YavimayaHollow card) { - super(card); - } - - @Override - public YavimayaHollow copy() { - return new YavimayaHollow(this); - } -} +/* + * 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.urzasdestiny; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.RegenerateTargetEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.target.common.TargetCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class YavimayaHollow extends CardImpl { + + public YavimayaHollow(UUID ownerId) { + super(ownerId, 143, "Yavimaya Hollow", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "UDS"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {G}, {tap}: Regenerate target creature. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new RegenerateTargetEffect(), new ManaCostsImpl("{G}")); + ability.addTarget(new TargetCreaturePermanent()); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public YavimayaHollow(final YavimayaHollow card) { + super(card); + } + + @Override + public YavimayaHollow copy() { + return new YavimayaHollow(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java b/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java index 58d723b9da3..11473b54080 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/DevoutHarpist.java @@ -28,15 +28,15 @@ package mage.sets.urzaslegacy; import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.effects.common.DestroyTargetEffect; import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; import mage.filter.common.FilterEnchantmentPermanent; import mage.filter.predicate.ObjectPlayer; import mage.filter.predicate.ObjectPlayerPredicate; @@ -86,9 +86,9 @@ public class DevoutHarpist extends CardImpl { class DevoutHarpistPredicate implements ObjectPlayerPredicate> { @Override public boolean apply(ObjectPlayer input, Game game) { - Permanent attachement = input.getObject(); - if (attachement != null) { - Permanent permanent = game.getPermanent(attachement.getAttachedTo()); + Permanent attachment = input.getObject(); + if (attachment != null) { + Permanent permanent = game.getPermanent(attachment.getAttachedTo()); if (permanent != null && permanent.getCardType().contains(CardType.CREATURE)) { return true; } diff --git a/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java b/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java index ffe6df66fcb..e1126dca6b9 100644 --- a/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java +++ b/Mage.Sets/src/mage/sets/urzaslegacy/GrimMonolith.java @@ -54,7 +54,7 @@ public class GrimMonolith extends CardImpl { // Grim Monolith doesn't untap during your untap step. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new DontUntapInControllersUntapStepSourceEffect())); - // {tap}: Add {3} to your mana pool. + // {tap}: Add {C}{C}{C} to your mana pool. this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(3), new TapSourceCost())); // {4}: Untap Grim Monolith. this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new UntapSourceEffect(), new ManaCostsImpl("{4}"))); diff --git a/Mage.Sets/src/mage/sets/urzassaga/PhyrexianTower.java b/Mage.Sets/src/mage/sets/urzassaga/PhyrexianTower.java index b01f622138a..bc09f3050d1 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/PhyrexianTower.java +++ b/Mage.Sets/src/mage/sets/urzassaga/PhyrexianTower.java @@ -1,72 +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.urzassaga; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.costs.common.SacrificeTargetCost; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.ColorlessManaAbility; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.target.common.TargetControlledCreaturePermanent; - -/** - * - * @author LevelX2 - */ -public class PhyrexianTower extends CardImpl { - - public PhyrexianTower(UUID ownerId) { - super(ownerId, 322, "Phyrexian Tower", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "USG"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {tap}, Sacrifice a creature: Add {B}{B} to your mana pool. - Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new TapSourceCost()); - ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); - this.addAbility(ability); - - } - - public PhyrexianTower(final PhyrexianTower card) { - super(card); - } - - @Override - public PhyrexianTower copy() { - return new PhyrexianTower(this); - } -} +/* + * 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.urzassaga; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.costs.common.SacrificeTargetCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.ColorlessManaAbility; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.target.common.TargetControlledCreaturePermanent; + +/** + * + * @author LevelX2 + */ +public class PhyrexianTower extends CardImpl { + + public PhyrexianTower(UUID ownerId) { + super(ownerId, 322, "Phyrexian Tower", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "USG"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {tap}, Sacrifice a creature: Add {B}{B} to your mana pool. + Ability ability = new SimpleManaAbility(Zone.BATTLEFIELD, Mana.BlackMana(2), new TapSourceCost()); + ability.addCost(new SacrificeTargetCost(new TargetControlledCreaturePermanent())); + this.addAbility(ability); + + } + + public PhyrexianTower(final PhyrexianTower card) { + super(card); + } + + @Override + public PhyrexianTower copy() { + return new PhyrexianTower(this); + } +} diff --git a/Mage.Sets/src/mage/sets/urzassaga/ShivanGorge.java b/Mage.Sets/src/mage/sets/urzassaga/ShivanGorge.java index d7a3e2978cf..fddc7bc8f81 100644 --- a/Mage.Sets/src/mage/sets/urzassaga/ShivanGorge.java +++ b/Mage.Sets/src/mage/sets/urzassaga/ShivanGorge.java @@ -1,70 +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.urzassaga; - -import java.util.UUID; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.common.DamagePlayersEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; - -/** - * - * @author LevelX2 - */ -public class ShivanGorge extends CardImpl { - - public ShivanGorge(UUID ownerId) { - super(ownerId, 326, "Shivan Gorge", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "USG"; - this.supertype.add("Legendary"); - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {2}{R}, {tap}: Shivan Gorge deals 1 damage to each opponent. - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(1, TargetController.OPPONENT), new ManaCostsImpl("{2}{R}")); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public ShivanGorge(final ShivanGorge card) { - super(card); - } - - @Override - public ShivanGorge copy() { - return new ShivanGorge(this); - } -} +/* + * 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.urzassaga; + +import java.util.UUID; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DamagePlayersEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; + +/** + * + * @author LevelX2 + */ +public class ShivanGorge extends CardImpl { + + public ShivanGorge(UUID ownerId) { + super(ownerId, 326, "Shivan Gorge", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "USG"; + this.supertype.add("Legendary"); + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {2}{R}, {tap}: Shivan Gorge deals 1 damage to each opponent. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DamagePlayersEffect(1, TargetController.OPPONENT), new ManaCostsImpl("{2}{R}")); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public ShivanGorge(final ShivanGorge card) { + super(card); + } + + @Override + public ShivanGorge copy() { + return new ShivanGorge(this); + } +} diff --git a/Mage.Sets/src/mage/sets/vintagemasters/LibraryOfAlexandria.java b/Mage.Sets/src/mage/sets/vintagemasters/LibraryOfAlexandria.java index dab88bd1c8a..3d89ddeef88 100644 --- a/Mage.Sets/src/mage/sets/vintagemasters/LibraryOfAlexandria.java +++ b/Mage.Sets/src/mage/sets/vintagemasters/LibraryOfAlexandria.java @@ -1,70 +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.vintagemasters; - -import java.util.UUID; -import mage.abilities.condition.common.CardsInHandCondition; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.decorator.ConditionalActivatedAbility; -import mage.abilities.effects.common.DrawCardSourceControllerEffect; -import mage.abilities.mana.ColorlessManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.constants.Zone; - -/** - * - * @author LevelX2 - */ -public class LibraryOfAlexandria extends CardImpl { - - public LibraryOfAlexandria(UUID ownerId) { - super(ownerId, 303, "Library of Alexandria", Rarity.MYTHIC, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "VMA"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - // {tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand. - this.addAbility(new ConditionalActivatedAbility( - Zone.BATTLEFIELD, - new DrawCardSourceControllerEffect(1), - new TapSourceCost(), - new CardsInHandCondition(CardsInHandCondition.CountType.EQUAL_TO, 7), - "")); - } - - public LibraryOfAlexandria(final LibraryOfAlexandria card) { - super(card); - } - - @Override - public LibraryOfAlexandria copy() { - return new LibraryOfAlexandria(this); - } -} +/* + * 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.vintagemasters; + +import java.util.UUID; +import mage.abilities.condition.common.CardsInHandCondition; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.decorator.ConditionalActivatedAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.mana.ColorlessManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.constants.Zone; + +/** + * + * @author LevelX2 + */ +public class LibraryOfAlexandria extends CardImpl { + + public LibraryOfAlexandria(UUID ownerId) { + super(ownerId, 303, "Library of Alexandria", Rarity.MYTHIC, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "VMA"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + // {tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand. + this.addAbility(new ConditionalActivatedAbility( + Zone.BATTLEFIELD, + new DrawCardSourceControllerEffect(1), + new TapSourceCost(), + new CardsInHandCondition(CardsInHandCondition.CountType.EQUAL_TO, 7), + "")); + } + + public LibraryOfAlexandria(final LibraryOfAlexandria card) { + super(card); + } + + @Override + public LibraryOfAlexandria copy() { + return new LibraryOfAlexandria(this); + } +} diff --git a/Mage.Sets/src/mage/sets/vintagemasters/ManaCrypt.java b/Mage.Sets/src/mage/sets/vintagemasters/ManaCrypt.java index 81e1a720dc7..18ec4bac85b 100644 --- a/Mage.Sets/src/mage/sets/vintagemasters/ManaCrypt.java +++ b/Mage.Sets/src/mage/sets/vintagemasters/ManaCrypt.java @@ -1,100 +1,100 @@ -/* - * 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.vintagemasters; - -import java.util.UUID; -import mage.Mana; -import mage.abilities.Ability; -import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.effects.OneShotEffect; -import mage.abilities.mana.SimpleManaAbility; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Outcome; -import mage.constants.Rarity; -import mage.constants.TargetController; -import mage.constants.Zone; -import mage.game.Game; -import mage.players.Player; - -/** - * - * @author LevelX2 - */ -public class ManaCrypt extends CardImpl { - - public ManaCrypt(UUID ownerId) { - super(ownerId, 272, "Mana Crypt", Rarity.MYTHIC, new CardType[]{CardType.ARTIFACT}, "{0}"); - this.expansionSetCode = "VMA"; - - // At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you. - this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ManaCryptEffect(), TargetController.YOU, false)); - - // {tap}: Add {2} to your mana pool. - this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); - } - - public ManaCrypt(final ManaCrypt card) { - super(card); - } - - @Override - public ManaCrypt copy() { - return new ManaCrypt(this); - } -} - -class ManaCryptEffect extends OneShotEffect { - - ManaCryptEffect() { - super(Outcome.Damage); - staticText = "flip a coin. If you lose the flip, {this} Crypt deals 3 damage to you"; - } - - ManaCryptEffect(final ManaCryptEffect effect) { - super(effect); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getControllerId()); - if (player != null) { - if (!player.flipCoin(game)) { - player.damage(3, source.getSourceId(), game, false, true); - } - return true; - } - return false; - } - - @Override - public ManaCryptEffect copy() { - return new ManaCryptEffect(this); - } -} +/* + * 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.vintagemasters; + +import java.util.UUID; +import mage.Mana; +import mage.abilities.Ability; +import mage.abilities.common.BeginningOfUpkeepTriggeredAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.mana.SimpleManaAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Outcome; +import mage.constants.Rarity; +import mage.constants.TargetController; +import mage.constants.Zone; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author LevelX2 + */ +public class ManaCrypt extends CardImpl { + + public ManaCrypt(UUID ownerId) { + super(ownerId, 272, "Mana Crypt", Rarity.MYTHIC, new CardType[]{CardType.ARTIFACT}, "{0}"); + this.expansionSetCode = "VMA"; + + // At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you. + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new ManaCryptEffect(), TargetController.YOU, false)); + + // {tap}: Add {C}{C} to your mana pool. + this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(2), new TapSourceCost())); + } + + public ManaCrypt(final ManaCrypt card) { + super(card); + } + + @Override + public ManaCrypt copy() { + return new ManaCrypt(this); + } +} + +class ManaCryptEffect extends OneShotEffect { + + ManaCryptEffect() { + super(Outcome.Damage); + staticText = "flip a coin. If you lose the flip, {this} Crypt deals 3 damage to you"; + } + + ManaCryptEffect(final ManaCryptEffect effect) { + super(effect); + } + + @Override + public boolean apply(Game game, Ability source) { + Player player = game.getPlayer(source.getControllerId()); + if (player != null) { + if (!player.flipCoin(game)) { + player.damage(3, source.getSourceId(), game, false, true); + } + return true; + } + return false; + } + + @Override + public ManaCryptEffect copy() { + return new ManaCryptEffect(this); + } +} diff --git a/Mage.Sets/src/mage/sets/vintagemasters/MishrasWorkshop.java b/Mage.Sets/src/mage/sets/vintagemasters/MishrasWorkshop.java index f81f43f940b..5ed6bdd410d 100644 --- a/Mage.Sets/src/mage/sets/vintagemasters/MishrasWorkshop.java +++ b/Mage.Sets/src/mage/sets/vintagemasters/MishrasWorkshop.java @@ -1,63 +1,63 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package mage.sets.vintagemasters; - -import java.util.UUID; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.mana.ConditionalColorlessManaAbility; -import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; -import mage.cards.CardImpl; -import mage.constants.CardType; -import mage.constants.Rarity; -import mage.filter.common.FilterArtifactSpell; - -/** - * - * @author LevelX2 - */ -public class MishrasWorkshop extends CardImpl { - - public MishrasWorkshop(UUID ownerId) { - super(ownerId, 305, "Mishra's Workshop", Rarity.MYTHIC, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "VMA"; - - // {tap}: Add {3} to your mana pool. Spend this mana only to cast artifact spells. - this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 3, - new ConditionalSpellManaBuilder(new FilterArtifactSpell("artifact spells")))); - - } - - public MishrasWorkshop(final MishrasWorkshop card) { - super(card); - } - - @Override - public MishrasWorkshop copy() { - return new MishrasWorkshop(this); - } -} +/* + * 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.vintagemasters; + +import java.util.UUID; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.mana.ConditionalColorlessManaAbility; +import mage.abilities.mana.conditional.ConditionalSpellManaBuilder; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; +import mage.filter.common.FilterArtifactSpell; + +/** + * + * @author LevelX2 + */ +public class MishrasWorkshop extends CardImpl { + + public MishrasWorkshop(UUID ownerId) { + super(ownerId, 305, "Mishra's Workshop", Rarity.MYTHIC, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "VMA"; + + // {tap}: Add {C}{C}{C} to your mana pool. Spend this mana only to cast artifact spells. + this.addAbility(new ConditionalColorlessManaAbility(new TapSourceCost(), 3, + new ConditionalSpellManaBuilder(new FilterArtifactSpell("artifact spells")))); + + } + + public MishrasWorkshop(final MishrasWorkshop card) { + super(card); + } + + @Override + public MishrasWorkshop copy() { + return new MishrasWorkshop(this); + } +} diff --git a/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java b/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java index 075ba52173a..c3e1d638995 100644 --- a/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java +++ b/Mage.Sets/src/mage/sets/vintagemasters/SuChi.java @@ -50,7 +50,7 @@ public class SuChi extends CardImpl { this.power = new MageInt(4); this.toughness = new MageInt(4); - // When Su-Chi dies, add {4} to your mana pool. + // When Su-Chi dies, add {C}{C}{C}{C} to your mana pool. this.addAbility(new DiesTriggeredAbility(new BasicManaEffect(new Mana(0, 0, 0, 0, 0, 4, 0)), false)); } diff --git a/Mage.Sets/src/mage/sets/visions/GriffinCanyon.java b/Mage.Sets/src/mage/sets/visions/GriffinCanyon.java index 1e1879095dd..ac65082eaa2 100644 --- a/Mage.Sets/src/mage/sets/visions/GriffinCanyon.java +++ b/Mage.Sets/src/mage/sets/visions/GriffinCanyon.java @@ -58,7 +58,7 @@ public class GriffinCanyon extends CardImpl { super(ownerId, 163, "Griffin Canyon", Rarity.RARE, new CardType[]{CardType.LAND}, ""); this.expansionSetCode = "VIS"; - // {tap}: Add {1} to your mana pool. + // {tap}: Add {C} to your mana pool. this.addAbility(new ColorlessManaAbility()); // {tap}: Untap target Griffin. If it's a creature, it gets +1/+1 until end of turn. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GriffinCanyonEffect(), new TapSourceCost()); diff --git a/Mage.Sets/src/mage/sets/weatherlight/OdylicWraith.java b/Mage.Sets/src/mage/sets/weatherlight/OdylicWraith.java new file mode 100644 index 00000000000..7d1d030cca0 --- /dev/null +++ b/Mage.Sets/src/mage/sets/weatherlight/OdylicWraith.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.weatherlight; + +import java.util.UUID; +import mage.MageInt; +import mage.abilities.common.DealsDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.common.discard.DiscardTargetEffect; +import mage.abilities.keyword.SwampwalkAbility; +import mage.cards.CardImpl; +import mage.constants.CardType; +import mage.constants.Rarity; + +/** + * + * @author fireshoes + */ +public class OdylicWraith extends CardImpl { + + public OdylicWraith(UUID ownerId) { + super(ownerId, 19, "Odylic Wraith", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{B}"); + this.expansionSetCode = "WTH"; + this.subtype.add("Wraith"); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Swampwalk + this.addAbility(new SwampwalkAbility()); + // Whenever Odylic Wraith deals damage to a player, that player discards a card. + this.addAbility(new DealsDamageToAPlayerTriggeredAbility(new DiscardTargetEffect(1), false, true)); + } + + public OdylicWraith(final OdylicWraith card) { + super(card); + } + + @Override + public OdylicWraith copy() { + return new OdylicWraith(this); + } +} diff --git a/Mage.Sets/src/mage/sets/weatherlight/ParadigmShift.java b/Mage.Sets/src/mage/sets/weatherlight/ParadigmShift.java new file mode 100644 index 00000000000..452e05a6cb2 --- /dev/null +++ b/Mage.Sets/src/mage/sets/weatherlight/ParadigmShift.java @@ -0,0 +1,97 @@ +/* + * 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.weatherlight; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.effects.OneShotEffect; +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.game.Game; +import mage.players.Player; + +/** + * + * @author fireshoes + */ +public class ParadigmShift extends CardImpl { + + public ParadigmShift(UUID ownerId) { + super(ownerId, 46, "Paradigm Shift", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{1}{U}"); + this.expansionSetCode = "WTH"; + + // Exile all cards from your library. Then shuffle your graveyard into your library. + this.getSpellAbility().addEffect(new ExileLibraryEffect()); + } + + public ParadigmShift(final ParadigmShift card) { + super(card); + } + + @Override + public ParadigmShift copy() { + return new ParadigmShift(this); + } +} + +class ExileLibraryEffect extends OneShotEffect { + + public ExileLibraryEffect() { + super(Outcome.Exile); + staticText = "Exile all cards from your library. Then shuffle your graveyard into your library"; + } + + @java.lang.Override + public ExileLibraryEffect copy() { + return new ExileLibraryEffect(); + } + + @java.lang.Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + if (controller != null) { + int count = controller.getLibrary().size(); + Cards cards = new CardsImpl(); + cards.addAll(controller.getLibrary().getTopCards(game, count)); + controller.moveCards(cards, Zone.EXILED, source, game); + + for (Card card: controller.getGraveyard().getCards(game)) { + controller.moveCardToLibraryWithInfo(card, source.getSourceId(), game, Zone.GRAVEYARD, true, true); + } + controller.shuffleLibrary(game); + return true; + } + return false; + } +} diff --git a/Mage.Sets/src/mage/sets/weatherlight/ScorchedRuins.java b/Mage.Sets/src/mage/sets/weatherlight/ScorchedRuins.java index 068395176dc..772dc9ec86e 100644 --- a/Mage.Sets/src/mage/sets/weatherlight/ScorchedRuins.java +++ b/Mage.Sets/src/mage/sets/weatherlight/ScorchedRuins.java @@ -40,7 +40,7 @@ public class ScorchedRuins extends CardImpl { // If you do, put Scorched Ruins onto the battlefield. If you don't, put it into its // owner's graveyard. this.addAbility(new SimpleStaticAbility(Zone.ALL, new EnterBattlefieldPayCostOrPutGraveyardEffect(new SacrificeTargetCost(new TargetControlledPermanent(2,2,filter,false))))); - // {tap}: Add {4} to your mana pool + // {tap}: Add {C}{C}{C}{C} to your mana pool this.addAbility(new SimpleManaAbility(Zone.BATTLEFIELD, Mana.ColorlessMana(4), new TapSourceCost())); } diff --git a/Mage.Sets/src/mage/sets/weatherlight/WindingCanyons.java b/Mage.Sets/src/mage/sets/weatherlight/WindingCanyons.java index f032cac02ec..e208772a14f 100644 --- a/Mage.Sets/src/mage/sets/weatherlight/WindingCanyons.java +++ b/Mage.Sets/src/mage/sets/weatherlight/WindingCanyons.java @@ -1,75 +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.weatherlight; - -import java.util.UUID; -import mage.abilities.Ability; -import mage.abilities.common.SimpleActivatedAbility; -import mage.abilities.costs.common.TapSourceCost; -import mage.abilities.costs.mana.GenericManaCost; -import mage.abilities.effects.Effect; -import mage.abilities.effects.common.AddContinuousEffectToGame; -import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect; -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.filter.common.FilterCreatureCard; - -/** - * - * @author emerald000 - */ -public class WindingCanyons extends CardImpl { - - public WindingCanyons(UUID ownerId) { - super(ownerId, 167, "Winding Canyons", Rarity.RARE, new CardType[]{CardType.LAND}, ""); - this.expansionSetCode = "WTH"; - - // {tap}: Add {1} to your mana pool. - this.addAbility(new ColorlessManaAbility()); - - // {2}, {tap}: Until end of turn, you may play creature cards as though they had flash. - Effect effect = new AddContinuousEffectToGame(new CastAsThoughItHadFlashAllEffect(Duration.EndOfTurn, new FilterCreatureCard())); - effect.setText("Until end of turn, you may play creature cards as though they had flash"); - Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); - ability.addCost(new TapSourceCost()); - this.addAbility(ability); - } - - public WindingCanyons(final WindingCanyons card) { - super(card); - } - - @Override - public WindingCanyons copy() { - return new WindingCanyons(this); - } -} +/* + * 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.weatherlight; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.Effect; +import mage.abilities.effects.common.AddContinuousEffectToGame; +import mage.abilities.effects.common.continuous.CastAsThoughItHadFlashAllEffect; +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.filter.common.FilterCreatureCard; + +/** + * + * @author emerald000 + */ +public class WindingCanyons extends CardImpl { + + public WindingCanyons(UUID ownerId) { + super(ownerId, 167, "Winding Canyons", Rarity.RARE, new CardType[]{CardType.LAND}, ""); + this.expansionSetCode = "WTH"; + + // {tap}: Add {C} to your mana pool. + this.addAbility(new ColorlessManaAbility()); + + // {2}, {tap}: Until end of turn, you may play creature cards as though they had flash. + Effect effect = new AddContinuousEffectToGame(new CastAsThoughItHadFlashAllEffect(Duration.EndOfTurn, new FilterCreatureCard())); + effect.setText("Until end of turn, you may play creature cards as though they had flash"); + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + this.addAbility(ability); + } + + public WindingCanyons(final WindingCanyons card) { + super(card); + } + + @Override + public WindingCanyons copy() { + return new WindingCanyons(this); + } +} diff --git a/Mage.Sets/src/mage/sets/worldwake/EverflowingChalice.java b/Mage.Sets/src/mage/sets/worldwake/EverflowingChalice.java index e44701ab44d..ec353403332 100644 --- a/Mage.Sets/src/mage/sets/worldwake/EverflowingChalice.java +++ b/Mage.Sets/src/mage/sets/worldwake/EverflowingChalice.java @@ -63,7 +63,7 @@ public class EverflowingChalice extends CardImpl { new AddCountersSourceEffect(CounterType.CHARGE.createInstance(0), new MultikickerCount(), true), "with a charge counter on it for each time it was kicked")); - // {T}: Add {1} to your mana pool for each charge counter on Everflowing Chalice. + // {T}: Add {C} to your mana pool for each charge counter on Everflowing Chalice. this.addAbility(new DynamicManaAbility(Mana.ColorlessMana(1), new CountersCount(CounterType.CHARGE))); } diff --git a/Mage.Tests/src/test/java/org/mage/test/AI/basic/CastDestroySpellsTest.java b/Mage.Tests/src/test/java/org/mage/test/AI/basic/CastDestroySpellsTest.java index 1e595c19e6e..57f34cbc672 100644 --- a/Mage.Tests/src/test/java/org/mage/test/AI/basic/CastDestroySpellsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/AI/basic/CastDestroySpellsTest.java @@ -1,70 +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 org.mage.test.AI.basic; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBaseAI; - -/** - * - * @author LevelX2 - */ -public class CastDestroySpellsTest extends CardTestPlayerBaseAI { - - /** - * - * - */ - @Test - public void testOrzhovCharm() { - // Choose one - - // - Return target creature you control and all Auras you control attached to it to their owner's hand; - // - Destroy target creature and you lose life equal to its toughness; - // - Return target creature card with converted mana cost 1 or less from your graveyard to the battlefield. - addCard(Zone.HAND, playerA, "Orzhov Charm"); // {W}{B} - - // {T}: Add {1} to your mana pool. - // {T} {W/B}, {T}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool. - addCard(Zone.BATTLEFIELD, playerA, "Fetid Heath", 1); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - - // Cycling abilities you activate cost you up to {2} less to activate. - addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertLife(playerA, 18); - - assertGraveyardCount(playerA, "Orzhov Charm", 1); - assertGraveyardCount(playerB, "Silvercoat Lion", 1); - } - -} +/* + * 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 org.mage.test.AI.basic; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBaseAI; + +/** + * + * @author LevelX2 + */ +public class CastDestroySpellsTest extends CardTestPlayerBaseAI { + + /** + * + * + */ + @Test + public void testOrzhovCharm() { + // Choose one - + // - Return target creature you control and all Auras you control attached to it to their owner's hand; + // - Destroy target creature and you lose life equal to its toughness; + // - Return target creature card with converted mana cost 1 or less from your graveyard to the battlefield. + addCard(Zone.HAND, playerA, "Orzhov Charm"); // {W}{B} + + // {T}: Add {C} to your mana pool. + // {T} {W/B}, {T}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool. + addCard(Zone.BATTLEFIELD, playerA, "Fetid Heath", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + + // Cycling abilities you activate cost you up to {2} less to activate. + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertLife(playerA, 18); + + assertGraveyardCount(playerA, "Orzhov Charm", 1); + assertGraveyardCount(playerB, "Silvercoat Lion", 1); + } + +} diff --git a/Mage.Tests/src/test/java/org/mage/test/AI/basic/PreventRepeatedActionsTest.java b/Mage.Tests/src/test/java/org/mage/test/AI/basic/PreventRepeatedActionsTest.java index 45e99f0806b..d9754f8d461 100644 --- a/Mage.Tests/src/test/java/org/mage/test/AI/basic/PreventRepeatedActionsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/AI/basic/PreventRepeatedActionsTest.java @@ -1,113 +1,113 @@ -/* - * 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 org.mage.test.AI.basic; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import mage.filter.common.FilterLandPermanent; -import mage.game.permanent.Permanent; -import org.junit.Assert; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBaseAI; - -/** - * - * @author LevelX2 - */ -public class PreventRepeatedActionsTest extends CardTestPlayerBaseAI { - - /** - * Check that an equipment is not switched again an again between creatures - * - */ - @Test - public void testEquipOnlyOnce() { - addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6); - - // Equipped creature gets +1/+1. - // Equip {1}({1}: Attach to target creature you control. Equip only as a sorcery.) - addCard(Zone.BATTLEFIELD, playerA, "Fireshrieker", 1); - addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 2); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - int tappedLands = 0; - for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents(new FilterLandPermanent(), playerA.getId(), currentGame)) { - if (permanent.isTapped()) { - tappedLands++; - } - } - Assert.assertEquals("AI should only used Equipment once", 2, tappedLands); - } - - /** - * If the AI on a local server gets control of a Basalt Monolith it will - * infinite loop taping for three mana and then using the mana to untap lol. - * Seeing the computer durdle troll is quite the hillarious thing - */ - @Test - public void testBasaltMonolith() { - addCard(Zone.HAND, playerA, "Phyrexian Vault", 1); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 3); - // Basalt Monolith doesn't untap during your untap step. - // {T}: Add {3} to your mana pool. - // {3}: Untap Basalt Monolith. - addCard(Zone.BATTLEFIELD, playerA, "Basalt Monolith", 1, true); - - setStopAt(5, PhaseStep.END_TURN); - execute(); - - // {2}, {T}, Sacrifice a creature: Draw a card. - assertPermanentCount(playerA, "Phyrexian Vault", 1); - assertTapped("Basalt Monolith", true); - assertTappedCount("Plains", false, 3); - } - - /** - * AI gets stuck with two Kiora's Followers #1167 - */ - @Test - public void testKiorasFollower() { - addCard(Zone.BATTLEFIELD, playerA, "Forest", 2, true); - // {T}: Untap another target permanent. - addCard(Zone.BATTLEFIELD, playerA, "Kiora's Follower", 1, true); - addCard(Zone.BATTLEFIELD, playerA, "Kiora's Follower", 1); - - addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 2); - - attack(2, playerB, "Silvercoat Lion"); - attack(2, playerB, "Silvercoat Lion"); - - setStopAt(2, PhaseStep.END_TURN); - execute(); - - assertLife(playerA, 16); - assertTapped("Kiora's Follower", false); - } -} +/* + * 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 org.mage.test.AI.basic; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.filter.common.FilterLandPermanent; +import mage.game.permanent.Permanent; +import org.junit.Assert; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBaseAI; + +/** + * + * @author LevelX2 + */ +public class PreventRepeatedActionsTest extends CardTestPlayerBaseAI { + + /** + * Check that an equipment is not switched again an again between creatures + * + */ + @Test + public void testEquipOnlyOnce() { + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 6); + + // Equipped creature gets +1/+1. + // Equip {1}({1}: Attach to target creature you control. Equip only as a sorcery.) + addCard(Zone.BATTLEFIELD, playerA, "Fireshrieker", 1); + addCard(Zone.BATTLEFIELD, playerA, "Silvercoat Lion", 2); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + int tappedLands = 0; + for (Permanent permanent : currentGame.getBattlefield().getAllActivePermanents(new FilterLandPermanent(), playerA.getId(), currentGame)) { + if (permanent.isTapped()) { + tappedLands++; + } + } + Assert.assertEquals("AI should only used Equipment once", 2, tappedLands); + } + + /** + * If the AI on a local server gets control of a Basalt Monolith it will + * infinite loop taping for three mana and then using the mana to untap lol. + * Seeing the computer durdle troll is quite the hillarious thing + */ + @Test + public void testBasaltMonolith() { + addCard(Zone.HAND, playerA, "Phyrexian Vault", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 3); + // Basalt Monolith doesn't untap during your untap step. + // {T}: Add {C}{C}{C} to your mana pool. + // {3}: Untap Basalt Monolith. + addCard(Zone.BATTLEFIELD, playerA, "Basalt Monolith", 1, true); + + setStopAt(5, PhaseStep.END_TURN); + execute(); + + // {2}, {T}, Sacrifice a creature: Draw a card. + assertPermanentCount(playerA, "Phyrexian Vault", 1); + assertTapped("Basalt Monolith", true); + assertTappedCount("Plains", false, 3); + } + + /** + * AI gets stuck with two Kiora's Followers #1167 + */ + @Test + public void testKiorasFollower() { + addCard(Zone.BATTLEFIELD, playerA, "Forest", 2, true); + // {T}: Untap another target permanent. + addCard(Zone.BATTLEFIELD, playerA, "Kiora's Follower", 1, true); + addCard(Zone.BATTLEFIELD, playerA, "Kiora's Follower", 1); + + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 2); + + attack(2, playerB, "Silvercoat Lion"); + attack(2, playerB, "Silvercoat Lion"); + + setStopAt(2, PhaseStep.END_TURN); + execute(); + + assertLife(playerA, 16); + assertTapped("Kiora's Follower", false); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/activated/PutToGraveyardTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/activated/PutToGraveyardTest.java index 1b72964a695..dbb7b582684 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/activated/PutToGraveyardTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/activated/PutToGraveyardTest.java @@ -1,75 +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 org.mage.test.cards.abilities.activated; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * - * @author LevelX2 - */ -public class PutToGraveyardTest extends CardTestPlayerBase { - - /** - * Void Attendant The usable "Prozessor-Effect" doesnt put the card back - * into the graveyard from the exile. - */ - @Test - public void testExileToGraveyard() { - // Devoid - // {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 {1} to your mana pool." - addCard(Zone.BATTLEFIELD, playerA, "Void Attendant"); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); - // Flash (You may cast this spell any time you could cast an instant.) - // 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.) - addCard(Zone.HAND, playerA, "Stasis Snare", 1); // {1}{W}{W} - - addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Stasis Snare"); - addTarget(playerA, "Silvercoat Lion"); - - activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}{G},", NO_TARGET, ""); - addTarget(playerA, "Silvercoat Lion"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertPermanentCount(playerA, "Stasis Snare", 1); - assertPermanentCount(playerB, "Silvercoat Lion", 0); - assertExileCount(playerB, 0); - assertGraveyardCount(playerB, "Silvercoat Lion", 1); - assertPermanentCount(playerA, "Eldrazi Scion", 1); - - } - -} +/* + * 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 org.mage.test.cards.abilities.activated; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class PutToGraveyardTest extends CardTestPlayerBase { + + /** + * Void Attendant The usable "Prozessor-Effect" doesnt put the card back + * into the graveyard from the exile. + */ + @Test + public void testExileToGraveyard() { + // Devoid + // {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." + addCard(Zone.BATTLEFIELD, playerA, "Void Attendant"); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); + // Flash (You may cast this spell any time you could cast an instant.) + // 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.) + addCard(Zone.HAND, playerA, "Stasis Snare", 1); // {1}{W}{W} + + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Stasis Snare"); + addTarget(playerA, "Silvercoat Lion"); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}{G},", NO_TARGET, ""); + addTarget(playerA, "Silvercoat Lion"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPermanentCount(playerA, "Stasis Snare", 1); + assertPermanentCount(playerB, "Silvercoat Lion", 0); + assertExileCount(playerB, 0); + assertGraveyardCount(playerB, "Silvercoat Lion", 1); + assertPermanentCount(playerA, "Eldrazi Scion", 1); + + } + +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MetalcraftTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MetalcraftTest.java index 42a390fefcf..9c630cecaad 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MetalcraftTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/keywords/MetalcraftTest.java @@ -1,69 +1,69 @@ -/* - * 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 org.mage.test.cards.abilities.keywords; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * - * @author LevelX2 - */ - -public class MetalcraftTest extends CardTestPlayerBase { - - /** - * Rusted Relic or Blinkmoth nexus is bugged - * Either Relic does not see Blinkmoth as an artifact or it does not turn - * into one when it should. - * - */ - @Test - public void testMetalcraftFromBlinkmoth() { - addCard(Zone.BATTLEFIELD, playerA, "Darksteel Citadel",1); - - // Metalcraft - {this} is a 5/5 Golem artifact creature as long as you control three or more artifacts - addCard(Zone.BATTLEFIELD, playerA, "Rusted Relic", 1); - - // {T}: Add {1}to your mana pool. - // {1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land. - // {1}, {T}: Target Blinkmoth creature gets +1/+1 until end of turn. - addCard(Zone.BATTLEFIELD, playerA, "Blinkmoth Nexus", 1); - - activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}: Until end of turn {this} becomes "); - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertPowerToughness(playerA, "Blinkmoth Nexus", 1, 1); - assertPowerToughness(playerA, "Rusted Relic", 5, 5); - - } - -} +/* + * 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 org.mage.test.cards.abilities.keywords; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ + +public class MetalcraftTest extends CardTestPlayerBase { + + /** + * Rusted Relic or Blinkmoth nexus is bugged + * Either Relic does not see Blinkmoth as an artifact or it does not turn + * into one when it should. + * + */ + @Test + public void testMetalcraftFromBlinkmoth() { + addCard(Zone.BATTLEFIELD, playerA, "Darksteel Citadel",1); + + // Metalcraft - {this} is a 5/5 Golem artifact creature as long as you control three or more artifacts + addCard(Zone.BATTLEFIELD, playerA, "Rusted Relic", 1); + + // {T}: Add {C}to your mana pool. + // {1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land. + // {1}, {T}: Target Blinkmoth creature gets +1/+1 until end of turn. + addCard(Zone.BATTLEFIELD, playerA, "Blinkmoth Nexus", 1); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{1}: Until end of turn {this} becomes "); + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPowerToughness(playerA, "Blinkmoth Nexus", 1, 1); + assertPowerToughness(playerA, "Rusted Relic", 5, 5); + + } + +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/SpellFizzlesTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/SpellFizzlesTest.java index 4deddfc8c06..26f3f2e9925 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/SpellFizzlesTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/abilities/other/SpellFizzlesTest.java @@ -1,66 +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 org.mage.test.cards.abilities.other; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * - * @author LevelX2 - */ -public class SpellFizzlesTest extends CardTestPlayerBase { - - @Test - public void testSpellFizzlesWithNoLegalTargets() throws Exception { - addCard(Zone.BATTLEFIELD, playerA, "Island", 4); - // Devoid - // 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 {1} to your mana pool." - addCard(Zone.HAND, playerA, "Adverse Conditions"); // {3}{U} - - addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1); - addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1); - addCard(Zone.HAND, playerB, "Lightning Bolt", 1); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Adverse Conditions", "Silvercoat Lion"); - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Silvercoat Lion", "Adverse Conditions"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertGraveyardCount(playerA, "Adverse Conditions", 1); - assertGraveyardCount(playerB, "Lightning Bolt", 1); - assertGraveyardCount(playerB, "Silvercoat Lion", 1); - assertPermanentCount(playerA, "Eldrazi Scion", 0); // All targets were illegal - spell fizzles - - } - -} +/* + * 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 org.mage.test.cards.abilities.other; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class SpellFizzlesTest extends CardTestPlayerBase { + + @Test + public void testSpellFizzlesWithNoLegalTargets() throws Exception { + addCard(Zone.BATTLEFIELD, playerA, "Island", 4); + // Devoid + // 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." + addCard(Zone.HAND, playerA, "Adverse Conditions"); // {3}{U} + + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1); + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 1); + addCard(Zone.HAND, playerB, "Lightning Bolt", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Adverse Conditions", "Silvercoat Lion"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerB, "Lightning Bolt", "Silvercoat Lion", "Adverse Conditions"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerA, "Adverse Conditions", 1); + assertGraveyardCount(playerB, "Lightning Bolt", 1); + assertGraveyardCount(playerB, "Silvercoat Lion", 1); + assertPermanentCount(playerA, "Eldrazi Scion", 0); // All targets were illegal - spell fizzles + + } + +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlDiedCastAgainTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlDiedCastAgainTest.java index 69a2a1cf905..f6cf2fd3f1a 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlDiedCastAgainTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlDiedCastAgainTest.java @@ -1,125 +1,125 @@ -package org.mage.test.cards.control; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * Tests that if a creature was controlled by opponent and died and was cast - * again by owner, that continuous effects of this creature work with controller - * for the owner - * - * @author LevelX2 - */ -public class GainControlDiedCastAgainTest extends CardTestPlayerBase { - - @Test - public void testBoostEffectsWorksForControllerOfElesh() { - - addCard(Zone.BATTLEFIELD, playerB, "Plains", 4); - addCard(Zone.BATTLEFIELD, playerB, "Swamp", 3); - /** - * Volrath's Stronghold Legendary Land {t}: Add {1} to your mana pool. - * {1}{B}, {tap}: Put target creature card from your graveyard on top of - * your library. - */ - addCard(Zone.BATTLEFIELD, playerB, "Volrath's Stronghold"); - /** - * Elesh Norn, Grand Cenobite {5}{W}{W} Legendary Creature — Praetor 4/7 - * Vigilance Other creatures you control get +2/+2. Creatures your - * opponents control get -2/-2. - */ - addCard(Zone.BATTLEFIELD, playerB, "Elesh Norn, Grand Cenobite"); - addCard(Zone.BATTLEFIELD, playerB, "Kalonian Tusker"); // simple 3/3 - - /** - * Keiga, the Tide Star Legendary Dragon Spirit When Keiga, the Tide - * Star dies, gain control of target creature - */ - addCard(Zone.BATTLEFIELD, playerA, "Keiga, the Tide Star"); - addCard(Zone.BATTLEFIELD, playerA, "Kalonian Tusker"); - - attack(2, playerB, "Elesh Norn, Grand Cenobite"); - block(2, playerA, "Keiga, the Tide Star", "Elesh Norn, Grand Cenobite"); - addTarget(playerB, "Elesh Norn, Grand Cenobite"); - - setStopAt(2, PhaseStep.POSTCOMBAT_MAIN); - execute(); - - assertLife(playerA, 20); - assertLife(playerB, 20); - - assertPermanentCount(playerA, "Elesh Norn, Grand Cenobite", 1); - - assertPowerToughness(playerA, "Kalonian Tusker", 5, 5); - assertPowerToughness(playerB, "Kalonian Tusker", 1, 1); - } - - @Test - public void testBoostEffectsWorkForController() { - addCard(Zone.BATTLEFIELD, playerB, "Plains", 6); - addCard(Zone.BATTLEFIELD, playerB, "Swamp", 6); - /** - * Akroma's Vengeance {4}{W}{W} Sorcery Destroy all artifacts, - * creatures, and enchantments. - */ - addCard(Zone.HAND, playerB, "Akroma's Vengeance"); - /** - * Volrath's Stronghold Legendary Land {t}: Add {1} to your mana pool. - * {1}{B}, {tap}: Put target creature card from your graveyard on top of - * your library. - */ - addCard(Zone.BATTLEFIELD, playerB, "Volrath's Stronghold"); - /** - * Elesh Norn, Grand Cenobite {5}{W}{W} Legendary Creature — Praetor - * Vigilance Other creatures you control get +2/+2. Creatures your - * opponents control get -2/-2. - */ - addCard(Zone.HAND, playerB, "Elesh Norn, Grand Cenobite"); - - addCard(Zone.BATTLEFIELD, playerB, "Darksteel Gargoyle"); // indestructible 3/3 - - addCard(Zone.BATTLEFIELD, playerA, "Island", 6); - /** - * Keiga, the Tide Star {5}{U} Legendary Dragon Spirit 5/5 When Keiga, - * the Tide Star dies, gain control of target creature - */ - addCard(Zone.HAND, playerA, "Keiga, the Tide Star"); - addCard(Zone.BATTLEFIELD, playerA, "Darksteel Gargoyle"); - - castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Elesh Norn, Grand Cenobite"); - - castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Keiga, the Tide Star"); - - attack(4, playerB, "Elesh Norn, Grand Cenobite"); - block(4, playerA, "Keiga, the Tide Star", "Elesh Norn, Grand Cenobite"); - addTarget(playerA, "Elesh Norn, Grand Cenobite"); - - // Destroy all creatures, enchantments and artifacts - castSpell(4, PhaseStep.POSTCOMBAT_MAIN, playerB, "Akroma's Vengeance"); - - // Put Elesh Norn back on library - activateAbility(5, PhaseStep.END_TURN, playerB, "{1}{B},{T}: Put target creature card", "Elesh Norn, Grand Cenobite"); - - castSpell(6, PhaseStep.PRECOMBAT_MAIN, playerB, "Elesh Norn, Grand Cenobite"); - setStopAt(6, PhaseStep.BEGIN_COMBAT); - execute(); - - assertLife(playerA, 20); - assertLife(playerB, 20); - - assertPermanentCount(playerA, "Keiga, the Tide Star", 0); - assertGraveyardCount(playerA, "Keiga, the Tide Star", 1); - - assertPermanentCount(playerB, "Elesh Norn, Grand Cenobite", 1); - assertGraveyardCount(playerB, "Elesh Norn, Grand Cenobite", 0); - assertGraveyardCount(playerB, "Akroma's Vengeance", 1); - - assertPermanentCount(playerA, "Darksteel Gargoyle", 1); - assertPermanentCount(playerB, "Darksteel Gargoyle", 1); - - assertPowerToughness(playerA, "Darksteel Gargoyle", 1, 1); - assertPowerToughness(playerB, "Darksteel Gargoyle", 5, 5); - } -} +package org.mage.test.cards.control; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * Tests that if a creature was controlled by opponent and died and was cast + * again by owner, that continuous effects of this creature work with controller + * for the owner + * + * @author LevelX2 + */ +public class GainControlDiedCastAgainTest extends CardTestPlayerBase { + + @Test + public void testBoostEffectsWorksForControllerOfElesh() { + + addCard(Zone.BATTLEFIELD, playerB, "Plains", 4); + addCard(Zone.BATTLEFIELD, playerB, "Swamp", 3); + /** + * Volrath's Stronghold Legendary Land {t}: Add {C} to your mana pool. + * {1}{B}, {tap}: Put target creature card from your graveyard on top of + * your library. + */ + addCard(Zone.BATTLEFIELD, playerB, "Volrath's Stronghold"); + /** + * Elesh Norn, Grand Cenobite {5}{W}{W} Legendary Creature — Praetor 4/7 + * Vigilance Other creatures you control get +2/+2. Creatures your + * opponents control get -2/-2. + */ + addCard(Zone.BATTLEFIELD, playerB, "Elesh Norn, Grand Cenobite"); + addCard(Zone.BATTLEFIELD, playerB, "Kalonian Tusker"); // simple 3/3 + + /** + * Keiga, the Tide Star Legendary Dragon Spirit When Keiga, the Tide + * Star dies, gain control of target creature + */ + addCard(Zone.BATTLEFIELD, playerA, "Keiga, the Tide Star"); + addCard(Zone.BATTLEFIELD, playerA, "Kalonian Tusker"); + + attack(2, playerB, "Elesh Norn, Grand Cenobite"); + block(2, playerA, "Keiga, the Tide Star", "Elesh Norn, Grand Cenobite"); + addTarget(playerB, "Elesh Norn, Grand Cenobite"); + + setStopAt(2, PhaseStep.POSTCOMBAT_MAIN); + execute(); + + assertLife(playerA, 20); + assertLife(playerB, 20); + + assertPermanentCount(playerA, "Elesh Norn, Grand Cenobite", 1); + + assertPowerToughness(playerA, "Kalonian Tusker", 5, 5); + assertPowerToughness(playerB, "Kalonian Tusker", 1, 1); + } + + @Test + public void testBoostEffectsWorkForController() { + addCard(Zone.BATTLEFIELD, playerB, "Plains", 6); + addCard(Zone.BATTLEFIELD, playerB, "Swamp", 6); + /** + * Akroma's Vengeance {4}{W}{W} Sorcery Destroy all artifacts, + * creatures, and enchantments. + */ + addCard(Zone.HAND, playerB, "Akroma's Vengeance"); + /** + * Volrath's Stronghold Legendary Land {t}: Add {C} to your mana pool. + * {1}{B}, {tap}: Put target creature card from your graveyard on top of + * your library. + */ + addCard(Zone.BATTLEFIELD, playerB, "Volrath's Stronghold"); + /** + * Elesh Norn, Grand Cenobite {5}{W}{W} Legendary Creature — Praetor + * Vigilance Other creatures you control get +2/+2. Creatures your + * opponents control get -2/-2. + */ + addCard(Zone.HAND, playerB, "Elesh Norn, Grand Cenobite"); + + addCard(Zone.BATTLEFIELD, playerB, "Darksteel Gargoyle"); // indestructible 3/3 + + addCard(Zone.BATTLEFIELD, playerA, "Island", 6); + /** + * Keiga, the Tide Star {5}{U} Legendary Dragon Spirit 5/5 When Keiga, + * the Tide Star dies, gain control of target creature + */ + addCard(Zone.HAND, playerA, "Keiga, the Tide Star"); + addCard(Zone.BATTLEFIELD, playerA, "Darksteel Gargoyle"); + + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Elesh Norn, Grand Cenobite"); + + castSpell(3, PhaseStep.PRECOMBAT_MAIN, playerA, "Keiga, the Tide Star"); + + attack(4, playerB, "Elesh Norn, Grand Cenobite"); + block(4, playerA, "Keiga, the Tide Star", "Elesh Norn, Grand Cenobite"); + addTarget(playerA, "Elesh Norn, Grand Cenobite"); + + // Destroy all creatures, enchantments and artifacts + castSpell(4, PhaseStep.POSTCOMBAT_MAIN, playerB, "Akroma's Vengeance"); + + // Put Elesh Norn back on library + activateAbility(5, PhaseStep.END_TURN, playerB, "{1}{B},{T}: Put target creature card", "Elesh Norn, Grand Cenobite"); + + castSpell(6, PhaseStep.PRECOMBAT_MAIN, playerB, "Elesh Norn, Grand Cenobite"); + setStopAt(6, PhaseStep.BEGIN_COMBAT); + execute(); + + assertLife(playerA, 20); + assertLife(playerB, 20); + + assertPermanentCount(playerA, "Keiga, the Tide Star", 0); + assertGraveyardCount(playerA, "Keiga, the Tide Star", 1); + + assertPermanentCount(playerB, "Elesh Norn, Grand Cenobite", 1); + assertGraveyardCount(playerB, "Elesh Norn, Grand Cenobite", 0); + assertGraveyardCount(playerB, "Akroma's Vengeance", 1); + + assertPermanentCount(playerA, "Darksteel Gargoyle", 1); + assertPermanentCount(playerB, "Darksteel Gargoyle", 1); + + assertPowerToughness(playerA, "Darksteel Gargoyle", 1, 1); + assertPowerToughness(playerB, "Darksteel Gargoyle", 5, 5); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlTargetEffectTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlTargetEffectTest.java index ed2edd68978..67d160b6b8b 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlTargetEffectTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/control/GainControlTargetEffectTest.java @@ -1,108 +1,108 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ -package org.mage.test.cards.control; - -import mage.abilities.keyword.HasteAbility; -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * - * @author LevelX2 - */ -public class GainControlTargetEffectTest extends CardTestPlayerBase { - - /** - * Checks if control has changed and the controlled creature has Haste - * - */ - @Test - public void testPermanentControlEffect() { - // When Smelt-Ward Gatekeepers enters the battlefield, if you control two or more Gates, gain control of target creature an opponent controls until end of turn. Untap that creature. That creature gains haste until end of turn. - addCard(Zone.HAND, playerA, "Smelt-Ward Gatekeepers", 1); - addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4); - addCard(Zone.BATTLEFIELD, playerA, "Boros Guildgate", 2); - - addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Smelt-Ward Gatekeepers"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - // under control - assertPermanentCount(playerA, "Silvercoat Lion", 1); - assertAbility(playerA, "Silvercoat Lion", HasteAbility.getInstance(), true); - } - - /** - * I gained control of my opponent's Glen Elendra Archmage with Vedalken - * Shackles. After I sacrificed it to counter a spell, it Persisted back to - * my battlefield, but it should return under its owner's control. Maybe a - * Persist problem, but I am thinking Vedalken Shackles doesn't realize that - * it is a different object when it returns from the graveyard instead. - */ - @Test - public void testGainControlOfCreatureWithPersistEffect() { - // {2},{T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as Vedalken Shackles remains tapped. - addCard(Zone.BATTLEFIELD, playerA, "Vedalken Shackles", 1); - addCard(Zone.BATTLEFIELD, playerA, "Island", 3); - - // Lightning Strike deals 3 damage to target creature or player. - addCard(Zone.HAND, playerB, "Lightning Strike", 1); - addCard(Zone.BATTLEFIELD, playerB, "Mountain", 2); - // Flying - // {U}, Sacrifice Glen Elendra Archmage: Counter target noncreature spell. - // 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.) - addCard(Zone.BATTLEFIELD, playerB, "Glen Elendra Archmage"); - - activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as {this} remains tapped.", "Glen Elendra Archmage"); - - castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Strike", playerA); - activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{U},Sacrifice {this}: Counter target noncreature spell.", "Lightning Strike"); - - setStopAt(1, PhaseStep.END_TURN); - execute(); - - assertGraveyardCount(playerB, "Lightning Strike", 1); - assertLife(playerA, 20); - assertLife(playerB, 20); - // under control of the owner after persist triggered - assertPermanentCount(playerA, "Glen Elendra Archmage", 0); - assertPermanentCount(playerB, "Glen Elendra Archmage", 1); - - } - - /** - * The shackles can maintain control of Mutavault indefinitely, even when - * it's not a creature. - * - */ - @Test - public void testKeepControlOfMutavault() { - // {2},{T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as Vedalken Shackles remains tapped. - addCard(Zone.BATTLEFIELD, playerA, "Vedalken Shackles", 1); - addCard(Zone.BATTLEFIELD, playerA, "Island", 3); - - addCard(Zone.BATTLEFIELD, playerB, "Island", 1); - // {T}: Add {1} to your mana pool. - // {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land. - addCard(Zone.BATTLEFIELD, playerB, "Mutavault", 1); - - activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerB, "{1}: Until end of turn {this} becomes"); - activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "{2},{T}: Gain control", "Mutavault"); - - setChoice(playerA, "No"); // Don't untap the Shackles - setStopAt(3, PhaseStep.PRECOMBAT_MAIN); - execute(); - - // under control of Shackles even if it's no longer a creature - assertPermanentCount(playerB, "Mutavault", 0); - assertPermanentCount(playerA, "Mutavault", 1); - - } -} +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package org.mage.test.cards.control; + +import mage.abilities.keyword.HasteAbility; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class GainControlTargetEffectTest extends CardTestPlayerBase { + + /** + * Checks if control has changed and the controlled creature has Haste + * + */ + @Test + public void testPermanentControlEffect() { + // When Smelt-Ward Gatekeepers enters the battlefield, if you control two or more Gates, gain control of target creature an opponent controls until end of turn. Untap that creature. That creature gains haste until end of turn. + addCard(Zone.HAND, playerA, "Smelt-Ward Gatekeepers", 1); + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4); + addCard(Zone.BATTLEFIELD, playerA, "Boros Guildgate", 2); + + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Smelt-Ward Gatekeepers"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + // under control + assertPermanentCount(playerA, "Silvercoat Lion", 1); + assertAbility(playerA, "Silvercoat Lion", HasteAbility.getInstance(), true); + } + + /** + * I gained control of my opponent's Glen Elendra Archmage with Vedalken + * Shackles. After I sacrificed it to counter a spell, it Persisted back to + * my battlefield, but it should return under its owner's control. Maybe a + * Persist problem, but I am thinking Vedalken Shackles doesn't realize that + * it is a different object when it returns from the graveyard instead. + */ + @Test + public void testGainControlOfCreatureWithPersistEffect() { + // {2},{T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as Vedalken Shackles remains tapped. + addCard(Zone.BATTLEFIELD, playerA, "Vedalken Shackles", 1); + addCard(Zone.BATTLEFIELD, playerA, "Island", 3); + + // Lightning Strike deals 3 damage to target creature or player. + addCard(Zone.HAND, playerB, "Lightning Strike", 1); + addCard(Zone.BATTLEFIELD, playerB, "Mountain", 2); + // Flying + // {U}, Sacrifice Glen Elendra Archmage: Counter target noncreature spell. + // 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.) + addCard(Zone.BATTLEFIELD, playerB, "Glen Elendra Archmage"); + + activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{2},{T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as {this} remains tapped.", "Glen Elendra Archmage"); + + castSpell(1, PhaseStep.POSTCOMBAT_MAIN, playerB, "Lightning Strike", playerA); + activateAbility(1, PhaseStep.POSTCOMBAT_MAIN, playerA, "{U},Sacrifice {this}: Counter target noncreature spell.", "Lightning Strike"); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + assertGraveyardCount(playerB, "Lightning Strike", 1); + assertLife(playerA, 20); + assertLife(playerB, 20); + // under control of the owner after persist triggered + assertPermanentCount(playerA, "Glen Elendra Archmage", 0); + assertPermanentCount(playerB, "Glen Elendra Archmage", 1); + + } + + /** + * The shackles can maintain control of Mutavault indefinitely, even when + * it's not a creature. + * + */ + @Test + public void testKeepControlOfMutavault() { + // {2},{T}: Gain control of target creature with power less than or equal to the number of Islands you control for as long as Vedalken Shackles remains tapped. + addCard(Zone.BATTLEFIELD, playerA, "Vedalken Shackles", 1); + addCard(Zone.BATTLEFIELD, playerA, "Island", 3); + + addCard(Zone.BATTLEFIELD, playerB, "Island", 1); + // {T}: Add {C} to your mana pool. + // {1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land. + addCard(Zone.BATTLEFIELD, playerB, "Mutavault", 1); + + activateAbility(2, PhaseStep.PRECOMBAT_MAIN, playerB, "{1}: Until end of turn {this} becomes"); + activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerA, "{2},{T}: Gain control", "Mutavault"); + + setChoice(playerA, "No"); // Don't untap the Shackles + setStopAt(3, PhaseStep.PRECOMBAT_MAIN); + execute(); + + // under control of Shackles even if it's no longer a creature + assertPermanentCount(playerB, "Mutavault", 0); + assertPermanentCount(playerA, "Mutavault", 1); + + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java index 80560b23bec..304ed2fdf67 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/mana/ConditionalManaTest.java @@ -1,144 +1,144 @@ -/* - * 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 org.mage.test.cards.mana; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * - * @author LevelX2 - */ -public class ConditionalManaTest extends CardTestPlayerBase { - - @Test - public void testNormalUse() { - // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a multicolored spell. - addCard(Zone.BATTLEFIELD, playerA, "Pillar of the Paruns", 2); - // Instant {G}{W} - // Target player gains 7 life. - addCard(Zone.HAND, playerA, "Heroes' Reunion", 1); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Heroes' Reunion", playerA); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertGraveyardCount(playerA, "Heroes' Reunion", 1); - assertHandCount(playerA, "Heroes' Reunion", 0); // player A could not cast it - assertLife(playerA, 27); - } - - @Test - public void testNotAllowedUse() { - // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a multicolored spell. - addCard(Zone.BATTLEFIELD, playerA, "Pillar of the Paruns", 2); - addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion"); - playerA.addChoice("White"); - playerA.addChoice("White"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertHandCount(playerA, "Silvercoat Lion", 1); // player A could not cast Silvercoat Lion because the conditional mana is not available - } - - @Test - public void testWorkingWithReflectingPool() { - addCard(Zone.BATTLEFIELD, playerA, "Cavern of Souls", 1); - addCard(Zone.BATTLEFIELD, playerA, "Reflecting Pool", 1); // can create white mana without restriction from the Cavern - addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertPermanentCount(playerA, "Silvercoat Lion", 1); - } - - @Test - public void testWorkingWithReflectingPool2() { - addCard(Zone.BATTLEFIELD, playerA, "Reflecting Pool", 1); // can create white mana without restriction from the Hive - addCard(Zone.BATTLEFIELD, playerA, "Sliver Hive", 1); - addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); - - activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {1} to your mana pool"); - activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add to your mana pool one mana of any type"); - setChoice(playerA, "White"); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertPermanentCount(playerA, "Silvercoat Lion", 1); - } - - /** - * I wasunable to use "Rosheen Meanderer" ability to pay for "Candelabra of - * Tawnos" ability even thought it has "X" on its cost - */ - @Test - public void testRosheenMeandererUsingAbility() { - // Flying - addCard(Zone.HAND, playerB, "Snapping Drake", 2); // {3}{U} - // {T}: Add {4} to your mana pool. Spend this mana only on costs that contain {X}. - addCard(Zone.BATTLEFIELD, playerB, "Rosheen Meanderer", 1); - // {X}, {T}: Untap X target lands. - addCard(Zone.BATTLEFIELD, playerB, "Candelabra of Tawnos", 1); - - addCard(Zone.BATTLEFIELD, playerB, "Island", 4); - - castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Snapping Drake"); - - activateManaAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "{T}: Add {4}"); - - activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "{X},{T}: Untap"); - setChoice(playerB, "X=4"); - addTarget(playerB, "Island"); - addTarget(playerB, "Island"); - addTarget(playerB, "Island"); - addTarget(playerB, "Island"); - - castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Snapping Drake"); - - setStopAt(2, PhaseStep.END_TURN); - execute(); - - assertTappedCount("Island", true, 4); - assertTappedCount("Rosheen Meanderer", true, 1); - assertTappedCount("Candelabra of Tawnos", true, 1); - - assertPermanentCount(playerB, "Snapping Drake", 2); - } -} +/* + * 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 org.mage.test.cards.mana; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class ConditionalManaTest extends CardTestPlayerBase { + + @Test + public void testNormalUse() { + // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a multicolored spell. + addCard(Zone.BATTLEFIELD, playerA, "Pillar of the Paruns", 2); + // Instant {G}{W} + // Target player gains 7 life. + addCard(Zone.HAND, playerA, "Heroes' Reunion", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Heroes' Reunion", playerA); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertGraveyardCount(playerA, "Heroes' Reunion", 1); + assertHandCount(playerA, "Heroes' Reunion", 0); // player A could not cast it + assertLife(playerA, 27); + } + + @Test + public void testNotAllowedUse() { + // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a multicolored spell. + addCard(Zone.BATTLEFIELD, playerA, "Pillar of the Paruns", 2); + addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion"); + playerA.addChoice("White"); + playerA.addChoice("White"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertHandCount(playerA, "Silvercoat Lion", 1); // player A could not cast Silvercoat Lion because the conditional mana is not available + } + + @Test + public void testWorkingWithReflectingPool() { + addCard(Zone.BATTLEFIELD, playerA, "Cavern of Souls", 1); + addCard(Zone.BATTLEFIELD, playerA, "Reflecting Pool", 1); // can create white mana without restriction from the Cavern + addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPermanentCount(playerA, "Silvercoat Lion", 1); + } + + @Test + public void testWorkingWithReflectingPool2() { + addCard(Zone.BATTLEFIELD, playerA, "Reflecting Pool", 1); // can create white mana without restriction from the Hive + addCard(Zone.BATTLEFIELD, playerA, "Sliver Hive", 1); + addCard(Zone.HAND, playerA, "Silvercoat Lion", 1); + + activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add {C} to your mana pool"); + activateManaAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "{T}: Add to your mana pool one mana of any type"); + setChoice(playerA, "White"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Silvercoat Lion"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPermanentCount(playerA, "Silvercoat Lion", 1); + } + + /** + * I wasunable to use "Rosheen Meanderer" ability to pay for "Candelabra of + * Tawnos" ability even thought it has "X" on its cost + */ + @Test + public void testRosheenMeandererUsingAbility() { + // Flying + addCard(Zone.HAND, playerB, "Snapping Drake", 2); // {3}{U} + // {T}: Add {C}{C}{C}{C} to your mana pool. Spend this mana only on costs that contain {X}. + addCard(Zone.BATTLEFIELD, playerB, "Rosheen Meanderer", 1); + // {X}, {T}: Untap X target lands. + addCard(Zone.BATTLEFIELD, playerB, "Candelabra of Tawnos", 1); + + addCard(Zone.BATTLEFIELD, playerB, "Island", 4); + + castSpell(2, PhaseStep.PRECOMBAT_MAIN, playerB, "Snapping Drake"); + + activateManaAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "{T}: Add {C}{C}{C}{C}"); + + activateAbility(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "{X},{T}: Untap"); + setChoice(playerB, "X=4"); + addTarget(playerB, "Island"); + addTarget(playerB, "Island"); + addTarget(playerB, "Island"); + addTarget(playerB, "Island"); + + castSpell(2, PhaseStep.POSTCOMBAT_MAIN, playerB, "Snapping Drake"); + + setStopAt(2, PhaseStep.END_TURN); + execute(); + + assertTappedCount("Island", true, 4); + assertTappedCount("Rosheen Meanderer", true, 1); + assertTappedCount("Candelabra of Tawnos", true, 1); + + assertPermanentCount(playerB, "Snapping Drake", 2); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/WardenOfTheWallTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/WardenOfTheWallTest.java index 2feb6c5e644..7551df63381 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/WardenOfTheWallTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/WardenOfTheWallTest.java @@ -16,7 +16,7 @@ public class WardenOfTheWallTest extends CardTestPlayerBase { /* * Warden of the Wall * Warden of the Wall enters the battlefield tapped. - * {T}: Add {1} to your mana pool. + * {T}: Add {C} to your mana pool. * As long as it's not your turn, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying. * */ diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/single/avr/CavernOfSoulsTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/single/avr/CavernOfSoulsTest.java index 5062c9244ab..1aca66472a1 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/single/avr/CavernOfSoulsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/single/avr/CavernOfSoulsTest.java @@ -89,7 +89,7 @@ public class CavernOfSoulsTest extends CardTestPlayerBase { public void testDrakeCantBeCountered() { addCard(Zone.BATTLEFIELD, playerA, "Mountain", 3); // As Cavern of Souls enters the battlefield, choose a creature type. - // {T}: Add {1} to your mana pool. + // {T}: Add {C} to your mana pool. // {T}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell of the chosen type, and that spell can't be countered. addCard(Zone.HAND, playerA, "Cavern of Souls"); addCard(Zone.HAND, playerA, "Azure Drake"); diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PossibilityStormTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PossibilityStormTest.java index a5ccb161932..84ef7030c2b 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PossibilityStormTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/triggers/PossibilityStormTest.java @@ -1,156 +1,156 @@ -/* - * 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 org.mage.test.cards.triggers; - -import mage.cards.Card; -import mage.constants.PhaseStep; -import mage.constants.Zone; -import org.junit.Assert; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * - * @author LevelX2 - */ -public class PossibilityStormTest extends CardTestPlayerBase { - - /** - * There's currently a bug with Possibility Storm and Zoetic Cavern. The way - * it's supposed to work is the P. Storm trigger exiles Zoetic Cavern and - * then uses last known information about the spell to determine the type of - * card the trigger is looking for(creature in this instance). Instead it's - * basing the type solely off what's printed on the card. What happened to - * me earlier was the trigger skipped right over an Emrakul and then - * revealed a Flooded Strand. I was prompted whether or not I wanted to - * "cast" Flooded Strand without paying it's cost. Eventually I clicked yes - * and it produced a Game Error that resulted in rollback. I recreated the - * error against an AI opponent and copied the code. Can't actually post it - * because the filter on this site claims it makes my post look too - * "spammy". Here's a screenshot of it instead(in spoiler tag). - */ - @Test - public void TestWithZoeticCavern() { - addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3); - // Whenever a player casts a spell from his or her hand, that player exiles it, then exiles cards from - // the top of his or her library until he or she exiles a card that shares a card type with it. That - // player may cast that card without paying its mana cost. Then he or she puts all cards exiled with - // Possibility Storm on the bottom of his or her library in a random order. - addCard(Zone.BATTLEFIELD, playerA, "Possibility Storm", 2); - - // {T}: Add {1} to your mana pool. - // Morph {2} - addCard(Zone.HAND, playerA, "Zoetic Cavern"); - - addCard(Zone.LIBRARY, playerA, "Silvercoat Lion"); - skipInitShuffling(); - - playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern"); - setChoice(playerA, "Yes"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertPermanentCount(playerA, "Zoetic Cavern", 0); - - boolean zoeticCavernInLibrary = false; - for (Card card : playerA.getLibrary().getCards(currentGame)) { - if (card.getName().equals("Zoetic Cavern")) { - zoeticCavernInLibrary = true; - } - } - Assert.assertEquals("Zoetic Cavern has to be in the library", true, zoeticCavernInLibrary); - - assertPermanentCount(playerA, "Silvercoat Lion", 1); - - } - - /* - * Having another Possibility Storm issue(shocking, I know). This time it - * occurred when trying to finish off my opponent that was at 3 life. - * I cast an Izzet Charm choosing draw 2 discard 2 for mode, - * responded to the Possibility Storm trigger with Remand. - * Remand's trigger revealed a Pact of Negation I chose not to cast, then the trigger for Izzet Charm - * resolved apparently revealing a Cryptic Command. It automatically moved - * the spell from exile to my library, apparently because it believed it did - * not have a target(no spells remaining on the stack). I've seen this - * happen with Mana Leaks that get revealed with no targets, but Cryptic - * being modal means it should always be able to be cast. It's worth - * mentioning that I've revealed Cryptics off triggers with other spells on - * the stack and properly been asked if I wish to cast them. Thanks! - */ - @Test - public void TestWithCrypticCommand() { - addCard(Zone.BATTLEFIELD, playerA, "Island", 3); - addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1); - // Whenever a player casts a spell from his or her hand, that player exiles it, then exiles cards from - // the top of his or her library until he or she exiles a card that shares a card type with it. That - // player may cast that card without paying its mana cost. Then he or she puts all cards exiled with - // Possibility Storm on the bottom of his or her library in a random order. - addCard(Zone.BATTLEFIELD, playerA, "Possibility Storm", 1); - - // Choose one — Counter target noncreature spell unless its controller pays {2}; - // or Izzet Charm deals 2 damage to target creature; - // or draw two cards, then discard two cards. - addCard(Zone.HAND, playerA, "Izzet Charm"); // {U}{R} - // Counter target spell. If that spell is countered this way, put it into its owner's hand instead of into that player's graveyard. - // Draw a card. - addCard(Zone.HAND, playerA, "Remand"); - - // Choose two - - // Counter target spell; - // or return target permanent to its owner's hand; - // or tap all creatures your opponents control; - // or draw a card. - addCard(Zone.LIBRARY, playerA, "Cryptic Command"); - addCard(Zone.LIBRARY, playerA, "Pact of Negation"); - skipInitShuffling(); - - addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Izzet Charm"); - setModeChoice(playerA, "3"); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Remand", "Izzet Charm", "Whenever a player casts"); - setChoice(playerA, "No"); // Don't play Pact of Negotiation - - setChoice(playerA, "Yes"); // Play Cryptic Command - setModeChoice(playerA, "3"); - setModeChoice(playerA, "4"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertExileCount(playerA, 0); - assertGraveyardCount(playerA, "Cryptic Command", 1); - - assertTapped("Silvercoat Lion", true); - assertHandCount(playerA, 1); // from Cryptic Command Draw - - } -} +/* + * 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 org.mage.test.cards.triggers; + +import mage.cards.Card; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import org.junit.Assert; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class PossibilityStormTest extends CardTestPlayerBase { + + /** + * There's currently a bug with Possibility Storm and Zoetic Cavern. The way + * it's supposed to work is the P. Storm trigger exiles Zoetic Cavern and + * then uses last known information about the spell to determine the type of + * card the trigger is looking for(creature in this instance). Instead it's + * basing the type solely off what's printed on the card. What happened to + * me earlier was the trigger skipped right over an Emrakul and then + * revealed a Flooded Strand. I was prompted whether or not I wanted to + * "cast" Flooded Strand without paying it's cost. Eventually I clicked yes + * and it produced a Game Error that resulted in rollback. I recreated the + * error against an AI opponent and copied the code. Can't actually post it + * because the filter on this site claims it makes my post look too + * "spammy". Here's a screenshot of it instead(in spoiler tag). + */ + @Test + public void TestWithZoeticCavern() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 3); + // Whenever a player casts a spell from his or her hand, that player exiles it, then exiles cards from + // the top of his or her library until he or she exiles a card that shares a card type with it. That + // player may cast that card without paying its mana cost. Then he or she puts all cards exiled with + // Possibility Storm on the bottom of his or her library in a random order. + addCard(Zone.BATTLEFIELD, playerA, "Possibility Storm", 2); + + // {T}: Add {C} to your mana pool. + // Morph {2} + addCard(Zone.HAND, playerA, "Zoetic Cavern"); + + addCard(Zone.LIBRARY, playerA, "Silvercoat Lion"); + skipInitShuffling(); + + playLand(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Zoetic Cavern"); + setChoice(playerA, "Yes"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertPermanentCount(playerA, "Zoetic Cavern", 0); + + boolean zoeticCavernInLibrary = false; + for (Card card : playerA.getLibrary().getCards(currentGame)) { + if (card.getName().equals("Zoetic Cavern")) { + zoeticCavernInLibrary = true; + } + } + Assert.assertEquals("Zoetic Cavern has to be in the library", true, zoeticCavernInLibrary); + + assertPermanentCount(playerA, "Silvercoat Lion", 1); + + } + + /* + * Having another Possibility Storm issue(shocking, I know). This time it + * occurred when trying to finish off my opponent that was at 3 life. + * I cast an Izzet Charm choosing draw 2 discard 2 for mode, + * responded to the Possibility Storm trigger with Remand. + * Remand's trigger revealed a Pact of Negation I chose not to cast, then the trigger for Izzet Charm + * resolved apparently revealing a Cryptic Command. It automatically moved + * the spell from exile to my library, apparently because it believed it did + * not have a target(no spells remaining on the stack). I've seen this + * happen with Mana Leaks that get revealed with no targets, but Cryptic + * being modal means it should always be able to be cast. It's worth + * mentioning that I've revealed Cryptics off triggers with other spells on + * the stack and properly been asked if I wish to cast them. Thanks! + */ + @Test + public void TestWithCrypticCommand() { + addCard(Zone.BATTLEFIELD, playerA, "Island", 3); + addCard(Zone.BATTLEFIELD, playerA, "Mountain", 1); + // Whenever a player casts a spell from his or her hand, that player exiles it, then exiles cards from + // the top of his or her library until he or she exiles a card that shares a card type with it. That + // player may cast that card without paying its mana cost. Then he or she puts all cards exiled with + // Possibility Storm on the bottom of his or her library in a random order. + addCard(Zone.BATTLEFIELD, playerA, "Possibility Storm", 1); + + // Choose one — Counter target noncreature spell unless its controller pays {2}; + // or Izzet Charm deals 2 damage to target creature; + // or draw two cards, then discard two cards. + addCard(Zone.HAND, playerA, "Izzet Charm"); // {U}{R} + // Counter target spell. If that spell is countered this way, put it into its owner's hand instead of into that player's graveyard. + // Draw a card. + addCard(Zone.HAND, playerA, "Remand"); + + // Choose two - + // Counter target spell; + // or return target permanent to its owner's hand; + // or tap all creatures your opponents control; + // or draw a card. + addCard(Zone.LIBRARY, playerA, "Cryptic Command"); + addCard(Zone.LIBRARY, playerA, "Pact of Negation"); + skipInitShuffling(); + + addCard(Zone.BATTLEFIELD, playerB, "Silvercoat Lion", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Izzet Charm"); + setModeChoice(playerA, "3"); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Remand", "Izzet Charm", "Whenever a player casts"); + setChoice(playerA, "No"); // Don't play Pact of Negotiation + + setChoice(playerA, "Yes"); // Play Cryptic Command + setModeChoice(playerA, "3"); + setModeChoice(playerA, "4"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertExileCount(playerA, 0); + assertGraveyardCount(playerA, "Cryptic Command", 1); + + assertTapped("Silvercoat Lion", true); + assertHandCount(playerA, 1); // from Cryptic Command Draw + + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/BoseijuTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/BoseijuTest.java index e19a37ef2e4..81c92c40cef 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/BoseijuTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/BoseijuTest.java @@ -14,7 +14,7 @@ public class BoseijuTest extends CardTestPlayerBase { * Boseiju, Who Shelters All * Legendary Land * Boseiju, Who Shelters All enters the battlefield tapped. - * {T}, Pay 2 life: Add {1} to your mana pool. If that mana is spent on an + * {T}, Pay 2 life: Add {C} to your mana pool. If that mana is spent on an * instant or sorcery spell, that spell can't be countered by spells or abilities. * */ diff --git a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java index 20d74cefb82..b0a7b2b45d3 100644 --- a/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/cards/watchers/HallOfTheBanditLordTest.java @@ -15,7 +15,7 @@ public class HallOfTheBanditLordTest extends CardTestPlayerBase { * Hall of the Bandit Lord * Legendary Land * Hall of the Bandit Lord enters the battlefield tapped. - * {T}, Pay 3 life: Add {1} to your mana pool. If that mana is spent on a + * {T}, Pay 3 life: Add {C} to your mana pool. If that mana is spent on a * creature spell, it gains haste. * */ diff --git a/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java b/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java index b83ad522a16..aa2284c768d 100644 --- a/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/commander/duel/OpalPalaceTest.java @@ -1,68 +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 org.mage.test.commander.duel; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import mage.counters.CounterType; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestCommanderDuelBase; - -/** - * - * @author LevelX2 - */ - -public class OpalPalaceTest extends CardTestCommanderDuelBase { - /** - * I cast my commander with Opal Palace's second ability and it did not receive a +1/+1 counter - * the first time it was cast (rulings say it should on the first time cast). - */ - @Test - public void testFirstAbility() { - addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 4); - - // {T}: Add {1} to your mana pool. - // {1}, {T}: Add to your mana pool one mana of any color in your commander's color identity. - // If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it - // equal to the number of times it's been cast from the command zone this game. - addCard(Zone.BATTLEFIELD, playerA, "Opal Palace", 1); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ob Nixilis of the Black Oath"); - - setStopAt(1, PhaseStep.BEGIN_COMBAT); - execute(); - - assertLife(playerA, 40); - assertLife(playerB, 40); - - assertPermanentCount(playerA, "Ob Nixilis of the Black Oath", 1); - assertCounterCount("Ob Nixilis of the Black Oath", CounterType.P1P1, 1); - } -} +/* + * 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 org.mage.test.commander.duel; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.counters.CounterType; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestCommanderDuelBase; + +/** + * + * @author LevelX2 + */ + +public class OpalPalaceTest extends CardTestCommanderDuelBase { + /** + * I cast my commander with Opal Palace's second ability and it did not receive a +1/+1 counter + * the first time it was cast (rulings say it should on the first time cast). + */ + @Test + public void testFirstAbility() { + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 4); + + // {T}: Add {C} to your mana pool. + // {1}, {T}: Add to your mana pool one mana of any color in your commander's color identity. + // If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it + // equal to the number of times it's been cast from the command zone this game. + addCard(Zone.BATTLEFIELD, playerA, "Opal Palace", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Ob Nixilis of the Black Oath"); + + setStopAt(1, PhaseStep.BEGIN_COMBAT); + execute(); + + assertLife(playerA, 40); + assertLife(playerB, 40); + + assertPermanentCount(playerA, "Ob Nixilis of the Black Oath", 1); + assertCounterCount("Ob Nixilis of the Black Oath", CounterType.P1P1, 1); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/turnmod/SkipTurnTest.java b/Mage.Tests/src/test/java/org/mage/test/turnmod/SkipTurnTest.java index 71c88bf394d..7956bfe07b1 100644 --- a/Mage.Tests/src/test/java/org/mage/test/turnmod/SkipTurnTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/turnmod/SkipTurnTest.java @@ -1,63 +1,63 @@ -/* - * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of BetaSteward_at_googlemail.com. - */ -package org.mage.test.turnmod; - -import mage.constants.PhaseStep; -import mage.constants.Zone; -import mage.counters.CounterType; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * - * @author LevelX2 - */ -public class SkipTurnTest extends CardTestPlayerBase { - - @Test - public void testEaterOfDays() { - // At the beginning of your upkeep or whenever you cast a green spell, put a charge counter on Shrine of Boundless Growth. - // {T}, Sacrifice Shrine of Boundless Growth: Add {1} to your mana pool for each charge counter on Shrine of Boundless Growth. - addCard(Zone.HAND, playerA, "Shrine of Boundless Growth", 1); - addCard(Zone.BATTLEFIELD, playerA, "Island", 7); - // Flying - // Trample - // When Eater of Days enters the battlefield, you skip your next two turns. - addCard(Zone.HAND, playerA, "Eater of Days", 1); - - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Eater of Days"); - castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shrine of Boundless Growth"); - - setStopAt(5, PhaseStep.PRECOMBAT_MAIN); - execute(); - - assertPermanentCount(playerA, "Eater of Days", 1); - assertPermanentCount(playerA, "Shrine of Boundless Growth", 1); - assertCounterCount("Shrine of Boundless Growth", CounterType.CHARGE, 1); - } -} +/* + * 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 org.mage.test.turnmod; + +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.counters.CounterType; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * + * @author LevelX2 + */ +public class SkipTurnTest extends CardTestPlayerBase { + + @Test + public void testEaterOfDays() { + // At the beginning of your upkeep or whenever you cast a green spell, put a charge counter on Shrine of Boundless Growth. + // {T}, Sacrifice Shrine of Boundless Growth: Add {C} to your mana pool for each charge counter on Shrine of Boundless Growth. + addCard(Zone.HAND, playerA, "Shrine of Boundless Growth", 1); + addCard(Zone.BATTLEFIELD, playerA, "Island", 7); + // Flying + // Trample + // When Eater of Days enters the battlefield, you skip your next two turns. + addCard(Zone.HAND, playerA, "Eater of Days", 1); + + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Eater of Days"); + castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Shrine of Boundless Growth"); + + setStopAt(5, PhaseStep.PRECOMBAT_MAIN); + execute(); + + assertPermanentCount(playerA, "Eater of Days", 1); + assertPermanentCount(playerA, "Shrine of Boundless Growth", 1); + assertCounterCount("Shrine of Boundless Growth", CounterType.CHARGE, 1); + } +} diff --git a/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java b/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java index 9d528310d3c..d5db6555a91 100644 --- a/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/utils/ManaOptionsTest.java @@ -1,357 +1,357 @@ -/* - * 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 org.mage.test.utils; - -import mage.abilities.mana.ManaOptions; -import mage.constants.PhaseStep; -import mage.constants.Zone; -import mage.counters.CounterType; -import org.junit.Assert; -import org.junit.Ignore; -import org.junit.Test; -import org.mage.test.serverside.base.CardTestPlayerBase; - -/** - * This test checks if the calculated possible mana options are correct related - * to the given mana sources available. - * - * @author LevelX2 - */ -public class ManaOptionsTest extends CardTestPlayerBase { - - @Test - public void testSimpleMana() { - addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{G}{G}{G}", getManaOption(0, manaOptions)); - - } - - // Tinder Farm enters the battlefield tapped. - // {T}: Add {G} to your mana pool. - // {T}, Sacrifice Tinder Farm: Add {R}{W} to your mana pool. - @Test - public void testTinderFarm() { - addCard(Zone.BATTLEFIELD, playerA, "Tinder Farm", 3); - - setStopAt(2, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 4, manaOptions.size()); - Assert.assertEquals("{G}{G}{G}", getManaOption(0, manaOptions)); - Assert.assertEquals("{R}{G}{G}{W}", getManaOption(1, manaOptions)); - Assert.assertEquals("{R}{R}{G}{W}{W}", getManaOption(2, manaOptions)); - Assert.assertEquals("{R}{R}{R}{W}{W}{W}", getManaOption(3, manaOptions)); - - } - - // Adarkar Wastes - // {T}: Add {1} to your mana pool. - // {T}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you. - @Test - public void testAdarkarWastes() { - addCard(Zone.BATTLEFIELD, playerA, "Adarkar Wastes", 3); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 4, manaOptions.size()); - Assert.assertEquals("{W}{W}{W}", getManaOption(0, manaOptions)); - Assert.assertEquals("{U}{W}{W}", getManaOption(1, manaOptions)); - Assert.assertEquals("{U}{U}{W}", getManaOption(2, manaOptions)); - Assert.assertEquals("{U}{U}{U}", getManaOption(3, manaOptions)); - - } - - // Chromatic Sphere - // {1}, {T}, Sacrifice Chromatic Sphere: Add one mana of any color to your mana pool. Draw a card. - @Test - public void testChromaticSphere() { - addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); - addCard(Zone.BATTLEFIELD, playerA, "Chromatic Sphere", 2); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{Any}{Any}", getManaOption(0, manaOptions)); - } - - // Orochi Leafcaller - // {G}: Add one mana of any color to your mana pool. - @Test - public void testOrochiLeafcaller() { - addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); - addCard(Zone.BATTLEFIELD, playerA, "Orochi Leafcaller", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{W}{W}{Any}{Any}", getManaOption(0, manaOptions)); - } - - // Crystal Quarry - // {T}: {1} Add to your mana pool. - // {5}, {T}: Add {W}{U}{B}{R}{G} to your mana pool. - @Test - public void testCrystalQuarry() { - addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); - addCard(Zone.BATTLEFIELD, playerA, "Crystal Quarry", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{1}{G}{G}{W}{W}", getManaOption(0, manaOptions)); - } - - // Crystal Quarry - // {T}: {1} Add to your mana pool. - // {5}, {T}: Add {W}{U}{B}{R}{G} to your mana pool. - @Test - public void testCrystalQuarry2() { - addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); - addCard(Zone.BATTLEFIELD, playerA, "Crystal Quarry", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); - Assert.assertEquals("{1}{G}{G}{G}{W}{W}", getManaOption(0, manaOptions)); - Assert.assertEquals("{R}{G}{U}{W}{B}", getManaOption(1, manaOptions)); - } - - // Nykthos, Shrine to Nyx - // {T}: Add {1} to your mana pool. - // {2}, {T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. (Your devotion to a color is the number of mana symbols of that color in the mana costs of permanents you control.) - @Test - public void testNykthos1() { - addCard(Zone.BATTLEFIELD, playerA, "Sedge Scorpion", 4); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); - addCard(Zone.BATTLEFIELD, playerA, "Nykthos, Shrine to Nyx", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(0, manaOptions)); - } - - @Test - public void testNykthos2() { - addCard(Zone.BATTLEFIELD, playerA, "Sedge Scorpion", 4); - addCard(Zone.BATTLEFIELD, playerA, "Akroan Crusader", 3); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); - addCard(Zone.BATTLEFIELD, playerA, "Nykthos, Shrine to Nyx", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); - Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(0, manaOptions)); - Assert.assertEquals("{R}{R}{R}{G}", getManaOption(1, manaOptions)); - } - - @Test - public void testNykthos3() { - addCard(Zone.BATTLEFIELD, playerA, "Sylvan Caryatid", 1); - addCard(Zone.BATTLEFIELD, playerA, "Forest", 1); - addCard(Zone.BATTLEFIELD, playerA, "Nykthos, Shrine to Nyx", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{1}{G}{Any}", getManaOption(0, manaOptions)); - } - - @Test - public void testMix1() { - // {1}, {T}, Sacrifice Chromatic Star: Add one mana of any color to your mana pool. - // When Chromatic Star is put into a graveyard from the battlefield, draw a card. - addCard(Zone.BATTLEFIELD, playerA, "Chromatic Star", 1); - // {1}, {T}, Sacrifice Chromatic Sphere: Add one mana of any color to your mana pool. Draw a card. - addCard(Zone.BATTLEFIELD, playerA, "Chromatic Sphere", 1); - // {T}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead. - addCard(Zone.BATTLEFIELD, playerA, "Urza's Tower", 1); - // {T}: Add {1} to your mana pool. - // {T}: Add {R} or {G} to your mana pool. Each opponent gains 1 life. - addCard(Zone.BATTLEFIELD, playerA, "Grove of the Burnwillows", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); - Assert.assertEquals("{Any}{Any}", getManaOption(0, manaOptions)); - Assert.assertEquals("{Any}{Any}", getManaOption(1, manaOptions)); - } - - @Test - public void testFetidHeath() { - addCard(Zone.BATTLEFIELD, playerA, "Fetid Heath", 1); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 3, manaOptions.size()); - Assert.assertEquals("{W}{W}", getManaOption(0, manaOptions)); - Assert.assertEquals("{W}{B}", getManaOption(1, manaOptions)); - Assert.assertEquals("{B}{B}", getManaOption(2, manaOptions)); - } - - /** - * Don't use mana sources that only reduce available mana - */ - @Test - public void testCabalCoffers1() { - addCard(Zone.BATTLEFIELD, playerA, "Cabal Coffers", 1); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{W}{B}", getManaOption(0, manaOptions)); - } - - @Test - public void testCabalCoffers2() { - addCard(Zone.BATTLEFIELD, playerA, "Cabal Coffers", 1); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); - Assert.assertEquals("{W}{B}{B}", getManaOption(0, manaOptions)); - Assert.assertEquals("{B}{B}{B}", getManaOption(1, manaOptions)); - } - - @Test - public void testMageRingNetwork() { - // {T}: Add {1} to your mana pool. - // {T}, {1} : Put a storage counter on Mage-Ring Network. - // {T}, Remove X storage counters from Mage-Ring Network: Add {X} to your mana pool. - addCard(Zone.BATTLEFIELD, playerA, "Mage-Ring Network", 1); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{1}{W}{B}", getManaOption(0, manaOptions)); - } - - @Test - public void testMageRingNetwork2() { - // {T}: Add {1} to your mana pool. - // {T}, {1} : Put a storage counter on Mage-Ring Network. - // {T}, Remove X storage counters from Mage-Ring Network: Add {X} to your mana pool. - addCard(Zone.BATTLEFIELD, playerA, "Mage-Ring Network", 1); - addCounters(1, PhaseStep.UPKEEP, playerA, "Mage-Ring Network", CounterType.STORAGE, 4); - addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); - addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); - - setStopAt(1, PhaseStep.DRAW); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{4}{W}{B}", getManaOption(0, manaOptions)); - } - - @Test - @Ignore // TriggeredManaAbilities not supported yet for getAvailableMana - public void testCryptGhast() { - //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 you tap a Swamp for mana, add {B} to your mana pool (in addition to the mana the land produces). - addCard(Zone.BATTLEFIELD, playerA, "Crypt Ghast", 1); - - addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); - - setStopAt(1, PhaseStep.UPKEEP); - execute(); - - ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); - - Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); - Assert.assertEquals("{B}{B}", getManaOption(0, manaOptions)); - } - - // TODO - // Test Calciform Pools combination mana lands - private String getManaOption(int index, ManaOptions manaOptions) { - if (manaOptions.size() < index + 1) { - return ""; - } - return manaOptions.get(index).toString(); - } -} +/* + * 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 org.mage.test.utils; + +import mage.abilities.mana.ManaOptions; +import mage.constants.PhaseStep; +import mage.constants.Zone; +import mage.counters.CounterType; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; +import org.mage.test.serverside.base.CardTestPlayerBase; + +/** + * This test checks if the calculated possible mana options are correct related + * to the given mana sources available. + * + * @author LevelX2 + */ +public class ManaOptionsTest extends CardTestPlayerBase { + + @Test + public void testSimpleMana() { + addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{G}{G}{G}", getManaOption(0, manaOptions)); + + } + + // Tinder Farm enters the battlefield tapped. + // {T}: Add {G} to your mana pool. + // {T}, Sacrifice Tinder Farm: Add {R}{W} to your mana pool. + @Test + public void testTinderFarm() { + addCard(Zone.BATTLEFIELD, playerA, "Tinder Farm", 3); + + setStopAt(2, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 4, manaOptions.size()); + Assert.assertEquals("{G}{G}{G}", getManaOption(0, manaOptions)); + Assert.assertEquals("{R}{G}{G}{W}", getManaOption(1, manaOptions)); + Assert.assertEquals("{R}{R}{G}{W}{W}", getManaOption(2, manaOptions)); + Assert.assertEquals("{R}{R}{R}{W}{W}{W}", getManaOption(3, manaOptions)); + + } + + // Adarkar Wastes + // {T}: Add {C} to your mana pool. + // {T}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you. + @Test + public void testAdarkarWastes() { + addCard(Zone.BATTLEFIELD, playerA, "Adarkar Wastes", 3); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 4, manaOptions.size()); + Assert.assertEquals("{W}{W}{W}", getManaOption(0, manaOptions)); + Assert.assertEquals("{U}{W}{W}", getManaOption(1, manaOptions)); + Assert.assertEquals("{U}{U}{W}", getManaOption(2, manaOptions)); + Assert.assertEquals("{U}{U}{U}", getManaOption(3, manaOptions)); + + } + + // Chromatic Sphere + // {1}, {T}, Sacrifice Chromatic Sphere: Add one mana of any color to your mana pool. Draw a card. + @Test + public void testChromaticSphere() { + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Chromatic Sphere", 2); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{Any}{Any}", getManaOption(0, manaOptions)); + } + + // Orochi Leafcaller + // {G}: Add one mana of any color to your mana pool. + @Test + public void testOrochiLeafcaller() { + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); + addCard(Zone.BATTLEFIELD, playerA, "Orochi Leafcaller", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{W}{W}{Any}{Any}", getManaOption(0, manaOptions)); + } + + // Crystal Quarry + // {T}: {1} Add to your mana pool. + // {5}, {T}: Add {W}{U}{B}{R}{G} to your mana pool. + @Test + public void testCrystalQuarry() { + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 2); + addCard(Zone.BATTLEFIELD, playerA, "Crystal Quarry", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{1}{G}{G}{W}{W}", getManaOption(0, manaOptions)); + } + + // Crystal Quarry + // {T}: {1} Add to your mana pool. + // {5}, {T}: Add {W}{U}{B}{R}{G} to your mana pool. + @Test + public void testCrystalQuarry2() { + addCard(Zone.BATTLEFIELD, playerA, "Plains", 2); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); + addCard(Zone.BATTLEFIELD, playerA, "Crystal Quarry", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); + Assert.assertEquals("{1}{G}{G}{G}{W}{W}", getManaOption(0, manaOptions)); + Assert.assertEquals("{R}{G}{U}{W}{B}", getManaOption(1, manaOptions)); + } + + // Nykthos, Shrine to Nyx + // {T}: Add {C} to your mana pool. + // {2}, {T}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. (Your devotion to a color is the number of mana symbols of that color in the mana costs of permanents you control.) + @Test + public void testNykthos1() { + addCard(Zone.BATTLEFIELD, playerA, "Sedge Scorpion", 4); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); + addCard(Zone.BATTLEFIELD, playerA, "Nykthos, Shrine to Nyx", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(0, manaOptions)); + } + + @Test + public void testNykthos2() { + addCard(Zone.BATTLEFIELD, playerA, "Sedge Scorpion", 4); + addCard(Zone.BATTLEFIELD, playerA, "Akroan Crusader", 3); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 3); + addCard(Zone.BATTLEFIELD, playerA, "Nykthos, Shrine to Nyx", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); + Assert.assertEquals("{G}{G}{G}{G}{G}", getManaOption(0, manaOptions)); + Assert.assertEquals("{R}{R}{R}{G}", getManaOption(1, manaOptions)); + } + + @Test + public void testNykthos3() { + addCard(Zone.BATTLEFIELD, playerA, "Sylvan Caryatid", 1); + addCard(Zone.BATTLEFIELD, playerA, "Forest", 1); + addCard(Zone.BATTLEFIELD, playerA, "Nykthos, Shrine to Nyx", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{1}{G}{Any}", getManaOption(0, manaOptions)); + } + + @Test + public void testMix1() { + // {1}, {T}, Sacrifice Chromatic Star: Add one mana of any color to your mana pool. + // When Chromatic Star is put into a graveyard from the battlefield, draw a card. + addCard(Zone.BATTLEFIELD, playerA, "Chromatic Star", 1); + // {1}, {T}, Sacrifice Chromatic Sphere: Add one mana of any color to your mana pool. Draw a card. + addCard(Zone.BATTLEFIELD, playerA, "Chromatic Sphere", 1); + // {T}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead. + addCard(Zone.BATTLEFIELD, playerA, "Urza's Tower", 1); + // {T}: Add {C} to your mana pool. + // {T}: Add {R} or {G} to your mana pool. Each opponent gains 1 life. + addCard(Zone.BATTLEFIELD, playerA, "Grove of the Burnwillows", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); + Assert.assertEquals("{Any}{Any}", getManaOption(0, manaOptions)); + Assert.assertEquals("{Any}{Any}", getManaOption(1, manaOptions)); + } + + @Test + public void testFetidHeath() { + addCard(Zone.BATTLEFIELD, playerA, "Fetid Heath", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 3, manaOptions.size()); + Assert.assertEquals("{W}{W}", getManaOption(0, manaOptions)); + Assert.assertEquals("{W}{B}", getManaOption(1, manaOptions)); + Assert.assertEquals("{B}{B}", getManaOption(2, manaOptions)); + } + + /** + * Don't use mana sources that only reduce available mana + */ + @Test + public void testCabalCoffers1() { + addCard(Zone.BATTLEFIELD, playerA, "Cabal Coffers", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{W}{B}", getManaOption(0, manaOptions)); + } + + @Test + public void testCabalCoffers2() { + addCard(Zone.BATTLEFIELD, playerA, "Cabal Coffers", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 2); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 2, manaOptions.size()); + Assert.assertEquals("{W}{B}{B}", getManaOption(0, manaOptions)); + Assert.assertEquals("{B}{B}{B}", getManaOption(1, manaOptions)); + } + + @Test + public void testMageRingNetwork() { + // {T}: Add {C} to your mana pool. + // {T}, {1} : Put a storage counter on Mage-Ring Network. + // {T}, Remove X storage counters from Mage-Ring Network: Add {X} to your mana pool. + addCard(Zone.BATTLEFIELD, playerA, "Mage-Ring Network", 1); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{1}{W}{B}", getManaOption(0, manaOptions)); + } + + @Test + public void testMageRingNetwork2() { + // {T}: Add {C} to your mana pool. + // {T}, {1} : Put a storage counter on Mage-Ring Network. + // {T}, Remove X storage counters from Mage-Ring Network: Add {X} to your mana pool. + addCard(Zone.BATTLEFIELD, playerA, "Mage-Ring Network", 1); + addCounters(1, PhaseStep.UPKEEP, playerA, "Mage-Ring Network", CounterType.STORAGE, 4); + addCard(Zone.BATTLEFIELD, playerA, "Plains", 1); + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); + + setStopAt(1, PhaseStep.DRAW); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{4}{W}{B}", getManaOption(0, manaOptions)); + } + + @Test + @Ignore // TriggeredManaAbilities not supported yet for getAvailableMana + public void testCryptGhast() { + //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 you tap a Swamp for mana, add {B} to your mana pool (in addition to the mana the land produces). + addCard(Zone.BATTLEFIELD, playerA, "Crypt Ghast", 1); + + addCard(Zone.BATTLEFIELD, playerA, "Swamp", 1); + + setStopAt(1, PhaseStep.UPKEEP); + execute(); + + ManaOptions manaOptions = playerA.getAvailableManaTest(currentGame); + + Assert.assertEquals("mana variations don't fit", 1, manaOptions.size()); + Assert.assertEquals("{B}{B}", getManaOption(0, manaOptions)); + } + + // TODO + // Test Calciform Pools combination mana lands + private String getManaOption(int index, ManaOptions manaOptions) { + if (manaOptions.size() < index + 1) { + return ""; + } + return manaOptions.get(index).toString(); + } +} diff --git a/Mage/src/main/java/mage/abilities/effects/common/ExileSourceUnlessPaysEffect.java b/Mage/src/main/java/mage/abilities/effects/common/ExileSourceUnlessPaysEffect.java new file mode 100644 index 00000000000..489de50c10d --- /dev/null +++ b/Mage/src/main/java/mage/abilities/effects/common/ExileSourceUnlessPaysEffect.java @@ -0,0 +1,107 @@ +/* + * 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.abilities.effects.common; + +import mage.abilities.Ability; +import mage.abilities.Mode; +import mage.abilities.costs.Cost; +import mage.abilities.effects.OneShotEffect; +import mage.constants.Outcome; +import mage.game.Game; +import mage.game.permanent.Permanent; +import mage.players.Player; +import mage.util.CardUtil; + +/** + * + * @author fireshoes + */ +public class ExileSourceUnlessPaysEffect extends OneShotEffect { + + protected Cost cost; + + public ExileSourceUnlessPaysEffect(Cost cost) { + super(Outcome.Exile); + this.cost = cost; + } + + public ExileSourceUnlessPaysEffect(final ExileSourceUnlessPaysEffect effect) { + super(effect); + this.cost = effect.cost.copy(); + } + + @Override + public boolean apply(Game game, Ability source) { + Player controller = game.getPlayer(source.getControllerId()); + Permanent sourcePermanent = game.getPermanentOrLKIBattlefield(source.getSourceId()); + if (controller != null && sourcePermanent != null) { + StringBuilder sb = new StringBuilder(cost.getText()).append("?"); + if (!sb.toString().toLowerCase().startsWith("exile ") && !sb.toString().toLowerCase().startsWith("return ")) { + sb.insert(0, "Pay "); + } + String message = CardUtil.replaceSourceName(sb.toString(), sourcePermanent.getLogName()); + message = Character.toUpperCase(message.charAt(0)) + message.substring(1); + if (controller.chooseUse(Outcome.Benefit, message, source, game)) { + cost.clearPaid(); + if (cost.pay(source, game, source.getSourceId(), source.getControllerId(), false)) { + return true; + } + } + controller.moveCardsToExile(sourcePermanent, source, game, true, null, ""); + return true; + } + return false; + } + + @Override + public ExileSourceUnlessPaysEffect copy() { + return new ExileSourceUnlessPaysEffect(this); + } + + @Override + public String getText(Mode mode) { + if (staticText != null && !staticText.isEmpty()) { + return staticText; + } + + StringBuilder sb = new StringBuilder("exile {this} unless you "); + String costText = cost.getText(); + if (costText.toLowerCase().startsWith("discard") + || costText.toLowerCase().startsWith("remove") + || costText.toLowerCase().startsWith("return") + || costText.toLowerCase().startsWith("exile") + || costText.toLowerCase().startsWith("sacrifice")) { + sb.append(costText.substring(0, 1).toLowerCase()); + sb.append(costText.substring(1)); + } else { + sb.append("pay ").append(costText); + } + + return sb.toString(); + } +} diff --git a/Mage/src/main/java/mage/counters/CounterType.java b/Mage/src/main/java/mage/counters/CounterType.java index 6b5335c2463..f0091d4a2b1 100644 --- a/Mage/src/main/java/mage/counters/CounterType.java +++ b/Mage/src/main/java/mage/counters/CounterType.java @@ -44,6 +44,7 @@ public enum CounterType { CARRION("carrion"), CHARGE("charge"), CORPSE("corpse"), + CREDIT("credit"), CRYSTAL("crystal"), DELAY("delay"), DEPLETION("depletion"), @@ -85,6 +86,7 @@ public enum CounterType { PAIN("pain"), PETRIFICATION("petrification"), PLAGUE("plague"), + POLYP("polyp"), POISON("poison"), PRESSURE("pressure"), QUEST("quest"), diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java index 29e8a55f307..cc11cf02d57 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EldraziScionToken.java @@ -42,7 +42,7 @@ import mage.constants.Zone; public class EldraziScionToken extends Token { public EldraziScionToken() { - super("Eldrazi Scion", "1/1 colorless Eldrazi Scion creature token with \"Sacrifice this creature: Add {1} to your mana pool.\""); + super("Eldrazi Scion", "1/1 colorless Eldrazi Scion creature token with \"Sacrifice this creature: Add {C} to your mana pool.\""); cardType.add(CardType.CREATURE); subtype.add("Eldrazi"); subtype.add("Scion"); diff --git a/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java b/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java index 27f02431fc6..f4d440942ed 100644 --- a/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java +++ b/Mage/src/main/java/mage/game/permanent/token/EldraziSpawnToken.java @@ -52,7 +52,7 @@ public class EldraziSpawnToken extends Token { } public EldraziSpawnToken() { - super("Eldrazi Spawn", "0/1 colorless Eldrazi Spawn creature with \"Sacrifice this creature: Add {1} to your mana pool.\""); + super("Eldrazi Spawn", "0/1 colorless Eldrazi Spawn creature with \"Sacrifice this creature: Add {C} to your mana pool.\""); cardType.add(CardType.CREATURE); subtype.add("Eldrazi"); subtype.add("Spawn"); diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index c7fc0061afd..918d0d3fdf3 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -236,13 +236,13 @@ Soldevi Steam Beast|Alliances|177|C|{5}|Artifact Creature - Beast|4|2|Whenever S Storm Cauldron|Alliances|179|R|{5}|Artifact|||Each player may play an additional land during each of his or her turns.$Whenever a land is tapped for mana, return it to its owner's hand.| Urza's Engine|Alliances|180|U|{5}|Artifact Creature - Juggernaut|1|5|Trample${3}: Urza's Engine gains banding until end of turn. (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)${3}: Attacking creatures banded with Urza's Engine gain trample until end of turn.| Whirling Catapult|Alliances|181|U|{4}|Artifact|||{2}, Exile the top two cards of your library: Whirling Catapult deals 1 damage to each creature with flying and each player.| -Balduvian Trading Post|Alliances|182|R||Land|||If Balduvian Trading Post would enter the battlefield, sacrifice an untapped Mountain instead. If you do, put Balduvian Trading Post onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {1}{R} to your mana pool.${1}, {tap}: Balduvian Trading Post deals 1 damage to target attacking creature.| +Balduvian Trading Post|Alliances|182|R||Land|||If Balduvian Trading Post would enter the battlefield, sacrifice an untapped Mountain instead. If you do, put Balduvian Trading Post onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {C}{R} to your mana pool.${1}, {tap}: Balduvian Trading Post deals 1 damage to target attacking creature.| Heart of Yavimaya|Alliances|183|R||Land|||If Heart of Yavimaya would enter the battlefield, sacrifice a Forest instead. If you do, put Heart of Yavimaya onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {G} to your mana pool.${tap}: Target creature gets +1/+1 until end of turn.| Kjeldoran Outpost|Alliances|184|R||Land|||If Kjeldoran Outpost would enter the battlefield, sacrifice a Plains instead. If you do, put Kjeldoran Outpost onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {W} to your mana pool.${1}{W}, {tap}: Put a 1/1 white Soldier creature token onto the battlefield.| Lake of the Dead|Alliances|185|R||Land|||If Lake of the Dead would enter the battlefield, sacrifice a Swamp instead. If you do, put Lake of the Dead onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {B} to your mana pool.${tap}, Sacrifice a Swamp: Add {B}{B}{B}{B} to your mana pool.| -School of the Unseen|Alliances|186|U||Land|||{tap}: Add {1} to your mana pool.$${2}, {tap}: Add one mana of any color to your mana pool.| -Sheltered Valley|Alliances|187|R||Land|||If Sheltered Valley would enter the battlefield, instead sacrifice each other permanent named Sheltered Valley you control, then put Sheltered Valley onto the battlefield.$At the beginning of your upkeep, if you control three or fewer lands, you gain 1 life.${tap}: Add {1} to your mana pool.| -Soldevi Excavations|Alliances|188|R||Land|||If Soldevi Excavations would enter the battlefield, sacrifice an untapped Island instead. If you do, put Soldevi Excavations onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {1}{U} to your mana pool.${1}, {tap}: Look at the top card of your library. You may put that card on the bottom of your library.| +School of the Unseen|Alliances|186|U||Land|||{tap}: Add {C} to your mana pool.$${2}, {tap}: Add one mana of any color to your mana pool.| +Sheltered Valley|Alliances|187|R||Land|||If Sheltered Valley would enter the battlefield, instead sacrifice each other permanent named Sheltered Valley you control, then put Sheltered Valley onto the battlefield.$At the beginning of your upkeep, if you control three or fewer lands, you gain 1 life.${tap}: Add {C} to your mana pool.| +Soldevi Excavations|Alliances|188|R||Land|||If Soldevi Excavations would enter the battlefield, sacrifice an untapped Island instead. If you do, put Soldevi Excavations onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {C}{U} to your mana pool.${1}, {tap}: Look at the top card of your library. You may put that card on the bottom of your library.| Thawing Glaciers|Alliances|189|R||Land|||Thawing Glaciers enters the battlefield tapped.${1}, {tap}: Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. Return Thawing Glaciers to its owner's hand at the beginning of the next cleanup step.| Misinformation|Alliances|19|U|{B}|Instant|||Put up to three target cards from an opponent's graveyard on top of his or her library in any order.| Energy Arc|Alliances|190|U|{W}{U}|Instant|||Untap any number of target creatures. Prevent all combat damage that would be dealt to and dealt by those creatures this turn.| @@ -365,9 +365,9 @@ Primal Clay|Antiquities|26|U|{4}|Artifact Creature - Shapeshifter|*|*|As Primal Rakalite|Antiquities|27|U|{6}|Artifact|||{2}: Prevent the next 1 damage that would be dealt to target creature or player this turn. Return Rakalite to its owner's hand at the beginning of the next end step.| Rocket Launcher|Antiquities|28|U|{4}|Artifact|||{2}: Rocket Launcher deals 1 damage to target creature or player. Destroy Rocket Launcher at the beginning of the next end step. Activate this ability only if you've controlled Rocket Launcher continuously since the beginning of your most recent turn.| Shapeshifter|Antiquities|29|R|{6}|Artifact Creature - Shapeshifter|*|7-*|As Shapeshifter enters the battlefield, choose a number between 0 and 7.$At the beginning of your upkeep, you may choose a number between 0 and 7.$Shapeshifter's power is equal to the last chosen number and its toughness is equal to 7 minus that number.| -Ashnod's Altar|Antiquities|3|U|{3}|Artifact|||Sacrifice a creature: Add {2} to your mana pool.| +Ashnod's Altar|Antiquities|3|U|{3}|Artifact|||Sacrifice a creature: Add {C}{C} to your mana pool.| Staff of Zegon|Antiquities|30|C|{4}|Artifact|||{3}, {tap}: Target creature gets -2/-0 until end of turn.| -Su-Chi|Antiquities|31|U|{4}|Artifact Creature - Construct|4|4|When Su-Chi dies, add {4} to your mana pool.| +Su-Chi|Antiquities|31|U|{4}|Artifact Creature - Construct|4|4|When Su-Chi dies, add {C}{C}{C}{C} to your mana pool.| Tablet of Epityr|Antiquities|32|C|{1}|Artifact|||Whenever an artifact you control is put into a graveyard from the battlefield, you may pay {1}. If you do, you gain 1 life.| Tawnos's Coffin|Antiquities|33|R|{4}|Artifact|||You may choose not to untap Tawnos's Coffin during your untap step.${3}, {tap}: Exile target creature and all Auras attached to it. Note the number and kind of counters that were on that creature. When Tawnos's Coffin leaves the battlefield or becomes untapped, return the exiled card to the battlefield under its owner's control tapped with the noted number and kind of counters on it, and if you do, return the exiled Aura cards to the battlefield under their owner's control attached to that permanent.| Tawnos's Wand|Antiquities|34|U|{4}|Artifact|||{2}, {tap}: Target creature with power 2 or less is unblockable this turn.| @@ -405,29 +405,29 @@ Crumble|Antiquities|62|C|{G}|Instant|||Destroy target artifact. It can't be rege Gaea's Avenger|Antiquities|63|R|{1}{G}{G}|Creature - Treefolk|1+*|1+*|Gaea's Avenger's power and toughness are each equal to 1 plus the number of artifacts your opponents control.| Powerleech|Antiquities|64|U|{G}{G}|Enchantment|||Whenever an artifact an opponent controls becomes tapped or an opponent activates an artifact's ability without {tap} in its activation cost, you gain 1 life.| Titania's Song|Antiquities|65|U|{3}{G}|Enchantment|||Each noncreature artifact loses all abilities and becomes an artifact creature with power and toughness each equal to its converted mana cost. If Titania's Song leaves the battlefield, this effect continues until end of turn.| -Mishra's Factory|Antiquities|66|R||Land|||{tap}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| -Mishra's Factory|Antiquities|66|R||Land|||{tap}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| -Mishra's Factory|Antiquities|66|R||Land|||{tap}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| -Mishra's Factory|Antiquities|66|U||Land|||{tap}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Mishra's Factory|Antiquities|66|R||Land|||{tap}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Mishra's Factory|Antiquities|66|R||Land|||{tap}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Mishra's Factory|Antiquities|66|R||Land|||{tap}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Mishra's Factory|Antiquities|66|U||Land|||{tap}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| Bronze Tablet|Antiquities|7|R|{6}|Artifact|||Remove Bronze Tablet from your deck before playing if you're not playing for ante.$Bronze Tablet enters the battlefield tapped.${4}, {tap}: Exile Bronze Tablet and target nontoken permanent an opponent owns. That player may pay 10 life. If he or she does, put Bronze Tablet into its owner's graveyard. Otherwise, that player owns Bronze Tablet and you own the other exiled card.| -Mishra's Workshop|Antiquities|70|R||Land|||{tap}: Add {3} to your mana pool. Spend this mana only to cast artifact spells.| -Strip Mine|Antiquities|71|R||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| -Strip Mine|Antiquities|71|R||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| -Strip Mine|Antiquities|71|R||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| -Strip Mine|Antiquities|71|U||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| -Urza's Mine|Antiquities|75|C||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Antiquities|75|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Antiquities|75|C||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Antiquities|75|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Antiquities|79|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Antiquities|79|C||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Antiquities|79|C||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Antiquities|79|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| +Mishra's Workshop|Antiquities|70|R||Land|||{tap}: Add {C}{C}{C} to your mana pool. Spend this mana only to cast artifact spells.| +Strip Mine|Antiquities|71|R||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| +Strip Mine|Antiquities|71|R||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| +Strip Mine|Antiquities|71|R||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| +Strip Mine|Antiquities|71|U||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| +Urza's Mine|Antiquities|75|C||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Antiquities|75|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Antiquities|75|C||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Antiquities|75|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Antiquities|79|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Antiquities|79|C||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Antiquities|79|C||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Antiquities|79|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| Candelabra of Tawnos|Antiquities|8|R|{1}|Artifact|||{X}, {tap}: Untap X target lands.| -Urza's Tower|Antiquities|83|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Antiquities|83|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Antiquities|83|C||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Antiquities|83|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| +Urza's Tower|Antiquities|83|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Antiquities|83|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Antiquities|83|C||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Antiquities|83|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| Artifact Blast|Antiquities|87|C|{R}|Instant|||Counter target artifact spell.| Atog|Antiquities|88|C|{1}{R}|Creature - Atog|1|2|Sacrifice an artifact: Atog gets +2/+2 until end of turn.| Detonate|Antiquities|89|U|{X}{R}|Sorcery|||Destroy target artifact with converted mana cost X. It can't be regenerated. Detonate deals X damage to that artifact's controller.| @@ -501,12 +501,12 @@ Dragon Arch|Apocalypse|135|U|{5}|Artifact|||{2}, {tap}: You may put a multicolor Emblazoned Golem|Apocalypse|136|U|{2}|Artifact Creature - Golem|1|2|Kicker {X} (You may pay an additional {X} as you cast this spell.)$Spend only colored mana on X. No more than one mana of each color may be spent this way.$If Emblazoned Golem was kicked, it enters the battlefield with X +1/+1 counters on it.| Legacy Weapon|Apocalypse|137|R|{7}|Legendary Artifact|||{W}{U}{B}{R}{G}: Exile target permanent.$If Legacy Weapon would be put into a graveyard from anywhere, reveal Legacy Weapon and shuffle it into its owner's library instead.| Mask of Intolerance|Apocalypse|138|R|{2}|Artifact|||At the beginning of each player's upkeep, if there are four or more basic land types among lands that player controls, Mask of Intolerance deals 3 damage to him or her.| -Battlefield Forge|Apocalypse|139|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| +Battlefield Forge|Apocalypse|139|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| Manacles of Decay|Apocalypse|14|C|{1}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack.${B}: Enchanted creature gets -1/-1 until end of turn.${R}: Enchanted creature can't block this turn.| -Caves of Koilos|Apocalypse|140|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| -Llanowar Wastes|Apocalypse|141|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| -Shivan Reef|Apocalypse|142|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| -Yavimaya Coast|Apocalypse|143|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| +Caves of Koilos|Apocalypse|140|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| +Llanowar Wastes|Apocalypse|141|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| +Shivan Reef|Apocalypse|142|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| +Yavimaya Coast|Apocalypse|143|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| Orim's Thunder|Apocalypse|15|C|{2}{W}|Instant|||Kicker {R} (You may pay an additional {R} as you cast this spell.)$Destroy target artifact or enchantment. If Orim's Thunder was kicked, it deals damage equal to that permanent's converted mana cost to target creature.| Shield of Duty and Reason|Apocalypse|16|C|{W}|Enchantment - Aura|||Enchant creature$Enchanted creature has protection from green and from blue.| Spectral Lynx|Apocalypse|17|R|{1}{W}|Creature - Cat Spirit|2|1|Protection from green${B}: Regenerate Spectral Lynx.| @@ -684,12 +684,12 @@ Ring of Ma'ruf|Arabian Nights|82|R|{5}|Artifact|||{5}, {tap}, Exile Ring of Ma'r Sandals of Abdallah|Arabian Nights|83|U|{4}|Artifact|||{2}, {tap}: Target creature gains islandwalk until end of turn. When that creature dies this turn, destroy Sandals of Abdallah.| Bazaar of Baghdad|Arabian Nights|84|U||Land|||{tap}: Draw two cards, then discard three cards.| City of Brass|Arabian Nights|85|U||Land|||Whenever City of Brass becomes tapped, it deals 1 damage to you.${tap}: Add one mana of any color to your mana pool.| -Desert|Arabian Nights|86|C||Land - Desert|||{tap}: Add {1} to your mana pool.${tap}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| +Desert|Arabian Nights|86|C||Land - Desert|||{tap}: Add {C} to your mana pool.${tap}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| Diamond Valley|Arabian Nights|87|U||Land|||{tap}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness.| -Elephant Graveyard|Arabian Nights|88|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Regenerate target Elephant.| +Elephant Graveyard|Arabian Nights|88|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Regenerate target Elephant.| Island of Wak-Wak|Arabian Nights|89|R||Land|||{tap}: The power of target creature with flying becomes 0 until end of turn.| Juzam Djinn|Arabian Nights|9|R|{2}{B}{B}|Creature - Djinn|5|5|At the beginning of your upkeep, Juzám Djinn deals 1 damage to you.| -Library of Alexandria|Arabian Nights|90|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| +Library of Alexandria|Arabian Nights|90|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| Mountain|Arabian Nights|91|L||Basic Land - Mountain|||R| Oasis|Arabian Nights|92|U||Land|||{tap}: Prevent the next 1 damage that would be dealt to target creature this turn.| Leonin Abunas|Archenemy|1|R|{3}{W}|Creature - Cat Cleric|2|5|Artifacts you control have hexproof. (They can't be the targets of spells or abilities your opponents control.)| @@ -700,9 +700,9 @@ Wane|Archenemy|101b|U|{W}|Instant|||$Destroy target enchantment.| AEther Spellbomb|Archenemy|102|C|{1}|Artifact|||{U}, Sacrifice Æther Spellbomb: Return target creature to its owner's hand.${1}, Sacrifice Æther Spellbomb: Draw a card.| Azorius Signet|Archenemy|103|C|{2}|Artifact|||{1}, {tap}: Add {W}{U} to your mana pool.| Dimir Signet|Archenemy|104|C|{2}|Artifact|||{1}, {tap}: Add {U}{B} to your mana pool.| -Dreamstone Hedron|Archenemy|105|U|{6}|Artifact|||{tap}: Add {3} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| +Dreamstone Hedron|Archenemy|105|U|{6}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| Duplicant|Archenemy|106|R|{6}|Artifact Creature - Shapeshifter|2|4|Imprint - When Duplicant enters the battlefield, you may exile target nontoken creature.$As long as the exiled card is a creature card, Duplicant has that card's power, toughness, and creature types. It's still a Shapeshifter.| -Everflowing Chalice|Archenemy|107|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {1} to your mana pool for each charge counter on Everflowing Chalice.| +Everflowing Chalice|Archenemy|107|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {C} to your mana pool for each charge counter on Everflowing Chalice.| Gruul Signet|Archenemy|108|C|{2}|Artifact|||{1}, {tap}: Add {R}{G} to your mana pool.| Juggernaut|Archenemy|109|U|{4}|Artifact Creature - Juggernaut|5|3|Juggernaut attacks each turn if able.$Juggernaut can't be blocked by Walls.| Bog Witch|Archenemy|11|C|{2}{B}|Creature - Human Spellshaper|1|1|{B}, {tap}, Discard a card: Add {B}{B}{B} to your mana pool.| @@ -718,23 +718,23 @@ Sundering Titan|Archenemy|118|R|{8}|Artifact Creature - Golem|7|10|When Sunderin Synod Centurion|Archenemy|119|U|{4}|Artifact Creature - Construct|4|4|When you control no other artifacts, sacrifice Synod Centurion.| Cemetery Reaper|Archenemy|12|R|{1}{B}{B}|Creature - Zombie|2|2|Other Zombie creatures you control get +1/+1.${2}{B}, {tap}: Exile target creature card from a graveyard. Put a 2/2 black Zombie creature token onto the battlefield.| Synod Sanctum|Archenemy|120|U|{1}|Artifact|||{2}, {tap}: Exile target permanent you control.${2}, Sacrifice Synod Sanctum: Return all cards exiled with Synod Sanctum to the battlefield under your control.| -Thran Dynamo|Archenemy|121|U|{4}|Artifact|||{tap}: Add {3} to your mana pool.| +Thran Dynamo|Archenemy|121|U|{4}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.| Thunderstaff|Archenemy|122|U|{3}|Artifact|||As long as Thunderstaff is untapped, if a creature would deal combat damage to you, prevent 1 of that damage.${2}, {tap}: Attacking creatures get +1/+0 until end of turn.| Artisan of Kozilek|Archenemy|123|U|{9}|Creature - Eldrazi|10|9|When you cast Artisan of Kozilek, you may return target creature card from your graveyard to the battlefield.$Annihilator 2 (Whenever this creature attacks, defending player sacrifices two permanents.)| Barren Moor|Archenemy|124|C||Land|||Barren Moor enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {B} ({B}, Discard this card: Draw a card.)| Graypelt Refuge|Archenemy|125|U||Land|||Graypelt Refuge enters the battlefield tapped.$When Graypelt Refuge enters the battlefield, you gain 1 life.${tap}: Add {G} or {W} to your mana pool.| Kazandu Refuge|Archenemy|126|U||Land|||Kazandu Refuge enters the battlefield tapped.$When Kazandu Refuge enters the battlefield, you gain 1 life.${tap}: Add {R} or {G} to your mana pool.| Khalni Garden|Archenemy|127|C||Land|||Khalni Garden enters the battlefield tapped.$When Khalni Garden enters the battlefield, put a 0/1 green Plant creature token onto the battlefield.${tap}: Add {G} to your mana pool.| -Krosan Verge|Archenemy|128|U||Land|||Krosan Verge enters the battlefield tapped.${tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.| +Krosan Verge|Archenemy|128|U||Land|||Krosan Verge enters the battlefield tapped.${tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.| Llanowar Reborn|Archenemy|129|U||Land|||Llanowar Reborn enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Graft 1 (This land enters the battlefield with a +1/+1 counter on it. Whenever a creature enters the battlefield, you may move a +1/+1 counter from this land onto it.)| Corpse Connoisseur|Archenemy|13|U|{4}{B}|Creature - Zombie Wizard|3|3|When Corpse Connoisseur enters the battlefield, you may search your library for a creature card and put that card into your graveyard. If you do, shuffle your library.$Unearth {3}{B} ({3}{B}: 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.)| Mosswort Bridge|Archenemy|130|R||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${tap}: Add {G} to your mana pool.${G}, {tap}: You may play the exiled card without paying its mana cost if creatures you control have total power 10 or greater.| -Nantuko Monastery|Archenemy|131|U||Land|||{tap}: Add {1} to your mana pool.$Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard.| +Nantuko Monastery|Archenemy|131|U||Land|||{tap}: Add {C} to your mana pool.$Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard.| Rakdos Carnarium|Archenemy|132|C||Land|||Rakdos Carnarium enters the battlefield tapped.$When Rakdos Carnarium enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{R} to your mana pool.| Secluded Steppe|Archenemy|133|C||Land|||Secluded Steppe enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {W} ({W}, Discard this card: Draw a card.)| Terramorphic Expanse|Archenemy|134|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Tranquil Thicket|Archenemy|135|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| -Vitu-Ghazi, the City-Tree|Archenemy|136|U||Land|||{tap}: Add {1} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| +Vitu-Ghazi, the City-Tree|Archenemy|136|U||Land|||{tap}: Add {C} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| Plains|Archenemy|137|L||Basic Land - Plains|||W| Plains|Archenemy|138|L||Basic Land - Plains|||W| Island|Archenemy|139|L||Basic Land - Island|||U| @@ -983,11 +983,11 @@ Scroll of Griselbrand|Avacyn Restored|221|C|{1}|Artifact|||{1}, Sacrifice Scroll Tormentor's Trident|Avacyn Restored|222|U|{2}|Artifact - Equipment|||Equipped creature gets +3/+0 and attacks each turn if able.$Equip {3}| Vanguard's Shield|Avacyn Restored|223|C|{2}|Artifact - Equipment|||Equipped creature gets +0/+3 and can block an additional creature.$Equip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)| Vessel of Endless Rest|Avacyn Restored|224|U|{3}|Artifact|||When Vessel of Endless Rest enters the battlefield, put target card from a graveyard on the bottom of its owner's library.${tap}: Add one mana of any color to your mana pool.| -Alchemist's Refuge|Avacyn Restored|225|R||Land|||{tap}: Add {1} to your mana pool.${G}{U}, {tap}: You may cast nonland cards this turn as though they had flash.| -Cavern of Souls|Avacyn Restored|226|R||Land|||As Cavern of Souls enters the battlefield, choose a creature type.${tap}: Add {1} to your mana pool.${tap}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell of the chosen type, and that spell can't be countered.| -Desolate Lighthouse|Avacyn Restored|227|R||Land|||{tap}: Add {1} to your mana pool.${1}{U}{R}, {tap}: Draw a card, then discard a card.| -Seraph Sanctuary|Avacyn Restored|228|C||Land|||When Seraph Sanctuary enters the battlefield, you gain 1 life.$Whenever an Angel enters the battlefield under your control, you gain 1 life.${tap}: Add {1} to your mana pool.| -Slayers' Stronghold|Avacyn Restored|229|R||Land|||{tap}: Add {1} to your mana pool.${R}{W}, {tap}: Target creature gets +2/+0 and gains vigilance and haste until end of turn.| +Alchemist's Refuge|Avacyn Restored|225|R||Land|||{tap}: Add {C} to your mana pool.${G}{U}, {tap}: You may cast nonland cards this turn as though they had flash.| +Cavern of Souls|Avacyn Restored|226|R||Land|||As Cavern of Souls enters the battlefield, choose a creature type.${tap}: Add {C} to your mana pool.${tap}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell of the chosen type, and that spell can't be countered.| +Desolate Lighthouse|Avacyn Restored|227|R||Land|||{tap}: Add {C} to your mana pool.${1}{U}{R}, {tap}: Draw a card, then discard a card.| +Seraph Sanctuary|Avacyn Restored|228|C||Land|||When Seraph Sanctuary enters the battlefield, you gain 1 life.$Whenever an Angel enters the battlefield under your control, you gain 1 life.${tap}: Add {C} to your mana pool.| +Slayers' Stronghold|Avacyn Restored|229|R||Land|||{tap}: Add {C} to your mana pool.${R}{W}, {tap}: Target creature gets +2/+0 and gains vigilance and haste until end of turn.| Goldnight Redeemer|Avacyn Restored|23|U|{4}{W}{W}|Creature - Angel|4|4|Flying$When Goldnight Redeemer enters the battlefield, you gain 2 life for each other creature you control.| Plains|Avacyn Restored|230|L||Basic Land - Plains|||W| Plains|Avacyn Restored|231|L||Basic Land - Plains|||W| @@ -1125,7 +1125,7 @@ Plains|Battle Royale Box Set|124|L||Basic Land - Plains|||W| Plains|Battle Royale Box Set|124|L||Basic Land - Plains|||W| Plains|Battle Royale Box Set|124|L||Basic Land - Plains|||W| Plains|Battle Royale Box Set|124|L||Basic Land - Plains|||W| -Cinder Marsh|Battle Royale Box Set|13|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step.| +Cinder Marsh|Battle Royale Box Set|13|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step.| Swamp|Battle Royale Box Set|133|L||Basic Land - Swamp|||B| Swamp|Battle Royale Box Set|133|L||Basic Land - Swamp|||B| Swamp|Battle Royale Box Set|133|L||Basic Land - Swamp|||B| @@ -1165,7 +1165,7 @@ Mana Leak|Battle Royale Box Set|41|C|{1}{U}|Instant|||Counter target spell unles Maniacal Rage|Battle Royale Box Set|42|C|{1}{R}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2 and can't block.| Manta Riders|Battle Royale Box Set|43|C|{U}|Creature - Merfolk|1|1|{U}: Manta Riders gains flying until end of turn.| Master Decoy|Battle Royale Box Set|44|C|{1}{W}|Creature - Human Soldier|1|2|{W}, {tap}: Tap target creature.| -Mogg Hollows|Battle Royale Box Set|45|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step.| +Mogg Hollows|Battle Royale Box Set|45|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step.| Nekrataal|Battle Royale Box Set|46|U|{2}{B}{B}|Creature - Human Assassin|2|1|First strike (This creature deals combat damage before creatures without first strike.)$When Nekrataal enters the battlefield, destroy target nonartifact, nonblack creature. That creature can't be regenerated.| Opportunity|Battle Royale Box Set|47|U|{4}{U}{U}|Instant|||Target player draws four cards.| Pacifism|Battle Royale Box Set|48|C|{1}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block.| @@ -1210,13 +1210,13 @@ Sun Clasp|Battle Royale Box Set|83|C|{1}{W}|Enchantment - Aura|||Enchant creatur Swords to Plowshares|Battle Royale Box Set|84|U|{W}|Instant|||Exile target creature. Its controller gains life equal to its power.| Syphon Soul|Battle Royale Box Set|86|C|{2}{B}|Sorcery|||Syphon Soul deals 2 damage to each other player. You gain life equal to the damage dealt this way.| Terror|Battle Royale Box Set|87|C|{1}{B}|Instant|||Destroy target nonartifact, nonblack creature. It can't be regenerated.| -Thalakos Lowlands|Battle Royale Box Set|88|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step.| +Thalakos Lowlands|Battle Royale Box Set|88|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step.| Tranquility|Battle Royale Box Set|89|C|{2}{G}|Sorcery|||Destroy all enchantments.| Blinking Spirit|Battle Royale Box Set|9|R|{3}{W}|Creature - Spirit|2|2|{0}: Return Blinking Spirit to its owner's hand.| Trumpeting Armodon|Battle Royale Box Set|90|U|{3}{G}|Creature - Elephant|3|3|{1}{G}: Target creature blocks Trumpeting Armodon this turn if able.| Unnerve|Battle Royale Box Set|91|C|{3}{B}|Sorcery|||Each opponent discards two cards.| Uthden Troll|Battle Royale Box Set|92|U|{2}{R}|Creature - Troll|2|2|{R}: Regenerate Uthden Troll.| -Vec Townships|Battle Royale Box Set|93|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step.| +Vec Townships|Battle Royale Box Set|93|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step.| Village Elder|Battle Royale Box Set|94|C|{G}|Creature - Human Druid|1|1|{G}, {tap}, Sacrifice a Forest: Regenerate target creature.| Wall of Heat|Battle Royale Box Set|95|C|{2}{R}|Creature - Wall|2|6|Defender (This creature can't attack.)| Weakness|Battle Royale Box Set|96|C|{B}|Enchantment - Aura|||Enchant creature$Enchanted creature gets -2/-1.| @@ -1385,8 +1385,8 @@ Shuriken|Betrayers of Kamigawa|160|U|{1}|Artifact - Equipment|||Equipped creatur Slumbering Tora|Betrayers of Kamigawa|161|R|{3}|Artifact|||{2}, Discard a Spirit or Arcane card: Slumbering Tora becomes an X/X Cat artifact creature until end of turn, where X is the discarded card's converted mana cost.| That Which Was Taken|Betrayers of Kamigawa|162|R|{5}|Legendary Artifact|||{4}, {tap}: Put a divinity counter on target permanent other than That Which Was Taken.$Each permanent with a divinity counter on it is indestructible.| Umezawa's Jitte|Betrayers of Kamigawa|163|R|{2}|Legendary Artifact - Equipment|||Whenever equipped creature deals combat damage, put two charge counters on Umezawa's Jitte.$Remove a charge counter from Umezawa's Jitte: Choose one - Equipped creature gets +2/+2 until end of turn; or target creature gets -1/-1 until end of turn; or you gain 2 life.$Equip {2}| -Gods' Eye, Gate to the Reikai|Betrayers of Kamigawa|164|U||Legendary Land|||{tap}: Add {1} to your mana pool.$When Gods' Eye, Gate to the Reikai is put into a graveyard from the battlefield, put a 1/1 colorless Spirit creature token onto the battlefield.| -Tendo Ice Bridge|Betrayers of Kamigawa|165|R||Land|||Tendo Ice Bridge enters the battlefield with a charge counter on it.${tap}: Add {1} to your mana pool.${tap}, Remove a charge counter from Tendo Ice Bridge: Add one mana of any color to your mana pool.| +Gods' Eye, Gate to the Reikai|Betrayers of Kamigawa|164|U||Legendary Land|||{tap}: Add {C} to your mana pool.$When Gods' Eye, Gate to the Reikai is put into a graveyard from the battlefield, put a 1/1 colorless Spirit creature token onto the battlefield.| +Tendo Ice Bridge|Betrayers of Kamigawa|165|R||Land|||Tendo Ice Bridge enters the battlefield with a charge counter on it.${tap}: Add {C} to your mana pool.${tap}, Remove a charge counter from Tendo Ice Bridge: Add one mana of any color to your mana pool.| Opal-Eye, Konda's Yojimbo|Betrayers of Kamigawa|17|R|{1}{W}{W}|Legendary Creature - Fox Samurai|1|4|Defender (This creature can't attack.)$Bushido 1 (When this blocks or becomes blocked, it gets +1/+1 until end of turn.)${tap}: The next time a source of your choice would deal damage this turn, that damage is dealt to Opal-Eye, Konda's Yojimbo instead.${1}{W}: Prevent the next 1 damage that would be dealt to Opal-Eye this turn.| Oyobi, Who Split the Heavens|Betrayers of Kamigawa|18|R|{6}{W}|Legendary Creature - Spirit|3|6|Flying$Whenever you cast a Spirit or Arcane spell, put a 3/3 white Spirit creature token with flying onto the battlefield.| Patron of the Kitsune|Betrayers of Kamigawa|19|R|{4}{W}{W}|Legendary Creature - Spirit|5|6|Fox offering (You may cast this card any time you could cast an instant by sacrificing a Fox and paying the difference in mana costs between this and the sacrificed Fox. Mana cost includes color.)$Whenever a creature attacks, you may gain 1 life.| @@ -1572,7 +1572,7 @@ Kiki-Jiki, Mirror Breaker|Champions of Kamigawa|175|R|{2}{R}{R}{R}|Legendary Cre Kumano, Master Yamabushi|Champions of Kamigawa|176|R|{3}{R}{R}|Legendary Creature - Human Shaman|4|4|{1}{R}: Kumano, Master Yamabushi deals 1 damage to target creature or player.$If a creature dealt damage by Kumano this turn would die, exile it instead.| Kumano's Pupils|Champions of Kamigawa|177|U|{4}{R}|Creature - Human Shaman|3|3|If a creature dealt damage by Kumano's Pupils this turn would die, exile it instead.| Lava Spike|Champions of Kamigawa|178|C|{R}|Sorcery - Arcane|||Lava Spike deals 3 damage to target player.| -Mana Seism|Champions of Kamigawa|179|U|{1}{R}|Sorcery|||Sacrifice any number of lands. Add {1} to your mana pool for each land sacrificed this way.| +Mana Seism|Champions of Kamigawa|179|U|{1}{R}|Sorcery|||Sacrifice any number of lands. Add {C} to your mana pool for each land sacrificed this way.| Innocence Kami|Champions of Kamigawa|18|U|{3}{W}{W}|Creature - Spirit|2|3|{W}, {tap}: Tap target creature.$Whenever you cast a Spirit or Arcane spell, untap Innocence Kami.| Mindblaze|Champions of Kamigawa|180|R|{5}{R}|Sorcery|||Name a nonland card and choose a number greater than 0. Target player reveals his or her library. If that library contains exactly the chosen number of the named card, Mindblaze deals 8 damage to that player. Then that player shuffles his or her library.| Myojin of Infinite Rage|Champions of Kamigawa|181|R|{7}{R}{R}{R}|Legendary Creature - Spirit|7|4|Myojin of Infinite Rage enters the battlefield with a divinity counter on it if you cast it from your hand.$Myojin of Infinite Rage is indestructible as long as it has a divinity counter on it.$Remove a divinity counter from Myojin of Infinite Rage: Destroy all lands.| @@ -1657,7 +1657,7 @@ Wear Away|Champions of Kamigawa|250|C|{G}{G}|Instant - Arcane|||Destroy target a General's Kabuto|Champions of Kamigawa|251|R|{4}|Artifact - Equipment|||Equipped creature has shroud. (It can't be the target of spells or abilities.)$Prevent all combat damage that would be dealt to equipped creature.$Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)| Hair-Strung Koto|Champions of Kamigawa|252|R|{6}|Artifact|||Tap an untapped creature you control: Target player puts the top card of his or her library into his or her graveyard.| Hankyu|Champions of Kamigawa|253|U|{1}|Artifact - Equipment|||Equipped creature has "{tap}: Put an aim counter on Hankyu" and "{tap}, Remove all aim counters from Hankyu: This creature deals damage to target creature or player equal to the number of aim counters removed this way."$Equip {4} ({4}: Attach to target creature you control. Equip only as a sorcery.)| -Honor-Worn Shaku|Champions of Kamigawa|254|U|{3}|Artifact|||{tap}: Add {1} to your mana pool.$Tap an untapped legendary permanent you control: Untap Honor-Worn Shaku.| +Honor-Worn Shaku|Champions of Kamigawa|254|U|{3}|Artifact|||{tap}: Add {C} to your mana pool.$Tap an untapped legendary permanent you control: Untap Honor-Worn Shaku.| Imi Statue|Champions of Kamigawa|255|R|{3}|Artifact|||Players can't untap more than one artifact during their untap steps.| Jade Idol|Champions of Kamigawa|256|U|{4}|Artifact|||Whenever you cast a Spirit or Arcane spell, Jade Idol becomes a 4/4 Spirit artifact creature until end of turn.| Journeyer's Kite|Champions of Kamigawa|257|R|{2}|Artifact|||{3}, {tap}: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.| @@ -1678,20 +1678,20 @@ Kitsune Healer|Champions of Kamigawa|27|C|{3}{W}|Creature - Fox Cleric|2|2|{tap} Tatsumasa, the Dragon's Fang|Champions of Kamigawa|270|R|{6}|Legendary Artifact - Equipment|||Equipped creature gets +5/+5.${6}, Exile Tatsumasa, the Dragon's Fang: Put a 5/5 blue Dragon Spirit creature token with flying onto the battlefield. Return Tatsumasa to the battlefield under its owner's control when that token dies.$Equip {3}| Tenza, Godo's Maul|Champions of Kamigawa|271|U|{3}|Legendary Artifact - Equipment|||Equipped creature gets +1/+1. As long as it's legendary, it gets an additional +2/+2. As long as it's red, it has trample.$Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.)| Uba Mask|Champions of Kamigawa|272|R|{4}|Artifact|||If a player would draw a card, that player exiles that card face up instead.$Each player may play cards he or she exiled with Uba Mask this turn.| -Boseiju, Who Shelters All|Champions of Kamigawa|273|R||Legendary Land|||Boseiju, Who Shelters All enters the battlefield tapped.${tap}, Pay 2 life: Add {1} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities.| -Cloudcrest Lake|Champions of Kamigawa|274|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Cloudcrest Lake doesn't untap during your next untap step.| +Boseiju, Who Shelters All|Champions of Kamigawa|273|R||Legendary Land|||Boseiju, Who Shelters All enters the battlefield tapped.${tap}, Pay 2 life: Add {C} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities.| +Cloudcrest Lake|Champions of Kamigawa|274|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Cloudcrest Lake doesn't untap during your next untap step.| Eiganjo Castle|Champions of Kamigawa|275|R||Legendary Land|||{tap}: Add {W} to your mana pool.${W}, {tap}: Prevent the next 2 damage that would be dealt to target legendary creature this turn.| Forbidden Orchard|Champions of Kamigawa|276|R||Land|||{tap}: Add one mana of any color to your mana pool.$Whenever you tap Forbidden Orchard for mana, put a 1/1 colorless Spirit creature token onto the battlefield under target opponent's control.| -Hall of the Bandit Lord|Champions of Kamigawa|277|R||Legendary Land|||Hall of the Bandit Lord enters the battlefield tapped.${tap}, Pay 3 life: Add {1} to your mana pool. If that mana is spent on a creature spell, it gains haste.| -Lantern-Lit Graveyard|Champions of Kamigawa|278|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Lantern-Lit Graveyard doesn't untap during your next untap step.| +Hall of the Bandit Lord|Champions of Kamigawa|277|R||Legendary Land|||Hall of the Bandit Lord enters the battlefield tapped.${tap}, Pay 3 life: Add {C} to your mana pool. If that mana is spent on a creature spell, it gains haste.| +Lantern-Lit Graveyard|Champions of Kamigawa|278|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Lantern-Lit Graveyard doesn't untap during your next untap step.| Minamo, School at Water's Edge|Champions of Kamigawa|279|R||Legendary Land|||{tap}: Add {U} to your mana pool.${U}, {tap}: Untap target legendary permanent.| Okina, Temple to the Grandfathers|Champions of Kamigawa|280|R||Legendary Land|||{tap}: Add {G} to your mana pool.${G}, {tap}: Target legendary creature gets +1/+1 until end of turn.| -Pinecrest Ridge|Champions of Kamigawa|281|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Pinecrest Ridge doesn't untap during your next untap step.| +Pinecrest Ridge|Champions of Kamigawa|281|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Pinecrest Ridge doesn't untap during your next untap step.| Shinka, the Bloodsoaked Keep|Champions of Kamigawa|282|R||Legendary Land|||{tap}: Add {R} to your mana pool.${R}, {tap}: Target legendary creature gains first strike until end of turn.| Shizo, Death's Storehouse|Champions of Kamigawa|283|R||Legendary Land|||{tap}: Add {B} to your mana pool.${B}, {tap}: Target legendary creature gains fear until end of turn. (It can't be blocked except by artifact creatures and/or black creatures.)| -Tranquil Garden|Champions of Kamigawa|284|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Tranquil Garden doesn't untap during your next untap step.| -Untaidake, the Cloud Keeper|Champions of Kamigawa|285|R||Legendary Land|||Untaidake, the Cloud Keeper enters the battlefield tapped.${tap}, Pay 2 life: Add {2} to your mana pool. Spend this mana only to cast legendary spells.| -Waterveil Cavern|Champions of Kamigawa|286|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Waterveil Cavern doesn't untap during your next untap step.| +Tranquil Garden|Champions of Kamigawa|284|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Tranquil Garden doesn't untap during your next untap step.| +Untaidake, the Cloud Keeper|Champions of Kamigawa|285|R||Legendary Land|||Untaidake, the Cloud Keeper enters the battlefield tapped.${tap}, Pay 2 life: Add {C}{C} to your mana pool. Spend this mana only to cast legendary spells.| +Waterveil Cavern|Champions of Kamigawa|286|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Waterveil Cavern doesn't untap during your next untap step.| Plains|Champions of Kamigawa|287|L||Basic Land - Plains|||W| Plains|Champions of Kamigawa|288|L||Basic Land - Plains|||W| Plains|Champions of Kamigawa|289|L||Basic Land - Plains|||W| @@ -1797,10 +1797,10 @@ Time Stop|Champions of Kamigawa|97|R|{4}{U}{U}|Instant|||End the turn. (Exile The Unspeakable|Champions of Kamigawa|98|R|{6}{U}{U}{U}|Legendary Creature - Spirit|6|7|Flying, trample$Whenever The Unspeakable deals combat damage to a player, you may return target Arcane card from your graveyard to your hand.| Uyo, Silent Prophet|Champions of Kamigawa|99|R|{4}{U}{U}|Legendary Creature - Moonfolk Wizard|4|4|Flying${2}, Return two lands you control to their owner's hand: Copy target instant or sorcery spell. You may choose new targets for the copy.| Banshee|Chronicles|1|U|{2}{B}{B}|Creature - Spirit|0|1|{X}, {tap}: Banshee deals half X damage, rounded down, to target creature or player, and half X damage, rounded up, to you.| -Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| +Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Chronicles|102|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| Arcades Sabboth|Chronicles|106|R|{2}{G}{G}{W}{W}{U}{U}|Legendary Creature - Elder Dragon|7|7|Flying$At the beginning of your upkeep, sacrifice Arcades Sabboth unless you pay {G}{W}{U}.$Each untapped creature you control gets +0/+2 as long as it's not attacking.${W}: Arcades Sabboth gets +0/+1 until end of turn.| Axelrod Gunnarson|Chronicles|107|R|{4}{B}{B}{R}{R}|Legendary Creature - Giant|5|5|Trample$Whenever a creature dealt damage by Axelrod Gunnarson this turn dies, you gain 1 life and Axelrod deals 1 damage to target player.| Ayesha Tanaka|Chronicles|108|R|{W}{W}{U}{U}|Legendary Creature - Human Artificer|2|2|Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)${tap}: Counter target activated ability from an artifact source unless that ability's controller pays {W}. (Mana abilities can't be targeted.)| @@ -1889,7 +1889,7 @@ War Elephant|Chronicles|69|C|{3}{W}|Creature - Elephant|2|2|Trample; banding Hell's Caretaker|Chronicles|7|R|{3}{B}|Creature - Horror|1|1|{tap}, Sacrifice a creature: Return target creature card from your graveyard to the battlefield. Activate this ability only during your upkeep.| Witch Hunter|Chronicles|70|U|{2}{W}{W}|Creature - Human Cleric|1|1|{tap}: Witch Hunter deals 1 damage to target player.${1}{W}{W}, {tap}: Return target creature an opponent controls to its owner's hand.| Arena of the Ancients|Chronicles|71|R|{3}|Artifact|||Legendary creatures don't untap during their controllers' untap steps.$When Arena of the Ancients enters the battlefield, tap all legendary creatures.| -Ashnod's Altar|Chronicles|72|C|{3}|Artifact|||Sacrifice a creature: Add {2} to your mana pool.| +Ashnod's Altar|Chronicles|72|C|{3}|Artifact|||Sacrifice a creature: Add {C}{C} to your mana pool.| Ashnod's Transmogrant|Chronicles|73|C|{1}|Artifact|||{tap}, Sacrifice Ashnod's Transmogrant: Put a +1/+1 counter on target nonartifact creature. That creature becomes an artifact in addition to its other types.| Barl's Cage|Chronicles|74|R|{4}|Artifact|||{3}: Target creature doesn't untap during its controller's next untap step.| Book of Rass|Chronicles|75|R|{6}|Artifact|||{2}, Pay 2 life: Draw a card.| @@ -1913,14 +1913,14 @@ Triassic Egg|Chronicles|90|R|{4}|Artifact|||{3}, {tap}: Put a hatchling counter Voodoo Doll|Chronicles|91|R|{6}|Artifact|||At the beginning of your upkeep, put a pin counter on Voodoo Doll.$At the beginning of your end step, if Voodoo Doll is untapped, destroy Voodoo Doll and it deals damage to you equal to the number of pin counters on it.${X}{X}, {tap}: Voodoo Doll deals damage equal to the number of pin counters on it to target creature or player. X is the number of pin counters on Voodoo Doll.| City of Brass|Chronicles|92|R||Land|||Whenever City of Brass becomes tapped, it deals 1 damage to you.${tap}: Add one mana of any color to your mana pool.| Safe Haven|Chronicles|93|R||Land|||{2}, {tap}: Exile target creature you control.$At the beginning of your upkeep, you may sacrifice Safe Haven. If you do, return each card exiled with Safe Haven to the battlefield under its owner's control.| -Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| +Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Chronicles|94|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Chronicles|98|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| Animate Wall|Classic Sixth Edition|1|R|{W}|Enchantment - Aura|||Enchant Wall$Enchanted Wall can attack as though it didn't have defender.| Circle of Protection: Green|Classic Sixth Edition|10|C|{1}{W}|Enchantment|||{1}: The next time a green source of your choice would deal damage to you this turn, prevent that damage.| Spell Blast|Classic Sixth Edition|100|C|{X}{U}|Instant|||Counter target spell with converted mana cost X.| @@ -2115,7 +2115,7 @@ Wyluli Wolf|Classic Sixth Edition|270|R|{1}{G}|Creature - Wolf|1|1|{tap}: Target Aladdin's Ring|Classic Sixth Edition|271|R|{8}|Artifact|||{8}, {tap}: Aladdin's Ring deals 4 damage to target creature or player.| Amber Prison|Classic Sixth Edition|272|R|{4}|Artifact|||You may choose not to untap Amber Prison during your untap step.${4}, {tap}: Tap target artifact, creature, or land. That permanent doesn't untap during its controller's untap step for as long as Amber Prison remains tapped.| Ankh of Mishra|Classic Sixth Edition|273|R|{2}|Artifact|||Whenever a land enters the battlefield, Ankh of Mishra deals 2 damage to that land's controller.| -Ashnod's Altar|Classic Sixth Edition|274|U|{3}|Artifact|||Sacrifice a creature: Add {2} to your mana pool.| +Ashnod's Altar|Classic Sixth Edition|274|U|{3}|Artifact|||Sacrifice a creature: Add {C}{C} to your mana pool.| Bottle of Suleiman|Classic Sixth Edition|275|R|{4}|Artifact|||{1}, Sacrifice Bottle of Suleiman: Flip a coin. If you lose the flip, Bottle of Suleiman deals 5 damage to you. If you win the flip, put a 5/5 colorless Djinn artifact creature token with flying onto the battlefield.| Charcoal Diamond|Classic Sixth Edition|276|U|{2}|Artifact|||Charcoal Diamond enters the battlefield tapped.${tap}: Add {B} to your mana pool.| Crystal Rod|Classic Sixth Edition|277|U|{1}|Artifact|||Whenever a player casts a blue spell, you may pay {1}. If you do, you gain 1 life.| @@ -2139,7 +2139,7 @@ Jade Monolith|Classic Sixth Edition|293|R|{4}|Artifact|||{1}: The next time a so Jalum Tome|Classic Sixth Edition|294|R|{3}|Artifact|||{2}, {tap}: Draw a card, then discard a card.| Jayemdae Tome|Classic Sixth Edition|295|R|{4}|Artifact|||{4}, {tap}: Draw a card.| Lead Golem|Classic Sixth Edition|296|U|{5}|Artifact Creature - Golem|3|5|Whenever Lead Golem attacks, it doesn't untap during its controller's next untap step.| -Mana Prism|Classic Sixth Edition|297|U|{3}|Artifact|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add one mana of any color to your mana pool.| +Mana Prism|Classic Sixth Edition|297|U|{3}|Artifact|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add one mana of any color to your mana pool.| Marble Diamond|Classic Sixth Edition|298|U|{2}|Artifact|||Marble Diamond enters the battlefield tapped.${tap}: Add {W} to your mana pool.| Meekstone|Classic Sixth Edition|299|R|{1}|Artifact|||Creatures with power 3 or greater don't untap during their controllers' untap steps.| Millstone|Classic Sixth Edition|300|R|{2}|Artifact|||{2}, {tap}: Target player puts the top two cards of his or her library into his or her graveyard.| @@ -2165,20 +2165,20 @@ The Hive|Classic Sixth Edition|289|R|{5}|Artifact|||{5}, {tap}: Put a 1/1 colorl Throne of Bone|Classic Sixth Edition|316|U|{1}|Artifact|||Whenever a player casts a black spell, you may pay {1}. If you do, you gain 1 life.| Wand of Denial|Classic Sixth Edition|317|R|{2}|Artifact|||{tap}: Look at the top card of target player's library. If it's a nonland card, you may pay 2 life. If you do, put it into that player's graveyard.| Wooden Sphere|Classic Sixth Edition|318|U|{1}|Artifact|||Whenever a player casts a green spell, you may pay {1}. If you do, you gain 1 life.| -Adarkar Wastes|Classic Sixth Edition|319|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| +Adarkar Wastes|Classic Sixth Edition|319|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| Order of the Sacred Torch|Classic Sixth Edition|32|R|{1}{W}{W}|Creature - Human Knight|2|2|{tap}, Pay 1 life: Counter target black spell.| -Brushland|Classic Sixth Edition|320|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| +Brushland|Classic Sixth Edition|320|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| City of Brass|Classic Sixth Edition|321|R||Land|||Whenever City of Brass becomes tapped, it deals 1 damage to you.${tap}: Add one mana of any color to your mana pool.| -Crystal Vein|Classic Sixth Edition|322|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Crystal Vein: Add {2} to your mana pool.| +Crystal Vein|Classic Sixth Edition|322|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Crystal Vein: Add {C}{C} to your mana pool.| Dwarven Ruins|Classic Sixth Edition|323|U||Land|||Dwarven Ruins enters the battlefield tapped.${tap}: Add {R} to your mana pool.${tap}, Sacrifice Dwarven Ruins: Add {R}{R} to your mana pool.| Ebon Stronghold|Classic Sixth Edition|324|U||Land|||Ebon Stronghold enters the battlefield tapped.${tap}: Add {B} to your mana pool.${tap}, Sacrifice Ebon Stronghold: Add {B}{B} to your mana pool.| Havenwood Battleground|Classic Sixth Edition|325|U||Land|||Havenwood Battleground enters the battlefield tapped.${tap}: Add {G} to your mana pool.${tap}, Sacrifice Havenwood Battleground: Add {G}{G} to your mana pool.| -Karplusan Forest|Classic Sixth Edition|326|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| +Karplusan Forest|Classic Sixth Edition|326|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| Ruins of Trokair|Classic Sixth Edition|327|U||Land|||Ruins of Trokair enters the battlefield tapped.${tap}: Add {W} to your mana pool.${tap}, Sacrifice Ruins of Trokair: Add {W}{W} to your mana pool.| -Sulfurous Springs|Classic Sixth Edition|328|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| +Sulfurous Springs|Classic Sixth Edition|328|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| Svyelunite Temple|Classic Sixth Edition|329|U||Land|||Svyelunite Temple enters the battlefield tapped.${tap}: Add {U} to your mana pool.${tap}, Sacrifice Svyelunite Temple: Add {U}{U} to your mana pool.| Pacifism|Classic Sixth Edition|33|C|{1}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block.| -Underground River|Classic Sixth Edition|330|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| +Underground River|Classic Sixth Edition|330|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| Plains|Classic Sixth Edition|331|L||Basic Land - Plains|||W| Plains|Classic Sixth Edition|332|L||Basic Land - Plains|||W| Plains|Classic Sixth Edition|333|L||Basic Land - Plains|||W| @@ -2278,7 +2278,7 @@ Allosaurus Rider|Coldsnap|101|R|{5}{G}{G}|Creature - Elf Warrior|1+*|1+*|You may Arctic Nishoba|Coldsnap|102|U|{5}{G}|Creature - Cat Warrior|6|6|Trample$Cumulative upkeep {G} or {W} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)$When Arctic Nishoba dies, you gain 2 life for each age counter on it.| Aurochs Herd|Coldsnap|103|C|{5}{G}|Creature - Aurochs|4|4|Trample$When Aurochs Herd enters the battlefield, you may search your library for an Aurochs card, reveal it, and put it into your hand. If you do, shuffle your library.$Whenever Aurochs Herd attacks, it gets +1/+0 until end of turn for each other attacking Aurochs.| Boreal Centaur|Coldsnap|104|C|{1}{G}|Snow Creature - Centaur Warrior|2|2|{snow}: Boreal Centaur gets +1/+1 until end of turn. Activate this ability only once each turn. ({snow} can be paid with one mana from a snow permanent.)| -Boreal Druid|Coldsnap|105|C|{G}|Snow Creature - Elf Druid|1|1|{tap}: Add {1} to your mana pool.| +Boreal Druid|Coldsnap|105|C|{G}|Snow Creature - Elf Druid|1|1|{tap}: Add {C} to your mana pool.| Brooding Saurian|Coldsnap|106|R|{2}{G}{G}|Creature - Lizard|4|4|At the beginning of each end step, each player gains control of all nontoken permanents he or she owns.| Bull Aurochs|Coldsnap|107|C|{1}{G}|Creature - Aurochs|2|1|Trample$Whenever Bull Aurochs attacks, it gets +1/+0 until end of turn for each other attacking Aurochs.| Freyalise's Radiance|Coldsnap|108|U|{1}{G}|Enchantment|||Cumulative upkeep {2} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)$Snow permanents don't untap during their controllers' untap steps.| @@ -2325,8 +2325,8 @@ Boreal Shelf|Coldsnap|144|U||Snow Land|||Boreal Shelf enters the battlefield tap Dark Depths|Coldsnap|145|R||Legendary Snow Land|||Dark Depths enters the battlefield with ten ice counters on it.${3}: Remove an ice counter from Dark Depths.$When Dark Depths has no ice counters on it, sacrifice it. If you do, put a legendary 20/20 black Avatar creature token with flying and "This creature is indestructible" named Marit Lage onto the battlefield.| Frost Marsh|Coldsnap|146|U||Snow Land|||Frost Marsh enters the battlefield tapped.${tap}: Add {U} or {B} to your mana pool.| Highland Weald|Coldsnap|147|U||Snow Land|||Highland Weald enters the battlefield tapped.${tap}: Add {R} or {G} to your mana pool.| -Mouth of Ronom|Coldsnap|148|U||Snow Land|||{tap}: Add {1} to your mana pool.${4}{snow}, {tap}, Sacrifice Mouth of Ronom: Mouth of Ronom deals 4 damage to target creature. ({snow} can be paid with one mana from a snow permanent.)| -Scrying Sheets|Coldsnap|149|R||Snow Land|||{tap}: Add {1} to your mana pool.${1}{snow}, {tap}: Look at the top card of your library. If that card is snow, you may reveal it and put it into your hand. ({snow} can be paid with one mana from a snow permanent.)| +Mouth of Ronom|Coldsnap|148|U||Snow Land|||{tap}: Add {C} to your mana pool.${4}{snow}, {tap}, Sacrifice Mouth of Ronom: Mouth of Ronom deals 4 damage to target creature. ({snow} can be paid with one mana from a snow permanent.)| +Scrying Sheets|Coldsnap|149|R||Snow Land|||{tap}: Add {C} to your mana pool.${1}{snow}, {tap}: Look at the top card of your library. If that card is snow, you may reveal it and put it into your hand. ({snow} can be paid with one mana from a snow permanent.)| Martyr of Sands|Coldsnap|15|C|{W}|Creature - Human Cleric|1|1|{1}, Reveal X white cards from your hand, Sacrifice Martyr of Sands: You gain three times X life.| Tresserhorn Sinks|Coldsnap|150|U||Snow Land|||Tresserhorn Sinks enters the battlefield tapped.${tap}: Add {B} or {R} to your mana pool.| Snow-Covered Plains|Coldsnap|151|C||Basic Snow Land - Plains|||W| @@ -2493,9 +2493,9 @@ Paragon of the Amesha|Conflux|14|U|{2}{W}|Creature - Human Knight|2|2|First stri Obelisk of Alara|Conflux|140|R|{6}|Artifact|||{1}{W}, {tap}: You gain 5 life.${1}{U}, {tap}: Draw a card, then discard a card.${1}{B}, {tap}: Target creature gets -2/-2 until end of turn.${1}{R}, {tap}: Obelisk of Alara deals 3 damage to target player.${1}{G}, {tap}: Target creature gets +4/+4 until end of turn.| Ancient Ziggurat|Conflux|141|U||Land|||{tap}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell.| Exotic Orchard|Conflux|142|R||Land|||{tap}: Add to your mana pool one mana of any color that a land an opponent controls could produce.| -Reliquary Tower|Conflux|143|U||Land|||You have no maximum hand size.${tap}: Add {1} to your mana pool.| +Reliquary Tower|Conflux|143|U||Land|||You have no maximum hand size.${tap}: Add {C} to your mana pool.| Rupture Spire|Conflux|144|C||Land|||Rupture Spire enters the battlefield tapped.$When Rupture Spire enters the battlefield, sacrifice it unless you pay {1}.${tap}: Add one mana of any color to your mana pool.| -Unstable Frontier|Conflux|145|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Target land you control becomes the basic land type of your choice until end of turn.| +Unstable Frontier|Conflux|145|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Target land you control becomes the basic land type of your choice until end of turn.| Path to Exile|Conflux|15|U|{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.| Rhox Meditant|Conflux|16|C|{3}{W}|Creature - Rhino Monk|2|4|When Rhox Meditant enters the battlefield, if you control a green permanent, draw a card.| Scepter of Dominance|Conflux|17|R|{1}{W}{W}|Artifact|||{W}, {tap}: Tap target permanent.| @@ -2656,12 +2656,12 @@ Niblis of the Mist|Dark Ascension|15|C|{2}{W}|Creature - Spirit|2|1|Flying$When Heavy Mattock|Dark Ascension|150|C|{3}|Artifact - Equipment|||Equipped creature gets +1/+1.$As long as equipped creature is a Human, it gets an additional +1/+1.$Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)| Helvault|Dark Ascension|151|M|{3}|Legendary Artifact|||{1}, {tap}: Exile target creature you control.${7}, {tap}: Exile target creature you don't control.$When Helvault is put into a graveyard from the battlefield, return all cards exiled with it to the battlefield under their owners' control.| Jar of Eyeballs|Dark Ascension|152|R|{3}|Artifact|||Whenever a creature you control dies, put two eyeball counters on Jar of Eyeballs.${3}, {tap}, Remove all eyeball counters from Jar of Eyeballs: Look at the top X cards of your library, where X is the number of eyeball counters removed this way. Put one of them into your hand and the rest on the bottom of your library in any order.| -Warden of the Wall|Dark Ascension|153|U|{3}|Artifact|||Warden of the Wall enters the battlefield tapped.${tap}: Add {1} to your mana pool.$As long as it's not your turn, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying.| +Warden of the Wall|Dark Ascension|153|U|{3}|Artifact|||Warden of the Wall enters the battlefield tapped.${tap}: Add {C} to your mana pool.$As long as it's not your turn, Warden of the Wall is a 2/3 Gargoyle artifact creature with flying.| Wolfhunter's Quiver|Dark Ascension|154|U|{1}|Artifact - Equipment|||Equipped creature has "{tap}: This creature deals 1 damage to target creature or player" and "{tap}: This creature deals 3 damage to target Werewolf creature."$Equip {5}| Evolving Wilds|Dark Ascension|155|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| -Grim Backwoods|Dark Ascension|156|R||Land|||{tap}: Add {1} to your mana pool.${2}{B}{G}, {tap}, Sacrifice a creature: Draw a card.| -Haunted Fengraf|Dark Ascension|157|C||Land|||{tap}: Add {1} to your mana pool.${3}, {tap}, Sacrifice Haunted Fengraf: Return a creature card at random from your graveyard to your hand.| -Vault of the Archangel|Dark Ascension|158|R||Land|||{tap}: Add {1} to your mana pool.${2}{W}{B}, {tap}: Creatures you control gain deathtouch and lifelink until end of turn.| +Grim Backwoods|Dark Ascension|156|R||Land|||{tap}: Add {C} to your mana pool.${2}{B}{G}, {tap}, Sacrifice a creature: Draw a card.| +Haunted Fengraf|Dark Ascension|157|C||Land|||{tap}: Add {C} to your mana pool.${3}, {tap}, Sacrifice Haunted Fengraf: Return a creature card at random from your graveyard to your hand.| +Vault of the Archangel|Dark Ascension|158|R||Land|||{tap}: Add {C} to your mana pool.${2}{W}{B}, {tap}: Creatures you control gain deathtouch and lifelink until end of turn.| Niblis of the Urn|Dark Ascension|16|U|{1}{W}|Creature - Spirit|1|1|Flying$Whenever Niblis of the Urn attacks, you may tap target creature.| Ray of Revelation|Dark Ascension|17|C|{1}{W}|Instant|||Destroy target enchantment.$Flashback {G} (You may cast this card from your graveyard for its flashback cost. Then exile it.)| Requiem Angel|Dark Ascension|18|R|{5}{W}|Creature - Angel|5|5|Flying$Whenever another non-Spirit creature you control dies, put a 1/1 white Spirit creature token with flying onto the battlefield.| @@ -2798,12 +2798,12 @@ Ritual of Restoration|Darksteel|13|C|{W}|Sorcery|||Return target artifact card f Mycosynth Lattice|Darksteel|130|R|{6}|Artifact|||All permanents are artifacts in addition to their other types.$All cards that aren't on the battlefield, spells, and permanents are colorless.$Players may spend mana as though it were mana of any color.| Myr Landshaper|Darksteel|131|C|{3}|Artifact Creature - Myr|1|1|{tap}: Target land becomes an artifact in addition to its other types until end of turn.| Myr Matrix|Darksteel|132|R|{5}|Artifact|||Myr Matrix is indestructible. ("Destroy" effects and lethal damage don't destroy it.)$Myr creatures get +1/+1.${5}: Put a 1/1 colorless Myr artifact creature token onto the battlefield.| -Myr Moonvessel|Darksteel|133|C|{1}|Artifact Creature - Myr|1|1|When Myr Moonvessel dies, add {1} to your mana pool.| +Myr Moonvessel|Darksteel|133|C|{1}|Artifact Creature - Myr|1|1|When Myr Moonvessel dies, add {C} to your mana pool.| Nemesis Mask|Darksteel|134|U|{3}|Artifact - Equipment|||All creatures able to block equipped creature do so.$Equip {3} ({3}: Attach to target creature you control. Equip only as a sorcery. This card enters the battlefield unattached and stays on the battlefield if the creature leaves.)| Oxidda Golem|Darksteel|135|C|{6}|Artifact Creature - Golem|3|2|Affinity for Mountains (This spell costs {1} less to cast for each Mountain you control.)$Haste| Panoptic Mirror|Darksteel|136|R|{5}|Artifact|||Imprint - {X}, {tap}: You may exile an instant or sorcery card with converted mana cost X from your hand.$At the beginning of your upkeep, you may copy a card exiled with Panoptic Mirror. If you do, you may cast the copy without paying its mana cost.| Razor Golem|Darksteel|137|C|{6}|Artifact Creature - Golem|3|4|Affinity for Plains (This spell costs {1} less to cast for each Plains you control.)$Vigilance| -Serum Powder|Darksteel|138|R|{3}|Artifact|||{tap}: Add {1} to your mana pool.$Any time you could mulligan and Serum Powder is in your hand, you may exile all the cards from your hand, then draw that many cards. (You can do this in addition to taking mulligans.)| +Serum Powder|Darksteel|138|R|{3}|Artifact|||{tap}: Add {C} to your mana pool.$Any time you could mulligan and Serum Powder is in your hand, you may exile all the cards from your hand, then draw that many cards. (You can do this in addition to taking mulligans.)| Shield of Kaldra|Darksteel|139|R|{4}|Legendary Artifact - Equipment|||Equipment named Sword of Kaldra, Shield of Kaldra, and Helm of Kaldra are indestructible.$Equipped creature is indestructible. ("Destroy" effects and lethal damage don't destroy it.)$Equip {4}| Soulscour|Darksteel|14|R|{7}{W}{W}{W}|Sorcery|||Destroy all nonartifact permanents.| Skullclamp|Darksteel|140|U|{1}|Artifact - Equipment|||Equipped creature gets +1/-1.$Whenever equipped creature dies, draw two cards.$Equip {1}| @@ -2822,7 +2822,7 @@ Tangle Golem|Darksteel|151|C|{7}|Artifact Creature - Golem|5|4|Affinity for Fore Thought Dissector|Darksteel|152|R|{4}|Artifact|||{X}, {tap}: Target opponent reveals cards from the top of his or her library until an artifact card or X cards are revealed, whichever comes first. If an artifact card is revealed this way, put it onto the battlefield under your control and sacrifice Thought Dissector. Put the rest of the revealed cards into that player's graveyard.| Thunderstaff|Darksteel|153|U|{3}|Artifact|||As long as Thunderstaff is untapped, if a creature would deal combat damage to you, prevent 1 of that damage.${2}, {tap}: Attacking creatures get +1/+0 until end of turn.| Trinisphere|Darksteel|154|R|{3}|Artifact|||As long as Trinisphere is untapped, each spell that would cost less than three mana to cast costs three mana to cast. (Additional mana in the cost may be paid with any color of mana or colorless mana. For example, a spell that would cost {1}{B} to cast costs {2}{B} to cast instead.)| -Ur-Golem's Eye|Darksteel|155|C|{4}|Artifact|||{tap}: Add {2} to your mana pool.| +Ur-Golem's Eye|Darksteel|155|C|{4}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Voltaic Construct|Darksteel|156|U|{4}|Artifact Creature - Golem Construct|2|2|{2}: Untap target artifact creature.| Vulshok Morningstar|Darksteel|157|C|{2}|Artifact - Equipment|||Equipped creature gets +2/+2.$Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)| Wand of the Elements|Darksteel|158|R|{4}|Artifact|||{tap}, Sacrifice an Island: Put a 2/2 blue Elemental creature token with flying onto the battlefield.${tap}, Sacrifice a Mountain: Put a 3/3 red Elemental creature token onto the battlefield.| @@ -2831,9 +2831,9 @@ Stir the Pride|Darksteel|16|U|{4}{W}|Instant|||Choose one - Creatures you contro Whispersilk Cloak|Darksteel|160|C|{3}|Artifact - Equipment|||Equipped creature is unblockable and has shroud.$Equip {2}| Wirefly Hive|Darksteel|161|U|{3}|Artifact|||{3}, {tap}: Flip a coin. If you win the flip, put a 2/2 colorless Insect artifact creature token with flying named Wirefly onto the battlefield. If you lose the flip, destroy all permanents named Wirefly.| Wurm's Tooth|Darksteel|162|U|{2}|Artifact|||Whenever a player casts a green spell, you may gain 1 life.| -Blinkmoth Nexus|Darksteel|163|R||Land|||{tap}: Add {1} to your mana pool.${1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land.${1}, {tap}: Target Blinkmoth creature gets +1/+1 until end of turn.| -Darksteel Citadel|Darksteel|164|C||Artifact Land|||Darksteel Citadel is indestructible. ("Destroy" effects and lethal damage don't destroy it.)${tap}: Add {1} to your mana pool.| -Mirrodin's Core|Darksteel|165|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Put a charge counter on Mirrodin's Core.${tap}, Remove a charge counter from Mirrodin's Core: Add one mana of any color to your mana pool.| +Blinkmoth Nexus|Darksteel|163|R||Land|||{tap}: Add {C} to your mana pool.${1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land.${1}, {tap}: Target Blinkmoth creature gets +1/+1 until end of turn.| +Darksteel Citadel|Darksteel|164|C||Artifact Land|||Darksteel Citadel is indestructible. ("Destroy" effects and lethal damage don't destroy it.)${tap}: Add {C} to your mana pool.| +Mirrodin's Core|Darksteel|165|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Put a charge counter on Mirrodin's Core.${tap}, Remove a charge counter from Mirrodin's Core: Add one mana of any color to your mana pool.| Test of Faith|Darksteel|17|U|{1}{W}|Instant|||Prevent the next 3 damage that would be dealt to target creature this turn, and put a +1/+1 counter on that creature for each 1 damage prevented this way.| Turn the Tables|Darksteel|18|R|{3}{W}{W}|Instant|||All combat damage that would be dealt to you this turn is dealt to target attacking creature instead.| Carry Away|Darksteel|19|U|{U}{U}|Enchantment - Aura|||Enchant Equipment$When Carry Away enters the battlefield, unattach enchanted Equipment.$You control enchanted Equipment.| @@ -3017,13 +3017,13 @@ Soulsworn Jury|Dissension|17|C|{2}{W}|Creature - Spirit|1|4|Defender (This cr Azorius Chancery|Dissension|170|C||Land|||Azorius Chancery enters the battlefield tapped.$When Azorius Chancery enters the battlefield, return a land you control to its owner's hand.${tap}: Add {W}{U} to your mana pool.| Blood Crypt|Dissension|171|R||Land - Swamp Mountain|||({tap}: Add {B} or {R} to your mana pool.)$As Blood Crypt enters the battlefield, you may pay 2 life. If you don't, Blood Crypt enters the battlefield tapped.| Breeding Pool|Dissension|172|R||Land - Forest Island|||({tap}: Add {G} or {U} to your mana pool.)$As Breeding Pool enters the battlefield, you may pay 2 life. If you don't, Breeding Pool enters the battlefield tapped.| -Ghost Quarter|Dissension|173|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| +Ghost Quarter|Dissension|173|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| Hallowed Fountain|Dissension|174|R||Land - Plains Island|||({tap}: Add {W} or {U} to your mana pool.)$As Hallowed Fountain enters the battlefield, you may pay 2 life. If you don't, Hallowed Fountain enters the battlefield tapped.| -Novijen, Heart of Progress|Dissension|175|U||Land|||{tap}: Add {1} to your mana pool.${G}{U}, {tap}: Put a +1/+1 counter on each creature that entered the battlefield this turn.| +Novijen, Heart of Progress|Dissension|175|U||Land|||{tap}: Add {C} to your mana pool.${G}{U}, {tap}: Put a +1/+1 counter on each creature that entered the battlefield this turn.| Pillar of the Paruns|Dissension|176|R||Land|||{tap}: Add one mana of any color to your mana pool. Spend this mana only to cast a multicolored spell.| -Prahv, Spires of Order|Dissension|177|U||Land|||{tap}: Add {1} to your mana pool.${4}{W}{U}, {tap}: Prevent all damage a source of your choice would deal this turn.| +Prahv, Spires of Order|Dissension|177|U||Land|||{tap}: Add {C} to your mana pool.${4}{W}{U}, {tap}: Prevent all damage a source of your choice would deal this turn.| Rakdos Carnarium|Dissension|178|C||Land|||Rakdos Carnarium enters the battlefield tapped.$When Rakdos Carnarium enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{R} to your mana pool.| -Rix Maadi, Dungeon Palace|Dissension|179|U||Land|||{tap}: Add {1} to your mana pool.${1}{B}{R}, {tap}: Each player discards a card. Activate this ability only any time you could cast a sorcery.| +Rix Maadi, Dungeon Palace|Dissension|179|U||Land|||{tap}: Add {C} to your mana pool.${1}{B}{R}, {tap}: Each player discards a card. Activate this ability only any time you could cast a sorcery.| Steeling Stance|Dissension|18|C|{1}{W}{W}|Instant|||Creatures you control get +1/+1 until end of turn.$Forecast - {W}, Reveal Steeling Stance from your hand: Target creature gets +1/+1 until end of turn. (Activate this ability only during your upkeep and only once each turn.)| Simic Growth Chamber|Dissension|180|C||Land|||Simic Growth Chamber enters the battlefield tapped.$When Simic Growth Chamber enters the battlefield, return a land you control to its owner's hand.${tap}: Add {G}{U} to your mana pool.| Stoic Ephemera|Dissension|19|U|{2}{W}|Creature - Spirit|5|5|Defender (This creature can't attack.)$Flying$When Stoic Ephemera blocks, sacrifice it at end of combat.| @@ -3145,7 +3145,7 @@ Graypelt Refuge|Duel Decks: Ajani vs. Nicol Bolas|33|U||Land|||Graypelt Refuge e Jungle Shrine|Duel Decks: Ajani vs. Nicol Bolas|34|U||Land|||Jungle Shrine enters the battlefield tapped.${tap}: Add {R}, {G}, or {W} to your mana pool.| Kazandu Refuge|Duel Decks: Ajani vs. Nicol Bolas|35|U||Land|||Kazandu Refuge enters the battlefield tapped.$When Kazandu Refuge enters the battlefield, you gain 1 life.${tap}: Add {R} or {G} to your mana pool.| Sapseep Forest|Duel Decks: Ajani vs. Nicol Bolas|36|U||Land - Forest|||({tap}: Add {G} to your mana pool.)$Sapseep Forest enters the battlefield tapped.${G}, {tap}: You gain 1 life. Activate this ability only if you control two or more green permanents.| -Vitu-Ghazi, the City-Tree|Duel Decks: Ajani vs. Nicol Bolas|37|U||Land|||{tap}: Add {1} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| +Vitu-Ghazi, the City-Tree|Duel Decks: Ajani vs. Nicol Bolas|37|U||Land|||{tap}: Add {C} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| Forest|Duel Decks: Ajani vs. Nicol Bolas|38|L||Basic Land - Forest|||G| Forest|Duel Decks: Ajani vs. Nicol Bolas|39|L||Basic Land - Forest|||G| Wild Nacatl|Duel Decks: Ajani vs. Nicol Bolas|4|C|{G}|Creature - Cat Warrior|1|1|Wild Nacatl gets +1/+1 as long as you control a Mountain.$Wild Nacatl gets +1/+1 as long as you control a Plains.| @@ -3285,7 +3285,7 @@ Abolish|Duel Decks: Elspeth vs. Tezzeret|29|U|{1}{W}{W}|Instant|||You may discar Goldmeadow Harrier|Duel Decks: Elspeth vs. Tezzeret|3|C|{W}|Creature - Kithkin Soldier|1|1|{W}, {tap}: Tap target creature.| Saltblast|Duel Decks: Elspeth vs. Tezzeret|30|U|{3}{W}{W}|Sorcery|||Destroy target nonwhite permanent.| Swell of Courage|Duel Decks: Elspeth vs. Tezzeret|31|U|{3}{W}{W}|Instant|||Creatures you control get +2/+2 until end of turn.$Reinforce X-{X}{W}{W} ({X}{W}{W}, Discard this card: Put X +1/+1 counters on target creature.)| -Daru Encampment|Duel Decks: Elspeth vs. Tezzeret|32|U||Land|||{tap}: Add {1} to your mana pool.${W}, {tap}: Target Soldier creature gets +1/+1 until end of turn.| +Daru Encampment|Duel Decks: Elspeth vs. Tezzeret|32|U||Land|||{tap}: Add {C} to your mana pool.${W}, {tap}: Target Soldier creature gets +1/+1 until end of turn.| Kabira Crossroads|Duel Decks: Elspeth vs. Tezzeret|33|C||Land|||Kabira Crossroads enters the battlefield tapped.$When Kabira Crossroads enters the battlefield, you gain 2 life.${tap}: Add {W} to your mana pool.| Rustic Clachan|Duel Decks: Elspeth vs. Tezzeret|34|R||Land|||As Rustic Clachan enters the battlefield, you may reveal a Kithkin card from your hand. If you don't, Rustic Clachan enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Reinforce 1-{1}{W} ({1}{W}, Discard this card: Put a +1/+1 counter on target creature.)| Plains|Duel Decks: Elspeth vs. Tezzeret|35|L||Basic Land - Plains|||W| @@ -3316,7 +3316,7 @@ Triskelion|Duel Decks: Elspeth vs. Tezzeret|57|R|{6}|Artifact Creature - Constru Pentavus|Duel Decks: Elspeth vs. Tezzeret|58|R|{7}|Artifact Creature - Construct|0|0|Pentavus enters the battlefield with five +1/+1 counters on it.${1}, Remove a +1/+1 counter from Pentavus: Put a 1/1 colorless Pentavite artifact creature token with flying onto the battlefield.${1}, Sacrifice a Pentavite: Put a +1/+1 counter on Pentavus.| Qumulox|Duel Decks: Elspeth vs. Tezzeret|59|U|{6}{U}{U}|Creature - Beast|5|4|Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)$Flying| Mosquito Guard|Duel Decks: Elspeth vs. Tezzeret|6|C|{W}|Creature - Kithkin Soldier|1|1|First strike$Reinforce 1-{1}{W} ({1}{W}, Discard this card: Put a +1/+1 counter on target creature.)| -Everflowing Chalice|Duel Decks: Elspeth vs. Tezzeret|60|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {1} to your mana pool for each charge counter on Everflowing Chalice.| +Everflowing Chalice|Duel Decks: Elspeth vs. Tezzeret|60|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {C} to your mana pool for each charge counter on Everflowing Chalice.| AEther Spellbomb|Duel Decks: Elspeth vs. Tezzeret|61|C|{1}|Artifact|||{U}, Sacrifice Æther Spellbomb: Return target creature to its owner's hand.${1}, Sacrifice Æther Spellbomb: Draw a card.| Elixir of Immortality|Duel Decks: Elspeth vs. Tezzeret|62|U|{1}|Artifact|||{2}, {tap}: You gain 5 life. Shuffle Elixir of Immortality and your graveyard into their owner's library.| Contagion Clasp|Duel Decks: Elspeth vs. Tezzeret|63|U|{2}|Artifact|||When Contagion Clasp enters the battlefield, put a -1/-1 counter on target creature.${4}, {tap}: Proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.)| @@ -3329,10 +3329,10 @@ Argivian Restoration|Duel Decks: Elspeth vs. Tezzeret|69|U|{2}{U}{U}|Sorcery|||R Glory Seeker|Duel Decks: Elspeth vs. Tezzeret|7|C|{1}{W}|Creature - Human Soldier|2|2|| Foil|Duel Decks: Elspeth vs. Tezzeret|70|U|{2}{U}{U}|Instant|||You may discard an Island card and another card rather than pay Foil's mana cost.$Counter target spell.| Thoughtcast|Duel Decks: Elspeth vs. Tezzeret|71|C|{4}{U}|Sorcery|||Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)$Draw two cards.| -Darksteel Citadel|Duel Decks: Elspeth vs. Tezzeret|72|C||Artifact Land|||Darksteel Citadel is indestructible. ("Destroy" effects and lethal damage don't destroy it.)${tap}: Add {1} to your mana pool.| -Mishra's Factory|Duel Decks: Elspeth vs. Tezzeret|73|U||Land|||{tap}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Darksteel Citadel|Duel Decks: Elspeth vs. Tezzeret|72|C||Artifact Land|||Darksteel Citadel is indestructible. ("Destroy" effects and lethal damage don't destroy it.)${tap}: Add {C} to your mana pool.| +Mishra's Factory|Duel Decks: Elspeth vs. Tezzeret|73|U||Land|||{tap}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| Seat of the Synod|Duel Decks: Elspeth vs. Tezzeret|74|C||Artifact Land|||(Seat of the Synod isn't a spell.)${tap}: Add {U} to your mana pool.| -Stalking Stones|Duel Decks: Elspeth vs. Tezzeret|75|U||Land|||{tap}: Add {1} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land. (This effect lasts indefinitely.)| +Stalking Stones|Duel Decks: Elspeth vs. Tezzeret|75|U||Land|||{tap}: Add {C} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land. (This effect lasts indefinitely.)| Island|Duel Decks: Elspeth vs. Tezzeret|76|L||Basic Land - Island|||U| Island|Duel Decks: Elspeth vs. Tezzeret|77|L||Basic Land - Island|||U| Island|Duel Decks: Elspeth vs. Tezzeret|78|L||Basic Land - Island|||U| @@ -3357,7 +3357,7 @@ Harmonize|Duel Decks: Elves vs. Goblins|22|U|{2}{G}{G}|Sorcery|||Draw three card Wildsize|Duel Decks: Elves vs. Goblins|23|C|{2}{G}|Instant|||Target creature gets +2/+2 and gains trample until end of turn.$Draw a card.| Moonglove Extract|Duel Decks: Elves vs. Goblins|24|C|{3}|Artifact|||Sacrifice Moonglove Extract: Moonglove Extract deals 2 damage to target creature or player.| Slate of Ancestry|Duel Decks: Elves vs. Goblins|25|R|{4}|Artifact|||{4}, {tap}, Discard your hand: Draw a card for each creature you control.| -Wirewood Lodge|Duel Decks: Elves vs. Goblins|26|U||Land|||{tap}: Add {1} to your mana pool.${G}, {tap}: Untap target Elf.| +Wirewood Lodge|Duel Decks: Elves vs. Goblins|26|U||Land|||{tap}: Add {C} to your mana pool.${G}, {tap}: Untap target Elf.| Tranquil Thicket|Duel Decks: Elves vs. Goblins|27|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| Forest|Duel Decks: Elves vs. Goblins|28|L||Basic Land - Forest|||G| Forest|Duel Decks: Elves vs. Goblins|29|L||Basic Land - Forest|||G| @@ -3392,7 +3392,7 @@ Boggart Shenanigans|Duel Decks: Elves vs. Goblins|54|U|{2}{R}|Tribal Enchantment Spitting Earth|Duel Decks: Elves vs. Goblins|55|C|{1}{R}|Sorcery|||Spitting Earth deals damage to target creature equal to the number of Mountains you control.| Tarfire|Duel Decks: Elves vs. Goblins|56|C|{R}|Tribal Instant - Goblin|||Tarfire deals 2 damage to target creature or player.| Forgotten Cave|Duel Decks: Elves vs. Goblins|57|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| -Goblin Burrows|Duel Decks: Elves vs. Goblins|58|U||Land|||{tap}: Add {1} to your mana pool.${1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn.| +Goblin Burrows|Duel Decks: Elves vs. Goblins|58|U||Land|||{tap}: Add {C} to your mana pool.${1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn.| Mountain|Duel Decks: Elves vs. Goblins|59|L||Basic Land - Mountain|||R| Gempalm Strider|Duel Decks: Elves vs. Goblins|6|U|{1}{G}|Creature - Elf|2|2|Cycling {2}{G}{G} ({2}{G}{G}, Discard this card: Draw a card.)$When you cycle Gempalm Strider, Elf creatures get +2/+2 until end of turn.| Mountain|Duel Decks: Elves vs. Goblins|60|L||Basic Land - Mountain|||R| @@ -3494,7 +3494,7 @@ Fire|Duel Decks: Izzet vs. Golgari|32b|U|{1}{R}|Instant|||Fire deals 2 damage di Forgotten Cave|Duel Decks: Izzet vs. Golgari|33|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| Izzet Boilerworks|Duel Decks: Izzet vs. Golgari|34|C||Land|||Izzet Boilerworks enters the battlefield tapped.$When Izzet Boilerworks enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{R} to your mana pool.| Lonely Sandbar|Duel Decks: Izzet vs. Golgari|35|C||Land|||Lonely Sandbar enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {U} ({U}, Discard this card: Draw a card.)| -Nivix, Aerie of the Firemind|Duel Decks: Izzet vs. Golgari|36|U||Land|||{tap}: Add {1} to your mana pool.${2}{U}{R}, {tap}: Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery.| +Nivix, Aerie of the Firemind|Duel Decks: Izzet vs. Golgari|36|U||Land|||{tap}: Add {C} to your mana pool.${2}{U}{R}, {tap}: Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery.| Island|Duel Decks: Izzet vs. Golgari|37|L||Basic Land - Island|||U| Island|Duel Decks: Izzet vs. Golgari|38|L||Basic Land - Island|||U| Island|Duel Decks: Izzet vs. Golgari|39|L||Basic Land - Island|||U| @@ -3545,7 +3545,7 @@ Barren Moor|Duel Decks: Izzet vs. Golgari|78|C||Land|||Barren Moor enters the ba Dakmor Salvage|Duel Decks: Izzet vs. Golgari|79|U||Land|||Dakmor Salvage enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Dredge 2 (If you would draw a card, instead you may put exactly two cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.)| Shrewd Hatchling|Duel Decks: Izzet vs. Golgari|8|U|{3}{UR}|Creature - Elemental|6|6|Shrewd Hatchling enters the battlefield with four -1/-1 counters on it.${UR}: Target creature can't block Shrewd Hatchling this turn.$Whenever you cast a blue spell, remove a -1/-1 counter from Shrewd Hatchling.$Whenever you cast a red spell, remove a -1/-1 counter from Shrewd Hatchling.| Golgari Rot Farm|Duel Decks: Izzet vs. Golgari|80|C||Land|||Golgari Rot Farm enters the battlefield tapped.$When Golgari Rot Farm enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{G} to your mana pool.| -Svogthos, the Restless Tomb|Duel Decks: Izzet vs. Golgari|81|U||Land|||{tap}: Add {1} to your mana pool.${3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land.| +Svogthos, the Restless Tomb|Duel Decks: Izzet vs. Golgari|81|U||Land|||{tap}: Add {C} to your mana pool.${3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land.| Tranquil Thicket|Duel Decks: Izzet vs. Golgari|82|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| Swamp|Duel Decks: Izzet vs. Golgari|83|L||Basic Land - Swamp|||B| Swamp|Duel Decks: Izzet vs. Golgari|84|L||Basic Land - Swamp|||B| @@ -3570,14 +3570,14 @@ Quicksilver Dragon|Duel Decks: Jace vs. Chandra|19|R|{4}{U}{U}|Creature - Dragon Martyr of Frost|Duel Decks: Jace vs. Chandra|2|C|{U}|Creature - Human Wizard|1|1|{2}, Reveal X blue cards from your hand, Sacrifice Martyr of Frost: Counter target spell unless its controller pays {X}.| Errant Ephemeron|Duel Decks: Jace vs. Chandra|20|C|{6}{U}|Creature - Illusion|4|4|Flying$Suspend 4-{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with four 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. It has haste.)| Ancestral Vision|Duel Decks: Jace vs. Chandra|21|R||Sorcery|||Suspend 4-{U} (Rather than cast this card from your hand, pay {U} and exile it with four 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.)$Target player draws three cards.| -Mind Stone|Duel Decks: Jace vs. Chandra|22|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| +Mind Stone|Duel Decks: Jace vs. Chandra|22|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| Daze|Duel Decks: Jace vs. Chandra|23|C|{1}{U}|Instant|||You may return an Island you control to its owner's hand rather than pay Daze's mana cost.$$Counter target spell unless its controller pays {1}.| Counterspell|Duel Decks: Jace vs. Chandra|24|C|{U}{U}|Instant|||Counter target spell.| Repulse|Duel Decks: Jace vs. Chandra|25|C|{2}{U}|Instant|||Return target creature to its owner's hand.$Draw a card.| Fact or Fiction|Duel Decks: Jace vs. Chandra|26|U|{3}{U}|Instant|||Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.| Gush|Duel Decks: Jace vs. Chandra|27|C|{4}{U}|Instant|||You may return two Islands you control to their owner's hand rather than pay Gush's mana cost.$$Draw two cards.| Condescend|Duel Decks: Jace vs. Chandra|28|C|{X}{U}|Instant|||Counter target spell unless its controller pays {X}.$Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)| -Terrain Generator|Duel Decks: Jace vs. Chandra|29|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: You may put a basic land card from your hand onto the battlefield tapped.| +Terrain Generator|Duel Decks: Jace vs. Chandra|29|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: You may put a basic land card from your hand onto the battlefield tapped.| Fathom Seer|Duel Decks: Jace vs. Chandra|3|C|{1}{U}|Creature - Illusion|1|3|Morph-Return two Islands you control to their owner's hand. (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)$When Fathom Seer is turned face up, draw two cards.| Island|Duel Decks: Jace vs. Chandra|30|L||Basic Land - Island|||U| Island|Duel Decks: Jace vs. Chandra|31|L||Basic Land - Island|||U| @@ -3715,7 +3715,7 @@ Phyrexian Totem|Duel Decks: Phyrexia vs. the Coalition|20|U|{3}|Artifact|||{tap} Phyrexian Vault|Duel Decks: Phyrexia vs. the Coalition|21|U|{3}|Artifact|||{2}, {tap}, Sacrifice a creature: Draw a card.| Puppet Strings|Duel Decks: Phyrexia vs. the Coalition|22|U|{3}|Artifact|||{2}, {tap}: You may tap or untap target creature.| Whispersilk Cloak|Duel Decks: Phyrexia vs. the Coalition|23|U|{3}|Artifact - Equipment|||Equipped creature is unblockable and has shroud.$Equip {2}| -Worn Powerstone|Duel Decks: Phyrexia vs. the Coalition|24|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {2} to your mana pool.| +Worn Powerstone|Duel Decks: Phyrexia vs. the Coalition|24|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {C}{C} to your mana pool.| Slay|Duel Decks: Phyrexia vs. the Coalition|25|U|{2}{B}|Instant|||Destroy target green creature. It can't be regenerated.$Draw a card.| Hideous End|Duel Decks: Phyrexia vs. the Coalition|26|C|{1}{B}{B}|Instant|||Destroy target nonblack creature. Its controller loses 2 life.| Phyrexian Arena|Duel Decks: Phyrexia vs. the Coalition|27|R|{1}{B}{B}|Enchantment|||At the beginning of your upkeep, you draw a card and you lose 1 life.| @@ -4104,10 +4104,10 @@ Elfhame Palace|Eighth Edition|324|U||Land|||Elfhame Palace enters the battlefiel Salt Marsh|Eighth Edition|325|U||Land|||Salt Marsh enters the battlefield tapped.${tap}: Add {U} or {B} to your mana pool.| Shivan Oasis|Eighth Edition|326|U||Land|||Shivan Oasis enters the battlefield tapped.${tap}: Add {R} or {G} to your mana pool.| Urborg Volcano|Eighth Edition|327|U||Land|||Urborg Volcano enters the battlefield tapped.${tap}: Add {B} or {R} to your mana pool.| -Urza's Mine|Eighth Edition|328|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Eighth Edition|329|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| +Urza's Mine|Eighth Edition|328|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Eighth Edition|329|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| Pacifism|Eighth Edition|33|C|{1}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block.| -Urza's Tower|Eighth Edition|330|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| +Urza's Tower|Eighth Edition|330|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| Plains|Eighth Edition|331|L||Basic Land - Plains|||W| Plains|Eighth Edition|332|L||Basic Land - Plains|||W| Plains|Eighth Edition|333|L||Basic Land - Plains|||W| @@ -4288,13 +4288,13 @@ Leering Emblem|Eventide|171|R|{2}|Artifact - Equipment|||Whenever you cast a spe Scarecrone|Eventide|172|R|{3}|Artifact Creature - Scarecrow|1|2|{1}, Sacrifice a Scarecrow: Draw a card.${4}, {tap}: Return target artifact creature card from your graveyard to the battlefield.| Shell Skulkin|Eventide|173|C|{4}|Artifact Creature - Scarecrow|3|2|{3}: Target blue creature gains shroud until end of turn.| Ward of Bones|Eventide|174|R|{6}|Artifact|||Each opponent who controls more creatures than you can't play creature cards. The same is true for artifacts, enchantments, and lands.| -Cascade Bluffs|Eventide|175|R||Land|||{tap}: Add {1} to your mana pool.${UR}, {tap}: Add {U}{U}, {U}{R}, or {R}{R} to your mana pool.| -Fetid Heath|Eventide|176|R||Land|||{tap}: Add {1} to your mana pool.${WB}, {tap}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool.| -Flooded Grove|Eventide|177|R||Land|||{tap}: Add {1} to your mana pool.${GU}, {tap}: Add {G}{G}, {G}{U}, or {U}{U} to your mana pool.| -Rugged Prairie|Eventide|178|R||Land|||{tap}: Add {1} to your mana pool.${RW}, {tap}: Add {R}{R}, {R}{W}, or {W}{W} to your mana pool.| -Springjack Pasture|Eventide|179|R||Land|||{tap}: Add {1} to your mana pool.${4}, {tap}: Put a 0/1 white Goat creature token onto the battlefield.${tap}, Sacrifice X Goats: Add X mana of any one color to your mana pool. You gain X life.| +Cascade Bluffs|Eventide|175|R||Land|||{tap}: Add {C} to your mana pool.${UR}, {tap}: Add {U}{U}, {U}{R}, or {R}{R} to your mana pool.| +Fetid Heath|Eventide|176|R||Land|||{tap}: Add {C} to your mana pool.${WB}, {tap}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool.| +Flooded Grove|Eventide|177|R||Land|||{tap}: Add {C} to your mana pool.${GU}, {tap}: Add {G}{G}, {G}{U}, or {U}{U} to your mana pool.| +Rugged Prairie|Eventide|178|R||Land|||{tap}: Add {C} to your mana pool.${RW}, {tap}: Add {R}{R}, {R}{W}, or {W}{W} to your mana pool.| +Springjack Pasture|Eventide|179|R||Land|||{tap}: Add {C} to your mana pool.${4}, {tap}: Put a 0/1 white Goat creature token onto the battlefield.${tap}, Sacrifice X Goats: Add X mana of any one color to your mana pool. You gain X life.| Cache Raiders|Eventide|18|U|{3}{U}{U}|Creature - Merfolk Rogue|4|4|At the beginning of your upkeep, return a permanent you control to its owner's hand.| -Twilight Mire|Eventide|180|R||Land|||{tap}: Add {1} to your mana pool.${BG}, {tap}: Add {B}{B}, {B}{G}, or {G}{G} to your mana pool.| +Twilight Mire|Eventide|180|R||Land|||{tap}: Add {C} to your mana pool.${BG}, {tap}: Add {B}{B}, {B}{G}, or {G}{G} to your mana pool.| Dream Fracture|Eventide|19|U|{1}{U}{U}|Instant|||Counter target spell. Its controller draws a card.$Draw a card.| Ballynock Trapper|Eventide|2|C|{3}{W}|Creature - Kithkin Soldier|2|2|{tap}: Tap target creature.$Whenever you cast a white spell, you may untap Ballynock Trapper.| Dream Thief|Eventide|20|C|{2}{U}|Creature - Faerie Rogue|2|1|Flying$When Dream Thief enters the battlefield, draw a card if you've cast another blue spell this turn.| @@ -4525,8 +4525,8 @@ Spellbook|Exodus|138|U|{0}|Artifact|||You have no maximum hand size.| Sphere of Resistance|Exodus|139|R|{2}|Artifact|||Spells cost {1} more to cast.| Thopter Squadron|Exodus|140|R|{5}|Artifact Creature - Thopter|0|0|Flying$Thopter Squadron enters the battlefield with three +1/+1 counters on it.${1}, Remove a +1/+1 counter from Thopter Squadron: Put a 1/1 colorless Thopter artifact creature token with flying onto the battlefield. Activate this ability only any time you could cast a sorcery.${1}, Sacrifice another Thopter: Put a +1/+1 counter on Thopter Squadron. Activate this ability only any time you could cast a sorcery.| Transmogrifying Licid|Exodus|141|U|{3}|Artifact Creature - Licid|2|2|{1}, {tap}: Transmogrifying Licid loses this ability and becomes an Aura enchantment with enchant creature. Attach it to target creature. You may pay {1} to end this effect.$Enchanted creature gets +1/+1 and is an artifact in addition to its other types.| -Workhorse|Exodus|142|R|{6}|Artifact Creature - Horse|0|0|Workhorse enters the battlefield with four +1/+1 counters on it.$Remove a +1/+1 counter from Workhorse: Add {1} to your mana pool.| -City of Traitors|Exodus|143|R||Land|||When you play another land, sacrifice City of Traitors.${tap}: Add {2} to your mana pool.| +Workhorse|Exodus|142|R|{6}|Artifact Creature - Horse|0|0|Workhorse enters the battlefield with four +1/+1 counters on it.$Remove a +1/+1 counter from Workhorse: Add {C} to your mana pool.| +City of Traitors|Exodus|143|R||Land|||When you play another land, sacrifice City of Traitors.${tap}: Add {C}{C} to your mana pool.| Armor Thrull|Fallen Empires|1|C|{2}{B}|Creature - Thrull|1|3|{tap}, Sacrifice Armor Thrull: Put a +1/+2 counter on target creature.| Armor Thrull|Fallen Empires|1|C|{2}{B}|Creature - Thrull|1|3|{tap}, Sacrifice Armor Thrull: Put a +1/+2 counter on target creature.| Armor Thrull|Fallen Empires|1|C|{2}{B}|Creature - Thrull|1|3|{tap}, Sacrifice Armor Thrull: Put a +1/+2 counter on target creature.| @@ -4746,14 +4746,14 @@ Gemstone Array|Fifth Dawn|124|U|{4}|Artifact|||{2}: Put a charge counter on Gems Goblin Cannon|Fifth Dawn|125|U|{4}|Artifact|||{2}: Goblin Cannon deals 1 damage to target creature or player. Sacrifice Goblin Cannon.| Grafted Wargear|Fifth Dawn|126|U|{3}|Artifact - Equipment|||Equipped creature gets +3/+2.$Whenever Grafted Wargear becomes unattached from a permanent, sacrifice that permanent.$Equip {0} ({0}: Attach to target creature you control. Equip only as a sorcery.)| Grinding Station|Fifth Dawn|127|U|{2}|Artifact|||{tap}, Sacrifice an artifact: Target player puts the top three cards of his or her library into his or her graveyard.$Whenever an artifact enters the battlefield, you may untap Grinding Station.| -Guardian Idol|Fifth Dawn|128|U|{2}|Artifact|||Guardian Idol enters the battlefield tapped.${tap}: Add {1} to your mana pool.${2}: Guardian Idol becomes a 2/2 Golem artifact creature until end of turn.| +Guardian Idol|Fifth Dawn|128|U|{2}|Artifact|||Guardian Idol enters the battlefield tapped.${tap}: Add {C} to your mana pool.${2}: Guardian Idol becomes a 2/2 Golem artifact creature until end of turn.| Healer's Headdress|Fifth Dawn|129|C|{2}|Artifact - Equipment|||Equipped creature gets +0/+2 and has "{tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn."${W}{W}: Attach Healer's Headdress to target creature you control.$Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.)| Retaliate|Fifth Dawn|13|R|{2}{W}{W}|Instant|||Destroy all creatures that dealt damage to you this turn.| Heliophial|Fifth Dawn|130|C|{5}|Artifact|||Sunburst (This enters the battlefield with a charge counter on it for each color of mana spent to cast it.)${2}, Sacrifice Heliophial: Heliophial deals damage equal to the number of charge counters on it to target creature or player.| Helm of Kaldra|Fifth Dawn|131|R|{3}|Legendary Artifact - Equipment|||Equipped creature has first strike, trample, and haste.${1}: If you control Equipment named Helm of Kaldra, Sword of Kaldra, and Shield of Kaldra, put a legendary 4/4 colorless Avatar creature token named Kaldra onto the battlefield and attach those Equipment to it.$Equip {2}| Horned Helm|Fifth Dawn|132|C|{2}|Artifact - Equipment|||Equipped creature gets +1/+1 and has trample.${G}{G}: Attach Horned Helm to target creature you control.$Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.)| Infused Arrows|Fifth Dawn|133|U|{4}|Artifact|||Sunburst (This enters the battlefield with a charge counter on it for each color of mana spent to cast it.)${tap}, Remove X charge counters from Infused Arrows: Target creature gets -X/-X until end of turn.| -Krark-Clan Ironworks|Fifth Dawn|134|U|{4}|Artifact|||Sacrifice an artifact: Add {2} to your mana pool.| +Krark-Clan Ironworks|Fifth Dawn|134|U|{4}|Artifact|||Sacrifice an artifact: Add {C}{C} to your mana pool.| Lantern of Insight|Fifth Dawn|135|U|{1}|Artifact|||Each player plays with the top card of his or her library revealed.${tap}, Sacrifice Lantern of Insight: Target player shuffles his or her library.| Lunar Avenger|Fifth Dawn|136|U|{7}|Artifact Creature - Golem|2|2|Sunburst (This enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.)$Remove a +1/+1 counter from Lunar Avenger: Lunar Avenger gains your choice of flying, first strike, or haste until end of turn.| Mycosynth Golem|Fifth Dawn|137|R|{11}|Artifact Creature - Golem|4|5|Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)$Artifact creature spells you cast have affinity for artifacts. (They cost {1} less to cast for each artifact you control.)| @@ -5155,7 +5155,7 @@ Wrath of God|Fifth Edition|345|R|{2}{W}{W}|Sorcery|||Destroy all creatures. They Aladdin's Ring|Fifth Edition|346|R|{8}|Artifact|||{8}, {tap}: Aladdin's Ring deals 4 damage to target creature or player.| Amulet of Kroog|Fifth Edition|347|C|{2}|Artifact|||{2}, {tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn.| Ankh of Mishra|Fifth Edition|348|R|{2}|Artifact|||Whenever a land enters the battlefield, Ankh of Mishra deals 2 damage to that land's controller.| -Ashnod's Altar|Fifth Edition|349|U|{3}|Artifact|||Sacrifice a creature: Add {2} to your mana pool.| +Ashnod's Altar|Fifth Edition|349|U|{3}|Artifact|||Sacrifice a creature: Add {C}{C} to your mana pool.| Leshrac's Rite|Fifth Edition|35|U|{B}|Enchantment - Aura|||Enchant creature$Enchanted creature has swampwalk.| Ashnod's Transmogrant|Fifth Edition|350|C|{1}|Artifact|||{tap}, Sacrifice Ashnod's Transmogrant: Put a +1/+1 counter on target nonartifact creature. That creature becomes an artifact in addition to its other types.| Barbed Sextant|Fifth Edition|351|C|{1}|Artifact|||{1}, {tap}, Sacrifice Barbed Sextant: Add one mana of any color to your mana pool. Draw a card at the beginning of the next turn's upkeep.| @@ -5198,7 +5198,7 @@ Jayemdae Tome|Fifth Edition|384|R|{4}|Artifact|||{4}, {tap}: Draw a card.| Jester's Cap|Fifth Edition|385|R|{4}|Artifact|||{2}, {tap}, Sacrifice Jester's Cap: Search target player's library for three cards and exile them. Then that player shuffles his or her library.| Joven's Tools|Fifth Edition|386|U|{6}|Artifact|||{4}, {tap}: Target creature can't be blocked this turn except by Walls.| Library of Leng|Fifth Edition|387|U|{1}|Artifact|||You have no maximum hand size.$If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.| -Mana Vault|Fifth Edition|388|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Vault|Fifth Edition|388|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Meekstone|Fifth Edition|389|R|{1}|Artifact|||Creatures with power 3 or greater don't untap during their controllers' untap steps.| Mind Warp|Fifth Edition|39|U|{X}{3}{B}|Sorcery|||Look at target player's hand and choose X cards from it. That player discards those cards.| Millstone|Fifth Edition|390|R|{2}|Artifact|||{2}, {tap}: Target player puts the top two cards of his or her library into his or her graveyard.| @@ -5225,9 +5225,9 @@ Wall of Spears|Fifth Edition|407|C|{3}|Artifact Creature - Wall|2|3|Defender Winter Orb|Fifth Edition|408|R|{2}|Artifact|||Players can't untap more than one land during their untap steps.| Wooden Sphere|Fifth Edition|409|U|{1}|Artifact|||Whenever a player casts a green spell, you may pay {1}. If you do, you gain 1 life.| Mole Worms|Fifth Edition|41|U|{2}{B}|Creature - Worm|1|1|You may choose not to untap Mole Worms during your untap step.${tap}: Tap target land. It doesn't untap during its controller's untap step for as long as Mole Worms remains tapped.| -Adarkar Wastes|Fifth Edition|410|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| +Adarkar Wastes|Fifth Edition|410|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| Bottomless Vault|Fifth Edition|411|R||Land|||Bottomless Vault enters the battlefield tapped.$You may choose not to untap Bottomless Vault during your untap step.$At the beginning of your upkeep, if Bottomless Vault is tapped, put a storage counter on it.${tap}, Remove any number of storage counters from Bottomless Vault: Add {B} to your mana pool for each storage counter removed this way.| -Brushland|Fifth Edition|412|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| +Brushland|Fifth Edition|412|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| City of Brass|Fifth Edition|413|R||Land|||Whenever City of Brass becomes tapped, it deals 1 damage to you.${tap}: Add one mana of any color to your mana pool.| Dwarven Hold|Fifth Edition|414|R||Land|||Dwarven Hold enters the battlefield tapped.$You may choose not to untap Dwarven Hold during your untap step.$At the beginning of your upkeep, if Dwarven Hold is tapped, put a storage counter on it.${tap}, Remove any number of storage counters from Dwarven Hold: Add {R} to your mana pool for each storage counter removed this way.| Dwarven Ruins|Fifth Edition|415|U||Land|||Dwarven Ruins enters the battlefield tapped.${tap}: Add {R} to your mana pool.${tap}, Sacrifice Dwarven Ruins: Add {R}{R} to your mana pool.| @@ -5245,7 +5245,7 @@ Island|Fifth Edition|425|L||Basic Land - Island|||U| Island|Fifth Edition|425|L||Basic Land - Island|||U| Island|Fifth Edition|425|L||Basic Land - Island|||U| Island|Fifth Edition|425|L||Basic Land - Island|||U| -Karplusan Forest|Fifth Edition|429|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| +Karplusan Forest|Fifth Edition|429|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| Necrite|Fifth Edition|43|C|{1}{B}{B}|Creature - Thrull|2|2|Whenever Necrite attacks and isn't blocked, you may sacrifice it. If you do, destroy target creature defending player controls. It can't be regenerated.| Mountain|Fifth Edition|430|L||Basic Land - Mountain|||R| Mountain|Fifth Edition|430|L||Basic Land - Mountain|||R| @@ -5258,16 +5258,16 @@ Plains|Fifth Edition|434|L||Basic Land - Plains|||W| Ruins of Trokair|Fifth Edition|438|U||Land|||Ruins of Trokair enters the battlefield tapped.${tap}: Add {W} to your mana pool.${tap}, Sacrifice Ruins of Trokair: Add {W}{W} to your mana pool.| Sand Silos|Fifth Edition|439|R||Land|||Sand Silos enters the battlefield tapped.$You may choose not to untap Sand Silos during your untap step.$At the beginning of your upkeep, if Sand Silos is tapped, put a storage counter on it.${tap}, Remove any number of storage counters from Sand Silos: Add {U} to your mana pool for each storage counter removed this way.| Necropotence|Fifth Edition|44|R|{B}{B}{B}|Enchantment|||Skip your draw step.$Whenever you discard a card, exile that card from your graveyard.$Pay 1 life: Exile the top card of your library face down. Put that card into your hand at the beginning of your next end step.| -Sulfurous Springs|Fifth Edition|440|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| +Sulfurous Springs|Fifth Edition|440|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| Svyelunite Temple|Fifth Edition|441|U||Land|||Svyelunite Temple enters the battlefield tapped.${tap}: Add {U} to your mana pool.${tap}, Sacrifice Svyelunite Temple: Add {U}{U} to your mana pool.| Swamp|Fifth Edition|442|L||Basic Land - Swamp|||B| Swamp|Fifth Edition|442|L||Basic Land - Swamp|||B| Swamp|Fifth Edition|442|L||Basic Land - Swamp|||B| Swamp|Fifth Edition|442|L||Basic Land - Swamp|||B| -Underground River|Fifth Edition|446|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| -Urza's Mine|Fifth Edition|447|C||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Fifth Edition|448|C||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Tower|Fifth Edition|449|C||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| +Underground River|Fifth Edition|446|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| +Urza's Mine|Fifth Edition|447|C||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Fifth Edition|448|C||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Tower|Fifth Edition|449|C||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| Nether Shadow|Fifth Edition|45|R|{B}{B}|Creature - Spirit|1|1|Haste$At the beginning of your upkeep, if Nether Shadow is in your graveyard with three or more creature cards above it, you may put Nether Shadow onto the battlefield.| Nightmare|Fifth Edition|46|R|{5}{B}|Creature - Nightmare Horse|*|*|Flying$Nightmare's power and toughness are each equal to the number of Swamps you control.| Paralyze|Fifth Edition|47|C|{B}|Enchantment - Aura|||Enchant creature$When Paralyze enters the battlefield, tap enchanted creature.$Enchanted creature doesn't untap during its controller's untap step.$At the beginning of the upkeep of enchanted creature's controller, that player may pay {4}. If he or she does, untap the creature.| @@ -5353,7 +5353,7 @@ Aspect of Wolf|Fourth Edition|117|R|{1}{G}|Enchantment - Aura|||Enchant creature Birds of Paradise|Fourth Edition|118|R|{G}|Creature - Bird|0|1|Flying${tap}: Add one mana of any color to your mana pool.| Carnivorous Plant|Fourth Edition|119|C|{3}{G}|Creature - Plant Wall|4|5|Defender| Cyclopean Mummy|Fourth Edition|12|C|{1}{B}|Creature - Zombie|2|1|When Cyclopean Mummy dies, exile it.| -Channel|Fourth Edition|120|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|Fourth Edition|120|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Cockatrice|Fourth Edition|121|R|{3}{G}{G}|Creature - Cockatrice|2|4|Flying$Whenever Cockatrice blocks or becomes blocked by a non-Wall creature, destroy that creature at end of combat.| Craw Wurm|Fourth Edition|122|C|{4}{G}{G}|Creature - Wurm|6|4|| Crumble|Fourth Edition|123|U|{G}|Instant|||Destroy target artifact. It can't be regenerated. That artifact's controller gains life equal to its converted mana cost.| @@ -5419,7 +5419,7 @@ Island|Fourth Edition|178|L||Basic Land - Island|||U| Island|Fourth Edition|178|L||Basic Land - Island|||U| Island|Fourth Edition|178|L||Basic Land - Island|||U| El-Hajjaj|Fourth Edition|18|R|{1}{B}{B}|Creature - Human Wizard|1|1|Whenever El-Hajjâj deals damage, you gain that much life.| -Mishra's Factory|Fourth Edition|181|U||Land|||{tap}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Mishra's Factory|Fourth Edition|181|U||Land|||{tap}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| Mountain|Fourth Edition|182|L||Basic Land - Mountain|||R| Mountain|Fourth Edition|182|L||Basic Land - Mountain|||R| Mountain|Fourth Edition|182|L||Basic Land - Mountain|||R| @@ -5427,7 +5427,7 @@ Oasis|Fourth Edition|185|U||Land|||{tap}: Prevent the next 1 damage that would b Plains|Fourth Edition|186|L||Basic Land - Plains|||W| Plains|Fourth Edition|186|L||Basic Land - Plains|||W| Plains|Fourth Edition|186|L||Basic Land - Plains|||W| -Strip Mine|Fourth Edition|189|U||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| +Strip Mine|Fourth Edition|189|U||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| Erg Raiders|Fourth Edition|19|C|{1}{B}|Creature - Human Warrior|2|3|At the beginning of your end step, if Erg Raiders didn't attack this turn, Erg Raiders deals 2 damage to you unless it came under your control this turn.| Swamp|Fourth Edition|190|L||Basic Land - Swamp|||B| Swamp|Fourth Edition|190|L||Basic Land - Swamp|||B| @@ -5606,7 +5606,7 @@ Jayemdae Tome|Fourth Edition|349|R|{4}|Artifact|||{4}, {tap}: Draw a card.| Paralyze|Fourth Edition|35|C|{B}|Enchantment - Aura|||Enchant creature$When Paralyze enters the battlefield, tap enchanted creature.$Enchanted creature doesn't untap during its controller's untap step.$At the beginning of the upkeep of enchanted creature's controller, that player may pay {4}. If he or she does, untap the creature.| Kormus Bell|Fourth Edition|350|R|{4}|Artifact|||All Swamps are 1/1 black creatures that are still lands.| Library of Leng|Fourth Edition|351|U|{1}|Artifact|||You have no maximum hand size.$If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.| -Mana Vault|Fourth Edition|352|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Vault|Fourth Edition|352|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Meekstone|Fourth Edition|353|R|{1}|Artifact|||Creatures with power 3 or greater don't untap during their controllers' untap steps.| Millstone|Fourth Edition|354|R|{2}|Artifact|||{2}, {tap}: Target player puts the top two cards of his or her library into his or her graveyard.| Mishra's War Machine|Fourth Edition|355|R|{7}|Artifact Creature - Juggernaut|5|5|Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)$At the beginning of your upkeep, Mishra's War Machine deals 3 damage to you unless you discard a card. If Mishra's War Machine deals damage to you this way, tap it.| @@ -5663,7 +5663,7 @@ Zombie Master|Fourth Edition|58|R|{1}{B}{B}|Creature - Zombie|2|3|Other Zombie c Air Elemental|Fourth Edition|59|U|{3}{U}{U}|Creature - Elemental|4|4|Flying| Blight|Fourth Edition|6|U|{B}{B}|Enchantment - Aura|||Enchant land$When enchanted land becomes tapped, destroy it.| Animate Artifact|Fourth Edition|60|U|{3}{U}|Enchantment - Aura|||Enchant artifact$As long as enchanted artifact isn't a creature, it's an artifact creature with power and toughness each equal to its converted mana cost.| -Apprentice Wizard|Fourth Edition|61|C|{1}{U}{U}|Creature - Human Wizard|0|1|{U}, {tap}: Add {3} to your mana pool.| +Apprentice Wizard|Fourth Edition|61|C|{1}{U}{U}|Creature - Human Wizard|0|1|{U}, {tap}: Add {C}{C}{C} to your mana pool.| Backfire|Fourth Edition|62|U|{U}|Enchantment - Aura|||Enchant creature$Whenever enchanted creature deals damage to you, Backfire deals that much damage to that creature's controller.| Blue Elemental Blast|Fourth Edition|63|C|{U}|Instant|||Choose one - Counter target red spell; or destroy target red permanent.| Control Magic|Fourth Edition|64|U|{2}{U}{U}|Enchantment - Aura|||Enchant creature$You control enchanted creature.| @@ -5806,7 +5806,7 @@ Tendrils of Agony|Friday Night Magic|95|U|{2}{B}{B}|Sorcery|||Target player lose Pendelhaven|Friday Night Magic|96|U||Legendary Land|||{T}: Add {G} to your mana pool.${T}: Target 1/1 creature gets +1/+2 until end of turn.| Resurrection|Friday Night Magic|97|U|{2}{W}{W}|Sorcery|||Return target creature card from your graveyard to the battlefield.| Wall of Roots|Friday Night Magic|98|U|{1}{G}|Creature Plant Wall|0|5|Defender$Put a -0/-1 counter on Wall of Roots: Add {G} to your mana pool. Activate this ability only once each turn.| -Desert|Friday Night Magic|99|U||Land - Desert|||{T}: Add {1} to your mana pool.${T}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| +Desert|Friday Night Magic|99|U||Land - Desert|||{T}: Add {C} to your mana pool.${T}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| Thirst for Knowledge|Friday Night Magic|100|U|{2}{U}|Instant|||Draw three cards. Then discard two cards unless you discard an artifact card.| Serrated Arrows|Friday Night Magic|101|U|{4}|Artifact|||Serrated Arrows enters the battlefield with three arrowhead counters on it.$At the beginning of your upkeep, if there are no arrowhead counters on Serrated Arrows, sacrifice it.${T}, Remove an arrowhead counter from Serrated Arrows: Put a -1/-1 counter on target creature.| Isochron Scepter|Friday Night Magic|102|U|{2}|Artifact|||Imprint When Isochron Scepter enters the battlefield, you may exile an instant card with converted mana cost 2 or less from your hand.${2}, {T}: You may copy the exiled card. If you do, you may cast the copy without paying its mana cost.| @@ -5827,7 +5827,7 @@ Tidehollow Sculler|Friday Night Magic|116|U|{W}{B}|Artifact Zombie Creature|2| Ghostly Prison|Friday Night Magic|117|U|{2}{W}|Enchantment|||Creatures can't attack you unless their controller pays {2} for each creature he or she controls that's attacking you.| Ancient Ziggurat|Friday Night Magic|118|U||Land|||{T}: Add one mana of any color to your mana pool. Spend this mana only to cast a creature spell.| Bloodbraid Elf|Friday Night Magic|119|U|{2}{R}{G}|Creature Elf Berserker|3|2|Haste$Cascade (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom in a random order.)| -Cloudpost|Friday Night Magic|120|U||Land - Locus|||Cloudpost enters the battlefield tapped.${T}: Add {1} to your mana pool for each Locus on the battlefield.| +Cloudpost|Friday Night Magic|120|U||Land - Locus|||Cloudpost enters the battlefield tapped.${T}: Add {C} to your mana pool for each Locus on the battlefield.| Elvish Visionary|Friday Night Magic|121|U|{1}{G}|Creature Elf Shaman|1|1|When Elvish Visionary enters the battlefield, draw a card.| Anathemancer|Friday Night Magic|122|U|{1}{B}{R}|Creature Zombie Wizard|2|2|When Anathemancer enters the battlefield, it deals damage to target player equal to the number of nonbasic lands that player controls.$Unearth {5}{B}{R} ({5}{B}{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.)| Krosan Grip|Friday Night Magic|123|U|{2}{G}|Instant|||Split second (As long as this spell is on the stack, players can't cast spells or activate abilities that aren't mana abilities.)$Destroy target artifact or enchantment.| @@ -5835,7 +5835,7 @@ Qasali Pridemage|Friday Night Magic|124|U|{W}{G}|Creature Cat Wizard|2|2|Exalt Rift Bolt|Friday Night Magic|125|U|{2}{R}|Sorcery|||Rift Bolt deals 3 damage to target creature or player.$Suspend 1 {R} (Rather than cast this card from your hand, you may pay {R} and exile it with a time counter on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost.)| Gatekeeper of Malakir|Friday Night Magic|126|U|{B}{B}|Creature Vampire Warrior|2|2|Kicker {B} (You may pay an additional {B} as you cast this spell.)$When Gatekeeper of Malakir enters the battlefield, if it was kicked, target player sacrifices a creature.| Wild Nacatl|Friday Night Magic|127|U|{G}|Creature Cat Warrior|1|1|Wild Nacatl gets +1/+1 as long as you control a Mountain.$Wild Nacatl gets +1/+1 as long as you control a Plains.| -Everflowing Chalice|Friday Night Magic|128|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${T}: Add {1} to your mana pool for each charge counter on Everflowing Chalice.| +Everflowing Chalice|Friday Night Magic|128|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${T}: Add {C} to your mana pool for each charge counter on Everflowing Chalice.| Spellstutter Sprite|Friday Night Magic|129|U|{1}{U}|Creature Faerie Wizard|1|1|Flash$Flying$When Spellstutter Sprite enters the battlefield, counter target spell with converted mana cost X or less, where X is the number of Faeries you control.| Wall of Omens|Friday Night Magic|130|U|{1}{W}|Creature Wall|0|4|Defender$When Wall of Omens enters the battlefield, draw a card.| Artisan of Kozilek|Friday Night Magic|131|U|{9}|Creature Eldrazi|10|9|When you cast Artisan of Kozilek, you may return target creature card from your graveyard to the battlefield.$Annihilator 2 (Whenever this creature attacks, defending player sacrifices two permanents.)| @@ -5849,7 +5849,7 @@ Go for the Throat|Friday Night Magic|138|U|{1}{B}|Instant|||Destroy target nonar Savage Lands|Friday Night Magic|139|U||Land|||Savage Lands enters the battlefield tapped.${T}: Add {B}, {R}, or {G} to your mana pool.| Glistener Elf|Friday Night Magic|140|U|{G}|Creature Elf Warrior|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.)| Despise|Friday Night Magic|141|U|{B}|Sorcery|||Target opponent reveals his or her hand. You choose a creature or planeswalker card from it. That player discards that card.| -Tectonic Edge|Friday Night Magic|142|U||Land|||{T}: Add {1} to your mana pool.${1}, {T}, Sacrifice Tectonic Edge: Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands.| +Tectonic Edge|Friday Night Magic|142|U||Land|||{T}: Add {C} to your mana pool.${1}, {T}, Sacrifice Tectonic Edge: Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands.| Dismember|Friday Night Magic|143|U|{1}{BP}{BP}|Instant|||({BP} can be paid with either {B} or 2 life.)$Target creature gets -5/-5 until end of turn.| Ancient Grudge|Friday Night Magic|144|U|{1}{R}|Instant|||Destroy target artifact.$Flashback {G} (You may cast this card from your graveyard for its flashback cost. Then exile it.)| Acidic Slime|Friday Night Magic|145|U|{3}{G}{G}|Creature Ooze|2|2|Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$When Acidic Slime enters the battlefield, destroy target artifact, enchantment, or land.| @@ -5860,7 +5860,7 @@ Evolving Wilds|Friday Night Magic|149|U||Land|||{T}, Sacrifice Evolving Wilds: S Pillar of Flame|Friday Night Magic|150|U|{R}|Sorcery|||Pillar of Flame deals 2 damage to target creature or player. If a creature dealt damage this way would die this turn, exile it instead.| Gitaxian Probe|Friday Night Magic|151|U|{UP}|Sorcery|||({UP} can be paid with either {U} or 2 life.)$Look at target player's hand.$Draw a card.| Searing Spear|Friday Night Magic|152|U|{1}{R}|Instant|||Searing Spear deals 3 damage to target creature or player.| -Reliquary Tower|Friday Night Magic|153|U||Land|||You have no maximum hand size.${T}: Add {1} to your mana pool.| +Reliquary Tower|Friday Night Magic|153|U||Land|||You have no maximum hand size.${T}: Add {C} to your mana pool.| Farseek|Friday Night Magic|154|U|{1}{G}|Sorcery|||Search your library for a Plains, Island, Swamp, or Mountain card and put it onto the battlefield tapped. Then shuffle your library.| call of the Conclave|Friday Night Magic|155|U|{W}{G}|Sorcery|||Put a 3/3 green Centaur creature token onto the battlefield.| Judge's Familiar|Friday Night Magic|156|U|{WU}|Creature - Bird|1|1|Flying$Sacrifice Judge's Familiar: Counter target instant or sorcery spell unless its controller pays {1}.| @@ -5874,7 +5874,7 @@ Sin COllector|Friday Night Magic|163|U|{1}{W}{B}|Creature - Human Cleric|2|1|Whe Warleader's Helix|Friday Night Magic|164|U|{2}{W}{R}|Instant|||Warleader's Helix deals 4 damage to target creature or player and you gain 4 life.| Elvish Mystic|Friday Night Magic|165|U|{G}|Creature - Elf Druid|1|1|{T}: Add {G} to your mana pool.| Banisher Priest|Friday Night Magic|166|U|{1}{W}{W}Creature - Human Cleric||2|2|When Banisher Priest enters the battlefield, exile target creature an opponent controls until Banisher Priest leaves the battlefield. (That creature returns under its owner's control.)| -Encroaching Wastes|Friday Night Magic|167|U||Land|||{T}: Add {1} to your mana pool.${4}, {T}, Sacrifice Encroaching Wastes: Destroy target nonbasic land.| +Encroaching Wastes|Friday Night Magic|167|U||Land|||{T}: Add {C} to your mana pool.${4}, {T}, Sacrifice Encroaching Wastes: Destroy target nonbasic land.| Tormented Hero|Friday Night Magic|168|U|{B}|Creature - Human Warrior|2|1|Tormented Hero enters the battlefield tapped.$Heroic Whenever you cast a spell that targets Tormented Hero, each opponent loses 1 life. You gain life equal to the life lost this way.| Dissolve|Friday Night Magic|169|U|{1}{U}{U}|Instant|||Counter target spell. Scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)| Magma Spray|Friday Night Magic|170|U|{R}|Instant|||Magma Spray deals 2 damage to target creature. If that creature would die this turn, exile it instead.| @@ -5916,7 +5916,7 @@ Emblem of the Warmind|Future Sight|112|U|{1}{R}|Enchantment - Aura|||Enchant cre Flowstone Embrace|Future Sight|113|C|{1}{R}|Enchantment - Aura|||Enchant creature${tap}: Enchanted creature gets +2/-2 until end of turn.| Fomori Nomad|Future Sight|114|C|{4}{R}|Creature - Nomad Giant|4|4|| Ghostfire|Future Sight|115|C|{2}{R}|Instant|||Ghostfire is colorless.$Ghostfire deals 3 damage to target creature or player.| -Grinning Ignus|Future Sight|116|C|{2}{R}|Creature - Elemental|2|2|{R}, Return Grinning Ignus to its owner's hand: Add {2}{R} to your mana pool. Activate this ability only any time you could cast a sorcery.| +Grinning Ignus|Future Sight|116|C|{2}{R}|Creature - Elemental|2|2|{R}, Return Grinning Ignus to its owner's hand: Add {C}{C}{R} to your mana pool. Activate this ability only any time you could cast a sorcery.| Henchfiend of Ukor|Future Sight|117|C|{3}{R}|Creature - Ogre|3|2|Haste$Echo {1}{B} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice this permanent unless you pay its echo cost.)${BR}: Henchfiend of Ukor gets +1/+0 until end of turn.| Homing Sliver|Future Sight|118|C|{2}{R}|Creature - Sliver|2|2|Each Sliver card in each player's hand has slivercycling {3}.$Slivercycling {3} ({3}, Discard this card: Search your library for a Sliver card, reveal it, and put it into your hand. Then shuffle your library.)| Shah of Naar Isle|Future Sight|119|R|{3}{R}|Creature - Efreet|6|6|Trample$Echo {0} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.)$When Shah of Naar Isle's echo cost is paid, each opponent may draw up to three cards.| @@ -5981,13 +5981,13 @@ Llanowar Reborn|Future Sight|171|U||Land|||Llanowar Reborn enters the battlefiel New Benalia|Future Sight|172|U||Land|||New Benalia enters the battlefield tapped.$When New Benalia enters the battlefield, scry 1. (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.)${tap}: Add {W} to your mana pool.| Tolaria West|Future Sight|173|U||Land|||Tolaria West enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Transmute {1}{U}{U} ({1}{U}{U}, Discard this card: Search your library for a card with converted mana cost 0, reveal it, and put it into your hand. Then shuffle your library. Transmute only as a sorcery.)| Dryad Arbor|Future Sight|174|U||Land Creature - Forest Dryad|1|1|(Dryad Arbor isn't a spell, it's affected by summoning sickness, and it has "{tap}: Add {G} to your mana pool.")| -Graven Cairns|Future Sight|175|R||Land|||{tap}: Add {1} to your mana pool.${BR}, {tap}: Add {B}{B}, {B}{R}, or {R}{R} to your mana pool.| -Grove of the Burnwillows|Future Sight|176|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Each opponent gains 1 life.| +Graven Cairns|Future Sight|175|R||Land|||{tap}: Add {C} to your mana pool.${BR}, {tap}: Add {B}{B}, {B}{R}, or {R}{R} to your mana pool.| +Grove of the Burnwillows|Future Sight|176|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Each opponent gains 1 life.| Horizon Canopy|Future Sight|177|R||Land|||{tap}, Pay 1 life: Add {G} or {W} to your mana pool.${1}, {tap}, Sacrifice Horizon Canopy: Draw a card.| -Nimbus Maze|Future Sight|178|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} to your mana pool. Activate this ability only if you control an Island.${tap}: Add {U} to your mana pool. Activate this ability only if you control a Plains.| +Nimbus Maze|Future Sight|178|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} to your mana pool. Activate this ability only if you control an Island.${tap}: Add {U} to your mana pool. Activate this ability only if you control a Plains.| River of Tears|Future Sight|179|R||Land|||{tap}: Add {U} to your mana pool. If you played a land this turn, add {B} to your mana pool instead.| Aven Mindcensor|Future Sight|18|U|{2}{W}|Creature - Bird Wizard|2|1|Flash (You may cast this spell any time you could cast an instant.)$Flying$If an opponent would search a library, that player searches the top four cards of that library instead.| -Zoetic Cavern|Future Sight|180|U||Land|||{tap}: Add {1} 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.)| +Zoetic Cavern|Future Sight|180|U||Land|||{tap}: 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.)| Blade of the Sixth Pride|Future Sight|19|C|{1}{W}|Creature - Cat Rebel|3|1|| Augur il-Vec|Future Sight|2|C|{1}{W}|Creature - Human Cleric|1|3|Shadow (This creature can block or be blocked by only creatures with shadow.)$Sacrifice Augur il-Vec: You gain 4 life. Activate this ability only during your upkeep.| Bound in Silence|Future Sight|20|U|{2}{W}|Tribal Enchantment - Rebel Aura|||Enchant creature$Enchanted creature can't attack or block.| @@ -6093,7 +6093,7 @@ Elite Inquisitor|Game Day|13|R|{W}{W}|Creature Human Soldier|2|2|First strike$ Zombie Apocalypse|Game Day|14|R|{3}{B}{B}{B}|Sorcery|||Return all Zombie creature cards from your graveyard to the battlefield tapped, then destroy all Humans.| Strangleroot Geist|Game Day|15|U|{G}{G}|Creature Spirit|2|1|Haste$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.)| Suture Priest|Game Day|16|C|{1}{W}|Creature Cleric|1|1|Whenever another creature enters the battlefield under your control, you may gain 1 life.$Whenever a creature enters the battlefield under an opponent's control, you may have that player lose 1 life.| -Pristine Talisman|Game Day|17|C|{3}|Artifact|||{T}: Add {1} to your mana pool. You gain 1 life.| +Pristine Talisman|Game Day|17|C|{3}|Artifact|||{T}: Add {C} to your mana pool. You gain 1 life.| Latch Seeker|Game Day|18|U|{1}{U}{U}|Creature Spirit|3|1|Latch Seeker can't be blocked.| Killing Wave|Game Day|19|R|{X}{B}|Sorcery|||For each creature, its controller sacrifices it unless he or she pays X life.| Magmaquake|Game Day|20|R|{X}{R}{R}|Instant|||Magmaquake deals X damage to each creature without flying and each planeswalker.| @@ -6290,7 +6290,7 @@ Orzhov Guildgate|Gatecrash|244|C||Land - Gate|||Orzhov Guildgate enters the batt Sacred Foundry|Gatecrash|245|R||Land - Mountain Plains|||({tap}: Add {R} or {W} to your mana pool.)$As Sacred Foundry enters the battlefield, you may pay 2 life. If you don't, Sacred Foundry enters the battlefield tapped.| Simic Guildgate|Gatecrash|246|C||Land - Gate|||Simic Guildgate enters the battlefield tapped.${tap}: Add {G} or {U} to your mana pool.| Stomping Ground|Gatecrash|247|R||Land - Mountain Forest|||({tap}: Add {R} or {G} to your mana pool.)$As Stomping Ground enters the battlefield, you may pay 2 life. If you don't, Stomping Ground enters the battlefield tapped.| -Thespian's Stage|Gatecrash|248|R||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: Thespian's Stage becomes a copy of target land and gains this ability.| +Thespian's Stage|Gatecrash|248|R||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: Thespian's Stage becomes a copy of target land and gains this ability.| Watery Grave|Gatecrash|249|R||Land - Island Swamp|||({tap}: Add {U} or {B} to your mana pool.)$As Watery Grave enters the battlefield, you may pay 2 life. If you don't, Watery Grave enters the battlefield tapped.| Smite|Gatecrash|25|C|{W}|Instant|||Destroy target blocked creature.| Syndic of Tithes|Gatecrash|26|C|{1}{W}|Creature - Human Cleric|2|2|Extort (Whenever you cast a spell, you may pay {WB}. If you do, each opponent loses 1 life and you gain that much life.)| @@ -6453,10 +6453,10 @@ Godless Shrine|Guildpact|157|R||Land - Plains Swamp|||({tap}: Add {W} or {B} Gruul Turf|Guildpact|158|C||Land|||Gruul Turf enters the battlefield tapped.$When Gruul Turf enters the battlefield, return a land you control to its owner's hand.${tap}: Add {R}{G} to your mana pool.| Izzet Boilerworks|Guildpact|159|C||Land|||Izzet Boilerworks enters the battlefield tapped.$When Izzet Boilerworks enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{R} to your mana pool.| Sinstriker's Will|Guildpact|16|U|{3}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature has "{tap}: This creature deals damage equal to its power to target attacking or blocking creature."| -Nivix, Aerie of the Firemind|Guildpact|160|U||Land|||{tap}: Add {1} to your mana pool.${2}{U}{R}, {tap}: Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery.| +Nivix, Aerie of the Firemind|Guildpact|160|U||Land|||{tap}: Add {C} to your mana pool.${2}{U}{R}, {tap}: Exile the top card of your library. Until your next turn, you may cast that card if it's an instant or sorcery.| Orzhov Basilica|Guildpact|161|C||Land|||Orzhov Basilica enters the battlefield tapped.$When Orzhov Basilica enters the battlefield, return a land you control to its owner's hand.${tap}: Add {W}{B} to your mana pool.| -Orzhova, the Church of Deals|Guildpact|162|U||Land|||{tap}: Add {1} to your mana pool.${3}{W}{B}, {tap}: Target player loses 1 life and you gain 1 life.| -Skarrg, the Rage Pits|Guildpact|163|U||Land|||{tap}: Add {1} to your mana pool.${R}{G}, {tap}: Target creature gets +1/+1 and gains trample until end of turn.| +Orzhova, the Church of Deals|Guildpact|162|U||Land|||{tap}: Add {C} to your mana pool.${3}{W}{B}, {tap}: Target player loses 1 life and you gain 1 life.| +Skarrg, the Rage Pits|Guildpact|163|U||Land|||{tap}: Add {C} to your mana pool.${R}{G}, {tap}: Target creature gets +1/+1 and gains trample until end of turn.| Steam Vents|Guildpact|164|R||Land - Island Mountain|||({tap}: Add {U} or {R} to your mana pool.)$As Steam Vents enters the battlefield, you may pay 2 life. If you don't, Steam Vents enters the battlefield tapped.| Stomping Ground|Guildpact|165|R||Land - Mountain Forest|||({tap}: Add {R} or {G} to your mana pool.)$As Stomping Ground enters the battlefield, you may pay 2 life. If you don't, Stomping Ground enters the battlefield tapped.| Skyrider Trainee|Guildpact|17|C|{4}{W}|Creature - Human Soldier|3|3|Skyrider Trainee has flying as long as it's enchanted.| @@ -6685,16 +6685,16 @@ Feroz's Ban|Homelands|132|R|{6}|Artifact|||Creature spells cost {2} more to cast Joven's Tools|Homelands|133|U|{6}|Artifact|||{4}, {tap}: Target creature can't be blocked this turn except by Walls.| Roterothopter|Homelands|134|C|{1}|Artifact Creature - Thopter|0|2|Flying${2}: Roterothopter gets +1/+0 until end of turn. Activate this ability no more than twice each turn.| Serrated Arrows|Homelands|135|C|{4}|Artifact|||Serrated Arrows enters the battlefield with three arrowhead counters on it.$At the beginning of your upkeep, if there are no arrowhead counters on Serrated Arrows, sacrifice it.${tap}, Remove an arrowhead counter from Serrated Arrows: Put a -1/-1 counter on target creature.| -An-Havva Township|Homelands|136|U||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add {G} to your mana pool.$${2}, {tap}: Add {R} or {W} to your mana pool.| -Aysen Abbey|Homelands|137|U||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add {W} to your mana pool.$${2}, {tap}: Add {G} or {U} to your mana pool.| -Castle Sengir|Homelands|138|U||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add {B} to your mana pool.$${2}, {tap}: Add {U} or {R} to your mana pool.| -Koskun Keep|Homelands|139|U||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add {R} to your mana pool.$${2}, {tap}: Add {B} or {G} to your mana pool.| -Wizards' School|Homelands|140|U||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add {U} to your mana pool.$${2}, {tap}: Add {W} or {B} to your mana pool.| +An-Havva Township|Homelands|136|U||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add {G} to your mana pool.$${2}, {tap}: Add {R} or {W} to your mana pool.| +Aysen Abbey|Homelands|137|U||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add {W} to your mana pool.$${2}, {tap}: Add {G} or {U} to your mana pool.| +Castle Sengir|Homelands|138|U||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add {B} to your mana pool.$${2}, {tap}: Add {U} or {R} to your mana pool.| +Koskun Keep|Homelands|139|U||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add {R} to your mana pool.$${2}, {tap}: Add {B} or {G} to your mana pool.| +Wizards' School|Homelands|140|U||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add {U} to your mana pool.$${2}, {tap}: Add {W} or {B} to your mana pool.| Abyssal Specter|Ice Age|1|U|{2}{B}{B}|Creature - Specter|2|3|Flying$Whenever Abyssal Specter deals damage to a player, that player discards a card.| Dread Wight|Ice Age|10|R|{3}{B}{B}|Creature - Zombie|3|4|At end of combat, put a paralyzation counter on each creature blocking or blocked by Dread Wight and tap those creatures. Each of those creatures doesn't untap during its controller's untap step for as long as it has a paralyzation counter on it. Each of those creatures gains "{4}: Remove a paralyzation counter from this creature."| Snow Devil|Ice Age|100|C|{1}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature has flying.$Enchanted creature has first strike as long as it's blocking and you control a snow land.| Snowfall|Ice Age|101|C|{2}{U}|Enchantment|||Cumulative upkeep {U} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)$Whenever an Island is tapped for mana, its controller may add {U} to his or her mana pool (in addition to the mana the land produces). If that Island is snow, its controller may add {U}{U} to his or her mana pool instead. Spend this mana only to pay cumulative upkeep costs.| -Soldevi Machinist|Ice Age|102|U|{1}{U}|Creature - Human Wizard Artificer|1|1|{tap}: Add {2} to your mana pool. Spend this mana only to activate abilities of artifacts.| +Soldevi Machinist|Ice Age|102|U|{1}{U}|Creature - Human Wizard Artificer|1|1|{tap}: Add {C}{C} to your mana pool. Spend this mana only to activate abilities of artifacts.| Soul Barrier|Ice Age|103|U|{2}{U}|Enchantment|||Whenever an opponent casts a creature spell, Soul Barrier deals 2 damage to that player unless he or she pays {2}.| Thunder Wall|Ice Age|104|U|{1}{U}{U}|Creature - Wall|0|2|Defender (This creature can't attack.)$Flying${U}: Thunder Wall gets +1/+1 until end of turn.| Updraft|Ice Age|105|U|{1}{U}|Instant|||Target creature gains flying until end of turn.$$Draw a card at the beginning of the next turn's upkeep.| @@ -6936,8 +6936,8 @@ Wall of Shields|Ice Age|322|U|{3}|Artifact Creature - Wall|0|4|Defender (This War Chariot|Ice Age|323|U|{3}|Artifact|||{3}, {tap}: Target creature gains trample until end of turn.| Whalebone Glider|Ice Age|324|U|{2}|Artifact|||{2}, {tap}: Target creature with power 3 or less gains flying until end of turn.| Zuran Orb|Ice Age|325|U|{0}|Artifact|||Sacrifice a land: You gain 2 life.| -Adarkar Wastes|Ice Age|326|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| -Brushland|Ice Age|327|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| +Adarkar Wastes|Ice Age|326|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| +Brushland|Ice Age|327|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| Forest|Ice Age|328|L||Basic Land - Forest|||G| Forest|Ice Age|329|L||Basic Land - Forest|||G| Forest|Ice Age|330|L||Basic Land - Forest|||G| @@ -6948,7 +6948,7 @@ Ice Floe|Ice Age|333|U||Land|||You may choose not to untap Ice Floe during your Island|Ice Age|334|L||Basic Land - Island|||U| Island|Ice Age|335|L||Basic Land - Island|||U| Island|Ice Age|336|L||Basic Land - Island|||U| -Karplusan Forest|Ice Age|337|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| +Karplusan Forest|Ice Age|337|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| Lava Tubes|Ice Age|339|R||Land|||Lava Tubes doesn't untap during your untap step if it has a depletion counter on it.$At the beginning of your upkeep, remove a depletion counter from Lava Tubes.${tap}: Add {B} or {R} to your mana pool. Put a depletion counter on Lava Tubes.| Lim-Dul's Hex|Ice Age|34|U|{1}{B}|Enchantment|||At the beginning of your upkeep, for each player, Lim-Dûl's Hex deals 1 damage to that player unless he or she pays {B} or {3}.| Mountain|Ice Age|340|L||Basic Land - Mountain|||R| @@ -6967,9 +6967,9 @@ Snow-Covered Swamp|Ice Age|351|L||Basic Snow Land - Swamp|||B| Swamp|Ice Age|353|L||Basic Land - Swamp|||B| Swamp|Ice Age|354|L||Basic Land - Swamp|||B| Swamp|Ice Age|355|L||Basic Land - Swamp|||B| -Sulfurous Springs|Ice Age|352|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| +Sulfurous Springs|Ice Age|352|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| Timberline Ridge|Ice Age|356|R||Land|||Timberline Ridge doesn't untap during your untap step if it has a depletion counter on it.$At the beginning of your upkeep, remove a depletion counter from Timberline Ridge.${tap}: Add {R} or {G} to your mana pool. Put a depletion counter on Timberline Ridge.| -Underground River|Ice Age|357|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| +Underground River|Ice Age|357|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| Veldt|Ice Age|358|R||Land|||Veldt doesn't untap during your untap step if it has a depletion counter on it.$At the beginning of your upkeep, remove a depletion counter from Veldt.${tap}: Add {G} or {W} to your mana pool. Put a depletion counter on Veldt.| Altar of Bone|Ice Age|359|R|{G}{W}|Sorcery|||As an additional cost to cast Altar of Bone, sacrifice a creature.$Search your library for a creature card, reveal that card, and put it into your hand. Then shuffle your library.| Centaur Archer|Ice Age|360|U|{1}{R}{G}|Creature - Centaur Archer|3|2|{tap}: Centaur Archer deals 1 damage to target creature with flying.| @@ -7014,7 +7014,7 @@ Songs of the Damned|Ice Age|48|C|{B}|Instant|||Add {B} to your mana pool for eac Soul Burn|Ice Age|49|C|{X}{2}{B}|Sorcery|||Spend only black and/or red mana on X.$Soul Burn deals X damage to target creature or player. You gain life equal to the damage dealt, but not more than the amount of {B} spent on X, the player's life total before Soul Burn dealt damage, or the creature's toughness.| Cloak of Confusion|Ice Age|5|C|{1}{B}|Enchantment - Aura|||Enchant creature you control$Whenever enchanted creature attacks and isn't blocked, you may have it assign no combat damage this turn. If you do, defending player discards a card at random.| Soul Kiss|Ice Age|50|C|{2}{B}|Enchantment - Aura|||Enchant creature${B}, Pay 1 life: Enchanted creature gets +2/+2 until end of turn. Activate this ability no more than three times each turn.| -Spoils of Evil|Ice Age|51|R|{2}{B}|Instant|||For each artifact or creature card in target opponent's graveyard, add {1} to your mana pool and you gain 1 life.| +Spoils of Evil|Ice Age|51|R|{2}{B}|Instant|||For each artifact or creature card in target opponent's graveyard, add {C} to your mana pool and you gain 1 life.| Spoils of War|Ice Age|52|R|{X}{B}|Sorcery|||X is the number of artifact and/or creature cards in an opponent's graveyard as you cast Spoils of War.$Distribute X +1/+1 counters among any number of target creatures.| Stench of Evil|Ice Age|53|U|{2}{B}{B}|Sorcery|||Destroy all Plains. For each land destroyed this way, Stench of Evil deals 1 damage to that land's controller unless he or she pays {2}.| Stromgald Cabal|Ice Age|54|R|{1}{B}{B}|Creature - Human Knight|2|2|{tap}, Pay 1 life: Counter target white spell.| @@ -7039,7 +7039,7 @@ Dark Banishing|Ice Age|7|C|{2}{B}|Instant|||Destroy target nonblack creature. It Force Void|Ice Age|70|U|{2}{U}|Instant|||Counter target spell unless its controller pays {1}.$$Draw a card at the beginning of the next turn's upkeep.| Glacial Wall|Ice Age|71|U|{2}{U}|Creature - Wall|0|7|Defender (This creature can't attack.)| Hydroblast|Ice Age|72|C|{U}|Instant|||Choose one - Counter target spell if it's red; or destroy target permanent if it's red.| -Iceberg|Ice Age|73|U|{X}{U}{U}|Enchantment|||Iceberg enters the battlefield with X ice counters on it.${3}: Put an ice counter on Iceberg.$Remove an ice counter from Iceberg: Add {1} to your mana pool.| +Iceberg|Ice Age|73|U|{X}{U}{U}|Enchantment|||Iceberg enters the battlefield with X ice counters on it.${3}: Put an ice counter on Iceberg.$Remove an ice counter from Iceberg: Add {C} to your mana pool.| Icy Prison|Ice Age|74|R|{U}{U}|Enchantment|||When Icy Prison enters the battlefield, exile target creature.$At the beginning of your upkeep, sacrifice Icy Prison unless any player pays {3}.$When Icy Prison leaves the battlefield, return the exiled card to the battlefield under its owner's control.| Illusionary Forces|Ice Age|75|C|{3}{U}|Creature - Illusion|4|4|Flying$Cumulative upkeep {U} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)| Illusionary Presence|Ice Age|76|R|{1}{U}{U}|Creature - Illusion|2|2|Cumulative upkeep {U} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)$At the beginning of your upkeep, choose a land type. Illusionary Presence gains landwalk of the chosen type until end of turn.| @@ -7242,16 +7242,16 @@ Trepanation Blade|Innistrad|235|U|{3}|Artifact - Equipment|||Whenever equipped c Witchbane Orb|Innistrad|236|R|{4}|Artifact|||When Witchbane Orb enters the battlefield, destroy all Curses attached to you.$You have hexproof. (You can't be the target of spells or abilities your opponents control, including Aura spells.)| Wooden Stake|Innistrad|237|C|{2}|Artifact - Equipment|||Equipped creature gets +1/+0.$Whenever equipped creature blocks or becomes blocked by a Vampire, destroy that creature. It can't be regenerated.$Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.)| Clifftop Retreat|Innistrad|238|R||Land|||Clifftop Retreat enters the battlefield tapped unless you control a Mountain or a Plains.${tap}: Add {R} or {W} to your mana pool.| -Gavony Township|Innistrad|239|R||Land|||{tap}: Add {1} to your mana pool.${2}{G}{W}, {tap}: Put a +1/+1 counter on each creature you control.| +Gavony Township|Innistrad|239|R||Land|||{tap}: Add {C} to your mana pool.${2}{G}{W}, {tap}: Put a +1/+1 counter on each creature you control.| Moment of Heroism|Innistrad|24|C|{1}{W}|Instant|||Target creature gets +2/+2 and gains lifelink until end of turn. (Damage dealt by the creature also causes its controller to gain that much life.)| -Ghost Quarter|Innistrad|240|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| +Ghost Quarter|Innistrad|240|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| Hinterland Harbor|Innistrad|241|R||Land|||Hinterland Harbor enters the battlefield tapped unless you control a Forest or an Island.${tap}: Add {G} or {U} to your mana pool.| Isolated Chapel|Innistrad|242|R||Land|||Isolated Chapel enters the battlefield tapped unless you control a Plains or a Swamp.${tap}: Add {W} or {B} to your mana pool.| -Kessig Wolf Run|Innistrad|243|R||Land|||{tap}: Add {1} to your mana pool.${X}{R}{G}, {tap}: Target creature gets +X/+0 and gains trample until end of turn.| -Moorland Haunt|Innistrad|244|R||Land|||{tap}: Add {1} to your mana pool.${W}{U}, {tap}, Exile a creature card from your graveyard: Put a 1/1 white Spirit creature token with flying onto the battlefield.| -Nephalia Drownyard|Innistrad|245|R||Land|||{tap}: Add {1} to your mana pool.${1}{U}{B}, {tap}: Target player puts the top three cards of his or her library into his or her graveyard.| -Shimmering Grotto|Innistrad|246|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| -Stensia Bloodhall|Innistrad|247|R||Land|||{tap}: Add {1} to your mana pool.${3}{B}{R}, {tap}: Stensia Bloodhall deals 2 damage to target player.| +Kessig Wolf Run|Innistrad|243|R||Land|||{tap}: Add {C} to your mana pool.${X}{R}{G}, {tap}: Target creature gets +X/+0 and gains trample until end of turn.| +Moorland Haunt|Innistrad|244|R||Land|||{tap}: Add {C} to your mana pool.${W}{U}, {tap}, Exile a creature card from your graveyard: Put a 1/1 white Spirit creature token with flying onto the battlefield.| +Nephalia Drownyard|Innistrad|245|R||Land|||{tap}: Add {C} to your mana pool.${1}{U}{B}, {tap}: Target player puts the top three cards of his or her library into his or her graveyard.| +Shimmering Grotto|Innistrad|246|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| +Stensia Bloodhall|Innistrad|247|R||Land|||{tap}: Add {C} to your mana pool.${3}{B}{R}, {tap}: Stensia Bloodhall deals 2 damage to target player.| Sulfur Falls|Innistrad|248|R||Land|||Sulfur Falls enters the battlefield tapped unless you control an Island or a Mountain.${tap}: Add {U} or {R} to your mana pool.| Woodland Cemetery|Innistrad|249|R||Land|||Woodland Cemetery enters the battlefield tapped unless you control a Swamp or a Forest.${tap}: Add {B} or {G} to your mana pool.| Nevermore|Innistrad|25|R|{1}{W}{W}|Enchantment|||As Nevermore enters the battlefield, name a nonland card.$The named card can't be cast.| @@ -7302,7 +7302,7 @@ Bonds of Faith|Innistrad|5|C|{1}{W}|Enchantment - Aura|||Enchant creature$Enchan Curse of the Bloody Tome|Innistrad|50|C|{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.| Delver of Secrets|Innistrad|51a|C|{U}|Creature - Human Wizard|1|1|At the beginning of your upkeep, look at the top card of your library. You may reveal that card. If an instant or sorcery card is revealed this way, transform Delver of Secrets.| Insectile Aberration|Innistrad|51b|C||Creature - Human Insect|3|2|Flying| -Deranged Assistant|Innistrad|52|C|{1}{U}|Creature - Human Wizard|1|1|{tap}, Put the top card of your library into your graveyard: Add {1} to your mana pool.| +Deranged Assistant|Innistrad|52|C|{1}{U}|Creature - Human Wizard|1|1|{tap}, Put the top card of your library into your graveyard: Add {C} to your mana pool.| Dissipate|Innistrad|53|U|{1}{U}{U}|Instant|||Counter target spell. If that spell is countered this way, exile it instead of putting it into its owner's graveyard.| Dream Twist|Innistrad|54|C|{U}|Instant|||Target player puts the top three cards of his or her library into his or her graveyard.$Flashback {1}{U} (You may cast this card from your graveyard for its flashback cost. Then exile it.)| Forbidden Alchemy|Innistrad|55|C|{2}{U}|Instant|||Look at the top four cards of your library. Put one of them into your hand and the rest into your graveyard.$Flashback {6}{B} (You may cast this card from your graveyard for its flashback cost. Then exile it.)| @@ -7618,12 +7618,12 @@ Tsabo's Web|Invasion|317|R|{2}|Artifact|||When Tsabo's Web enters the battlefiel Urza's Filter|Invasion|318|R|{4}|Artifact|||Multicolored spells cost up to {2} less to cast.| Ancient Spring|Invasion|319|C||Land|||Ancient Spring enters the battlefield tapped.${tap}: Add {U} to your mana pool.${tap}, Sacrifice Ancient Spring: Add {W}{B} to your mana pool.| Rewards of Diversity|Invasion|32|U|{2}{W}|Enchantment|||Whenever an opponent casts a multicolored spell, you gain 4 life.| -Archaeological Dig|Invasion|320|U||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Archaeological Dig: Add one mana of any color to your mana pool.| +Archaeological Dig|Invasion|320|U||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Archaeological Dig: Add one mana of any color to your mana pool.| Coastal Tower|Invasion|321|U||Land|||Coastal Tower enters the battlefield tapped.${tap}: Add {W} or {U} to your mana pool.| Elfhame Palace|Invasion|322|U||Land|||Elfhame Palace enters the battlefield tapped.${tap}: Add {G} or {W} to your mana pool.| Geothermal Crevice|Invasion|323|C||Land|||Geothermal Crevice enters the battlefield tapped.${tap}: Add {R} to your mana pool.${tap}, Sacrifice Geothermal Crevice: Add {B}{G} to your mana pool.| Irrigation Ditch|Invasion|324|C||Land|||Irrigation Ditch enters the battlefield tapped.${tap}: Add {W} to your mana pool.${tap}, Sacrifice Irrigation Ditch: Add {G}{U} to your mana pool.| -Keldon Necropolis|Invasion|325|R||Legendary Land|||{tap}: Add {1} to your mana pool.$${4}{R}, {tap}, Sacrifice a creature: Keldon Necropolis deals 2 damage to target creature or player.| +Keldon Necropolis|Invasion|325|R||Legendary Land|||{tap}: Add {C} to your mana pool.$${4}{R}, {tap}, Sacrifice a creature: Keldon Necropolis deals 2 damage to target creature or player.| Salt Marsh|Invasion|326|U||Land|||Salt Marsh enters the battlefield tapped.${tap}: Add {U} or {B} to your mana pool.| Shivan Oasis|Invasion|327|U||Land|||Shivan Oasis enters the battlefield tapped.${tap}: Add {R} or {G} to your mana pool.| Sulfur Vent|Invasion|328|C||Land|||Sulfur Vent enters the battlefield tapped.${tap}: Add {B} to your mana pool.${tap}, Sacrifice Sulfur Vent: Add {U}{R} to your mana pool.| @@ -7743,8 +7743,8 @@ Deranged Hermit|Judge Promo|18|R|{3}{G}{G}|Creature Elf|1|1|Echo {3}{G}{G} Hermit Druid|Judge Promo|19|R|{1}{G}|Creature Human Druid|1|1|{G}, {T}: Reveal cards from the top of your library until you reveal a basic land card. Put that card into your hand and all other cards revealed this way into your graveyard.| Gemstone Mine|Judge Promo|20|U||Land|||Gemstone Mine enters the battlefield with three mining counters on it.${T}, Remove a mining counter from Gemstone Mine: Add one mana of any color to your mana pool. If there are no mining counters on Gemstone Mine, sacrifice it.| Regrowth|Judge Promo|21|U|{1}{G}|Sorcery|||Return target card from your graveyard to your hand.| -Sol Ring|Judge Promo|22|U|{1}|Artifact||{T}: Add {2} to your mana pool.| -Mishra's Factory|Judge Promo|23|U||Land|||{T}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${T}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Sol Ring|Judge Promo|22|U|{1}|Artifact||{T}: Add {C}{C} to your mana pool.| +Mishra's Factory|Judge Promo|23|U||Land|||{T}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${T}: Target Assembly-Worker creature gets +1/+1 until end of turn.| Exalted Angel|Judge Promo|24|R|{4}{W}{W}|Creature Angel|4|5|Flying$Whenever Exalted Angel deals damage, you gain that much life.$Morph {2}{W}{W} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| Grim Lavamancer|Judge Promo|25|R|{R}|Creature Human Wizard|1|1|{R}, {T}, Exile two cards from your graveyard: Grim Lavamancer deals 2 damage to target creature or player.| Meddling Mage|Judge Promo|26|R|{W}{U}|Creature Human Wizard|2|2|As Meddling Mage enters the battlefield, name a nonland card.$The named card can't be cast.| @@ -7776,12 +7776,12 @@ Thawing Glaciers|Judge Promo|51|R||Land|||Thawing Glaciers enters the battlefiel Land Tax|Judge Promo|52|R|{W}|Enchantment|||At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library.| Morphling|Judge Promo|53|R|{3}{U}{U}|Creature Shapeshifter|3|3|{U}: Untap Morphling.${U}: Morphling gains flying until end of turn.${U}: Morphling gains shroud until end of turn. (It can't be the target of spells or abilities.)${1}: Morphling gets +1/-1 until end of turn.${1}: Morphling gets -1/+1 until end of turn.| Wheel of Fortune|Judge Promo|54|R|{2}{R}|Sorcery|||Each player discards his or her hand, then draws seven cards.| -Wasteland|Judge Promo|55|U||Land|||{T}: Add {1} to your mana pool.${T}, Sacrifice Wasteland: Destroy target nonbasic land.| +Wasteland|Judge Promo|55|U||Land|||{T}: Add {C} to your mana pool.${T}, Sacrifice Wasteland: Destroy target nonbasic land.| Entomb|Judge Promo|56|R|{B}|Instant|||Search your library for a card and put that card into your graveyard. Then shuffle your library.| Sword of Fire and Ice|Judge Promo|57|R|{3}|Artifact Equipment|||Equipped creature gets +2/+2 and has protection from red and from blue.$Whenever equipped creature deals combat damage to a player, Sword of Fire and Ice deals 2 damage to target creature or player and you draw a card.$Equip {2}| Vendilion Clique|Judge Promo|58|R|{1}{U}{U}|Legendary Creature Faerie Wizard|3|1|Flash$Flying$When Vendilion Clique enters the battlefield, look at target player's hand. You may choose a nonland card from it. If you do, that player reveals the chosen card, puts it on the bottom of his or her library, then draws a card.| Bitterblossom|Judge Promo|59|R|{1}{B}|Tribal Enchantment Faerie||At the beginning of your upkeep, you lose 1 life and put a 1/1 black Faerie Rogue creature token with flying onto the battlefield.| -Mana Crypt|Judge Promo|60|R|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${T}: Add {2} to your mana pool.| +Mana Crypt|Judge Promo|60|R|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${T}: Add {C}{C} to your mana pool.| Dark Confidant|Judge Promo|61|R|{1}{B}|Creature Human Wizard|2|1|At the beginning of your upkeep, reveal the top card of your library and put that card into your hand. You lose life equal to its converted mana cost.| Doubling Season|Judge Promo|62|R|{4}{G}|Enchantment|||If an effect would put one or more tokens onto the battlefield under your control, it puts twice that many of those tokens onto the battlefield instead.$If an effect would place one or more counters on a permanent you control, it places twice that many of those counters on that permanent instead.| Goblin Welder|Judge Promo|63|R|{R}|Creature Goblin Artificer|1|1|{T}: Choose target artifact a player controls and target artifact card in that player's graveyard. If both targets are still legal as this ability resolves, that player simultaneously sacrifices the artifact and returns the artifact card to the battlefield.| @@ -7817,12 +7817,12 @@ Mountain|Judge Promo|92|L||Land|||({T}: Add {R} to your mana pool.)| Forest|Judge Promo|93|L||Land|||({T}: Add {G} to your mana pool.)| Temporal Manipulation|94|R|{3}{U}{U}|Sorcery|||Take an extra turn after this one.| Shardless Agent|Judge Promo|95|U|{1}{G}{U}|Artifact Creature - Human Rogue|2|2|Cascade (When you cast this spell, exile cards from the top of your library until you exile a nonland card that costs less. You may cast it without paying its mana cost. Put the exiled cards on the bottom in a random order.)| -Rishadan Port|Judge Promo|96|R||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Tap target land.| +Rishadan Port|Judge Promo|96|R||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Tap target land.| Ravages of War|Judge Promo|97|R|{3}{W}|Sorcery|||Destroy all lands.| Damnation|Judge Promo|98|R|{2}{B}{B}|Sorcery|||Destroy all creatures. They can't be regenerated.| Dualcaster Mage|Judge Promo|99|R|{1}{R}{R}|Creature - Human Wizard|2|2|Flash$When Dualcaster Mage enters the battlefield, copy target instant or sorcery spell. You may choose new targets for the copy.| Feldon of the Third Path|Judge Promo|100|M|{1}{R}{R}|Legendary Creature - Human Artificer|2|3|{2}{R}, {tap}: Put a token onto the battlefield that's a copy of target creature card in your graveyard, except it's an artifact in addition to its other types. It gains haste. Sacrifice it at the beginning of the next end step.| -Wasteland|Judge Promo|101|U||Land|||{T}: Add {1} to your mana pool.${T}, Sacrifice Wasteland: Destroy target nonbasic land.| +Wasteland|Judge Promo|101|U||Land|||{T}: Add {C} to your mana pool.${T}, Sacrifice Wasteland: Destroy target nonbasic land.| Ancestor's Chosen|Judgment|1|U|{5}{W}{W}|Creature - Human Cleric|4|4|First strike (This creature deals combat damage before creatures without first strike.)$When Ancestor's Chosen enters the battlefield, you gain 1 life for each card in your graveyard.| Funeral Pyre|Judgment|10|C|{W}|Instant|||Exile target card from a graveyard. Its owner puts a 1/1 white Spirit creature token with flying onto the battlefield.| Spellgorger Barbarian|Judgment|100|C|{3}{R}|Creature - Human Nightmare Barbarian|3|1|When Spellgorger Barbarian enters the battlefield, discard a card at random.$When Spellgorger Barbarian leaves the battlefield, draw a card.| @@ -7870,9 +7870,9 @@ Hunting Grounds|Judgment|138|R|{G}{W}|Enchantment|||Threshold - As long as seven Mirari's Wake|Judgment|139|R|{3}{G}{W}|Enchantment|||Creatures you control get +1/+1.$$Whenever you tap a land for mana, add one mana to your mana pool of any type that land produced.| Lead Astray|Judgment|14|C|{1}{W}|Instant|||Tap up to two target creatures.| Phantom Nishoba|Judgment|140|R|{5}{G}{W}|Creature - Cat Beast Spirit|0|0|Trample$Phantom Nishoba enters the battlefield with seven +1/+1 counters on it.$Whenever Phantom Nishoba deals damage, you gain that much life.$If damage would be dealt to Phantom Nishoba, prevent that damage. Remove a +1/+1 counter from Phantom Nishoba.| -Krosan Verge|Judgment|141|U||Land|||Krosan Verge enters the battlefield tapped.${tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.| -Nantuko Monastery|Judgment|142|U||Land|||{tap}: Add {1} to your mana pool.$Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard.| -Riftstone Portal|Judgment|143|U||Land|||{tap}: Add {1} to your mana pool.$$As long as Riftstone Portal is in your graveyard, lands you control have "{tap}: Add {G} or {W} to your mana pool."| +Krosan Verge|Judgment|141|U||Land|||Krosan Verge enters the battlefield tapped.${tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.| +Nantuko Monastery|Judgment|142|U||Land|||{tap}: Add {C} to your mana pool.$Threshold - {G}{W}: Nantuko Monastery becomes a 4/4 green and white Insect Monk creature with first strike until end of turn. It's still a land. Activate this ability only if seven or more cards are in your graveyard.| +Riftstone Portal|Judgment|143|U||Land|||{tap}: Add {C} to your mana pool.$$As long as Riftstone Portal is in your graveyard, lands you control have "{tap}: Add {G} or {W} to your mana pool."| Nomad Mythmaker|Judgment|15|R|{2}{W}|Creature - Human Nomad Cleric|2|2|{W}, {tap}: Put target Aura card from a graveyard onto the battlefield under your control attached to a creature you control.| Phantom Flock|Judgment|16|U|{3}{W}{W}|Creature - Bird Soldier Spirit|0|0|Flying$Phantom Flock enters the battlefield with three +1/+1 counters on it.$If damage would be dealt to Phantom Flock, prevent that damage. Remove a +1/+1 counter from Phantom Flock.| Phantom Nomad|Judgment|17|C|{1}{W}|Creature - Spirit Nomad|0|0|Phantom Nomad enters the battlefield with two +1/+1 counters on it.$If damage would be dealt to Phantom Nomad, prevent that damage. Remove a +1/+1 counter from Phantom Nomad.| @@ -8182,7 +8182,7 @@ Quagmire|Legends|29|U|{2}{B}|Enchantment|||Creatures with swampwalk can be block Ragnar|Legends|290|R|{G}{W}{U}|Legendary Creature - Human Cleric|2|2|{G}{W}{U}, {tap}: Regenerate target creature.| Ramirez DePietro|Legends|291|U|{3}{U}|Legendary Creature - Human Pirate|4|3|First strike| Ramses Overdark|Legends|292|R|{2}{U}{U}{B}{B}|Legendary Creature - Human Assassin|4|3|{tap}: Destroy target enchanted creature.| -Rasputin Dreamweaver|Legends|293|R|{4}{W}{U}|Legendary Creature - Human Wizard|4|1|Rasputin Dreamweaver enters the battlefield with seven dream counters on it.$Remove a dream counter from Rasputin: Add {1} to your mana pool.$Remove a dream counter from Rasputin: Prevent the next 1 damage that would be dealt to Rasputin this turn.$At the beginning of your upkeep, if Rasputin started the turn untapped, put a dream counter on it.$Rasputin can't have more than seven dream counters on it.| +Rasputin Dreamweaver|Legends|293|R|{4}{W}{U}|Legendary Creature - Human Wizard|4|1|Rasputin Dreamweaver enters the battlefield with seven dream counters on it.$Remove a dream counter from Rasputin: Add {C} to your mana pool.$Remove a dream counter from Rasputin: Prevent the next 1 damage that would be dealt to Rasputin this turn.$At the beginning of your upkeep, if Rasputin started the turn untapped, put a dream counter on it.$Rasputin can't have more than seven dream counters on it.| Riven Turnbull|Legends|294|U|{5}{U}{B}|Legendary Creature - Human Advisor|5|7|{tap}: Add {B} to your mana pool.| Rohgahh of Kher Keep|Legends|295|R|{2}{B}{B}{R}{R}|Legendary Creature - Kobold|5|5|At the beginning of your upkeep, you may pay {R}{R}{R}. If you don't, tap Rohgahh of Kher Keep and all creatures named Kobolds of Kher Keep, then an opponent gains control of them.$Creatures you control named Kobolds of Kher Keep get +2/+2.| Rubinia Soulsinger|Legends|296|R|{2}{G}{W}{U}|Legendary Creature - Faerie|2|3|You may choose not to untap Rubinia Soulsinger during your untap step.${tap}: Gain control of target creature for as long as you control Rubinia and Rubinia remains tapped.| @@ -8192,7 +8192,7 @@ Sol'kanar the Swamp King|Legends|299|R|{2}{U}{B}{R}|Legendary Creature - Demon|5 Blight|Legends|3|U|{B}{B}|Enchantment - Aura|||Enchant land$When enchanted land becomes tapped, destroy it.| Shimian Night Stalker|Legends|30|U|{3}{B}{B}|Creature - Nightstalker|4|4|{B}, {tap}: All damage that would be dealt to you this turn by target attacking creature is dealt to Shimian Night Stalker instead.| Stangg|Legends|300|R|{4}{R}{G}|Legendary Creature - Human Warrior|3|4|When Stangg enters the battlefield, put a legendary 3/4 red and green Human Warrior creature token named Stangg Twin onto the battlefield. When Stangg leaves the battlefield, exile that token. When that token leaves the battlefield, sacrifice Stangg.| -Sunastian Falconer|Legends|301|U|{3}{R}{G}|Legendary Creature - Human Shaman|4|4|{tap}: Add {2} to your mana pool.| +Sunastian Falconer|Legends|301|U|{3}{R}{G}|Legendary Creature - Human Shaman|4|4|{tap}: Add {C}{C} to your mana pool.| Tetsuo Umezawa|Legends|302|R|{U}{B}{R}|Legendary Creature - Human Archer|3|3|Tetsuo Umezawa can't be the target of Aura spells.${U}{B}{B}{R}, {tap}: Destroy target tapped or blocking creature.| The Lady of the Mountain|Legends|303|U|{4}{R}{G}|Legendary Creature - Giant|5|5|| Tobias Andrion|Legends|304|U|{3}{W}{U}|Legendary Creature - Human Advisor|4|4|| @@ -8566,7 +8566,7 @@ White Ward|Limited Edition Alpha|228|U|{W}|Enchantment - Aura|||Enchant creature Wrath of God|Limited Edition Alpha|229|R|{2}{W}{W}|Sorcery|||Destroy all creatures. They can't be regenerated.| Lord of the Pit|Limited Edition Alpha|23|R|{4}{B}{B}{B}|Creature - Demon|7|7|Flying, trample$At the beginning of your upkeep, sacrifice a creature other than Lord of the Pit. If you can't, Lord of the Pit deals 7 damage to you.| Ankh of Mishra|Limited Edition Alpha|230|R|{2}|Artifact|||Whenever a land enters the battlefield, Ankh of Mishra deals 2 damage to that land's controller.| -Basalt Monolith|Limited Edition Alpha|231|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {3} to your mana pool.${3}: Untap Basalt Monolith.| +Basalt Monolith|Limited Edition Alpha|231|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {C}{C}{C} to your mana pool.${3}: Untap Basalt Monolith.| Black Vise|Limited Edition Alpha|233|U|{1}|Artifact|||As Black Vise enters the battlefield, choose an opponent.$At the beginning of the chosen player's upkeep, Black Vise deals X damage to that player, where X is the number of cards in his or her hand minus 4.| Celestial Prism|Limited Edition Alpha|234|U|{3}|Artifact|||{2}, {tap}: Add one mana of any color to your mana pool.| Chaos Orb|Limited Edition Alpha|235|R|{2}|Artifact|||{1}, {tap}: If Chaos Orb is on the battlefield, flip Chaos Orb onto the battlefield from a height of at least one foot. If Chaos Orb turns over completely at least once during the flip, destroy all permanents it touches. Then destroy Chaos Orb.| @@ -8596,7 +8596,7 @@ Juggernaut|Limited Edition Alpha|255|U|{4}|Artifact Creature - Juggernaut|5|3|Ju Kormus Bell|Limited Edition Alpha|256|R|{4}|Artifact|||All Swamps are 1/1 black creatures that are still lands.| Library of Leng|Limited Edition Alpha|257|U|{1}|Artifact|||You have no maximum hand size.$If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.| Living Wall|Limited Edition Alpha|258|U|{4}|Artifact Creature - Wall|0|6|Defender (This creature can't attack.)${1}: Regenerate Living Wall.| -Mana Vault|Limited Edition Alpha|259|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Vault|Limited Edition Alpha|259|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Nettling Imp|Limited Edition Alpha|26|U|{2}{B}|Creature - Imp|1|1|{tap}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. That creature attacks this turn if able. If it doesn't, destroy it at the beginning of the next end step. Activate this ability only during an opponent's turn, before attackers are declared.| Meekstone|Limited Edition Alpha|260|R|{1}|Artifact|||Creatures with power 3 or greater don't untap during their controllers' untap steps.| Mox Emerald|Limited Edition Alpha|261|R|{0}|Artifact|||{tap}: Add {G} to your mana pool.| @@ -8607,7 +8607,7 @@ Mox Sapphire|Limited Edition Alpha|265|R|{0}|Artifact|||{tap}: Add {U} to your m Nevinyrral's Disk|Limited Edition Alpha|266|R|{4}|Artifact|||Nevinyrral's Disk enters the battlefield tapped.${1}, {tap}: Destroy all artifacts, creatures, and enchantments.| Obsianus Golem|Limited Edition Alpha|267|U|{6}|Artifact Creature - Golem|4|6|| Rod of Ruin|Limited Edition Alpha|268|U|{4}|Artifact|||{3}, {tap}: Rod of Ruin deals 1 damage to target creature or player.| -Sol Ring|Limited Edition Alpha|269|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Limited Edition Alpha|269|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Nightmare|Limited Edition Alpha|27|R|{5}{B}|Creature - Nightmare Horse|*|*|Flying$Nightmare's power and toughness are each equal to the number of Swamps you control.| Soul Net|Limited Edition Alpha|270|U|{1}|Artifact|||Whenever a creature dies, you may pay {1}. If you do, you gain 1 life.| Sunglasses of Urza|Limited Edition Alpha|271|R|{3}|Artifact|||You may spend white mana as though it were red mana.| @@ -8713,7 +8713,7 @@ Aspect of Wolf|Limited Edition Alpha|93|R|{1}{G}|Enchantment - Aura|||Enchant cr Berserk|Limited Edition Alpha|94|U|{G}|Instant|||Cast Berserk only before the combat damage step.$Target creature gains trample and gets +X/+0 until end of turn, where X is its power. At the beginning of the next end step, destroy that creature if it attacked this turn.| Birds of Paradise|Limited Edition Alpha|95|R|{G}|Creature - Bird|0|1|Flying${tap}: Add one mana of any color to your mana pool.| Camouflage|Limited Edition Alpha|96|U|{G}|Instant|||Cast Camouflage only during your declare attackers step.$This turn, instead of declaring blockers, each defending player chooses any number of creatures he or she controls and divides them into a number of piles equal to the number of attacking creatures for whom that player is the defending player. Creatures he or she controls that can block additional creatures may likewise be put into additional piles. Assign each pile to a different one of those attacking creatures at random. Each creature in a pile that can block the creature that pile is assigned to does so. (Piles can be empty.)| -Channel|Limited Edition Alpha|97|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|Limited Edition Alpha|97|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Cockatrice|Limited Edition Alpha|98|R|{3}{G}{G}|Creature - Cockatrice|2|4|Flying$Whenever Cockatrice blocks or becomes blocked by a non-Wall creature, destroy that creature at end of combat.| Craw Wurm|Limited Edition Alpha|99|C|{4}{G}{G}|Creature - Wurm|6|4|| Animate Dead|Limited Edition Beta|1|U|{1}{B}|Enchantment - Aura|||Enchant creature card in a graveyard$When Animate Dead enters the battlefield, if it's on the battlefield, it loses "enchant creature card in a graveyard" and gains "enchant creature put onto the battlefield with Animate Dead." Return enchanted creature card to the battlefield under your control and attach Animate Dead to it. When Animate Dead leaves the battlefield, that creature's controller sacrifices it.$Enchanted creature gets -1/-0.| @@ -8812,7 +8812,7 @@ Aspect of Wolf|Limited Edition Beta|93|R|{1}{G}|Enchantment - Aura|||Enchant cre Berserk|Limited Edition Beta|94|U|{G}|Instant|||Cast Berserk only before the combat damage step.$Target creature gains trample and gets +X/+0 until end of turn, where X is its power. At the beginning of the next end step, destroy that creature if it attacked this turn.| Birds of Paradise|Limited Edition Beta|95|R|{G}|Creature - Bird|0|1|Flying${tap}: Add one mana of any color to your mana pool.| Camouflage|Limited Edition Beta|96|U|{G}|Instant|||Cast Camouflage only during your declare attackers step.$This turn, instead of declaring blockers, each defending player chooses any number of creatures he or she controls and divides them into a number of piles equal to the number of attacking creatures for whom that player is the defending player. Creatures he or she controls that can block additional creatures may likewise be put into additional piles. Assign each pile to a different one of those attacking creatures at random. Each creature in a pile that can block the creature that pile is assigned to does so. (Piles can be empty.)| -Channel|Limited Edition Beta|97|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|Limited Edition Beta|97|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Cockatrice|Limited Edition Beta|98|R|{3}{G}{G}|Creature - Cockatrice|2|4|Flying$Whenever Cockatrice blocks or becomes blocked by a non-Wall creature, destroy that creature at end of combat.| Craw Wurm|Limited Edition Beta|99|C|{4}{G}{G}|Creature - Wurm|6|4|| Elvish Archers|Limited Edition Beta|100|R|{1}{G}|Creature - Elf Archer|2|1|First strike| @@ -8948,7 +8948,7 @@ White Knight|Limited Edition Beta|229|U|{W}{W}|Creature - Human Knight|2|2|First White Ward|Limited Edition Beta|230|U|{W}|Enchantment - Aura|||Enchant creature$Enchanted creature has protection from white. This effect doesn't remove White Ward.| Wrath of God|Limited Edition Beta|231|R|{2}{W}{W}|Sorcery|||Destroy all creatures. They can't be regenerated.| Ankh of Mishra|Limited Edition Beta|232|R|{2}|Artifact|||Whenever a land enters the battlefield, Ankh of Mishra deals 2 damage to that land's controller.| -Basalt Monolith|Limited Edition Beta|233|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {3} to your mana pool.${3}: Untap Basalt Monolith.| +Basalt Monolith|Limited Edition Beta|233|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {C}{C}{C} to your mana pool.${3}: Untap Basalt Monolith.| Black Lotus|Limited Edition Beta|234|R|{0}|Artifact|||{tap}, Sacrifice Black Lotus: Add three mana of any one color to your mana pool.| Black Vise|Limited Edition Beta|235|U|{1}|Artifact|||As Black Vise enters the battlefield, choose an opponent.$At the beginning of the chosen player's upkeep, Black Vise deals X damage to that player, where X is the number of cards in his or her hand minus 4.| Celestial Prism|Limited Edition Beta|236|U|{3}|Artifact|||{2}, {tap}: Add one mana of any color to your mana pool.| @@ -8976,7 +8976,7 @@ Juggernaut|Limited Edition Beta|257|U|{4}|Artifact Creature - Juggernaut|5|3|Jug Kormus Bell|Limited Edition Beta|258|R|{4}|Artifact|||All Swamps are 1/1 black creatures that are still lands.| Library of Leng|Limited Edition Beta|259|U|{1}|Artifact|||You have no maximum hand size.$If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.| Living Wall|Limited Edition Beta|260|U|{4}|Artifact Creature - Wall|0|6|Defender (This creature can't attack.)${1}: Regenerate Living Wall.| -Mana Vault|Limited Edition Beta|261|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Vault|Limited Edition Beta|261|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Meekstone|Limited Edition Beta|262|R|{1}|Artifact|||Creatures with power 3 or greater don't untap during their controllers' untap steps.| Mox Emerald|Limited Edition Beta|263|R|{0}|Artifact|||{tap}: Add {G} to your mana pool.| Mox Jet|Limited Edition Beta|264|R|{0}|Artifact|||{tap}: Add {B} to your mana pool.| @@ -8986,7 +8986,7 @@ Mox Sapphire|Limited Edition Beta|267|R|{0}|Artifact|||{tap}: Add {U} to your ma Nevinyrral's Disk|Limited Edition Beta|268|R|{4}|Artifact|||Nevinyrral's Disk enters the battlefield tapped.${1}, {tap}: Destroy all artifacts, creatures, and enchantments.| Obsianus Golem|Limited Edition Beta|269|U|{6}|Artifact Creature - Golem|4|6|| Rod of Ruin|Limited Edition Beta|270|U|{4}|Artifact|||{3}, {tap}: Rod of Ruin deals 1 damage to target creature or player.| -Sol Ring|Limited Edition Beta|271|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Limited Edition Beta|271|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Soul Net|Limited Edition Beta|272|U|{1}|Artifact|||Whenever a creature dies, you may pay {1}. If you do, you gain 1 life.| Sunglasses of Urza|Limited Edition Beta|273|R|{3}|Artifact|||You may spend white mana as though it were red mana.| The Hive|Limited Edition Beta|274|R|{5}|Artifact|||{5}, {tap}: Put a 1/1 colorless Insect artifact creature token with flying named Wasp onto the battlefield. (It can't be blocked except by creatures with flying or reach.)| @@ -9211,7 +9211,7 @@ Kithkin Healer|Lorwyn|27|C|{2}{W}|Creature - Kithkin Cleric|2|2|{tap}: Prevent t Mosswort Bridge|Lorwyn|270|R||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${tap}: Add {G} to your mana pool.${G}, {tap}: You may play the exiled card without paying its mana cost if creatures you control have total power 10 or greater.| Secluded Glen|Lorwyn|271|R||Land|||As Secluded Glen enters the battlefield, you may reveal a Faerie card from your hand. If you don't, Secluded Glen enters the battlefield tapped.${tap}: Add {U} or {B} to your mana pool.| Shelldock Isle|Lorwyn|272|R||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${tap}: Add {U} to your mana pool.${U}, {tap}: You may play the exiled card without paying its mana cost if a library has twenty or fewer cards in it.| -Shimmering Grotto|Lorwyn|273|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| +Shimmering Grotto|Lorwyn|273|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| Spinerock Knoll|Lorwyn|274|R||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${tap}: Add {R} to your mana pool.${R}, {tap}: You may play the exiled card without paying its mana cost if an opponent was dealt 7 or more damage this turn.| Vivid Crag|Lorwyn|275|U||Land|||Vivid Crag enters the battlefield tapped with two charge counters on it.${tap}: Add {R} to your mana pool.${tap}, Remove a charge counter from Vivid Crag: Add one mana of any color to your mana pool.| Vivid Creek|Lorwyn|276|U||Land|||Vivid Creek enters the battlefield tapped with two charge counters on it.${tap}: Add {U} to your mana pool.${tap}, Remove a charge counter from Vivid Creek: Add one mana of any color to your mana pool.| @@ -9459,7 +9459,7 @@ Whispersilk Cloak|Magic 2010|221|U|{3}|Artifact - Equipment|||Equipped creature Wurm's Tooth|Magic 2010|222|U|{2}|Artifact|||Whenever a player casts a green spell, you may gain 1 life.| Dragonskull Summit|Magic 2010|223|R||Land|||Dragonskull Summit enters the battlefield tapped unless you control a Swamp or a Mountain.${tap}: Add {B} or {R} to your mana pool.| Drowned Catacomb|Magic 2010|224|R||Land|||Drowned Catacomb enters the battlefield tapped unless you control an Island or a Swamp.${tap}: Add {U} or {B} to your mana pool.| -Gargoyle Castle|Magic 2010|225|R||Land|||{tap}: Add {1} to your mana pool.${5}, {tap}, Sacrifice Gargoyle Castle: Put a 3/4 colorless Gargoyle artifact creature token with flying onto the battlefield.| +Gargoyle Castle|Magic 2010|225|R||Land|||{tap}: Add {C} to your mana pool.${5}, {tap}, Sacrifice Gargoyle Castle: Put a 3/4 colorless Gargoyle artifact creature token with flying onto the battlefield.| Glacial Fortress|Magic 2010|226|R||Land|||Glacial Fortress enters the battlefield tapped unless you control a Plains or an Island.${tap}: Add {W} or {U} to your mana pool.| Rootbound Crag|Magic 2010|227|R||Land|||Rootbound Crag enters the battlefield tapped unless you control a Mountain or a Forest.${tap}: Add {R} or {G} to your mana pool.| Sunpetal Grove|Magic 2010|228|R||Land|||Sunpetal Grove enters the battlefield tapped unless you control a Forest or a Plains.${tap}: Add {G} or {W} to your mana pool.| @@ -9709,7 +9709,7 @@ Wurm's Tooth|Magic 2011|222|U|{2}|Artifact|||Whenever a player casts a green spe Dragonskull Summit|Magic 2011|223|R||Land|||Dragonskull Summit enters the battlefield tapped unless you control a Swamp or a Mountain.${tap}: Add {B} or {R} to your mana pool.| Drowned Catacomb|Magic 2011|224|R||Land|||Drowned Catacomb enters the battlefield tapped unless you control an Island or a Swamp.${tap}: Add {U} or {B} to your mana pool.| Glacial Fortress|Magic 2011|225|R||Land|||Glacial Fortress enters the battlefield tapped unless you control a Plains or an Island.${tap}: Add {W} or {U} to your mana pool.| -Mystifying Maze|Magic 2011|226|R||Land|||{tap}: Add {1} to your mana pool.${4}, {tap}: Exile target attacking creature an opponent controls. At the beginning of the next end step, return it to the battlefield tapped under its owner's control.| +Mystifying Maze|Magic 2011|226|R||Land|||{tap}: Add {C} to your mana pool.${4}, {tap}: Exile target attacking creature an opponent controls. At the beginning of the next end step, return it to the battlefield tapped under its owner's control.| Rootbound Crag|Magic 2011|227|R||Land|||Rootbound Crag enters the battlefield tapped unless you control a Mountain or a Forest.${tap}: Add {R} or {G} to your mana pool.| Sunpetal Grove|Magic 2011|228|R||Land|||Sunpetal Grove enters the battlefield tapped unless you control a Forest or a Plains.${tap}: Add {G} or {W} to your mana pool.| Terramorphic Expanse|Magic 2011|229|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| @@ -9956,7 +9956,7 @@ Thran Golem|Magic 2012|220|U|{5}|Artifact Creature - Golem|3|3|As long as Thran Throne of Empires|Magic 2012|221|R|{4}|Artifact|||{1}, {tap}: Put a 1/1 white Soldier creature token onto the battlefield. Put five of those tokens onto the battlefield instead if you control artifacts named Crown of Empires and Scepter of Empires.| Worldslayer|Magic 2012|222|R|{5}|Artifact - Equipment|||Whenever equipped creature deals combat damage to a player, destroy all permanents other than Worldslayer.$Equip {5} ({5}: Attach to target creature you control. Equip only as a sorcery.)| Wurm's Tooth|Magic 2012|223|U|{2}|Artifact|||Whenever a player casts a green spell, you may gain 1 life.| -Buried Ruin|Magic 2012|224|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Buried Ruin: Return target artifact card from your graveyard to your hand.| +Buried Ruin|Magic 2012|224|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Buried Ruin: Return target artifact card from your graveyard to your hand.| Dragonskull Summit|Magic 2012|225|R||Land|||Dragonskull Summit enters the battlefield tapped unless you control a Swamp or a Mountain.${tap}: Add {B} or {R} to your mana pool.| Drowned Catacomb|Magic 2012|226|R||Land|||Drowned Catacomb enters the battlefield tapped unless you control an Island or a Swamp.${tap}: Add {U} or {B} to your mana pool.| Glacial Fortress|Magic 2012|227|R||Land|||Glacial Fortress enters the battlefield tapped unless you control a Plains or an Island.${tap}: Add {W} or {U} to your mana pool.| @@ -10202,13 +10202,13 @@ Stuffy Doll|Magic 2013|218|R|{5}|Artifact Creature - Construct|0|1|As Stuffy Dol Tormod's Crypt|Magic 2013|219|U|{0}|Artifact|||{tap}, Sacrifice Tormod's Crypt: Exile all cards from target player's graveyard.| Oblivion Ring|Magic 2013|22|U|{2}{W}|Enchantment|||When Oblivion Ring enters the battlefield, exile another target nonland permanent.$When Oblivion Ring leaves the battlefield, return the exiled card to the battlefield under its owner's control.| Trading Post|Magic 2013|220|R|{4}|Artifact|||{1}, {tap}, Discard a card: You gain 4 life.${1}, {tap}, Pay 1 life: Put a 0/1 white Goat creature token onto the battlefield.${1}, {tap}, Sacrifice a creature: Return target artifact card from your graveyard to your hand.${1}, {tap}, Sacrifice an artifact: Draw a card.| -Cathedral of War|Magic 2013|221|R||Land|||Cathedral of War enters the battlefield tapped.$Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)${tap}: Add {1} to your mana pool.| +Cathedral of War|Magic 2013|221|R||Land|||Cathedral of War enters the battlefield tapped.$Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)${tap}: Add {C} to your mana pool.| Dragonskull Summit|Magic 2013|222|R||Land|||Dragonskull Summit enters the battlefield tapped unless you control a Swamp or a Mountain.${tap}: Add {B} or {R} to your mana pool.| Drowned Catacomb|Magic 2013|223|R||Land|||Drowned Catacomb enters the battlefield tapped unless you control an Island or a Swamp.${tap}: Add {U} or {B} to your mana pool.| Evolving Wilds|Magic 2013|224|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Glacial Fortress|Magic 2013|225|R||Land|||Glacial Fortress enters the battlefield tapped unless you control a Plains or an Island.${tap}: Add {W} or {U} to your mana pool.| -Hellion Crucible|Magic 2013|226|R||Land|||{tap}: Add {1} to your mana pool.${1}{R}, {tap}: Put a pressure counter on Hellion Crucible.${1}{R}, {tap}, Remove two pressure counters from Hellion Crucible and sacrifice it: Put a 4/4 red Hellion creature token with haste onto the battlefield. (It can attack and {tap} as soon as it comes under your control.)| -Reliquary Tower|Magic 2013|227|U||Land|||You have no maximum hand size.${tap}: Add {1} to your mana pool.| +Hellion Crucible|Magic 2013|226|R||Land|||{tap}: Add {C} to your mana pool.${1}{R}, {tap}: Put a pressure counter on Hellion Crucible.${1}{R}, {tap}, Remove two pressure counters from Hellion Crucible and sacrifice it: Put a 4/4 red Hellion creature token with haste onto the battlefield. (It can attack and {tap} as soon as it comes under your control.)| +Reliquary Tower|Magic 2013|227|U||Land|||You have no maximum hand size.${tap}: Add {C} to your mana pool.| Rootbound Crag|Magic 2013|228|R||Land|||Rootbound Crag enters the battlefield tapped unless you control a Mountain or a Forest.${tap}: Add {R} or {G} to your mana pool.| Sunpetal Grove|Magic 2013|229|R||Land|||Sunpetal Grove enters the battlefield tapped unless you control a Forest or a Plains.${tap}: Add {G} or {W} to your mana pool.| Odric, Master Tactician|Magic 2013|23|R|{2}{W}{W}|Legendary Creature - Human Soldier|3|4|First strike (This creature deals combat damage before creatures without first strike.)$Whenever Odric, Master Tactician and at least three other creatures attack, you choose which creatures block this combat and how those creatures block.| @@ -10353,7 +10353,7 @@ False Prophet|Magic: The Gathering-Commander|13|R|{2}{W}{W}|Creature - Human Cle Oni of Wild Places|Magic: The Gathering-Commander|130|U|{5}{R}|Creature - Demon Spirit|6|5|Haste$At the beginning of your upkeep, return a red creature you control to its owner's hand.| Punishing Fire|Magic: The Gathering-Commander|131|U|{1}{R}|Instant|||Punishing Fire deals 2 damage to target creature or player.$Whenever an opponent gains life, you may pay {R}. If you do, return Punishing Fire from your graveyard to your hand.| Pyrohemia|Magic: The Gathering-Commander|132|U|{2}{R}{R}|Enchantment|||At the beginning of the end step, if no creatures are on the battlefield, sacrifice Pyrohemia.${R}: Pyrohemia deals 1 damage to each creature and each player.| -Rapacious One|Magic: The Gathering-Commander|133|U|{5}{R}|Creature - Eldrazi Drone|5|4|Trample$Whenever Rapacious One deals combat damage to a player, put that many 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Rapacious One|Magic: The Gathering-Commander|133|U|{5}{R}|Creature - Eldrazi Drone|5|4|Trample$Whenever Rapacious One deals combat damage to a player, put that many 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Ruination|Magic: The Gathering-Commander|134|R|{3}{R}|Sorcery|||Destroy all nonbasic lands.| Spitebellows|Magic: The Gathering-Commander|135|U|{5}{R}|Creature - Elemental|6|1|When Spitebellows leaves the battlefield, it deals 6 damage to target creature.$Evoke {1}{R}{R} (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.)| Stranglehold|Magic: The Gathering-Commander|136|R|{3}{R}|Enchantment|||Your opponents can't search libraries.$If an opponent would begin an extra turn, that player skips that turn instead.| @@ -10363,7 +10363,7 @@ Wild Ricochet|Magic: The Gathering-Commander|139|R|{2}{R}{R}|Instant|||You may c Ghostly Prison|Magic: The Gathering-Commander|14|U|{2}{W}|Enchantment|||Creatures can't attack you unless their controller pays {2} for each creature he or she controls that's attacking you.| Acidic Slime|Magic: The Gathering-Commander|140|U|{3}{G}{G}|Creature - Ooze|2|2|Deathtouch (Any amount of damage this deals to a creature is enough to destroy it.)$When Acidic Slime enters the battlefield, destroy target artifact, enchantment, or land.| Aquastrand Spider|Magic: The Gathering-Commander|141|C|{1}{G}|Creature - Spider Mutant|0|0|Graft 2 (This creature enters the battlefield with two +1/+1 counters on it. Whenever another creature enters the battlefield, you may move a +1/+1 counter from this creature onto it.)${G}: Target creature with a +1/+1 counter on it gains reach until end of turn. (It can block creatures with flying.)| -Awakening Zone|Magic: The Gathering-Commander|142|R|{2}{G}|Enchantment|||At the beginning of your upkeep, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Awakening Zone|Magic: The Gathering-Commander|142|R|{2}{G}|Enchantment|||At the beginning of your upkeep, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Baloth Woodcrasher|Magic: The Gathering-Commander|143|U|{4}{G}{G}|Creature - Beast|4|4|Landfall - Whenever a land enters the battlefield under your control, Baloth Woodcrasher gets +4/+4 and gains trample until end of turn.| Bestial Menace|Magic: The Gathering-Commander|144|U|{3}{G}{G}|Sorcery|||Put a 1/1 green Snake creature token, a 2/2 green Wolf creature token, and a 3/3 green Elephant creature token onto the battlefield.| Brawn|Magic: The Gathering-Commander|145|U|{3}{G}|Creature - Incarnation|3|3|Trample$As long as Brawn is in your graveyard and you control a Forest, creatures you control have trample.| @@ -10480,7 +10480,7 @@ Boros Signet|Magic: The Gathering-Commander|243|C|{2}|Artifact|||{1}, {tap}: Add Champion's Helm|Magic: The Gathering-Commander|244|R|{3}|Artifact - Equipment|||Equipped creature gets +2/+2.$As long as equipped creature is legendary, it has hexproof. (It can't be the target of spells or abilities your opponents control.)$Equip {1}| Darksteel Ingot|Magic: The Gathering-Commander|245|C|{3}|Artifact|||Darksteel Ingot is indestructible. (Effects that say "destroy" don't destroy it.)${tap}: Add one mana of any color to your mana pool.| Dimir Signet|Magic: The Gathering-Commander|246|C|{2}|Artifact|||{1}, {tap}: Add {U}{B} to your mana pool.| -Dreamstone Hedron|Magic: The Gathering-Commander|247|U|{6}|Artifact|||{tap}: Add {3} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| +Dreamstone Hedron|Magic: The Gathering-Commander|247|U|{6}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| Fellwar Stone|Magic: The Gathering-Commander|248|U|{2}|Artifact|||{tap}: Add to your mana pool one mana of any color that a land an opponent controls could produce.| Golgari Signet|Magic: The Gathering-Commander|249|C|{2}|Artifact|||{1}, {tap}: Add {B}{G} to your mana pool.| Path to Exile|Magic: The Gathering-Commander|25|U|{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.| @@ -10496,7 +10496,7 @@ Selesnya Signet|Magic: The Gathering-Commander|258|C|{2}|Artifact|||{1}, {tap}: Simic Signet|Magic: The Gathering-Commander|259|C|{2}|Artifact|||{1}, {tap}: Add {G}{U} to your mana pool.| Pollen Lullaby|Magic: The Gathering-Commander|26|U|{1}{W}|Instant|||Prevent all combat damage that would be dealt this turn. Clash with an opponent. If you win, creatures that player controls don't untap during the player's next untap step. (Each clashing player reveals the top card of his or her library, then puts that card on the top or bottom. A player wins if his or her card had a higher converted mana cost.)| Skullclamp|Magic: The Gathering-Commander|260|U|{1}|Artifact - Equipment|||Equipped creature gets +1/-1.$Whenever equipped creature dies, draw two cards.$Equip {1}| -Sol Ring|Magic: The Gathering-Commander|261|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Magic: The Gathering-Commander|261|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Solemn Simulacrum|Magic: The Gathering-Commander|262|R|{4}|Artifact Creature - Golem|2|2|When Solemn Simulacrum enters the battlefield, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.$When Solemn Simulacrum dies, you may draw a card.| Triskelavus|Magic: The Gathering-Commander|263|R|{7}|Artifact Creature - Construct|1|1|Flying$Triskelavus enters the battlefield with three +1/+1 counters on it.${1}, Remove a +1/+1 counter from Triskelavus: Put a 1/1 colorless Triskelavite artifact creature token with flying onto the battlefield. It has "Sacrifice this creature: This creature deals 1 damage to target creature or player."| Akoum Refuge|Magic: The Gathering-Commander|264|U||Land|||Akoum Refuge enters the battlefield tapped.$When Akoum Refuge enters the battlefield, you gain 1 life.${tap}: Add {B} or {R} to your mana pool.| @@ -10507,28 +10507,28 @@ Boros Garrison|Magic: The Gathering-Commander|268|C||Land|||Boros Garrison enter Command Tower|Magic: The Gathering-Commander|269|C||Land|||{tap}: Add to your mana pool one mana of any color in your commander's color identity.| Prison Term|Magic: The Gathering-Commander|27|U|{1}{W}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block, and its activated abilities can't be activated.$Whenever a creature enters the battlefield under an opponent's control, you may attach Prison Term to that creature.| Dimir Aqueduct|Magic: The Gathering-Commander|270|C||Land|||Dimir Aqueduct enters the battlefield tapped.$When Dimir Aqueduct enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{B} to your mana pool.| -Dreadship Reef|Magic: The Gathering-Commander|271|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Dreadship Reef.${1}, Remove X storage counters from Dreadship Reef: Add X mana in any combination of {U} and/or {B} to your mana pool.| +Dreadship Reef|Magic: The Gathering-Commander|271|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Dreadship Reef.${1}, Remove X storage counters from Dreadship Reef: Add X mana in any combination of {U} and/or {B} to your mana pool.| Evolving Wilds|Magic: The Gathering-Commander|272|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Forgotten Cave|Magic: The Gathering-Commander|273|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| -Fungal Reaches|Magic: The Gathering-Commander|274|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Fungal Reaches.${1}, Remove X storage counters from Fungal Reaches: Add X mana in any combination of {R} and/or {G} to your mana pool.| +Fungal Reaches|Magic: The Gathering-Commander|274|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Fungal Reaches.${1}, Remove X storage counters from Fungal Reaches: Add X mana in any combination of {R} and/or {G} to your mana pool.| Golgari Rot Farm|Magic: The Gathering-Commander|275|C||Land|||Golgari Rot Farm enters the battlefield tapped.$When Golgari Rot Farm enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{G} to your mana pool.| Gruul Turf|Magic: The Gathering-Commander|276|C||Land|||Gruul Turf enters the battlefield tapped.$When Gruul Turf enters the battlefield, return a land you control to its owner's hand.${tap}: Add {R}{G} to your mana pool.| -Homeward Path|Magic: The Gathering-Commander|277|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Each player gains control of all creatures he or she owns.| +Homeward Path|Magic: The Gathering-Commander|277|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Each player gains control of all creatures he or she owns.| Izzet Boilerworks|Magic: The Gathering-Commander|278|C||Land|||Izzet Boilerworks enters the battlefield tapped.$When Izzet Boilerworks enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{R} to your mana pool.| Jwar Isle Refuge|Magic: The Gathering-Commander|279|U||Land|||Jwar Isle Refuge enters the battlefield tapped.$When Jwar Isle Refuge enters the battlefield, you gain 1 life.${tap}: Add {U} or {B} to your mana pool.| Return to Dust|Magic: The Gathering-Commander|28|U|{2}{W}{W}|Instant|||Exile target artifact or enchantment. If you cast this spell during your main phase, you may exile up to one other target artifact or enchantment.| Kazandu Refuge|Magic: The Gathering-Commander|280|U||Land|||Kazandu Refuge enters the battlefield tapped.$When Kazandu Refuge enters the battlefield, you gain 1 life.${tap}: Add {R} or {G} to your mana pool.| Lonely Sandbar|Magic: The Gathering-Commander|281|C||Land|||Lonely Sandbar enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {U} ({U}, Discard this card: Draw a card.)| -Molten Slagheap|Magic: The Gathering-Commander|282|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Molten Slagheap.${1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool.| +Molten Slagheap|Magic: The Gathering-Commander|282|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Molten Slagheap.${1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool.| Orzhov Basilica|Magic: The Gathering-Commander|283|C||Land|||Orzhov Basilica enters the battlefield tapped.$When Orzhov Basilica enters the battlefield, return a land you control to its owner's hand.${tap}: Add {W}{B} to your mana pool.| Rakdos Carnarium|Magic: The Gathering-Commander|284|C||Land|||Rakdos Carnarium enters the battlefield tapped.$When Rakdos Carnarium enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{R} to your mana pool.| Rupture Spire|Magic: The Gathering-Commander|285|C||Land|||Rupture Spire enters the battlefield tapped.$When Rupture Spire enters the battlefield, sacrifice it unless you pay {1}.${tap}: Add one mana of any color to your mana pool.| Secluded Steppe|Magic: The Gathering-Commander|286|C||Land|||Secluded Steppe enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {W} ({W}, Discard this card: Draw a card.)| Selesnya Sanctuary|Magic: The Gathering-Commander|287|C||Land|||Selesnya Sanctuary enters the battlefield tapped.$When Selesnya Sanctuary enters the battlefield, return a land you control to its owner's hand.${tap}: Add {G}{W} to your mana pool.| Simic Growth Chamber|Magic: The Gathering-Commander|288|C||Land|||Simic Growth Chamber enters the battlefield tapped.$When Simic Growth Chamber enters the battlefield, return a land you control to its owner's hand.${tap}: Add {G}{U} to your mana pool.| -Svogthos, the Restless Tomb|Magic: The Gathering-Commander|289|U||Land|||{tap}: Add {1} to your mana pool.${3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land.| +Svogthos, the Restless Tomb|Magic: The Gathering-Commander|289|U||Land|||{tap}: Add {C} to your mana pool.${3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land.| Righteous Cause|Magic: The Gathering-Commander|29|U|{3}{W}{W}|Enchantment|||Whenever a creature attacks, you gain 1 life.| -Temple of the False God|Magic: The Gathering-Commander|290|U||Land|||{tap}: Add {2} to your mana pool. Activate this ability only if you control five or more lands.| +Temple of the False God|Magic: The Gathering-Commander|290|U||Land|||{tap}: Add {C}{C} to your mana pool. Activate this ability only if you control five or more lands.| Terramorphic Expanse|Magic: The Gathering-Commander|291|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Tranquil Thicket|Magic: The Gathering-Commander|292|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| Vivid Crag|Magic: The Gathering-Commander|293|U||Land|||Vivid Crag enters the battlefield tapped with two charge counters on it.${tap}: Add {R} to your mana pool.${tap}, Remove a charge counter from Vivid Crag: Add one mana of any color to your mana pool.| @@ -10536,7 +10536,7 @@ Vivid Creek|Magic: The Gathering-Commander|294|U||Land|||Vivid Creek enters the Vivid Grove|Magic: The Gathering-Commander|295|U||Land|||Vivid Grove enters the battlefield tapped with two charge counters on it.${tap}: Add {G} to your mana pool.${tap}, Remove a charge counter from Vivid Grove: Add one mana of any color to your mana pool.| Vivid Marsh|Magic: The Gathering-Commander|296|U||Land|||Vivid Marsh enters the battlefield tapped with two charge counters on it.${tap}: Add {B} to your mana pool.${tap}, Remove a charge counter from Vivid Marsh: Add one mana of any color to your mana pool.| Vivid Meadow|Magic: The Gathering-Commander|297|U||Land|||Vivid Meadow enters the battlefield tapped with two charge counters on it.${tap}: Add {W} to your mana pool.${tap}, Remove a charge counter from Vivid Meadow: Add one mana of any color to your mana pool.| -Zoetic Cavern|Magic: The Gathering-Commander|298|U||Land|||{tap}: Add {1} to your mana pool.$Morph {2} You may cast this card face downn as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| +Zoetic Cavern|Magic: The Gathering-Commander|298|U||Land|||{tap}: Add {C} to your mana pool.$Morph {2} You may cast this card face downn as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| Plains|Magic: The Gathering-Commander|299|L||Basic Land - Plains|||W| Akroma's Vengeance|Magic: The Gathering-Commander|3|R|{4}{W}{W}|Sorcery|||Destroy all artifacts, creatures, and enchantments.$Cycling {3} ({3}, Discard this card: Draw a card.)| Serra Angel|Magic: The Gathering-Commander|30|U|{3}{W}{W}|Creature - Angel|4|4|Flying$Vigilance (Attacking doesn't cause this creature to tap.)| @@ -10711,7 +10711,7 @@ Serpent Generator|Masters Edition|164|R|{6}|Artifact|||{4}, {tap}: Put a 1/1 col Shield of the Ages|Masters Edition|165|U|{2}|Artifact|||{2}: Prevent the next 1 damage that would be dealt to you this turn.| Shield Sphere|Masters Edition|166|C|{0}|Artifact Creature - Wall|0|6|Defender$Whenever Shield Sphere blocks, put a -0/-1 counter on it.| Stone Calendar|Masters Edition|167|U|{5}|Artifact|||Spells you cast cost up to {1} less to cast.| -Su-Chi|Masters Edition|168|R|{4}|Artifact Creature - Construct|4|4|When Su-Chi dies, add {4} to your mana pool.| +Su-Chi|Masters Edition|168|R|{4}|Artifact Creature - Construct|4|4|When Su-Chi dies, add {C}{C}{C}{C} to your mana pool.| Tawnos's Coffin|Masters Edition|169|R|{4}|Artifact|||You may choose not to untap Tawnos's Coffin during your untap step.${3}, {tap}: Exile target creature and all Auras attached to it. Note the number and kind of counters that were on that creature. When Tawnos's Coffin leaves the battlefield or becomes untapped, return the exiled card to the battlefield under its owner's control tapped with the noted number and kind of counters on it, and if you do, return the exiled Aura cards to the battlefield under their owner's control attached to that permanent.| Icatian Lieutenant|Masters Edition|17|C|{W}{W}|Creature - Human Soldier|1|2|{1}{W}: Target Soldier creature gets +1/+0 until end of turn.| Urza's Bauble|Masters Edition|170|U|{0}|Artifact|||{tap}, Sacrifice Urza's Bauble: Look at a card at random in target player's hand. You draw a card at the beginning of the next turn's upkeep.| @@ -10722,7 +10722,7 @@ Zuran Orb|Masters Edition|174|U|{0}|Artifact|||Sacrifice a land: You gain 2 life Diamond Valley|Masters Edition|175|R||Land|||{tap}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness.| Island of Wak-Wak|Masters Edition|176|R||Land|||{tap}: The power of target creature with flying becomes 0 until end of turn.| Lake of the Dead|Masters Edition|177|R||Land|||If Lake of the Dead would enter the battlefield, sacrifice a Swamp instead. If you do, put Lake of the Dead onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {B} to your mana pool.${tap}, Sacrifice a Swamp: Add {B}{B}{B}{B} to your mana pool.| -Mishra's Factory|Masters Edition|178|U||Land|||{tap}: Add {1} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| +Mishra's Factory|Masters Edition|178|U||Land|||{tap}: Add {C} to your mana pool.${1}: Mishra's Factory becomes a 2/2 Assembly-Worker artifact creature until end of turn. It's still a land.${tap}: Target Assembly-Worker creature gets +1/+1 until end of turn.| Rainbow Vale|Masters Edition|179|R||Land|||{tap}: Add one mana of any color to your mana pool. An opponent gains control of Rainbow Vale at the beginning of the next end step.| Icatian Town|Masters Edition|18|U|{5}{W}|Sorcery|||Put four 1/1 white Citizen creature tokens onto the battlefield.| Thawing Glaciers|Masters Edition|180|R||Land|||Thawing Glaciers enters the battlefield tapped.${1}, {tap}: Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. Return Thawing Glaciers to its owner's hand at the beginning of the next cleanup step.| @@ -10754,7 +10754,7 @@ Thunder Spirit|Masters Edition|27|U|{1}{W}{W}|Creature - Elemental Spirit|2|2|Fl Tivadar's Crusade|Masters Edition|28|U|{1}{W}{W}|Sorcery|||Destroy all Goblins.| Amnesia|Masters Edition|29|R|{3}{U}{U}{U}|Sorcery|||Target player reveals his or her hand and discards all nonland cards.| Argivian Archaeologist|Masters Edition|3|R|{1}{W}{W}|Creature - Human Artificer|1|1|{W}{W}, {tap}: Return target artifact card from your graveyard to your hand.| -Apprentice Wizard|Masters Edition|30|C|{1}{U}{U}|Creature - Human Wizard|0|1|{U}, {tap}: Add {3} to your mana pool.| +Apprentice Wizard|Masters Edition|30|C|{1}{U}{U}|Creature - Human Wizard|0|1|{U}, {tap}: Add {C}{C}{C} to your mana pool.| Arcane Denial|Masters Edition|31|C|{1}{U}|Instant|||Counter target spell. Its controller may draw up to two cards at the beginning of the next turn's upkeep.$You draw a card at the beginning of the next turn's upkeep.| Diminishing Returns|Masters Edition|32|R|{2}{U}{U}|Sorcery|||Each player shuffles his or her hand and graveyard into his or her library. You exile the top ten cards of your library. Then each player draws up to seven cards.| Force of Will|Masters Edition|33|R|{3}{U}{U}|Instant|||You may pay 1 life and exile a blue card from your hand rather than pay Force of Will's mana cost.$Counter target spell.| @@ -10958,7 +10958,7 @@ Helm of Obedience|Masters Edition II|210|R|{4}|Artifact|||{X}, {tap}: Target opp Jester's Mask|Masters Edition II|211|R|{5}|Artifact|||Jester's Mask enters the battlefield tapped.${1}, {tap}, Sacrifice Jester's Mask: Target opponent puts the cards from his or her hand on top of his or her library. Search that player's library for that many cards. That player puts those cards into his or her hand, then shuffles his or her library.| Jeweled Amulet|Masters Edition II|212|U|{0}|Artifact|||{1}, {tap}: Put a charge counter on Jeweled Amulet. Note the type of mana spent to pay this activation cost. Activate this ability only if there are no charge counters on Jeweled Amulet.${tap}, Remove a charge counter from Jeweled Amulet: Add one mana of Jeweled Amulet's last noted type to your mana pool.| Lodestone Bauble|Masters Edition II|213|R|{0}|Artifact|||{1}, {tap}, Sacrifice Lodestone Bauble: Put up to four target basic land cards from a player's graveyard on top of his or her library in any order. That player draws a card at the beginning of the next turn's upkeep.| -Mana Crypt|Masters Edition II|214|R|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {2} to your mana pool.| +Mana Crypt|Masters Edition II|214|R|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {C}{C} to your mana pool.| Mishra's Groundbreaker|Masters Edition II|215|U|{4}|Artifact|||{tap}, Sacrifice Mishra's Groundbreaker: Target land becomes a 3/3 artifact creature that's still a land. (This effect lasts indefinitely.)| Phyrexian Devourer|Masters Edition II|216|U|{6}|Artifact Creature - Construct|1|1|When Phyrexian Devourer's power is 7 or greater, sacrifice it.$Exile the top card of your library: Put X +1/+1 counters on Phyrexian Devourer, where X is the exiled card's converted mana cost.| Phyrexian Portal|Masters Edition II|217|R|{3}|Artifact|||{3}: If your library has ten or more cards in it, target opponent looks at the top ten cards of your library and separates them into two face-down piles. Exile one of those piles. Search the other pile for a card, put it into your hand, then shuffle the rest of that pile into your library.| @@ -10971,7 +10971,7 @@ Soldevi Simulacrum|Masters Edition II|222|U|{4}|Artifact Creature - Soldier|2|4| Time Bomb|Masters Edition II|223|R|{4}|Artifact|||At the beginning of your upkeep, put a time counter on Time Bomb.${1}, {tap}, Sacrifice Time Bomb: Time Bomb deals damage equal to the number of time counters on it to each creature and each player.| Whirling Catapult|Masters Edition II|224|U|{4}|Artifact|||{2}, Exile the top two cards of your library: Whirling Catapult deals 1 damage to each creature with flying and each player.| Badlands|Masters Edition II|225|R||Land - Swamp Mountain|||| -Balduvian Trading Post|Masters Edition II|226|R||Land|||If Balduvian Trading Post would enter the battlefield, sacrifice an untapped Mountain instead. If you do, put Balduvian Trading Post onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {1}{R} to your mana pool.${1}, {tap}: Balduvian Trading Post deals 1 damage to target attacking creature.| +Balduvian Trading Post|Masters Edition II|226|R||Land|||If Balduvian Trading Post would enter the battlefield, sacrifice an untapped Mountain instead. If you do, put Balduvian Trading Post onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {C}{R} to your mana pool.${1}, {tap}: Balduvian Trading Post deals 1 damage to target attacking creature.| Dwarven Ruins|Masters Edition II|227|U||Land|||Dwarven Ruins enters the battlefield tapped.${tap}: Add {R} to your mana pool.${tap}, Sacrifice Dwarven Ruins: Add {R}{R} to your mana pool.| Ebon Stronghold|Masters Edition II|228|U||Land|||Ebon Stronghold enters the battlefield tapped.${tap}: Add {B} to your mana pool.${tap}, Sacrifice Ebon Stronghold: Add {B}{B} to your mana pool.| Glacial Chasm|Masters Edition II|229|R||Land|||Cumulative upkeep-Pay 2 life. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)$When Glacial Chasm enters the battlefield, sacrifice a land.$Creatures you control can't attack.$Prevent all damage that would be dealt to you.| @@ -10982,7 +10982,7 @@ Ice Floe|Masters Edition II|232|U||Land|||You may choose not to untap Ice Floe d Kjeldoran Outpost|Masters Edition II|233|R||Land|||If Kjeldoran Outpost would enter the battlefield, sacrifice a Plains instead. If you do, put Kjeldoran Outpost onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {W} to your mana pool.${1}{W}, {tap}: Put a 1/1 white Soldier creature token onto the battlefield.| Ruins of Trokair|Masters Edition II|234|U||Land|||Ruins of Trokair enters the battlefield tapped.${tap}: Add {W} to your mana pool.${tap}, Sacrifice Ruins of Trokair: Add {W}{W} to your mana pool.| Savannah|Masters Edition II|235|R||Land - Forest Plains|||| -Soldevi Excavations|Masters Edition II|236|R||Land|||If Soldevi Excavations would enter the battlefield, sacrifice an untapped Island instead. If you do, put Soldevi Excavations onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {1}{U} to your mana pool.${1}, {tap}: Look at the top card of your library. You may put that card on the bottom of your library.| +Soldevi Excavations|Masters Edition II|236|R||Land|||If Soldevi Excavations would enter the battlefield, sacrifice an untapped Island instead. If you do, put Soldevi Excavations onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {C}{U} to your mana pool.${1}, {tap}: Look at the top card of your library. You may put that card on the bottom of your library.| Svyelunite Temple|Masters Edition II|237|U||Land|||Svyelunite Temple enters the battlefield tapped.${tap}: Add {U} to your mana pool.${tap}, Sacrifice Svyelunite Temple: Add {U}{U} to your mana pool.| Taiga|Masters Edition II|238|R||Land - Mountain Forest|||| Tundra|Masters Edition II|239|R||Land - Plains Island|||| @@ -11019,7 +11019,7 @@ Deep Spawn|Masters Edition II|45|R|{5}{U}{U}{U}|Creature - Homarid|6|6|Trample$A Dreams of the Dead|Masters Edition II|46|R|{3}{U}|Enchantment|||{1}{U}: Return target white or black creature card from your graveyard to the battlefield. That creature gains "Cumulative upkeep {2}." If the creature would leave the battlefield, exile it instead of putting it anywhere else. (At the beginning of its controller's upkeep, that player puts an age counter on it, then sacrifices it unless he or she pays its upkeep cost for each age counter on it.)| Enervate|Masters Edition II|47|C|{1}{U}|Instant|||Tap target artifact, creature, or land.$$Draw a card at the beginning of the next turn's upkeep.| Essence Flare|Masters Edition II|48|C|{U}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+0.$At the beginning of the upkeep of enchanted creature's controller, put a -0/-1 counter on that creature.| -Iceberg|Masters Edition II|49|U|{X}{U}{U}|Enchantment|||Iceberg enters the battlefield with X ice counters on it.${3}: Put an ice counter on Iceberg.$Remove an ice counter from Iceberg: Add {1} to your mana pool.| +Iceberg|Masters Edition II|49|U|{X}{U}{U}|Enchantment|||Iceberg enters the battlefield with X ice counters on it.${3}: Put an ice counter on Iceberg.$Remove an ice counter from Iceberg: Add {C} to your mana pool.| Armored Griffin|Masters Edition II|5|C|{3}{W}|Creature - Griffin|2|3|Flying, vigilance| Icy Prison|Masters Edition II|50|C|{U}{U}|Enchantment|||When Icy Prison enters the battlefield, exile target creature.$At the beginning of your upkeep, sacrifice Icy Prison unless any player pays {3}.$When Icy Prison leaves the battlefield, return the exiled card to the battlefield under its owner's control.| Krovikan Sorcerer|Masters Edition II|51|C|{2}{U}|Creature - Human Wizard|1|1|{tap}, Discard a nonblack card: Draw a card.${tap}, Discard a black card: Draw two cards, then discard one of them.| @@ -11154,7 +11154,7 @@ Ragnar|Masters Edition III|167|U|{G}{W}{U}|Legendary Creature - Human Cleric|2|2 Ramirez DePietro|Masters Edition III|168|C|{3}{U}|Legendary Creature - Human Pirate|4|3|First strike| Ramses Overdark|Masters Edition III|169|U|{2}{U}{U}{B}{B}|Legendary Creature - Human Assassin|4|3|{tap}: Destroy target enchanted creature.| Land Tax|Masters Edition III|17|R|{W}|Enchantment|||At the beginning of your upkeep, if an opponent controls more lands than you, you may search your library for up to three basic land cards, reveal them, and put them into your hand. If you do, shuffle your library.| -Rasputin Dreamweaver|Masters Edition III|170|R|{4}{W}{U}|Legendary Creature - Human Wizard|4|1|Rasputin Dreamweaver enters the battlefield with seven dream counters on it.$Remove a dream counter from Rasputin: Add {1} to your mana pool.$Remove a dream counter from Rasputin: Prevent the next 1 damage that would be dealt to Rasputin this turn.$At the beginning of your upkeep, if Rasputin started the turn untapped, put a dream counter on it.$Rasputin can't have more than seven dream counters on it.| +Rasputin Dreamweaver|Masters Edition III|170|R|{4}{W}{U}|Legendary Creature - Human Wizard|4|1|Rasputin Dreamweaver enters the battlefield with seven dream counters on it.$Remove a dream counter from Rasputin: Add {C} to your mana pool.$Remove a dream counter from Rasputin: Prevent the next 1 damage that would be dealt to Rasputin this turn.$At the beginning of your upkeep, if Rasputin started the turn untapped, put a dream counter on it.$Rasputin can't have more than seven dream counters on it.| Riven Turnbull|Masters Edition III|171|U|{5}{U}{B}|Legendary Creature - Human Advisor|5|7|{tap}: Add {B} to your mana pool.| Rohgahh of Kher Keep|Masters Edition III|172|R|{2}{B}{B}{R}{R}|Legendary Creature - Kobold|5|5|At the beginning of your upkeep, you may pay {R}{R}{R}. If you don't, tap Rohgahh of Kher Keep and all creatures named Kobolds of Kher Keep, then an opponent gains control of them.$Creatures you control named Kobolds of Kher Keep get +2/+2.| Rubinia Soulsinger|Masters Edition III|173|R|{2}{G}{W}{U}|Legendary Creature - Faerie|2|3|You may choose not to untap Rubinia Soulsinger during your untap step.${tap}: Gain control of target creature for as long as you control Rubinia and Rubinia remains tapped.| @@ -11162,7 +11162,7 @@ Sir Shandlar of Eberyn|Masters Edition III|174|C|{4}{G}{W}|Legendary Creature - Sivitri Scarzam|Masters Edition III|175|C|{5}{U}{B}|Legendary Creature - Human|6|4|| Spectral Shield|Masters Edition III|176|U|{1}{W}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +0/+2 and can't be the target of spells.| Stangg|Masters Edition III|177|U|{4}{R}{G}|Legendary Creature - Human Warrior|3|4|When Stangg enters the battlefield, put a legendary 3/4 red and green Human Warrior creature token named Stangg Twin onto the battlefield. When Stangg leaves the battlefield, exile that token. When that token leaves the battlefield, sacrifice Stangg.| -Sunastian Falconer|Masters Edition III|178|U|{3}{R}{G}|Legendary Creature - Human Shaman|4|4|{tap}: Add {2} to your mana pool.| +Sunastian Falconer|Masters Edition III|178|U|{3}{R}{G}|Legendary Creature - Human Shaman|4|4|{tap}: Add {C}{C} to your mana pool.| Tetsuo Umezawa|Masters Edition III|179|R|{U}{B}{R}|Legendary Creature - Human Archer|3|3|Tetsuo Umezawa can't be the target of Aura spells.${U}{B}{B}{R}, {tap}: Destroy target tapped or blocking creature.| Lightning Blow|Masters Edition III|18|C|{1}{W}|Instant|||Target creature gains first strike until end of turn.$$Draw a card at the beginning of the next turn's upkeep.| The Lady of the Mountain|Masters Edition III|180|C|{4}{R}{G}|Legendary Creature - Giant|5|5|| @@ -11356,7 +11356,7 @@ Alluring Scent|Masters Edition IV|141|C|{1}{G}{G}|Sorcery|||All creatures able t Argothian Pixies|Masters Edition IV|142|C|{1}{G}|Creature - Faerie|2|1|Argothian Pixies can't be blocked by artifact creatures.$Prevent all damage that would be dealt to Argothian Pixies by artifact creatures.| Argothian Treefolk|Masters Edition IV|143|U|{3}{G}{G}|Creature - Treefolk|3|5|Prevent all damage that would be dealt to Argothian Treefolk by artifact sources.| Bee Sting|Masters Edition IV|144|U|{3}{G}|Sorcery|||Bee Sting deals 2 damage to target creature or player.| -Channel|Masters Edition IV|145|R|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|Masters Edition IV|145|R|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Citanul Druid|Masters Edition IV|146|C|{1}{G}|Creature - Human Druid|1|1|Whenever an opponent casts an artifact spell, put a +1/+1 counter on Citanul Druid.| Crumble|Masters Edition IV|147|C|{G}|Instant|||Destroy target artifact. It can't be regenerated. That artifact's controller gains life equal to its converted mana cost.| Cyclone|Masters Edition IV|148|R|{2}{G}{G}|Enchantment|||At the beginning of your upkeep, put a wind counter on Cyclone, then sacrifice Cyclone unless you pay {G} for each wind counter on it. If you pay, Cyclone deals damage equal to the number of wind counters on it to each creature and each player.| @@ -11396,8 +11396,8 @@ Alchor's Tomb|Masters Edition IV|178|R|{4}|Artifact|||{2}, {tap}: Target permane Amulet of Kroog|Masters Edition IV|179|C|{2}|Artifact|||{2}, {tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn.| Leeches|Masters Edition IV|18|R|{1}{W}{W}|Sorcery|||Target player loses all poison counters. Leeches deals that much damage to that player.| Armageddon Clock|Masters Edition IV|180|R|{6}|Artifact|||At the beginning of your upkeep, put a doom counter on Armageddon Clock.$At the beginning of your draw step, Armageddon Clock deals damage equal to the number of doom counters on it to each player.${4}: Remove a doom counter from Armageddon Clock. Any player may activate this ability but only during any upkeep step.| -Ashnod's Altar|Masters Edition IV|181|R|{3}|Artifact|||Sacrifice a creature: Add {2} to your mana pool.| -Basalt Monolith|Masters Edition IV|182|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {3} to your mana pool.${3}: Untap Basalt Monolith.| +Ashnod's Altar|Masters Edition IV|181|R|{3}|Artifact|||Sacrifice a creature: Add {C}{C} to your mana pool.| +Basalt Monolith|Masters Edition IV|182|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {C}{C}{C} to your mana pool.${3}: Untap Basalt Monolith.| Book of Rass|Masters Edition IV|183|U|{6}|Artifact|||{2}, Pay 2 life: Draw a card.| Bottle of Suleiman|Masters Edition IV|184|R|{4}|Artifact|||{1}, Sacrifice Bottle of Suleiman: Flip a coin. If you lose the flip, Bottle of Suleiman deals 5 damage to you. If you win the flip, put a 5/5 colorless Djinn artifact creature token with flying onto the battlefield.| Brass Man|Masters Edition IV|185|C|{1}|Artifact Creature - Construct|1|3|Brass Man doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {1}. If you do, untap Brass Man.| @@ -11433,7 +11433,7 @@ Kormus Bell|Masters Edition IV|210|R|{4}|Artifact|||All Swamps are 1/1 black cre Library of Leng|Masters Edition IV|211|C|{1}|Artifact|||You have no maximum hand size.$If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.| Living Wall|Masters Edition IV|212|U|{4}|Artifact Creature - Wall|0|6|Defender (This creature can't attack.)${1}: Regenerate Living Wall.| Mana Matrix|Masters Edition IV|213|R|{6}|Artifact|||Instant and enchantment spells you cast cost up to {2} less to cast.| -Mana Vault|Masters Edition IV|214|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Vault|Masters Edition IV|214|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Mightstone|Masters Edition IV|215|C|{4}|Artifact|||Attacking creatures get +1/+0.| Naked Singularity|Masters Edition IV|216|R|{5}|Artifact|||Cumulative upkeep {3} (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)$If tapped for mana, Plains produce {R}, Islands produce {G}, Swamps produce {W}, Mountains produce {U}, and Forests produce {B} instead of any other type.| Obelisk of Undoing|Masters Edition IV|217|R|{1}|Artifact|||{6}, {tap}: Return target permanent you both own and control to your hand.| @@ -11447,7 +11447,7 @@ Rakalite|Masters Edition IV|223|R|{6}|Artifact|||{2}: Prevent the next 1 damage Ring of Renewal|Masters Edition IV|224|R|{5}|Artifact|||{5}, {tap}: Discard a card at random, then draw two cards.| Scarecrow|Masters Edition IV|225|U|{5}|Artifact Creature - Scarecrow|2|2|{6}, {tap}: Prevent all damage that would be dealt to you this turn by creatures with flying.| Shapeshifter|Masters Edition IV|226|U|{6}|Artifact Creature - Shapeshifter|*|7-*|As Shapeshifter enters the battlefield, choose a number between 0 and 7.$At the beginning of your upkeep, you may choose a number between 0 and 7.$Shapeshifter's power is equal to the last chosen number and its toughness is equal to 7 minus that number.| -Sol Ring|Masters Edition IV|227|R|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Masters Edition IV|227|R|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Soldevi Golem|Masters Edition IV|228|U|{4}|Artifact Creature - Golem|5|3|Soldevi Golem doesn't untap during your untap step.$At the beginning of your upkeep, you may untap target tapped creature an opponent controls. If you do, untap Soldevi Golem.| Staff of Zegon|Masters Edition IV|229|C|{4}|Artifact|||{3}, {tap}: Target creature gets -2/-0 until end of turn.| Righteous Charge|Masters Edition IV|23|C|{1}{W}{W}|Sorcery|||Creatures you control get +2/+2 until end of turn.| @@ -11466,32 +11466,32 @@ Yotian Soldier|Masters Edition IV|240|C|{3}|Artifact Creature - Soldier|1|4|Vigi Badlands|Masters Edition IV|241|R||Land - Swamp Mountain|||| Bayou|Masters Edition IV|242|R||Land - Swamp Forest|||| City of Brass|Masters Edition IV|243|R||Land|||Whenever City of Brass becomes tapped, it deals 1 damage to you.${tap}: Add one mana of any color to your mana pool.| -Elephant Graveyard|Masters Edition IV|244|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Regenerate target Elephant.| -Library of Alexandria|Masters Edition IV|245|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| +Elephant Graveyard|Masters Edition IV|244|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Regenerate target Elephant.| +Library of Alexandria|Masters Edition IV|245|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| Maze of Ith|Masters Edition IV|246|R||Land|||{tap}: Untap target attacking creature. Prevent all combat damage that would be dealt to and dealt by that creature this turn.| -Mishra's Workshop|Masters Edition IV|247|R||Land|||{tap}: Add {3} to your mana pool. Spend this mana only to cast artifact spells.| +Mishra's Workshop|Masters Edition IV|247|R||Land|||{tap}: Add {C}{C}{C} to your mana pool. Spend this mana only to cast artifact spells.| Oasis|Masters Edition IV|248|C||Land|||{tap}: Prevent the next 1 damage that would be dealt to target creature this turn.| Plateau|Masters Edition IV|249|R||Land - Mountain Plains|||| Serra Angel|Masters Edition IV|25|U|{3}{W}{W}|Creature - Angel|4|4|Flying$Vigilance (Attacking doesn't cause this creature to tap.)| Savannah|Masters Edition IV|250|R||Land - Forest Plains|||| Scrubland|Masters Edition IV|251|R||Land - Plains Swamp|||| -Strip Mine|Masters Edition IV|252|R||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| +Strip Mine|Masters Edition IV|252|R||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| Taiga|Masters Edition IV|253|R||Land - Mountain Forest|||| Tropical Island|Masters Edition IV|254|R||Land - Forest Island|||| Tundra|Masters Edition IV|255|R||Land - Plains Island|||| Underground Sea|Masters Edition IV|256|R||Land - Island Swamp|||| -Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| -Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| +Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Mine|Masters Edition IV|257|L||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Masters Edition IV|258|L||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| +Urza's Tower|Masters Edition IV|259|L||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| Serra Aviary|Masters Edition IV|26|U|{3}{W}|World Enchantment|||Creatures with flying get +1/+1.| Volcanic Island|Masters Edition IV|260|R||Land - Island Mountain|||| Serra Bestiary|Masters Edition IV|27|C|{W}{W}|Enchantment - Aura|||Enchant creature$At the beginning of your upkeep, sacrifice Serra Bestiary unless you pay {W}{W}.$Enchanted creature can't attack or block, and its activated abilities with {tap} in their costs can't be activated.| @@ -11534,7 +11534,7 @@ Balance|Masters Edition IV|6|R|{1}{W}|Sorcery|||Each player chooses a number of Sea Serpent|Masters Edition IV|60|C|{5}{U}|Creature - Serpent|5|5|Sea Serpent can't attack unless defending player controls an Island.$$When you control no Islands, sacrifice Sea Serpent.| Serendib Djinn|Masters Edition IV|61|R|{2}{U}{U}|Creature - Djinn|5|6|Flying$At the beginning of your upkeep, sacrifice a land. If you sacrifice an Island this way, Serendib Djinn deals 3 damage to you.$When you control no lands, sacrifice Serendib Djinn.| Sleight of Hand|Masters Edition IV|62|C|{U}|Sorcery|||Look at the top two cards of your library. Put one of them into your hand and the other on the bottom of your library.| -Soldevi Machinist|Masters Edition IV|63|U|{1}{U}|Creature - Human Wizard Artificer|1|1|{tap}: Add {2} to your mana pool. Spend this mana only to activate abilities of artifacts.| +Soldevi Machinist|Masters Edition IV|63|U|{1}{U}|Creature - Human Wizard Artificer|1|1|{tap}: Add {C}{C} to your mana pool. Spend this mana only to activate abilities of artifacts.| Stasis|Masters Edition IV|64|R|{1}{U}|Enchantment|||Players skip their untap steps.$$At the beginning of your upkeep, sacrifice Stasis unless you pay {U}.| Symbol of Unsummoning|Masters Edition IV|65|C|{2}{U}|Sorcery|||Return target creature to its owner's hand.$$Draw a card.| Talas Researcher|Masters Edition IV|66|U|{4}{U}|Creature - Human Pirate Wizard|1|1|{tap}: Draw a card. Activate this ability only during your turn, before attackers are declared.| @@ -11815,23 +11815,23 @@ Skull of Ramos|Mercadian Masques|312|R|{3}|Artifact|||{tap}: Add {B} to your man Tooth of Ramos|Mercadian Masques|313|R|{3}|Artifact|||{tap}: Add {W} to your mana pool.$$Sacrifice Tooth of Ramos: Add {W} to your mana pool.| Toymaker|Mercadian Masques|314|U|{2}|Artifact Creature - Spellshaper|1|1|{1}, {tap}, Discard a card: Target noncreature artifact becomes an artifact creature with power and toughness each equal to its converted mana cost until end of turn. (It retains its abilities.)| Worry Beads|Mercadian Masques|315|R|{3}|Artifact|||At the beginning of each player's upkeep, that player puts the top card of his or her library into his or her graveyard.| -Dust Bowl|Mercadian Masques|316|R||Land|||{tap}: Add {1} to your mana pool.$${3}, {tap}, Sacrifice a land: Destroy target nonbasic land.| +Dust Bowl|Mercadian Masques|316|R||Land|||{tap}: Add {C} to your mana pool.$${3}, {tap}, Sacrifice a land: Destroy target nonbasic land.| Fountain of Cho|Mercadian Masques|317|U||Land|||Fountain of Cho enters the battlefield tapped.${tap}: Put a storage counter on Fountain of Cho.${tap}, Remove any number of storage counters from Fountain of Cho: Add {W} to your mana pool for each storage counter removed this way.| -Henge of Ramos|Mercadian Masques|318|U||Land|||{tap}: Add {1} to your mana pool.$${2}, {tap}: Add one mana of any color to your mana pool.| +Henge of Ramos|Mercadian Masques|318|U||Land|||{tap}: Add {C} to your mana pool.$${2}, {tap}: Add one mana of any color to your mana pool.| Hickory Woodlot|Mercadian Masques|319|C||Land|||Hickory Woodlot enters the battlefield tapped with two depletion counters on it.${tap}, Remove a depletion counter from Hickory Woodlot: Add {G}{G} to your mana pool. If there are no depletion counters on Hickory Woodlot, sacrifice it.| Noble Purpose|Mercadian Masques|32|U|{3}{W}{W}|Enchantment|||Whenever a creature you control deals combat damage, you gain that much life.| -High Market|Mercadian Masques|320|R||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice a creature: You gain 1 life.| +High Market|Mercadian Masques|320|R||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice a creature: You gain 1 life.| Mercadian Bazaar|Mercadian Masques|321|U||Land|||Mercadian Bazaar enters the battlefield tapped.${tap}: Put a storage counter on Mercadian Bazaar.${tap}, Remove any number of storage counters from Mercadian Bazaar: Add {R} to your mana pool for each storage counter removed this way.| Peat Bog|Mercadian Masques|322|C||Land|||Peat Bog enters the battlefield tapped with two depletion counters on it.${tap}, Remove a depletion counter from Peat Bog: Add {B}{B} to your mana pool. If there are no depletion counters on Peat Bog, sacrifice it.| Remote Farm|Mercadian Masques|323|C||Land|||Remote Farm enters the battlefield tapped with two depletion counters on it.${tap}, Remove a depletion counter from Remote Farm: Add {W}{W} to your mana pool. If there are no depletion counters on Remote Farm, sacrifice it.| -Rishadan Port|Mercadian Masques|324|R||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Tap target land.| +Rishadan Port|Mercadian Masques|324|R||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Tap target land.| Rushwood Grove|Mercadian Masques|325|U||Land|||Rushwood Grove enters the battlefield tapped.${tap}: Put a storage counter on Rushwood Grove.${tap}, Remove any number of storage counters from Rushwood Grove: Add {G} to your mana pool for each storage counter removed this way.| Sandstone Needle|Mercadian Masques|326|C||Land|||Sandstone Needle enters the battlefield tapped with two depletion counters on it.${tap}, Remove a depletion counter from Sandstone Needle: Add {R}{R} to your mana pool. If there are no depletion counters on Sandstone Needle, sacrifice it.| Saprazzan Cove|Mercadian Masques|327|U||Land|||Saprazzan Cove enters the battlefield tapped.${tap}: Put a storage counter on Saprazzan Cove.${tap}, Remove any number of storage counters from Saprazzan Cove: Add {U} to your mana pool for each storage counter removed this way.| Saprazzan Skerry|Mercadian Masques|328|C||Land|||Saprazzan Skerry enters the battlefield tapped with two depletion counters on it.${tap}, Remove a depletion counter from Saprazzan Skerry: Add {U}{U} to your mana pool. If there are no depletion counters on Saprazzan Skerry, sacrifice it.| Subterranean Hangar|Mercadian Masques|329|U||Land|||Subterranean Hangar enters the battlefield tapped.${tap}: Put a storage counter on Subterranean Hangar.${tap}, Remove any number of storage counters from Subterranean Hangar: Add {B} to your mana pool for each storage counter removed this way.| Orim's Cure|Mercadian Masques|33|C|{1}{W}|Instant|||If you control a Plains, you may tap an untapped creature you control rather than pay Orim's Cure's mana cost.$Prevent the next 4 damage that would be dealt to target creature or player this turn.| -Tower of the Magistrate|Mercadian Masques|330|R||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Target creature gains protection from artifacts until end of turn.| +Tower of the Magistrate|Mercadian Masques|330|R||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Target creature gains protection from artifacts until end of turn.| Plains|Mercadian Masques|331|L||Basic Land - Plains|||W| Plains|Mercadian Masques|332|L||Basic Land - Plains|||W| Plains|Mercadian Masques|333|L||Basic Land - Plains|||W| @@ -12119,7 +12119,7 @@ Infernal Contract|Mirage|27|R|{B}{B}{B}|Sorcery|||Draw four cards. You lose half Igneous Golem|Mirage|270|U|{5}|Artifact Creature - Golem|3|4|{2}: Igneous Golem gains trample until end of turn.| Lead Golem|Mirage|271|U|{5}|Artifact Creature - Golem|3|5|Whenever Lead Golem attacks, it doesn't untap during its controller's next untap step.| Lion's Eye Diamond|Mirage|272|R|{0}|Artifact|||Sacrifice Lion's Eye Diamond, Discard your hand: Add three mana of any one color to your mana pool. Activate this ability only any time you could cast an instant.| -Mana Prism|Mirage|273|U|{3}|Artifact|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add one mana of any color to your mana pool.| +Mana Prism|Mirage|273|U|{3}|Artifact|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add one mana of any color to your mana pool.| Mangara's Tome|Mirage|274|R|{5}|Artifact|||When Mangara's Tome enters the battlefield, search your library for five cards, exile them in a face-down pile, and shuffle that pile. Then shuffle your library.${2}: The next time you would draw a card this turn, instead put the top card of the exiled pile into its owner's hand.| Marble Diamond|Mirage|275|U|{2}|Artifact|||Marble Diamond enters the battlefield tapped.${tap}: Add {W} to your mana pool.| Misers' Cage|Mirage|276|R|{3}|Artifact|||At the beginning of each opponent's upkeep, if that player has five or more cards in hand, Misers' Cage deals 2 damage to him or her.| @@ -12135,10 +12135,10 @@ Sky Diamond|Mirage|284|U|{2}|Artifact|||Sky Diamond enters the battlefield tappe Teeka's Dragon|Mirage|285|R|{9}|Artifact Creature - Dragon|5|5|Flying; trample; rampage 4 (Whenever this creature becomes blocked, it gets +4/+4 until end of turn for each creature blocking it beyond the first.)| Telim'Tor's Darts|Mirage|286|U|{2}|Artifact|||{2}, {tap}: Telim'Tor's Darts deals 1 damage to target player.| Unerring Sling|Mirage|287|U|{3}|Artifact|||{3}, {tap}, Tap an untapped creature you control: Unerring Sling deals damage equal to the tapped creature's power to target attacking or blocking creature with flying.| -Ventifact Bottle|Mirage|288|R|{3}|Artifact|||{X}{1}, {tap}: Put X charge counters on Ventifact Bottle. Activate this ability only any time you could cast a sorcery.$At the beginning of your precombat main phase, if Ventifact Bottle has a charge counter on it, tap it and remove all charge counters from it. Add {1} to your mana pool for each charge counter removed this way.| +Ventifact Bottle|Mirage|288|R|{3}|Artifact|||{X}{1}, {tap}: Put X charge counters on Ventifact Bottle. Activate this ability only any time you could cast a sorcery.$At the beginning of your precombat main phase, if Ventifact Bottle has a charge counter on it, tap it and remove all charge counters from it. Add {C} to your mana pool for each charge counter removed this way.| Bad River|Mirage|289|U||Land|||Bad River enters the battlefield tapped.${tap}, Sacrifice Bad River: Search your library for an Island or Swamp card and put it onto the battlefield. Then shuffle your library.| Mire Shade|Mirage|29|U|{1}{B}|Creature - Shade|1|1|{B}, Sacrifice a Swamp: Put a +1/+1 counter on Mire Shade. Activate this ability only any time you could cast a sorcery.| -Crystal Vein|Mirage|290|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Crystal Vein: Add {2} to your mana pool.| +Crystal Vein|Mirage|290|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Crystal Vein: Add {C}{C} to your mana pool.| Flood Plain|Mirage|291|U||Land|||Flood Plain enters the battlefield tapped.${tap}, Sacrifice Flood Plain: Search your library for a Plains or Island card and put it onto the battlefield. Then shuffle your library.| Forest|Mirage|292|L||Basic Land - Forest|||G| Forest|Mirage|293|L||Basic Land - Forest|||G| @@ -12266,7 +12266,7 @@ Reality Ripple|Mirage|87|C|{1}{U}|Instant|||Target artifact, creature, or land p Sandbar Crocodile|Mirage|88|C|{4}{U}|Creature - Crocodile|6|5|Phasing (This phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist.)| Sapphire Charm|Mirage|89|C|{U}|Instant|||Choose one - Target player draws a card at the beginning of the next turn's upkeep; or target creature gains flying until end of turn; or target creature an opponent controls phases out. (While it's phased out, it's treated as though it doesn't exist. It phases in before its controller untaps during his or her next untap step.)| Carrion|Mirage|9|R|{1}{B}{B}|Instant|||As an additional cost to cast Carrion, sacrifice a creature.$Put X 0/1 black Insect creature tokens onto the battlefield, where X is the sacrificed creature's power.| -Sea Scryer|Mirage|90|C|{1}{U}|Creature - Merfolk Wizard|1|1|{tap}: Add {1} to your mana pool.${1}, {tap}: Add {U} to your mana pool.| +Sea Scryer|Mirage|90|C|{1}{U}|Creature - Merfolk Wizard|1|1|{tap}: Add {C} to your mana pool.${1}, {tap}: Add {U} to your mana pool.| Shaper Guildmage|Mirage|91|C|{U}|Creature - Human Wizard|1|1|{W}, {tap}: Target creature gains first strike until end of turn.${B}, {tap}: Target creature gets +1/+0 until end of turn.| Soar|Mirage|93|C|{1}{U}|Enchantment - Aura|||You may cast Soar as though it had flash. If you cast it any time a sorcery couldn't have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step.$Enchant creature$Enchanted creature gets +0/+1 and has flying.| Suq'Ata Firewalker|Mirage|94|U|{1}{U}{U}|Creature - Human Wizard|0|1|Suq'Ata Firewalker can't be the target of red spells or abilities from red sources.${tap}: Suq'Ata Firewalker deals 1 damage to target creature or player.| @@ -12329,7 +12329,7 @@ Blinkmoth Urn|Mirrodin|145|R|{5}|Artifact|||At the beginning of each player's pr Bonesplitter|Mirrodin|146|C|{1}|Artifact - Equipment|||Equipped creature gets +2/+0.$Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery. This card enters the battlefield unattached and stays on the battlefield if the creature leaves.)| Bosh, Iron Golem|Mirrodin|147|R|{8}|Legendary Artifact Creature - Golem|6|7|Trample${3}{R}, Sacrifice an artifact: Bosh, Iron Golem deals damage equal to the sacrificed artifact's converted mana cost to target creature or player.| Bottle Gnomes|Mirrodin|148|U|{3}|Artifact Creature - Gnome|1|3|Sacrifice Bottle Gnomes: You gain 3 life.| -Cathodion|Mirrodin|149|U|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {3} to your mana pool.| +Cathodion|Mirrodin|149|U|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {C}{C}{C} to your mana pool.| Luminous Angel|Mirrodin|15|R|{4}{W}{W}{W}|Creature - Angel|4|4|Flying$At the beginning of your upkeep, you may put a 1/1 white Spirit creature token with flying onto the battlefield.| Chalice of the Void|Mirrodin|150|R|{X}{X}|Artifact|||Chalice of the Void enters the battlefield with X charge counters on it.$Whenever a player casts a spell with converted mana cost equal to the number of charge counters on Chalice of the Void, counter that spell.| Chromatic Sphere|Mirrodin|151|C|{1}|Artifact|||{1}, {tap}, Sacrifice Chromatic Sphere: Add one mana of any color to your mana pool. Draw a card.| @@ -12445,11 +12445,11 @@ Soul Nova|Mirrodin|25|U|{3}{W}{W}|Instant|||Exile target attacking creature and Sunbeam Spellbomb|Mirrodin|250|C|{1}|Artifact|||{W}, Sacrifice Sunbeam Spellbomb: You gain 5 life.${1}, Sacrifice Sunbeam Spellbomb: Draw a card.| Sword of Kaldra|Mirrodin|251|R|{4}|Legendary Artifact - Equipment|||Equipped creature gets +5/+5.$Whenever equipped creature deals damage to a creature, exile that creature.$Equip {4} ({4}: Attach to target creature you control. Equip only as a sorcery. This card enters the battlefield unattached and stays on the battlefield if the creature leaves.)| Synod Sanctum|Mirrodin|252|U|{1}|Artifact|||{2}, {tap}: Exile target permanent you control.${2}, Sacrifice Synod Sanctum: Return all cards exiled with Synod Sanctum to the battlefield under your control.| -Talisman of Dominance|Mirrodin|253|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Talisman of Dominance deals 1 damage to you.| -Talisman of Impulse|Mirrodin|254|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Talisman of Impulse deals 1 damage to you.| -Talisman of Indulgence|Mirrodin|255|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Talisman of Indulgence deals 1 damage to you.| -Talisman of Progress|Mirrodin|256|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Talisman of Progress deals 1 damage to you.| -Talisman of Unity|Mirrodin|257|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Talisman of Unity deals 1 damage to you.| +Talisman of Dominance|Mirrodin|253|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Talisman of Dominance deals 1 damage to you.| +Talisman of Impulse|Mirrodin|254|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Talisman of Impulse deals 1 damage to you.| +Talisman of Indulgence|Mirrodin|255|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Talisman of Indulgence deals 1 damage to you.| +Talisman of Progress|Mirrodin|256|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Talisman of Progress deals 1 damage to you.| +Talisman of Unity|Mirrodin|257|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Talisman of Unity deals 1 damage to you.| Tanglebloom|Mirrodin|258|C|{1}|Artifact|||{1}, {tap}: You gain 1 life.| Tangleroot|Mirrodin|259|R|{3}|Artifact|||Whenever a player casts a creature spell, that player adds {G} to his or her mana pool.| Sphere of Purity|Mirrodin|26|C|{3}{W}|Enchantment|||If an artifact would deal damage to you, prevent 1 of that damage.| @@ -12473,13 +12473,13 @@ Wizard Replica|Mirrodin|275|C|{3}|Artifact Creature - Wizard|1|3|Flying${U}, Sac Worldslayer|Mirrodin|276|R|{5}|Artifact - Equipment|||Whenever equipped creature deals combat damage to a player, destroy all permanents other than Worldslayer.$Equip {5} ({5}: Attach to target creature you control. Equip only as a sorcery.)| Yotian Soldier|Mirrodin|277|C|{3}|Artifact Creature - Soldier|1|4|Vigilance| Ancient Den|Mirrodin|278|C||Artifact Land|||(Ancient Den isn't a spell.)${tap}: Add {W} to your mana pool.| -Blinkmoth Well|Mirrodin|279|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: Tap target noncreature artifact.| +Blinkmoth Well|Mirrodin|279|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: Tap target noncreature artifact.| Tempest of Light|Mirrodin|28|U|{2}{W}|Instant|||Destroy all enchantments.| -Cloudpost|Mirrodin|280|C||Land - Locus|||Cloudpost enters the battlefield tapped.${tap}: Add {1} to your mana pool for each Locus on the battlefield.| +Cloudpost|Mirrodin|280|C||Land - Locus|||Cloudpost enters the battlefield tapped.${tap}: Add {C} to your mana pool for each Locus on the battlefield.| Glimmervoid|Mirrodin|281|R||Land|||At the beginning of the end step, if you control no artifacts, sacrifice Glimmervoid.${tap}: Add one mana of any color to your mana pool.| Great Furnace|Mirrodin|282|C||Artifact Land|||(Great Furnace isn't a spell.)${tap}: Add {R} to your mana pool.| Seat of the Synod|Mirrodin|283|C||Artifact Land|||(Seat of the Synod isn't a spell.)${tap}: Add {U} to your mana pool.| -Stalking Stones|Mirrodin|284|U||Land|||{tap}: Add {1} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land. (This effect lasts indefinitely.)| +Stalking Stones|Mirrodin|284|U||Land|||{tap}: Add {C} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land. (This effect lasts indefinitely.)| Tree of Tales|Mirrodin|285|C||Artifact Land|||(Tree of Tales isn't a spell.)${tap}: Add {G} to your mana pool.| Vault of Whispers|Mirrodin|286|C||Artifact Land|||(Vault of Whispers isn't a spell.)${tap}: Add {B} to your mana pool.| Plains|Mirrodin|287|L||Basic Land - Plains|||W| @@ -12609,7 +12609,7 @@ Phyrexian Juggernaut|Mirrodin Besieged|121|U|{6}|Artifact Creature - Juggernaut| Phyrexian Revoker|Mirrodin Besieged|122|R|{2}|Artifact Creature - Horror|2|1|As Phyrexian Revoker enters the battlefield, name a nonland card.$Activated abilities of sources with the chosen name can't be activated.| Pierce Strider|Mirrodin Besieged|123|U|{4}|Artifact Creature - Construct|3|3|When Pierce Strider enters the battlefield, target opponent loses 3 life.| Piston Sledge|Mirrodin Besieged|124|U|{3}|Artifact - Equipment|||When Piston Sledge enters the battlefield, attach it to target creature you control.$Equipped creature gets +3/+1.$Equip-Sacrifice an artifact.| -Plague Myr|Mirrodin Besieged|125|U|{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.)${tap}: Add {1} to your mana pool.| +Plague Myr|Mirrodin Besieged|125|U|{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.)${tap}: Add {C} to your mana pool.| Psychosis Crawler|Mirrodin Besieged|126|R|{5}|Artifact Creature - Horror|*|*|Psychosis Crawler's power and toughness are each equal to the number of cards in your hand.$Whenever you draw a card, each opponent loses 1 life.| Razorfield Rhino|Mirrodin Besieged|127|C|{6}|Artifact Creature - Rhino|4|4|Metalcraft - Razorfield Rhino gets +2/+2 as long as you control three or more artifacts.| Rusted Slasher|Mirrodin Besieged|128|C|{4}|Artifact Creature - Horror|4|1|Sacrifice an artifact: Regenerate Rusted Slasher.| @@ -12630,8 +12630,8 @@ Thopter Assembly|Mirrodin Besieged|140|R|{6}|Artifact Creature - Thopter|5|5|Fly Titan Forge|Mirrodin Besieged|141|R|{3}|Artifact|||{3}, {tap}: Put a charge counter on Titan Forge.${tap}, Remove three charge counters from Titan Forge: Put a 9/9 colorless Golem artifact creature token onto the battlefield.| Training Drone|Mirrodin Besieged|142|C|{3}|Artifact Creature - Drone|4|4|Training Drone can't attack or block unless it's equipped.| Viridian Claw|Mirrodin Besieged|143|U|{2}|Artifact - Equipment|||Equipped creature gets +1/+0 and has first strike.$Equip {1}| -Contested War Zone|Mirrodin Besieged|144|R||Land|||Whenever a creature deals combat damage to you, that creature's controller gains control of Contested War Zone.${tap}: Add {1} to your mana pool.${1}, {tap}: Attacking creatures get +1/+0 until end of turn.| -Inkmoth Nexus|Mirrodin Besieged|145|R||Land|||{tap}: Add {1} to your mana pool.${1}: Inkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)| +Contested War Zone|Mirrodin Besieged|144|R||Land|||Whenever a creature deals combat damage to you, that creature's controller gains control of Contested War Zone.${tap}: Add {C} to your mana pool.${1}, {tap}: Attacking creatures get +1/+0 until end of turn.| +Inkmoth Nexus|Mirrodin Besieged|145|R||Land|||{tap}: Add {C} to your mana pool.${1}: Inkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn. It's still a land. (It deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)| Plains|Mirrodin Besieged|146|L||Basic Land - Plains|||W| Plains|Mirrodin Besieged|147|L||Basic Land - Plains|||W| Island|Mirrodin Besieged|148|L||Basic Land - Island|||U| @@ -12789,8 +12789,8 @@ Obsidian Battle-Axe|Morningtide|144|U|{3}|Tribal Artifact - Warrior Equipment||| Thornbite Staff|Morningtide|145|U|{2}|Tribal Artifact - Shaman Equipment|||Equipped creature has "{2}, {tap}: This creature deals 1 damage to target creature or player" and "Whenever a creature dies, untap this creature."$Whenever a Shaman creature enters the battlefield, you may attach Thornbite Staff to it.$Equip {4}| Veteran's Armaments|Morningtide|146|U|{2}|Tribal Artifact - Soldier Equipment|||Equipped creature has "Whenever this creature attacks or blocks, it gets +1/+1 until end of turn for each attacking creature."$Whenever a Soldier creature enters the battlefield, you may attach Veteran's Armaments to it.$Equip {2}| Murmuring Bosk|Morningtide|147|R||Land - Forest|||({tap}: Add {G} to your mana pool.)$As Murmuring Bosk enters the battlefield, you may reveal a Treefolk card from your hand. If you don't, Murmuring Bosk enters the battlefield tapped.${tap}: Add {W} or {B} to your mana pool. Murmuring Bosk deals 1 damage to you.| -Mutavault|Morningtide|148|R||Land|||{tap}: Add {1} to your mana pool.${1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.| -Primal Beyond|Morningtide|149|R||Land|||As Primal Beyond enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Primal Beyond enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add one mana of any color to your mana pool. Spend this mana only to cast an Elemental spell or activate an ability of an Elemental.| +Mutavault|Morningtide|148|R||Land|||{tap}: Add {C} to your mana pool.${1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.| +Primal Beyond|Morningtide|149|R||Land|||As Primal Beyond enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Primal Beyond enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add one mana of any color to your mana pool. Spend this mana only to cast an Elemental spell or activate an ability of an Elemental.| Kinsbaile Cavalier|Morningtide|15|R|{3}{W}|Creature - Kithkin Knight|2|2|Knight creatures you control have double strike.| Rustic Clachan|Morningtide|150|R||Land|||As Rustic Clachan enters the battlefield, you may reveal a Kithkin card from your hand. If you don't, Rustic Clachan enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Reinforce 1-{1}{W} ({1}{W}, Discard this card: Put a +1/+1 counter on target creature.)| Kithkin Zephyrnaut|Morningtide|16|C|{2}{W}|Creature - Kithkin Soldier|2|2|Kinship - At the beginning of your upkeep, you may look at the top card of your library. If it shares a creature type with Kithkin Zephyrnaut, you may reveal it. If you do, Kithkin Zephyrnaut gets +2/+2 and gains flying and vigilance until end of turn.| @@ -12932,9 +12932,9 @@ Rusting Golem|Nemesis|138|U|{4}|Artifact Creature - Golem|*|*|Fading 5 (This Tangle Wire|Nemesis|139|R|{3}|Artifact|||Fading 4 (This artifact enters the battlefield with four fade counters on it. At the beginning of your upkeep, remove a fade counter from it. If you can't, sacrifice it.)$At the beginning of each player's upkeep, that player taps an untapped artifact, creature, or land he or she controls for each fade counter on Tangle Wire.| Noble Stand|Nemesis|14|U|{4}{W}|Enchantment|||Whenever a creature you control blocks, you gain 2 life.| Viseling|Nemesis|140|U|{4}|Artifact Creature - Construct|2|2|At the beginning of each opponent's upkeep, Viseling deals X damage to that player, where X is the number of cards in his or her hand minus 4.| -Kor Haven|Nemesis|141|R||Legendary Land|||{tap}: Add {1} to your mana pool.$${1}{W}, {tap}: Prevent all combat damage that would be dealt by target attacking creature this turn.| -Rath's Edge|Nemesis|142|R||Legendary Land|||{tap}: Add {1} to your mana pool.$${4}, {tap}, Sacrifice a land: Rath's Edge deals 1 damage to target creature or player.| -Terrain Generator|Nemesis|143|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: You may put a basic land card from your hand onto the battlefield tapped.| +Kor Haven|Nemesis|141|R||Legendary Land|||{tap}: Add {C} to your mana pool.$${1}{W}, {tap}: Prevent all combat damage that would be dealt by target attacking creature this turn.| +Rath's Edge|Nemesis|142|R||Legendary Land|||{tap}: Add {C} to your mana pool.$${4}, {tap}, Sacrifice a land: Rath's Edge deals 1 damage to target creature or player.| +Terrain Generator|Nemesis|143|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: You may put a basic land card from your hand onto the battlefield tapped.| Off Balance|Nemesis|15|C|{W}|Instant|||Target creature can't attack or block this turn.| Oracle's Attendants|Nemesis|16|R|{3}{W}|Creature - Human Soldier|1|5|{tap}: All damage that would be dealt to target creature this turn by a source of your choice is dealt to Oracle's Attendants instead.| Parallax Wave|Nemesis|17|R|{2}{W}{W}|Enchantment|||Fading 5 (This enchantment enters the battlefield with five fade counters on it. At the beginning of your upkeep, remove a fade counter from it. If you can't, sacrifice it.)$Remove a fade counter from Parallax Wave: Exile target creature.$When Parallax Wave leaves the battlefield, each player returns to the battlefield all cards he or she owns exiled with Parallax Wave.| @@ -13020,7 +13020,7 @@ Laccolith Titan|Nemesis|89|R|{5}{R}{R}|Creature - Beast|6|6|Whenever Laccolith T Lashknife|Nemesis|9|C|{1}{W}|Enchantment - Aura|||If you control a Plains, you may tap an untapped creature you control rather than pay Lashknife's mana cost.$Enchant creature$Enchanted creature has first strike.| Laccolith Warrior|Nemesis|90|U|{2}{R}{R}|Creature - Beast Warrior|3|3|Whenever Laccolith Warrior becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Warrior assigns no combat damage this turn.| Laccolith Whelp|Nemesis|91|C|{R}|Creature - Beast|1|1|Whenever Laccolith Whelp becomes blocked, you may have it deal damage equal to its power to target creature. If you do, Laccolith Whelp assigns no combat damage this turn.| -Mana Cache|Nemesis|92|R|{1}{R}{R}|Enchantment|||At the beginning of each player's end step, put a charge counter on Mana Cache for each untapped land that player controls.$Remove a charge counter from Mana Cache: Add {1} to your mana pool. Any player may activate this ability but only during his or her turn before the end step.| +Mana Cache|Nemesis|92|R|{1}{R}{R}|Enchantment|||At the beginning of each player's end step, put a charge counter on Mana Cache for each untapped land that player controls.$Remove a charge counter from Mana Cache: Add {C} to your mana pool. Any player may activate this ability but only during his or her turn before the end step.| Mogg Alarm|Nemesis|93|U|{1}{R}{R}|Sorcery|||You may sacrifice two Mountains rather than pay Mogg Alarm's mana cost.$Put two 1/1 red Goblin creature tokens onto the battlefield.| Mogg Salvage|Nemesis|94|U|{2}{R}|Instant|||If an opponent controls an Island and you control a Mountain, you may cast Mogg Salvage without paying its mana cost.$Destroy target artifact.| Mogg Toady|Nemesis|95|C|{1}{R}|Creature - Goblin|2|2|Mogg Toady can't attack unless you control more creatures than defending player.$Mogg Toady can't block unless you control more creatures than attacking player.| @@ -13086,8 +13086,8 @@ Omen Machine|New Phyrexia|148|R|{6}|Artifact|||Players can't draw cards.$At the Pestilent Souleater|New Phyrexia|149|C|{5}|Artifact Creature - Insect|3|3|{BP}: Pestilent Souleater gains infect until end of turn. ({BP} can be paid with either {B} or 2 life. A creature with infect deals damage to creatures in the form of -1/-1 counters and to players in the form of poison counters.)| Marrow Shards|New Phyrexia|15|U|{WP}|Instant|||({WP} can be paid with either {W} or 2 life.)$Marrow Shards deals 1 damage to each attacking creature.| Phyrexian Hulk|New Phyrexia|150|C|{6}|Artifact Creature - Golem|5|4|| -Pristine Talisman|New Phyrexia|151|C|{3}|Artifact|||{tap}: Add {1} to your mana pool. You gain 1 life.| -Shrine of Boundless Growth|New Phyrexia|152|U|{3}|Artifact|||At the beginning of your upkeep or whenever you cast a green spell, put a charge counter on Shrine of Boundless Growth.${tap}, Sacrifice Shrine of Boundless Growth: Add {1} to your mana pool for each charge counter on Shrine of Boundless Growth.| +Pristine Talisman|New Phyrexia|151|C|{3}|Artifact|||{tap}: Add {C} to your mana pool. You gain 1 life.| +Shrine of Boundless Growth|New Phyrexia|152|U|{3}|Artifact|||At the beginning of your upkeep or whenever you cast a green spell, put a charge counter on Shrine of Boundless Growth.${tap}, Sacrifice Shrine of Boundless Growth: Add {C} to your mana pool for each charge counter on Shrine of Boundless Growth.| Shrine of Burning Rage|New Phyrexia|153|U|{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}, {tap}, 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.| Shrine of Limitless Power|New Phyrexia|154|U|{3}|Artifact|||At the beginning of your upkeep or whenever you cast a black spell, put a charge counter on Shrine of Limitless Power.${4}, {tap}, Sacrifice Shrine of Limitless Power: Target player discards a card for each charge counter on Shrine of Limitless Power.| Shrine of Loyal Legions|New Phyrexia|155|U|{2}|Artifact|||At the beginning of your upkeep or whenever you cast a white spell, put a charge counter on Shrine of Loyal Legions.${3}, {tap}, Sacrifice Shrine of Loyal Legions: Put a 1/1 colorless Myr artifact creature token onto the battlefield for each charge counter on Shrine of Loyal Legions.| @@ -13101,7 +13101,7 @@ Sword of War and Peace|New Phyrexia|161|M|{3}|Artifact - Equipment|||Equipped cr Torpor Orb|New Phyrexia|162|R|{2}|Artifact|||Creatures entering the battlefield don't cause abilities to trigger.| Trespassing Souleater|New Phyrexia|163|C|{3}|Artifact Creature - Construct|2|2|{UP}: Trespassing Souleater is unblockable this turn. ({UP} can be paid with either {U} or 2 life.)| Unwinding Clock|New Phyrexia|164|R|{4}|Artifact|||Untap all artifacts you control during each other player's untap step.| -Phyrexia's Core|New Phyrexia|165|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice an artifact: You gain 1 life.| +Phyrexia's Core|New Phyrexia|165|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice an artifact: You gain 1 life.| Plains|New Phyrexia|166|L||Basic Land - Plains|||W| Plains|New Phyrexia|167|L||Basic Land - Plains|||W| Island|New Phyrexia|168|L||Basic Land - Island|||U| @@ -13446,25 +13446,25 @@ Storage Matrix|Ninth Edition|310|R|{3}|Artifact|||As long as Storage Matrix is u Tanglebloom|Ninth Edition|311|U|{1}|Artifact|||{1}, {tap}: You gain 1 life.| Teferi's Puzzle Box|Ninth Edition|312|R|{4}|Artifact|||At the beginning of each player's draw step, that player puts the cards in his or her hand on the bottom of his or her library in any order, then draws that many cards.| Thran Golem|Ninth Edition|313|R|{5}|Artifact Creature - Golem|3|3|As long as Thran Golem is enchanted, it gets +2/+2 and has flying, first strike, and trample.| -Ur-Golem's Eye|Ninth Edition|314|U|{4}|Artifact|||{tap}: Add {2} to your mana pool.| +Ur-Golem's Eye|Ninth Edition|314|U|{4}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Vulshok Morningstar|Ninth Edition|315|U|{2}|Artifact - Equipment|||Equipped creature gets +2/+2.$Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)| Wurm's Tooth|Ninth Edition|316|U|{2}|Artifact|||Whenever a player casts a green spell, you may gain 1 life.| -Adarkar Wastes|Ninth Edition|317|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| -Battlefield Forge|Ninth Edition|318|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| -Brushland|Ninth Edition|319|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| +Adarkar Wastes|Ninth Edition|317|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| +Battlefield Forge|Ninth Edition|318|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| +Brushland|Ninth Edition|319|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| Paladin en-Vec|Ninth Edition|32|R|{1}{W}{W}|Creature - Human Knight|2|2|First strike, protection from black and from red (This creature deals combat damage before creatures without first strike. It can't be blocked, targeted, dealt damage, or enchanted by anything black or red.)| -Caves of Koilos|Ninth Edition|320|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| -Karplusan Forest|Ninth Edition|321|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| -Llanowar Wastes|Ninth Edition|322|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| -Quicksand|Ninth Edition|323|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| -Shivan Reef|Ninth Edition|324|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| -Sulfurous Springs|Ninth Edition|325|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| -Underground River|Ninth Edition|326|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| -Urza's Mine|Ninth Edition|327|U||Land - Urza s Mine|||{tap}: Add {1} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Power Plant|Ninth Edition|328|U||Land - Urza s Power-Plant|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {2} to your mana pool instead.| -Urza's Tower|Ninth Edition|329|U||Land - Urza s Tower|||{tap}: Add {1} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {3} to your mana pool instead.| +Caves of Koilos|Ninth Edition|320|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| +Karplusan Forest|Ninth Edition|321|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| +Llanowar Wastes|Ninth Edition|322|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| +Quicksand|Ninth Edition|323|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| +Shivan Reef|Ninth Edition|324|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| +Sulfurous Springs|Ninth Edition|325|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| +Underground River|Ninth Edition|326|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| +Urza's Mine|Ninth Edition|327|U||Land - Urza s Mine|||{tap}: Add {C} to your mana pool. If you control an Urza's Power-Plant and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Power Plant|Ninth Edition|328|U||Land - Urza s Power-Plant|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Tower, add {C}{C} to your mana pool instead.| +Urza's Tower|Ninth Edition|329|U||Land - Urza s Tower|||{tap}: Add {C} to your mana pool. If you control an Urza's Mine and an Urza's Power-Plant, add {C}{C}{C} to your mana pool instead.| Peace of Mind|Ninth Edition|33|U|{1}{W}|Enchantment|||{W}, Discard a card: You gain 3 life.| -Yavimaya Coast|Ninth Edition|330|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| +Yavimaya Coast|Ninth Edition|330|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| Plains|Ninth Edition|331|L||Basic Land - Plains|||W| Plains|Ninth Edition|332|L||Basic Land - Plains|||W| Plains|Ninth Edition|333|L||Basic Land - Plains|||W| @@ -13734,7 +13734,7 @@ Metamorphic Wurm|Odyssey|250|U|{3}{G}{G}|Creature - Elephant Wurm|3|3|Threshold Moment's Peace|Odyssey|251|C|{1}{G}|Instant|||Prevent all combat damage that would be dealt this turn.$Flashback {2}{G} (You may cast this card from your graveyard for its flashback cost. Then exile it.)| Muscle Burst|Odyssey|252|C|{1}{G}|Instant|||Target creature gets +X/+X until end of turn, where X is 3 plus the number of cards named Muscle Burst in all graveyards.| Nantuko Disciple|Odyssey|253|C|{3}{G}|Creature - Insect Druid|2|2|{G}, {tap}: Target creature gets +2/+2 until end of turn.| -Nantuko Elder|Odyssey|254|U|{2}{G}|Creature - Insect Druid|1|2|{tap}: Add {1}{G} to your mana pool.| +Nantuko Elder|Odyssey|254|U|{2}{G}|Creature - Insect Druid|1|2|{tap}: Add {C}{G} to your mana pool.| Nantuko Mentor|Odyssey|255|R|{2}{G}|Creature - Insect Druid|1|1|{2}{G}, {tap}: Target creature gets +X/+X until end of turn, where X is that creature's power.| Nantuko Shrine|Odyssey|256|R|{1}{G}{G}|Enchantment|||Whenever a player casts a spell, that player puts X 1/1 green Squirrel creature tokens onto the battlefield, where X is the number of cards in all graveyards with the same name as that spell.| New Frontiers|Odyssey|257|R|{X}{G}|Sorcery|||Each player may search his or her library for up to X basic land cards and put them onto the battlefield tapped. Then each player who searched his or her library this way shuffles it.| @@ -13788,7 +13788,7 @@ Angelic Wall|Odyssey|3|C|{1}{W}|Creature - Wall|0|4|Defender, flying| Life Burst|Odyssey|30|C|{1}{W}|Instant|||Target player gains 4 life, then gains 4 life for each card named Life Burst in each graveyard.| Junk Golem|Odyssey|300|R|{4}|Artifact Creature - Golem|0|0|Junk Golem enters the battlefield with three +1/+1 counters on it.$At the beginning of your upkeep, sacrifice Junk Golem unless you remove a +1/+1 counter from it.${1}, Discard a card: Put a +1/+1 counter on Junk Golem.| Limestone Golem|Odyssey|301|U|{6}|Artifact Creature - Golem|3|4|{2}, Sacrifice Limestone Golem: Target player draws a card.| -Millikin|Odyssey|302|U|{2}|Artifact Creature - Construct|0|1|{tap}, Put the top card of your library into your graveyard: Add {1} to your mana pool.| +Millikin|Odyssey|302|U|{2}|Artifact Creature - Construct|0|1|{tap}, Put the top card of your library into your graveyard: Add {C} to your mana pool.| Mirari|Odyssey|303|R|{5}|Legendary Artifact|||Whenever you cast an instant or sorcery spell, you may pay {3}. If you do, copy that spell. You may choose new targets for the copy.| Mossfire Egg|Odyssey|304|U|{1}|Artifact|||{2}, {tap}, Sacrifice Mossfire Egg: Add {R}{G} to your mana pool. Draw a card.| Otarian Juggernaut|Odyssey|305|R|{4}|Artifact Creature - Juggernaut|2|3|Otarian Juggernaut can't be blocked by Walls.$Threshold - As long as seven or more cards are in your graveyard, Otarian Juggernaut gets +3/+0 and attacks each turn if able.| @@ -13805,19 +13805,19 @@ Bog Wreckage|Odyssey|314|C||Land|||Bog Wreckage enters the battlefield tapped.${ Cabal Pit|Odyssey|315|U||Land|||{tap}: Add {B} to your mana pool. Cabal Pit deals 1 damage to you.$Threshold - {B}, {tap}, Sacrifice Cabal Pit: Target creature gets -2/-2 until end of turn. Activate this ability only if seven or more cards are in your graveyard.| Centaur Garden|Odyssey|316|U||Land|||{tap}: Add {G} to your mana pool. Centaur Garden deals 1 damage to you.$Threshold - {G}, {tap}, Sacrifice Centaur Garden: Target creature gets +3/+3 until end of turn. Activate this ability only if seven or more cards are in your graveyard.| Cephalid Coliseum|Odyssey|317|U||Land|||{tap}: Add {U} to your mana pool. Cephalid Coliseum deals 1 damage to you.$Threshold - {U}, {tap}, Sacrifice Cephalid Coliseum: Target player draws three cards, then discards three cards. Activate this ability only if seven or more cards are in your graveyard.| -Crystal Quarry|Odyssey|318|R||Land|||{tap}: Add {1} to your mana pool.$${5}, {tap}: Add {W}{U}{B}{R}{G} to your mana pool.| +Crystal Quarry|Odyssey|318|R||Land|||{tap}: Add {C} to your mana pool.$${5}, {tap}: Add {W}{U}{B}{R}{G} to your mana pool.| Darkwater Catacombs|Odyssey|319|R||Land|||{1}, {tap}: Add {U}{B} to your mana pool.| Master Apothecary|Odyssey|32|R|{W}{W}{W}|Creature - Human Cleric|2|2|Tap an untapped Cleric you control: Prevent the next 2 damage that would be dealt to target creature or player this turn.| -Deserted Temple|Odyssey|320|R||Land|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Untap target land.| +Deserted Temple|Odyssey|320|R||Land|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Untap target land.| Mossfire Valley|Odyssey|321|R||Land|||{1}, {tap}: Add {R}{G} to your mana pool.| Nomad Stadium|Odyssey|322|U||Land|||{tap}: Add {W} to your mana pool. Nomad Stadium deals 1 damage to you.$Threshold - {W}, {tap}, Sacrifice Nomad Stadium: You gain 4 life. Activate this ability only if seven or more cards are in your graveyard.| -Petrified Field|Odyssey|323|R||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Petrified Field: Return target land card from your graveyard to your hand.| +Petrified Field|Odyssey|323|R||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Petrified Field: Return target land card from your graveyard to your hand.| Ravaged Highlands|Odyssey|324|C||Land|||Ravaged Highlands enters the battlefield tapped.${tap}: Add {R} to your mana pool.${tap}, Sacrifice Ravaged Highlands: Add one mana of any color to your mana pool.| Seafloor Debris|Odyssey|325|C||Land|||Seafloor Debris enters the battlefield tapped.${tap}: Add {U} to your mana pool.${tap}, Sacrifice Seafloor Debris: Add one mana of any color to your mana pool.| Shadowblood Ridge|Odyssey|326|R||Land|||{1}, {tap}: Add {B}{R} to your mana pool.| Skycloud Expanse|Odyssey|327|R||Land|||{1}, {tap}: Add {W}{U} to your mana pool.| Sungrass Prairie|Odyssey|328|R||Land|||{1}, {tap}: Add {G}{W} to your mana pool.| -Tarnished Citadel|Odyssey|329|R||Land|||{tap}: Add {1} to your mana pool.$${tap}: Add one mana of any color to your mana pool. Tarnished Citadel deals 3 damage to you.| +Tarnished Citadel|Odyssey|329|R||Land|||{tap}: Add {C} to your mana pool.$${tap}: Add one mana of any color to your mana pool. Tarnished Citadel deals 3 damage to you.| Mystic Crusader|Odyssey|33|R|{1}{W}{W}|Creature - Human Nomad Mystic|2|1|Protection from black and from red$Threshold - As long as seven or more cards are in your graveyard, Mystic Crusader gets +1/+1 and has flying.| Timberland Ruins|Odyssey|330|C||Land|||Timberland Ruins enters the battlefield tapped.${tap}: Add {G} to your mana pool.${tap}, Sacrifice Timberland Ruins: Add one mana of any color to your mana pool.| Plains|Odyssey|331|L||Basic Land - Plains|||W| @@ -14151,23 +14151,23 @@ Slate of Ancestry|Onslaught|310|R|{4}|Artifact|||{4}, {tap}, Discard your hand: Tribal Golem|Onslaught|311|R|{6}|Artifact Creature - Golem|4|4|Tribal Golem has trample as long as you control a Beast, haste as long as you control a Goblin, first strike as long as you control a Soldier, flying as long as you control a Wizard, and "{B}: Regenerate Tribal Golem" as long as you control a Zombie.| Barren Moor|Onslaught|312|C||Land|||Barren Moor enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {B} ({B}, Discard this card: Draw a card.)| Bloodstained Mire|Onslaught|313|R||Land|||{tap}, Pay 1 life, Sacrifice Bloodstained Mire: Search your library for a Swamp or Mountain card and put it onto the battlefield. Then shuffle your library.| -Contested Cliffs|Onslaught|314|R||Land|||{tap}: Add {1} to your mana pool.${R}{G}, {tap}: Choose target Beast creature you control and target creature an opponent controls. Those creatures fight each other. (Each deals damage equal to its power to the other.)| -Daru Encampment|Onslaught|315|U||Land|||{tap}: Add {1} to your mana pool.${W}, {tap}: Target Soldier creature gets +1/+1 until end of turn.| +Contested Cliffs|Onslaught|314|R||Land|||{tap}: Add {C} to your mana pool.${R}{G}, {tap}: Choose target Beast creature you control and target creature an opponent controls. Those creatures fight each other. (Each deals damage equal to its power to the other.)| +Daru Encampment|Onslaught|315|U||Land|||{tap}: Add {C} to your mana pool.${W}, {tap}: Target Soldier creature gets +1/+1 until end of turn.| Flooded Strand|Onslaught|316|R||Land|||{tap}, Pay 1 life, Sacrifice Flooded Strand: Search your library for a Plains or Island card and put it onto the battlefield. Then shuffle your library.| Forgotten Cave|Onslaught|317|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| -Goblin Burrows|Onslaught|318|U||Land|||{tap}: Add {1} to your mana pool.${1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn.| -Grand Coliseum|Onslaught|319|R||Land|||Grand Coliseum enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add one mana of any color to your mana pool. Grand Coliseum deals 1 damage to you.| +Goblin Burrows|Onslaught|318|U||Land|||{tap}: Add {C} to your mana pool.${1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn.| +Grand Coliseum|Onslaught|319|R||Land|||Grand Coliseum enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add one mana of any color to your mana pool. Grand Coliseum deals 1 damage to you.| Grassland Crusader|Onslaught|32|C|{5}{W}|Creature - Human Cleric Soldier|2|4|{tap}: Target Elf or Soldier creature gets +2/+2 until end of turn.| Lonely Sandbar|Onslaught|320|C||Land|||Lonely Sandbar enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {U} ({U}, Discard this card: Draw a card.)| Polluted Delta|Onslaught|321|R||Land|||{tap}, Pay 1 life, Sacrifice Polluted Delta: Search your library for an Island or Swamp card and put it onto the battlefield. Then shuffle your library.| -Riptide Laboratory|Onslaught|322|R||Land|||{tap}: Add {1} to your mana pool.${1}{U}, {tap}: Return target Wizard you control to its owner's hand.| -Seaside Haven|Onslaught|323|U||Land|||{tap}: Add {1} to your mana pool.$${W}{U}, {tap}, Sacrifice a Bird: Draw a card.| +Riptide Laboratory|Onslaught|322|R||Land|||{tap}: Add {C} to your mana pool.${1}{U}, {tap}: Return target Wizard you control to its owner's hand.| +Seaside Haven|Onslaught|323|U||Land|||{tap}: Add {C} to your mana pool.$${W}{U}, {tap}, Sacrifice a Bird: Draw a card.| Secluded Steppe|Onslaught|324|C||Land|||Secluded Steppe enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {W} ({W}, Discard this card: Draw a card.)| -Starlit Sanctum|Onslaught|325|U||Land|||{tap}: Add {1} to your mana pool.${W}, {tap}, Sacrifice a Cleric creature: You gain life equal to the sacrificed creature's toughness.${B}, {tap}, Sacrifice a Cleric creature: Target player loses life equal to the sacrificed creature's power.| +Starlit Sanctum|Onslaught|325|U||Land|||{tap}: Add {C} to your mana pool.${W}, {tap}, Sacrifice a Cleric creature: You gain life equal to the sacrificed creature's toughness.${B}, {tap}, Sacrifice a Cleric creature: Target player loses life equal to the sacrificed creature's power.| Tranquil Thicket|Onslaught|326|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| -Unholy Grotto|Onslaught|327|R||Land|||{tap}: Add {1} to your mana pool.${B}, {tap}: Put target Zombie card from your graveyard on top of your library.| +Unholy Grotto|Onslaught|327|R||Land|||{tap}: Add {C} to your mana pool.${B}, {tap}: Put target Zombie card from your graveyard on top of your library.| Windswept Heath|Onslaught|328|R||Land|||{tap}, Pay 1 life, Sacrifice Windswept Heath: Search your library for a Forest or Plains card and put it onto the battlefield. Then shuffle your library.| -Wirewood Lodge|Onslaught|329|U||Land|||{tap}: Add {1} to your mana pool.${G}, {tap}: Untap target Elf.| +Wirewood Lodge|Onslaught|329|U||Land|||{tap}: Add {C} to your mana pool.${G}, {tap}: Untap target Elf.| Gravel Slinger|Onslaught|33|C|{3}{W}|Creature - Human Soldier|1|3|{tap}: Gravel Slinger deals 1 damage to target attacking or blocking creature.$Morph {1}{W} You may cast this card face downn as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| Wooded Foothills|Onslaught|330|R||Land|||{tap}, Pay 1 life, Sacrifice Wooded Foothills: Search your library for a Mountain or Forest card and put it onto the battlefield. Then shuffle your library.| Plains|Onslaught|331|L||Basic Land - Plains|||W| @@ -14304,7 +14304,7 @@ Hunting Wilds|Planar Chaos|130|U|{3}{G}|Sorcery|||Kicker {3}{G} (You may pay Jedit Ojanen of Efrava|Planar Chaos|131|R|{3}{G}{G}{G}|Legendary Creature - Cat Warrior|5|5|Forestwalk$Whenever Jedit Ojanen of Efrava attacks or blocks, put a 2/2 green Cat Warrior creature token with forestwalk onto the battlefield.| Kavu Predator|Planar Chaos|132|U|{1}{G}|Creature - Kavu|2|2|Trample$Whenever an opponent gains life, put that many +1/+1 counters on Kavu Predator.| Life and Limb|Planar Chaos|133|R|{3}{G}|Enchantment|||All Forests and all Saprolings are 1/1 green Saproling creatures and Forest lands in addition to their other types.| -Magus of the Library|Planar Chaos|134|R|{G}{G}|Creature - Human Wizard|1|1|{tap}: Add {1} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| +Magus of the Library|Planar Chaos|134|R|{G}{G}|Creature - Human Wizard|1|1|{tap}: Add {C} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| Mire Boa|Planar Chaos|135|C|{1}{G}|Creature - Snake|2|1|Swampwalk${G}: Regenerate Mire Boa.| Pouncing Wurm|Planar Chaos|136|U|{3}{G}|Creature - Wurm|3|3|Kicker {2}{G} (You may pay an additional {2}{G} as you cast this spell.)$If Pouncing Wurm was kicked, it enters the battlefield with three +1/+1 counters on it and with haste.| Psychotrope Thallid|Planar Chaos|137|U|{2}{G}|Creature - Fungus|1|1|At the beginning of your upkeep, put a spore counter on Psychotrope Thallid.$Remove three spore counters from Psychotrope Thallid: Put a 1/1 green Saproling creature token onto the battlefield.${1}, Sacrifice a Saproling: Draw a card.| @@ -14475,7 +14475,7 @@ Gruul Turf|Planechase|134|C||Land|||Gruul Turf enters the battlefield tapped.$Wh Leechridden Swamp|Planechase|135|U||Land - Swamp|||({tap}: Add {B} to your mana pool.)$Leechridden Swamp enters the battlefield tapped.${B}, {tap}: Each opponent loses 1 life. Activate this ability only if you control two or more black permanents.| Seat of the Synod|Planechase|136|C||Artifact Land|||(Seat of the Synod isn't a spell.)${tap}: Add {U} to your mana pool.| Shivan Oasis|Planechase|137|U||Land|||Shivan Oasis enters the battlefield tapped.${tap}: Add {R} or {G} to your mana pool.| -Sunhome, Fortress of the Legion|Planechase|138|U||Land|||{tap}: Add {1} to your mana pool.${2}{R}{W}, {tap}: Target creature gains double strike until end of turn.| +Sunhome, Fortress of the Legion|Planechase|138|U||Land|||{tap}: Add {C} to your mana pool.${2}{R}{W}, {tap}: Target creature gains double strike until end of turn.| Terramorphic Expanse|Planechase|139|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Thirst for Knowledge|Planechase|14|U|{2}{U}|Instant|||Draw three cards. Then discard two cards unless you discard an artifact card.| Tree of Tales|Planechase|140|C||Artifact Land|||(Tree of Tales isn't a spell.)${tap}: Add {G} to your mana pool.| @@ -14615,7 +14615,7 @@ Armillary Sphere|Planechase 2012 Edition|108|C|{2}|Artifact|||{2}, {tap}, Sacrif Farsight Mask|Planechase 2012 Edition|109|U|{5}|Artifact|||Whenever a source an opponent controls deals damage to you, if Farsight Mask is untapped, you may draw a card.| Sigil of the Empty Throne|Planechase 2012 Edition|11|R|{3}{W}{W}|Enchantment|||Whenever you cast an enchantment spell, put a 4/4 white Angel creature token with flying onto the battlefield.| Flayer Husk|Planechase 2012 Edition|110|C|{1}|Artifact - Equipment|||Living weapon (When this Equipment enters the battlefield, put a 0/0 black Germ creature token onto the battlefield, then attach this to it.)$Equipped creature gets +1/+1.$Equip {2}| -Fractured Powerstone|Planechase 2012 Edition|111|C|{2}|Artifact|||{tap}: Add {1} to your mana pool.${tap}: Roll the planar die. Activate this ability only any time you could cast a sorcery.| +Fractured Powerstone|Planechase 2012 Edition|111|C|{2}|Artifact|||{tap}: Add {C} to your mana pool.${tap}: Roll the planar die. Activate this ability only any time you could cast a sorcery.| Quietus Spike|Planechase 2012 Edition|112|R|{3}|Artifact - Equipment|||Equipped creature has deathtouch.$Whenever equipped creature deals combat damage to a player, that player loses half his or her life, rounded up.$Equip {3}| Sai of the Shinobi|Planechase 2012 Edition|113|U|{1}|Artifact - Equipment|||Equipped creature gets +1/+1.$Whenever a creature enters the battlefield under your control, you may attach Sai of the Shinobi to it.$Equip {2}| Thran Golem|Planechase 2012 Edition|114|U|{5}|Artifact Creature - Golem|3|3|As long as Thran Golem is enchanted, it gets +2/+2 and has flying, first strike, and trample.| @@ -14628,15 +14628,15 @@ Spirit Mantle|Planechase 2012 Edition|12|U|{1}{W}|Enchantment - Aura|||Enchant c Jwar Isle Refuge|Planechase 2012 Edition|120|U||Land|||Jwar Isle Refuge enters the battlefield tapped.$When Jwar Isle Refuge enters the battlefield, you gain 1 life.${tap}: Add {U} or {B} to your mana pool.| Kazandu Refuge|Planechase 2012 Edition|121|U||Land|||Kazandu Refuge enters the battlefield tapped.$When Kazandu Refuge enters the battlefield, you gain 1 life.${tap}: Add {R} or {G} to your mana pool.| Khalni Garden|Planechase 2012 Edition|122|C||Land|||Khalni Garden enters the battlefield tapped.$When Khalni Garden enters the battlefield, put a 0/1 green Plant creature token onto the battlefield.${tap}: Add {G} to your mana pool.| -Krosan Verge|Planechase 2012 Edition|123|U||Land|||Krosan Verge enters the battlefield tapped.${tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.| +Krosan Verge|Planechase 2012 Edition|123|U||Land|||Krosan Verge enters the battlefield tapped.${tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Krosan Verge: Search your library for a Forest card and a Plains card and put them onto the battlefield tapped. Then shuffle your library.| Rupture Spire|Planechase 2012 Edition|124|C||Land|||Rupture Spire enters the battlefield tapped.$When Rupture Spire enters the battlefield, sacrifice it unless you pay {1}.${tap}: Add one mana of any color to your mana pool.| Selesnya Sanctuary|Planechase 2012 Edition|125|C||Land|||Selesnya Sanctuary enters the battlefield tapped.$When Selesnya Sanctuary enters the battlefield, return a land you control to its owner's hand.${tap}: Add {G}{W} to your mana pool.| -Shimmering Grotto|Planechase 2012 Edition|126|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| -Skarrg, the Rage Pits|Planechase 2012 Edition|127|U||Land|||{tap}: Add {1} to your mana pool.${R}{G}, {tap}: Target creature gets +1/+1 and gains trample until end of turn.| -Tainted Isle|Planechase 2012 Edition|128|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Activate this ability only if you control a Swamp.| +Shimmering Grotto|Planechase 2012 Edition|126|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| +Skarrg, the Rage Pits|Planechase 2012 Edition|127|U||Land|||{tap}: Add {C} to your mana pool.${R}{G}, {tap}: Target creature gets +1/+1 and gains trample until end of turn.| +Tainted Isle|Planechase 2012 Edition|128|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Activate this ability only if you control a Swamp.| Terramorphic Expanse|Planechase 2012 Edition|129|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Three Dreams|Planechase 2012 Edition|13|R|{4}{W}|Sorcery|||Search your library for up to three Aura cards with different names, reveal them, and put them into your hand. Then shuffle your library.| -Vitu-Ghazi, the City-Tree|Planechase 2012 Edition|130|U||Land|||{tap}: Add {1} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| +Vitu-Ghazi, the City-Tree|Planechase 2012 Edition|130|U||Land|||{tap}: Add {C} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| Vivid Creek|Planechase 2012 Edition|131|U||Land|||Vivid Creek enters the battlefield tapped with two charge counters on it.${tap}: Add {U} to your mana pool.${tap}, Remove a charge counter from Vivid Creek: Add one mana of any color to your mana pool.| Plains|Planechase 2012 Edition|132|L||Basic Land - Plains|||W| Plains|Planechase 2012 Edition|133|L||Basic Land - Plains|||W| @@ -14709,7 +14709,7 @@ Thorn-Thrash Viashino|Planechase 2012 Edition|52|C|{3}{R}|Creature - Viashino Wa Thunder-Thrash Elder|Planechase 2012 Edition|53|U|{2}{R}|Creature - Viashino Warrior|1|1|Devour 3 (As this enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with three times that many +1/+1 counters on it.)| Warstorm Surge|Planechase 2012 Edition|54|R|{5}{R}|Enchantment|||Whenever a creature enters the battlefield under your control, it deals damage equal to its power to target creature or player.| Aura Gnarlid|Planechase 2012 Edition|55|C|{2}{G}|Creature - Beast|2|2|Creatures with power less than Aura Gnarlid's power can't block it.$Aura Gnarlid gets +1/+1 for each Aura on the battlefield.| -Awakening Zone|Planechase 2012 Edition|56|R|{2}{G}|Enchantment|||At the beginning of your upkeep, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Awakening Zone|Planechase 2012 Edition|56|R|{2}{G}|Enchantment|||At the beginning of your upkeep, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Beast Within|Planechase 2012 Edition|57|U|{2}{G}|Instant|||Destroy target permanent. Its controller puts a 3/3 green Beast creature token onto the battlefield.| Boar Umbra|Planechase 2012 Edition|58|U|{2}{G}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +3/+3.$Totem armor (If enchanted creature would be destroyed, instead remove all damage from it and destroy this Aura.)| Bramble Elemental|Planechase 2012 Edition|59|C|{3}{G}{G}|Creature - Elemental|4|4|Whenever an Aura becomes attached to Bramble Elemental, put two 1/1 green Saproling creature tokens onto the battlefield.| @@ -14723,7 +14723,7 @@ Gluttonous Slime|Planechase 2012 Edition|65|U|{2}{G}|Creature - Ooze|2|2|Flash$D Lumberknot|Planechase 2012 Edition|66|U|{2}{G}{G}|Creature - Treefolk|1|1|Hexproof (This creature can't be the target of spells or abilities your opponents control.)$Whenever a creature dies, put a +1/+1 counter on Lumberknot.| Mitotic Slime|Planechase 2012 Edition|67|R|{4}{G}|Creature - Ooze|4|4|When Mitotic Slime dies, put two 2/2 green Ooze creature tokens onto the battlefield. They have "When this creature dies, put two 1/1 green Ooze creature tokens onto the battlefield."| Mycoloth|Planechase 2012 Edition|68|R|{3}{G}{G}|Creature - Fungus|4|4|Devour 2 (As this enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with twice that many +1/+1 counters on it.)$At the beginning of your upkeep, put a 1/1 green Saproling creature token onto the battlefield for each +1/+1 counter on Mycoloth.| -Nest Invader|Planechase 2012 Edition|69|C|{1}{G}|Creature - Eldrazi Drone|2|2|When Nest Invader enters the battlefield, put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Nest Invader|Planechase 2012 Edition|69|C|{1}{G}|Creature - Eldrazi Drone|2|2|When Nest Invader enters the battlefield, put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Ghostly Prison|Planechase 2012 Edition|7|U|{2}{W}|Enchantment|||Creatures can't attack you unless their controller pays {2} for each creature he or she controls that's attacking you.| Nullmage Advocate|Planechase 2012 Edition|70|C|{2}{G}|Creature - Insect Druid|2|3|{tap}: Return two target cards from an opponent's graveyard to his or her hand. Destroy target artifact or enchantment.| Ondu Giant|Planechase 2012 Edition|71|C|{3}{G}|Creature - Giant Druid|2|4|When Ondu Giant enters the battlefield, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| @@ -14807,7 +14807,7 @@ Forsaken City|Planeshift|139|R||Land|||Forsaken City doesn't untap during your u Samite Elder|Planeshift|14|R|{2}{W}|Creature - Human Cleric|1|2|{tap}: Creatures you control gain protection from the colors of target permanent you control until end of turn.| Meteor Crater|Planeshift|140|R||Land|||{tap}: Choose a color of a permanent you control. Add one mana of that color to your mana pool.| Rith's Grove|Planeshift|141|U||Land - Lair|||When Rith's Grove enters the battlefield, sacrifice it unless you return a non-Lair land you control to its owner's hand.${tap}: Add {R}, {G}, or {W} to your mana pool.| -Terminal Moraine|Planeshift|142|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Terminal Moraine: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.| +Terminal Moraine|Planeshift|142|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Terminal Moraine: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.| Treva's Ruins|Planeshift|143|U||Land - Lair|||When Treva's Ruins enters the battlefield, sacrifice it unless you return a non-Lair land you control to its owner's hand.${tap}: Add {G}, {W}, or {U} to your mana pool.| Samite Pilgrim|Planeshift|15|C|{1}{W}|Creature - Human Cleric|1|1|Domain - {tap}: Prevent the next X damage that would be dealt to target creature this turn, where X is the number of basic land types among lands you control.| Sunscape Battlemage|Planeshift|16|U|{2}{W}|Creature - Human Wizard|2|2|Kicker {1}{G} and/or {2}{U} (You may pay an additional {1}{G} and/or {2}{U} as you cast this spell.)$When Sunscape Battlemage enters the battlefield, if it was kicked with its {1}{G} kicker, destroy target creature with flying.$When Sunscape Battlemage enters the battlefield, if it was kicked with its {2}{U} kicker, draw two cards.| @@ -15309,7 +15309,7 @@ Giant Badger|Promo set for Gatherer|253|Special|{1}{G}{G}|Creature - Badger|2|2| Raging Kavu|Promo set for Gatherer|262|R|{1}{R}{G}|Creature - Kavu|3|1|Flash$Haste| Avatar of Hope|Promo set for Gatherer|3|R|{6}{W}{W}|Creature - Avatar|4|9|If you have 3 or less life, Avatar of Hope costs {6} less to cast.$Flying$Avatar of Hope can block any number of creatures.| False Prophet|Promo set for Gatherer|6|R|{2}{W}{W}|Creature - Human Cleric|2|2|When False Prophet dies, exile all creatures.| -Mana Crypt|Promo set for Gatherer|60|Special|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {2} to your mana pool.| +Mana Crypt|Promo set for Gatherer|60|Special|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {C}{C} to your mana pool.| Revenant|Promo set for Gatherer|61|R|{4}{B}|Creature - Spirit|*|*|Flying$Revenant's power and toughness are each equal to the number of creature cards in your graveyard.| Rathi Assassin|Promo set for Gatherer|67|R|{2}{B}{B}|Creature - Zombie Mercenary Assassin|2|2|{1}{B}{B}, {tap}: Destroy target tapped nonblack creature.${3}, {tap}: Search your library for a Mercenary permanent card with converted mana cost 3 or less and put it onto the battlefield. Then shuffle your library.| Laquatus's Champion|Promo set for Gatherer|67|R|{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.| @@ -15366,7 +15366,7 @@ Mageta's Boon|Prophecy|14|C|{1}{W}|Enchantment - Aura|||Flash$Enchant creature$E Well of Discovery|Prophecy|140|R|{6}|Artifact|||At the beginning of your end step, if you control no untapped lands, draw a card.| Well of Life|Prophecy|141|U|{4}|Artifact|||At the beginning of your end step, if you control no untapped lands, you gain 2 life.| Rhystic Cave|Prophecy|142|U||Land|||{tap}: Choose a color. Add one mana of that color to your mana pool unless any player pays {1}. Activate this ability only any time you could cast an instant.| -Wintermoon Mesa|Prophecy|143|R||Land|||Wintermoon Mesa enters the battlefield tapped.${tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Wintermoon Mesa: Tap two target lands.| +Wintermoon Mesa|Prophecy|143|R||Land|||Wintermoon Mesa enters the battlefield tapped.${tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Wintermoon Mesa: Tap two target lands.| Mercenary Informer|Prophecy|15|R|{2}{W}|Creature - Human Rebel Mercenary|2|1|Mercenary Informer can't be the target of black spells or abilities from black sources.${2}{W}: Put target nontoken Mercenary on the bottom of its owner's library.| Mine Bearer|Prophecy|16|C|{2}{W}|Creature - Human Soldier|1|1|{tap}, Sacrifice Mine Bearer: Destroy target attacking creature.| Mirror Strike|Prophecy|17|U|{3}{W}|Instant|||All combat damage that would be dealt to you this turn by target unblocked creature is dealt to its controller instead.| @@ -15657,16 +15657,16 @@ Terrarion|Ravnica: City of Guilds|273|C|{1}|Artifact|||Terrarion enters the batt Voyager Staff|Ravnica: City of Guilds|274|U|{1}|Artifact|||{2}, Sacrifice Voyager Staff: Exile target creature. Return the exiled card to the battlefield under its owner's control at the beginning of the next end step.| Boros Garrison|Ravnica: City of Guilds|275|C||Land|||Boros Garrison enters the battlefield tapped.$When Boros Garrison enters the battlefield, return a land you control to its owner's hand.${tap}: Add {R}{W} to your mana pool.| Dimir Aqueduct|Ravnica: City of Guilds|276|C||Land|||Dimir Aqueduct enters the battlefield tapped.$When Dimir Aqueduct enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{B} to your mana pool.| -Duskmantle, House of Shadow|Ravnica: City of Guilds|277|U||Land|||{tap}: Add {1} to your mana pool.${U}{B}, {tap}: Target player puts the top card of his or her library into his or her graveyard.| +Duskmantle, House of Shadow|Ravnica: City of Guilds|277|U||Land|||{tap}: Add {C} to your mana pool.${U}{B}, {tap}: Target player puts the top card of his or her library into his or her graveyard.| Golgari Rot Farm|Ravnica: City of Guilds|278|C||Land|||Golgari Rot Farm enters the battlefield tapped.$When Golgari Rot Farm enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{G} to your mana pool.| Overgrown Tomb|Ravnica: City of Guilds|279|R||Land - Swamp Forest|||({tap}: Add {B} or {G} to your mana pool.)$As Overgrown Tomb enters the battlefield, you may pay 2 life. If you don't, Overgrown Tomb enters the battlefield tapped.| Sandsower|Ravnica: City of Guilds|28|U|{3}{W}|Creature - Spirit|1|3|Tap three untapped creatures you control: Tap target creature.| Sacred Foundry|Ravnica: City of Guilds|280|R||Land - Mountain Plains|||({tap}: Add {R} or {W} to your mana pool.)$As Sacred Foundry enters the battlefield, you may pay 2 life. If you don't, Sacred Foundry enters the battlefield tapped.| Selesnya Sanctuary|Ravnica: City of Guilds|281|C||Land|||Selesnya Sanctuary enters the battlefield tapped.$When Selesnya Sanctuary enters the battlefield, return a land you control to its owner's hand.${tap}: Add {G}{W} to your mana pool.| -Sunhome, Fortress of the Legion|Ravnica: City of Guilds|282|U||Land|||{tap}: Add {1} to your mana pool.${2}{R}{W}, {tap}: Target creature gains double strike until end of turn.| -Svogthos, the Restless Tomb|Ravnica: City of Guilds|283|U||Land|||{tap}: Add {1} to your mana pool.${3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land.| +Sunhome, Fortress of the Legion|Ravnica: City of Guilds|282|U||Land|||{tap}: Add {C} to your mana pool.${2}{R}{W}, {tap}: Target creature gains double strike until end of turn.| +Svogthos, the Restless Tomb|Ravnica: City of Guilds|283|U||Land|||{tap}: Add {C} to your mana pool.${3}{B}{G}: Until end of turn, Svogthos, the Restless Tomb becomes a black and green Plant Zombie creature with "This creature's power and toughness are each equal to the number of creature cards in your graveyard." It's still a land.| Temple Garden|Ravnica: City of Guilds|284|R||Land - Forest Plains|||({tap}: Add {G} or {W} to your mana pool.)$As Temple Garden enters the battlefield, you may pay 2 life. If you don't, Temple Garden enters the battlefield tapped.| -Vitu-Ghazi, the City-Tree|Ravnica: City of Guilds|285|U||Land|||{tap}: Add {1} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| +Vitu-Ghazi, the City-Tree|Ravnica: City of Guilds|285|U||Land|||{tap}: Add {C} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| Watery Grave|Ravnica: City of Guilds|286|R||Land - Island Swamp|||({tap}: Add {U} or {B} to your mana pool.)$As Watery Grave enters the battlefield, you may pay 2 life. If you don't, Watery Grave enters the battlefield tapped.| Plains|Ravnica: City of Guilds|287|L||Basic Land - Plains|||W| Plains|Ravnica: City of Guilds|288|L||Basic Land - Plains|||W| @@ -15923,12 +15923,12 @@ Azorius Guildgate|Return to Ravnica|237|C||Land - Gate|||Azorius Guildgate enter Blood Crypt|Return to Ravnica|238|R||Land - Swamp Mountain|||({tap}: Add {B} or {R} to your mana pool.)$As Blood Crypt enters the battlefield, you may pay 2 life. If you don't, Blood Crypt enters the battlefield tapped.| Golgari Guildgate|Return to Ravnica|239|C||Land - Gate|||Golgari Guildgate enters the battlefield tapped.${tap}: Add {B} or {G} to your mana pool.| Sphere of Safety|Return to Ravnica|24|U|{4}{W}|Enchantment|||Creatures can't attack you or a planeswalker you control unless their controller pays {X} for each of those creatures, where X is the number of enchantments you control.| -Grove of the Guardian|Return to Ravnica|240|R||Land|||{tap}: Add {1} to your mana pool.${3}{G}{W}, {tap}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Put an 8/8 green and white Elemental creature token with vigilance onto the battlefield.| +Grove of the Guardian|Return to Ravnica|240|R||Land|||{tap}: Add {C} to your mana pool.${3}{G}{W}, {tap}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Put an 8/8 green and white Elemental creature token with vigilance onto the battlefield.| Hallowed Fountain|Return to Ravnica|241|R||Land - Plains Island|||({tap}: Add {W} or {U} to your mana pool.)$As Hallowed Fountain enters the battlefield, you may pay 2 life. If you don't, Hallowed Fountain enters the battlefield tapped.| Izzet Guildgate|Return to Ravnica|242|C||Land - Gate|||Izzet Guildgate enters the battlefield tapped.${tap}: Add {U} or {R} to your mana pool.| Overgrown Tomb|Return to Ravnica|243|R||Land - Swamp Forest|||({tap}: Add {B} or {G} to your mana pool.)$As Overgrown Tomb enters the battlefield, you may pay 2 life. If you don't, Overgrown Tomb enters the battlefield tapped.| Rakdos Guildgate|Return to Ravnica|244|C||Land - Gate|||Rakdos Guildgate enters the battlefield tapped.${tap}: Add {B} or {R} to your mana pool.| -Rogue's Passage|Return to Ravnica|245|U||Land|||{tap}: Add {1} to your mana pool.${4}, {tap}: Target creature is unblockable this turn.| +Rogue's Passage|Return to Ravnica|245|U||Land|||{tap}: Add {C} to your mana pool.${4}, {tap}: Target creature is unblockable this turn.| Selesnya Guildgate|Return to Ravnica|246|C||Land - Gate|||Selesnya Guildgate enters the battlefield tapped.${tap}: Add {G} or {W} to your mana pool.| Steam Vents|Return to Ravnica|247|R||Land - Island Mountain|||({tap}: Add {U} or {R} to your mana pool.)$As Steam Vents enters the battlefield, you may pay 2 life. If you don't, Steam Vents enters the battlefield tapped.| Temple Garden|Return to Ravnica|248|R||Land - Forest Plains|||({tap}: Add {G} or {W} to your mana pool.)$As Temple Garden enters the battlefield, you may pay 2 life. If you don't, Temple Garden enters the battlefield tapped.| @@ -16196,7 +16196,7 @@ Aladdin's Lamp|Revised Edition|231|R|{10}|Artifact|||{X}, {tap}: The next time y Aladdin's Ring|Revised Edition|232|R|{8}|Artifact|||{8}, {tap}: Aladdin's Ring deals 4 damage to target creature or player.| Ankh of Mishra|Revised Edition|233|R|{2}|Artifact|||Whenever a land enters the battlefield, Ankh of Mishra deals 2 damage to that land's controller.| Armageddon Clock|Revised Edition|234|R|{6}|Artifact|||At the beginning of your upkeep, put a doom counter on Armageddon Clock.$At the beginning of your draw step, Armageddon Clock deals damage equal to the number of doom counters on it to each player.${4}: Remove a doom counter from Armageddon Clock. Any player may activate this ability but only during any upkeep step.| -Basalt Monolith|Revised Edition|235|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {3} to your mana pool.${3}: Untap Basalt Monolith.| +Basalt Monolith|Revised Edition|235|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {C}{C}{C} to your mana pool.${3}: Untap Basalt Monolith.| Black Vise|Revised Edition|236|U|{1}|Artifact|||As Black Vise enters the battlefield, choose an opponent.$At the beginning of the chosen player's upkeep, Black Vise deals X damage to that player, where X is the number of cards in his or her hand minus 4.| Bottle of Suleiman|Revised Edition|237|R|{4}|Artifact|||{1}, Sacrifice Bottle of Suleiman: Flip a coin. If you lose the flip, Bottle of Suleiman deals 5 damage to you. If you win the flip, put a 5/5 colorless Djinn artifact creature token with flying onto the battlefield.| Brass Man|Revised Edition|238|U|{1}|Artifact Creature - Construct|1|3|Brass Man doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {1}. If you do, untap Brass Man.| @@ -16227,7 +16227,7 @@ Nether Shadow|Revised Edition|26|R|{B}{B}|Creature - Spirit|1|1|Haste$At the beg Kormus Bell|Revised Edition|260|R|{4}|Artifact|||All Swamps are 1/1 black creatures that are still lands.| Library of Leng|Revised Edition|261|U|{1}|Artifact|||You have no maximum hand size.$If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.| Living Wall|Revised Edition|262|U|{4}|Artifact Creature - Wall|0|6|Defender (This creature can't attack.)${1}: Regenerate Living Wall.| -Mana Vault|Revised Edition|263|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Vault|Revised Edition|263|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Meekstone|Revised Edition|264|R|{1}|Artifact|||Creatures with power 3 or greater don't untap during their controllers' untap steps.| Millstone|Revised Edition|265|R|{2}|Artifact|||{2}, {tap}: Target player puts the top two cards of his or her library into his or her graveyard.| Mishra's War Machine|Revised Edition|266|R|{7}|Artifact Creature - Juggernaut|5|5|Banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)$At the beginning of your upkeep, Mishra's War Machine deals 3 damage to you unless you discard a card. If Mishra's War Machine deals damage to you this way, tap it.| @@ -16239,7 +16239,7 @@ Ornithopter|Revised Edition|270|U|{0}|Artifact Creature - Thopter|0|2|Flying| Primal Clay|Revised Edition|271|R|{4}|Artifact Creature - Shapeshifter|*|*|As Primal Clay enters the battlefield, it becomes your choice of a 3/3 artifact creature, a 2/2 artifact creature with flying, or a 1/6 Wall artifact creature with defender in addition to its other types. (A creature with defender can't attack.)| Rocket Launcher|Revised Edition|272|R|{4}|Artifact|||{2}: Rocket Launcher deals 1 damage to target creature or player. Destroy Rocket Launcher at the beginning of the next end step. Activate this ability only if you've controlled Rocket Launcher continuously since the beginning of your most recent turn.| Rod of Ruin|Revised Edition|273|U|{4}|Artifact|||{3}, {tap}: Rod of Ruin deals 1 damage to target creature or player.| -Sol Ring|Revised Edition|274|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Revised Edition|274|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Soul Net|Revised Edition|275|U|{1}|Artifact|||Whenever a creature dies, you may pay {1}. If you do, you gain 1 life.| Sunglasses of Urza|Revised Edition|276|R|{3}|Artifact|||You may spend white mana as though it were red mana.| The Hive|Revised Edition|277|R|{5}|Artifact|||{5}, {tap}: Put a 1/1 colorless Insect artifact creature token with flying named Wasp onto the battlefield. (It can't be blocked except by creatures with flying or reach.)| @@ -16341,25 +16341,25 @@ Wall of Water|Revised Edition|91|U|{1}{U}{U}|Creature - Wall|0|5|Defender (Th Water Elemental|Revised Edition|92|U|{3}{U}{U}|Creature - Elemental|5|4|| Aspect of Wolf|Revised Edition|93|R|{1}{G}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +X/+Y, where X is half the number of Forests you control, rounded down, and Y is half the number of Forests you control, rounded up.| Birds of Paradise|Revised Edition|94|R|{G}|Creature - Bird|0|1|Flying${tap}: Add one mana of any color to your mana pool.| -Channel|Revised Edition|95|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|Revised Edition|95|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Cockatrice|Revised Edition|96|R|{3}{G}{G}|Creature - Cockatrice|2|4|Flying$Whenever Cockatrice blocks or becomes blocked by a non-Wall creature, destroy that creature at end of combat.| Craw Wurm|Revised Edition|97|C|{4}{G}{G}|Creature - Wurm|6|4|| Crumble|Revised Edition|98|U|{G}|Instant|||Destroy target artifact. It can't be regenerated. That artifact's controller gains life equal to its converted mana cost.| Desert Twister|Revised Edition|99|U|{4}{G}{G}|Sorcery|||Destroy target permanent.| All Is Dust|Rise of the Eldrazi|1|M|{7}|Tribal Sorcery - Eldrazi|||Each player sacrifices all colored permanents he or she controls.| -Skittering Invasion|Rise of the Eldrazi|10|U|{7}|Tribal Sorcery - Eldrazi|||Put five 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Skittering Invasion|Rise of the Eldrazi|10|U|{7}|Tribal Sorcery - Eldrazi|||Put five 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Consume the Meek|Rise of the Eldrazi|100|R|{3}{B}{B}|Instant|||Destroy each creature with converted mana cost 3 or less. They can't be regenerated.| Consuming Vapors|Rise of the Eldrazi|101|R|{3}{B}|Sorcery|||Target player sacrifices a creature. You gain life equal to that creature's toughness.$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.)| Contaminated Ground|Rise of the Eldrazi|102|C|{1}{B}|Enchantment - Aura|||Enchant land$Enchanted land is a Swamp.$Whenever enchanted land becomes tapped, its controller loses 2 life.| -Corpsehatch|Rise of the Eldrazi|103|U|{3}{B}{B}|Sorcery|||Destroy target nonblack creature. Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Corpsehatch|Rise of the Eldrazi|103|U|{3}{B}{B}|Sorcery|||Destroy target nonblack creature. Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Curse of Wizardry|Rise of the Eldrazi|104|U|{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.| Death Cultist|Rise of the Eldrazi|105|C|{B}|Creature - Human Wizard|1|1|Sacrifice Death Cultist: Target player loses 1 life and you gain 1 life.| Demonic Appetite|Rise of the Eldrazi|106|C|{B}|Enchantment - Aura|||Enchant creature you control$Enchanted creature gets +3/+3.$At the beginning of your upkeep, sacrifice a creature.| Drana, Kalastria Bloodchief|Rise of the Eldrazi|107|R|{3}{B}{B}|Legendary Creature - Vampire Shaman|4|4|Flying${X}{B}{B}: Target creature gets -0/-X until end of turn and Drana, Kalastria Bloodchief gets +X/+0 until end of turn.| -Dread Drone|Rise of the Eldrazi|108|C|{4}{B}|Creature - Eldrazi Drone|4|1|When Dread Drone enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Dread Drone|Rise of the Eldrazi|108|C|{4}{B}|Creature - Eldrazi Drone|4|1|When Dread Drone enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Escaped Null|Rise of the Eldrazi|109|U|{3}{B}|Creature - Zombie Berserker|1|2|Lifelink$Whenever Escaped Null blocks or becomes blocked, it gets +5/+0 until end of turn.| -Spawnsire of Ulamog|Rise of the Eldrazi|11|R|{10}|Creature - Eldrazi|7|11|Annihilator 1 (Whenever this creature attacks, defending player sacrifices a permanent.)${4}: Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."${2}0: Cast any number of Eldrazi cards you own from outside the game without paying their mana costs.| -Essence Feed|Rise of the Eldrazi|110|C|{5}{B}|Sorcery|||Target player loses 3 life. You gain 3 life and put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Spawnsire of Ulamog|Rise of the Eldrazi|11|R|{10}|Creature - Eldrazi|7|11|Annihilator 1 (Whenever this creature attacks, defending player sacrifices a permanent.)${4}: Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."${2}0: Cast any number of Eldrazi cards you own from outside the game without paying their mana costs.| +Essence Feed|Rise of the Eldrazi|110|C|{5}{B}|Sorcery|||Target player loses 3 life. You gain 3 life and put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Gloomhunter|Rise of the Eldrazi|111|C|{2}{B}|Creature - Bat|2|1|Flying| Guul Draz Assassin|Rise of the Eldrazi|112|R|{B}|Creature - Vampire Assassin|1|1|Level up {1}{B} ({1}{B}: Put a level counter on this. Level up only as a sorcery.)$LEVEL 2-3$2/2${B}, {tap}: Target creature gets -2/-2 until end of turn.$LEVEL 4+$4/4${B}, {tap}: Target creature gets -4/-4 until end of turn.| Hellcarver Demon|Rise of the Eldrazi|113|M|{3}{B}{B}{B}|Creature - Demon|6|6|Flying$Whenever Hellcarver Demon deals combat damage to a player, sacrifice all other permanents you control and discard your hand. Exile the top six cards of your library. You may cast any number of nonland cards exiled this way without paying their mana costs.| @@ -16372,7 +16372,7 @@ Nirkana Cutthroat|Rise of the Eldrazi|119|U|{2}{B}|Creature - Vampire Warrior|3| Ulamog, the Infinite Gyre|Rise of the Eldrazi|12|M|{11}|Legendary Creature - Eldrazi|10|10|When you cast Ulamog, the Infinite Gyre, destroy target permanent.$Annihilator 4 (Whenever this creature attacks, defending player sacrifices four permanents.)$Ulamog is indestructible.$When Ulamog is put into a graveyard from anywhere, its owner shuffles his or her graveyard into his or her library.| Nirkana Revenant|Rise of the Eldrazi|120|M|{4}{B}{B}|Creature - Vampire Shade|4|4|Whenever you tap a Swamp for mana, add {B} to your mana pool (in addition to the mana the land produces).${B}: Nirkana Revenant gets +1/+1 until end of turn.| Null Champion|Rise of the Eldrazi|121|C|{1}{B}|Creature - Zombie Warrior|1|1|Level up {3} ({3}: Put a level counter on this. Level up only as a sorcery.)$LEVEL 1-3$4/2$$LEVEL 4+$7/3${B}: Regenerate Null Champion.| -Pawn of Ulamog|Rise of the Eldrazi|122|U|{1}{B}{B}|Creature - Vampire Shaman|2|2|Whenever Pawn of Ulamog or another nontoken creature you control dies, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Pawn of Ulamog|Rise of the Eldrazi|122|U|{1}{B}{B}|Creature - Vampire Shaman|2|2|Whenever Pawn of Ulamog or another nontoken creature you control dies, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Perish the Thought|Rise of the Eldrazi|123|C|{2}{B}|Sorcery|||Target opponent reveals his or her hand. You choose a card from it. That player shuffles that card into his or her library.| Pestilence Demon|Rise of the Eldrazi|124|R|{5}{B}{B}{B}|Creature - Demon|7|6|Flying${B}: Pestilence Demon deals 1 damage to each creature and each player.| Repay in Kind|Rise of the Eldrazi|125|R|{5}{B}{B}|Sorcery|||Each player's life total becomes the lowest life total among all players.| @@ -16389,12 +16389,12 @@ Akoum Boulderfoot|Rise of the Eldrazi|134|U|{4}{R}{R}|Creature - Giant Warrior|4 Battle Rampart|Rise of the Eldrazi|135|C|{2}{R}|Creature - Wall|1|3|Defender${tap}: Target creature gains haste until end of turn.| Battle-Rattle Shaman|Rise of the Eldrazi|136|C|{3}{R}|Creature - Goblin Shaman|2|2|At the beginning of combat on your turn, you may have target creature get +2/+0 until end of turn.| Brimstone Mage|Rise of the Eldrazi|137|U|{2}{R}|Creature - Human Shaman|2|2|Level up {3}{R} ({3}{R}: Put a level counter on this. Level up only as a sorcery.)$LEVEL 1-2$2/3${tap}: Brimstone Mage deals 1 damage to target creature or player.$LEVEL 3+$2/4${tap}: Brimstone Mage deals 3 damage to target creature or player.| -Brood Birthing|Rise of the Eldrazi|138|C|{1}{R}|Sorcery|||If you control an Eldrazi Spawn, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool." Otherwise, put one of those tokens onto the battlefield.| +Brood Birthing|Rise of the Eldrazi|138|C|{1}{R}|Sorcery|||If you control an Eldrazi Spawn, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool." Otherwise, put one of those tokens onto the battlefield.| Conquering Manticore|Rise of the Eldrazi|139|R|{4}{R}{R}|Creature - Manticore|5|5|Flying$When Conquering Manticore enters the battlefield, gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.| Affa Guard Hound|Rise of the Eldrazi|14|U|{2}{W}|Creature - Hound|2|2|Flash$When Affa Guard Hound enters the battlefield, target creature gets +0/+3 until end of turn.| Devastating Summons|Rise of the Eldrazi|140|R|{R}|Sorcery|||As an additional cost to cast Devastating Summons, sacrifice X lands.$Put two X/X red Elemental creature tokens onto the battlefield.| Disaster Radius|Rise of the Eldrazi|141|R|{5}{R}{R}|Sorcery|||As an additional cost to cast Disaster Radius, reveal a creature card from your hand.$Disaster Radius deals X damage to each creature your opponents control, where X is the revealed card's converted mana cost.| -Emrakul's Hatcher|Rise of the Eldrazi|142|C|{4}{R}|Creature - Eldrazi Drone|3|3|When Emrakul's Hatcher enters the battlefield, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Emrakul's Hatcher|Rise of the Eldrazi|142|C|{4}{R}|Creature - Eldrazi Drone|3|3|When Emrakul's Hatcher enters the battlefield, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Explosive Revelation|Rise of the Eldrazi|143|U|{3}{R}{R}|Sorcery|||Choose target creature or player. Reveal cards from the top of your library until you reveal a nonland card. Explosive Revelation deals damage equal to that card's converted mana cost to that creature or player. Put the nonland card into your hand and the rest on the bottom of your library in any order.| Fissure Vent|Rise of the Eldrazi|144|C|{3}{R}{R}|Sorcery|||Choose one or both - Destroy target artifact; and/or destroy target nonbasic land.| Flame Slash|Rise of the Eldrazi|145|C|{R}|Sorcery|||Flame Slash deals 4 damage to target creature.| @@ -16416,9 +16416,9 @@ Ogre Sentry|Rise of the Eldrazi|159|C|{1}{R}|Creature - Ogre Warrior|3|3|Defende Dawnglare Invoker|Rise of the Eldrazi|16|C|{2}{W}|Creature - Kor Wizard|2|1|Flying${8}: Tap all creatures target player controls.| Rage Nimbus|Rise of the Eldrazi|160|R|{2}{R}|Creature - Elemental|5|3|Defender, flying${1}{R}: Target creature attacks this turn if able.| Raid Bombardment|Rise of the Eldrazi|161|C|{2}{R}|Enchantment|||Whenever a creature you control with power 2 or less attacks, Raid Bombardment deals 1 damage to defending player.| -Rapacious One|Rise of the Eldrazi|162|U|{5}{R}|Creature - Eldrazi Drone|5|4|Trample$Whenever Rapacious One deals combat damage to a player, put that many 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Rapacious One|Rise of the Eldrazi|162|U|{5}{R}|Creature - Eldrazi Drone|5|4|Trample$Whenever Rapacious One deals combat damage to a player, put that many 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Soulsurge Elemental|Rise of the Eldrazi|163|U|{3}{R}|Creature - Elemental|*|1|First strike$Soulsurge Elemental's power is equal to the number of creatures you control.| -Spawning Breath|Rise of the Eldrazi|164|C|{1}{R}|Instant|||Spawning Breath deals 1 damage to target creature or player. Put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Spawning Breath|Rise of the Eldrazi|164|C|{1}{R}|Instant|||Spawning Breath deals 1 damage to target creature or player. Put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Splinter Twin|Rise of the Eldrazi|165|R|{2}{R}{R}|Enchantment - Aura|||Enchant creature$Enchanted creature has "{tap}: Put a token that's a copy of this creature onto the battlefield. That token has haste. Exile it at the beginning of the next end step."| Staggershock|Rise of the Eldrazi|166|C|{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.)| Surreal Memoir|Rise of the Eldrazi|167|U|{3}{R}|Sorcery|||Return an instant card at random from your graveyard to your hand.$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.)| @@ -16431,7 +16431,7 @@ World at War|Rise of the Eldrazi|172|R|{3}{R}{R}|Sorcery|||After the first postc Wrap in Flames|Rise of the Eldrazi|173|C|{3}{R}|Sorcery|||Wrap in Flames deals 1 damage to each of up to three target creatures. Those creatures can't block this turn.| Ancient Stirrings|Rise of the Eldrazi|174|C|{G}|Sorcery|||Look at the top five cards of your library. You may reveal a colorless card from among them and put it into your hand. Then put the rest on the bottom of your library in any order. (Cards with no colored mana in their mana costs are colorless. Lands are also colorless.)| Aura Gnarlid|Rise of the Eldrazi|175|C|{2}{G}|Creature - Beast|2|2|Creatures with power less than Aura Gnarlid's power can't block it.$Aura Gnarlid gets +1/+1 for each Aura on the battlefield.| -Awakening Zone|Rise of the Eldrazi|176|R|{2}{G}|Enchantment|||At the beginning of your upkeep, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Awakening Zone|Rise of the Eldrazi|176|R|{2}{G}|Enchantment|||At the beginning of your upkeep, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Bear Umbra|Rise of the Eldrazi|177|R|{2}{G}{G}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +2/+2 and has "Whenever this creature attacks, untap all lands you control."$Totem armor (If enchanted creature would be destroyed, instead remove all damage from it and destroy this Aura.)| Beastbreaker of Bala Ged|Rise of the Eldrazi|178|U|{1}{G}|Creature - Human Warrior|2|2|Level up {2}{G} ({2}{G}: Put a level counter on this. Level up only as a sorcery.)$LEVEL 1-3$4/4$$LEVEL 4+$6/6$Trample| Boar Umbra|Rise of the Eldrazi|179|U|{2}{G}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +3/+3.$Totem armor (If enchanted creature would be destroyed, instead remove all damage from it and destroy this Aura.)| @@ -16442,7 +16442,7 @@ Daggerback Basilisk|Rise of the Eldrazi|182|C|{2}{G}|Creature - Basilisk|2|2|Dea Gelatinous Genesis|Rise of the Eldrazi|183|R|{X}{X}{G}|Sorcery|||Put X X/X green Ooze creature tokens onto the battlefield.| Gigantomancer|Rise of the Eldrazi|184|R|{7}{G}|Creature - Human Shaman|1|1|{1}: Target creature you control becomes 7/7 until end of turn.| Gravity Well|Rise of the Eldrazi|185|U|{1}{G}{G}|Enchantment|||Whenever a creature with flying attacks, it loses flying until end of turn.| -Growth Spasm|Rise of the Eldrazi|186|C|{2}{G}|Sorcery|||Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. Put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Growth Spasm|Rise of the Eldrazi|186|C|{2}{G}|Sorcery|||Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. Put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Haze Frog|Rise of the Eldrazi|187|C|{3}{G}{G}|Creature - Frog|2|1|Flash (You may cast this spell any time you could cast an instant.)$When Haze Frog enters the battlefield, prevent all combat damage that other creatures would deal this turn.| Irresistible Prey|Rise of the Eldrazi|188|U|{G}|Sorcery|||Target creature must be blocked this turn if able.$Draw a card.| Jaddi Lifestrider|Rise of the Eldrazi|189|U|{4}{G}|Creature - Elemental|2|8|When Jaddi Lifestrider enters the battlefield, you may tap any number of untapped creatures you control. You gain 2 life for each creature tapped this way.| @@ -16450,7 +16450,7 @@ Eland Umbra|Rise of the Eldrazi|19|C|{1}{W}|Enchantment - Aura|||Enchant creatur Joraga Treespeaker|Rise of the Eldrazi|190|U|{G}|Creature - Elf Druid|1|1|Level up {1}{G} ({1}{G}: Put a level counter on this. Level up only as a sorcery.)$LEVEL 1-4$1/2${tap}: Add {G}{G} to your mana pool.$LEVEL 5+$1/4$Elves you control have "{tap}: Add {G}{G} to your mana pool."| Kazandu Tuskcaller|Rise of the Eldrazi|191|R|{1}{G}|Creature - Human Shaman|1|1|Level up {1}{G} ({1}{G}: Put a level counter on this. Level up only as a sorcery.)$LEVEL 2-5$1/1${tap}: Put a 3/3 green Elephant creature token onto the battlefield.$LEVEL 6+$1/1${tap}: Put two 3/3 green Elephant creature tokens onto the battlefield.| Khalni Hydra|Rise of the Eldrazi|192|M|{G}{G}{G}{G}{G}{G}{G}{G}|Creature - Hydra|8|8|Khalni Hydra costs {G} less to cast for each green creature you control.$Trample| -Kozilek's Predator|Rise of the Eldrazi|193|C|{3}{G}|Creature - Eldrazi Drone|3|3|When Kozilek's Predator enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Kozilek's Predator|Rise of the Eldrazi|193|C|{3}{G}|Creature - Eldrazi Drone|3|3|When Kozilek's Predator enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Leaf Arrow|Rise of the Eldrazi|194|C|{G}|Instant|||Leaf Arrow deals 3 damage to target creature with flying.| Living Destiny|Rise of the Eldrazi|195|C|{3}{G}|Instant|||As an additional cost to cast Living Destiny, reveal a creature card from your hand.$You gain life equal to the revealed card's converted mana cost.| Might of the Masses|Rise of the Eldrazi|196|C|{G}|Instant|||Target creature gets +1/+1 until end of turn for each creature you control.| @@ -16460,7 +16460,7 @@ Naturalize|Rise of the Eldrazi|199|C|{1}{G}|Instant|||Destroy target artifact or Artisan of Kozilek|Rise of the Eldrazi|2|U|{9}|Creature - Eldrazi|10|9|When you cast Artisan of Kozilek, you may return target creature card from your graveyard to the battlefield.$Annihilator 2 (Whenever this creature attacks, defending player sacrifices two permanents.)| Emerge Unscathed|Rise of the Eldrazi|20|U|{W}|Instant|||Target creature you control gains protection from the color of your choice until end of turn.$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.)| Nema Siltlurker|Rise of the Eldrazi|200|C|{4}{G}|Creature - Lizard|3|5|| -Nest Invader|Rise of the Eldrazi|201|C|{1}{G}|Creature - Eldrazi Drone|2|2|When Nest Invader enters the battlefield, put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Nest Invader|Rise of the Eldrazi|201|C|{1}{G}|Creature - Eldrazi Drone|2|2|When Nest Invader enters the battlefield, put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Ondu Giant|Rise of the Eldrazi|202|C|{3}{G}|Creature - Giant Druid|2|4|When Ondu Giant enters the battlefield, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.| Overgrown Battlement|Rise of the Eldrazi|203|C|{1}{G}|Creature - Wall|0|4|Defender${tap}: Add {G} to your mana pool for each creature with defender you control.| Pelakka Wurm|Rise of the Eldrazi|204|U|{4}{G}{G}{G}|Creature - Wurm|7|7|Trample$When Pelakka Wurm enters the battlefield, you gain 7 life.$When Pelakka Wurm dies, draw a card.| @@ -16476,7 +16476,7 @@ Vengevine|Rise of the Eldrazi|212|M|{2}{G}{G}|Creature - Elemental|4|3|Haste$Whe Wildheart Invoker|Rise of the Eldrazi|213|C|{2}{G}{G}|Creature - Elf Shaman|4|3|{8}: Target creature gets +5/+5 and gains trample until end of turn.| Sarkhan the Mad|Rise of the Eldrazi|214|M|{3}{B}{R}|Planeswalker - Sarkhan|||0: Reveal the top card of your library and put it into your hand. Sarkhan the Mad deals damage to himself equal to that card's converted mana cost.$-2: Target creature's controller sacrifices it, then that player puts a 5/5 red Dragon creature token with flying onto the battlefield.$-4: Each Dragon creature you control deals damage equal to its power to target player.| Angelheart Vial|Rise of the Eldrazi|215|R|{5}|Artifact|||Whenever you're dealt damage, you may put that many charge counters on Angelheart Vial.${2}, {tap}, Remove four charge counters from Angelheart Vial: You gain 2 life and draw a card.| -Dreamstone Hedron|Rise of the Eldrazi|216|U|{6}|Artifact|||{tap}: Add {3} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| +Dreamstone Hedron|Rise of the Eldrazi|216|U|{6}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| Enatu Golem|Rise of the Eldrazi|217|U|{6}|Artifact Creature - Golem|3|5|When Enatu Golem dies, you gain 4 life.| Hedron Matrix|Rise of the Eldrazi|218|R|{4}|Artifact - Equipment|||Equipped creature gets +X/+X, where X is its converted mana cost.$Equip {4}| Keening Stone|Rise of the Eldrazi|219|R|{6}|Artifact|||{5}, {tap}: Target player puts the top X cards of his or her library into his or her graveyard, where X is the number of cards in that player's graveyard.| @@ -16488,7 +16488,7 @@ Reinforced Bulwark|Rise of the Eldrazi|223|C|{3}|Artifact Creature - Wall|0|4|De Runed Servitor|Rise of the Eldrazi|224|U|{2}|Artifact Creature - Construct|2|2|When Runed Servitor dies, each player draws a card.| Sphinx-Bone Wand|Rise of the Eldrazi|225|R|{7}|Artifact|||Whenever you cast an instant or sorcery spell, you may put a charge counter on Sphinx-Bone Wand. If you do, Sphinx-Bone Wand deals damage equal to the number of charge counters on it to target creature or player.| Warmonger's Chariot|Rise of the Eldrazi|226|U|{2}|Artifact - Equipment|||Equipped creature gets +2/+2.$As long as equipped creature has defender, it can attack as though it didn't have defender.$Equip {3}| -Eldrazi Temple|Rise of the Eldrazi|227|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {2} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi.| +Eldrazi Temple|Rise of the Eldrazi|227|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {C}{C} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi.| Evolving Wilds|Rise of the Eldrazi|228|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Plains|Rise of the Eldrazi|229|L||Basic Land - Plains|||W| Guard Duty|Rise of the Eldrazi|23|C|{W}|Enchantment - Aura|||Enchant creature$Enchanted creature has defender.| @@ -16666,8 +16666,8 @@ Scroll of Origins|Saviors of Kamigawa|159|R|{2}|Artifact|||{2}, {tap}: Draw a ca Kitsune Dawnblade|Saviors of Kamigawa|16|C|{4}{W}|Creature - Fox Samurai|2|3|Bushido 1 (When this blocks or becomes blocked, it gets +1/+1 until end of turn.)$When Kitsune Dawnblade enters the battlefield, you may tap target creature.| Soratami Cloud Chariot|Saviors of Kamigawa|160|U|{5}|Artifact|||{2}: Target creature you control gains flying until end of turn.${2}: Prevent all combat damage that would be dealt to and dealt by target creature you control this turn.| Wine of Blood and Iron|Saviors of Kamigawa|161|R|{3}|Artifact|||{4}: Target creature gets +X/+0 until end of turn, where X is its power. Sacrifice Wine of Blood and Iron at the beginning of the next end step.| -Mikokoro, Center of the Sea|Saviors of Kamigawa|162|R||Legendary Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: Each player draws a card.| -Miren, the Moaning Well|Saviors of Kamigawa|163|R||Legendary Land|||{tap}: Add {1} to your mana pool.${3}, {tap}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness.| +Mikokoro, Center of the Sea|Saviors of Kamigawa|162|R||Legendary Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: Each player draws a card.| +Miren, the Moaning Well|Saviors of Kamigawa|163|R||Legendary Land|||{tap}: Add {C} to your mana pool.${3}, {tap}, Sacrifice a creature: You gain life equal to the sacrificed creature's toughness.| Oboro, Palace in the Clouds|Saviors of Kamigawa|164|R||Legendary Land|||{tap}: Add {U} to your mana pool.${1}: Return Oboro, Palace in the Clouds to its owner's hand.| Tomb of Urami|Saviors of Kamigawa|165|R||Legendary Land|||{tap}: Add {B} to your mana pool. Tomb of Urami deals 1 damage to you if you don't control an Ogre.${2}{B}{B}, {tap}, Sacrifice all lands you control: Put a legendary 5/5 black Demon Spirit creature token with flying named Urami onto the battlefield.| Kitsune Loreweaver|Saviors of Kamigawa|17|C|{1}{W}|Creature - Fox Cleric|2|1|{1}{W}: Kitsune Loreweaver gets +0/+X until end of turn, where X is the number of cards in your hand.| @@ -16857,7 +16857,7 @@ Revoke Existence|Scars of Mirrodin|18|C|{1}{W}|Sorcery|||Exile target artifact o Myr Battlesphere|Scars of Mirrodin|180|R|{7}|Artifact Creature - Myr Construct|4|7|When Myr Battlesphere enters the battlefield, put four 1/1 colorless Myr artifact creature tokens onto the battlefield.$Whenever Myr Battlesphere attacks, you may tap X untapped Myr you control. If you do, Myr Battlesphere gets +X/+0 until end of turn and deals X damage to defending player.| Myr Galvanizer|Scars of Mirrodin|181|U|{3}|Artifact Creature - Myr|2|2|Other Myr creatures you control get +1/+1.${1}, {tap}: Untap each other Myr you control.| Myr Propagator|Scars of Mirrodin|182|R|{3}|Artifact Creature - Myr|1|1|{3}, {tap}: Put a token that's a copy of Myr Propagator onto the battlefield.| -Myr Reservoir|Scars of Mirrodin|183|R|{3}|Artifact|||{tap}: Add {2} to your mana pool. Spend this mana only to cast Myr spells or activate abilities of Myr.${3}, {tap}: Return target Myr card from your graveyard to your hand.| +Myr Reservoir|Scars of Mirrodin|183|R|{3}|Artifact|||{tap}: Add {C}{C} to your mana pool. Spend this mana only to cast Myr spells or activate abilities of Myr.${3}, {tap}: Return target Myr card from your graveyard to your hand.| Necrogen Censer|Scars of Mirrodin|184|C|{3}|Artifact|||Necrogen Censer enters the battlefield with two charge counters on it.${tap}, Remove a charge counter from Necrogen Censer: Target player loses 2 life.| Necropede|Scars of Mirrodin|185|U|{2}|Artifact Creature - Insect|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.)$When Necropede dies, you may put a -1/-1 counter on target creature.| Neurok Replica|Scars of Mirrodin|186|C|{3}|Artifact Creature - Wizard|1|4|{1}{U}, Sacrifice Neurok Replica: Return target creature to its owner's hand.| @@ -16865,7 +16865,7 @@ Nihil Spellbomb|Scars of Mirrodin|187|C|{1}|Artifact|||{tap}, Sacrifice Nihil Sp Nim Deathmantle|Scars of Mirrodin|188|R|{2}|Artifact - Equipment|||Equipped creature gets +2/+2, has intimidate, and is a black Zombie.$Whenever a nontoken creature is put into your graveyard from the battlefield, you may pay {4}. If you do, return that card to the battlefield and attach Nim Deathmantle to it.$Equip {4}| Origin Spellbomb|Scars of Mirrodin|189|C|{1}|Artifact|||{1}, {tap}, Sacrifice Origin Spellbomb: Put a 1/1 colorless Myr artifact creature token onto the battlefield.$When Origin Spellbomb is put into a graveyard from the battlefield, you may pay {W}. If you do, draw a card.| Salvage Scout|Scars of Mirrodin|19|C|{W}|Creature - Human Scout|1|1|{W}, Sacrifice Salvage Scout: Return target artifact card from your graveyard to your hand.| -Palladium Myr|Scars of Mirrodin|190|U|{3}|Artifact Creature - Myr|2|2|{tap}: Add {2} to your mana pool.| +Palladium Myr|Scars of Mirrodin|190|U|{3}|Artifact Creature - Myr|2|2|{tap}: Add {C}{C} to your mana pool.| Panic Spellbomb|Scars of Mirrodin|191|C|{1}|Artifact|||{tap}, Sacrifice Panic Spellbomb: Target creature can't block this turn.$When Panic Spellbomb is put into a graveyard from the battlefield, you may pay {R}. If you do, draw a card.| Perilous Myr|Scars of Mirrodin|192|C|{2}|Artifact Creature - Myr|1|1|When Perilous Myr dies, it deals 2 damage to target creature or player.| Platinum Emperion|Scars of Mirrodin|193|M|{8}|Artifact Creature - Golem|8|8|Your life total can't change. (You can't gain or lose life. You can't pay any amount of life except 0.)| @@ -16906,7 +16906,7 @@ Wurmcoil Engine|Scars of Mirrodin|223|M|{6}|Artifact Creature - Wurm|6|6|Deathto Blackcleave Cliffs|Scars of Mirrodin|224|R||Land|||Blackcleave Cliffs enters the battlefield tapped unless you control two or fewer other lands.${tap}: Add {B} or {R} to your mana pool.| Copperline Gorge|Scars of Mirrodin|225|R||Land|||Copperline Gorge enters the battlefield tapped unless you control two or fewer other lands.${tap}: Add {R} or {G} to your mana pool.| Darkslick Shores|Scars of Mirrodin|226|R||Land|||Darkslick Shores enters the battlefield tapped unless you control two or fewer other lands.${tap}: Add {U} or {B} to your mana pool.| -Glimmerpost|Scars of Mirrodin|227|C||Land - Locus|||When Glimmerpost enters the battlefield, you gain 1 life for each Locus on the battlefield.${tap}: Add {1} to your mana pool.| +Glimmerpost|Scars of Mirrodin|227|C||Land - Locus|||When Glimmerpost enters the battlefield, you gain 1 life for each Locus on the battlefield.${tap}: Add {C} to your mana pool.| Razorverge Thicket|Scars of Mirrodin|228|R||Land|||Razorverge Thicket enters the battlefield tapped unless you control two or fewer other lands.${tap}: Add {G} or {W} to your mana pool.| Seachrome Coast|Scars of Mirrodin|229|R||Land|||Seachrome Coast enters the battlefield tapped unless you control two or fewer other lands.${tap}: Add {W} or {U} to your mana pool.| Sunspear Shikari|Scars of Mirrodin|23|C|{1}{W}|Creature - Cat Soldier|2|2|As long as Sunspear Shikari is equipped, it has first strike and lifelink.| @@ -16940,7 +16940,7 @@ Auriok Edgewright|Scars of Mirrodin|3|U|{W}{W}|Creature - Human Soldier|2|2|Meta Darkslick Drake|Scars of Mirrodin|30|U|{2}{U}{U}|Creature - Drake|2|4|Flying$When Darkslick Drake dies, draw a card.| Disperse|Scars of Mirrodin|31|C|{1}{U}|Instant|||Return target nonland permanent to its owner's hand.| Dissipation Field|Scars of Mirrodin|32|R|{2}{U}{U}|Enchantment|||Whenever a permanent deals damage to you, return it to its owner's hand.| -Grand Architect|Scars of Mirrodin|33|R|{1}{U}{U}|Creature - Vedalken Artificer|1|3|Other blue creatures you control get +1/+1.${U}: Target artifact creature becomes blue until end of turn.$Tap an untapped blue creature you control: Add {2} to your mana pool. Spend this mana only to cast artifact spells or activate abilities of artifacts.| +Grand Architect|Scars of Mirrodin|33|R|{1}{U}{U}|Creature - Vedalken Artificer|1|3|Other blue creatures you control get +1/+1.${U}: Target artifact creature becomes blue until end of turn.$Tap an untapped blue creature you control: Add {C}{C} to your mana pool. Spend this mana only to cast artifact spells or activate abilities of artifacts.| Halt Order|Scars of Mirrodin|34|U|{2}{U}|Instant|||Counter target artifact spell.$Draw a card.| Inexorable Tide|Scars of Mirrodin|35|R|{3}{U}{U}|Enchantment|||Whenever you cast a spell, proliferate. (You choose any number of permanents and/or players with counters on them, then give each another counter of a kind already there.)| Lumengrid Drake|Scars of Mirrodin|36|C|{3}{U}|Creature - Drake|2|2|Flying$Metalcraft - When Lumengrid Drake enters the battlefield, if you control three or more artifacts, return target creature to its owner's hand.| @@ -17062,7 +17062,7 @@ Force Bubble|Scourge|14|R|{2}{W}{W}|Enchantment|||If damage would be dealt to yo Ark of Blight|Scourge|140|U|{2}|Artifact|||{3}, {tap}, Sacrifice Ark of Blight: Destroy target land.| Proteus Machine|Scourge|141|U|{3}|Artifact Creature - Shapeshifter|2|2|Morph {0} You may cast this card face downn as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)$When Proteus Machine is turned face up, it becomes the creature type of your choice. (This effect lasts indefinitely.)| Stabilizer|Scourge|142|R|{2}|Artifact|||Players can't cycle cards.| -Temple of the False God|Scourge|143|U||Land|||{tap}: Add {2} to your mana pool. Activate this ability only if you control five or more lands.| +Temple of the False God|Scourge|143|U||Land|||{tap}: Add {C}{C} to your mana pool. Activate this ability only if you control five or more lands.| Frontline Strategist|Scourge|15|C|{W}|Creature - Human Soldier|1|1|Morph {W} You may cast this card face downn as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)$When Frontline Strategist is turned face up, prevent all combat damage non-Soldier creatures would deal this turn.| Gilded Light|Scourge|16|U|{1}{W}|Instant|||You gain shroud until end of turn. (You can't be the target of spells or abilities.)$Cycling {2} ({2}, Discard this card: Draw a card.)| Guilty Conscience|Scourge|17|C|{W}|Enchantment - Aura|||Enchant creature$Whenever enchanted creature deals damage, Guilty Conscience deals that much damage to that creature.| @@ -17396,7 +17396,7 @@ Phyrexian Colossus|Seventh Edition|311|R|{7}|Artifact Creature - Golem|8|8|Phyre Phyrexian Hulk|Seventh Edition|312|U|{6}|Artifact Creature - Golem|5|4|| Pit Trap|Seventh Edition|313|U|{2}|Artifact|||{2}, {tap}, Sacrifice Pit Trap: Destroy target attacking creature without flying. It can't be regenerated.| Rod of Ruin|Seventh Edition|314|U|{4}|Artifact|||{3}, {tap}: Rod of Ruin deals 1 damage to target creature or player.| -Sisay's Ring|Seventh Edition|315|U|{4}|Artifact|||{tap}: Add {2} to your mana pool.| +Sisay's Ring|Seventh Edition|315|U|{4}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Sky Diamond|Seventh Edition|316|U|{2}|Artifact|||Sky Diamond enters the battlefield tapped.${tap}: Add {U} to your mana pool.| Soul Net|Seventh Edition|317|U|{1}|Artifact|||Whenever a creature dies, you may pay {1}. If you do, you gain 1 life.| Spellbook|Seventh Edition|318|U|{0}|Artifact|||You have no maximum hand size.| @@ -17407,8 +17407,8 @@ Teferi's Puzzle Box|Seventh Edition|321|R|{4}|Artifact|||At the beginning of eac Throne of Bone|Seventh Edition|322|U|{1}|Artifact|||Whenever a player casts a black spell, you may pay {1}. If you do, you gain 1 life.| Wall of Spears|Seventh Edition|323|U|{3}|Artifact Creature - Wall|2|3|Defender (This creature can't attack.)$First strike| Wooden Sphere|Seventh Edition|324|U|{1}|Artifact|||Whenever a player casts a green spell, you may pay {1}. If you do, you gain 1 life.| -Adarkar Wastes|Seventh Edition|325|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| -Brushland|Seventh Edition|326|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| +Adarkar Wastes|Seventh Edition|325|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| +Brushland|Seventh Edition|326|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| City of Brass|Seventh Edition|327|R||Land|||Whenever City of Brass becomes tapped, it deals 1 damage to you.${tap}: Add one mana of any color to your mana pool.| Forest|Seventh Edition|328|L||Basic Land - Forest|||G| Forest|Seventh Edition|329|L||Basic Land - Forest|||G| @@ -17419,7 +17419,7 @@ Island|Seventh Edition|332|L||Basic Land - Island|||U| Island|Seventh Edition|333|L||Basic Land - Island|||U| Island|Seventh Edition|334|L||Basic Land - Island|||U| Island|Seventh Edition|335|L||Basic Land - Island|||U| -Karplusan Forest|Seventh Edition|336|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| +Karplusan Forest|Seventh Edition|336|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| Mountain|Seventh Edition|337|L||Basic Land - Mountain|||R| Mountain|Seventh Edition|338|L||Basic Land - Mountain|||R| Mountain|Seventh Edition|339|L||Basic Land - Mountain|||R| @@ -17429,13 +17429,13 @@ Plains|Seventh Edition|341|L||Basic Land - Plains|||W| Plains|Seventh Edition|342|L||Basic Land - Plains|||W| Plains|Seventh Edition|343|L||Basic Land - Plains|||W| Plains|Seventh Edition|344|L||Basic Land - Plains|||W| -Sulfurous Springs|Seventh Edition|345|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| +Sulfurous Springs|Seventh Edition|345|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| Swamp|Seventh Edition|346|L||Basic Land - Swamp|||B| Swamp|Seventh Edition|347|L||Basic Land - Swamp|||B| Swamp|Seventh Edition|348|L||Basic Land - Swamp|||B| Swamp|Seventh Edition|349|L||Basic Land - Swamp|||B| Rolling Stones|Seventh Edition|35|R|{1}{W}|Enchantment|||Wall creatures can attack as though they didn't have defender.| -Underground River|Seventh Edition|350|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| +Underground River|Seventh Edition|350|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| Sacred Ground|Seventh Edition|36|R|{1}{W}|Enchantment|||Whenever a spell or ability an opponent controls causes a land to be put into your graveyard from the battlefield, return that card to the battlefield.| Sacred Nectar|Seventh Edition|37|C|{1}{W}|Sorcery|||You gain 4 life.| Samite Healer|Seventh Edition|38|C|{1}{W}|Creature - Human Cleric|1|1|{tap}: Prevent the next 1 damage that would be dealt to target creature or player this turn.| @@ -17634,7 +17634,7 @@ Loamdragger Giant|Shadowmoor|210|C|{4}{RG}{RG}{RG}|Creature - Giant Warrior|7|6| Manamorphose|Shadowmoor|211|C|{1}{RG}|Instant|||Add two mana in any combination of colors to your mana pool.$Draw a card.| Morselhoarder|Shadowmoor|212|C|{4}{RG}{RG}|Creature - Elemental|6|4|Morselhoarder enters the battlefield with two -1/-1 counters on it.$Remove a -1/-1 counter from Morselhoarder: Add one mana of any color to your mana pool.| Mudbrawler Raiders|Shadowmoor|213|C|{2}{RG}{RG}|Creature - Goblin Warrior|3|3|Mudbrawler Raiders can't be blocked by blue creatures.| -Rosheen Meanderer|Shadowmoor|214|R|{3}{RG}|Legendary Creature - Giant Shaman|4|4|{tap}: Add {4} to your mana pool. Spend this mana only on costs that contain {X}.| +Rosheen Meanderer|Shadowmoor|214|R|{3}{RG}|Legendary Creature - Giant Shaman|4|4|{tap}: Add {C}{C}{C}{C} to your mana pool. Spend this mana only on costs that contain {X}.| Runes of the Deus|Shadowmoor|215|C|{4}{RG}|Enchantment - Aura|||Enchant creature$As long as enchanted creature is red, it gets +1/+1 and has double strike. (It deals both first-strike and regular combat damage.)$As long as enchanted creature is green, it gets +1/+1 and has trample.| Scuzzback Marauders|Shadowmoor|216|C|{4}{RG}|Creature - Goblin Warrior|5|2|Trample$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.)| Scuzzback Scrapper|Shadowmoor|217|C|{RG}|Creature - Goblin Warrior|1|1|Wither (This deals damage to creatures in the form of -1/-1 counters.)| @@ -17697,18 +17697,18 @@ Watchwing Scarecrow|Shadowmoor|268|C|{4}|Artifact Creature - Scarecrow|2|4|Watch Wicker Warcrawler|Shadowmoor|269|U|{5}|Artifact Creature - Scarecrow|6|6|Whenever Wicker Warcrawler attacks or blocks, put a -1/-1 counter on it at end of combat.| Woeleecher|Shadowmoor|27|C|{5}{W}|Creature - Elemental|3|5|{W}, {tap}: Remove a -1/-1 counter from target creature. If you do, you gain 2 life.| Wingrattle Scarecrow|Shadowmoor|270|C|{3}|Artifact Creature - Scarecrow|2|2|Wingrattle Scarecrow has flying as long as you control a blue creature.$Wingrattle Scarecrow has persist as long as you control a black creature. (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.)| -Fire-Lit Thicket|Shadowmoor|271|R||Land|||{tap}: Add {1} to your mana pool.${RG}, {tap}: Add {R}{R}, {R}{G}, or {G}{G} to your mana pool.| -Graven Cairns|Shadowmoor|272|R||Land|||{tap}: Add {1} to your mana pool.${BR}, {tap}: Add {B}{B}, {B}{R}, or {R}{R} to your mana pool.| +Fire-Lit Thicket|Shadowmoor|271|R||Land|||{tap}: Add {C} to your mana pool.${RG}, {tap}: Add {R}{R}, {R}{G}, or {G}{G} to your mana pool.| +Graven Cairns|Shadowmoor|272|R||Land|||{tap}: Add {C} to your mana pool.${BR}, {tap}: Add {B}{B}, {B}{R}, or {R}{R} to your mana pool.| Leechridden Swamp|Shadowmoor|273|U||Land - Swamp|||({tap}: Add {B} to your mana pool.)$Leechridden Swamp enters the battlefield tapped.${B}, {tap}: Each opponent loses 1 life. Activate this ability only if you control two or more black permanents.| Madblind Mountain|Shadowmoor|274|U||Land - Mountain|||({tap}: Add {R} to your mana pool.)$Madblind Mountain enters the battlefield tapped.${R}, {tap}: Shuffle your library. Activate this ability only if you control two or more red permanents.| Mistveil Plains|Shadowmoor|275|U||Land - Plains|||({tap}: Add {W} to your mana pool.)$Mistveil Plains enters the battlefield tapped.${W}, {tap}: Put target card from your graveyard on the bottom of your library. Activate this ability only if you control two or more white permanents.| Moonring Island|Shadowmoor|276|U||Land - Island|||({tap}: Add {U} to your mana pool.)$Moonring Island enters the battlefield tapped.${U}, {tap}: Look at the top card of target player's library. Activate this ability only if you control two or more blue permanents.| -Mystic Gate|Shadowmoor|277|R||Land|||{tap}: Add {1} to your mana pool.${WU}, {tap}: Add {W}{W}, {W}{U}, or {U}{U} to your mana pool.| +Mystic Gate|Shadowmoor|277|R||Land|||{tap}: Add {C} to your mana pool.${WU}, {tap}: Add {W}{W}, {W}{U}, or {U}{U} to your mana pool.| Reflecting Pool|Shadowmoor|278|R||Land|||{tap}: Add to your mana pool one mana of any type that a land you control could produce.| Sapseep Forest|Shadowmoor|279|U||Land - Forest|||({tap}: Add {G} to your mana pool.)$Sapseep Forest enters the battlefield tapped.${G}, {tap}: You gain 1 life. Activate this ability only if you control two or more green permanents.| Advice from the Fae|Shadowmoor|28|U|{2U}{2U}{2U}|Sorcery|||({2U} can be paid with any two mana or with {U}. This card's converted mana cost is 6.)$Look at the top five cards of your library. If you control more creatures than each other player, put two of those cards into your hand. Otherwise, put one of them into your hand. Then put the rest on the bottom of your library in any order.| -Sunken Ruins|Shadowmoor|280|R||Land|||{tap}: Add {1} to your mana pool.${UB}, {tap}: Add {U}{U}, {U}{B}, or {B}{B} to your mana pool.| -Wooded Bastion|Shadowmoor|281|R||Land|||{tap}: Add {1} to your mana pool.${GW}, {tap}: Add {G}{G}, {G}{W}, or {W}{W} to your mana pool.| +Sunken Ruins|Shadowmoor|280|R||Land|||{tap}: Add {C} to your mana pool.${UB}, {tap}: Add {U}{U}, {U}{B}, or {B}{B} to your mana pool.| +Wooded Bastion|Shadowmoor|281|R||Land|||{tap}: Add {C} to your mana pool.${GW}, {tap}: Add {G}{G}, {G}{W}, or {W}{W} to your mana pool.| Plains|Shadowmoor|282|L||Basic Land - Plains|||W| Plains|Shadowmoor|283|L||Basic Land - Plains|||W| Plains|Shadowmoor|284|L||Basic Land - Plains|||W| @@ -17840,7 +17840,7 @@ Cavern Thoctar|Shards of Alara|125|C|{5}{G}|Creature - Beast|5|5|{1}{R}: Cavern Court Archers|Shards of Alara|126|C|{2}{G}|Creature - Human Archer|1|3|Reach (This can block creatures with flying.)$Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)| Cylian Elf|Shards of Alara|127|C|{1}{G}|Creature - Elf Scout|2|2|| Druid of the Anima|Shards of Alara|128|C|{1}{G}|Creature - Elf Druid|1|1|{tap}: Add {R}, {G}, or {W} to your mana pool.| -Drumhunter|Shards of Alara|129|U|{3}{G}|Creature - Human Druid Warrior|2|2|At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card.${tap}: Add {1} to your mana pool.| +Drumhunter|Shards of Alara|129|U|{3}{G}|Creature - Human Druid Warrior|2|2|At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card.${tap}: Add {C} to your mana pool.| Gustrider Exuberant|Shards of Alara|13|C|{2}{W}|Creature - Human Wizard|1|2|Flying$Sacrifice Gustrider Exuberant: Creatures you control with power 5 or greater gain flying until end of turn.| Elvish Visionary|Shards of Alara|130|C|{1}{G}|Creature - Elf Shaman|1|1|When Elvish Visionary enters the battlefield, draw a card.| Feral Hydra|Shards of Alara|131|R|{X}{G}|Creature - Hydra Beast|0|0|Feral Hydra enters the battlefield with X +1/+1 counters on it.${3}: Put a +1/+1 counter on Feral Hydra. Any player may activate this ability.| @@ -17943,13 +17943,13 @@ Relic of Progenitus|Shards of Alara|218|C|{1}|Artifact|||{tap}: Target player ex Sigil of Distinction|Shards of Alara|219|R|{X}|Artifact - Equipment|||Sigil of Distinction enters the battlefield with X charge counters on it.$Equipped creature gets +1/+1 for each charge counter on Sigil of Distinction.$Equip-Remove a charge counter from Sigil of Distinction.| Resounding Silence|Shards of Alara|22|C|{3}{W}|Instant|||Exile target attacking creature.$Cycling {5}{G}{W}{U} ({5}{G}{W}{U}, Discard this card: Draw a card.)$When you cycle Resounding Silence, exile up to two target attacking creatures.| Arcane Sanctum|Shards of Alara|220|U||Land|||Arcane Sanctum enters the battlefield tapped.${tap}: Add {W}, {U}, or {B} to your mana pool.| -Bant Panorama|Shards of Alara|221|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Bant Panorama: Search your library for a basic Forest, Plains, or Island card and put it onto the battlefield tapped. Then shuffle your library.| +Bant Panorama|Shards of Alara|221|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Bant Panorama: Search your library for a basic Forest, Plains, or Island card and put it onto the battlefield tapped. Then shuffle your library.| Crumbling Necropolis|Shards of Alara|222|U||Land|||Crumbling Necropolis enters the battlefield tapped.${tap}: Add {U}, {B}, or {R} to your mana pool.| -Esper Panorama|Shards of Alara|223|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Esper Panorama: Search your library for a basic Plains, Island, or Swamp card and put it onto the battlefield tapped. Then shuffle your library.| -Grixis Panorama|Shards of Alara|224|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Grixis Panorama: Search your library for a basic Island, Swamp, or Mountain card and put it onto the battlefield tapped. Then shuffle your library.| -Jund Panorama|Shards of Alara|225|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Jund Panorama: Search your library for a basic Swamp, Mountain, or Forest card and put it onto the battlefield tapped. Then shuffle your library.| +Esper Panorama|Shards of Alara|223|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Esper Panorama: Search your library for a basic Plains, Island, or Swamp card and put it onto the battlefield tapped. Then shuffle your library.| +Grixis Panorama|Shards of Alara|224|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Grixis Panorama: Search your library for a basic Island, Swamp, or Mountain card and put it onto the battlefield tapped. Then shuffle your library.| +Jund Panorama|Shards of Alara|225|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Jund Panorama: Search your library for a basic Swamp, Mountain, or Forest card and put it onto the battlefield tapped. Then shuffle your library.| Jungle Shrine|Shards of Alara|226|U||Land|||Jungle Shrine enters the battlefield tapped.${tap}: Add {R}, {G}, or {W} to your mana pool.| -Naya Panorama|Shards of Alara|227|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Naya Panorama: Search your library for a basic Mountain, Forest, or Plains card and put it onto the battlefield tapped. Then shuffle your library.| +Naya Panorama|Shards of Alara|227|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Naya Panorama: Search your library for a basic Mountain, Forest, or Plains card and put it onto the battlefield tapped. Then shuffle your library.| Savage Lands|Shards of Alara|228|U||Land|||Savage Lands enters the battlefield tapped.${tap}: Add {B}, {R}, or {G} to your mana pool.| Seaside Citadel|Shards of Alara|229|U||Land|||Seaside Citadel enters the battlefield tapped.${tap}: Add {G}, {W}, or {U} to your mana pool.| Rockcaster Platoon|Shards of Alara|23|U|{5}{W}{W}|Creature - Rhino Soldier|5|7|{4}{G}: Rockcaster Platoon deals 2 damage to each creature with flying and each player.| @@ -17978,7 +17978,7 @@ Scourglass|Shards of Alara|25|R|{3}{W}{W}|Artifact|||{tap}, Sacrifice Scourglass Sighted-Caste Sorcerer|Shards of Alara|26|C|{1}{W}|Creature - Human Wizard|1|1|Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)${U}: Sighted-Caste Sorcerer gains shroud until end of turn. (It can't be the target of spells or abilities.)| Sigiled Paladin|Shards of Alara|27|U|{W}{W}|Creature - Human Knight|2|2|First strike$Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)| Soul's Grace|Shards of Alara|28|C|{1}{W}|Instant|||You gain life equal to target creature's power.| -Sunseed Nurturer|Shards of Alara|29|U|{2}{W}|Creature - Human Druid Wizard|1|1|At the beginning of your end step, if you control a creature with power 5 or greater, you may gain 2 life.${tap}: Add {1} to your mana pool.| +Sunseed Nurturer|Shards of Alara|29|U|{2}{W}|Creature - Human Druid Wizard|1|1|At the beginning of your end step, if you control a creature with power 5 or greater, you may gain 2 life.${tap}: Add {C} to your mana pool.| Angelic Benediction|Shards of Alara|3|U|{3}{W}|Enchantment|||Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)$Whenever a creature you control attacks alone, you may tap target creature.| Welkin Guide|Shards of Alara|30|C|{4}{W}|Creature - Bird Cleric|2|2|Flying$When Welkin Guide enters the battlefield, target creature gets +2/+2 and gains flying until end of turn.| Yoked Plowbeast|Shards of Alara|31|C|{5}{W}{W}|Creature - Beast|5|5|Cycling {2} ({2}, Discard this card: Draw a card.)| @@ -18055,7 +18055,7 @@ Caldera Hellion|Shards of Alara|95|R|{3}{R}{R}|Creature - Hellion|3|3|Devour 1 < Crucible of Fire|Shards of Alara|96|R|{3}{R}|Enchantment|||Dragon creatures you control get +3/+3.| Dragon Fodder|Shards of Alara|97|C|{1}{R}|Sorcery|||Put two 1/1 red Goblin creature tokens onto the battlefield.| Dragon's Herald|Shards of Alara|98|U|{R}|Creature - Goblin Shaman|1|1|{2}{R}, {tap}, Sacrifice a black creature, a red creature, and a green creature: Search your library for a card named Hellkite Overlord and put it onto the battlefield. Then shuffle your library.| -Exuberant Firestoker|Shards of Alara|99|U|{2}{R}|Creature - Human Druid Shaman|1|1|At the beginning of your end step, if you control a creature with power 5 or greater, you may have Exuberant Firestoker deal 2 damage to target player.${tap}: Add {1} to your mana pool.| +Exuberant Firestoker|Shards of Alara|99|U|{2}{R}|Creature - Human Druid Shaman|1|1|At the beginning of your end step, if you control a creature with power 5 or greater, you may have Exuberant Firestoker deal 2 damage to target player.${tap}: Add {C} to your mana pool.| Angel of Light|Starter 1999|1|U|{4}{W}|Creature - Angel|3|3|Flying, vigilance| Breath of Life|Starter 1999|10|U|{3}{W}|Sorcery|||Return target creature card from your graveyard to the battlefield.| Goblin Commando|Starter 1999|100|U|{4}{R}|Creature - Goblin|2|2|When Goblin Commando enters the battlefield, it deals 2 damage to target creature.| @@ -18422,7 +18422,7 @@ Portcullis|Stronghold|133|R|{4}|Artifact|||Whenever a creature enters the battle Shifting Wall|Stronghold|134|U|{X}|Artifact Creature - Wall|0|0|Defender (This creature can't attack.)$Shifting Wall enters the battlefield with X +1/+1 counters on it.| Sword of the Chosen|Stronghold|135|R|{2}|Legendary Artifact|||{tap}: Target legendary creature gets +2/+2 until end of turn.| Volrath's Laboratory|Stronghold|136|R|{5}|Artifact|||As Volrath's Laboratory enters the battlefield, choose a color and a creature type.${5}, {tap}: Put a 2/2 creature token of the chosen color and type onto the battlefield.| -Volrath's Stronghold|Stronghold|137|R||Legendary Land|||{tap}: Add {1} to your mana pool.$${1}{B}, {tap}: Put target creature card from your graveyard on top of your library.| +Volrath's Stronghold|Stronghold|137|R||Legendary Land|||{tap}: Add {C} to your mana pool.$${1}{B}, {tap}: Put target creature card from your graveyard on top of your library.| Acidic Sliver|Stronghold|138|U|{B}{R}|Creature - Sliver|2|2|All Slivers have "{2}, Sacrifice this permanent: This permanent deals 2 damage to target creature or player."| Crystalline Sliver|Stronghold|139|U|{W}{U}|Creature - Sliver|2|2|All Slivers have shroud. (They can't be the targets of spells or abilities.)| Hibernation Sliver|Stronghold|140|U|{U}{B}|Creature - Sliver|2|2|All Slivers have "Pay 2 life: Return this permanent to its owner's hand."| @@ -18714,7 +18714,7 @@ Jet Medallion|Tempest|282|R|{2}|Artifact|||Black spells you cast cost {1} less t Jinxed Idol|Tempest|283|R|{2}|Artifact|||At the beginning of your upkeep, Jinxed Idol deals 2 damage to you.$Sacrifice a creature: Target opponent gains control of Jinxed Idol.| Lotus Petal|Tempest|284|C|{0}|Artifact|||{tap}, Sacrifice Lotus Petal: Add one mana of any color to your mana pool.| Magnetic Web|Tempest|285|R|{2}|Artifact|||If a creature with a magnet counter on it attacks, all creatures with magnet counters on them attack if able.$Whenever a creature with a magnet counter on it attacks, all creatures with magnet counters on them block that creature this turn if able.${1}, {tap}: Put a magnet counter on target creature.| -Manakin|Tempest|286|C|{2}|Artifact Creature - Construct|1|1|{tap}: Add {1} to your mana pool.| +Manakin|Tempest|286|C|{2}|Artifact Creature - Construct|1|1|{tap}: Add {C} to your mana pool.| Metallic Sliver|Tempest|287|C|{1}|Artifact Creature - Sliver|1|1|| Mogg Cannon|Tempest|288|U|{2}|Artifact|||{tap}: Target creature you control gets +1/+0 and gains flying until end of turn. Destroy that creature at the beginning of the next end step.| Patchwork Gnomes|Tempest|289|U|{3}|Artifact Creature - Gnome|2|1|Discard a card: Regenerate Patchwork Gnomes.| @@ -18733,42 +18733,42 @@ Telethopter|Tempest|301|U|{4}|Artifact Creature - Thopter|3|1|Tap an untapped cr Thumbscrews|Tempest|302|R|{2}|Artifact|||At the beginning of your upkeep, if you have five or more cards in hand, Thumbscrews deals 1 damage to target opponent.| Torture Chamber|Tempest|303|R|{3}|Artifact|||At the beginning of your upkeep, put a pain counter on Torture Chamber.$At the beginning of your end step, Torture Chamber deals damage to you equal to the number of pain counters on it.${1}, {tap}, Remove all pain counters from Torture Chamber: Torture Chamber deals damage to target creature equal to the number of pain counters removed this way.| Watchdog|Tempest|304|U|{3}|Artifact Creature - Hound|1|2|Watchdog blocks each turn if able.$As long as Watchdog is untapped, all creatures attacking you get -1/-0.| -Ancient Tomb|Tempest|305|U||Land|||{tap}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.| -Caldera Lake|Tempest|306|R||Land|||Caldera Lake enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you.| -Cinder Marsh|Tempest|307|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step.| +Ancient Tomb|Tempest|305|U||Land|||{tap}: Add {C}{C} to your mana pool. Ancient Tomb deals 2 damage to you.| +Caldera Lake|Tempest|306|R||Land|||Caldera Lake enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you.| +Cinder Marsh|Tempest|307|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step.| Forest|Tempest|308|L||Basic Land - Forest|||G| Forest|Tempest|309|L||Basic Land - Forest|||G| Forest|Tempest|310|L||Basic Land - Forest|||G| Forest|Tempest|311|L||Basic Land - Forest|||G| -Ghost Town|Tempest|312|U||Land|||{tap}: Add {1} to your mana pool.${0}: Return Ghost Town to its owner's hand. Activate this ability only if it's not your turn.| +Ghost Town|Tempest|312|U||Land|||{tap}: Add {C} to your mana pool.${0}: Return Ghost Town to its owner's hand. Activate this ability only if it's not your turn.| Island|Tempest|313|L||Basic Land - Island|||U| Island|Tempest|314|L||Basic Land - Island|||U| Island|Tempest|315|L||Basic Land - Island|||U| Island|Tempest|316|L||Basic Land - Island|||U| -Maze of Shadows|Tempest|317|U||Land|||{tap}: Add {1} to your mana pool.$${tap}: Untap target attacking creature with shadow. Prevent all combat damage that would be dealt to and dealt by that creature this turn.| -Mogg Hollows|Tempest|318|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step.| +Maze of Shadows|Tempest|317|U||Land|||{tap}: Add {C} to your mana pool.$${tap}: Untap target attacking creature with shadow. Prevent all combat damage that would be dealt to and dealt by that creature this turn.| +Mogg Hollows|Tempest|318|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step.| Mountain|Tempest|319|L||Basic Land - Mountain|||R| Mountain|Tempest|320|L||Basic Land - Mountain|||R| Mountain|Tempest|321|L||Basic Land - Mountain|||R| Mountain|Tempest|322|L||Basic Land - Mountain|||R| -Pine Barrens|Tempest|323|R||Land|||Pine Barrens enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you.| +Pine Barrens|Tempest|323|R||Land|||Pine Barrens enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you.| Plains|Tempest|324|L||Basic Land - Plains|||W| Plains|Tempest|325|L||Basic Land - Plains|||W| Plains|Tempest|326|L||Basic Land - Plains|||W| Plains|Tempest|327|L||Basic Land - Plains|||W| Reflecting Pool|Tempest|328|R||Land|||{tap}: Add to your mana pool one mana of any type that a land you control could produce.| -Rootwater Depths|Tempest|329|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Rootwater Depths doesn't untap during your next untap step.| -Salt Flats|Tempest|330|R||Land|||Salt Flats enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you.| -Scabland|Tempest|331|R||Land|||Scabland enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you.| -Skyshroud Forest|Tempest|332|R||Land|||Skyshroud Forest enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you.| -Stalking Stones|Tempest|333|U||Land|||{tap}: Add {1} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land. (This effect lasts indefinitely.)| +Rootwater Depths|Tempest|329|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Rootwater Depths doesn't untap during your next untap step.| +Salt Flats|Tempest|330|R||Land|||Salt Flats enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you.| +Scabland|Tempest|331|R||Land|||Scabland enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you.| +Skyshroud Forest|Tempest|332|R||Land|||Skyshroud Forest enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you.| +Stalking Stones|Tempest|333|U||Land|||{tap}: Add {C} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land. (This effect lasts indefinitely.)| Swamp|Tempest|334|L||Basic Land - Swamp|||B| Swamp|Tempest|335|L||Basic Land - Swamp|||B| Swamp|Tempest|336|L||Basic Land - Swamp|||B| Swamp|Tempest|337|L||Basic Land - Swamp|||B| -Thalakos Lowlands|Tempest|338|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step.| -Vec Townships|Tempest|339|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step.| -Wasteland|Tempest|340|U||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Wasteland: Destroy target nonbasic land.| +Thalakos Lowlands|Tempest|338|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step.| +Vec Townships|Tempest|339|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step.| +Wasteland|Tempest|340|U||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Wasteland: Destroy target nonbasic land.| Dracoplasm|Tempest|341|R|{U}{R}|Creature - Shapeshifter|0|0|Flying$As Dracoplasm enters the battlefield, sacrifice any number of creatures. Dracoplasm's power becomes the total power of those creatures and its toughness becomes their total toughness.${R}: Dracoplasm gets +1/+0 until end of turn.| Lobotomy|Tempest|342|U|{2}{U}{B}|Sorcery|||Target player reveals his or her hand, then you choose a card other than a basic land card from it. Search that player's graveyard, hand, and library for all cards with the same name as the chosen card and exile them. Then that player shuffles his or her library.| Ranger en-Vec|Tempest|343|U|{1}{G}{W}|Creature - Human Soldier Archer|2|2|First strike${G}: Regenerate Ranger en-Vec.| @@ -19041,7 +19041,7 @@ Leonin Scimitar|Tenth Edition|331|U|{1}|Artifact - Equipment|||Equipped creature Loxodon Warhammer|Tenth Edition|332|R|{3}|Artifact - Equipment|||Equipped creature gets +3/+0 and has trample and lifelink. (If the creature would assign enough damage to its blockers to destroy them, you may have it assign the rest of its damage to defending player or planeswalker. Damage dealt by the creature also causes its controller to gain that much life.)$Equip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)| Mantis Engine|Tenth Edition|333|U|{5}|Artifact Creature - Insect|3|3|{2}: Mantis Engine gains flying until end of turn. (It can't be blocked except by creatures with flying or reach.)${2}: Mantis Engine gains first strike until end of turn. (It deals combat damage before creatures without first strike.)| Millstone|Tenth Edition|334|R|{2}|Artifact|||{2}, {tap}: Target player puts the top two cards of his or her library into his or her graveyard.| -Mind Stone|Tenth Edition|335|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| +Mind Stone|Tenth Edition|335|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| Ornithopter|Tenth Edition|336|U|{0}|Artifact Creature - Thopter|0|2|Flying| Phyrexian Vault|Tenth Edition|337|U|{3}|Artifact|||{2}, {tap}, Sacrifice a creature: Draw a card.| Pithing Needle|Tenth Edition|338|R|{1}|Artifact|||As Pithing Needle enters the battlefield, name a card.$Activated abilities of sources with the chosen name can't be activated unless they're mana abilities.| @@ -19054,25 +19054,25 @@ Spellbook|Tenth Edition|343|U|{0}|Artifact|||You have no maximum hand size.| Steel Golem|Tenth Edition|344|U|{3}|Artifact Creature - Golem|3|4|You can't cast creature spells.| Whispersilk Cloak|Tenth Edition|345|U|{3}|Artifact - Equipment|||Equipped creature is unblockable and has shroud.$Equip {2}| Wurm's Tooth|Tenth Edition|346|U|{2}|Artifact|||Whenever a player casts a green spell, you may gain 1 life.| -Adarkar Wastes|Tenth Edition|347|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| -Battlefield Forge|Tenth Edition|348|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| -Brushland|Tenth Edition|349|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| +Adarkar Wastes|Tenth Edition|347|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Adarkar Wastes deals 1 damage to you.| +Battlefield Forge|Tenth Edition|348|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| +Brushland|Tenth Edition|349|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Brushland deals 1 damage to you.| Reya Dawnbringer|Tenth Edition|35|R|{6}{W}{W}{W}|Legendary Creature - Angel|4|6|Flying$At the beginning of your upkeep, you may return target creature card from your graveyard to the battlefield.| -Caves of Koilos|Tenth Edition|350|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| +Caves of Koilos|Tenth Edition|350|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| Faerie Conclave|Tenth Edition|351|U||Land|||Faerie Conclave enters the battlefield tapped.${tap}: Add {U} to your mana pool.${1}{U}: Faerie Conclave becomes a 2/1 blue Faerie creature with flying until end of turn. It's still a land. (It can't be blocked except by creatures with flying or reach.)| Forbidding Watchtower|Tenth Edition|352|U||Land|||Forbidding Watchtower enters the battlefield tapped.${tap}: Add {W} to your mana pool.${1}{W}: Forbidding Watchtower becomes a 1/5 white Soldier creature until end of turn. It's still a land.| Ghitu Encampment|Tenth Edition|353|U||Land|||Ghitu Encampment enters the battlefield tapped.${tap}: Add {R} to your mana pool.${1}{R}: Ghitu Encampment becomes a 2/1 red Warrior creature with first strike until end of turn. It's still a land. (It deals combat damage before creatures without first strike.)| -Karplusan Forest|Tenth Edition|354|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| -Llanowar Wastes|Tenth Edition|355|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| -Quicksand|Tenth Edition|356|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| -Shivan Reef|Tenth Edition|357|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| +Karplusan Forest|Tenth Edition|354|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Karplusan Forest deals 1 damage to you.| +Llanowar Wastes|Tenth Edition|355|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| +Quicksand|Tenth Edition|356|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| +Shivan Reef|Tenth Edition|357|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| Spawning Pool|Tenth Edition|358|U||Land|||Spawning Pool enters the battlefield tapped.${tap}: Add {B} to your mana pool.${1}{B}: Spawning Pool becomes a 1/1 black Skeleton creature with "{B}: Regenerate this creature" until end of turn. It's still a land. (If it regenerates, the next time it would be destroyed this turn, it isn't. Instead tap it, remove all damage from it, and remove it from combat.)| -Sulfurous Springs|Tenth Edition|359|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| +Sulfurous Springs|Tenth Edition|359|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Sulfurous Springs deals 1 damage to you.| Righteousness|Tenth Edition|36|R|{W}|Instant|||Target blocking creature gets +7/+7 until end of turn.| Terramorphic Expanse|Tenth Edition|360|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Treetop Village|Tenth Edition|361|U||Land|||Treetop Village enters the battlefield tapped.${tap}: Add {G} to your mana pool.${1}{G}: Treetop Village becomes a 3/3 green Ape creature with trample until end of turn. It's still a land. (If it would assign enough damage to its blockers to destroy them, you may have it assign the rest of its damage to defending player or planeswalker.)| -Underground River|Tenth Edition|362|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| -Yavimaya Coast|Tenth Edition|363|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| +Underground River|Tenth Edition|362|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Underground River deals 1 damage to you.| +Yavimaya Coast|Tenth Edition|363|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| Plains|Tenth Edition|364|L||Basic Land - Plains|||W| Plains|Tenth Edition|365|L||Basic Land - Plains|||W| Plains|Tenth Edition|366|L||Basic Land - Plains|||W| @@ -19194,7 +19194,7 @@ Worms of the Earth|The Dark|18|R|{2}{B}{B}{B}|Enchantment|||Players can't play l Amnesia|The Dark|19|U|{3}{U}{U}{U}|Sorcery|||Target player reveals his or her hand and discards all nonland cards.| Tracker|The Dark|194|R|{2}{G}|Creature - Human|2|2|{G}{G}, {tap}: Tracker deals damage equal to its power to target creature. That creature deals damage equal to its power to Tracker.| Banshee|The Dark|2|U|{2}{B}{B}|Creature - Spirit|0|1|{X}, {tap}: Banshee deals half X damage, rounded down, to target creature or player, and half X damage, rounded up, to you.| -Apprentice Wizard|The Dark|20|R|{1}{U}{U}|Creature - Human Wizard|0|1|{U}, {tap}: Add {3} to your mana pool.| +Apprentice Wizard|The Dark|20|R|{1}{U}{U}|Creature - Human Wizard|0|1|{U}, {tap}: Add {C}{C}{C} to your mana pool.| Dance of Many|The Dark|21|R|{U}{U}|Enchantment|||When Dance of Many enters the battlefield, put a token that's a copy of target nontoken creature onto the battlefield.$When Dance of Many leaves the battlefield, exile the token.$When the token leaves the battlefield, sacrifice Dance of Many.$At the beginning of your upkeep, sacrifice Dance of Many unless you pay {U}{U}.| Deep Water|The Dark|22|C|{U}{U}|Enchantment|||{U}: Until end of turn, if you tap a land you control for mana, it produces {U} instead of any other type.| Drowned|The Dark|23|C|{1}{U}|Creature - Zombie|1|1|{B}: Regenerate Drowned.| @@ -19462,27 +19462,27 @@ Lotus Bloom|Time Spiral|259|R||Artifact|||Suspend 3-{0} (Rather than cast thi Knight of the Holy Nimbus|Time Spiral|26|U|{W}{W}|Creature - Human Rebel Knight|2|2|Flanking (Whenever a creature without flanking blocks this creature, the blocking creature gets -1/-1 until end of turn.)$If Knight of the Holy Nimbus would be destroyed, regenerate it.${2}: Knight of the Holy Nimbus can't be regenerated this turn. Only any opponent may activate this ability.| Paradise Plume|Time Spiral|260|U|{4}|Artifact|||As Paradise Plume enters the battlefield, choose a color.$Whenever a player casts a spell of the chosen color, you may gain 1 life.${tap}: Add one mana of the chosen color to your mana pool.| Phyrexian Totem|Time Spiral|261|U|{3}|Artifact|||{tap}: Add {B} to your mana pool.${2}{B}: Phyrexian Totem becomes a 5/5 black Horror artifact creature with trample until end of turn.$Whenever Phyrexian Totem is dealt damage, if it's a creature, sacrifice that many permanents.| -Prismatic Lens|Time Spiral|262|C|{2}|Artifact|||{tap}: Add {1} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| +Prismatic Lens|Time Spiral|262|C|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| Sarpadian Empires, Vol. VII|Time Spiral|263|R|{3}|Artifact|||As Sarpadian Empires, Vol. VII enters the battlefield, choose white Citizen, blue Camarid, black Thrull, red Goblin, or green Saproling.${3}, {tap}: Put a 1/1 creature token of the chosen color and type onto the battlefield.| Stuffy Doll|Time Spiral|264|R|{5}|Artifact Creature - Construct|0|1|As Stuffy Doll enters the battlefield, choose a player.$Stuffy Doll is indestructible.$Whenever Stuffy Doll is dealt damage, it deals that much damage to the chosen player.${tap}: Stuffy Doll deals 1 damage to itself.| Thunder Totem|Time Spiral|265|U|{3}|Artifact|||{tap}: Add {W} to your mana pool.${1}{W}{W}: Thunder Totem becomes a 2/2 white Spirit artifact creature with flying and first strike until end of turn.| Triskelavus|Time Spiral|266|R|{7}|Artifact Creature - Construct|1|1|Flying$Triskelavus enters the battlefield with three +1/+1 counters on it.${1}, Remove a +1/+1 counter from Triskelavus: Put a 1/1 colorless Triskelavite artifact creature token with flying onto the battlefield. It has "Sacrifice this creature: This creature deals 1 damage to target creature or player."| Venser's Sliver|Time Spiral|267|C|{5}|Artifact Creature - Sliver|3|3|| Weatherseed Totem|Time Spiral|268|U|{3}|Artifact|||{tap}: Add {G} to your mana pool.${2}{G}{G}{G}: Weatherseed Totem becomes a 5/3 green Treefolk artifact creature with trample until end of turn.$When Weatherseed Totem is put into a graveyard from the battlefield, if it was a creature, return this card to its owner's hand.| -Academy Ruins|Time Spiral|269|R||Legendary Land|||{tap}: Add {1} to your mana pool.${1}{U}, {tap}: Put target artifact card from your graveyard on top of your library.| +Academy Ruins|Time Spiral|269|R||Legendary Land|||{tap}: Add {C} to your mana pool.${1}{U}, {tap}: Put target artifact card from your graveyard on top of your library.| Magus of the Disk|Time Spiral|27|R|{2}{W}{W}|Creature - Human Wizard|2|4|Magus of the Disk enters the battlefield tapped.${1}, {tap}: Destroy all artifacts, creatures, and enchantments.| -Calciform Pools|Time Spiral|270|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Calciform Pools.${1}, Remove X storage counters from Calciform Pools: Add X mana in any combination of {W} and/or {U} to your mana pool.| -Dreadship Reef|Time Spiral|271|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Dreadship Reef.${1}, Remove X storage counters from Dreadship Reef: Add X mana in any combination of {U} and/or {B} to your mana pool.| +Calciform Pools|Time Spiral|270|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Calciform Pools.${1}, Remove X storage counters from Calciform Pools: Add X mana in any combination of {W} and/or {U} to your mana pool.| +Dreadship Reef|Time Spiral|271|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Dreadship Reef.${1}, Remove X storage counters from Dreadship Reef: Add X mana in any combination of {U} and/or {B} to your mana pool.| Flagstones of Trokair|Time Spiral|272|R||Legendary Land|||{tap}: Add {W} to your mana pool.$When Flagstones of Trokair is put into a graveyard from the battlefield, you may search your library for a Plains card and put it onto the battlefield tapped. If you do, shuffle your library.| -Fungal Reaches|Time Spiral|273|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Fungal Reaches.${1}, Remove X storage counters from Fungal Reaches: Add X mana in any combination of {R} and/or {G} to your mana pool.| -Gemstone Caverns|Time Spiral|274|R||Legendary Land|||If Gemstone Caverns is in your opening hand and you're not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.${tap}: Add {1} to your mana pool. If Gemstone Caverns has a luck counter on it, instead add one mana of any color to your mana pool.| -Kher Keep|Time Spiral|275|R||Legendary Land|||{tap}: Add {1} to your mana pool.${1}{R}, {tap}: Put a 0/1 red Kobold creature token named Kobolds of Kher Keep onto the battlefield.| -Molten Slagheap|Time Spiral|276|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Molten Slagheap.${1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool.| -Saltcrusted Steppe|Time Spiral|277|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Saltcrusted Steppe.${1}, Remove X storage counters from Saltcrusted Steppe: Add X mana in any combination of {G} and/or {W} to your mana pool.| -Swarmyard|Time Spiral|278|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Regenerate target Insect, Rat, Spider, or Squirrel.| +Fungal Reaches|Time Spiral|273|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Fungal Reaches.${1}, Remove X storage counters from Fungal Reaches: Add X mana in any combination of {R} and/or {G} to your mana pool.| +Gemstone Caverns|Time Spiral|274|R||Legendary Land|||If Gemstone Caverns is in your opening hand and you're not playing first, you may begin the game with Gemstone Caverns on the battlefield with a luck counter on it. If you do, exile a card from your hand.${tap}: Add {C} to your mana pool. If Gemstone Caverns has a luck counter on it, instead add one mana of any color to your mana pool.| +Kher Keep|Time Spiral|275|R||Legendary Land|||{tap}: Add {C} to your mana pool.${1}{R}, {tap}: Put a 0/1 red Kobold creature token named Kobolds of Kher Keep onto the battlefield.| +Molten Slagheap|Time Spiral|276|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Molten Slagheap.${1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool.| +Saltcrusted Steppe|Time Spiral|277|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Saltcrusted Steppe.${1}, Remove X storage counters from Saltcrusted Steppe: Add X mana in any combination of {G} and/or {W} to your mana pool.| +Swarmyard|Time Spiral|278|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Regenerate target Insect, Rat, Spider, or Squirrel.| Terramorphic Expanse|Time Spiral|279|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Mangara of Corondor|Time Spiral|28|R|{1}{W}{W}|Legendary Creature - Human Wizard|1|1|{tap}: Exile Mangara of Corondor and target permanent.| -Urza's Factory|Time Spiral|280|U||Land - Urza s|||{tap}: Add {1} to your mana pool.${7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield.| +Urza's Factory|Time Spiral|280|U||Land - Urza s|||{tap}: Add {C} to your mana pool.${7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield.| Vesuva|Time Spiral|281|R||Land|||You may have Vesuva enter the battlefield tapped as a copy of any land on the battlefield.| Plains|Time Spiral|282|L||Basic Land - Plains|||W| Plains|Time Spiral|283|L||Basic Land - Plains|||W| @@ -19604,7 +19604,7 @@ Serrated Arrows|Time Spiral "Timeshifted"|114|Special|{4}|Artifact|||Serrated Ar Tormod's Crypt|Time Spiral "Timeshifted"|115|Special|{0}|Artifact|||{tap}, Sacrifice Tormod's Crypt: Exile all cards from target player's graveyard.| War Barge|Time Spiral "Timeshifted"|116|Special|{4}|Artifact|||{3}: Target creature gains islandwalk until end of turn. When War Barge leaves the battlefield this turn, destroy that creature. A creature destroyed this way can't be regenerated.| Arena|Time Spiral "Timeshifted"|117|Special||Land|||{3}, {tap}: Tap target creature you control and target creature of an opponent's choice he or she controls. Those creatures fight each other. (Each deals damage equal to its power to the other.)| -Desert|Time Spiral "Timeshifted"|118|Special||Land - Desert|||{tap}: Add {1} to your mana pool.${tap}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| +Desert|Time Spiral "Timeshifted"|118|Special||Land - Desert|||{tap}: Add {C} to your mana pool.${tap}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| Gemstone Mine|Time Spiral "Timeshifted"|119|Special||Land|||Gemstone Mine enters the battlefield with three mining counters on it.${tap}, Remove a mining counter from Gemstone Mine: Add one mana of any color to your mana pool. If there are no mining counters on Gemstone Mine, sacrifice it.| Resurrection|Time Spiral "Timeshifted"|12|Special|{2}{W}{W}|Sorcery|||Return target creature card from your graveyard to the battlefield.| Pendelhaven|Time Spiral "Timeshifted"|120|Special||Legendary Land|||{tap}: Add {G} to your mana pool.${tap}: Target 1/1 creature gets +1/+2 until end of turn.| @@ -19750,10 +19750,10 @@ Possessed Centaur|Torment|137|R|{2}{G}{G}|Creature - Centaur Horror|3|3|Trample$ Seton's Scout|Torment|138|U|{1}{G}|Creature - Centaur Druid Scout Archer|2|1|Reach (This creature can block creatures with flying.)$Threshold - Seton's Scout gets +2/+2 as long as seven or more cards are in your graveyard.| Cabal Coffers|Torment|139|U||Land|||{2}, {tap}: Add {B} to your mana pool for each Swamp you control.| Reborn Hero|Torment|14|R|{2}{W}|Creature - Human Soldier|2|2|Vigilance$Threshold - As long as seven or more cards are in your graveyard, Reborn Hero has "When Reborn Hero dies, you may pay {W}{W}. If you do, return Reborn Hero to the battlefield under your control."| -Tainted Field|Torment|140|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp.| -Tainted Isle|Torment|141|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Activate this ability only if you control a Swamp.| -Tainted Peak|Torment|142|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Activate this ability only if you control a Swamp.| -Tainted Wood|Torment|143|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp.| +Tainted Field|Torment|140|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp.| +Tainted Isle|Torment|141|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Activate this ability only if you control a Swamp.| +Tainted Peak|Torment|142|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Activate this ability only if you control a Swamp.| +Tainted Wood|Torment|143|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp.| Spirit Flare|Torment|15|C|{3}{W}|Instant|||Tap target untapped creature you control. If you do, it deals damage equal to its power to target attacking or blocking creature an opponent controls.$Flashback-{1}{W}, Pay 3 life. (You may cast this card from your graveyard for its flashback cost. Then exile it.)| Stern Judge|Torment|16|U|{2}{W}|Creature - Human Cleric|2|2|{tap}: Each player loses 1 life for each Swamp he or she controls.| Strength of Isolation|Torment|17|U|{1}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature gets +1/+2 and has protection from black.$Madness {W} (If you discard this card, you may cast it for its madness cost instead of putting it into your graveyard.)| @@ -20003,7 +20003,7 @@ White Ward|Unlimited Edition|229|U|{W}|Enchantment - Aura|||Enchant creature$Enc Lord of the Pit|Unlimited Edition|23|R|{4}{B}{B}{B}|Creature - Demon|7|7|Flying, trample$At the beginning of your upkeep, sacrifice a creature other than Lord of the Pit. If you can't, Lord of the Pit deals 7 damage to you.| Wrath of God|Unlimited Edition|230|R|{2}{W}{W}|Sorcery|||Destroy all creatures. They can't be regenerated.| Ankh of Mishra|Unlimited Edition|231|R|{2}|Artifact|||Whenever a land enters the battlefield, Ankh of Mishra deals 2 damage to that land's controller.| -Basalt Monolith|Unlimited Edition|232|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {3} to your mana pool.${3}: Untap Basalt Monolith.| +Basalt Monolith|Unlimited Edition|232|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {C}{C}{C} to your mana pool.${3}: Untap Basalt Monolith.| Black Vise|Unlimited Edition|234|U|{1}|Artifact|||As Black Vise enters the battlefield, choose an opponent.$At the beginning of the chosen player's upkeep, Black Vise deals X damage to that player, where X is the number of cards in his or her hand minus 4.| Celestial Prism|Unlimited Edition|235|U|{3}|Artifact|||{2}, {tap}: Add one mana of any color to your mana pool.| Chaos Orb|Unlimited Edition|236|R|{2}|Artifact|||{1}, {tap}: If Chaos Orb is on the battlefield, flip Chaos Orb onto the battlefield from a height of at least one foot. If Chaos Orb turns over completely at least once during the flip, destroy all permanents it touches. Then destroy Chaos Orb.| @@ -20034,7 +20034,7 @@ Kormus Bell|Unlimited Edition|257|R|{4}|Artifact|||All Swamps are 1/1 black crea Library of Leng|Unlimited Edition|258|U|{1}|Artifact|||You have no maximum hand size.$If an effect causes you to discard a card, discard it, but you may put it on top of your library instead of into your graveyard.| Living Wall|Unlimited Edition|259|U|{4}|Artifact Creature - Wall|0|6|Defender (This creature can't attack.)${1}: Regenerate Living Wall.| Nettling Imp|Unlimited Edition|26|U|{2}{B}|Creature - Imp|1|1|{tap}: Choose target non-Wall creature the active player has controlled continuously since the beginning of the turn. That creature attacks this turn if able. If it doesn't, destroy it at the beginning of the next end step. Activate this ability only during an opponent's turn, before attackers are declared.| -Mana Vault|Unlimited Edition|260|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Vault|Unlimited Edition|260|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Meekstone|Unlimited Edition|261|R|{1}|Artifact|||Creatures with power 3 or greater don't untap during their controllers' untap steps.| Mox Emerald|Unlimited Edition|262|R|{0}|Artifact|||{tap}: Add {G} to your mana pool.| Mox Jet|Unlimited Edition|263|R|{0}|Artifact|||{tap}: Add {B} to your mana pool.| @@ -20045,7 +20045,7 @@ Nevinyrral's Disk|Unlimited Edition|267|R|{4}|Artifact|||Nevinyrral's Disk enter Obsianus Golem|Unlimited Edition|268|U|{6}|Artifact Creature - Golem|4|6|| Rod of Ruin|Unlimited Edition|269|U|{4}|Artifact|||{3}, {tap}: Rod of Ruin deals 1 damage to target creature or player.| Nightmare|Unlimited Edition|27|R|{5}{B}|Creature - Nightmare Horse|*|*|Flying$Nightmare's power and toughness are each equal to the number of Swamps you control.| -Sol Ring|Unlimited Edition|270|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Unlimited Edition|270|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Soul Net|Unlimited Edition|271|U|{1}|Artifact|||Whenever a creature dies, you may pay {1}. If you do, you gain 1 life.| Sunglasses of Urza|Unlimited Edition|272|R|{3}|Artifact|||You may spend white mana as though it were red mana.| The Hive|Unlimited Edition|273|R|{5}|Artifact|||{5}, {tap}: Put a 1/1 colorless Insect artifact creature token with flying named Wasp onto the battlefield. (It can't be blocked except by creatures with flying or reach.)| @@ -20156,7 +20156,7 @@ Aspect of Wolf|Unlimited Edition|93|R|{1}{G}|Enchantment - Aura|||Enchant creatu Berserk|Unlimited Edition|94|U|{G}|Instant|||Cast Berserk only before the combat damage step.$Target creature gains trample and gets +X/+0 until end of turn, where X is its power. At the beginning of the next end step, destroy that creature if it attacked this turn.| Birds of Paradise|Unlimited Edition|95|R|{G}|Creature - Bird|0|1|Flying${tap}: Add one mana of any color to your mana pool.| Camouflage|Unlimited Edition|96|U|{G}|Instant|||Cast Camouflage only during your declare attackers step.$This turn, instead of declaring blockers, each defending player chooses any number of creatures he or she controls and divides them into a number of piles equal to the number of attacking creatures for whom that player is the defending player. Creatures he or she controls that can block additional creatures may likewise be put into additional piles. Assign each pile to a different one of those attacking creatures at random. Each creature in a pile that can block the creature that pile is assigned to does so. (Piles can be empty.)| -Channel|Unlimited Edition|97|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|Unlimited Edition|97|U|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Cockatrice|Unlimited Edition|98|R|{3}{G}{G}|Creature - Cockatrice|2|4|Flying$Whenever Cockatrice blocks or becomes blocked by a non-Wall creature, destroy that creature at end of combat.| Craw Wurm|Unlimited Edition|99|C|{4}{G}{G}|Creature - Wurm|6|4|| Academy Rector|Urza's Destiny|1|R|{3}{W}|Creature - Human Cleric|1|2|When Academy Rector dies, you may exile it. If you do, search your library for an enchantment card, put that card onto the battlefield, then shuffle your library.| @@ -20199,16 +20199,16 @@ Fodder Cannon|Urza's Destiny|131|U|{4}|Artifact|||{4}, {tap}, Sacrifice a creatu Junk Diver|Urza's Destiny|132|R|{3}|Artifact Creature - Bird|1|1|Flying$When Junk Diver dies, return another target artifact card from your graveyard to your hand.| Mantis Engine|Urza's Destiny|133|U|{5}|Artifact Creature - Insect|3|3|{2}: Mantis Engine gains flying until end of turn. (It can't be blocked except by creatures with flying or reach.)${2}: Mantis Engine gains first strike until end of turn. (It deals combat damage before creatures without first strike.)| Masticore|Urza's Destiny|134|R|{4}|Artifact Creature - Masticore|4|4|At the beginning of your upkeep, sacrifice Masticore unless you discard a card.${2}: Masticore deals 1 damage to target creature.${2}: Regenerate Masticore.| -Metalworker|Urza's Destiny|135|R|{3}|Artifact Creature - Construct|1|2|{tap}: Reveal any number of artifact cards in your hand. Add {2} to your mana pool for each card revealed this way.| +Metalworker|Urza's Destiny|135|R|{3}|Artifact Creature - Construct|1|2|{tap}: Reveal any number of artifact cards in your hand. Add {C}{C} to your mana pool for each card revealed this way.| Powder Keg|Urza's Destiny|136|R|{2}|Artifact|||At the beginning of your upkeep, you may put a fuse counter on Powder Keg.$${tap}, Sacrifice Powder Keg: Destroy each artifact and creature with converted mana cost equal to the number of fuse counters on Powder Keg.| Scrying Glass|Urza's Destiny|137|R|{2}|Artifact|||{3}, {tap}: Choose a number greater than 0 and a color. Target opponent reveals his or her hand. If that opponent reveals exactly the chosen number of cards of the chosen color, you draw a card.| Storage Matrix|Urza's Destiny|138|R|{3}|Artifact|||As long as Storage Matrix is untapped, each player chooses artifact, creature, or land during his or her untap step. That player can untap only permanents of the chosen type this step.| -Thran Dynamo|Urza's Destiny|139|U|{4}|Artifact|||{tap}: Add {3} to your mana pool.| +Thran Dynamo|Urza's Destiny|139|U|{4}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.| Reliquary Monk|Urza's Destiny|14|C|{2}{W}|Creature - Human Monk Cleric|2|2|When Reliquary Monk dies, destroy target artifact or enchantment.| Thran Foundry|Urza's Destiny|140|U|{1}|Artifact|||{1}, {tap}, Exile Thran Foundry: Target player shuffles his or her graveyard into his or her library.| Thran Golem|Urza's Destiny|141|R|{5}|Artifact Creature - Golem|3|3|As long as Thran Golem is enchanted, it gets +2/+2 and has flying, first strike, and trample.| Urza's Incubator|Urza's Destiny|142|R|{3}|Artifact|||As Urza's Incubator enters the battlefield, choose a creature type.$Creature spells of the chosen type cost {2} less to cast.| -Yavimaya Hollow|Urza's Destiny|143|R||Legendary Land|||{tap}: Add {1} to your mana pool.$${G}, {tap}: Regenerate target creature.| +Yavimaya Hollow|Urza's Destiny|143|R||Legendary Land|||{tap}: Add {C} to your mana pool.$${G}, {tap}: Regenerate target creature.| Replenish|Urza's Destiny|15|R|{3}{W}|Sorcery|||Return all enchantment cards from your graveyard to the battlefield. (Auras with nothing to enchant remain in your graveyard.)| Sanctimony|Urza's Destiny|16|U|{1}{W}|Enchantment|||Whenever an opponent taps a Mountain for mana, you may gain 1 life.| Scent of Jasmine|Urza's Destiny|17|C|{W}|Instant|||Reveal any number of white cards in your hand. You gain 2 life for each card revealed this way.| @@ -20332,7 +20332,7 @@ Beast of Burden|Urza's Legacy|122|R|{6}|Artifact Creature - Golem|*|*|Beast of B Crawlspace|Urza's Legacy|123|R|{3}|Artifact|||No more than two creatures can attack you each combat.| Damping Engine|Urza's Legacy|124|R|{4}|Artifact|||A player who controls more permanents than each other player can't play lands or cast artifact, creature, or enchantment spells. That player may sacrifice a permanent for that player to ignore this effect until end of turn.| Defense Grid|Urza's Legacy|125|R|{2}|Artifact|||Each spell costs {3} more to cast except during its controller's turn.| -Grim Monolith|Urza's Legacy|126|R|{2}|Artifact|||Grim Monolith doesn't untap during your untap step.$${tap}: Add {3} to your mana pool.$${4}: Untap Grim Monolith.| +Grim Monolith|Urza's Legacy|126|R|{2}|Artifact|||Grim Monolith doesn't untap during your untap step.$${tap}: Add {C}{C}{C} to your mana pool.$${4}: Untap Grim Monolith.| Iron Maiden|Urza's Legacy|127|R|{3}|Artifact|||At the beginning of each opponent's upkeep, Iron Maiden deals X damage to that player, where X is the number of cards in his or her hand minus 4.| Jhoira's Toolbox|Urza's Legacy|128|U|{2}|Artifact Creature - Insect|1|1|{2}: Regenerate target artifact creature.| Memory Jar|Urza's Legacy|129|R|{5}|Artifact|||{tap}, Sacrifice Memory Jar: Each player exiles all cards from his or her hand face down and draws seven cards. At the beginning of the next end step, each player discards his or her hand and returns to his or her hand each card he or she exiled this way.| @@ -20653,7 +20653,7 @@ Whirlwind|Urza's Saga|283|R|{2}{G}{G}|Sorcery|||Destroy all creatures with flyin Wild Dogs|Urza's Saga|284|C|{G}|Creature - Hound|2|1|At the beginning of your upkeep, if a player has more life than each other player, the player with the most life gains control of Wild Dogs.$Cycling {2} ({2}, Discard this card: Draw a card.)| Winding Wurm|Urza's Saga|285|C|{4}{G}|Creature - Wurm|6|6|Echo {4}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.)| Barrin's Codex|Urza's Saga|286|R|{4}|Artifact|||At the beginning of your upkeep, you may put a page counter on Barrin's Codex.${4}, {tap}, Sacrifice Barrin's Codex: Draw X cards, where X is the number of page counters on Barrin's Codex.| -Cathodion|Urza's Saga|287|U|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {3} to your mana pool.| +Cathodion|Urza's Saga|287|U|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {C}{C}{C} to your mana pool.| Chimeric Staff|Urza's Saga|288|R|{4}|Artifact|||{X}: Chimeric Staff becomes an X/X Construct artifact creature until end of turn.| Citanul Flute|Urza's Saga|289|R|{5}|Artifact|||{X}, {tap}: Search your library for a creature card with converted mana cost X or less, reveal it, and put it into your hand. Then shuffle your library.| Path of Peace|Urza's Saga|29|C|{3}{W}|Sorcery|||Destroy target creature. Its owner gains 4 life.| @@ -20681,23 +20681,23 @@ Purging Scythe|Urza's Saga|308|R|{5}|Artifact|||At the beginning of your upkeep, Smokestack|Urza's Saga|309|R|{4}|Artifact|||At the beginning of your upkeep, you may put a soot counter on Smokestack.$At the beginning of each player's upkeep, that player sacrifices a permanent for each soot counter on Smokestack.| Planar Birth|Urza's Saga|31|R|{1}{W}|Sorcery|||Return all basic land cards from all graveyards to the battlefield tapped under their owners' control.| Temporal Aperture|Urza's Saga|310|R|{2}|Artifact|||{5}, {tap}: Shuffle your library, then reveal the top card. Until end of turn, for as long as that card remains on top of your library, play with the top card of your library revealed and you may play that card without paying its mana cost. (If it has X in its mana cost, X is 0.)| -Thran Turbine|Urza's Saga|311|U|{1}|Artifact|||At the beginning of your upkeep, you may add {1} or {2} to your mana pool. You can't spend this mana to cast spells.| +Thran Turbine|Urza's Saga|311|U|{1}|Artifact|||At the beginning of your upkeep, you may add {C} or {2} to your mana pool. You can't spend this mana to cast spells.| Umbilicus|Urza's Saga|312|R|{4}|Artifact|||At the beginning of each player's upkeep, that player returns a permanent he or she controls to its owner's hand unless he or she pays 2 life.| Urza's Armor|Urza's Saga|313|U|{6}|Artifact|||If a source would deal damage to you, prevent 1 of that damage.| Voltaic Key|Urza's Saga|314|U|{1}|Artifact|||{1}, {tap}: Untap target artifact.| Wall of Junk|Urza's Saga|315|U|{2}|Artifact Creature - Wall|0|7|Defender (This creature can't attack.)$Whenever Wall of Junk blocks, return it to its owner's hand at end of combat. (Return it only if it's on the battlefield.)| Whetstone|Urza's Saga|316|R|{3}|Artifact|||{3}: Each player puts the top two cards of his or her library into his or her graveyard.| Wirecat|Urza's Saga|317|U|{4}|Artifact Creature - Cat|4|3|Wirecat can't attack or block if an enchantment is on the battlefield.| -Worn Powerstone|Urza's Saga|318|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {2} to your mana pool.| -Blasted Landscape|Urza's Saga|319|U||Land|||{tap}: Add {1} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| +Worn Powerstone|Urza's Saga|318|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {C}{C} to your mana pool.| +Blasted Landscape|Urza's Saga|319|U||Land|||{tap}: Add {C} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Presence of the Master|Urza's Saga|32|U|{3}{W}|Enchantment|||Whenever a player casts an enchantment spell, counter it.| Drifting Meadow|Urza's Saga|320|C||Land|||Drifting Meadow enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Gaea's Cradle|Urza's Saga|321|R||Legendary Land|||{tap}: Add {G} to your mana pool for each creature you control.| -Phyrexian Tower|Urza's Saga|322|R||Legendary Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice a creature: Add {B}{B} to your mana pool.| +Phyrexian Tower|Urza's Saga|322|R||Legendary Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice a creature: Add {B}{B} to your mana pool.| Polluted Mire|Urza's Saga|323|C||Land|||Polluted Mire enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Remote Isle|Urza's Saga|324|C||Land|||Remote Isle enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Serra's Sanctum|Urza's Saga|325|R||Legendary Land|||{tap}: Add {W} to your mana pool for each enchantment you control.| -Shivan Gorge|Urza's Saga|326|R||Legendary Land|||{tap}: Add {1} to your mana pool.${2}{R}, {tap}: Shivan Gorge deals 1 damage to each opponent.| +Shivan Gorge|Urza's Saga|326|R||Legendary Land|||{tap}: Add {C} to your mana pool.${2}{R}, {tap}: Shivan Gorge deals 1 damage to each opponent.| Slippery Karst|Urza's Saga|327|C||Land|||Slippery Karst enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Smoldering Crater|Urza's Saga|328|C||Land|||Smoldering Crater enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Thran Quarry|Urza's Saga|329|R||Land|||At the beginning of the end step, if you control no creatures, sacrifice Thran Quarry.${tap}: Add one mana of any color to your mana pool.| @@ -20855,20 +20855,20 @@ Matopi Golem|Visions|150|U|{5}|Artifact Creature - Golem|3|3|{1}: Regenerate Mat Phyrexian Marauder|Visions|151|R|{X}|Artifact Creature - Construct|0|0|Phyrexian Marauder enters the battlefield with X +1/+1 counters on it.$Phyrexian Marauder can't block.$Phyrexian Marauder can't attack unless you pay {1} for each +1/+1 counter on it.| Phyrexian Walker|Visions|152|C|{0}|Artifact Creature - Construct|0|3|| Sands of Time|Visions|153|R|{4}|Artifact|||Each player skips his or her untap step.$At the beginning of each player's upkeep, that player simultaneously untaps each tapped artifact, creature, and land he or she controls and taps each untapped artifact, creature, and land he or she controls.| -Sisay's Ring|Visions|154|C|{4}|Artifact|||{tap}: Add {2} to your mana pool.| +Sisay's Ring|Visions|154|C|{4}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Snake Basket|Visions|155|R|{4}|Artifact|||{X}, Sacrifice Snake Basket: Put X 1/1 green Snake creature tokens onto the battlefield. Activate this ability only any time you could cast a sorcery.| Teferi's Puzzle Box|Visions|156|R|{4}|Artifact|||At the beginning of each player's draw step, that player puts the cards in his or her hand on the bottom of his or her library in any order, then draws that many cards.| Tin-Wing Chimera|Visions|157|U|{4}|Artifact Creature - Chimera|2|2|Flying$Sacrifice Tin-Wing Chimera: Put a +2/+2 counter on target Chimera creature. It gains flying. (This effect lasts indefinitely.)| Triangle of War|Visions|158|R|{1}|Artifact|||{2}, Sacrifice Triangle of War: Choose target creature you control and target creature an opponent controls. Those creatures fight each other. (Each deals damage equal to its power to the other.)| Wand of Denial|Visions|159|R|{2}|Artifact|||{tap}: Look at the top card of target player's library. If it's a nonland card, you may pay 2 life. If you do, put it into that player's graveyard.| Nekrataal|Visions|16|U|{2}{B}{B}|Creature - Human Assassin|2|1|First strike (This creature deals combat damage before creatures without first strike.)$When Nekrataal enters the battlefield, destroy target nonartifact, nonblack creature. That creature can't be regenerated.| -Coral Atoll|Visions|160|U||Land|||Coral Atoll enters the battlefield tapped.$When Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand.${tap}: Add {1}{U} to your mana pool.| -Dormant Volcano|Visions|161|U||Land|||Dormant Volcano enters the battlefield tapped.$When Dormant Volcano enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand.${tap}: Add {1}{R} to your mana pool.| -Everglades|Visions|162|U||Land|||Everglades enters the battlefield tapped.$When Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand.${tap}: Add {1}{B} to your mana pool.| -Griffin Canyon|Visions|163|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Untap target Griffin. If it's a creature, it gets +1/+1 until end of turn.| -Jungle Basin|Visions|164|U||Land|||Jungle Basin enters the battlefield tapped.$When Jungle Basin enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand.${tap}: Add {1}{G} to your mana pool.| -Karoo|Visions|165|U||Land|||Karoo enters the battlefield tapped.$When Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.${tap}: Add {1}{W} to your mana pool.| -Quicksand|Visions|166|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| +Coral Atoll|Visions|160|U||Land|||Coral Atoll enters the battlefield tapped.$When Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand.${tap}: Add {C}{U} to your mana pool.| +Dormant Volcano|Visions|161|U||Land|||Dormant Volcano enters the battlefield tapped.$When Dormant Volcano enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand.${tap}: Add {C}{R} to your mana pool.| +Everglades|Visions|162|U||Land|||Everglades enters the battlefield tapped.$When Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand.${tap}: Add {C}{B} to your mana pool.| +Griffin Canyon|Visions|163|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Untap target Griffin. If it's a creature, it gets +1/+1 until end of turn.| +Jungle Basin|Visions|164|U||Land|||Jungle Basin enters the battlefield tapped.$When Jungle Basin enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand.${tap}: Add {C}{G} to your mana pool.| +Karoo|Visions|165|U||Land|||Karoo enters the battlefield tapped.$When Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.${tap}: Add {C}{W} to your mana pool.| +Quicksand|Visions|166|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| Undiscovered Paradise|Visions|167|R||Land|||{tap}: Add one mana of any color to your mana pool. During your next untap step, as you untap your permanents, return Undiscovered Paradise to its owner's hand.| Pillar Tombs of Aku|Visions|17|R|{2}{B}{B}|World Enchantment|||At the beginning of each player's upkeep, that player may sacrifice a creature. If that player doesn't, he or she loses 5 life and you sacrifice Pillar Tombs of Aku.| Python|Visions|18|C|{1}{B}{B}|Creature - Snake|3|2|| @@ -21022,7 +21022,7 @@ Infernal Tribute|Weatherlight|15|R|{B}{B}{B}|Enchantment|||{2}, Sacrifice a nont Jabari's Banner|Weatherlight|150|U|{2}|Artifact|||{1}, {tap}: Target creature gains flanking until end of turn. (Whenever a creature without flanking blocks this creature, the blocking creature gets -1/-1 until end of turn.)| Jangling Automaton|Weatherlight|151|C|{3}|Artifact Creature - Construct|3|2|Whenever Jangling Automaton attacks, untap all creatures defending player controls.| Mana Web|Weatherlight|152|R|{3}|Artifact|||Whenever a land an opponent controls is tapped for mana, tap all lands that player controls that could produce any type of mana that land could produce.| -Mind Stone|Weatherlight|153|C|{2}|Artifact|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| +Mind Stone|Weatherlight|153|C|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| Null Rod|Weatherlight|154|R|{2}|Artifact|||Activated abilities of artifacts can't be activated.| Phyrexian Furnace|Weatherlight|155|U|{1}|Artifact|||{tap}: Exile the bottom card of target player's graveyard.${1}, Sacrifice Phyrexian Furnace: Exile target card from a graveyard. Draw a card.| Serrated Biskelion|Weatherlight|156|U|{3}|Artifact Creature - Construct|2|2|{tap}: Put a -1/-1 counter on Serrated Biskelion and a -1/-1 counter on target creature.| @@ -21036,8 +21036,8 @@ Well of Knowledge|Weatherlight|162|R|{3}|Artifact|||{2}: Draw a card. Any player Xanthic Statue|Weatherlight|163|R|{8}|Artifact|||{5}: Until end of turn, Xanthic Statue becomes an 8/8 Golem artifact creature with trample.| Gemstone Mine|Weatherlight|164|U||Land|||Gemstone Mine enters the battlefield with three mining counters on it.${tap}, Remove a mining counter from Gemstone Mine: Add one mana of any color to your mana pool. If there are no mining counters on Gemstone Mine, sacrifice it.| Lotus Vale|Weatherlight|165|R||Land|||If Lotus Vale would enter the battlefield, sacrifice two untapped lands instead. If you do, put Lotus Vale onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add three mana of any one color to your mana pool.| -Scorched Ruins|Weatherlight|166|R||Land|||If Scorched Ruins would enter the battlefield, sacrifice two untapped lands instead. If you do, put Scorched Ruins onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {4} to your mana pool.| -Winding Canyons|Weatherlight|167|R||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: Until end of turn, you may play creature cards as though they had flash.| +Scorched Ruins|Weatherlight|166|R||Land|||If Scorched Ruins would enter the battlefield, sacrifice two untapped lands instead. If you do, put Scorched Ruins onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {C}{C}{C}{C} to your mana pool.| +Winding Canyons|Weatherlight|167|R||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: Until end of turn, you may play creature cards as though they had flash.| Morinfen|Weatherlight|17|R|{3}{B}{B}|Legendary Creature - Horror|5|4|Flying$Cumulative upkeep-Pay 1 life. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)| Necratog|Weatherlight|18|U|{1}{B}{B}|Creature - Atog|1|2|Exile the top creature card of your graveyard: Necratog gets +2/+2 until end of turn.| Odylic Wraith|Weatherlight|19|U|{3}{B}|Creature - Wraith|2|2|Swampwalk$Whenever Odylic Wraith deals damage to a player, that player discards a card.| @@ -21159,7 +21159,7 @@ Lightkeeper of Emeria|Worldwake|12|U|{3}{W}|Creature - Angel|2|4|Multikicker {W} Wrexial, the Risen Deep|Worldwake|120|M|{3}{U}{U}{B}|Legendary Creature - Kraken|5|8|Islandwalk, swampwalk$Whenever Wrexial, the Risen Deep deals combat damage to a player, you may cast target instant or sorcery card from that player's graveyard without paying its mana cost. If that card would be put into a graveyard this turn, exile it instead.| Amulet of Vigor|Worldwake|121|R|{1}|Artifact|||Whenever a permanent enters the battlefield tapped and under your control, untap it.| Basilisk Collar|Worldwake|122|R|{1}|Artifact - Equipment|||Equipped creature has deathtouch and lifelink.$Equip {2}| -Everflowing Chalice|Worldwake|123|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {1} to your mana pool for each charge counter on Everflowing Chalice.| +Everflowing Chalice|Worldwake|123|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {C} to your mana pool for each charge counter on Everflowing Chalice.| Hammer of Ruin|Worldwake|124|U|{2}|Artifact - Equipment|||Equipped creature gets +2/+0.$Whenever equipped creature deals combat damage to a player, you may destroy target Equipment that player controls.$Equip {2}| Hedron Rover|Worldwake|125|C|{4}|Artifact Creature - Construct|2|2|Landfall - Whenever a land enters the battlefield under your control, Hedron Rover gets +2/+2 until end of turn.| Kitesail|Worldwake|126|C|{2}|Artifact - Equipment|||Equipped creature gets +1/+0 and has flying.$Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)| @@ -21172,18 +21172,18 @@ Walking Atlas|Worldwake|131|C|{2}|Artifact Creature - Construct|1|1|{tap}: You m Bojuka Bog|Worldwake|132|C||Land|||Bojuka Bog enters the battlefield tapped.$When Bojuka Bog enters the battlefield, exile all cards from target player's graveyard.${tap}: Add {B} to your mana pool.| Celestial Colonnade|Worldwake|133|R||Land|||Celestial Colonnade enters the battlefield tapped.${tap}: Add {W} or {U} to your mana pool.${3}{W}{U}: Until end of turn, Celestial Colonnade becomes a 4/4 white and blue Elemental creature with flying and vigilance. It's still a land.| Creeping Tar Pit|Worldwake|134|R||Land|||Creeping Tar Pit enters the battlefield tapped.${tap}: Add {U} or {B} to your mana pool.${1}{U}{B}: Until end of turn, Creeping Tar Pit becomes a 3/2 blue and black Elemental creature and is unblockable. It's still a land.| -Dread Statuary|Worldwake|135|U||Land|||{tap}: Add {1} to your mana pool.${4}: Dread Statuary becomes a 4/2 Golem artifact creature until end of turn. It's still a land.| +Dread Statuary|Worldwake|135|U||Land|||{tap}: Add {C} to your mana pool.${4}: Dread Statuary becomes a 4/2 Golem artifact creature until end of turn. It's still a land.| Eye of Ugin|Worldwake|136|M||Legendary Land|||Colorless Eldrazi spells you cast cost {2} less to cast.${7}, {tap}: Search your library for a colorless creature card, reveal it, and put it into your hand. Then shuffle your library.| Halimar Depths|Worldwake|137|C||Land|||Halimar Depths enters the battlefield tapped.$When Halimar Depths enters the battlefield, look at the top three cards of your library, then put them back in any order.${tap}: Add {U} to your mana pool.| Khalni Garden|Worldwake|138|C||Land|||Khalni Garden enters the battlefield tapped.$When Khalni Garden enters the battlefield, put a 0/1 green Plant creature token onto the battlefield.${tap}: Add {G} to your mana pool.| Lavaclaw Reaches|Worldwake|139|R||Land|||Lavaclaw Reaches enters the battlefield tapped.${tap}: Add {B} or {R} to your mana pool.${1}{B}{R}: Until end of turn, Lavaclaw Reaches becomes a 2/2 black and red Elemental creature with "{X}: This creature gets +X/+0 until end of turn." It's still a land.| Marsh Threader|Worldwake|14|C|{1}{W}|Creature - Kor Scout|2|1|Swampwalk| -Quicksand|Worldwake|140|C||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| +Quicksand|Worldwake|140|C||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| Raging Ravine|Worldwake|141|R||Land|||Raging Ravine enters the battlefield tapped.${tap}: Add {R} or {G} to your mana pool.${2}{R}{G}: Until end of turn, Raging Ravine becomes a 3/3 red and green Elemental creature with "Whenever this creature attacks, put a +1/+1 counter on it." It's still a land.| Sejiri Steppe|Worldwake|142|C||Land|||Sejiri Steppe enters the battlefield tapped.$When Sejiri Steppe enters the battlefield, target creature you control gains protection from the color of your choice until end of turn.${tap}: Add {W} to your mana pool.| Smoldering Spires|Worldwake|143|C||Land|||Smoldering Spires enters the battlefield tapped.$When Smoldering Spires enters the battlefield, target creature can't block this turn.${tap}: Add {R} to your mana pool.| Stirring Wildwood|Worldwake|144|R||Land|||Stirring Wildwood enters the battlefield tapped.${tap}: Add {G} or {W} to your mana pool.${1}{G}{W}: Until end of turn, Stirring Wildwood becomes a 3/4 green and white Elemental creature with reach. It's still a land.| -Tectonic Edge|Worldwake|145|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Tectonic Edge: Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands.| +Tectonic Edge|Worldwake|145|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Tectonic Edge: Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands.| Marshal's Anthem|Worldwake|15|R|{2}{W}{W}|Enchantment|||Multikicker {1}{W} (You may pay an additional {1}{W} any number of times as you cast this spell.)$Creatures you control get +1/+1.$When Marshal's Anthem enters the battlefield, return up to X target creature cards from your graveyard to the battlefield, where X is the number of times Marshal's Anthem was kicked.| Perimeter Captain|Worldwake|16|U|{W}|Creature - Human Soldier|0|4|Defender$Whenever a creature you control with defender blocks, you may gain 2 life.| Refraction Trap|Worldwake|17|U|{3}{W}|Instant - Trap|||If an opponent cast a red instant or sorcery spell this turn, you may pay {W} rather than pay Refraction Trap's mana cost.$Prevent the next 3 damage that a source of your choice would deal to you and/or permanents you control this turn. If damage is prevented this way, Refraction Trap deals that much damage to target creature or player.| @@ -21620,7 +21620,7 @@ Golgari Guildgate|Dragon's Maze|149|C||Land - Gate|||Golgari Guildgate enters th Murmuring Phantasm|Dragon's Maze|15|C|{1}{U}|Creature - Spirit|0|5|Defender| Gruul Guildgate|Dragon's Maze|150|C||Land - Gate|||Gruul Guildgate enters the battlefield tapped.${tap}: Add {R} or {G} to your mana pool.| Izzet Guildgate|Dragon's Maze|151|C||Land - Gate|||Izzet Guildgate enters the battlefield tapped.${tap}: Add {U} or {R} to your mana pool.| -Maze's End|Dragon's Maze|152|M||Land|||Maze's End enters the battlefield tapped.${tap}: Add {1} to your mana pool.${3}, {tap}, 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.| +Maze's End|Dragon's Maze|152|M||Land|||Maze's End enters the battlefield tapped.${tap}: Add {C} to your mana pool.${3}, {tap}, 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.| Orzhov Guildgate|Dragon's Maze|153|C||Land - Gate|||Orzhov Guildgate enters the battlefield tapped.${tap}: Add {W} or {B} to your mana pool.| Rakdos Guildgate|Dragon's Maze|154|C||Land - Gate|||Rakdos Guildgate enters the battlefield tapped.${tap}: Add {B} or {R} to your mana pool.| Selesnya Guildgate|Dragon's Maze|155|C||Land - Gate|||Selesnya Guildgate enters the battlefield tapped.${tap}: Add {G} or {W} to your mana pool.| @@ -21738,7 +21738,7 @@ Fury Charm|Modern Masters|114|C|{1}{R}|Instant|||Choose one - Destroy target art Glacial Ray|Modern Masters|115|C|{1}{R}|Instant - Arcane|||Glacial Ray deals 2 damage to target creature or player.$Splice onto Arcane {1}{R} (As you cast an Arcane spell, you may reveal this card from your hand and pay its splice cost. If you do, add this card's effects to that spell.)| Grapeshot|Modern Masters|116|C|{1}{R}|Sorcery|||Grapeshot deals 1 damage to target creature or player.$Storm (When you cast this spell, copy it for each spell cast before it this turn. You may choose new targets for the copies.)| Greater Gargadon|Modern Masters|117|R|{9}{R}|Creature - Beast|9|7|Suspend 10-{R} (Rather than cast this card from your hand, you may pay {R} and exile it with ten 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. It has haste.)$Sacrifice an artifact, creature, or land: Remove a time counter from Greater Gargadon. Activate this ability only if Greater Gargadon is suspended.| -Grinning Ignus|Modern Masters|118|U|{2}{R}|Creature - Elemental|2|2|{R}, Return Grinning Ignus to its owner's hand: Add {2}{R} to your mana pool. Activate this ability only any time you could cast a sorcery.| +Grinning Ignus|Modern Masters|118|U|{2}{R}|Creature - Elemental|2|2|{R}, Return Grinning Ignus to its owner's hand: Add {C}{C}{R} to your mana pool. Activate this ability only any time you could cast a sorcery.| Hammerheim Deadeye|Modern Masters|119|C|{3}{R}|Creature - Giant Warrior|3|3|Echo {5}{R} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.)$When Hammerheim Deadeye enters the battlefield, destroy target creature with flying.| Dispeller's Capsule|Modern Masters|12|C|{W}|Artifact|||{2}{W}, {tap}, Sacrifice Dispeller's Capsule: Destroy target artifact or enchantment.| Kiki-Jiki, Mirror Breaker|Modern Masters|120|M|{2}{R}{R}{R}|Legendary Creature - Goblin Shaman|2|2|Haste${tap}: Put a token that's a copy of target nonlegendary creature you control onto the battlefield. That token has haste. Sacrifice it at the beginning of the next end step.| @@ -21850,9 +21850,9 @@ Skyreach Manta|Modern Masters|215|C|{5}|Artifact Creature - Fish|0|0|Sunburst (You may cast this spell for its evoke cost. If you do, it's sacrificed when it enters the battlefield.)| -Blinkmoth Nexus|Modern Masters|220|R||Land|||{tap}: Add {1} to your mana pool.${1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land.${1}, {tap}: Target Blinkmoth creature gets +1/+1 until end of turn.| +Blinkmoth Nexus|Modern Masters|220|R||Land|||{tap}: Add {C} to your mana pool.${1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land.${1}, {tap}: Target Blinkmoth creature gets +1/+1 until end of turn.| City of Brass|Modern Masters|221|R||Land|||Whenever City of Brass becomes tapped, it deals 1 damage to you.${tap}: Add one mana of any color to your mana pool.| Dakmor Salvage|Modern Masters|222|U||Land|||Dakmor Salvage enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Dredge 2 (If you would draw a card, instead you may put exactly two cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card.)| Glimmervoid|Modern Masters|223|R||Land|||At the beginning of the end step, if you control no artifacts, sacrifice Glimmervoid.${tap}: Add one mana of any color to your mana pool.| @@ -22172,9 +22172,9 @@ Staff of the Wild Magus|Magic 2014|223|U|{3}|Artifact|||Whenever you cast a gree Strionic Resonator|Magic 2014|224|R|{2}|Artifact|||{2}, {T}: Copy target triggered ability you control. You may choose new targets for the copy. (A triggered ability uses the words "when", "whenever" or "at".)| Trading Post|Magic 2014|225|R|{4}|Artifact|||{1}, {T}, Discard a card: You gain 4 life.${1}, {T}, Pay 1 life: Put a 0/1 white Goat creature token onto the battlefield.${1}, {T}, Sacrifice a creature: Return target artifact card from your graveyard to your hand.${1}, {T}, Sacrifice an artifact: Draw a card.| Vial of Poison|Magic 2014|226|U|{1}|Artifact|||{1}, Sacrifice Vial of Poison: Target creature gains deathtouch until end of turn. | -Encroaching Wastes|Magic 2014|227|U||Land|||{T}: Add {1} to your mana pool.${4}, {T}: Sacrifice Encroaching Wastes: Destroy target nonbasic land.| -Mutavault|Magic 2014|228|R||Land|||{T}: Add {1} to your mana pool.${1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.| -Shimmering Grotto|Magic 2014|229|C||Land|||{T}: Add {1} to your mana pool.${1}, {T}: Add one mana of any color to your mana pool.| +Encroaching Wastes|Magic 2014|227|U||Land|||{T}: Add {C} to your mana pool.${4}, {T}: Sacrifice Encroaching Wastes: Destroy target nonbasic land.| +Mutavault|Magic 2014|228|R||Land|||{T}: Add {C} to your mana pool.${1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.| +Shimmering Grotto|Magic 2014|229|C||Land|||{T}: Add {C} to your mana pool.${1}, {T}: Add one mana of any color to your mana pool.| Plains|Magic 2014|230|L||Basic Land - Plains|||W| Plains|Magic 2014|231|L||Basic Land - Plains|||W| Plains|Magic 2014|232|L||Basic Land - Plains|||W| @@ -22333,13 +22333,13 @@ Last Breath|Theros|22|C|{1}{W}|Instant|||Exile target creature with power 2 or l Pyxis of Pandemonium|Theros|220|R|{1}|Artifact|||{tap}: Each player exiles the top card of his or her library face down.${7}, {tap}, Sacrifice Pyxis of Pandemonium: Each player turns face up all cards he or she owns exiled with Pyxis of Pandemonium, then puts all permanent cards among them onto the battlefield.| Traveler's Amulet|Theros|221|C|{1}|Artifact|||{1}, Sacrifice Traveler's Amulet: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.| Witches' Eye|Theros|222|U|{1}|Artifact - Equipment|||Equipped creature has "{1}, {tap}: Scry 1." (To scry 1, look at the top card of your library, then you may put that card on the bottom of your library.)$Equip {1}| -Nykthos, Shrine to Nyx|Theros|223|R||Legendary Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. (Your devotion to a color is the number of mana symbols of that color in the mana costs of permanents you control.)| +Nykthos, Shrine to Nyx|Theros|223|R||Legendary Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: Choose a color. Add to your mana pool an amount of mana of that color equal to your devotion to that color. (Your devotion to a color is the number of mana symbols of that color in the mana costs of permanents you control.)| Temple of Abandon|Theros|224|R||Land|||Temple of Abandon enters the battlefield tapped.$When Temple of Abandon enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)${tap}: Add {R} or {G} to your mana pool.| Temple of Deceit|Theros|225|R||Land|||Temple of Deceit enters the battlefield tapped.$When Temple of Deceit enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)${tap}: Add {U} or {B} to your mana pool.| Temple of Mystery|Theros|226|R||Land|||Temple of Mystery enters the battlefield tapped.$When Temple of Mystery enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)${tap}: Add {G} or {U} to your mana pool.| Temple of Silence|Theros|227|R||Land|||Temple of Silence enters the battlefield tapped.$When Temple of Silence enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)${tap}: Add {W} or {B} to your mana pool.| Temple of Triumph|Theros|228|R||Land|||Temple of Triumph enters the battlefield tapped.$When Temple of Triumph enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)${tap}: Add {R} or {W} to your mana pool.| -Unknown Shores|Theros|229|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| +Unknown Shores|Theros|229|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Add one mana of any color to your mana pool.| Leonin Snarecaster|Theros|23|C|{1}{W}|Creature - Cat Soldier|2|1|When Leonin Snarecaster enters the battlefield, you may tap target creature.| Plains|Theros|230|L||Basic Land - Plains|||W| Plains|Theros|231|L||Basic Land - Plains|||W| @@ -22514,7 +22514,7 @@ Stun Sniper|Duel Decks: Heroes vs. Monsters|7|U|{R}{W}|Creature - Human Archer|1 Fires of Yavimaya|Duel Decks: Heroes vs. Monsters|70|U|{1}{R}{G}|Enchantment|||Creatures you control have haste.$Sacrifice Fires of Yavimaya: Target creature gets +2/+2 until end of turn.| Kazandu Refuge|Duel Decks: Heroes vs. Monsters|71|U||Land|||Kazandu Refuge enters the battlefield tapped.$When Kazandu Refuge enters the battlefield, you gain 1 life.${tap}: Add {R} or {G} to your mana pool.| Llanowar Reborn|Duel Decks: Heroes vs. Monsters|72|U||Land|||Llanowar Reborn enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Graft 1 (This land enters the battlefield with a +1/+1 counter on it. Whenever a creature enters the battlefield, you may move a +1/+1 counter from this land onto it.)| -Skarrg, the Rage Pits|Duel Decks: Heroes vs. Monsters|73|U||Land|||{tap}: Add {1} to your mana pool.${R}{G}, {tap}: Target creature gets +1/+1 and gains trample until end of turn.| +Skarrg, the Rage Pits|Duel Decks: Heroes vs. Monsters|73|U||Land|||{tap}: Add {C} to your mana pool.${R}{G}, {tap}: Target creature gets +1/+1 and gains trample until end of turn.| Mountain|Duel Decks: Heroes vs. Monsters|74|L||Basic Land - Mountain|||R| Mountain|Duel Decks: Heroes vs. Monsters|75|L||Basic Land - Mountain|||R| Mountain|Duel Decks: Heroes vs. Monsters|76|L||Basic Land - Mountain|||R| @@ -22572,7 +22572,7 @@ Cultivate|Commander 2013 Edition|139|C|{2}{G}|Sorcery|||Search your library for Karmic Guide|Commander 2013 Edition|14|R|{3}{W}{W}|Creature - Angel Spirit|2|2|Flying, protection from black$Echo {3}{W}{W} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.)$When Karmic Guide enters the battlefield, return target creature card from your graveyard to the battlefield.| Curse of Predation|Commander 2013 Edition|140|U|{2}{G}|Enchantment - Aura Curse|||Enchant player$Whenever a creature attacks enchanted player, put a +1/+1 counter on it.| Deadwood Treefolk|Commander 2013 Edition|141|U|{5}{G}|Creature - Treefolk|3|6|Vanishing 3 (This permanent enters the battlefield with three time counters on it. At the beginning of your upkeep, remove a time counter from it. When the last is removed, sacrifice it.)$When Deadwood Treefolk enters the battlefield or leaves the battlefield, return another target creature card from your graveyard to your hand.| -Drumhunter|Commander 2013 Edition|142|U|{3}{G}|Creature - Human Druid Warrior|2|2|At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card.${tap}: Add {1} to your mana pool.| +Drumhunter|Commander 2013 Edition|142|U|{3}{G}|Creature - Human Druid Warrior|2|2|At the beginning of your end step, if you control a creature with power 5 or greater, you may draw a card.${tap}: Add {C} to your mana pool.| Elvish Skysweeper|Commander 2013 Edition|143|C|{G}|Creature - Elf Warrior|1|1|{4}{G}, Sacrifice a creature: Destroy target creature with flying.| Farhaven Elf|Commander 2013 Edition|144|C|{2}{G}|Creature - Elf Druid|1|1|When Farhaven Elf enters the battlefield, you may search your library for a basic land card and put it onto the battlefield tapped. If you do, shuffle your library.| Fecundity|Commander 2013 Edition|145|U|{2}{G}|Enchantment|||Whenever a creature dies, that creature's controller may draw a card.| @@ -22677,7 +22677,7 @@ Spiteful Visions|Commander 2013 Edition|233|R|{2}{BR}{BR}|Enchantment|||At the b Thopter Foundry|Commander 2013 Edition|234|U|{WB}{U}|Artifact|||{1}, Sacrifice a nontoken artifact: Put a 1/1 blue Thopter artifact creature token with flying onto the battlefield. You gain 1 life.| Armillary Sphere|Commander 2013 Edition|235|C|{2}|Artifact|||{2}, {tap}, Sacrifice Armillary Sphere: Search your library for up to two basic land cards, reveal them, and put them into your hand. Then shuffle your library.| Azorius Keyrune|Commander 2013 Edition|236|U|{3}|Artifact|||{tap}: Add {W} or {U} to your mana pool.${W}{U}: Azorius Keyrune becomes a 2/2 white and blue Bird artifact creature with flying until end of turn.| -Basalt Monolith|Commander 2013 Edition|237|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {3} to your mana pool.${3}: Untap Basalt Monolith.| +Basalt Monolith|Commander 2013 Edition|237|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {C}{C}{C} to your mana pool.${3}: Untap Basalt Monolith.| Carnage Altar|Commander 2013 Edition|238|U|{2}|Artifact|||{3}, Sacrifice a creature: Draw a card.| Conjurer's Closet|Commander 2013 Edition|239|R|{5}|Artifact|||At the beginning of your end step, you may exile target creature you control, then return that card to the battlefield under your control.| Tempt with Glory|Commander 2013 Edition|24|R|{5}{W}|Sorcery|||Tempting offer - Put a +1/+1 counter on each creature you control. Each opponent may put a +1/+1 counter on each creature he or she controls. For each opponent who does, put a +1/+1 counter on each creature you control.| @@ -22697,11 +22697,11 @@ Obelisk of Grixis|Commander 2013 Edition|251|C|{3}|Artifact|||{tap}: Add {U}, {B Obelisk of Jund|Commander 2013 Edition|252|C|{3}|Artifact|||{tap}: Add {B}, {R}, or {G} to your mana pool.| Pilgrim's Eye|Commander 2013 Edition|253|C|{3}|Artifact Creature - Thopter|1|1|Flying$When Pilgrim's Eye 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 Boiler|Commander 2013 Edition|254|R|{3}|Artifact|||At the beginning of your upkeep, put a plague counter on Plague Boiler.${1}{B}{G}: Put a plague counter on Plague Boiler or remove a plague counter from it.$When Plague Boiler has three or more plague counters on it, sacrifice it. If you do, destroy all nonland permanents.| -Pristine Talisman|Commander 2013 Edition|255|C|{3}|Artifact|||{tap}: Add {1} to your mana pool. You gain 1 life.| +Pristine Talisman|Commander 2013 Edition|255|C|{3}|Artifact|||{tap}: Add {C} to your mana pool. You gain 1 life.| Seer's Sundial|Commander 2013 Edition|256|R|{4}|Artifact|||Landfall - Whenever a land enters the battlefield under your control, you may pay {2}. If you do, draw a card.| Selesnya Signet|Commander 2013 Edition|257|C|{2}|Artifact|||{1}, {tap}: Add {G}{W} to your mana pool.| Simic Signet|Commander 2013 Edition|258|C|{2}|Artifact|||{1}, {tap}: Add {G}{U} to your mana pool.| -Sol Ring|Commander 2013 Edition|259|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Commander 2013 Edition|259|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Wall of Reverence|Commander 2013 Edition|26|R|{3}{W}|Creature - Spirit Wall|1|6|Defender, flying$At the beginning of your end step, you may gain life equal to the power of target creature you control.| Spine of Ish Sah|Commander 2013 Edition|260|R|{7}|Artifact|||When Spine of Ish Sah enters the battlefield, destroy target permanent.$When Spine of Ish Sah is put into a graveyard from the battlefield, return Spine of Ish Sah to its owner's hand.| Sun Droplet|Commander 2013 Edition|261|U|{2}|Artifact|||Whenever you're dealt damage, put that many charge counters on Sun Droplet.$At the beginning of each upkeep, you may remove a charge counter from Sun Droplet. If you do, you gain 1 life.| @@ -22720,52 +22720,52 @@ Akoum Refuge|Commander 2013 Edition|272|U||Land|||Akoum Refuge enters the battle Arcane Sanctum|Commander 2013 Edition|273|U||Land|||Arcane Sanctum enters the battlefield tapped.${tap}: Add {W}, {U}, or {B} to your mana pool.| Azorius Chancery|Commander 2013 Edition|274|C||Land|||Azorius Chancery enters the battlefield tapped.$When Azorius Chancery enters the battlefield, return a land you control to its owner's hand.${tap}: Add {W}{U} to your mana pool.| Azorius Guildgate|Commander 2013 Edition|275|C||Land - Gate|||Azorius Guildgate enters the battlefield tapped.${tap}: Add {W} or {U} to your mana pool.| -Bant Panorama|Commander 2013 Edition|276|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Bant Panorama: Search your library for a basic Forest, Plains, or Island card and put it onto the battlefield tapped. Then shuffle your library.| +Bant Panorama|Commander 2013 Edition|276|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Bant Panorama: Search your library for a basic Forest, Plains, or Island card and put it onto the battlefield tapped. Then shuffle your library.| Barren Moor|Commander 2013 Edition|277|C||Land|||Barren Moor enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {B} ({B}, Discard this card: Draw a card.)| Bojuka Bog|Commander 2013 Edition|278|C||Land|||Bojuka Bog enters the battlefield tapped.$When Bojuka Bog enters the battlefield, exile all cards from target player's graveyard.${tap}: Add {B} to your mana pool.| Boros Garrison|Commander 2013 Edition|279|C||Land|||Boros Garrison enters the battlefield tapped.$When Boros Garrison enters the battlefield, return a land you control to its owner's hand.${tap}: Add {R}{W} to your mana pool.| Arcane Denial|Commander 2013 Edition|28|C|{1}{U}|Instant|||Counter target spell. Its controller may draw up to two cards at the beginning of the next turn's upkeep.$You draw a card at the beginning of the next turn's upkeep.| Boros Guildgate|Commander 2013 Edition|280|C||Land - Gate|||Boros Guildgate enters the battlefield tapped.${tap}: Add {R} or {W} to your mana pool.| Command Tower|Commander 2013 Edition|281|C||Land|||{tap}: Add to your mana pool one mana of any color in your commander's color identity.| -Contested Cliffs|Commander 2013 Edition|282|R||Land|||{tap}: Add {1} to your mana pool.${R}{G}, {tap}: Target Beast creature you control fights target creature an opponent controls. (Each deals damage equal to its power to the other.)| +Contested Cliffs|Commander 2013 Edition|282|R||Land|||{tap}: Add {C} to your mana pool.${R}{G}, {tap}: Target Beast creature you control fights target creature an opponent controls. (Each deals damage equal to its power to the other.)| Crumbling Necropolis|Commander 2013 Edition|283|U||Land|||Crumbling Necropolis enters the battlefield tapped.${tap}: Add {U}, {B}, or {R} to your mana pool.| Dimir Guildgate|Commander 2013 Edition|284|C||Land - Gate|||Dimir Guildgate enters the battlefield tapped.${tap}: Add {U} or {B} to your mana pool.| Drifting Meadow|Commander 2013 Edition|285|C||Land|||Drifting Meadow enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| -Esper Panorama|Commander 2013 Edition|286|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Esper Panorama: Search your library for a basic Plains, Island, or Swamp card and put it onto the battlefield tapped. Then shuffle your library.| +Esper Panorama|Commander 2013 Edition|286|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Esper Panorama: Search your library for a basic Plains, Island, or Swamp card and put it onto the battlefield tapped. Then shuffle your library.| Evolving Wilds|Commander 2013 Edition|287|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Faerie Conclave|Commander 2013 Edition|288|U||Land|||Faerie Conclave enters the battlefield tapped.${tap}: Add {U} to your mana pool.${1}{U}: Faerie Conclave becomes a 2/1 blue Faerie creature with flying until end of turn. It's still a land.| Forgotten Cave|Commander 2013 Edition|289|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| Arcane Melee|Commander 2013 Edition|29|R|{4}{U}|Enchantment|||Instant and sorcery spells cost {2} less to cast.| Golgari Guildgate|Commander 2013 Edition|290|C||Land - Gate|||Golgari Guildgate enters the battlefield tapped.${tap}: Add {B} or {G} to your mana pool.| Golgari Rot Farm|Commander 2013 Edition|291|C||Land|||Golgari Rot Farm enters the battlefield tapped.$When Golgari Rot Farm enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{G} to your mana pool.| -Grim Backwoods|Commander 2013 Edition|292|R||Land|||{tap}: Add {1} to your mana pool.${2}{B}{G}, {tap}, Sacrifice a creature: Draw a card.| -Grixis Panorama|Commander 2013 Edition|293|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Grixis Panorama: Search your library for a basic Island, Swamp, or Mountain card and put it onto the battlefield tapped. Then shuffle your library.| +Grim Backwoods|Commander 2013 Edition|292|R||Land|||{tap}: Add {C} to your mana pool.${2}{B}{G}, {tap}, Sacrifice a creature: Draw a card.| +Grixis Panorama|Commander 2013 Edition|293|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Grixis Panorama: Search your library for a basic Island, Swamp, or Mountain card and put it onto the battlefield tapped. Then shuffle your library.| Gruul Guildgate|Commander 2013 Edition|294|C||Land - Gate|||Gruul Guildgate enters the battlefield tapped.${tap}: Add {R} or {G} to your mana pool.| -Homeward Path|Commander 2013 Edition|295|R||Land|||{tap}: Add {1} to your mana pool.${tap}: Each player gains control of all creatures he or she owns.| +Homeward Path|Commander 2013 Edition|295|R||Land|||{tap}: Add {C} to your mana pool.${tap}: Each player gains control of all creatures he or she owns.| Izzet Boilerworks|Commander 2013 Edition|296|C||Land|||Izzet Boilerworks enters the battlefield tapped.$When Izzet Boilerworks enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{R} to your mana pool.| Izzet Guildgate|Commander 2013 Edition|297|C||Land - Gate|||Izzet Guildgate enters the battlefield tapped.${tap}: Add {U} or {R} to your mana pool.| -Jund Panorama|Commander 2013 Edition|298|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Jund Panorama: Search your library for a basic Swamp, Mountain, or Forest card and put it onto the battlefield tapped. Then shuffle your library.| +Jund Panorama|Commander 2013 Edition|298|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Jund Panorama: Search your library for a basic Swamp, Mountain, or Forest card and put it onto the battlefield tapped. Then shuffle your library.| Jungle Shrine|Commander 2013 Edition|299|U||Land|||Jungle Shrine enters the battlefield tapped.${tap}: Add {R}, {G}, or {W} to your mana pool.| Ajani's Pridemate|Commander 2013 Edition|3|U|{1}{W}|Creature - Cat Soldier|2|2|Whenever you gain life, you may put a +1/+1 counter on Ajani's Pridemate. (For example, if an effect causes you to gain 3 life, you may put one +1/+1 counter on this creature.)| Augur of Bolas|Commander 2013 Edition|30|U|{1}{U}|Creature - Merfolk Wizard|1|3|When Augur of Bolas enters the battlefield, look at the top three cards of your library. You may reveal an instant or sorcery card from among them and put it into your hand. Put the rest on the bottom of your library in any order.| Jwar Isle Refuge|Commander 2013 Edition|300|U||Land|||Jwar Isle Refuge enters the battlefield tapped.$When Jwar Isle Refuge enters the battlefield, you gain 1 life.${tap}: Add {U} or {B} to your mana pool.| Kazandu Refuge|Commander 2013 Edition|301|U||Land|||Kazandu Refuge enters the battlefield tapped.$When Kazandu Refuge enters the battlefield, you gain 1 life.${tap}: Add {R} or {G} to your mana pool.| Khalni Garden|Commander 2013 Edition|302|C||Land|||Khalni Garden enters the battlefield tapped.$When Khalni Garden enters the battlefield, put a 0/1 green Plant creature token onto the battlefield.${tap}: Add {G} to your mana pool.| -Kher Keep|Commander 2013 Edition|303|R||Legendary Land|||{tap}: Add {1} to your mana pool.${1}{R}, {tap}: Put a 0/1 red Kobold creature token named Kobolds of Kher Keep onto the battlefield.| +Kher Keep|Commander 2013 Edition|303|R||Legendary Land|||{tap}: Add {C} to your mana pool.${1}{R}, {tap}: Put a 0/1 red Kobold creature token named Kobolds of Kher Keep onto the battlefield.| Llanowar Reborn|Commander 2013 Edition|304|U||Land|||Llanowar Reborn enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Graft 1 (This land enters the battlefield with a +1/+1 counter on it. Whenever a creature enters the battlefield, you may move a +1/+1 counter from this land onto it.)| Lonely Sandbar|Commander 2013 Edition|305|C||Land|||Lonely Sandbar enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {U} ({U}, Discard this card: Draw a card.)| -Molten Slagheap|Commander 2013 Edition|306|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Molten Slagheap.${1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool.| +Molten Slagheap|Commander 2013 Edition|306|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Molten Slagheap.${1}, Remove X storage counters from Molten Slagheap: Add X mana in any combination of {B} and/or {R} to your mana pool.| Mosswort Bridge|Commander 2013 Edition|307|R||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${tap}: Add {G} to your mana pool.${G}, {tap}: You may play the exiled card without paying its mana cost if creatures you control have total power 10 or greater.| -Naya Panorama|Commander 2013 Edition|308|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Naya Panorama: Search your library for a basic Mountain, Forest, or Plains card and put it onto the battlefield tapped. Then shuffle your library.| +Naya Panorama|Commander 2013 Edition|308|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Naya Panorama: Search your library for a basic Mountain, Forest, or Plains card and put it onto the battlefield tapped. Then shuffle your library.| New Benalia|Commander 2013 Edition|309|U||Land|||New Benalia enters the battlefield tapped.$When New Benalia enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)${tap}: Add {W} to your mana pool.| Azami, Lady of Scrolls|Commander 2013 Edition|31|R|{2}{U}{U}{U}|Legendary Creature - Human Wizard|0|2|Tap an untapped Wizard you control: Draw a card.| -Opal Palace|Commander 2013 Edition|310|C||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Add to your mana pool one mana of any color in your commander's color identity. If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it equal to the number of times it's been cast from the command zone this game.| +Opal Palace|Commander 2013 Edition|310|C||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Add to your mana pool one mana of any color in your commander's color identity. If you spend this mana to cast your commander, it enters the battlefield with a number of +1/+1 counters on it equal to the number of times it's been cast from the command zone this game.| Orzhov Basilica|Commander 2013 Edition|311|C||Land|||Orzhov Basilica enters the battlefield tapped.$When Orzhov Basilica enters the battlefield, return a land you control to its owner's hand.${tap}: Add {W}{B} to your mana pool.| Orzhov Guildgate|Commander 2013 Edition|312|C||Land - Gate|||Orzhov Guildgate enters the battlefield tapped.${tap}: Add {W} or {B} to your mana pool.| Rakdos Carnarium|Commander 2013 Edition|313|C||Land|||Rakdos Carnarium enters the battlefield tapped.$When Rakdos Carnarium enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{R} to your mana pool.| Rakdos Guildgate|Commander 2013 Edition|314|C||Land - Gate|||Rakdos Guildgate enters the battlefield tapped.${tap}: Add {B} or {R} to your mana pool.| Rupture Spire|Commander 2013 Edition|315|C||Land|||Rupture Spire enters the battlefield tapped.$When Rupture Spire enters the battlefield, sacrifice it unless you pay {1}.${tap}: Add one mana of any color to your mana pool.| -Saltcrusted Steppe|Commander 2013 Edition|316|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Saltcrusted Steppe.${1}, Remove X storage counters from Saltcrusted Steppe: Add X mana in any combination of {G} and/or {W} to your mana pool.| +Saltcrusted Steppe|Commander 2013 Edition|316|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Saltcrusted Steppe.${1}, Remove X storage counters from Saltcrusted Steppe: Add X mana in any combination of {G} and/or {W} to your mana pool.| Savage Lands|Commander 2013 Edition|317|U||Land|||Savage Lands enters the battlefield tapped.${tap}: Add {B}, {R}, or {G} to your mana pool.| Seaside Citadel|Commander 2013 Edition|318|U||Land|||Seaside Citadel enters the battlefield tapped.${tap}: Add {G}, {W}, or {U} to your mana pool.| Secluded Steppe|Commander 2013 Edition|319|C||Land|||Secluded Steppe enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {W} ({W}, Discard this card: Draw a card.)| @@ -22776,14 +22776,14 @@ Selesnya Sanctuary|Commander 2013 Edition|322|C||Land|||Selesnya Sanctuary enter Simic Guildgate|Commander 2013 Edition|323|C||Land - Gate|||Simic Guildgate enters the battlefield tapped.${tap}: Add {G} or {U} to your mana pool.| Slippery Karst|Commander 2013 Edition|324|C||Land|||Slippery Karst enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Smoldering Crater|Commander 2013 Edition|325|C||Land|||Smoldering Crater enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| -Springjack Pasture|Commander 2013 Edition|326|R||Land|||{tap}: Add {1} to your mana pool.${4}, {tap}: Put a 0/1 white Goat creature token onto the battlefield.${tap}, Sacrifice X Goats: Add X mana of any one color to your mana pool. You gain X life.| -Temple of the False God|Commander 2013 Edition|327|U||Land|||{tap}: Add {2} to your mana pool. Activate this ability only if you control five or more lands.| +Springjack Pasture|Commander 2013 Edition|326|R||Land|||{tap}: Add {C} to your mana pool.${4}, {tap}: Put a 0/1 white Goat creature token onto the battlefield.${tap}, Sacrifice X Goats: Add X mana of any one color to your mana pool. You gain X life.| +Temple of the False God|Commander 2013 Edition|327|U||Land|||{tap}: Add {C}{C} to your mana pool. Activate this ability only if you control five or more lands.| Terramorphic Expanse|Commander 2013 Edition|328|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Tranquil Thicket|Commander 2013 Edition|329|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| Borrowing 100,000 Arrows|Commander 2013 Edition|33|U|{2}{U}|Sorcery|||Draw a card for each tapped creature target opponent controls.| Transguild Promenade|Commander 2013 Edition|330|C||Land|||Transguild Promenade enters the battlefield tapped.$When Transguild Promenade enters the battlefield, sacrifice it unless you pay {1}.${tap}: Add one mana of any color to your mana pool.| -Urza's Factory|Commander 2013 Edition|331|U||Land - Urza s|||{tap}: Add {1} to your mana pool.${7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield.| -Vitu-Ghazi, the City-Tree|Commander 2013 Edition|332|U||Land|||{tap}: Add {1} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| +Urza's Factory|Commander 2013 Edition|331|U||Land - Urza s|||{tap}: Add {C} to your mana pool.${7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield.| +Vitu-Ghazi, the City-Tree|Commander 2013 Edition|332|U||Land|||{tap}: Add {C} to your mana pool.${2}{G}{W}, {tap}: Put a 1/1 green Saproling creature token onto the battlefield.| Vivid Crag|Commander 2013 Edition|333|U||Land|||Vivid Crag enters the battlefield tapped with two charge counters on it.${tap}: Add {R} to your mana pool.${tap}, Remove a charge counter from Vivid Crag: Add one mana of any color to your mana pool.| Vivid Creek|Commander 2013 Edition|334|U||Land|||Vivid Creek enters the battlefield tapped with two charge counters on it.${tap}: Add {U} to your mana pool.${tap}, Remove a charge counter from Vivid Creek: Add one mana of any color to your mana pool.| Vivid Grove|Commander 2013 Edition|335|U||Land|||Vivid Grove enters the battlefield tapped with two charge counters on it.${tap}: Add {G} to your mana pool.${tap}, Remove a charge counter from Vivid Grove: Add one mana of any color to your mana pool.| @@ -23030,12 +23030,12 @@ Bosh, Iron Golem|Commander 2014 Edition|230|R|{8}|Legendary Artifact Creature - Bottle Gnomes|Commander 2014 Edition|231|U|{3}|Artifact Creature - Gnome|1|3|Sacrifice Bottle Gnomes: You gain 3 life.| Burnished Hart|Commander 2014 Edition|232|U|{3}|Artifact Creature - Elk|2|2|{3}, Sacrifice Burnished Hart: Search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.| Caged Sun|Commander 2014 Edition|233|R|{6}|Artifact|||As Caged Sun enters the battlefield, choose a color.$Creatures you control of the chosen color get +1/+1.$Whenever a land's ability adds one or more mana of the chosen color to your mana pool, add one additional mana of that color to your mana pool.| -Cathodion|Commander 2014 Edition|234|U|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {3} to your mana pool.| +Cathodion|Commander 2014 Edition|234|U|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {C}{C}{C} to your mana pool.| Charcoal Diamond|Commander 2014 Edition|235|U|{2}|Artifact|||Charcoal Diamond enters the battlefield tapped.${tap}: Add {B} to your mana pool.| -Dreamstone Hedron|Commander 2014 Edition|236|U|{6}|Artifact|||{tap}: Add {3} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| +Dreamstone Hedron|Commander 2014 Edition|236|U|{6}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| Emerald Medallion|Commander 2014 Edition|237|R|{2}|Artifact|||Green spells you cast cost {1} less to cast.| Epochrasite|Commander 2014 Edition|238|R|{2}|Artifact Creature - Construct|1|1|Epochrasite enters the battlefield with three +1/+1 counters on it if you didn't cast it from your hand.$When Epochrasite dies, exile it with three time counters on it and it gains suspend. (At the beginning of your upkeep, remove a time counter. When the last is removed, cast this card without paying its mana cost. It has haste.)| -Everflowing Chalice|Commander 2014 Edition|239|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {1} to your mana pool for each charge counter on Everflowing Chalice.| +Everflowing Chalice|Commander 2014 Edition|239|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {C} to your mana pool for each charge counter on Everflowing Chalice.| Infernal Offering|Commander 2014 Edition|24|R|{4}{B}|Sorcery|||Choose an opponent. You and that player each sacrifice a creature. Each player who sacrificed a creature this way draws two cards.$Choose an opponent. Return a creature card from your graveyard to the battlefield, then that player returns a creature card from his or her graveyard to the battlefield.| Fire Diamond|Commander 2014 Edition|240|U|{2}|Artifact|||Fire Diamond enters the battlefield tapped.${tap}: Add {R} to your mana pool.| Ichor Wellspring|Commander 2014 Edition|241|C|{2}|Artifact|||When Ichor Wellspring enters the battlefield or is put into a graveyard from the battlefield, draw a card.| @@ -23048,7 +23048,7 @@ Loxodon Warhammer|Commander 2014 Edition|247|R|{3}|Artifact - Equipment|||Equipp Marble Diamond|Commander 2014 Edition|248|U|{2}|Artifact|||Marble Diamond enters the battlefield tapped.${tap}: Add {W} to your mana pool.| Mask of Memory|Commander 2014 Edition|249|U|{2}|Artifact - Equipment|||Whenever equipped creature deals combat damage to a player, you may draw two cards. If you do, discard a card.$Equip {1}| Malicious Affliction|Commander 2014 Edition|25|R|{B}{B}|Instant|||Morbid - When you cast Malicious Affliction, if a creature died this turn, you may copy Malicious Affliction and may choose a new target for the copy.$Destroy target nonblack creature.| -Mind Stone|Commander 2014 Edition|250|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| +Mind Stone|Commander 2014 Edition|250|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| Moonsilver Spear|Commander 2014 Edition|251|R|{4}|Artifact - Equipment|||Equipped creature has first strike.$Whenever equipped creature attacks, put a 4/4 white Angel creature token with flying onto the battlefield.$Equip {4}| Moss Diamond|Commander 2014 Edition|252|U|{2}|Artifact|||Moss Diamond enters the battlefield tapped.${tap}: Add {G} to your mana pool.| Mycosynth Wellspring|Commander 2014 Edition|253|C|{2}|Artifact|||When Mycosynth Wellspring enters the battlefield or is put into a graveyard from the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| @@ -23056,73 +23056,73 @@ Myr Battlesphere|Commander 2014 Edition|254|R|{7}|Artifact Creature - Myr Constr Myr Retriever|Commander 2014 Edition|255|U|{2}|Artifact Creature - Myr|1|1|When Myr Retriever dies, return another target artifact card from your graveyard to your hand.| Myr Sire|Commander 2014 Edition|256|C|{2}|Artifact Creature - Myr|1|1|When Myr Sire dies, put a 1/1 colorless Myr artifact creature token onto the battlefield.| Nevinyrral's Disk|Commander 2014 Edition|257|R|{4}|Artifact|||Nevinyrral's Disk enters the battlefield tapped.${1}, {tap}: Destroy all artifacts, creatures, and enchantments.| -Palladium Myr|Commander 2014 Edition|258|U|{3}|Artifact Creature - Myr|2|2|{tap}: Add {2} to your mana pool.| +Palladium Myr|Commander 2014 Edition|258|U|{3}|Artifact Creature - Myr|2|2|{tap}: Add {C}{C} to your mana pool.| Panic Spellbomb|Commander 2014 Edition|259|C|{1}|Artifact|||{tap}, Sacrifice Panic Spellbomb: Target creature can't block this turn.$When Panic Spellbomb is put into a graveyard from the battlefield, you may pay {R}. If you do, draw a card.| Necromantic Selection|Commander 2014 Edition|26|R|{4}{B}{B}{B}|Sorcery|||Destroy all creatures, then return a creature card put into a graveyard this way to the battlefield under your control. It's a black Zombie in addition to its other colors and types. Exile Necromantic Selection.| Pearl Medallion|Commander 2014 Edition|260|R|{2}|Artifact|||White spells you cast cost {1} less to cast.| Pentavus|Commander 2014 Edition|261|R|{7}|Artifact Creature - Construct|0|0|Pentavus enters the battlefield with five +1/+1 counters on it.${1}, Remove a +1/+1 counter from Pentavus: Put a 1/1 colorless Pentavite artifact creature token with flying onto the battlefield.${1}, Sacrifice a Pentavite: Put a +1/+1 counter on Pentavus.| Pilgrim's Eye|Commander 2014 Edition|262|C|{3}|Artifact Creature - Thopter|1|1|Flying$When Pilgrim's Eye enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| Predator, Flagship|Commander 2014 Edition|263|R|{5}|Legendary Artifact|||{2}: Target creature gains flying until end of turn.${5}, {tap}: Destroy target creature with flying.| -Pristine Talisman|Commander 2014 Edition|264|C|{3}|Artifact|||{tap}: Add {1} to your mana pool. You gain 1 life.| +Pristine Talisman|Commander 2014 Edition|264|C|{3}|Artifact|||{tap}: Add {C} to your mana pool. You gain 1 life.| Ruby Medallion|Commander 2014 Edition|265|R|{2}|Artifact|||Red spells you cast cost {1} less to cast.| Sapphire Medallion|Commander 2014 Edition|266|R|{2}|Artifact|||Blue spells you cast cost {1} less to cast.| Seer's Sundial|Commander 2014 Edition|267|R|{4}|Artifact|||Landfall - Whenever a land enters the battlefield under your control, you may pay {2}. If you do, draw a card.| Skullclamp|Commander 2014 Edition|268|U|{1}|Artifact - Equipment|||Equipped creature gets +1/-1.$Whenever equipped creature dies, draw two cards.$Equip {1}| Sky Diamond|Commander 2014 Edition|269|U|{2}|Artifact|||Sky Diamond enters the battlefield tapped.${tap}: Add {U} to your mana pool.| Ob Nixilis of the Black Oath|Commander 2014 Edition|27|M|{3}{B}{B}|Planeswalker - Nixilis|||+2: Each opponent loses 1 life. You gain life equal to the life lost this way.$?2: Put a 5/5 black Demon creature token with flying onto the battlefield. You lose 2 life.$?8: You get an emblem with "{1}{B}, Sacrifice a creature: You gain X life and draw X cards, where X is the sacrificed creature's power."$Ob Nixilis of the Black Oath can be your commander.| -Sol Ring|Commander 2014 Edition|270|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Commander 2014 Edition|270|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Solemn Simulacrum|Commander 2014 Edition|271|R|{4}|Artifact Creature - Golem|2|2|When Solemn Simulacrum enters the battlefield, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.$When Solemn Simulacrum dies, you may draw a card.| Spine of Ish Sah|Commander 2014 Edition|272|R|{7}|Artifact|||When Spine of Ish Sah enters the battlefield, destroy target permanent.$When Spine of Ish Sah is put into a graveyard from the battlefield, return Spine of Ish Sah to its owner's hand.| Steel Hellkite|Commander 2014 Edition|273|R|{6}|Artifact Creature - Dragon|5|5|Flying${2}: Steel Hellkite gets +1/+0 until end of turn.${X}: Destroy each nonland permanent with converted mana cost X whose controller was dealt combat damage by Steel Hellkite this turn. Activate this ability only once each turn.| Strata Scythe|Commander 2014 Edition|274|R|{3}|Artifact - Equipment|||Imprint - When Strata Scythe enters the battlefield, search your library for a land card, exile it, then shuffle your library.$Equipped creature gets +1/+1 for each land on the battlefield with the same name as the exiled card.$Equip {3}| Swiftfoot Boots|Commander 2014 Edition|275|U|{2}|Artifact - Equipment|||Equipped creature has hexproof and haste.$Equip {1}| Sword of Vengeance|Commander 2014 Edition|276|R|{3}|Artifact - Equipment|||Equipped creature gets +2/+0 and has first strike, vigilance, trample, and haste.$Equip {3}| -Thran Dynamo|Commander 2014 Edition|277|U|{4}|Artifact|||{tap}: Add {3} to your mana pool.| +Thran Dynamo|Commander 2014 Edition|277|U|{4}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.| Tormod's Crypt|Commander 2014 Edition|278|U|{0}|Artifact|||{tap}, Sacrifice Tormod's Crypt: Exile all cards from target player's graveyard.| Trading Post|Commander 2014 Edition|279|R|{4}|Artifact|||{1}, {tap}, Discard a card: You gain 4 life.${1}, {tap}, Pay 1 life: Put a 0/1 white Goat creature token onto the battlefield.${1}, {tap}, Sacrifice a creature: Return target artifact card from your graveyard to your hand.${1}, {tap}, Sacrifice an artifact: Draw a card.| Overseer of the Damned|Commander 2014 Edition|28|R|{5}{B}{B}|Creature - Demon|5|5|Flying$When Overseer of the Damned enters the battlefield, you may destroy target creature.$Whenever a nontoken creature an opponent controls dies, put a 2/2 black Zombie creature token onto the battlefield tapped.| -Ur-Golem's Eye|Commander 2014 Edition|280|U|{4}|Artifact|||{tap}: Add {2} to your mana pool.| +Ur-Golem's Eye|Commander 2014 Edition|280|U|{4}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Wayfarer's Bauble|Commander 2014 Edition|281|C|{1}|Artifact|||{2}, {tap}, Sacrifice Wayfarer's Bauble: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.| -Worn Powerstone|Commander 2014 Edition|282|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {2} to your mana pool.| +Worn Powerstone|Commander 2014 Edition|282|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {C}{C} to your mana pool.| Wurmcoil Engine|Commander 2014 Edition|283|M|{6}|Artifact Creature - Wurm|6|6|Deathtouch, lifelink$When Wurmcoil Engine dies, put a 3/3 colorless Wurm artifact creature token with deathtouch and a 3/3 colorless Wurm artifact creature token with lifelink onto the battlefield.| Barren Moor|Commander 2014 Edition|284|C||Land|||Barren Moor enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {B} ({B}, Discard this card: Draw a card.)| Bojuka Bog|Commander 2014 Edition|285|C||Land|||Bojuka Bog enters the battlefield tapped.$When Bojuka Bog enters the battlefield, exile all cards from target player's graveyard.${tap}: Add {B} to your mana pool.| -Buried Ruin|Commander 2014 Edition|286|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Buried Ruin: Return target artifact card from your graveyard to your hand.| -Coral Atoll|Commander 2014 Edition|287|U||Land|||Coral Atoll enters the battlefield tapped.$When Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand.${tap}: Add {1}{U} to your mana pool.| +Buried Ruin|Commander 2014 Edition|286|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Buried Ruin: Return target artifact card from your graveyard to your hand.| +Coral Atoll|Commander 2014 Edition|287|U||Land|||Coral Atoll enters the battlefield tapped.$When Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand.${tap}: Add {C}{U} to your mana pool.| Crypt of Agadeem|Commander 2014 Edition|288|R||Land|||Crypt of Agadeem enters the battlefield tapped.${tap}: Add {B} to your mana pool.${2}, {tap}: Add {B} to your mana pool for each black creature card in your graveyard.| -Crystal Vein|Commander 2014 Edition|289|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Crystal Vein: Add {2} to your mana pool.| +Crystal Vein|Commander 2014 Edition|289|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Crystal Vein: Add {C}{C} to your mana pool.| Raving Dead|Commander 2014 Edition|29|R|{4}{B}|Creature - Zombie|2|6|Deathtouch$At the beginning of combat on your turn, choose an opponent at random. Raving Dead attacks that player this combat if able.$Whenever Raving Dead deals combat damage to a player, that player loses half his or her life, rounded down.| -Darksteel Citadel|Commander 2014 Edition|290|U||Artifact Land|||Indestructible (Effects that say "destroy" don't destroy this land.)${tap}: Add {1} to your mana pool.| -Dormant Volcano|Commander 2014 Edition|291|U||Land|||Dormant Volcano enters the battlefield tapped.$When Dormant Volcano enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand.${tap}: Add {1}{R} to your mana pool.| +Darksteel Citadel|Commander 2014 Edition|290|U||Artifact Land|||Indestructible (Effects that say "destroy" don't destroy this land.)${tap}: Add {C} to your mana pool.| +Dormant Volcano|Commander 2014 Edition|291|U||Land|||Dormant Volcano enters the battlefield tapped.$When Dormant Volcano enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand.${tap}: Add {C}{R} to your mana pool.| Drifting Meadow|Commander 2014 Edition|292|C||Land|||Drifting Meadow enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Emeria, the Sky Ruin|Commander 2014 Edition|293|R||Land|||Emeria, the Sky Ruin enters the battlefield tapped.$At the beginning of your upkeep, if you control seven or more Plains, you may return target creature card from your graveyard to the battlefield.${tap}: Add {W} to your mana pool.| -Everglades|Commander 2014 Edition|294|U||Land|||Everglades enters the battlefield tapped.$When Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand.${tap}: Add {1}{B} to your mana pool.| +Everglades|Commander 2014 Edition|294|U||Land|||Everglades enters the battlefield tapped.$When Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand.${tap}: Add {C}{B} to your mana pool.| Evolving Wilds|Commander 2014 Edition|295|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Forgotten Cave|Commander 2014 Edition|296|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| -Gargoyle Castle|Commander 2014 Edition|297|R||Land|||{tap}: Add {1} to your mana pool.${5}, {tap}, Sacrifice Gargoyle Castle: Put a 3/4 colorless Gargoyle artifact creature token with flying onto the battlefield.| -Ghost Quarter|Commander 2014 Edition|298|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| +Gargoyle Castle|Commander 2014 Edition|297|R||Land|||{tap}: Add {C} to your mana pool.${5}, {tap}, Sacrifice Gargoyle Castle: Put a 3/4 colorless Gargoyle artifact creature token with flying onto the battlefield.| +Ghost Quarter|Commander 2014 Edition|298|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| Great Furnace|Commander 2014 Edition|299|C||Artifact Land|||{tap}: Add {R} to your mana pool.| Benevolent Offering|Commander 2014 Edition|3|R|{3}{W}|Instant|||Choose an opponent. You and that player each put three 1/1 white Spirit creature tokens with flying onto the battlefield.$Choose an opponent. You gain 2 life for each creature you control and that player gains 2 life for each creature he or she controls.| Spoils of Blood|Commander 2014 Edition|30|R|{B}|Instant|||Put an X/X black Horror creature token onto the battlefield, where X is the number of creatures that died this turn.| -Haunted Fengraf|Commander 2014 Edition|300|C||Land|||{tap}: Add {1} to your mana pool.${3}, {tap}, Sacrifice Haunted Fengraf: Return a creature card at random from your graveyard to your hand.| +Haunted Fengraf|Commander 2014 Edition|300|C||Land|||{tap}: Add {C} to your mana pool.${3}, {tap}, Sacrifice Haunted Fengraf: Return a creature card at random from your graveyard to your hand.| Havenwood Battleground|Commander 2014 Edition|301|U||Land|||Havenwood Battleground enters the battlefield tapped.${tap}: Add {G} to your mana pool.${tap}, Sacrifice Havenwood Battleground: Add {G}{G} to your mana pool.| -Jungle Basin|Commander 2014 Edition|302|U||Land|||Jungle Basin enters the battlefield tapped.$When Jungle Basin enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand.${tap}: Add {1}{G} to your mana pool.| -Karoo|Commander 2014 Edition|303|U||Land|||Karoo enters the battlefield tapped.$When Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.${tap}: Add {1}{W} to your mana pool.| +Jungle Basin|Commander 2014 Edition|302|U||Land|||Jungle Basin enters the battlefield tapped.$When Jungle Basin enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand.${tap}: Add {C}{G} to your mana pool.| +Karoo|Commander 2014 Edition|303|U||Land|||Karoo enters the battlefield tapped.$When Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.${tap}: Add {C}{W} to your mana pool.| Lonely Sandbar|Commander 2014 Edition|304|C||Land|||Lonely Sandbar enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {U} ({U}, Discard this card: Draw a card.)| Oran-Rief, the Vastwood|Commander 2014 Edition|305|R||Land|||Oran-Rief, the Vastwood enters the battlefield tapped.${tap}: Add {G} to your mana pool.${tap}: Put a +1/+1 counter on each green creature that entered the battlefield this turn.| -Phyrexia's Core|Commander 2014 Edition|306|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice an artifact: You gain 1 life.| +Phyrexia's Core|Commander 2014 Edition|306|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice an artifact: You gain 1 life.| Polluted Mire|Commander 2014 Edition|307|C||Land|||Polluted Mire enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| -Reliquary Tower|Commander 2014 Edition|308|U||Land|||You have no maximum hand size.${tap}: Add {1} to your mana pool.| +Reliquary Tower|Commander 2014 Edition|308|U||Land|||You have no maximum hand size.${tap}: Add {C} to your mana pool.| Remote Isle|Commander 2014 Edition|309|C||Land|||Remote Isle enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Wake the Dead|Commander 2014 Edition|31|R|{X}{B}{B}|Instant|||Cast Wake the Dead only during combat on an opponent's turn.$Return X target creature cards from your graveyard to the battlefield. Sacrifice those creatures at the beginning of the next end step.| Secluded Steppe|Commander 2014 Edition|310|C||Land|||Secluded Steppe enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {W} ({W}, Discard this card: Draw a card.)| Slippery Karst|Commander 2014 Edition|311|C||Land|||Slippery Karst enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Smoldering Crater|Commander 2014 Edition|312|C||Land|||Smoldering Crater enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| -Tectonic Edge|Commander 2014 Edition|313|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Tectonic Edge: Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands.| -Temple of the False God|Commander 2014 Edition|314|U||Land|||{tap}: Add {2} to your mana pool. Activate this ability only if you control five or more lands.| +Tectonic Edge|Commander 2014 Edition|313|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Tectonic Edge: Destroy target nonbasic land. Activate this ability only if an opponent controls four or more lands.| +Temple of the False God|Commander 2014 Edition|314|U||Land|||{tap}: Add {C}{C} to your mana pool. Activate this ability only if you control five or more lands.| Terramorphic Expanse|Commander 2014 Edition|315|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Tranquil Thicket|Commander 2014 Edition|316|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| -Zoetic Cavern|Commander 2014 Edition|317|U||Land|||{tap}: Add {1} 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.)| +Zoetic Cavern|Commander 2014 Edition|317|U||Land|||{tap}: 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.)| Plains|Commander 2014 Edition|318|L||Basic Land - Plains|||W| Plains|Commander 2014 Edition|319|L||Basic Land - Plains|||W| Bitter Feud|Commander 2014 Edition|32|R|{4}{R}|Enchantment|||As Bitter Feud enters the battlefield, choose two players.$If a source controlled by one of the chosen players would deal damage to the other chosen player or a permanent that player controls, that source deals double that damage to that player or permanent instead.| @@ -23171,11 +23171,11 @@ Commander's Sphere|Commander 2014 Edition|54|C|{3}|Artifact|||{tap}: Add to your Crown of Doom|Commander 2014 Edition|55|R|{3}|Artifact|||Whenever a creature attacks you or a planeswalker you control, it gets +2/+0 until end of turn.${2}: Target player other than Crown of Doom's owner gains control of it. Activate this ability only during your turn.| Loreseeker's Stone|Commander 2014 Edition|56|U|{6}|Artifact|||{3}, {tap}: Draw three cards. This ability costs {1} more to activate for each card in your hand.| Masterwork of Ingenuity|Commander 2014 Edition|57|R|{1}|Artifact - Equipment|||You may have Masterwork of Ingenuity enter the battlefield as a copy of any Equipment on the battlefield.| -Unstable Obelisk|Commander 2014 Edition|58|U|{3}|Artifact|||{tap}: Add {1} to your mana pool.${7}, {tap}, Sacrifice Unstable Obelisk: Destroy target permanent.| -Arcane Lighthouse|Commander 2014 Edition|59|U||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Until end of turn, creatures your opponents control lose hexproof and shroud and can't have hexproof or shroud.| +Unstable Obelisk|Commander 2014 Edition|58|U|{3}|Artifact|||{tap}: Add {C} to your mana pool.${7}, {tap}, Sacrifice Unstable Obelisk: Destroy target permanent.| +Arcane Lighthouse|Commander 2014 Edition|59|U||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Until end of turn, creatures your opponents control lose hexproof and shroud and can't have hexproof or shroud.| Deploy to the Front|Commander 2014 Edition|6|R|{5}{W}{W}|Sorcery|||Put X 1/1 white Soldier creature tokens onto the battlefield, where X is the number of creatures on the battlefield.| Flamekin Village|Commander 2014 Edition|60|R||Land|||As Flamekin Village enters the battlefield, you may reveal an Elemental card from your hand. If you don't, Flamekin Village enters the battlefield tapped.${tap}: Add {R} to your mana pool.${R}, {tap}: Target creature gains haste until end of turn.| -Myriad Landscape|Commander 2014 Edition|61|U||Land|||Myriad Landscape enters the battlefield tapped.${tap}: Add {1} to your mana pool.${2}, {tap}, Sacrifice Myriad Landscape: Search your library for up to two basic land cards that share a land type, put them onto the battlefield tapped, then shuffle your library.| +Myriad Landscape|Commander 2014 Edition|61|U||Land|||Myriad Landscape enters the battlefield tapped.${tap}: Add {C} to your mana pool.${2}, {tap}, Sacrifice Myriad Landscape: Search your library for up to two basic land cards that share a land type, put them onto the battlefield tapped, then shuffle your library.| Artisan of Kozilek|Commander 2014 Edition|62|U|{9}|Creature - Eldrazi|10|9|When you cast Artisan of Kozilek, you may return target creature card from your graveyard to the battlefield.$Annihilator 2 (Whenever this creature attacks, defending player sacrifices two permanents.)| Adarkar Valkyrie|Commander 2014 Edition|63|R|{4}{W}{W}|Snow Creature - Angel|4|5|Flying, vigilance${tap}: When target creature other than Adarkar Valkyrie dies this turn, return that card to the battlefield under your control.| Afterlife|Commander 2014 Edition|64|U|{2}{W}|Instant|||Destroy target creature. It can't be regenerated. Its controller puts a 1/1 white Spirit creature token with flying onto the battlefield.| @@ -23590,7 +23590,7 @@ Summoner's Bane|Duel Decks: Jace vs. Vraska|31|U|{2}{U}{U}|Instant|||Counter tar Jace's Ingenuity|Duel Decks: Jace vs. Vraska|32|U|{3}{U}{U}|Instant|||Draw three cards.| Future Sight|Duel Decks: Jace vs. Vraska|33|R|{2}{U}{U}{U}|Enchantment|||Play with the top card of your library revealed.$You may play the top card of your library.| Spelltwine|Duel Decks: Jace vs. Vraska|34|R|{5}{U}|Sorcery|||Exile target instant or sorcery card from your graveyard and target instant or sorcery card from an opponent's graveyard. Copy those cards. Cast the copies if able without paying their mana costs. Exile Spelltwine.| -Dread Statuary|Duel Decks: Jace vs. Vraska|35|U||Land|||{tap}: Add {1} to your mana pool.${4}: Dread Statuary becomes a 4/2 Golem artifact creature until end of turn. It's still a land.| +Dread Statuary|Duel Decks: Jace vs. Vraska|35|U||Land|||{tap}: Add {C} to your mana pool.${4}: Dread Statuary becomes a 4/2 Golem artifact creature until end of turn. It's still a land.| Halimar Depths|Duel Decks: Jace vs. Vraska|36|C||Land|||Halimar Depths enters the battlefield tapped.$When Halimar Depths enters the battlefield, look at the top three cards of your library, then put them back in any order.${tap}: Add {U} to your mana pool.| Island|Duel Decks: Jace vs. Vraska|37|L||Basic Land - Island|||U| Island|Duel Decks: Jace vs. Vraska|38|L||Basic Land - Island|||U| @@ -23636,8 +23636,8 @@ Underworld Connections|Duel Decks: Jace vs. Vraska|73|R|{1}{B}{B}|Enchantment - Consume Strength|Duel Decks: Jace vs. Vraska|74|C|{1}{B}{G}|Instant|||Target creature gets +2/+2 until end of turn. Another target creature gets -2/-2 until end of turn.| Grisly Spectacle|Duel Decks: Jace vs. Vraska|75|C|{2}{B}{B}|Instant|||Destroy target nonartifact creature. Its controller puts a number of cards equal to that creature's power from the top of his or her library into his or her graveyard.| Golgari Guildgate|Duel Decks: Jace vs. Vraska|76|C||Land - Gate|||Golgari Guildgate enters the battlefield tapped.${tap}: Add {B} or {G} to your mana pool.| -Rogue's Passage|Duel Decks: Jace vs. Vraska|77|U||Land|||{tap}: Add {1} to your mana pool.${4}, {tap}: Target creature can't be blocked this turn.| -Tainted Wood|Duel Decks: Jace vs. Vraska|78|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp.| +Rogue's Passage|Duel Decks: Jace vs. Vraska|77|U||Land|||{tap}: Add {C} to your mana pool.${4}, {tap}: Target creature can't be blocked this turn.| +Tainted Wood|Duel Decks: Jace vs. Vraska|78|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp.| Swamp|Duel Decks: Jace vs. Vraska|79|L||Basic Land - Swamp|||B| Krovikan Mist|Duel Decks: Jace vs. Vraska|8|C|{1}{U}|Creature - Illusion|*|*|Flying$Krovikan Mist's power and toughness are each equal to the number of Illusions on the battlefield.| Merfolk Wayfinder|Duel Decks: Jace vs. Vraska|9|U|{2}{U}|Creature - Merfolk Scout|1|2|Flying$When Merfolk Wayfinder enters the battlefield, reveal the top three cards of your library. Put all Island cards revealed this way into your hand and the rest on the bottom of your library in any order.| @@ -23931,8 +23931,8 @@ Silent Arbiter|Magic: The Gathering-Conspiracy|204|R|{4}|Artifact Creature - Con Spectral Searchlight|Magic: The Gathering-Conspiracy|205|U|{3}|Artifact|||{tap}: Choose a player. That player adds one mana of any color he or she chooses to his or her mana pool.| Vedalken Orrery|Magic: The Gathering-Conspiracy|206|R|{4}|Artifact|||You may cast nonland cards as though they had flash.| Warmonger's Chariot|Magic: The Gathering-Conspiracy|207|U|{2}|Artifact - Equipment|||Equipped creature gets +2/+2.$As long as equipped creature has defender, it can attack as though it didn't have defender.$Equip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)| -Mirrodin's Core|Magic: The Gathering-Conspiracy|208|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Put a charge counter on Mirrodin's Core.${tap}, Remove a charge counter from Mirrodin's Core: Add one mana of any color to your mana pool.| -Quicksand|Magic: The Gathering-Conspiracy|209|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| +Mirrodin's Core|Magic: The Gathering-Conspiracy|208|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Put a charge counter on Mirrodin's Core.${tap}, Remove a charge counter from Mirrodin's Core: Add one mana of any color to your mana pool.| +Quicksand|Magic: The Gathering-Conspiracy|209|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Quicksand: Target attacking creature without flying gets -1/-2 until end of turn.| Marchesa's Emissary|Magic: The Gathering-Conspiracy|21|C|{3}{U}|Creature - Human Rogue|2|2|Hexproof (This creature can't be the target of spells or abilities your opponents control.)$Dethrone (Whenever this creature attacks the player with the most life or tied for most life, put a +1/+1 counter on it.)| Reflecting Pool|Magic: The Gathering-Conspiracy|210|R||Land|||{tap}: Add to your mana pool one mana of any type that a land you control could produce.| Marchesa's Infiltrator|Magic: The Gathering-Conspiracy|22|U|{2}{U}|Creature - Human Rogue|1|1|Dethrone (Whenever this creature attacks the player with the most life or tied for most life, put a +1/+1 counter on it.)$Whenever Marchesa's Infiltrator deals combat damage to a player, draw a card.| @@ -24060,7 +24060,7 @@ In Garruk's Wake|Launch Party|28|R|{7}{B}{B}|Sorcery|||Destroy all creatures you Sandsteppe Mastodon|Launch Party|29|R|{5}{G}{G}|Creature - Elephant|5|5|Reach$When Sandsteppe Mastodon enters the battlefield, bolster 5. (Choose a creature with the least toughness among creatures you control and put five +1/+1 counters on it.)| Deathbringer Regent|Launch Party|30|R|{5}{B}{B}|Creature - Dragon|5|6|Flying$When Deathbringer Regent enters the battlefield, if you cast it from your hand and there are five or more other creatures on the battlefield, destroy all other creatures.| Mizzium Meddler|Launch Party|31|R|{2}{U}|Creature - Vedalken Wizard|1|4|Flash (You may cast this spell any time you could cast an instant.)$When Mizzium Meddler enters the battlefield, you may change a target of target spell or ability to Mizzium Meddler.| -Blight Herder|Launch Party|32|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 {1} to your mana pool."| +Blight Herder|Launch Party|32|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."| Ancestral Recall|Vintage Masters|1|Bonus|{U}|Instant|||Target player draws three cards.| Afterlife|Vintage Masters|10|C|{2}{W}|Instant|||Destroy target creature. It can't be regenerated. Its controller puts a 1/1 white Spirit creature token with flying onto the battlefield.| Upheaval|Vintage Masters|100|M|{4}{U}{U}|Sorcery|||Return all permanents to their owners' hands.| @@ -24174,7 +24174,7 @@ Blastoderm|Vintage Masters|198|U|{2}{G}{G}|Creature - Beast|5|5|Shroud (This Brindle Shoat|Vintage Masters|199|C|{1}{G}|Creature - Boar|1|1|When Brindle Shoat dies, put a 3/3 green Boar creature token onto the battlefield.| Time Walk|Vintage Masters|2|Bonus|{1}{U}|Sorcery|||Take an extra turn after this one.| Council's Judgment|Vintage Masters|20|R|{1}{W}{W}|Sorcery|||Will of the council - Starting with you, each player votes for a nonland permanent you don't control. Exile each permanent with the most votes or tied for most votes.| -Channel|Vintage Masters|200|M|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|Vintage Masters|200|M|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Claws of Wirewood|Vintage Masters|201|C|{3}{G}|Sorcery|||Claws of Wirewood deals 3 damage to each creature with flying and each player.$Cycling {2} ({2}, Discard this card: Draw a card.)| Deranged Hermit|Vintage Masters|202|R|{3}{G}{G}|Creature - Elf|1|1|Echo {3}{G}{G} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.)$When Deranged Hermit enters the battlefield, put four 1/1 green Squirrel creature tokens onto the battlefield.$Squirrel creatures get +1/+1.| Desert Twister|Vintage Masters|203|U|{4}{G}{G}|Sorcery|||Destroy target permanent.| @@ -24253,9 +24253,9 @@ Ivory Tower|Vintage Masters|269|U|{1}|Artifact|||At the beginning of your upkeep Exile|Vintage Masters|27|C|{2}{W}|Instant|||Exile target nonwhite attacking creature. You gain life equal to its toughness.| Karn, Silver Golem|Vintage Masters|270|R|{5}|Legendary Artifact Creature - Golem|4|4|Whenever Karn, Silver Golem blocks or becomes blocked, it gets -4/+4 until end of turn.${1}: Target noncreature artifact becomes an artifact creature with power and toughness each equal to its converted mana cost until end of turn.| Lion's Eye Diamond|Vintage Masters|271|M|{0}|Artifact|||Sacrifice Lion's Eye Diamond, Discard your hand: Add three mana of any one color to your mana pool. Activate this ability only any time you could cast an instant.| -Mana Crypt|Vintage Masters|272|M|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {2} to your mana pool.| -Mana Prism|Vintage Masters|273|C|{3}|Artifact|||{tap}: Add {1} to your mana pool.$${1}, {tap}: Add one mana of any color to your mana pool.| -Mana Vault|Vintage Masters|274|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {3} to your mana pool.| +Mana Crypt|Vintage Masters|272|M|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {C}{C} to your mana pool.| +Mana Prism|Vintage Masters|273|C|{3}|Artifact|||{tap}: Add {C} to your mana pool.$${1}, {tap}: Add one mana of any color to your mana pool.| +Mana Vault|Vintage Masters|274|R|{1}|Artifact|||Mana Vault doesn't untap during your untap step.$At the beginning of your upkeep, you may pay {4}. If you do, untap Mana Vault.$At the beginning of your draw step, if Mana Vault is tapped, it deals 1 damage to you.${tap}: Add {C}{C}{C} to your mana pool.| Masticore|Vintage Masters|275|R|{4}|Artifact Creature - Masticore|4|4|At the beginning of your upkeep, sacrifice Masticore unless you discard a card.${2}: Masticore deals 1 damage to target creature.${2}: Regenerate Masticore.| Memory Jar|Vintage Masters|276|M|{5}|Artifact|||{tap}, Sacrifice Memory Jar: Each player exiles all cards from his or her hand face down and draws seven cards. At the beginning of the next end step, each player discards his or her hand and returns to his or her hand each card he or she exiled this way.| Nevinyrral's Disk|Vintage Masters|277|R|{4}|Artifact|||Nevinyrral's Disk enters the battlefield tapped.${1}, {tap}: Destroy all artifacts, creatures, and enchantments.| @@ -24265,44 +24265,44 @@ Gerrard's Battle Cry|Vintage Masters|28|R|{W}|Enchantment|||{2}{W}: Creatures yo Ring of Gix|Vintage Masters|280|R|{3}|Artifact|||Echo {3} (At the beginning of your upkeep, if this came under your control since the beginning of your last upkeep, sacrifice it unless you pay its echo cost.)${1}, {tap}: Tap target artifact, creature, or land.| Skullclamp|Vintage Masters|281|M|{1}|Artifact - Equipment|||Equipped creature gets +1/-1.$Whenever equipped creature dies, draw two cards.$Equip {1}| Smokestack|Vintage Masters|282|R|{4}|Artifact|||At the beginning of your upkeep, you may put a soot counter on Smokestack.$At the beginning of each player's upkeep, that player sacrifices a permanent for each soot counter on Smokestack.| -Sol Ring|Vintage Masters|283|M|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Vintage Masters|283|M|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Sphere of Resistance|Vintage Masters|284|R|{2}|Artifact|||Spells cost {1} more to cast.| -Su-Chi|Vintage Masters|285|U|{4}|Artifact Creature - Construct|4|4|When Su-Chi dies, add {4} to your mana pool.| +Su-Chi|Vintage Masters|285|U|{4}|Artifact Creature - Construct|4|4|When Su-Chi dies, add {C}{C}{C}{C} to your mana pool.| Thopter Squadron|Vintage Masters|286|U|{5}|Artifact Creature - Thopter|0|0|Flying$Thopter Squadron enters the battlefield with three +1/+1 counters on it.${1}, Remove a +1/+1 counter from Thopter Squadron: Put a 1/1 colorless Thopter artifact creature token with flying onto the battlefield. Activate this ability only any time you could cast a sorcery.${1}, Sacrifice another Thopter: Put a +1/+1 counter on Thopter Squadron. Activate this ability only any time you could cast a sorcery.| Time Vault|Vintage Masters|287|M|{2}|Artifact|||Time Vault enters the battlefield tapped.$Time Vault doesn't untap during your untap step.$If you would begin your turn while Time Vault is tapped, you may skip that turn instead. If you do, untap Time Vault.${tap}: Take an extra turn after this one.| Triangle of War|Vintage Masters|288|U|{1}|Artifact|||{2}, Sacrifice Triangle of War: Target creature you control fights target creature an opponent controls. (Each deals damage equal to its power to the other.)| -Ancient Tomb|Vintage Masters|289|R||Land|||{tap}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.| +Ancient Tomb|Vintage Masters|289|R||Land|||{tap}: Add {C}{C} to your mana pool. Ancient Tomb deals 2 damage to you.| Gilded Light|Vintage Masters|29|C|{1}{W}|Instant|||You gain shroud until end of turn. (You can't be the target of spells or abilities.)$Cycling {2} ({2}, Discard this card: Draw a card.)| Bad River|Vintage Masters|290|U||Land|||Bad River enters the battlefield tapped.${tap}, Sacrifice Bad River: Search your library for an Island or Swamp card and put it onto the battlefield. Then shuffle your library.| Badlands|Vintage Masters|291|R||Land - Swamp Mountain|||| Barren Moor|Vintage Masters|292|C||Land|||Barren Moor enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {B} ({B}, Discard this card: Draw a card.)| Bayou|Vintage Masters|293|R||Land - Swamp Forest|||| Bazaar of Baghdad|Vintage Masters|294|M||Land|||{tap}: Draw two cards, then discard three cards.| -Caldera Lake|Vintage Masters|295|U||Land|||Caldera Lake enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you.| +Caldera Lake|Vintage Masters|295|U||Land|||Caldera Lake enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you.| Flood Plain|Vintage Masters|296|U||Land|||Flood Plain enters the battlefield tapped.${tap}, Sacrifice Flood Plain: Search your library for a Plains or Island card and put it onto the battlefield. Then shuffle your library.| Forgotten Cave|Vintage Masters|297|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| -Grand Coliseum|Vintage Masters|298|R||Land|||Grand Coliseum enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add one mana of any color to your mana pool. Grand Coliseum deals 1 damage to you.| +Grand Coliseum|Vintage Masters|298|R||Land|||Grand Coliseum enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add one mana of any color to your mana pool. Grand Coliseum deals 1 damage to you.| Grasslands|Vintage Masters|299|U||Land|||Grasslands enters the battlefield tapped.${tap}, Sacrifice Grasslands: Search your library for a Forest or Plains card and put it onto the battlefield. Then shuffle your library.| Timetwister|Vintage Masters|3|Bonus|{2}{U}|Sorcery|||Each player shuffles his or her hand and graveyard into his or her library, then draws seven cards. (Then put Timetwister into its owner's graveyard.)| Gustcloak Harrier|Vintage Masters|30|C|{1}{W}{W}|Creature - Bird Soldier|2|2|Flying$Whenever Gustcloak Harrier becomes blocked, you may untap it and remove it from combat.| -Keldon Necropolis|Vintage Masters|300|R||Legendary Land|||{tap}: Add {1} to your mana pool.${4}{R}, {tap}, Sacrifice a creature: Keldon Necropolis deals 2 damage to target creature or player.| +Keldon Necropolis|Vintage Masters|300|R||Legendary Land|||{tap}: Add {C} to your mana pool.${4}{R}, {tap}, Sacrifice a creature: Keldon Necropolis deals 2 damage to target creature or player.| Kjeldoran Outpost|Vintage Masters|301|R||Land|||If Kjeldoran Outpost would enter the battlefield, sacrifice a Plains instead. If you do, put Kjeldoran Outpost onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {W} to your mana pool.${1}{W}, {tap}: Put a 1/1 white Soldier creature token onto the battlefield.| Lake of the Dead|Vintage Masters|302|R||Land|||If Lake of the Dead would enter the battlefield, sacrifice a Swamp instead. If you do, put Lake of the Dead onto the battlefield. If you don't, put it into its owner's graveyard.${tap}: Add {B} to your mana pool.${tap}, Sacrifice a Swamp: Add {B}{B}{B}{B} to your mana pool.| -Library of Alexandria|Vintage Masters|303|M||Land|||{tap}: Add {1} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| +Library of Alexandria|Vintage Masters|303|M||Land|||{tap}: Add {C} to your mana pool.${tap}: Draw a card. Activate this ability only if you have exactly seven cards in hand.| Lonely Sandbar|Vintage Masters|304|C||Land|||Lonely Sandbar enters the battlefield tapped.${tap}: Add {U} to your mana pool.$Cycling {U} ({U}, Discard this card: Draw a card.)| -Mishra's Workshop|Vintage Masters|305|M||Land|||{tap}: Add {3} to your mana pool. Spend this mana only to cast artifact spells.| +Mishra's Workshop|Vintage Masters|305|M||Land|||{tap}: Add {C}{C}{C} to your mana pool. Spend this mana only to cast artifact spells.| Mountain Valley|Vintage Masters|306|U||Land|||Mountain Valley enters the battlefield tapped.${tap}, Sacrifice Mountain Valley: Search your library for a Mountain or Forest card and put it onto the battlefield. Then shuffle your library.| -Pine Barrens|Vintage Masters|307|U||Land|||Pine Barrens enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you.| +Pine Barrens|Vintage Masters|307|U||Land|||Pine Barrens enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you.| Plateau|Vintage Masters|308|R||Land - Mountain Plains|||| Rocky Tar Pit|Vintage Masters|309|U||Land|||Rocky Tar Pit enters the battlefield tapped.${tap}, Sacrifice Rocky Tar Pit: Search your library for a Swamp or Mountain card and put it onto the battlefield. Then shuffle your library.| Jareth, Leonine Titan|Vintage Masters|31|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.| -Salt Flats|Vintage Masters|310|U||Land|||Salt Flats enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you.| +Salt Flats|Vintage Masters|310|U||Land|||Salt Flats enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you.| Savannah|Vintage Masters|311|R||Land - Forest Plains|||| -Scabland|Vintage Masters|312|U||Land|||Scabland enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you.| +Scabland|Vintage Masters|312|U||Land|||Scabland enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you.| Scrubland|Vintage Masters|313|R||Land - Plains Swamp|||| Secluded Steppe|Vintage Masters|314|C||Land|||Secluded Steppe enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {W} ({W}, Discard this card: Draw a card.)| -Skyshroud Forest|Vintage Masters|315|U||Land|||Skyshroud Forest enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you.| -Strip Mine|Vintage Masters|316|R||Land|||{tap}: Add {1} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| +Skyshroud Forest|Vintage Masters|315|U||Land|||Skyshroud Forest enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you.| +Strip Mine|Vintage Masters|316|R||Land|||{tap}: Add {C} to your mana pool.$${tap}, Sacrifice Strip Mine: Destroy target land.| Taiga|Vintage Masters|317|R||Land - Mountain Forest|||| Thawing Glaciers|Vintage Masters|318|R||Land|||Thawing Glaciers enters the battlefield tapped.${1}, {tap}: Search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library. Return Thawing Glaciers to its owner's hand at the beginning of the next cleanup step.| Tolarian Academy|Vintage Masters|319|M||Legendary Land|||{tap}: Add {U} to your mana pool for each artifact you control.| @@ -24312,7 +24312,7 @@ Tropical Island|Vintage Masters|321|R||Land - Forest Island|||| Tundra|Vintage Masters|322|R||Land - Plains Island|||| Underground Sea|Vintage Masters|323|R||Land - Island Swamp|||| Volcanic Island|Vintage Masters|324|R||Land - Island Mountain|||| -Yavimaya Hollow|Vintage Masters|325|R||Legendary Land|||{tap}: Add {1} to your mana pool.${G}, {tap}: Regenerate target creature.| +Yavimaya Hollow|Vintage Masters|325|R||Legendary Land|||{tap}: Add {C} to your mana pool.${G}, {tap}: Regenerate target creature.| Kongming, 'Sleeping Dragon'|Vintage Masters|33|R|{2}{W}{W}|Legendary Creature - Human Advisor|2|2|Other creatures you control get +1/+1.| Mistmoon Griffin|Vintage Masters|34|C|{3}{W}|Creature - Griffin|2|2|Flying$When Mistmoon Griffin dies, exile Mistmoon Griffin, then return the top creature card of your graveyard to the battlefield.| Mystic Zealot|Vintage Masters|35|U|{3}{W}|Creature - Human Nomad Mystic|2|4|Threshold - As long as seven or more cards are in your graveyard, Mystic Zealot gets +1/+1 and has flying.| @@ -24537,7 +24537,7 @@ Crucible of Fire|Magic 2015|139|R|{3}{R}|Enchantment|||Dragon creatures you cont Forge Devil|Magic 2015|140|C|{R}|Creature - Devil|1|1|When Forge Devil enters the battlefield, it deals 1 damage to target creature and 1 damage to you.| Foundry Street Denizen|Magic 2015|141|C|{R}|Creature - Goblin Warrior|1|1|Whenever another red creature enters the battlefield under your control, Foundry Street Denizen gets +1/+0 until end of turn.| Frenzied Goblin|Magic 2015|142|U|{R}|Creature - Goblin Berserker|1|1|Whenever Frenzied Goblin attacks, you may pay {R}. If you do, target creature can't block this turn.| -Generator Servant|Magic 2015|143|C|{1}{R}|Creature - Elemental|2|1|{T}, Sacrifice Generator Servant: Add {2} to your mana pool. If that mana is spent on a creature spell, it gains haste until end of turn.| +Generator Servant|Magic 2015|143|C|{1}{R}|Creature - Elemental|2|1|{T}, Sacrifice Generator Servant: Add {C}{C} to your mana pool. If that mana is spent on a creature spell, it gains haste until end of turn.| Goblin Kaboomist|Magic 2015|144|R|{1}{R}|Creature - Goblin Warrior|1|2|At the beginning of your upkeep, put a colorless artifact token named Land Mine onto the battlefield with "{R}, Sacrifice this artifact: This artifact deals 2 damage to target attacking creature without flying." Then flip a coin. If you lose the flip, Goblin Kaboomist deals 2 damage to itself.| Goblin Rabblemaster|Magic 2015|145|R|{2}{R}|Creature - Goblin Warrior|2|2|Other Goblin creatures you control attack each turn if able.$At the beginning of combat on your turn, put a 1/1 red Goblin creature token with haste onto the battlefield.$When Goblin Rabblemaster attacks, it gets +1/+0 until end of turn for each other attacking Goblin.| Goblin Roughrider|Magic 2015|146|C|{2}{R}|Creature - Goblin Knight|3|2|| @@ -24612,16 +24612,16 @@ Garruk's Packleader|Magic 2015|283|U|{4}{G}|Creature - Beast|4|4|Whenever anothe Terra Stomper|Magic 2015|284|R|{3}{G}{G}{G}|Creature - Beast|8|8|Terra Stomper can't be countered.$Trample| Garruk, Apex Predator|Magic 2015|210|M|{5}{B}{G}|Planeswalker - Garruk||5|+1: Destroy another target planeswalker.$+1: Put a 3/3 black Beast creature token with deathtouch onto the battlefield.$-3: Destroy target creature. You gain life equal to its toughness.$-8: Target opponent gets an emblem with "Whenever a creature attacks you, it gets +5/+5 and gains trample until end of turn."| Sliver Hivelord|Magic 2015|211|M|{W}{U}{B}{R}{G}|Legendary Creature - Sliver|5|5|Sliver creatures you control have indestructible.| -Darksteel Citadel|Magic 2015|242|U||Artifact Land|||Indestructible${T}: Add {1} to your mana pool.| -Battlefield Forge|Magic 2015|240|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| -Caves of Koilos|Magic 2015|241|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| +Darksteel Citadel|Magic 2015|242|U||Artifact Land|||Indestructible${T}: Add {C} to your mana pool.| +Battlefield Forge|Magic 2015|240|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| +Caves of Koilos|Magic 2015|241|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| Evolving Wilds|Magic 2015|243|C||Land|||{T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| -Llanowar Wastes|Magic 2015|244|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| -Radiant Fountain|Magic 2015|245|C||Land|||When Radiant Fountain enters the battlefield, you gain 2 life.${T}: Add {1} to your mana pool.| -Shivan Reef|Magic 2015|246|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| -Sliver Hive|Magic 2015|247|R||Land|||{T}: Add {1} to your mana pool.${T}: Add one mana of any color to your mana pool. Spend this mana only to cast a Sliver spell.${5}, {T}: Put a 1/1 colorless Sliver creature token onto the battlefield. Activate this ability only if you control a Sliver.| +Llanowar Wastes|Magic 2015|244|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| +Radiant Fountain|Magic 2015|245|C||Land|||When Radiant Fountain enters the battlefield, you gain 2 life.${T}: Add {C} to your mana pool.| +Shivan Reef|Magic 2015|246|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| +Sliver Hive|Magic 2015|247|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 a Sliver spell.${5}, {T}: Put a 1/1 colorless Sliver creature token onto the battlefield. Activate this ability only if you control a Sliver.| Urborg, Tomb of Yawgmoth|Magic 2015|248|R||Legendary Land|||Each land is a Swamp in addition to its other land types.| -Yavimaya Coast|Magic 2015|249|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| +Yavimaya Coast|Magic 2015|249|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| Plains|Magic 2015|250|L||Basic Land - Plains|||| Plains|Magic 2015|251|L||Basic Land - Plains|||| Plains|Magic 2015|252|L||Basic Land - Plains|||| @@ -24832,7 +24832,7 @@ Sandsteppe Citadel|Khans of Tarkir|241|U||Land|||Sandsteppe Citadel enters the b Scoured Barrens|Khans of Tarkir|242|C||Land|||Scoured Barrens enters the battlefield tapped.$When Scoured Barrens enters the battlefield, you gain 1 life.${tap}: Add {W} or {B} to your mana pool.| Swiftwater Cliffs|Khans of Tarkir|243|C||Land|||Swiftwater Cliffs enters the battlefield tapped.$When Swiftwater Cliffs enters the battlefield, you gain 1 life.${tap}: Add {U} or {R} to your mana pool.| Thornwood Falls|Khans of Tarkir|244|C||Land|||Thornwood Falls enters the battlefield tapped.$When Thornwood Falls enters the battlefield, you gain 1 life.${tap}: Add {G} or {U} to your mana pool.| -Tomb of the Spirit Dragon|Khans of Tarkir|245|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: You gain 1 life for each colorless creature you control.| +Tomb of the Spirit Dragon|Khans of Tarkir|245|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: You gain 1 life for each colorless creature you control.| Tranquil Cove|Khans of Tarkir|246|C||Land|||Tranquil Cove enters the battlefield tapped.$When Tranquil Cove enters the battlefield, you gain 1 life.${tap}: Add {W} or {U} to your mana pool.| Wind-Scarred Crag|Khans of Tarkir|247|C||Land|||Wind-Scarred Crag enters the battlefield tapped.$When Wind-Scarred Crag enters the battlefield, you gain 1 life.${tap}: Add {R} or {W} to your mana pool.| Windswept Heath|Khans of Tarkir|248|R||Land|||{tap}, Pay 1 life, Sacrifice Windswept Heath: Search your library for a Forest or Plains card and put it onto the battlefield. Then shuffle your library.| @@ -24966,7 +24966,7 @@ Field of Souls|Duel Decks: Sorin vs. Tibalt|30|R|{2}{W}{W}|Enchantment|||Wheneve Absorb Vis|Duel Decks: Sorin vs. Tibalt|31|C|{6}{B}|Sorcery|||Target player loses 4 life and you gain 4 life.$Basic landcycling {1}{B} ({1}{B}, Discard this card: Search your library for a basic land card, reveal it, and put it into your hand. Then shuffle your library.)| Death Grasp|Duel Decks: Sorin vs. Tibalt|32|R|{X}{W}{B}|Sorcery|||Death Grasp deals X damage to target creature or player. You gain X life.| Evolving Wilds|Duel Decks: Sorin vs. Tibalt|33|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| -Tainted Field|Duel Decks: Sorin vs. Tibalt|34|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp.| +Tainted Field|Duel Decks: Sorin vs. Tibalt|34|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp.| Swamp|Duel Decks: Sorin vs. Tibalt|35|L||Basic Land - Swamp|||B| Swamp|Duel Decks: Sorin vs. Tibalt|36|L||Basic Land - Swamp|||B| Swamp|Duel Decks: Sorin vs. Tibalt|37|L||Basic Land - Swamp|||B| @@ -25175,7 +25175,7 @@ Scroll of the Masters|Fate Reforged|163|R|{2}|Artifact|||Whenever you cast a non Ugin's Construct|Fate Reforged|164|U|{4}|Artifact Creature - Construct|4|5|When Ugin's Construct enters the battlefield, sacrifice a permanent that's one or more colors.| Bloodfell Caves|Fate Reforged|165|C||Land|||Bloodfell Caves enters the battlefield tapped.$When Bloodfell Caves enters the battlefield, you gain 1 life.${tap}: Add {B} or {R} to your mana pool.| Blossoming Sands|Fate Reforged|166|C||Land|||Blossoming Sands enters the battlefield tapped.$When Blossoming Sands enters the battlefield, you gain 1 life.${tap}: Add {G} or {W} to your mana pool.| -Crucible of the Spirit Dragon|Fate Reforged|167|R||Land|||{tap}: Add {1} to your mana pool.${1}, {tap}: Put a storage counter on Crucible of the Spirit Dragon.${tap}, Remove X storage counters from Crucible of the Spirit Dragon: Add X mana in any combination of colors to your mana pool. Spend this mana only to cast Dragon spells or activate abilities of Dragons.| +Crucible of the Spirit Dragon|Fate Reforged|167|R||Land|||{tap}: Add {C} to your mana pool.${1}, {tap}: Put a storage counter on Crucible of the Spirit Dragon.${tap}, Remove X storage counters from Crucible of the Spirit Dragon: Add X mana in any combination of colors to your mana pool. Spend this mana only to cast Dragon spells or activate abilities of Dragons.| Dismal Backwater|Fate Reforged|168|C||Land|||Dismal Backwater enters the battlefield tapped.$When Dismal Backwater enters the battlefield, you gain 1 life.${tap}: Add {U} or {B} to your mana pool.| Jungle Hollow|Fate Reforged|169|C||Land|||Jungle Hollow enters the battlefield tapped.$When Jungle Hollow enters the battlefield, you gain 1 life.${tap}: Add {B} or {G} to your mana pool.| Lotus-Eye Mystics|Fate Reforged|17|U|{3}{W}|Creature - Human Monk|3|2|Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)$When Lotus-Eye Mystics enters the battlefield, return target enchantment card from your graveyard to your hand.| @@ -25228,7 +25228,7 @@ Neutralizing Blast|Fate Reforged|44|U|{1}{U}|Instant|||Counter target multicolor Rakshasa's Disdain|Fate Reforged|45|C|{2}{U}|Instant|||Counter target spell unless its controller pays {1} for each card in your graveyard.| Reality Shift|Fate Reforged|46|U|{1}{U}|Instant|||Exile target creature. Its controller manifests the top card of his or her library. (That player puts the top card of his or her library onto the battlefield face down as a 2/2 creature. If it's a creature card, it can be turned face up any time for its mana cost.)| Refocus|Fate Reforged|47|C|{1}{U}|Instant|||Untap target creature.$Draw a card.| -Renowned Weaponsmith|Fate Reforged|48|U|{1}{U}|Creature - Human Artificer|1|3|{tap}: Add {2} to your mana pool. Spend this mana only to cast artifact spells or activate abilities of artifacts.${U}, {tap}: Search your library for a card named Heart-Piercer Bow or Vial of Dragonfire, reveal it, put it into your hand, then shuffle your library.| +Renowned Weaponsmith|Fate Reforged|48|U|{1}{U}|Creature - Human Artificer|1|3|{tap}: Add {C}{C} to your mana pool. Spend this mana only to cast artifact spells or activate abilities of artifacts.${U}, {tap}: Search your library for a card named Heart-Piercer Bow or Vial of Dragonfire, reveal it, put it into your hand, then shuffle your library.| Rite of Undoing|Fate Reforged|49|U|{4}{U}|Instant|||Delve (Each card you exile from your graveyard while casting this spell pays for {1}.)$Return target nonland permanent you control and target nonland permanent you don't control to their owners' hands.| Arashin Cleric|Fate Reforged|5|C|{1}{W}|Creature - Human Cleric|1|3|When Arashin Cleric enters the battlefield, you gain 3 life.| Sage-Eye Avengers|Fate Reforged|50|R|{4}{U}{U}|Creature - Djinn Monk|4|5|Prowess (Whenever you cast a noncreature spell, this creature gets +1/+1 until end of turn.)$Whenever Sage-Eye Avengers attacks, you may return target creature to its owner's hand if its power is less than Sage-Eye Avengers's power.| @@ -25290,7 +25290,7 @@ Sewers of Estark|Media Inserts|2|Special|{2}{B}{B}|Instant|||Choose target creat Nalathni Dragon|Media Inserts|3|Special|{2}{R}{R}|Creature - Dragon|1|1|Flying; banding (Any creatures with banding, and up to one without, can attack in a band. Bands are blocked as a group. If any creatures with banding you control are blocking or being blocked by a creature, you divide that creature's combat damage, not its controller, among any of the creatures it's being blocked by or is blocking.)${R}: Nalathni Dragon gets +1/+0 until end of turn. If this ability has been activated four or more times this turn, sacrifice Nalathni Dragon at the beginning of the next end step.| Fireball|Media Inserts|4|U|{X}{R}|Sorcery|||Fireball deals X damage divided evenly, rounded down, among any number of target creatures and/or players.$Fireball costs {1} more to cast for each target beyond the first.| Blue Elemental Blast|Media Inserts|5|Special|{U}|Instant|||Choose one - Counter target red spell; or destroy target red permanent.| -Mana Crypt|Media Inserts|6|Special|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {2} to your mana pool.| +Mana Crypt|Media Inserts|6|Special|{0}|Artifact|||At the beginning of your upkeep, flip a coin. If you lose the flip, Mana Crypt deals 3 damage to you.${tap}: Add {C}{C} to your mana pool.| Windseeker Centaur|Media Inserts|7|Special|{1}{R}{R}|Creature - Centaur|2|2|Vigilance| Giant Badger|Media Inserts|8|Special|{1}{G}{G}|Creature - Badger|2|2|Whenever Giant Badger blocks, it gets +2/+2 until end of turn.| Scent of Cinder|Media Inserts|9|Special|{1}{R}|Sorcery|||Reveal any number of red cards in your hand. Scent of Cinder deals X damage to target creature or player, where X is the number of cards revealed this way.| @@ -25335,7 +25335,7 @@ Sunblast Angel|Media Inserts|47|Special|{4}{W}{W}|Creature - Angel|4|5|Flying$Wh Serra Avatar|Media Inserts|48|Special|{4}{W}{W}{W}|Creature - Avatar|*|*|Serra Avatar's power and toughness are each equal to your life total.$When Serra Avatar is put into a graveyard from anywhere, shuffle it into its owner's library.| Primordial Hydra|Media Inserts|49|Special|{X}{G}{G}|Creature - Hydra|0|0|Primordial Hydra enters the battlefield with X +1/+1 counters on it.$At the beginning of your upkeep, double the number of +1/+1 counters on Primordial Hydra.$Primordial Hydra has trample as long as it has ten or more +1/+1 counters on it.| Vampire Nocturnus|Media Inserts|50|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.| -Cathedral of War|Media Inserts|51|Special||Land|||Cathedral of War enters the battlefield tapped.$Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)${tap}: Add {1} to your mana pool.| +Cathedral of War|Media Inserts|51|Special||Land|||Cathedral of War enters the battlefield tapped.$Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)${tap}: Add {C} to your mana pool.| Terastodon|Media Inserts|52|Special|{6}{G}{G}|Creature - Elephant|9|9|When Terastodon enters the battlefield, you may destroy up to three target noncreature permanents. For each permanent put into a graveyard this way, its controller puts a 3/3 green Elephant creature token onto the battlefield.| Arrest|Media Inserts|53|C|{2}{W}|Enchantment - Aura|||Enchant creature$Enchanted creature can't attack or block, and its activated abilities can't be activated.| Consume Spirit|Media Inserts|54|Special|{X}{1}{B}|Sorcery|||Spend only black mana on X.$Consume Spirit deals X damage to target creature or player and you gain X life.| @@ -25420,7 +25420,7 @@ Siege Rhino|Media Inserts|133|Special|{1}{W}{B}{G}|Creature - Rhino|4|5|Trample$ 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.| -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 {1} to your mana pool."$Sacrifice an Eldrazi Scion: Tap Target creature.| +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.| @@ -25444,10 +25444,10 @@ Boomerang|WPN Gateway|4|Special|{U}{U}|Instant|||Return target permanent to its 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 {1} 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.)| +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.| -Mind Stone|WPN Gateway|11|Special|{2}|Artifact|||{T}: Add {1} to your mana pool.${1}, {T}, Sacrifice Mind Stone: Draw a card.| +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.| 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.| @@ -25486,7 +25486,7 @@ Plague Stinger|WPN Gateway|59|Special|{1}{B}|Creature — Insect Horror|1|1|Flyi 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.| 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 {1} to your mana pool.| +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.| @@ -25562,13 +25562,13 @@ Archon of the Triumvirate|Prerelease Events|55|Special|{5}{W}{U}|Creature - Arch Hypersonic Dragon|Prerelease Events|56|Special|{3}{U}{R}|Creature - Dragon|4|4|Flying, haste$You may cast sorcery cards as though they had flash. (You may cast them any time you could cast an instant.)| Carnival Hellsteed|Prerelease Events|57|Special|{4}{B}{R}|Creature - Nightmare Horse|5|4|First strike, haste$Unleash (You may have this creature enter the battlefield with a +1/+1 counter on it. It can't block as long as it has a +1/+1 counter on it.)| Corpsejack Menace|Prerelease Events|58|Special|{2}{B}{G}|Creature - Fungus|4|4|If one or more +1/+1 counters would be placed on a creature you control, twice that many +1/+1 counters are placed on it instead.| -Grove of the Guardian|Prerelease Events|59|Special||Land|||{T}: Add {1} to your mana pool.${3}{G}{W}, {T}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Put an 8/8 green and white Elemental creature token with vigilance onto the battlefield.| +Grove of the Guardian|Prerelease Events|59|Special||Land|||{T}: Add {C} to your mana pool.${3}{G}{W}, {T}, Tap two untapped creatures you control, Sacrifice Grove of the Guardian: Put an 8/8 green and white Elemental creature token with vigilance onto the battlefield.| 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.| 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 {1} 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.| +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.)| Megantic Sliver|Prerelease Events|67|Special|{5}{G}|Creature - Sliver|3|3|Sliver creatures you control get +3/+3.| Celestial Archon|Prerelease Events|68|Special|{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.| @@ -25701,7 +25701,7 @@ Ojutai's Breath|Dragons of Tarkir|67|C|{2}{U}|Instant|||Tap target creature. It Ojutai's Summons|Dragons of Tarkir|68|C|{3}{U}{U}|Sorcery|||Put a 2/2 blue Djinn Monk creature token with flying onto the battlefield.$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.)| Palace Familiar|Dragons of Tarkir|69|C|{1}{U}|Creature - Bird|1|1|Flying$When Palace Familiar dies, draw a card.| Profaner of the Dead|Dragons of Tarkir|70|R|{3}{U}|Creature - Naga Wizard|3|3|Exploit (When this creature enters the battlefield, you may sacrifice a creature.)$When Profaner of the Dead exploits a creature, return to their owners' hands all creatures your opponents control with toughness less than the exploited creature's toughness.| -Qarsi Deceiver|Dragons of Tarkir|71|U|{1}{U}|Creature - Naga Wizard|0|4|{T}: Add {1} to your mana pool. Spend this mana only to cast a face-down creature spell, pay a mana cost to turn a manifested creature face up, or pay a morph cost. | +Qarsi Deceiver|Dragons of Tarkir|71|U|{1}{U}|Creature - Naga Wizard|0|4|{T}: Add {C} to your mana pool. Spend this mana only to cast a face-down creature spell, pay a mana cost to turn a manifested creature face up, or pay a morph cost. | Reduce in Stature|Dragons of Tarkir|72|C|{2}{U}|Enchantment - Aura|||Enchant creature$Enchanted creature has base power and toughness 0/2.| Shorecrasher Elemental|Dragons of Tarkir|73|M|{U}{U}{U}|Creature - Elemental|3|3|{U}: Exile Shorecrasher Elemental, then return it to the battlefield face down under its owner's control.${1}: Shorecrasher Elemental gets +1/-1 or -1/+1 until end of turn.$Megamorph {4}{U} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its megamorph cost and put a +1/+1 counter on it.)| Sidisi's Faithful|Dragons of Tarkir|74|C|{U}|Creature - Naga Wizard|0|4|Exploit (Whene this creature enters the battlefield, you may sacrifice a creature.)$When Sidisi's Faithful exploits a creature, return target creature to its owner's hand.| @@ -25806,7 +25806,7 @@ Ainok Survivalist|Dragons of Tarkir|172|U|{1}{G}|Creature - Hound Shaman|2|1|Meg Assault Formation|Dragons of Tarkir|173|R|{1}{G}|Enchantment|||Each creature you control assigns combat damage equal to its toughness rather than its power.${G}: Target creature with defender can attack this turn as though it didn't have defender.${2}{G}: Creatures you control get +0/+1 until end of turn.| Atarka Beastbreaker|Dragons of Tarkir|174|C|{1}{G}|Creature - Human Warrior|2|2|Formidable - {4}{G}: Atarka Beastbreaker gets +4/+4 until end of turn. Activate this only if creatures you control have total power 8 or greater.| Avatar of the Resolute|Dragons of Tarkir|175|R|{G}{G}|Creature - Avatar|3|2|Reach, trample$Avatar of the Resolute enters the battlefield with a +1/+1 counter on it for each other creature you control with a +1/+1 counter on it.| -Circle of Elders|Dragons of Tarkir|176|U|{2}{G}{G}|Creature - Human Shaman|2|4|Vigilance$Formidable - {T}: Add {3} to your mana pool. Activate this only if creatures you control have total power 8 or greater.| +Circle of Elders|Dragons of Tarkir|176|U|{2}{G}{G}|Creature - Human Shaman|2|4|Vigilance$Formidable - {T}: Add {C}{C}{C} to your mana pool. Activate this only if creatures you control have total power 8 or greater.| Collected Company|Dragons of Tarkir|177|R|{3}{G}|Instant|||Look at the top six cards of your library. Put up to two creature cards with converted mana cost 3 or less from among them onto the battlefield. Put the rest on the bottom of your library in any order.| Colossodon Yearling|Dragons of Tarkir|178|C|{2}{G}|Creature - Beast|2|4|| Conifer Strider|Dragons of Tarkir|179|C|{3}{G}|Creature - Elemental|5|1|Hexproof (This creature can't be the target of spells or abilities your opponents control.)| @@ -25879,7 +25879,7 @@ Stormrider Rig|Dragons of Tarkir|245|U|{2}|Artifact - Equipment|||Equipped creat Tapestry of the Ages|Dragons of Tarkir|246|U|Artifact|||{2}, {T}: Draw a card. Activate this ability only if you've cast a noncreature spell this turn.| Vial of Dragonfire|Dragons of Tarkir|247|C|{2}|Artifact|||{2}, {T}, Sacrifice Vial of Dragonfire: Vial of Dragonfire deals 2 damage to target creature.| Evolving Wilds|Dragons of Tarkir|248|C||Land|||{T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| -Haven of the Spirit Dragon|Dragons of Tarkir|249|R||Land|||{T}: Add {1} to your mana pool.${T}: add one mana of any color to your mana pool. Spend this mana only to cast a Dragon creature spell.${2}, {T}, Sacrifice Haven of the Spirit Dragon: Return target Dragon creature card or Ugin planeswalker card from your graveyard to your hand.| +Haven of the Spirit Dragon|Dragons of Tarkir|249|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 a Dragon creature spell.${2}, {T}, Sacrifice Haven of the Spirit Dragon: Return target Dragon creature card or Ugin planeswalker card from your graveyard to your hand.| Plains|Dragons of Tarkir|250|L||Basic Land - Plains|||W| Plains|Dragons of Tarkir|251|L||Basic Land - Plains|||W| Plains|Dragons of Tarkir|252|L||Basic Land - Plains|||W| @@ -25948,11 +25948,11 @@ Cytoplast Root-Kin|Modern Masters 2015 Edition|143|U|{2}{G}{G}|Creature - Elemen Gnarlid Pack|Modern Masters 2015 Edition|144|C|{1}{G}|Creature - Beast|2|2|Multikicker {1}{G} (You may pay an additional {1}{G} any number of times as you cast this spell.)$Gnarlid Pack enters the battlefield with a +1/+1 counter on it for each time it was kicked.| Karplusan Strider|Modern Masters 2015 Edition|145|U|{3}{G}|Creature - Yeti|3|4|Karplusan Strider can't be the target of blue or black spells.| Kavu Primarch|Modern Masters 2015 Edition|146|C|{3}{G}|Creature - Kavu|3|3|Kicker {4} (You may pay an additional {4} as you cast this spell.)$Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)$If Kavu Primarch was kicked, it enters the battlefield with four +1/+1 counters on it.| -Kozilek's Predator|Modern Masters 2015 Edition|147|C|{3}{G}|Creature - Eldrazi Drone|3|3|When Kozilek's Predator enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Kozilek's Predator|Modern Masters 2015 Edition|147|C|{3}{G}|Creature - Eldrazi Drone|3|3|When Kozilek's Predator enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Matca Rioters|Modern Masters 2015 Edition|148|C|{2}{G}|Creature - Human Warrior|*|*|Domain - Matca Rioters's power and toughness are each equal to the number of basic land types among lands you control.| Mutagenic Growth|Modern Masters 2015 Edition|149|U|{GP}|Instant|||({GP} can be paid with either {G} or 2 life.)$Target creature gets +2/+2 until end of turn.| Dispatch|Modern Masters 2015 Edition|15|U|{W}|Instant|||Tap target creature.$Metalcraft - If you control three or more artifacts, exile that creature.| -Nest Invader|Modern Masters 2015 Edition|150|C|{1}{G}|Creature - Eldrazi Drone|2|2|When Nest Invader enters the battlefield, put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Nest Invader|Modern Masters 2015 Edition|150|C|{1}{G}|Creature - Eldrazi Drone|2|2|When Nest Invader enters the battlefield, put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Noble Hierarch|Modern Masters 2015 Edition|151|R|{G}|Creature - Human Druid|0|1|Exalted (Whenever a creature you control attacks alone, that creature gets +1/+1 until end of turn.)${tap}: Add {G}, {W}, or {U} to your mana pool.| Overwhelm|Modern Masters 2015 Edition|152|U|{5}{G}{G}|Sorcery|||Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)$Creatures you control get +3/+3 until end of turn.| Overwhelming Stampede|Modern Masters 2015 Edition|153|R|{3}{G}{G}|Sorcery|||Until end of turn, creatures you control gain trample and get +X/+X, where X is the greatest power among creatures you control.| @@ -26011,7 +26011,7 @@ Iona, Shield of Emeria|Modern Masters 2015 Edition|20|M|{6}{W}{W}{W}|Legendary C Wilt-Leaf Liege|Modern Masters 2015 Edition|200|R|{1}{GW}{GW}{GW}|Creature - Elf Knight|4|4|Other green creatures you control get +1/+1.$Other white creatures you control get +1/+1.$If a spell or ability an opponent controls causes you to discard Wilt-Leaf Liege, put it onto the battlefield instead of putting it into your graveyard.| Alloy Myr|Modern Masters 2015 Edition|201|C|{3}|Artifact Creature - Myr|2|2|{tap}: Add one mana of any color to your mana pool.| Blinding Souleater|Modern Masters 2015 Edition|202|C|{3}|Artifact Creature - Cleric|1|3|{WP}, {tap}: Tap target creature. ({WP} can be paid with either {W} or 2 life.)| -Cathodion|Modern Masters 2015 Edition|203|C|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {3} to your mana pool.| +Cathodion|Modern Masters 2015 Edition|203|C|{3}|Artifact Creature - Construct|3|3|When Cathodion dies, add {C}{C}{C} to your mana pool.| Chimeric Mass|Modern Masters 2015 Edition|204|R|{X}|Artifact|||Chimeric Mass enters the battlefield with X charge counters on it.${1}: Until end of turn, Chimeric Mass becomes a Construct artifact creature with "This creature's power and toughness are each equal to the number of charge counters on it."| Copper Carapace|Modern Masters 2015 Edition|205|C|{1}|Artifact - Equipment|||Equipped creature gets +2/+2 and can't block.$Equip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)| Cranial Plating|Modern Masters 2015 Edition|206|U|{2}|Artifact - Equipment|||Equipped creature gets +1/+0 for each artifact you control.${B}{B}: Attach Cranial Plating to target creature you control.$Equip {1} ({1}: Attach to target creature you control. Equip only as a sorcery.)| @@ -26021,7 +26021,7 @@ Etched Champion|Modern Masters 2015 Edition|209|R|{3}|Artifact Creature - Soldie Kami of Ancient Law|Modern Masters 2015 Edition|21|C|{1}{W}|Creature - Spirit|2|2|Sacrifice Kami of Ancient Law: Destroy target enchantment.| Etched Monstrosity|Modern Masters 2015 Edition|210|R|{5}|Artifact Creature - Golem|10|10|Etched Monstrosity enters the battlefield with five -1/-1 counters on it.${W}{U}{B}{R}{G}, Remove five -1/-1 counters from Etched Monstrosity: Target player draws three cards.| Etched Oracle|Modern Masters 2015 Edition|211|U|{4}|Artifact Creature - Wizard|0|0|Sunburst (This enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.)${1}, Remove four +1/+1 counters from Etched Oracle: Target player draws three cards.| -Everflowing Chalice|Modern Masters 2015 Edition|212|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {1} to your mana pool for each charge counter on Everflowing Chalice.| +Everflowing Chalice|Modern Masters 2015 Edition|212|U|{0}|Artifact|||Multikicker {2} (You may pay an additional {2} any number of times as you cast this spell.)$Everflowing Chalice enters the battlefield with a charge counter on it for each time it was kicked.${tap}: Add {C} to your mana pool for each charge counter on Everflowing Chalice.| Expedition Map|Modern Masters 2015 Edition|213|U|{1}|Artifact|||{2}, {tap}, Sacrifice Expedition Map: Search your library for a land card, reveal it, and put it into your hand. Then shuffle your library.| Flayer Husk|Modern Masters 2015 Edition|214|C|{1}|Artifact - Equipment|||Living weapon (When this Equipment enters the battlefield, put a 0/0 black Germ creature token onto the battlefield, then attach this to it.)$Equipped creature gets +1/+1.$Equip {2}| Frogmite|Modern Masters 2015 Edition|215|C|{4}|Artifact Creature - Frog|2|2|Affinity for artifacts (This spell costs {1} less to cast for each artifact you control.)| @@ -26047,12 +26047,12 @@ Sunforger|Modern Masters 2015 Edition|232|R|{3}|Artifact - Equipment|||Equipped Tumble Magnet|Modern Masters 2015 Edition|233|U|{3}|Artifact|||Tumble Magnet enters the battlefield with three charge counters on it.${tap}, Remove a charge counter from Tumble Magnet: Tap target artifact or creature.| Wayfarer's Bauble|Modern Masters 2015 Edition|234|C|{1}|Artifact|||{2}, {tap}, Sacrifice Wayfarer's Bauble: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.| Azorius Chancery|Modern Masters 2015 Edition|235|U||Land|||Azorius Chancery enters the battlefield tapped.$When Azorius Chancery enters the battlefield, return a land you control to its owner's hand.${tap}: Add {W}{U} to your mana pool.| -Blinkmoth Nexus|Modern Masters 2015 Edition|236|R||Land|||{tap}: Add {1} to your mana pool.${1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land.${1}, {tap}: Target Blinkmoth creature gets +1/+1 until end of turn.| +Blinkmoth Nexus|Modern Masters 2015 Edition|236|R||Land|||{tap}: Add {C} to your mana pool.${1}: Blinkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying until end of turn. It's still a land.${1}, {tap}: Target Blinkmoth creature gets +1/+1 until end of turn.| Boros Garrison|Modern Masters 2015 Edition|237|U||Land|||Boros Garrison enters the battlefield tapped.$When Boros Garrison enters the battlefield, return a land you control to its owner's hand.${tap}: Add {R}{W} to your mana pool.| -Darksteel Citadel|Modern Masters 2015 Edition|238|C||Artifact Land|||Indestructible (Effects that say "destroy" don't destroy this land.)${tap}: Add {1} to your mana pool.| +Darksteel Citadel|Modern Masters 2015 Edition|238|C||Artifact Land|||Indestructible (Effects that say "destroy" don't destroy this land.)${tap}: Add {C} to your mana pool.| Dimir Aqueduct|Modern Masters 2015 Edition|239|U||Land|||Dimir Aqueduct enters the battlefield tapped.$When Dimir Aqueduct enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{B} to your mana pool.| Mighty Leap|Modern Masters 2015 Edition|24|C|{1}{W}|Instant|||Target creature gets +2/+2 and gains flying until end of turn.| -Eldrazi Temple|Modern Masters 2015 Edition|240|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {2} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi.| +Eldrazi Temple|Modern Masters 2015 Edition|240|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {C}{C} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi.| Evolving Wilds|Modern Masters 2015 Edition|241|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Eye of Ugin|Modern Masters 2015 Edition|242|R||Legendary Land|||Colorless Eldrazi spells you cast cost {2} less to cast.${7}, {tap}: Search your library for a colorless creature card, reveal it, and put it into your hand. Then shuffle your library.| Golgari Rot Farm|Modern Masters 2015 Edition|243|U||Land|||Golgari Rot Farm enters the battlefield tapped.$When Golgari Rot Farm enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{G} to your mana pool.| @@ -26123,7 +26123,7 @@ Deathmark|Modern Masters 2015 Edition|77|U|{B}|Sorcery|||Destroy target green or Devouring Greed|Modern Masters 2015 Edition|78|U|{2}{B}{B}|Sorcery - Arcane|||As an additional cost to cast Devouring Greed, you may sacrifice any number of Spirits.$Target player loses 2 life plus 2 life for each Spirit sacrificed this way. You gain that much life.| Dismember|Modern Masters 2015 Edition|79|U|{1}{BP}{BP}|Instant|||({BP} can be paid with either {B} or 2 life.)$Target creature gets -5/-5 until end of turn.| Apostle's Blessing|Modern Masters 2015 Edition|8|C|{1}{WP}|Instant|||({WP} can be paid with either {W} or 2 life.)$Target artifact or creature you control gains protection from artifacts or from the color of your choice until end of turn.| -Dread Drone|Modern Masters 2015 Edition|80|C|{4}{B}|Creature - Eldrazi Drone|4|1|When Dread Drone enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Dread Drone|Modern Masters 2015 Edition|80|C|{4}{B}|Creature - Eldrazi Drone|4|1|When Dread Drone enters the battlefield, put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Duskhunter Bat|Modern Masters 2015 Edition|81|C|{1}{B}|Creature - Bat|1|1|Bloodthirst 1 (If an opponent was dealt damage this turn, this creature enters the battlefield with a +1/+1 counter on it.)$Flying| Endrek Sahr, Master Breeder|Modern Masters 2015 Edition|82|R|{4}{B}|Legendary Creature - Human Wizard|2|2|Whenever you cast a creature spell, put X 1/1 black Thrull creature tokens onto the battlefield, where X is that spell's converted mana cost.$When you control seven or more Thrulls, sacrifice Endrek Sahr, Master Breeder.| Ghostly Changeling|Modern Masters 2015 Edition|83|C|{2}{B}|Creature - Shapeshifter|2|2|Changeling (This card is every creature type at all times.)${1}{B}: Ghostly Changeling gets +1/+1 until end of turn.| @@ -26397,15 +26397,15 @@ Sword of the Animist|Magic Origins|240|R|{2}|Legendary Artifact - Equipment|||Eq Throwing Knife|Magic Origins|241|U|{2}|Artifact - Equipment|||Equipped creature gets +2/+0.$Whenever equipped creature attacks, you may sacrifice Throwing Knife. If you do, Throwing Knife deals 2 damage to target creature or player.$Equip {2}| Veteran's Sidearm|Magic Origins|242|C|{2}|Artifact - Equipment|||Equipped creature gets +1/+1.$Equip {1}| War Horn|Magic Origins|243|U|{3}|Artifact|||Attacking creatures you control get +1/+0.| -Battlefield Forge|Magic Origins|244|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| -Caves of Koilos|Magic Origins|245|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| +Battlefield Forge|Magic Origins|244|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {R} or {W} to your mana pool. Battlefield Forge deals 1 damage to you.| +Caves of Koilos|Magic Origins|245|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {W} or {B} to your mana pool. Caves of Koilos deals 1 damage to you.| Evolving Wilds|Magic Origins|246|C||Land|||{T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| -Foundry of the Consuls|Magic Origins|247|U||Land|||{T}: Add {1} to your mana pool.${5}, {T}, Sacrifice Foundry of the Consuls: Put two 1/1 colorless Thopter artifact creature tokens with flying onto the battlefield.| -Llanowar Wastes|Magic Origins|248|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| -Mage-Ring Network|Magic Origins|249|U||Land|||{t}: Add {1} to your mana pool.${1}, {t}: Put a storage counter on Mage-Ring Network.${t}, Remove X storage counters from Mage-Ring Network: Add {x} to your mana pool.| -Rogue's Passage|Magic Origins|250|U||Land|||{T}: Add {1} to your mana pool.${4}, {T}: Target creature can't be blocked this turn.| -Shivan Reef|Magic Origins|251|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| -Yavimaya Coast|Magic Origins|252|R||Land|||{T}: Add {1} to your mana pool.${T}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| +Foundry of the Consuls|Magic Origins|247|U||Land|||{T}: Add {C} to your mana pool.${5}, {T}, Sacrifice Foundry of the Consuls: Put two 1/1 colorless Thopter artifact creature tokens with flying onto the battlefield.| +Llanowar Wastes|Magic Origins|248|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {B} or {G} to your mana pool. Llanowar Wastes deals 1 damage to you.| +Mage-Ring Network|Magic Origins|249|U||Land|||{t}: Add {C} to your mana pool.${1}, {t}: Put a storage counter on Mage-Ring Network.${t}, Remove X storage counters from Mage-Ring Network: Add {x} to your mana pool.| +Rogue's Passage|Magic Origins|250|U||Land|||{T}: Add {C} to your mana pool.${4}, {T}: Target creature can't be blocked this turn.| +Shivan Reef|Magic Origins|251|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {U} or {R} to your mana pool. Shivan Reef deals 1 damage to you.| +Yavimaya Coast|Magic Origins|252|R||Land|||{T}: Add {C} to your mana pool.${T}: Add {G} or {U} to your mana pool. Yavimaya Coast deals 1 damage to you.| Plains|Magic Origins|253|L||Basic Land - Plains|||({t}: Add {W} to your mana pool.)| Plains|Magic Origins|254|L||Basic Land - Plains|||({t}: Add {W} to your mana pool.)| Plains|Magic Origins|255|L||Basic Land - Plains|||({t}: Add {W} to your mana pool.)| @@ -26444,7 +26444,7 @@ Harmonize|Duel Decks: Anthology, Elves vs. Goblins|22|U|{2}{G}{G}|Sorcery|||Draw Wildsize|Duel Decks: Anthology, Elves vs. Goblins|23|C|{2}{G}|Instant|||Target creature gets +2/+2 and gains trample until end of turn.$Draw a card.| Moonglove Extract|Duel Decks: Anthology, Elves vs. Goblins|24|C|{3}|Artifact|||Sacrifice Moonglove Extract: Moonglove Extract deals 2 damage to target creature or player.| Slate of Ancestry|Duel Decks: Anthology, Elves vs. Goblins|25|R|{4}|Artifact|||{4}, {tap}, Discard your hand: Draw a card for each creature you control.| -Wirewood Lodge|Duel Decks: Anthology, Elves vs. Goblins|26|U||Land|||{tap}: Add {1} to your mana pool.${G}, {tap}: Untap target Elf.| +Wirewood Lodge|Duel Decks: Anthology, Elves vs. Goblins|26|U||Land|||{tap}: Add {C} to your mana pool.${G}, {tap}: Untap target Elf.| Tranquil Thicket|Duel Decks: Anthology, Elves vs. Goblins|27|C||Land|||Tranquil Thicket enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Cycling {G} ({G}, Discard this card: Draw a card.)| Forest|Duel Decks: Anthology, Elves vs. Goblins|28|L||Basic Land - Forest|||G| Forest|Duel Decks: Anthology, Elves vs. Goblins|29|L||Basic Land - Forest|||G| @@ -26479,7 +26479,7 @@ Boggart Shenanigans|Duel Decks: Anthology, Elves vs. Goblins|54|U|{2}{R}|Tribal Spitting Earth|Duel Decks: Anthology, Elves vs. Goblins|55|C|{1}{R}|Sorcery|||Spitting Earth deals damage to target creature equal to the number of Mountains you control.| Tarfire|Duel Decks: Anthology, Elves vs. Goblins|56|C|{R}|Tribal Instant - Goblin|||Tarfire deals 2 damage to target creature or player.| Forgotten Cave|Duel Decks: Anthology, Elves vs. Goblins|57|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| -Goblin Burrows|Duel Decks: Anthology, Elves vs. Goblins|58|U||Land|||{tap}: Add {1} to your mana pool.${1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn.| +Goblin Burrows|Duel Decks: Anthology, Elves vs. Goblins|58|U||Land|||{tap}: Add {C} to your mana pool.${1}{R}, {tap}: Target Goblin creature gets +2/+0 until end of turn.| Mountain|Duel Decks: Anthology, Elves vs. Goblins|59|L||Basic Land - Mountain|||R| Gempalm Strider|Duel Decks: Anthology, Elves vs. Goblins|6|U|{1}{G}|Creature - Elf|2|2|Cycling {2}{G}{G} ({2}{G}{G}, Discard this card: Draw a card.)$When you cycle Gempalm Strider, Elf creatures get +2/+2 until end of turn.| Mountain|Duel Decks: Anthology, Elves vs. Goblins|60|L||Basic Land - Mountain|||R| @@ -26627,14 +26627,14 @@ Quicksilver Dragon|Duel Decks: Anthology, Jace vs. Chandra|19|R|{4}{U}{U}|Creatu Martyr of Frost|Duel Decks: Anthology, Jace vs. Chandra|2|C|{U}|Creature - Human Wizard|1|1|{2}, Reveal X blue cards from your hand, Sacrifice Martyr of Frost: Counter target spell unless its controller pays {X}.| Errant Ephemeron|Duel Decks: Anthology, Jace vs. Chandra|20|C|{6}{U}|Creature - Illusion|4|4|Flying$Suspend 4-{1}{U} (Rather than cast this card from your hand, you may pay {1}{U} and exile it with four 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. It has haste.)| Ancestral Vision|Duel Decks: Anthology, Jace vs. Chandra|21|R||Sorcery|||Suspend 4-{U} (Rather than cast this card from your hand, pay {U} and exile it with four 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.)$Target player draws three cards.| -Mind Stone|Duel Decks: Anthology, Jace vs. Chandra|22|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| +Mind Stone|Duel Decks: Anthology, Jace vs. Chandra|22|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| Daze|Duel Decks: Anthology, Jace vs. Chandra|23|C|{1}{U}|Instant|||You may return an Island you control to its owner's hand rather than pay Daze's mana cost.$$Counter target spell unless its controller pays {1}.| Counterspell|Duel Decks: Anthology, Jace vs. Chandra|24|C|{U}{U}|Instant|||Counter target spell.| Repulse|Duel Decks: Anthology, Jace vs. Chandra|25|C|{2}{U}|Instant|||Return target creature to its owner's hand.$Draw a card.| Fact or Fiction|Duel Decks: Anthology, Jace vs. Chandra|26|U|{3}{U}|Instant|||Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.| Gush|Duel Decks: Anthology, Jace vs. Chandra|27|C|{4}{U}|Instant|||You may return two Islands you control to their owner's hand rather than pay Gush's mana cost.$$Draw two cards.| Condescend|Duel Decks: Anthology, Jace vs. Chandra|28|C|{X}{U}|Instant|||Counter target spell unless its controller pays {X}.$Scry 2. (To scry 2, look at the top two cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)| -Terrain Generator|Duel Decks: Anthology, Jace vs. Chandra|29|U||Land|||{tap}: Add {1} to your mana pool.${2}, {tap}: You may put a basic land card from your hand onto the battlefield tapped.| +Terrain Generator|Duel Decks: Anthology, Jace vs. Chandra|29|U||Land|||{tap}: Add {C} to your mana pool.${2}, {tap}: You may put a basic land card from your hand onto the battlefield tapped.| Fathom Seer|Duel Decks: Anthology, Jace vs. Chandra|3|C|{1}{U}|Creature - Illusion|1|3|Morph-Return two Islands you control to their owner's hand. (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)$When Fathom Seer is turned face up, draw two cards.| Island|Duel Decks: Anthology, Jace vs. Chandra|30|L||Basic Land - Island|||U| Island|Duel Decks: Anthology, Jace vs. Chandra|31|L||Basic Land - Island|||U| @@ -26733,14 +26733,14 @@ Plasm Capture|Duel Decks: Elspeth vs. Kiora|55|R|{U}{U}{G}{G}|Instant|||Counter Simic Sky Swallower|Duel Decks: Elspeth vs. Kiora|56|R|{5}{U}{G}|Creature - Leviathan|6|6|Flying, trample$Shroud (This creature can't be the target of spells or abilities.)| Urban Evolution|Duel Decks: Elspeth vs. Kiora|57|U|{3}{U}{G}|Sorcery|||Draw three cards. You may play an additional land this turn.| Evolving Wilds|Duel Decks: Elspeth vs. Kiora|58|C||Land|||{T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| -Temple of the False God|Duel Decks: Elspeth vs. Kiora|59|U||Land|||{T}: Add {2} to your mana pool. Activate this ability only if you control five or more lands.| +Temple of the False God|Duel Decks: Elspeth vs. Kiora|59|U||Land|||{T}: Add {C}{C} to your mana pool. Activate this ability only if you control five or more lands.| Island|Duel Decks: Elspeth vs. Kiora|60|L||Basic Land - Island|||({T}: Add {U} to your mana pool.)| Island|Duel Decks: Elspeth vs. Kiora|61|L||Basic Land - Island|||({T}: Add {U} to your mana pool.)| Island|Duel Decks: Elspeth vs. Kiora|62|L||Basic Land - Island|||({T}: Add {U} to your mana pool.)| Forest|Duel Decks: Elspeth vs. Kiora|63|L||Basic Land - Forest|||({T}: Add {G} to your mana pool.)| Forest|Duel Decks: Elspeth vs. Kiora|64|L||Basic Land - Forest|||({T}: Add {G} to your mana pool.)| Forest|Duel Decks: Elspeth vs. Kiora|65|L||Basic Land - Forest|||({T}: Add {G} to your mana pool.)| -Wasteland|Magic Player Rewards|1|Special||Land|||{T}: Add {1} to your mana pool.${T}, Sacrifice Wasteland: Destroy target nonbasic land.| +Wasteland|Magic Player Rewards|1|Special||Land|||{T}: Add {C} to your mana pool.${T}, Sacrifice Wasteland: Destroy target nonbasic land.| Voidmage Prodigy|Magic Player Rewards|2|Special|{U}{U}|Creature - Human Wizard|2|1|{U}{U}, Sacrifice a Wizard: Counter target spell.$Morph {U} (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)| Powder Keg|Magic Player Rewards|3|Special|{2}|Artifact|||At the beginning of your upkeep, you may put a fuse counter on Powder Keg.${T}, Sacrifice Powder Keg: Destroy each artifact and creature with converted mana cost equal to the number of fuse counters on Powder Keg.| Psychatog|Magic Player Rewards|4|Special|{1}{U}{B}|Creature - Atog|1|2|Discard a card: Psychatog gets +1/+1 until end of turn.$Exile two cards from your graveyard: Psychatog gets +1/+1 until end of turn.| @@ -27027,21 +27027,21 @@ Skyshaper|Tempest Remastered|231|C|{2}|Artifact|||Sacrifice Skyshaper: Creatures Telethopter|Tempest Remastered|232|C|{4}|Artifact Creature - Thopter|3|1|Tap an untapped creature you control: Telethopter gains flying until end of turn.| Thopter Squadron|Tempest Remastered|233|R|{5}|Artifact Creature - Thopter|0|0|Flying$Thopter Squadron enters the battlefield with three +1/+1 counters on it.${1}, Remove a +1/+1 counter from Thopter Squadron: Put a +1/+1 colorless Thopter artifact creature token with flying onto the battlefield. Activate this ability only any time you could cast a sorcery.${1}, Sacrifice another Thopter: Put a +1/+1 counter on Thopter Squardon. Activate this ability only any time you could cast a sorcery.| Volrath's Laboratory|Tempest Remastered|234|R|{5}|Artifact|||As Volrath's Laboratory enters the battlefield, choose a color and a creature type.${5}, {T}: Put a 2/2 creature token of the chosen color and type onto the battlefield.| -Caldera Lake|Tempest Remastered|235|U||Land|||Caldera Lake enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you.| -Cinder Marsh|Tempest Remastered|236|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step.| -City of Traitors|Tempest Remastered|237|R||Land|||When you play another land, sacrifice City of Traitors.${T}: Add {2} to your mana pool.| -Maze of Shadows|Tempest Remastered|238|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Untap target attacking creature with shadow. Prevent all combat damage that would be dealt to and dealt by that creature this turn.| -Mogg Hollows|Tempest Remastered|239|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step.| -Pine Barrens|Tempest Remastered|240|U||Land|||Pine Barrens enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you.| -Rootwater Depths|Tempest Remastered|241|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Rootwater Depths doesn't untap during your next untap step.| -Salt Flats|Tempest Remastered|242|U||Land|||Salt Flats enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you.| -Scabland|Tempest Remastered|243|U||Land|||Scabland enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you.| -Skyshroud Forest|Tempest Remastered|244|U||Land|||Skyshroud Forest enters the battlefield tapped.${tap}: Add {1} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you.| -Stalking Stones|Tempest Remastered|245|U||Land|||{tap}: Add {1} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land.| -Thalakos Lowlands|Tempest Remastered|246|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step.| -Vec Townships|Tempest Remastered|247|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step.| -Volrath's Stronghold|Tempest Remastered|248|M||Legendary Land|||{T}: Add {1} to your mana pool.${1}{B}, {T}: Put target creature card from your graveyard on top of your library.| -Wasteland|Tempest Remastered|249|R||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Wasteland: Destroy target nonbasic land.| +Caldera Lake|Tempest Remastered|235|U||Land|||Caldera Lake enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {U} or {R} to your mana pool. Caldera Lake deals 1 damage to you.| +Cinder Marsh|Tempest Remastered|236|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {R} to your mana pool. Cinder Marsh doesn't untap during your next untap step.| +City of Traitors|Tempest Remastered|237|R||Land|||When you play another land, sacrifice City of Traitors.${T}: Add {C}{C} to your mana pool.| +Maze of Shadows|Tempest Remastered|238|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Untap target attacking creature with shadow. Prevent all combat damage that would be dealt to and dealt by that creature this turn.| +Mogg Hollows|Tempest Remastered|239|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {R} or {G} to your mana pool. Mogg Hollows doesn't untap during your next untap step.| +Pine Barrens|Tempest Remastered|240|U||Land|||Pine Barrens enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Pine Barrens deals 1 damage to you.| +Rootwater Depths|Tempest Remastered|241|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {U} or {B} to your mana pool. Rootwater Depths doesn't untap during your next untap step.| +Salt Flats|Tempest Remastered|242|U||Land|||Salt Flats enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Salt Flats deals 1 damage to you.| +Scabland|Tempest Remastered|243|U||Land|||Scabland enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {R} or {W} to your mana pool. Scabland deals 1 damage to you.| +Skyshroud Forest|Tempest Remastered|244|U||Land|||Skyshroud Forest enters the battlefield tapped.${tap}: Add {C} to your mana pool.${tap}: Add {G} or {U} to your mana pool. Skyshroud Forest deals 1 damage to you.| +Stalking Stones|Tempest Remastered|245|U||Land|||{tap}: Add {C} to your mana pool.${6}: Stalking Stones becomes a 3/3 Elemental artifact creature that's still a land.| +Thalakos Lowlands|Tempest Remastered|246|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {U} to your mana pool. Thalakos Lowlands doesn't untap during your next untap step.| +Vec Townships|Tempest Remastered|247|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {G} or {W} to your mana pool. Vec Townships doesn't untap during your next untap step.| +Volrath's Stronghold|Tempest Remastered|248|M||Legendary Land|||{T}: Add {C} to your mana pool.${1}{B}, {T}: Put target creature card from your graveyard on top of your library.| +Wasteland|Tempest Remastered|249|R||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Wasteland: Destroy target nonbasic land.| Plains|Tempest Remastered|250|L||Basic Land - Plains|||W| Plains|Tempest Remastered|251|L||Basic Land - Plains|||W| Plains|Tempest Remastered|252|L||Basic Land - Plains|||W| @@ -27095,7 +27095,7 @@ Hymn to Tourach|From the Vault: Twenty|3|M|{B}{B}|Sorcery|||Target player discar Fyndhorn Elves|From the Vault: Twenty|4|M|{G}|Creature - Elf Druid|1|1|{T}: Add {G} to your mana pool.| Impulse|From the Vault: Twenty|5|M|{1}{U}|Instant|||Look at the top four cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.| Wall of Blossoms|From the Vault: Twenty|6|M|{1}{G}|Creature - Plant Wall|0|4|Defender$When Wall of Blossoms enters the battlefield, draw a card.| -Thran Dynamo|From the Vault: Twenty|7|M|{4}Artifact|||{T}: Add {3} to your mana pool.| +Thran Dynamo|From the Vault: Twenty|7|M|{4}Artifact|||{T}: Add {C}{C}{C} to your mana pool.| Tangle Wire|From the Vault: Twenty|8|M|{3}|Artifact|||Fading 4 (This artifact enters the battlefield with four fade counters on it. At the beginning of your upkeep, remove a fade counter from it. If you can't, sacrifice it.)$At the beginning of each player's upkeep, that player taps an untapped artifact, creature, or land he or she controls for each fade counter on Tangle Wire.| Fact or Fiction|From the Vault: Twenty|9|M|{3}{U}|Instant||| Reveal the top five cards of your library. An opponent separates those cards into two piles. Put one pile into your hand and the other into your graveyard.| Chainer's Edict|From the Vault: Twenty|10|M|{1}{B}|Sorcery|||Target player sacrifices a creature.$Flashback {5}{B}{B} (You may cast this card from your graveyard for its flashback cost. Then exile it.)| @@ -27108,19 +27108,19 @@ Chameleon Colossus|From the Vault: Twenty|16|M|{2}{G}{G}|Creature - Shapeshifter Cruel Ultimatum|From the Vault: Twenty|17|M|{U}{U}{B}{B}{B}{R}{R}|Sorcery|||Target opponent sacrifices a creature, discards three cards, then loses 5 life. You return a creature card from your graveyard to your hand, draw three cards, then gain 5 life.| Jace, the Mind Sculptor|From the Vault: Twenty|18|M|{2}{U}{U}|Planeswalker - Jace|||+2: Look at the top card of target player's library. You may put that card on the bottom of that player's library.$0: Draw three cards, then put two cards from your hand on top of your library in any order.$-1: Return target creature to its owner's hand.$-12: Exile all cards from target player's library, then that player shuffles his or her hand into his or her library.| Green Sun's Zenith|From the Vault: Twenty|19|M|{X}{G}|Sorcery|||Search your library for a green creature card with converted mana cost X or less, put it onto the battlefield, then shuffle your library. Shuffle Green Sun's Zenith into its owner's library.| -Kessig Wolf Run|From the Vault: Twenty|20|M||Land|||{T}: Add {1} to your mana pool.${X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn.| -Ancient Tomb|From the Vault: Realms|1|M||Land|||{T}: Add {2} to your mana pool. Ancient Tomb deals 2 damage to you.| -Boseiju, Who Shelters All|From the Vault: Realms|2|M||Legendary Land|||Boseiju, Who Shelters All enters the battlefield tapped.${T}, Pay 2 life: Add {1} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities.| +Kessig Wolf Run|From the Vault: Twenty|20|M||Land|||{T}: Add {C} to your mana pool.${X}{R}{G}, {T}: Target creature gets +X/+0 and gains trample until end of turn.| +Ancient Tomb|From the Vault: Realms|1|M||Land|||{T}: Add {C}{C} to your mana pool. Ancient Tomb deals 2 damage to you.| +Boseiju, Who Shelters All|From the Vault: Realms|2|M||Legendary Land|||Boseiju, Who Shelters All enters the battlefield tapped.${T}, Pay 2 life: Add {C} to your mana pool. If that mana is spent on an instant or sorcery spell, that spell can't be countered by spells or abilities.| Cephalid Coliseum|From the Vault: Realms|3|M||Land|||{T}: Add {U} to your mana pool. Cephalid Coliseum deals 1 damage to you.$Threshold � {U}, {T}, Sacrifice Cephalid Coliseum: Target player draws three cards, then discards three cards. Activate this ability only if seven or more cards are in your graveyard.| -Desert|From the Vault: Realms|4|M||Land - Desert|||{T}: Add {1} to your mana pool.${T}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| +Desert|From the Vault: Realms|4|M||Land - Desert|||{T}: Add {C} to your mana pool.${T}: Desert deals 1 damage to target attacking creature. Activate this ability only during the end of combat step.| Dryad Arbor|From the Vault: Realms|5|M||Land Creature - Forest Dryad|||(Dryad Arbor isn't a spell, it's affected by summoning sickness, and it has "{T}: Add {G} to your mana pool.")| Forbidden Orchard|From the Vault: Realms|6|M||Land|||{T}: Add one mana of any color to your mana pool.$Whenever you tap Forbidden Orchard for mana, target opponent puts a 1/1 colorless Spirit creature token onto the battlefield.| Glacial Chasm|From the Vault: Realms|7|M||Land|||Cumulative upkeep�Pay 2 life. (At the beginning of your upkeep, put an age counter on this permanent, then sacrifice it unless you pay its upkeep cost for each age counter on it.)$When Glacial Chasm enters the battlefield, sacrifice a land.$Creatures you control can't attack.$Prevent all damage that would be dealt to you.| -Grove of the Burnwillows|From the Vault: Realms|8|M|Land|||{T}: Add {1} to your mana pool.${T}: Add {R} or {G} to your mana pool. Each opponent gains 1 life.| -High Market|From the Vault: Realms|9|M||Land|||{T}: Add {1} to your mana pool.${T}, Sacrifice a creature: You gain 1 life.| +Grove of the Burnwillows|From the Vault: Realms|8|M|Land|||{T}: Add {C} to your mana pool.${T}: Add {R} or {G} to your mana pool. Each opponent gains 1 life.| +High Market|From the Vault: Realms|9|M||Land|||{T}: Add {C} to your mana pool.${T}, Sacrifice a creature: You gain 1 life.| Maze of Ith|From the Vault: Realms|10|M||Land|||{T}: Untap target attacking creature. Prevent all combat damage that would be dealt to and dealt by that creature this turn.| Murmuring Bosk|From the Vault: Realms|11|M||Land - Forest|||({T}: Add {G} to your mana pool.)$As Murmuring Bosk enters the battlefield, you may reveal a Treefolk card from your hand. If you don't, Murmuring Bosk enters the battlefield tapped.${T}: Add {W} or {B} to your mana pool. Murmuring Bosk deals 1 damage to you.| -Shivan Gorge|From the Vault: Realms|12|M||Legendary Land|||{T}: Add {1} to your mana pool.${2}{R}, {T}: Shivan Gorge deals 1 damage to each opponent.| +Shivan Gorge|From the Vault: Realms|12|M||Legendary Land|||{T}: Add {C} to your mana pool.${2}{R}, {T}: Shivan Gorge deals 1 damage to each opponent.| Urborg, Tomb of Yawgmoth|From the Vault: Realms|13|M||Legendary Land|||Each land is a Swamp in addition to its other land types.| Vesuva|From the Vault: Realms|14|M||Land|||You may have Vesuva enter the battlefield tapped as a copy of any land on the battlefield.| Windbrisk Heights|From the Vault: Realms|15|M||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${T}: Add {W} to your mana pool.${W}, {T}: You may play the exiled card without paying its mana cost if you attacked with three or more creatures this turn.| @@ -27150,13 +27150,13 @@ Memory Jar|From the Vault: Relics|8|M|{5}|Artifact|||{T}, Sacrifice Memory Jar: Mirari|From the Vault: Relics|9|M|{5}|Legendary Artifact|||Whenever you cast an instant or sorcery spell, you may pay {3}. If you do, copy that spell. You may choose new targets for the copy.| Mox Diamond|From the Vault: Relics|10|M|{0}|Artifact|||If Mox Diamond would enter the battlefield, you may discard a land card instead. If you do, put Mox Diamond onto the battlefield. If you don't, put it into its owner's graveyard.${T}: Add one mana of any color to your mana pool.| Nevinyrral's Disk|From the Vault: Relics|11|M|{4}|Artifact|||Nevinyrral's Disk enters the battlefield tapped.${1}, {T}: Destroy all artifacts, creatures, and enchantments.| -Sol Ring|From the Vault: Relics|12|M|{1}|Artifact|||{T}: Add {2} to your mana pool.| +Sol Ring|From the Vault: Relics|12|M|{1}|Artifact|||{T}: Add {C}{C} to your mana pool.| Sundering Titan|From the Vault: Relics|13|M|{8}|Artifact Creature - Golem|7|10|When Sundering Titan enters the battlefield or leaves the battlefield, choose a land of each basic land type, then destroy those lands. Sword of Body and Mind|From the Vault: Relics|14|M|{3}|Artifact - Equipment|||Equipped creature gets +2/+2 and has protection from green and from blue.$Whenever equipped creature deals combat damage to a player, you put a 2/2 green Wolf creature token onto the battlefield and that player puts the top ten cards of his or her library into his or her graveyard.$Equip {2}| Zuran Orb|From the Vault: Relics|15|M|{0}|Artifact|||Sacrifice a land: You gain 2 life.| Balance|From the Vault: Exiled|1|M|{1}{W}|Sorcery|||Each player chooses a number of lands he or she controls equal to the number of lands controlled by the player who controls the fewest, then sacrifices the rest. Players discard cards and sacrifice creatures the same way.| Berserk|From the Vault: Exiled|2|M|{G}|Instant|||Cast Berserk only before the combat damage step.$Target creature gains trample and gets +X/+0 until end of turn, where X is its power. At the beginning of the next end step, destroy that creature if it attacked this turn.| -Channel|From the Vault: Exiled|3|M|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {1} to your mana pool.| +Channel|From the Vault: Exiled|3|M|{G}{G}|Sorcery|||Until end of turn, any time you could activate a mana ability, you may pay 1 life. If you do, add {C} to your mana pool.| Gifts Ungiven|From the Vault: Exiled|4|M|{3}{U}|Instant|||Search your library for up to four cards with different names and reveal them. Target opponent chooses two of those cards. Put the chosen cards into your graveyard and the rest into your hand. Then shuffle your library.| Goblin Lackey|From the Vault: Exiled|5|M|{R}|Creature - Goblin|1|1|Whenever Goblin Lackey deals damage to a player, you may put a Goblin permanent card from your hand onto the battlefield.| Kird Ape|From the Vault: Exiled|6|M|{R}|Creature - Ape|1|1|Kird Ape gets +1/+2 as long as you control a Forest.| @@ -27166,7 +27166,7 @@ Necropotence|From the Vault: Exiled|9|M|{B}{B}{B}|Enchantment|||Skip your draw s Sensei's Diving Top|From the Vault: Exiled|10|M|{1}|Artifact|||{1}: Look at the top three cards of your library, then put them back in any order.${T}: Draw a card, then put Sensei's Divining Top on top of its owner's library.| Serendib Efreet|From the Vault: Exiled|11|M|{2}{U}|Creature - Efreet|3|4|Flying$At the beginning of your upkeep, Serendib Efreet deals 1 damage to you.| Skullclamp|From the Vault: Exiled|12|M|{1}|Artifact - Equipment|||Equipped creature gets +1/-1.$Whenever equipped creature dies, draw two cards.$Equip {1}| -Strip Mine|From the Vault: Exiled|13|M||Land|||{T}: Add {1} to your mana pool.${T}, Sacrifice Strip Mine: Destroy target land.| +Strip Mine|From the Vault: Exiled|13|M||Land|||{T}: Add {C} to your mana pool.${T}, Sacrifice Strip Mine: Destroy target land.| Tinker|From the Vault: Exiled|14|M|{2}{U}|Sorcery|||As an additional cost to cast Tinker, sacrifice an artifact.$Search your library for an artifact card and put that card onto the battlefield. Then shuffle your library.| Trinisphere|From the Vault: Exiled|15|M|{3}|Artifact|||As long as Trinisphere is untapped, each spell that would cost less than three mana to cast costs three mana to cast. (Additional mana in the cost may be paid with any color of mana or colorless mana. For example, a spell that would cost {1}{B} to cast costs {2}{B} to cast instead.)| Bladewing the Risen|From the Vault: Dragons|1|R|{3}{B}{B}{R}{R}|Legendary Creature - Zombie Dragon|4|4|Flying$When Bladewing the Risen enters the battlefield, you may return target Dragon permanent card from your graveyard to the battlefield.${B}{R}: Dragon creatures get +1/+1 until end of turn.| @@ -27207,7 +27207,7 @@ Buried Alive|Premium Deck Series: Graveborn|20|U|{2}{B}|Sorcery|||Search your li Last Rites|Premium Deck Series: Graveborn|21|C|{2}{B}|Sorcery|||Discard any number of cards. Target player reveals his or her hand, then you choose a nonland card from it for each card discarded this way. That player discards those cards.| Diabolic Servitude|Premium Deck Series: Graveborn|22|U|{3}{B}|Enchantment|||When Diabolic Servitude enters the battlefield, return target creature card from your graveyard to the battlefield.$When the creature put onto the battlefield with Diabolic Servitude dies, exile it and return Diabolic Servitude to its owner's hand.$When Diabolic Servitude leaves the battlefield, exile the creature put onto the battlefield with Diabolic Servitude.| Dread Return|Premium Deck Series: Graveborn|23|U|{2}{B}{B}|Sorcery|||Return target creature card from your graveyard to the battlefield.$Flashback�Sacrifice three creatures. (You may cast this card from your graveyard for its flashback cost. Then exile it.)| -Crystal Vein|Premium Deck Series: Graveborn|24|U||Land|||{T}: Add {1} to your mana pool.${T}, Sacrifice Crystal Vein: Add {2} to your mana pool.| +Crystal Vein|Premium Deck Series: Graveborn|24|U||Land|||{T}: Add {C} to your mana pool.${T}, Sacrifice Crystal Vein: Add {C}{C} to your mana pool.| Ebon Stronghold|Premium Deck Series: Graveborn|25|U||Land|||Ebon Stronghold enters the battlefield tapped.${T}: Add {B} to your mana pool.${T}, Sacrifice Ebon Stronghold: Add {B}{B} to your mana pool.| Polluted Mire|Premium Deck Series: Graveborn|26|C||Land|||Polluted Mire enters the battlefield tapped.${T}: Add {B} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Swamp|Premium Deck Series: Graveborn|27|L||Basic Land - Swamp|||B| @@ -27353,25 +27353,25 @@ Bloodthrone Vampire|Duel Decks: Zendikar vs. Eldrazi|46|C|{1}{B}|Creature - Vamp Butcher of Malakir|Duel Decks: Zendikar vs. Eldrazi|47|R|{5}{B}{B}|Creature - Vampire Warrior|5|4|Flying$Whenever Butcher of Malakir or another creature you control dies, each opponent sacrifices a creature.| Cadaver Imp|Duel Decks: Zendikar vs. Eldrazi|48|C|{1}{B}{B}|Creature - Imp|1|1|Flying$When Cadaver Imp enters the battlefield, you may return target creature card from your graveyard to your hand.| Consume the Meek|Duel Decks: Zendikar vs. Eldrazi|49|R|{3}{B}{B}|Instant|||Destroy each creature with converted mana cost 3 or less. They can't be regenerated.| -Corpsehatch|Duel Decks: Zendikar vs. Eldrazi|50|U|{3}{B}{B}|Sorcery|||Destroy target nonblack creature. Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Corpsehatch|Duel Decks: Zendikar vs. Eldrazi|50|U|{3}{B}{B}|Sorcery|||Destroy target nonblack creature. Put two 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Dominator Drone|Duel Decks: Zendikar vs. Eldrazi|51|C|{2}{B}|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.)$When Dominator Drone enters the battlefield, if you control another colorless creature, each opponent loses 2 life.| Heartstabber Mosquito|Duel Decks: Zendikar vs. Eldrazi|52|C|{3}{B}|Creature - Insect|2|2|Kicker {2}{B} (You may pay an additional {2}{B} as you cast this spell.)$Flying$When Heartstabber Mosquito enters the battlefield, if it was kicked, destroy target creature.| Induce Despair|Duel Decks: Zendikar vs. Eldrazi|53|C|{2}{B}|Instant|||As an additional cost to cast Induce Despair, reveal a creature card from your hand.$Target creature gets -X/-X until end of turn, where X is the revealed card's converted mana cost.| Marsh Casualties|Duel Decks: Zendikar vs. Eldrazi|54|U|{B}{B}|Sorcery|||Kicker {3} (You may pay an additional {3} as you cast this spell.)$Creatures target player controls get -1/-1 until end of turn. If Marsh Casualties was kicked, those creatures get -2/-2 until end of turn instead.| -Pawn of Ulamog|Duel Decks: Zendikar vs. Eldrazi|55|U|{1}{B}{B}|Creature - Vampire Shaman|2|2|Whenever Pawn of Ulamog or another nontoken creature you control dies, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| +Pawn of Ulamog|Duel Decks: Zendikar vs. Eldrazi|55|U|{1}{B}{B}|Creature - Vampire Shaman|2|2|Whenever Pawn of Ulamog or another nontoken creature you control dies, you may put a 0/1 colorless Eldrazi Spawn creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| Read the Bones|Duel Decks: Zendikar vs. Eldrazi|56|C|{2}{B}|Sorcery|||Scry 2, then draw 2 cards. You lose 2 life. (To scry 2, look at the top 2 cards of your library, then put any number of them on the bottom of your library and the rest on top in any order.)| Smother|Duel Decks: Zendikar vs. Eldrazi|57|U|{1}{B}|Instant|||Destroy target creature with converted mana cost 3 or less. It can't be regenerated.| Vampire Nighthawk|Duel Decks: Zendikar vs. Eldrazi|58|U|{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.)| -Emrakul's Hatcher|Duel Decks: Zendikar vs. Eldrazi|59|C|{4}{R}|Creature - Eldrazi Drone|3|3|When Emrakul's Hatcher enters the battlefield, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Emrakul's Hatcher|Duel Decks: Zendikar vs. Eldrazi|59|C|{4}{R}|Creature - Eldrazi Drone|3|3|When Emrakul's Hatcher enters the battlefield, put three 0/1 colorless Eldrazi Spawn creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Forked Bolt|Duel Decks: Zendikar vs. Eldrazi|60|U|{R}|Sorcery|||Forked Bolt deals 2 damage divided as you choose among one or two target creatures and/or players.| Hellion Eruption|Duel Decks: Zendikar vs. Eldrazi|61|R|{5}{R}|Sorcery|||Sacrifice all creatures you control, then put that many 4/4 red Hellion creature tokens onto the battlefield.| Magmaw|Duel Decks: Zendikar vs. Eldrazi|62|R|{3}{R}{R}|Creature - Elemental|4|4|{1}, Sacrifice a nonland permanent: Magmaw deals 1 damage to target creature or player.| Torch Slinger|Duel Decks: Zendikar vs. Eldrazi|63|C|{2}{R}|Creature - Goblin Shaman|2|2|Kicker {1}{R} (You may pay an additional {1}{R} as you cast this spell.)$When Torch Slinger enters the battlefield, if it was kicked, it deals 2 damage to target creature.| Forerunner of Slaughter|Duel Decks: Zendikar vs. Eldrazi|64|U|{B}{R}|Creature - Eldrazi Drone|3|2|Devoid (This card has no color.)${1}: Target colorless creature gains haste until end of turn.| -Mind Stone|Duel Decks: Zendikar vs. Eldrazi|65|U|{2}|Artifact|||{tap}: Add {1} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| +Mind Stone|Duel Decks: Zendikar vs. Eldrazi|65|U|{2}|Artifact|||{tap}: Add {C} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| Runed Servitor|Duel Decks: Zendikar vs. Eldrazi|66|U|{2}|Artifact Creature - Construct|2|2|When Runed Servitor dies, each player draws a card.| Akoum Refuge|Duel Decks: Zendikar vs. Eldrazi|67|U||Land|||Akoum Refuge enters the battlefield tapped.$When Akoum Refuge enters the battlefield, you gain 1 life.${tap}: Add {B} or {R} to your mana pool.| -Eldrazi Temple|Duel Decks: Zendikar vs. Eldrazi|68|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {2} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi.| +Eldrazi Temple|Duel Decks: Zendikar vs. Eldrazi|68|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {C}{C} to your mana pool. Spend this mana only to cast colorless Eldrazi spells or activate abilities of colorless Eldrazi.| Rocky Tar Pit|Duel Decks: Zendikar vs. Eldrazi|69|U||Land|||Rocky Tar Pit enters the battlefield tapped.${tap}, Sacrifice Rocky Tar Pit: Search your library for a Swamp or Mountain card and put it onto the battlefield. Then shuffle your library.| Swamp|Duel Decks: Zendikar vs. Eldrazi|70|L||Basic Land - Swamp|||B| Swamp|Duel Decks: Zendikar vs. Eldrazi|71|L||Basic Land - Swamp|||B| @@ -27379,8 +27379,8 @@ Swamp|Duel Decks: Zendikar vs. Eldrazi|72|L||Basic Land - Swamp|||B| Mountain|Duel Decks: Zendikar vs. Eldrazi|73|L||Basic Land - Mountain|||M| Mountain|Duel Decks: Zendikar vs. Eldrazi|74|L||Basic Land - Mountain|||M| Mountain|Duel Decks: Zendikar vs. Eldrazi|75|L||Basic Land - Mountain|||M| -Blight Herder|Battle for Zendikar|002|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 {1} to your mana pool."| -Kozilek's Channeler|Battle for Zendikar|010|C|{5}|Creature - Eldrazi|4|4|{T}: Add {2} to your mana pool.| +Blight Herder|Battle for Zendikar|002|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."| +Kozilek's Channeler|Battle for Zendikar|010|C|{5}|Creature - Eldrazi|4|4|{T}: Add {C}{C} to your mana pool.| Eldrazi Devastator|Battle for Zendikar|007|C|{8}|Creature - Eldrazi|8|9|Trample| Titan's Presence|Battle for Zendikar|014|U|{3}|Instant|||As an additional cost to cast Titan's Presence, reveal a colorless creature card from your hand.$Exile target creature if its power is less than or equal to the revealed card's power.| Ulamog, the Ceaseless Hunger|Battle for Zendikar|015|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.| @@ -27432,7 +27432,7 @@ Stasis Snare|Battle for Zendikar|50|U|{1}{W}{W}|Enchantment|||Flash$When Stasis 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.| -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 {1} to your mana pool."| +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.| @@ -27443,13 +27443,13 @@ Coralhelm Guide|Battle for Zendikar|74|C|{1}{U}|Creature - Merfolk Scout Ally|2| 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 {1} 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 {1} to your mana pool."| +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. | 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 {1} to your mana pool."| +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.| @@ -27471,7 +27471,7 @@ Windrider Patrol|Battle for Zendikar|089|U|{3}{U}{U}|Creature - Merfolk Wizard|4 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.| Bone Splinters|Battle for Zendikar|105|C|{B}|Sorcery|||As an additional cost to cast Bone Splinters, sacrifice a creature.$Destroy target creature.| -Carrier Thrall|Battle for Zendikar|106|U|{1}{B}|Creature - Vampire|2|1|When Carrier Thrall dies, put a 1/1 colorless Eldrazi Scion token onto the battlefield. It has "Sacrifice this creature. Add {1} to your mana pool."| +Carrier Thrall|Battle for Zendikar|106|U|{1}{B}|Creature - Vampire|2|1|When Carrier Thrall dies, put a 1/1 colorless Eldrazi Scion token onto the battlefield. It has "Sacrifice this creature. Add {C} to your mana pool."| Complete Disregard|Battle for Zendikar|90|C|{2}{B}|Instant|||Devoid (This card has no color.)$Exile target creature with power 3 or less.| Culling Drone|Battle for Zendikar|91|C|{1}{B}|Creature - Eldrazi Drone|2|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.)| Defiant Bloodlord|Battle for Zendikar|107|R|{5}{B}{B}|Creature - Vampire|4|5|Flying$Whenever you gain life, target opponent loses that much life.| @@ -27480,7 +27480,7 @@ Dominator Drone|Battle for Zendikar|92|C|{2}{B}|Creature - Eldrazi Drone|3|2|Dev Drana, Liberator of Malakir|Battle for Zendikar|109|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.| Dutiful Return|Battle for Zendikar|110|C|{3}{B}|Sorcery|||Return up to two target creature cards from your graveyard to your hand.| 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 {1} to your mana pool."$Draw a card.| +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.| 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.| @@ -27542,13 +27542,13 @@ Vile Aggregate|Battle for Zendikar|137|U|{2}{R}|Creature - Eldrazi Drone|0|5|Dev Volcanic Upheaval|Battle for Zendikar|161|C|{3}{R}|Instant|||Destroy target land.| Zada, Hedron Grinder|Battle for Zendikar|162|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.| Beastcaller Savant|Battle for Zendikar|170|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.| -Blisterpod|Battle for Zendikar|163|C|{G}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$When Blisterpod dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {1} to your mana pool."| -Brood Monitor|Battle for Zendikar|164|U|{4}{G}{G}|Creature - Eldrazi Drone|3|3|Devoid (This card has no color.)$When Brood Monitor enters the battlefield, put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Blisterpod|Battle for Zendikar|163|C|{G}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$When Blisterpod dies, put a 1/1 colorless Eldrazi Scion creature token onto the battlefield. It has "Sacrifice this creature: Add {C} to your mana pool."| +Brood Monitor|Battle for Zendikar|164|U|{4}{G}{G}|Creature - Eldrazi Drone|3|3|Devoid (This card has no color.)$When Brood Monitor enters the battlefield, put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Broodhunter Wurm|Battle for Zendikar|171|C|{3}{G}|Creature - Wurm|4|3|| -Call the Scions|Battle for Zendikar|165|C|{2}{G}|Sorcery|||Devoid (This card has no color.)$Put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: add {1} to your mana pool."| +Call the Scions|Battle for Zendikar|165|C|{2}{G}|Sorcery|||Devoid (This card has no color.)$Put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: add {C} to your mana pool."| Earthen Arms|Battle for Zendikar|172|C|{1}{G}|Sorcery|||Put two +1/+1 counters on target permanent.$Awaken 4 - {6}{G} (If you cast this spell for {6}{G}, 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.)| -Eyeless Watcher|Battle for Zendikar|166|C|{3}{G}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$When Eyeless Watcher enters the battlefield, put two 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| -From Beyond|Battle for Zendikar|167|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 {1} 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.| +Eyeless Watcher|Battle for Zendikar|166|C|{3}{G}|Creature - Eldrazi Drone|1|1|Devoid (This card has no color.)$When Eyeless Watcher 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."| +From Beyond|Battle for Zendikar|167|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.| Giant Mantis|Battle for Zendikar|173|C|{3}{G}|Creature - Insect|2|4|Reach (This creature can block creatures with flying.)| Greenwarden of Murasa|Battle for Zendikar|174|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.| Infuse with the Elements|Battle for Zendikar|175|U|{3}{G}|Instant|||Converge - Put X +1/+1 counters on target creature, where X is the number of colors of mana spent to cast Infuse with the Elements. That creature gains trample until end of turn.| @@ -27575,13 +27575,13 @@ Tajuru Warcaller|Battle for Zendikar|195|U|{3}{G}{G}|Creature - Elf Warrior Ally 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.| 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 {1} to your mana pool."| +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.| 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.| -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 {1} to your mana pool."${B}{G}, Sacrifice a creature: Target creature gets -2/-2 until end of turn.| +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.| -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 {1} 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.)| +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.| @@ -27601,17 +27601,17 @@ Skyrider Elf|Battle for Zendikar|220|U|{X}{G}{U}|Creature - Elf Warrior Ally|0|0 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.)| -Hedron Archive|Battle for Zendikar|223|U|{4}|Artifact|||{t}: Add {2} to your mana pool.${2}, {t}, Sacrifice Hedron Archive: Draw two cards.| +Hedron Archive|Battle for Zendikar|223|U|{4}|Artifact|||{t}: Add {C}{C} to your mana pool.${2}, {t}, Sacrifice Hedron Archive: Draw two cards.| Hedron Blade|Battle for Zendikar|224|C|{1}|Artifact - Equipment|||Equipped creature gets +1/+1.$Whenever equipped creature becomes blocked by one or more colorless creatures, it gains deathtouch until end of turn. (Any amount of damage it deals to a creature is enough to destroy it.)$Equip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)| Pathway Arrows|Battle for Zendikar|225|U|{1}|Artifact - Equipment|||Equipped creature has "{2}, {T}: This creature deals 1 damage to target creature. If a colorless creature is dealt damage this way, tap it."$Equip {2}| Pilgrim's Eye|Battle for Zendikar|226|U|{3}|Artifact Creature - Thopter|1|1|Flying$When Pilgrim's Eye enters the battlefield, you may search your library for a basic land card, reveal it, put it into your hand, then shuffle your library.| Slab Hammer|Battle for Zendikar|227|U|{2}|Artifact - Equipment|||Whenever equipped creature attacks, you may return a land you control to its owner's hand. If you do, the creature gets +2/+2 until end of turn.$Equip {2}| -Ally Encampment|Battle for Zendikar|228|R||Land|||{t}: Add {1} 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.| -Blighted Cataract|Battle for Zendikar|229|U||Land|||{T}: Add {1} to your mana pool.${5}{U}, {T}, Sacrifice Blighted Cataract: Draw 2 cards.| -Blighted Fen|Battle for Zendikar|230|U||Land|||{T}: Add {1} to your mana pool.${4}{B}, {T}, Sacrifice Blighted Fen: Target opponent sacrifices a creature.| -Blighted Gorge|Battle for Zendikar|231|U||Land|||{T}: Add {1} to your mana pool.${4}{R}, {T}, Sacrifice Blighted Gorge: Blighted Gorge deals 2 damage to target creature or player.| -Blighted Steppe|Battle for Zendikar|232|U||Land|||{T}: Add {1} to your mana pool.${3}{W}, {T}, Sacrifice Blighted Steppe: You gain 2 life for each creature you control.| -Blighted Woodland|Battle for Zendikar|233|U||Land|||{T}: Add {1} to your mana pool.${3}{G}, {T}, Sacrifice Blighted Woodland: Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library.| +Ally Encampment|Battle for Zendikar|228|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.| +Blighted Cataract|Battle for Zendikar|229|U||Land|||{T}: Add {C} to your mana pool.${5}{U}, {T}, Sacrifice Blighted Cataract: Draw 2 cards.| +Blighted Fen|Battle for Zendikar|230|U||Land|||{T}: Add {C} to your mana pool.${4}{B}, {T}, Sacrifice Blighted Fen: Target opponent sacrifices a creature.| +Blighted Gorge|Battle for Zendikar|231|U||Land|||{T}: Add {C} to your mana pool.${4}{R}, {T}, Sacrifice Blighted Gorge: Blighted Gorge deals 2 damage to target creature or player.| +Blighted Steppe|Battle for Zendikar|232|U||Land|||{T}: Add {C} to your mana pool.${3}{W}, {T}, Sacrifice Blighted Steppe: You gain 2 life for each creature you control.| +Blighted Woodland|Battle for Zendikar|233|U||Land|||{T}: Add {C} to your mana pool.${3}{G}, {T}, Sacrifice Blighted Woodland: Search your library for up to two basic land cards and put them onto the battlefield tapped. Then shuffle your library.| Canopy Vista|Battle for Zendikar|234|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|Battle for Zendikar|235|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.| Evolving Wilds|Battle for Zendikar|236|C||Land|||{T}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| @@ -27640,13 +27640,13 @@ Plains|Battle for Zendikar|253|L||Basic Land - Plains|||({T}: Add {W} to your ma Plains|Battle for Zendikar|254|L||Basic Land - Plains|||({T}: Add {W} to your mana pool.)| Plains|Battle for Zendikar|251|L||Basic Land - Plains|||({T}: Add {W} to your mana pool.)| Prairie Stream|Battle for Zendikar|241|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.| -Sanctum of Ugin|Battle for Zendikar|242|R||Land|||{T}: Add {1} 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.| +Sanctum of Ugin|Battle for Zendikar|242|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.| Sandstone Bridge|Battle for Zendikar|243|C||Land|||Sandstone Bridge enters the battlefield tapped.$When Sandstone Bridge enters the battlefield, target creature gets +1/+1 and gains vigilance until end of turn.${T}: Add {W} to your mana pool.| Shambling Vent|Battle for Zendikar|244|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|Battle for Zendikar|245|R||Land|||{t}: Add {1} to your mana pool.${t}: Add {2} to your mana pool. Spend this mana only to cast colorless spells. Activate this ability only if you control seven or more lands.| +Shrine of the Forsaken Gods|Battle for Zendikar|245|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.| Skyline Cascade|Battle for Zendikar|246|C||Land|||Skyline Cascade enters the battlefield tapped.$When Skyline Cascade enters the battlefield, target creature an opponent controls doesn't untap during its controller's next untap step.${T}: Add {U} to your mana pool.| Smoldering Marsh|Battle for Zendikar|247|R||Land - Swamp Mountain|||({T}: Add {B} or {R} to your mana pool.)$Smoldering Marsh enters the battlefield tapped unless you control two or more basic lands.| -Spawning Bed|Battle for Zendikar|248|U||Land|||{T}: Add {1} to your mana pool.${6}, {T}, Sacrifice Spawning Bed: Put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {1} to your mana pool."| +Spawning Bed|Battle for Zendikar|248|U||Land|||{T}: Add {C} to your mana pool.${6}, {T}, Sacrifice Spawning Bed: Put three 1/1 colorless Eldrazi Scion creature tokens onto the battlefield. They have "Sacrifice this creature: Add {C} to your mana pool."| Sunken Hollow|Battle for Zendikar|249|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.| Swamp|Battle for Zendikar|263|L||Basic Land - Swamp|||({t}: Add {B} to your mana pool.)| Swamp|Battle for Zendikar|262|L||Basic Land - Swamp|||({t}: Add {B} to your mana pool.)| @@ -27814,7 +27814,7 @@ Call the Skybreaker|Commander 2015|240|R|{5}{UR}{UR}|Sorcery|||Put a 5/5 blue an Cold-Eyed Selkie|Commander 2015|241|R|{1}{GU}{GU}|Creature - Merfolk Rogue|1|1|Islandwalk (This creature can't be blocked as long as defending player controls an Island.)$Whenever Cold-Eyed Selkie deals combat damage to a player, you may draw that many cards.| Snakeform|Commander 2015|242|C|{2}{GU}|Instant|||Until end of turn, target creature loses all abilities and becomes a green Snake with base power and toughness 1/1.$Draw a card.| Wistful Selkie|Commander 2015|243|U|{GU}{GU}{GU}|Creature - Merfolk Wizard|2|2|When Wistful Selkie enters the battlefield, draw a card.| -Basalt Monolith|Commander 2015|244|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {3} to your mana pool.${3}: Untap Basalt Monolith.| +Basalt Monolith|Commander 2015|244|U|{3}|Artifact|||Basalt Monolith doesn't untap during your untap step.${tap}: Add {C}{C}{C} to your mana pool.${3}: Untap Basalt Monolith.| Bonehoard|Commander 2015|245|R|{4}|Artifact - Equipment|||Living weapon (When this Equipment enters the battlefield, put a 0/0 black Germ creature token onto the battlefield, then attach this to it.)$Equipped creature gets +X/+X, where X is the number of creature cards in all graveyards.$Equip {2}| Boros Cluestone|Commander 2015|246|C|{3}|Artifact|||{tap}: Add {R} or {W} to your mana pool.${R}{W}, {tap}, Sacrifice Boros Cluestone: Draw a card.| Boros Signet|Commander 2015|247|C|{2}|Artifact|||{1}, {tap}: Add {R}{W} to your mana pool.| @@ -27823,14 +27823,14 @@ Coldsteel Heart|Commander 2015|249|U|{2}|Snow Artifact|||Coldsteel Heart enters Dream Pillager|Commander 2015|25|R|{5}{R}{R}|Creature - Dragon|4|4|Flying$Whenever Dream Pillager deals combat damage to a player, exile that many cards from the top of your library. Until end of turn, you may cast nonland cards exiled this way.| Crystal Chimes|Commander 2015|250|U|{3}|Artifact|||{3}, {tap}, Sacrifice Crystal Chimes: Return all enchantment cards from your graveyard to your hand.| Darksteel Ingot|Commander 2015|251|U|{3}|Artifact|||Indestructible${tap}: Add one mana of any color to your mana pool.| -Dreamstone Hedron|Commander 2015|252|U|{6}|Artifact|||{tap}: Add {3} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| +Dreamstone Hedron|Commander 2015|252|U|{6}|Artifact|||{tap}: Add {C}{C}{C} to your mana pool.${3}, {tap}, Sacrifice Dreamstone Hedron: Draw three cards.| Eldrazi Monument|Commander 2015|253|M|{5}|Artifact|||Creatures you control get +1/+1 and have flying and indestructible.$At the beginning of your upkeep, sacrifice a creature. If you can't, sacrifice Eldrazi Monument.| Fellwar Stone|Commander 2015|254|U|{2}|Artifact|||{tap}: Add to your mana pool one mana of any color that a land an opponent controls could produce.| Golgari Signet|Commander 2015|255|C|{2}|Artifact|||{1}, {tap}: Add {B}{G} to your mana pool.| Izzet Signet|Commander 2015|256|C|{2}|Artifact|||{1}, {tap}: Add {U}{R} to your mana pool.| 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 {1} to your mana pool.${1}, {tap}, Sacrifice Mind Stone: Draw a card.| +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.| 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.| @@ -27840,7 +27840,7 @@ Seer's Sundial|Commander 2015|264|R|{4}|Artifact|||Landfall - Whenever a land en Simic Keyrune|Commander 2015|265|U|{3}|Artifact|||{tap}: Add {G} or {U} to your mana pool.${G}{U}: Simic Keyrune becomes a 2/3 green and blue Crab artifact creature with hexproof until end of turn. (It can't be the target of spells or abilities your opponents control.)| Simic Signet|Commander 2015|266|C|{2}|Artifact|||{1}, {tap}: Add {G}{U} to your mana pool.| Skullclamp|Commander 2015|267|U|{1}|Artifact - Equipment|||Equipped creature gets +1/-1.$Whenever equipped creature dies, draw two cards.$Equip {1}| -Sol Ring|Commander 2015|268|U|{1}|Artifact|||{tap}: Add {2} to your mana pool.| +Sol Ring|Commander 2015|268|U|{1}|Artifact|||{tap}: Add {C}{C} to your mana pool.| Solemn Simulacrum|Commander 2015|269|R|{4}|Artifact Creature - Golem|2|2|When Solemn Simulacrum enters the battlefield, you may search your library for a basic land card, put that card onto the battlefield tapped, then shuffle your library.$When Solemn Simulacrum dies, you may draw a card.| Magus of the Wheel|Commander 2015|27|R|{2}{R}|Creature - Human Wizard|3|3|{1}{R}, {tap}, Sacrifice Magus of the Wheel: Each player discards his or her hand, then draws seven cards.| Staff of Nin|Commander 2015|270|R|{6}|Artifact|||At the beginning of your upkeep, draw a card.${tap}: Staff of Nin deals 1 damage to target creature or player.| @@ -27848,10 +27848,10 @@ Swiftfoot Boots|Commander 2015|271|U|{2}|Artifact - Equipment|||Equipped creatur Sword of Vengeance|Commander 2015|272|R|{3}|Artifact - Equipment|||Equipped creature gets +2/+0 and has first strike, vigilance, trample, and haste.$Equip {3}| Urza's Incubator|Commander 2015|273|R|{3}|Artifact|||As Urza's Incubator enters the battlefield, choose a creature type.$Creature spells of the chosen type cost {2} less to cast.| Wayfarer's Bauble|Commander 2015|274|C|{1}|Artifact|||{2}, {tap}, Sacrifice Wayfarer's Bauble: Search your library for a basic land card and put that card onto the battlefield tapped. Then shuffle your library.| -Worn Powerstone|Commander 2015|275|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {2} to your mana pool.| +Worn Powerstone|Commander 2015|275|U|{3}|Artifact|||Worn Powerstone enters the battlefield tapped.${tap}: Add {C}{C} to your mana pool.| Ancient Amphitheater|Commander 2015|276|R||Land|||As Ancient Amphitheater enters the battlefield, you may reveal a Giant card from your hand. If you don't, Ancient Amphitheater enters the battlefield tapped.${tap}: Add {R} or {W} to your mana pool.| Barren Moor|Commander 2015|277|C||Land|||Barren Moor enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {B} ({B}, Discard this card: Draw a card.)| -Blasted Landscape|Commander 2015|278|U||Land|||{tap}: Add {1} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| +Blasted Landscape|Commander 2015|278|U||Land|||{tap}: Add {C} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Boros Garrison|Commander 2015|279|C||Land|||Boros Garrison enters the battlefield tapped.$When Boros Garrison enters the battlefield, return a land you control to its owner's hand.${tap}: Add {R}{W} to your mana pool.| Meteor Blast|Commander 2015|28|U|{X}{R}{R}{R}|Sorcery|||Meteor Blast deals 4 damage to each of X target creatures and/or players.| Boros Guildgate|Commander 2015|280|C||Land - Gate|||Boros Guildgate enters the battlefield tapped.${tap}: Add {R} or {W} to your mana pool.| @@ -27859,11 +27859,11 @@ Command Tower|Commander 2015|281|C||Land|||{tap}: Add to your mana pool one mana Drifting Meadow|Commander 2015|282|C||Land|||Drifting Meadow enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| Evolving Wilds|Commander 2015|283|C||Land|||{tap}, Sacrifice Evolving Wilds: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Forgotten Cave|Commander 2015|284|C||Land|||Forgotten Cave enters the battlefield tapped.${tap}: Add {R} to your mana pool.$Cycling {R} ({R}, Discard this card: Draw a card.)| -Ghost Quarter|Commander 2015|285|U||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| +Ghost Quarter|Commander 2015|285|U||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Ghost Quarter: Destroy target land. Its controller may search his or her library for a basic land card, put it onto the battlefield, then shuffle his or her library.| Golgari Guildgate|Commander 2015|286|C||Land - Gate|||Golgari Guildgate enters the battlefield tapped.${tap}: Add {B} or {G} to your mana pool.| Golgari Rot Farm|Commander 2015|287|C||Land|||Golgari Rot Farm enters the battlefield tapped.$When Golgari Rot Farm enters the battlefield, return a land you control to its owner's hand.${tap}: Add {B}{G} to your mana pool.| -Grim Backwoods|Commander 2015|288|R||Land|||{tap}: Add {1} to your mana pool.${2}{B}{G}, {tap}, Sacrifice a creature: Draw a card.| -High Market|Commander 2015|289|R||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice a creature: You gain 1 life.| +Grim Backwoods|Commander 2015|288|R||Land|||{tap}: Add {C} to your mana pool.${2}{B}{G}, {tap}, Sacrifice a creature: Draw a card.| +High Market|Commander 2015|289|R||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice a creature: You gain 1 life.| Mizzix's Mastery|Commander 2015|29|R|{3}{R}|Sorcery|||Exile target card that's an instant or sorcery from your graveyard. For each card exiled this way, copy it, and you may cast the copy without paying its mana cost. Exile Mizzix's Mastery.$Overload {5}{R}{R}{R} (You may cast this spell for its overload cost. If you do, change its text by replacing all instances of "target" with "each.")| Izzet Boilerworks|Commander 2015|290|C||Land|||Izzet Boilerworks enters the battlefield tapped.$When Izzet Boilerworks enters the battlefield, return a land you control to its owner's hand.${tap}: Add {U}{R} to your mana pool.| Izzet Guildgate|Commander 2015|291|C||Land - Gate|||Izzet Guildgate enters the battlefield tapped.${tap}: Add {U} or {R} to your mana pool.| @@ -27871,15 +27871,15 @@ Jungle Hollow|Commander 2015|292|C||Land|||Jungle Hollow enters the battlefield Llanowar Reborn|Commander 2015|293|U||Land|||Llanowar Reborn enters the battlefield tapped.${tap}: Add {G} to your mana pool.$Graft 1 (This land enters the battlefield with a +1/+1 counter on it. Whenever a creature enters the battlefield, you may move a +1/+1 counter from this land onto it.)| Mosswort Bridge|Commander 2015|294|R||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${tap}: Add {G} to your mana pool.${G}, {tap}: You may play the exiled card without paying its mana cost if creatures you control have total power 10 or greater.| New Benalia|Commander 2015|295|U||Land|||New Benalia enters the battlefield tapped.$When New Benalia enters the battlefield, scry 1. (Look at the top card of your library. You may put that card on the bottom of your library.)${tap}: Add {W} to your mana pool.| -Novijen, Heart of Progress|Commander 2015|296|U||Land|||{tap}: Add {1} to your mana pool.${G}{U}, {tap}: Put a +1/+1 counter on each creature that entered the battlefield this turn.| +Novijen, Heart of Progress|Commander 2015|296|U||Land|||{tap}: Add {C} to your mana pool.${G}{U}, {tap}: Put a +1/+1 counter on each creature that entered the battlefield this turn.| Oran-Rief, the Vastwood|Commander 2015|297|R||Land|||Oran-Rief, the Vastwood enters the battlefield tapped.${tap}: Add {G} to your mana pool.${tap}: Put a +1/+1 counter on each green creature that entered the battlefield this turn.| Orzhov Basilica|Commander 2015|298|C||Land|||Orzhov Basilica enters the battlefield tapped.$When Orzhov Basilica enters the battlefield, return a land you control to its owner's hand.${tap}: Add {W}{B} to your mana pool.| Orzhov Guildgate|Commander 2015|299|C||Land - Gate|||Orzhov Guildgate enters the battlefield tapped.${tap}: Add {W} or {B} to your mana pool.| Grasp of Fate|Commander 2015|3|R|{1}{W}{W}|Enchantment|||When Grasp of Fate enters the battlefield, for each opponent, exile up to one target nonland permanent that player controls until Grasp of Fate leaves the battlefield. (Those permanents return under their owners' control.)| Rite of the Raging Storm|Commander 2015|30|U|{3}{R}{R}|Enchantment|||Creatures named Lightning Rager can't attack you or planeswalkers you control.$At the beginning of each player's upkeep, that player puts a 5/1 red Elemental creature token named Lightning Rager onto the battlefield. It has trample, haste, and "At the beginning of the end step, sacrifice this creature."| Polluted Mire|Commander 2015|300|C||Land|||Polluted Mire enters the battlefield tapped.${tap}: Add {B} to your mana pool.$Cycling {2} ({2}, Discard this card: Draw a card.)| -Reliquary Tower|Commander 2015|301|U||Land|||You have no maximum hand size.${tap}: Add {1} to your mana pool.| -Rogue's Passage|Commander 2015|302|U||Land|||{tap}: Add {1} to your mana pool.${4}, {tap}: Target creature can't be blocked this turn.| +Reliquary Tower|Commander 2015|301|U||Land|||You have no maximum hand size.${tap}: Add {C} to your mana pool.| +Rogue's Passage|Commander 2015|302|U||Land|||{tap}: Add {C} to your mana pool.${4}, {tap}: Target creature can't be blocked this turn.| Scoured Barrens|Commander 2015|303|C||Land|||Scoured Barrens enters the battlefield tapped.$When Scoured Barrens enters the battlefield, you gain 1 life.${tap}: Add {W} or {B} to your mana pool.| Secluded Steppe|Commander 2015|304|C||Land|||Secluded Steppe enters the battlefield tapped.${tap}: Add {W} to your mana pool.$Cycling {W} ({W}, Discard this card: Draw a card.)| Simic Growth Chamber|Commander 2015|305|C||Land|||Simic Growth Chamber enters the battlefield tapped.$When Simic Growth Chamber enters the battlefield, return a land you control to its owner's hand.${tap}: Add {G}{U} to your mana pool.| @@ -27889,9 +27889,9 @@ Smoldering Crater|Commander 2015|308|C||Land|||Smoldering Crater enters the batt Spinerock Knoll|Commander 2015|309|R||Land|||Hideaway (This land enters the battlefield tapped. When it does, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)${tap}: Add {R} to your mana pool.${R}, {tap}: You may play the exiled card without paying its mana cost if an opponent was dealt 7 or more damage this turn.| Warchief Giant|Commander 2015|31|U|{3}{R}{R}|Creature - Giant Warrior|5|3|Haste$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.)| Swiftwater Cliffs|Commander 2015|310|C||Land|||Swiftwater Cliffs enters the battlefield tapped.$When Swiftwater Cliffs enters the battlefield, you gain 1 life.${tap}: Add {U} or {R} to your mana pool.| -Tainted Field|Commander 2015|311|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp.| -Tainted Wood|Commander 2015|312|U||Land|||{tap}: Add {1} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp.| -Temple of the False God|Commander 2015|313|U||Land|||{tap}: Add {2} to your mana pool. Activate this ability only if you control five or more lands.| +Tainted Field|Commander 2015|311|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {W} or {B} to your mana pool. Activate this ability only if you control a Swamp.| +Tainted Wood|Commander 2015|312|U||Land|||{tap}: Add {C} to your mana pool.${tap}: Add {B} or {G} to your mana pool. Activate this ability only if you control a Swamp.| +Temple of the False God|Commander 2015|313|U||Land|||{tap}: Add {C}{C} to your mana pool. Activate this ability only if you control five or more lands.| Terramorphic Expanse|Commander 2015|314|C||Land|||{tap}, Sacrifice Terramorphic Expanse: Search your library for a basic land card and put it onto the battlefield tapped. Then shuffle your library.| Thornwood Falls|Commander 2015|315|C||Land|||Thornwood Falls enters the battlefield tapped.$When Thornwood Falls enters the battlefield, you gain 1 life.${tap}: Add {G} or {U} to your mana pool.| Vivid Crag|Commander 2015|316|U||Land|||Vivid Crag enters the battlefield tapped with two charge counters on it.${tap}: Add {R} to your mana pool.${tap}, Remove a charge counter from Vivid Crag: Add one mana of any color to your mana pool.| @@ -27901,7 +27901,7 @@ Vivid Marsh|Commander 2015|319|U||Land|||Vivid Marsh enters the battlefield tapp Arachnogenesis|Commander 2015|32|R|{2}{G}|Instant|||Put X 1/2 green Spider creature tokens with reach onto the battlefield, where X is the number of creatures attacking you. Prevent all combat damage that would be dealt this turn by non-Spider creatures.| Vivid Meadow|Commander 2015|320|U||Land|||Vivid Meadow enters the battlefield tapped with two charge counters on it.${tap}: Add {W} to your mana pool.${tap}, Remove a charge counter from Vivid Meadow: Add one mana of any color to your mana pool.| Wind-Scarred Crag|Commander 2015|321|C||Land|||Wind-Scarred Crag enters the battlefield tapped.$When Wind-Scarred Crag enters the battlefield, you gain 1 life.${tap}: Add {R} or {W} to your mana pool.| -Zoetic Cavern|Commander 2015|322|U||Land|||{tap}: Add {1} 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.)| +Zoetic Cavern|Commander 2015|322|U||Land|||{tap}: 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.)| Plains|Commander 2015|323|L||Basic Land - Plains|||W| Plains|Commander 2015|324|L||Basic Land - Plains|||W| Plains|Commander 2015|325|L||Basic Land - Plains|||W| @@ -27946,8 +27946,8 @@ Blade of Selves|Commander 2015|51|R|{2}|Artifact - Equipment|||Equipped creature Sandstone Oracle|Commander 2015|52|U|{7}|Artifact Creature - Sphinx|4|4|Flying$When Sandstone Oracle enters the battlefield, choose an opponent. If that player has more cards in hand than you, draw cards equal to the difference.| Scytheclaw|Commander 2015|53|R|{5}|Artifact - Equipment|||Living weapon (When this Equipment enters the battlefield, put a 0/0 black Germ creature token onto the battlefield, then attach this to it.)$Equipped creature gets +1/+1.$Whenever equipped creature deals combat damage to a player, that player loses half his or her life, rounded up.$Equip {3}| Seal of the Guildpact|Commander 2015|54|R|{5}|Artifact|||As Seal of the Guildpact enters the battlefield, choose two colors.$Each spell you cast costs {1} less to cast for each of the chosen colors it is.| -Thought Vessel|Commander 2015|55|C|{2}|Artifact|||You have no maximum hand size.${tap}: Add {1} to your mana pool.| -Command Beacon|Commander 2015|56|R||Land|||{tap}: Add {1} to your mana pool.${tap}, Sacrifice Command Beacon: Put your commander into your hand from the command zone.| +Thought Vessel|Commander 2015|55|C|{2}|Artifact|||You have no maximum hand size.${tap}: Add {C} to your mana pool.| +Command Beacon|Commander 2015|56|R||Land|||{tap}: Add {C} to your mana pool.${tap}, Sacrifice Command Beacon: Put your commander into your hand from the command zone.| Ajani's Chosen|Commander 2015|57|R|{2}{W}{W}|Creature - Cat Soldier|3|3|Whenever an enchantment enters the battlefield under your control, put a 2/2 white Cat creature token onto the battlefield. If that enchantment is an Aura, you may attach it to the token.| Angel of Serenity|Commander 2015|58|M|{4}{W}{W}{W}|Creature - Angel|5|6|Flying$When Angel of Serenity enters the battlefield, you may exile up to three other target creatures from the battlefield and/or creature cards from graveyards.$When Angel of Serenity leaves the battlefield, return the exiled cards to their owners' hands.| Arbiter of Knollridge|Commander 2015|59|R|{6}{W}|Creature - Giant Wizard|5|5|Vigilance$When Arbiter of Knollridge enters the battlefield, each player's life total becomes the highest life total among all players.| @@ -28170,14 +28170,14 @@ Electrolyze|Champs|1|Special|{1}{U}{R}|Instant|||Electrolyze deals 2 damage divi Niv-Mizzet, the Firemind|Champs|2|Special|{2}{U}{U}{R}{R}|Legendary Creature - Dragon Wizard|4|4|Flying$Whenever you draw a card, Niv-Mizzet, the Firemind deals 1 damage to target creature or player.${T}: Draw a card.| Rakdos Guildmage|Champs|3|Special|{BR}{BR}|Creature - Zombie Shaman|2|2|({BR} can be paid with either {B} or {R}.)${3}{B}, Discard a card: Target creature gets -2/-2 until end of turn.${3}{R}: Put a 2/1 red Goblin creature token with haste onto the battlefield. Exile it at the beginning of the next end step.| Voidslime|Champs|4|Special|{G}{U}{U}|Instant|||Counter target spell, activated ability, or triggered ability. (Mana abilities can't be targeted.)| -Urza's Factory|Champs|5|Special||Land - Urza s|||{tap}: Add {1} to your mana pool.${7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield.| +Urza's Factory|Champs|5|Special||Land - Urza s|||{tap}: Add {C} to your mana pool.${7}, {tap}: Put a 2/2 colorless Assembly-Worker artifact creature token onto the battlefield.| Serra Avenger|Champs|6|Special|{W}{W}|Creature - Angel|3|3|You can't cast Serra Avenger during your first, second, or third turns of the game.$Flying$Vigilance (Attacking doesn't cause this creature to tap.)| Blood Knight|Champs|7|Special|{R}{R}|Creature - Human Knight|2|2|First strike, protection from white| Groundbreaker|Champs|8|Special|{G}{G}{G}|Creature - Elemental|6|1|Trample, haste$At the beginning of the end step, sacrifice Groundbreaker.| Imperious Perfect|Champs|9|Special|{2}{G}|Creature - Elf Warrior|2|2|Other Elf creatures you control get +1/+1.${G}, {tap}: Put a 1/1 green Elf Warrior creature token onto the battlefield.| Doran, the Siege Tower|Champs|10|Special|{W}{B}{G}|Legendary Creature - Treefolk Shaman|0|5|Each creature assigns combat damage equal to its toughness rather than its power.| Bramblewood Paragon|Champs|11|Special|{1}{G}|Creature - Elf Warrior|2|2|Each other Warrior creature you control enters the battlefield with an additional +1/+1 counter on it.$Each creature you control with a +1/+1 counter on it has trample.| -Mutavault|Champs|12|Special||Land|||{T}: Add {1} to your mana pool.${1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.| +Mutavault|Champs|12|Special||Land|||{T}: Add {C} to your mana pool.${1}: Mutavault becomes a 2/2 creature with all creature types until end of turn. It's still a land.| Chaos Warp|Commander's Arsenal|1|Special|{2}{R}|Instant|||The owner of target permanent shuffles it into his or her library, then reveals the top card of his or her library. If it's a permanent card, he or she puts it onto the battlefield.| Command Tower|Commander's Arsenal|2|C||Land|||{tap}: Add to your mana pool one mana of any color in your commander's color identity.| Decree of Pain|Commander's Arsenal|3|Special|{6}{B}{B}|Sorcery|||Destroy all creatures. They can't be regenerated. Draw a card for each creature destroyed this way.$Cycling {3}{B}{B} ({3}{B}{B}, Discard this card: Draw a card.)$When you cycle Decree of Pain, all creatures get -2/-2 until end of turn.| @@ -28221,18 +28221,19 @@ Scalding Tarn|Zendikar Expeditions|22|M||Land|||{tap}, Pay 1 life, Sacrifice Sca Verdant Catacombs|Zendikar Expeditions|23|M||Land|||{tap}, Pay 1 life, Sacrifice Verdant Catacombs: Search your library for a Swamp or Forest card and put it onto the battlefield. Then shuffle your library.| Arid Mesa|Zendikar Expeditions|24|M||Land|||{tap}, Pay 1 life, Sacrifice Arid Mesa: Search your library for a Mountain or Plains card and put it onto the battlefield. Then shuffle your library.| Misty Rainforest|Zendikar Expeditions|25|M||Land|||{tap}, Pay 1 life, Sacrifice Misty Rainforest: Search your library for a Forest or Island card and put it onto the battlefield. Then shuffle your library.| -Mystic Gate|Zendikar Expeditions|26|M||Land|||{tap}: Add {1} to your mana pool.${WU}, {tap}: Add {W}{W}, {W}{U}, or {U}{U} to your mana pool.| -Sunken Ruins|Zendikar Expeditions|27|M||Land|||{tap}: Add {1} to your mana pool.${UB}, {tap}: Add {U}{U}, {U}{B}, or {B}{B} to your mana pool.| -Graven Cairns|Zendikar Expeditions|28|M||Land|||{tap}: Add {1} to your mana pool.${BR}, {tap}: Add {B}{B}, {B}{R}, or {R}{R} to your mana pool.| -Fire-Lit Thicket|Zendikar Expeditions|29|M||Land|||{tap}: Add {1} to your mana pool.${RG}, {tap}: Add {R}{R}, {R}{G}, or {G}{G} to your mana pool.| -Wooded Bastion|Zendikar Expeditions|30|M||Land|||{tap}: Add {1} to your mana pool.${GW}, {tap}: Add {G}{G}, {G}{W}, or {W}{W} to your mana pool.| -Fetid Heath|Zendikar Expeditions|31|M||Land|||{tap}: Add {1} to your mana pool.${WB}, {tap}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool.| -Cascade Bluffs|Zendikar Expeditions|32|M||Land|||{tap}: Add {1} to your mana pool.${UR}, {tap}: Add {U}{U}, {U}{R}, or {R}{R} to your mana pool.| -Twilight Mire|Zendikar Expeditions|33|M||Land|||{tap}: Add {1} to your mana pool.${BG}, {tap}: Add {B}{B}, {B}{G}, or {G}{G} to your mana pool.| -Rugged Prairie|Zendikar Expeditions|34|M||Land|||{tap}: Add {1} to your mana pool.${RW}, {tap}: Add {R}{R}, {R}{W}, or {W}{W} to your mana pool.| -Flooded Grove|Zendikar Expeditions|35|M||Land|||{tap}: Add {1} to your mana pool.${GU}, {tap}: Add {G}{G}, {G}{U}, or {U}{U} to your mana pool.| +Mystic Gate|Zendikar Expeditions|26|M||Land|||{tap}: Add {C} to your mana pool.${WU}, {tap}: Add {W}{W}, {W}{U}, or {U}{U} to your mana pool.| +Sunken Ruins|Zendikar Expeditions|27|M||Land|||{tap}: Add {C} to your mana pool.${UB}, {tap}: Add {U}{U}, {U}{B}, or {B}{B} to your mana pool.| +Graven Cairns|Zendikar Expeditions|28|M||Land|||{tap}: Add {C} to your mana pool.${BR}, {tap}: Add {B}{B}, {B}{R}, or {R}{R} to your mana pool.| +Fire-Lit Thicket|Zendikar Expeditions|29|M||Land|||{tap}: Add {C} to your mana pool.${RG}, {tap}: Add {R}{R}, {R}{G}, or {G}{G} to your mana pool.| +Wooded Bastion|Zendikar Expeditions|30|M||Land|||{tap}: Add {C} to your mana pool.${GW}, {tap}: Add {G}{G}, {G}{W}, or {W}{W} to your mana pool.| +Fetid Heath|Zendikar Expeditions|31|M||Land|||{tap}: Add {C} to your mana pool.${WB}, {tap}: Add {W}{W}, {W}{B}, or {B}{B} to your mana pool.| +Cascade Bluffs|Zendikar Expeditions|32|M||Land|||{tap}: Add {C} to your mana pool.${UR}, {tap}: Add {U}{U}, {U}{R}, or {R}{R} to your mana pool.| +Twilight Mire|Zendikar Expeditions|33|M||Land|||{tap}: Add {C} to your mana pool.${BG}, {tap}: Add {B}{B}, {B}{G}, or {G}{G} to your mana pool.| +Rugged Prairie|Zendikar Expeditions|34|M||Land|||{tap}: Add {C} to your mana pool.${RW}, {tap}: Add {R}{R}, {R}{W}, or {W}{W} to your mana pool.| +Flooded Grove|Zendikar Expeditions|35|M||Land|||{tap}: Add {C} to your mana pool.${GU}, {tap}: Add {G}{G}, {G}{U}, or {U}{U} to your mana pool.| Kozilek, the Great Distortion|Oath of the Gatewatch|4|M|{8}{C}{C}|Legendary Creature - Eldrazi|12|12|When you cast Kozilek, the Great Distortion, if you have fewer than seven cards in hand, draw cards equal to the difference.$Menace$Discard a card with converted mana cost X: Counter target spell with converted mana cost X.| Ayli, Eternal Pilgrim|Oath of the Gatewatch|151|R|{W}{B}|Legendary Creature - Kor Cleric|2|3|Deathtouch${1}, Sacrifice another creature: You gain life equal to the sacrificed creature's toughness.${1}{W}{B}, Sacrifice another creature: Exile target nonland permanent. Activate this ability only if you have at least 10 life more than your starting life total.| Mina and Denn, Wildborn|Oath of the Gatewatch|156|R|{2}{R}{G}|Legendary Creature - Elf Ally|4|4|You may play an additional land on each of your turns.${R}{G}, Return a land you control to its owner's hand: Target creature gains trample until end of turn.| Mirrorpool|Oath of the Gatewatch|174|M||Land|||Mirrorpool enters the battlefield tapped.${T}: Add {C} to your mana pool.${2}{C}, {T}, Sacrifice Mirrorpool: Copy target instant or sorcery spell you control. You may choose new targets for the copy.${4}{C}, {T}, Sacrifice Mirrorpool: Put a token onto the battlefield that's a copy of target creature you control.| +Wastes|Oath of the Gatewatch|183|C||Basic Land|||{T}: Add {C} to your mana pool.| Wastes|Oath of the Gatewatch|184|C||Basic Land|||{T}: Add {C} to your mana pool.| \ No newline at end of file