diff --git a/Mage.Sets/src/mage/sets/divinevsdemonic/FaithsFetters.java b/Mage.Sets/src/mage/sets/divinevsdemonic/FaithsFetters.java
new file mode 100644
index 00000000000..094bc11bd88
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/divinevsdemonic/FaithsFetters.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.divinevsdemonic;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.AttachEffect;
+import mage.abilities.effects.common.GainLifeEffect;
+import mage.abilities.effects.common.combat.CantBlockAttackActivateAttachedEffect;
+import mage.abilities.keyword.EnchantAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.target.TargetPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class FaithsFetters extends CardImpl {
+
+ public FaithsFetters(UUID ownerId) {
+ super(ownerId, 20, "Faith's Fetters", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{3}{W}");
+ this.expansionSetCode = "DDC";
+ this.subtype.add("Aura");
+
+ this.color.setWhite(true);
+
+ // Enchant permanent
+ TargetPermanent auraTarget = new TargetPermanent();
+ this.getSpellAbility().addTarget(auraTarget);
+ this.getSpellAbility().addEffect(new AttachEffect(Outcome.GainControl));
+ Ability ability = new EnchantAbility(auraTarget.getTargetName());
+ this.addAbility(ability);
+ // When Faith's Fetters enters the battlefield, you gain 4 life.
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(4)));
+ // Enchanted permanent's activated abilities can't be activated unless they're mana abilities. If enchanted permanent is a creature, it can't attack or block.
+ Effect effect = new CantBlockAttackActivateAttachedEffect();
+ effect.setText("Enchanted permanent's activated abilities can't be activated unless they're mana abilities. If enchanted permanent is a creature, it can't attack or block");
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, effect));
+
+
+ }
+
+ public FaithsFetters(final FaithsFetters card) {
+ super(card);
+ }
+
+ @Override
+ public FaithsFetters copy() {
+ return new FaithsFetters(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/eighthedition/Persecute.java b/Mage.Sets/src/mage/sets/eighthedition/Persecute.java
new file mode 100644
index 00000000000..a558c983f45
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/eighthedition/Persecute.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.eighthedition;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Persecute extends mage.sets.urzassaga.Persecute {
+
+ public Persecute(UUID ownerId) {
+ super(ownerId);
+ this.cardNumber = 151;
+ this.expansionSetCode = "8ED";
+ }
+
+ public Persecute(final Persecute card) {
+ super(card);
+ }
+
+ @Override
+ public Persecute copy() {
+ return new Persecute(this);
+ }
+}
+
diff --git a/Mage.Sets/src/mage/sets/exodus/Carnophage.java b/Mage.Sets/src/mage/sets/exodus/Carnophage.java
new file mode 100644
index 00000000000..97d01ed1b80
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/exodus/Carnophage.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.exodus;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
+import mage.abilities.costs.common.PayLifeCost;
+import mage.abilities.effects.common.TapSourceUnlessPaysEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Carnophage extends CardImpl {
+
+ public Carnophage(UUID ownerId) {
+ super(ownerId, 53, "Carnophage", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}");
+ this.expansionSetCode = "EXO";
+ this.subtype.add("Zombie");
+
+ this.color.setBlack(true);
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(2);
+
+ // At the beginning of your upkeep, tap Carnophage unless you pay 1 life.
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TapSourceUnlessPaysEffect(new PayLifeCost(1)), TargetController.YOU, false));
+ }
+
+ public Carnophage(final Carnophage card) {
+ super(card);
+ }
+
+ @Override
+ public Carnophage copy() {
+ return new Carnophage(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/exodus/PriceOfProgress.java b/Mage.Sets/src/mage/sets/exodus/PriceOfProgress.java
new file mode 100644
index 00000000000..f843c896980
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/exodus/PriceOfProgress.java
@@ -0,0 +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.exodus;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.effects.OneShotEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.filter.common.FilterLandPermanent;
+import mage.filter.predicate.Predicates;
+import mage.filter.predicate.mageobject.SupertypePredicate;
+import mage.game.Game;
+import mage.players.Player;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class PriceOfProgress extends CardImpl {
+
+ public PriceOfProgress(UUID ownerId) {
+ super(ownerId, 95, "Price of Progress", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{1}{R}");
+ this.expansionSetCode = "EXO";
+
+ this.color.setRed(true);
+
+ // Price of Progress deals damage to each player equal to twice the number of nonbasic lands that player controls.
+ this.getSpellAbility().addEffect(new PriceOfProgressEffect());
+ }
+
+ public PriceOfProgress(final PriceOfProgress card) {
+ super(card);
+ }
+
+ @Override
+ public PriceOfProgress copy() {
+ return new PriceOfProgress(this);
+ }
+}
+
+class PriceOfProgressEffect extends OneShotEffect {
+
+ private static final FilterLandPermanent filter = new FilterLandPermanent("nonbasic lands");
+
+ static {
+ filter.add(Predicates.not(new SupertypePredicate("Basic")));
+ }
+
+ public PriceOfProgressEffect() {
+ super(Outcome.Benefit);
+ this.staticText = "{this} deals damage to each player equal to twice the number of nonbasic lands that player controls";
+ }
+
+ public PriceOfProgressEffect(final PriceOfProgressEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public PriceOfProgressEffect copy() {
+ return new PriceOfProgressEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player controller = game.getPlayer(source.getControllerId());
+ if (controller != null) {
+ for (UUID playerId : controller.getInRange()) {
+ int amount = game.getBattlefield().countAll(filter , playerId, game);
+ if (amount > 0) {
+ Player player = game.getPlayer(playerId);
+ if (player != null) {
+ player.damage(amount * 2, source.getSourceId(), game, false, true);
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/futuresight/GathanRaiders.java b/Mage.Sets/src/mage/sets/futuresight/GathanRaiders.java
new file mode 100644
index 00000000000..df565b572d4
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/futuresight/GathanRaiders.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.futuresight;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.condition.common.HellbentCondition;
+import mage.abilities.costs.common.DiscardCardCost;
+import mage.abilities.decorator.ConditionalContinousEffect;
+import mage.abilities.effects.common.continious.BoostSourceEffect;
+import mage.abilities.keyword.MorphAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class GathanRaiders extends CardImpl {
+
+ public GathanRaiders(UUID ownerId) {
+ super(ownerId, 99, "Gathan Raiders", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{R}{R}");
+ this.expansionSetCode = "FUT";
+ this.subtype.add("Human");
+ this.subtype.add("Warrior");
+
+ this.color.setRed(true);
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(3);
+
+ // Hellbent - Gathan Raiders gets +2/+2 as long as you have no cards in hand.
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new ConditionalContinousEffect(
+ new BoostSourceEffect(2,2,Duration.WhileOnBattlefield), HellbentCondition.getInstance(),
+ "Hellbent - {this} gets +2/+2 as long as you have no cards in hand")));
+ // Morph-Discard a card.
+ this.addAbility(new MorphAbility(this, new DiscardCardCost()));
+ }
+
+ public GathanRaiders(final GathanRaiders card) {
+ super(card);
+ }
+
+ @Override
+ public GathanRaiders copy() {
+ return new GathanRaiders(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/guildpact/DryadSophisticate.java b/Mage.Sets/src/mage/sets/guildpact/DryadSophisticate.java
new file mode 100644
index 00000000000..5b69fa7dc99
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/guildpact/DryadSophisticate.java
@@ -0,0 +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.guildpact;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.keyword.LandwalkAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.common.FilterLandPermanent;
+import mage.filter.predicate.Predicates;
+import mage.filter.predicate.mageobject.SupertypePredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class DryadSophisticate extends CardImpl {
+
+ public DryadSophisticate(UUID ownerId) {
+ super(ownerId, 83, "Dryad Sophisticate", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{G}");
+ this.expansionSetCode = "GPT";
+ this.subtype.add("Dryad");
+
+ this.color.setGreen(true);
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(1);
+
+ // Nonbasic landwalk
+ this.addAbility(new NonbasicLandwalkAbility());
+ }
+
+ public DryadSophisticate(final DryadSophisticate card) {
+ super(card);
+ }
+
+ @Override
+ public DryadSophisticate copy() {
+ return new DryadSophisticate(this);
+ }
+}
+
+class NonbasicLandwalkAbility extends LandwalkAbility {
+
+ private static final FilterLandPermanent filter = new FilterLandPermanent("nonbasic land");
+
+ static {
+ filter.add(Predicates.not(new SupertypePredicate("Basic")));
+ }
+
+ public NonbasicLandwalkAbility() {
+ super(filter);
+ }
+
+ public NonbasicLandwalkAbility(final NonbasicLandwalkAbility ability) {
+ super(ability);
+ }
+
+ @Override
+ public NonbasicLandwalkAbility copy() {
+ return new NonbasicLandwalkAbility(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/invasion/DismantlingBlow.java b/Mage.Sets/src/mage/sets/invasion/DismantlingBlow.java
new file mode 100644
index 00000000000..1b88f04c6ac
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/invasion/DismantlingBlow.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.invasion;
+
+import java.util.UUID;
+import mage.abilities.condition.common.KickedCondition;
+import mage.abilities.decorator.ConditionalOneShotEffect;
+import mage.abilities.effects.common.DestroyTargetEffect;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.keyword.KickerAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.FilterPermanent;
+import mage.filter.predicate.Predicates;
+import mage.filter.predicate.mageobject.CardTypePredicate;
+import mage.target.TargetPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class DismantlingBlow extends CardImpl {
+
+ private static final FilterPermanent filter = new FilterPermanent("artifact or enchantment");
+
+ static {
+ filter.add(Predicates.or(
+ new CardTypePredicate(CardType.ARTIFACT),
+ new CardTypePredicate(CardType.ENCHANTMENT)));
+ }
+
+ public DismantlingBlow(UUID ownerId) {
+ super(ownerId, 14, "Dismantling Blow", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{W}");
+ this.expansionSetCode = "INV";
+
+ this.color.setWhite(true);
+
+ // Kicker {2}{U}
+ this.addAbility(new KickerAbility("{2}{U}"));
+ // Destroy target artifact or enchantment.
+ this.getSpellAbility().addEffect(new DestroyTargetEffect());
+ this.getSpellAbility().addTarget(new TargetPermanent(filter));
+ // If Dismantling Blow was kicked, draw two cards.
+ this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
+ new DrawCardSourceControllerEffect(2),
+ KickedCondition.getInstance(),
+ "If {this} was kicked, draw two cards"));
+ }
+
+ public DismantlingBlow(final DismantlingBlow card) {
+ super(card);
+ }
+
+ @Override
+ public DismantlingBlow copy() {
+ return new DismantlingBlow(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/jacevschandra/FathomSeer.java b/Mage.Sets/src/mage/sets/jacevschandra/FathomSeer.java
new file mode 100644
index 00000000000..0674276e091
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/jacevschandra/FathomSeer.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.jacevschandra;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.TurnedFaceUpTriggeredAbility;
+import mage.abilities.costs.common.ReturnToHandTargetCost;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.keyword.MorphAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.FilterPermanent;
+import mage.filter.predicate.mageobject.SubtypePredicate;
+import mage.target.common.TargetControlledPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class FathomSeer extends CardImpl {
+
+ private static final FilterPermanent filter = new FilterPermanent("Islands");
+
+ static {
+ filter.add(new SubtypePredicate("Island"));
+ }
+ public FathomSeer(UUID ownerId) {
+ super(ownerId, 3, "Fathom Seer", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{U}");
+ this.expansionSetCode = "DD2";
+ this.subtype.add("Illusion");
+
+ this.color.setBlue(true);
+ this.power = new MageInt(1);
+ this.toughness = new MageInt(3);
+
+ // Morph-Return two Islands you control to their owner's hand.
+ this.addAbility(new MorphAbility(this, new ReturnToHandTargetCost(new TargetControlledPermanent(2,2, filter, true))));
+ // When Fathom Seer is turned face up, draw two cards.
+ this.addAbility(new TurnedFaceUpTriggeredAbility(new DrawCardSourceControllerEffect(2)));
+ }
+
+ public FathomSeer(final FathomSeer card) {
+ super(card);
+ }
+
+ @Override
+ public FathomSeer copy() {
+ return new FathomSeer(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/ninthedition/Persecute.java b/Mage.Sets/src/mage/sets/ninthedition/Persecute.java
new file mode 100644
index 00000000000..ca73279b344
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/ninthedition/Persecute.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.ninthedition;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Persecute extends mage.sets.urzassaga.Persecute {
+
+ public Persecute(UUID ownerId) {
+ super(ownerId);
+ this.cardNumber = 151;
+ this.expansionSetCode = "9ED";
+ }
+
+ public Persecute(final Persecute card) {
+ super(card);
+ }
+
+ @Override
+ public Persecute copy() {
+ return new Persecute(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/onslaught/Hystrodon.java b/Mage.Sets/src/mage/sets/onslaught/Hystrodon.java
new file mode 100644
index 00000000000..9881e8053fe
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/onslaught/Hystrodon.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.onslaught;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.keyword.MorphAbility;
+import mage.abilities.keyword.TrampleAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Hystrodon extends CardImpl {
+
+ public Hystrodon(UUID ownerId) {
+ super(ownerId, 266, "Hystrodon", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{4}{G}");
+ this.expansionSetCode = "ONS";
+ this.subtype.add("Beast");
+
+ this.color.setGreen(true);
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(4);
+
+ // Trample
+ this.addAbility(TrampleAbility.getInstance());
+ // Whenever Hystrodon deals combat damage to a player, you may draw a card.
+ this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new DrawCardSourceControllerEffect(1), true));
+ // Morph {1}{G}{G}
+ this.addAbility(new MorphAbility(this, new ManaCostsImpl("{1}{G}{G}")));
+ }
+
+ public Hystrodon(final Hystrodon card) {
+ super(card);
+ }
+
+ @Override
+ public Hystrodon copy() {
+ return new Hystrodon(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/portalthreekingdoms/RollingEarthquake.java b/Mage.Sets/src/mage/sets/portalthreekingdoms/RollingEarthquake.java
new file mode 100644
index 00000000000..21f68cc9627
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/portalthreekingdoms/RollingEarthquake.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.portalthreekingdoms;
+
+import java.util.UUID;
+import mage.abilities.dynamicvalue.common.ManacostVariableValue;
+import mage.abilities.effects.common.DamageEverythingEffect;
+import mage.abilities.keyword.HorsemanshipAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.Predicates;
+import mage.filter.predicate.mageobject.AbilityPredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RollingEarthquake extends CardImpl {
+
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature without horsemanship");
+
+ static {
+ filter.add(Predicates.not(new AbilityPredicate(HorsemanshipAbility.class)));
+ }
+
+ public RollingEarthquake(UUID ownerId) {
+ super(ownerId, 122, "Rolling Earthquake", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{X}{R}");
+ this.expansionSetCode = "PTK";
+
+ this.color.setRed(true);
+
+ // Rolling Earthquake deals X damage to each creature without horsemanship and each player.
+ this.getSpellAbility().addEffect(new DamageEverythingEffect(new ManacostVariableValue(), filter));
+ }
+
+ public RollingEarthquake(final RollingEarthquake card) {
+ super(card);
+ }
+
+ @Override
+ public RollingEarthquake copy() {
+ return new RollingEarthquake(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/ravnika/FaithsFetters.java b/Mage.Sets/src/mage/sets/ravnika/FaithsFetters.java
new file mode 100644
index 00000000000..579776c3eef
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/ravnika/FaithsFetters.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.ravnika;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class FaithsFetters extends mage.sets.divinevsdemonic.FaithsFetters {
+
+ public FaithsFetters(UUID ownerId) {
+ super(ownerId);
+ this.cardNumber = 16;
+ this.expansionSetCode = "RAV";
+ }
+
+ public FaithsFetters(final FaithsFetters card) {
+ super(card);
+ }
+
+ @Override
+ public FaithsFetters copy() {
+ return new FaithsFetters(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/ravnika/FrenziedGoblin.java b/Mage.Sets/src/mage/sets/ravnika/FrenziedGoblin.java
new file mode 100644
index 00000000000..f246833cf0f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/ravnika/FrenziedGoblin.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.ravnika;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.AttacksTriggeredAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.DoIfCostPaid;
+import mage.abilities.effects.common.combat.CantBlockTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.target.Target;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class FrenziedGoblin extends CardImpl {
+
+ public FrenziedGoblin(UUID ownerId) {
+ super(ownerId, 125, "Frenzied Goblin", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{R}");
+ this.expansionSetCode = "RAV";
+ this.subtype.add("Goblin");
+ this.subtype.add("Berserker");
+
+ this.color.setRed(true);
+ this.power = new MageInt(1);
+ this.toughness = new MageInt(1);
+
+ // Whenever Frenzied Goblin attacks, you may pay {R}. If you do, target creature can't block this turn.
+ Ability ability = new AttacksTriggeredAbility(new DoIfCostPaid(new CantBlockTargetEffect(Duration.EndOfTurn), new ManaCostsImpl("{R}")),false,
+ "Whenever {this} attacks you may pay {R}. If you do, target creature can't block this turn.");
+ Target target = new TargetCreaturePermanent();
+ ability.addTarget(target);
+ this.addAbility(ability);
+ }
+
+ public FrenziedGoblin(final FrenziedGoblin card) {
+ super(card);
+ }
+
+ @Override
+ public FrenziedGoblin copy() {
+ return new FrenziedGoblin(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/seventhedition/Persecute.java b/Mage.Sets/src/mage/sets/seventhedition/Persecute.java
new file mode 100644
index 00000000000..7797d2d94e5
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/seventhedition/Persecute.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.seventhedition;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Persecute extends mage.sets.urzassaga.Persecute {
+
+ public Persecute(UUID ownerId) {
+ super(ownerId);
+ this.cardNumber = 154;
+ this.expansionSetCode = "7ED";
+ }
+
+ public Persecute(final Persecute card) {
+ super(card);
+ }
+
+ @Override
+ public Persecute copy() {
+ return new Persecute(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/timespiral/FathomSeer.java b/Mage.Sets/src/mage/sets/timespiral/FathomSeer.java
new file mode 100644
index 00000000000..872209878f0
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/timespiral/FathomSeer.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.timespiral;
+
+import java.util.UUID;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class FathomSeer extends mage.sets.jacevschandra.FathomSeer {
+
+ public FathomSeer(UUID ownerId) {
+ super(ownerId);
+ this.cardNumber = 62;
+ this.expansionSetCode = "TSP";
+ }
+
+ public FathomSeer(final FathomSeer card) {
+ super(card);
+ }
+
+ @Override
+ public FathomSeer copy() {
+ return new FathomSeer(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/timespiral/Sangrophage.java b/Mage.Sets/src/mage/sets/timespiral/Sangrophage.java
new file mode 100644
index 00000000000..48f0103e212
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/timespiral/Sangrophage.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.timespiral;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.BeginningOfUpkeepTriggeredAbility;
+import mage.abilities.costs.common.PayLifeCost;
+import mage.abilities.effects.common.TapSourceUnlessPaysEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Sangrophage extends CardImpl {
+
+ public Sangrophage(UUID ownerId) {
+ super(ownerId, 127, "Sangrophage", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{B}{B}");
+ this.expansionSetCode = "TSP";
+ this.subtype.add("Zombie");
+
+ this.color.setBlack(true);
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(3);
+
+ // At the beginning of your upkeep, tap Sangrophage unless you pay 2 life.
+ this.addAbility(new BeginningOfUpkeepTriggeredAbility(new TapSourceUnlessPaysEffect(new PayLifeCost(2)), TargetController.YOU, false));
+
+ }
+
+ public Sangrophage(final Sangrophage card) {
+ super(card);
+ }
+
+ @Override
+ public Sangrophage copy() {
+ return new Sangrophage(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/torment/NostalgicDreams.java b/Mage.Sets/src/mage/sets/torment/NostalgicDreams.java
new file mode 100644
index 00000000000..17d5c142965
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/torment/NostalgicDreams.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.torment;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.costs.common.DiscardXTargetCost;
+import mage.abilities.dynamicvalue.common.GetXValue;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.ExileSpellEffect;
+import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.FilterCard;
+import mage.game.Game;
+import mage.target.Target;
+import mage.target.common.TargetCardInYourGraveyard;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class NostalgicDreams extends CardImpl {
+
+ public NostalgicDreams(UUID ownerId) {
+ super(ownerId, 135, "Nostalgic Dreams", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{G}{G}");
+ this.expansionSetCode = "TOR";
+
+ this.color.setGreen(true);
+
+ // As an additional cost to cast Nostalgic Dreams, discard X cards.
+ this.getSpellAbility().addCost(new DiscardXTargetCost(new FilterCard("cards"), true));
+ // Return X target cards from your graveyard to your hand. Exile Nostalgic Dreams.
+ Effect effect = new ReturnFromGraveyardToHandTargetEffect();
+ effect.setText("Return X target cards from your graveyard to your hand");
+ this.getSpellAbility().addEffect(effect);
+
+ this.getSpellAbility().addEffect(ExileSpellEffect.getInstance());
+
+ }
+
+ public NostalgicDreams(final NostalgicDreams card) {
+ super(card);
+ }
+
+ @Override
+ public void adjustTargets(Ability ability, Game game) {
+ int xValue = new GetXValue().calculate(game, ability);
+// if (xValue > 0) {
+ Target target = new TargetCardInYourGraveyard(xValue, new FilterCard("card from your graveyard"));
+ ability.addTarget(target);
+// }
+ }
+
+ @Override
+ public NostalgicDreams copy() {
+ return new NostalgicDreams(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/urzasdestiny/PatternOfRebirth.java b/Mage.Sets/src/mage/sets/urzasdestiny/PatternOfRebirth.java
new file mode 100644
index 00000000000..17598a62464
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/urzasdestiny/PatternOfRebirth.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.urzasdestiny;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.DiesAttachedTriggeredAbility;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.AttachEffect;
+import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
+import mage.abilities.keyword.EnchantAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.filter.common.FilterCreatureCard;
+import mage.target.TargetPermanent;
+import mage.target.common.TargetCardInLibrary;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class PatternOfRebirth extends CardImpl {
+
+ public PatternOfRebirth(UUID ownerId) {
+ super(ownerId, 115, "Pattern of Rebirth", Rarity.RARE, new CardType[]{CardType.ENCHANTMENT}, "{3}{G}");
+ this.expansionSetCode = "UDS";
+ this.subtype.add("Aura");
+
+ this.color.setGreen(true);
+
+ // Enchant creature
+ TargetPermanent auraTarget = new TargetCreaturePermanent();
+ this.getSpellAbility().addTarget(auraTarget);
+ this.getSpellAbility().addEffect(new AttachEffect(Outcome.Benefit));
+ Ability ability = new EnchantAbility(auraTarget.getTargetName());
+ this.addAbility(ability);
+
+ // When enchanted creature dies, that creature's controller may search his or her library for a creature card and put that card onto the battlefield. If that player does, he or she shuffles his or her library.
+ Effect effect = new SearchLibraryPutInPlayEffect(new TargetCardInLibrary(new FilterCreatureCard()), false, true, Outcome.PutCreatureInPlay);
+ effect.setText("that creature's controller may search his or her library for a creature card and put that card onto the battlefield. If that player does, he or she shuffles his or her library");
+ this.addAbility(new DiesAttachedTriggeredAbility(effect, "enchanted creature", true, true));
+
+ }
+
+ public PatternOfRebirth(final PatternOfRebirth card) {
+ super(card);
+ }
+
+ @Override
+ public PatternOfRebirth copy() {
+ return new PatternOfRebirth(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/urzassaga/Catastrophe.java b/Mage.Sets/src/mage/sets/urzassaga/Catastrophe.java
new file mode 100644
index 00000000000..1e868a863eb
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/urzassaga/Catastrophe.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.urzassaga;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.effects.OneShotEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.common.FilterLandPermanent;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.players.Player;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Catastrophe extends CardImpl {
+
+ public Catastrophe(UUID ownerId) {
+ super(ownerId, 6, "Catastrophe", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{4}{W}{W}");
+ this.expansionSetCode = "USG";
+
+ this.color.setWhite(true);
+
+ // Destroy all lands or all creatures. Creatures destroyed this way can't be regenerated.
+ this.getSpellAbility().addEffect(new CatastropheEffect());
+ }
+
+ public Catastrophe(final Catastrophe card) {
+ super(card);
+ }
+
+ @Override
+ public Catastrophe copy() {
+ return new Catastrophe(this);
+ }
+}
+
+class CatastropheEffect extends OneShotEffect {
+
+ public CatastropheEffect() {
+ super(Outcome.Detriment);
+ this.staticText = "Destroy all lands or all creatures. Creatures destroyed this way can't be regenerated";
+ }
+
+ public CatastropheEffect(final CatastropheEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public CatastropheEffect copy() {
+ return new CatastropheEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player controller = game.getPlayer(source.getControllerId());
+ if (controller != null) {
+ if (controller.chooseUse(outcome, "Destroy all lands? (otherwise all creatures are destroyed)", game)) {
+ for (Permanent permanent: game.getBattlefield().getActivePermanents(new FilterLandPermanent(), controller.getId(), source.getSourceId(), game)) {
+ permanent.destroy(source.getSourceId(), game, permanent.getCardType().contains(CardType.CREATURE));
+ }
+ } else {
+ for (Permanent permanent: game.getBattlefield().getActivePermanents(new FilterCreaturePermanent(), controller.getId(), source.getSourceId(), game)) {
+ permanent.destroy(source.getSourceId(), game, true);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/urzassaga/Persecute.java b/Mage.Sets/src/mage/sets/urzassaga/Persecute.java
new file mode 100644
index 00000000000..6aa9ea607b0
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/urzassaga/Persecute.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.urzassaga;
+
+import java.util.Set;
+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.choices.ChoiceColor;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.game.Game;
+import mage.players.Player;
+import mage.target.TargetPlayer;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class Persecute extends CardImpl {
+
+ public Persecute(UUID ownerId) {
+ super(ownerId, 146, "Persecute", Rarity.RARE, new CardType[]{CardType.SORCERY}, "{2}{B}{B}");
+ this.expansionSetCode = "USG";
+
+ this.color.setBlack(true);
+
+ // Choose a color. Target player reveals his or her hand and discards all cards of that color.
+ this.getSpellAbility().addEffect(new PersecuteEffect());
+ this.getSpellAbility().addChoice(new ChoiceColor());
+ this.getSpellAbility().addTarget(new TargetPlayer());
+
+ }
+
+ public Persecute(final Persecute card) {
+ super(card);
+ }
+
+ @Override
+ public Persecute copy() {
+ return new Persecute(this);
+ }
+}
+
+class PersecuteEffect extends OneShotEffect {
+
+ public PersecuteEffect() {
+ super(Outcome.Discard);
+ this.staticText = "Choose a color. Target player reveals his or her hand and discards all cards of that color";
+ }
+
+ public PersecuteEffect(final PersecuteEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public PersecuteEffect copy() {
+ return new PersecuteEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ Player player = game.getPlayer(source.getFirstTarget());
+ if (player != null) {
+ ChoiceColor choice = (ChoiceColor) source.getChoices().get(0);
+ if(choice == null || choice.getColor() == null) {
+ return false;
+ }
+ Cards hand = player.getHand();
+ player.revealCards("Persecute", hand, game);
+ Set cards = hand.getCards(game);
+ for (Card card : cards) {
+ if (card != null && card.getColor().shares(choice.getColor())) {
+ player.discard(card, source, game);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+}