diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/Blisterpod.java b/Mage.Sets/src/mage/sets/battleforzendikar/Blisterpod.java
new file mode 100644
index 00000000000..41398c4c2d7
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/Blisterpod.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.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);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/BroodMonitor.java b/Mage.Sets/src/mage/sets/battleforzendikar/BroodMonitor.java
new file mode 100644
index 00000000000..ecf6c1431d5
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/BroodMonitor.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.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);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/CallTheScions.java b/Mage.Sets/src/mage/sets/battleforzendikar/CallTheScions.java
new file mode 100644
index 00000000000..ee853f0190f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/CallTheScions.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.battleforzendikar;
+
+import java.util.UUID;
+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
+ this.addAbility(new DevoidAbility(this.color));
+ // 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);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/DeathlessBehemoth.java b/Mage.Sets/src/mage/sets/battleforzendikar/DeathlessBehemoth.java
index aac83b5c1bb..36085ecf6d1 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/DeathlessBehemoth.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/DeathlessBehemoth.java
@@ -49,6 +49,7 @@ import mage.target.common.TargetControlledPermanent;
public class DeathlessBehemoth extends CardImpl {
private final static FilterControlledPermanent filter = new FilterControlledPermanent("two Eldrazi Scions");
+
static {
filter.add(Predicates.and(
new SubtypePredicate("Eldrazi"),
@@ -56,7 +57,7 @@ public class DeathlessBehemoth extends CardImpl {
}
public DeathlessBehemoth(UUID ownerId) {
- super(ownerId, 5, "Deathless Behemoth", Rarity.RARE, new CardType[]{CardType.CREATURE}, "{6}");
+ super(ownerId, 5, "Deathless Behemoth", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{6}");
this.expansionSetCode = "BFZ";
this.subtype.add("Eldrazi");
this.power = new MageInt(6);
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/EarthenArms.java b/Mage.Sets/src/mage/sets/battleforzendikar/EarthenArms.java
new file mode 100644
index 00000000000..b59920c5383
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/EarthenArms.java
@@ -0,0 +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.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.abilities.keyword.AwakenAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+import mage.target.TargetPermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class EarthenArms extends CardImpl {
+
+ public EarthenArms(UUID ownerId) {
+ super(ownerId, 172, "Earthen Arms", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{G}");
+ this.expansionSetCode = "BFZ";
+
+ // Put two +1/+1 counters on target permanent.
+ this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(2)));
+ this.getSpellAbility().addTarget(new TargetPermanent());
+
+ // Awaken 4 - {6}{G}
+ this.addAbility(new AwakenAbility(this, 4, "{6}{G}"));
+ }
+
+ public EarthenArms(final EarthenArms card) {
+ super(card);
+ }
+
+ @Override
+ public EarthenArms copy() {
+ return new EarthenArms(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/EyelessWatcher.java b/Mage.Sets/src/mage/sets/battleforzendikar/EyelessWatcher.java
new file mode 100644
index 00000000000..f21d030f168
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/EyelessWatcher.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.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);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/InfuseWithTheElements.java b/Mage.Sets/src/mage/sets/battleforzendikar/InfuseWithTheElements.java
new file mode 100644
index 00000000000..2a5dd29f42b
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/InfuseWithTheElements.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.abilities.keyword.HasteAbility;
+import mage.cards.CardImpl;
+import mage.constants.AbilityWord;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class InfuseWithTheElements extends CardImpl {
+
+ public InfuseWithTheElements(UUID ownerId) {
+ super(ownerId, 175, "Infuse with the Elements", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{G}");
+ this.expansionSetCode = "BFZ";
+
+ // 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.
+ this.getSpellAbility().setAbilityWord(AbilityWord.CONVERGE);
+ this.getSpellAbility().addEffect(new AddCountersTargetEffect(CounterType.P1P1.createInstance(), ColorsOfManaSpentToCastCount.getInstance()));
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent());
+ // That creature gains trample until end of turn.
+ Effect effect = new GainAbilityTargetEffect(HasteAbility.getInstance(), Duration.EndOfTurn);
+ effect.setText("That creature gains trample until end of turn");
+ this.getSpellAbility().addEffect(effect);
+ }
+
+ public InfuseWithTheElements(final InfuseWithTheElements card) {
+ super(card);
+ }
+
+ @Override
+ public InfuseWithTheElements copy() {
+ return new InfuseWithTheElements(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/JaddiOffshoot.java b/Mage.Sets/src/mage/sets/battleforzendikar/JaddiOffshoot.java
new file mode 100644
index 00000000000..20a35fa49f3
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/JaddiOffshoot.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.LandfallAbility;
+import mage.abilities.effects.common.GainLifeEffect;
+import mage.abilities.keyword.DefenderAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class JaddiOffshoot extends CardImpl {
+
+ public JaddiOffshoot(UUID ownerId) {
+ super(ownerId, 176, "Jaddi Offshoot", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{G}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Plant");
+ this.power = new MageInt(0);
+ this.toughness = new MageInt(3);
+
+ // Defender
+ this.addAbility(DefenderAbility.getInstance());
+ // Landfall - Whenever a land enters the battlefield under your control, you gain 1 life.
+ this.addAbility(new LandfallAbility(new GainLifeEffect(1), false));
+ }
+
+ public JaddiOffshoot(final JaddiOffshoot card) {
+ super(card);
+ }
+
+ @Override
+ public JaddiOffshoot copy() {
+ return new JaddiOffshoot(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/LifespringDruid.java b/Mage.Sets/src/mage/sets/battleforzendikar/LifespringDruid.java
new file mode 100644
index 00000000000..72cfe4c7392
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/LifespringDruid.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.mana.AnyColorManaAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class LifespringDruid extends CardImpl {
+
+ public LifespringDruid(UUID ownerId) {
+ super(ownerId, 177, "Lifespring Druid", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{G}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Elf");
+ this.subtype.add("Druid");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(1);
+
+ // {T}: Add one mana of any color to your mana pool.
+ this.addAbility(new AnyColorManaAbility());
+ }
+
+ public LifespringDruid(final LifespringDruid card) {
+ super(card);
+ }
+
+ @Override
+ public LifespringDruid copy() {
+ return new LifespringDruid(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/MurasaRanger.java b/Mage.Sets/src/mage/sets/battleforzendikar/MurasaRanger.java
new file mode 100644
index 00000000000..39b26a74afb
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/MurasaRanger.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.LandfallAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.DoIfCostPaid;
+import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class MurasaRanger extends CardImpl {
+
+ public MurasaRanger(UUID ownerId) {
+ super(ownerId, 178, "Murasa Ranger", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{3}{G}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Human");
+ this.subtype.add("Warrior");
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(3);
+
+ // Landfall - Whenever a land enters the battlefield under your control, you may pay {3}{G}. IF you do, put two +1/+1 counters on Murasa Ranger.
+ this.addAbility(new LandfallAbility(new DoIfCostPaid(new AddCountersSourceEffect(CounterType.P1P1.createInstance(2)), new ManaCostsImpl("{3}{G}")), false));
+ }
+
+ public MurasaRanger(final MurasaRanger card) {
+ super(card);
+ }
+
+ @Override
+ public MurasaRanger copy() {
+ return new MurasaRanger(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/NaturalConnection.java b/Mage.Sets/src/mage/sets/battleforzendikar/NaturalConnection.java
new file mode 100644
index 00000000000..acd8ac264e2
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/NaturalConnection.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.common.FilterBasicLandCard;
+import mage.target.common.TargetCardInLibrary;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class NaturalConnection extends CardImpl {
+
+ public NaturalConnection(UUID ownerId) {
+ super(ownerId, 179, "Natural Connection", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}");
+ this.expansionSetCode = "BFZ";
+
+ // Search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library.
+ TargetCardInLibrary target = new TargetCardInLibrary(new FilterBasicLandCard());
+ this.getSpellAbility().addEffect(new SearchLibraryPutInPlayEffect(target, true));
+
+ }
+
+ public NaturalConnection(final NaturalConnection card) {
+ super(card);
+ }
+
+ @Override
+ public NaturalConnection copy() {
+ return new NaturalConnection(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/OranRiefInvoker.java b/Mage.Sets/src/mage/sets/battleforzendikar/OranRiefInvoker.java
new file mode 100644
index 00000000000..3328a451a09
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/OranRiefInvoker.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.battleforzendikar;
+
+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.Effect;
+import mage.abilities.effects.common.continuous.BoostSourceEffect;
+import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
+import mage.abilities.keyword.TrampleAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class OranRiefInvoker extends CardImpl {
+
+ public OranRiefInvoker(UUID ownerId) {
+ super(ownerId, 182, "Oran-Rief Invoker", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{G}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Human");
+ this.subtype.add("Shaman");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(2);
+
+ // {8}: Oran-Rief Invoker gets +5/+5 and gains trample until end of turn.
+ Effect effect = new BoostSourceEffect(5, 5, Duration.EndOfTurn);
+ effect.setText("{source} gets +5/+5");
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, effect, new GenericManaCost(8));
+ effect = new GainAbilitySourceEffect(TrampleAbility.getInstance(), Duration.EndOfTurn);
+ effect.setText("and gains trample until end of turn");
+ ability.addEffect(effect);
+ this.addAbility(ability);
+ }
+
+ public OranRiefInvoker(final OranRiefInvoker card) {
+ super(card);
+ }
+
+ @Override
+ public OranRiefInvoker copy() {
+ return new OranRiefInvoker(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/ReclaimingVines.java b/Mage.Sets/src/mage/sets/battleforzendikar/ReclaimingVines.java
new file mode 100644
index 00000000000..8481715ce96
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/ReclaimingVines.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.effects.common.DestroyTargetEffect;
+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 ReclaimingVines extends CardImpl {
+
+ private static final FilterPermanent filter = new FilterPermanent("artifact, enchantment, or land");
+
+ static {
+ filter.add(Predicates.or(
+ new CardTypePredicate(CardType.ARTIFACT),
+ new CardTypePredicate(CardType.ENCHANTMENT),
+ new CardTypePredicate(CardType.LAND)));
+ }
+
+ public ReclaimingVines(UUID ownerId) {
+ super(ownerId, 185, "Reclaiming Vines", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{2}{G}{G}");
+ this.expansionSetCode = "BFZ";
+
+ // Destroy target artifact, enchantment, or land.
+ this.getSpellAbility().addEffect(new DestroyTargetEffect());
+ this.getSpellAbility().addTarget(new TargetPermanent(filter));
+ }
+
+ public ReclaimingVines(final ReclaimingVines card) {
+ super(card);
+ }
+
+ @Override
+ public ReclaimingVines copy() {
+ return new ReclaimingVines(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/RotShambler.java b/Mage.Sets/src/mage/sets/battleforzendikar/RotShambler.java
new file mode 100644
index 00000000000..b42c874827b
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/RotShambler.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.DiesCreatureTriggeredAbility;
+import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.counters.CounterType;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.permanent.AnotherPredicate;
+import mage.filter.predicate.permanent.ControllerPredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RotShambler extends CardImpl {
+
+ private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("another creature you control");
+
+ static {
+ filter.add(new AnotherPredicate());
+ filter.add(new ControllerPredicate(TargetController.YOU));
+ }
+
+ public RotShambler(UUID ownerId) {
+ super(ownerId, 187, "Rot Shambler", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{G}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Fungus");
+ this.power = new MageInt(1);
+ this.toughness = new MageInt(1);
+
+ // Whenever another creature you control dies, put a +1/+1 counter on Rot Shambler.
+ this.addAbility(new DiesCreatureTriggeredAbility(new AddCountersSourceEffect(CounterType.P1P1.createInstance()), false, filter));
+
+ }
+
+ public RotShambler(final RotShambler card) {
+ super(card);
+ }
+
+ @Override
+ public RotShambler copy() {
+ return new RotShambler(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/RuinProcessor.java b/Mage.Sets/src/mage/sets/battleforzendikar/RuinProcessor.java
index 1b4c18931d8..96200d7cb4c 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/RuinProcessor.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/RuinProcessor.java
@@ -54,7 +54,7 @@ import mage.target.common.TargetCardInExile;
public class RuinProcessor extends CardImpl {
public RuinProcessor(UUID ownerId) {
- super(ownerId, 12, "Ruin Processor", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{7}");
+ super(ownerId, 12, "Ruin Processor", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{7}");
this.expansionSetCode = "BFZ";
this.subtype.add("Eldrazi");
this.subtype.add("Processor");
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/SeekTheWilds.java b/Mage.Sets/src/mage/sets/battleforzendikar/SeekTheWilds.java
new file mode 100644
index 00000000000..40a3d84db60
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/SeekTheWilds.java
@@ -0,0 +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.dynamicvalue.common.StaticValue;
+import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.FilterCard;
+import mage.filter.predicate.Predicates;
+import mage.filter.predicate.mageobject.CardTypePredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SeekTheWilds extends CardImpl {
+
+ private static final FilterCard filter = new FilterCard("a creature or land card");
+
+ static {
+ filter.add(Predicates.or(new CardTypePredicate(CardType.CREATURE), new CardTypePredicate(CardType.LAND)));
+ }
+
+ public SeekTheWilds(UUID ownerId) {
+ super(ownerId, 189, "Seek the Wilds", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{G}");
+ this.expansionSetCode = "BFZ";
+
+ // Look at the top four cards of your library. You may reveal a creature or land card from among them and put it into your hand. Put the rest on the bottom of your library in any order.
+ this.getSpellAbility().addEffect(new LookLibraryAndPickControllerEffect(new StaticValue(4), false, new StaticValue(1), filter, false));
+
+ }
+
+ public SeekTheWilds(final SeekTheWilds card) {
+ super(card);
+ }
+
+ @Override
+ public SeekTheWilds copy() {
+ return new SeekTheWilds(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/SwellOfGrowth.java b/Mage.Sets/src/mage/sets/battleforzendikar/SwellOfGrowth.java
new file mode 100644
index 00000000000..21da131ea05
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/SwellOfGrowth.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.effects.common.PutLandFromHandOntoBattlefieldEffect;
+import mage.abilities.effects.common.continuous.BoostTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SwellOfGrowth extends CardImpl {
+
+ public SwellOfGrowth(UUID ownerId) {
+ super(ownerId, 191, "Swell of Growth", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{1}{G}");
+ this.expansionSetCode = "BFZ";
+
+ // Target creature gets +2/+2 until end of turn. You may put a land card from your hand onto the battlefield.
+ this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent());
+ this.getSpellAbility().addEffect(new PutLandFromHandOntoBattlefieldEffect());
+ }
+
+ public SwellOfGrowth(final SwellOfGrowth card) {
+ super(card);
+ }
+
+ @Override
+ public SwellOfGrowth copy() {
+ return new SwellOfGrowth(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/TajuruBeastmaster.java b/Mage.Sets/src/mage/sets/battleforzendikar/TajuruBeastmaster.java
new file mode 100644
index 00000000000..a73c8265b5e
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/TajuruBeastmaster.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.common.continuous.BoostControlledEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class TajuruBeastmaster extends CardImpl {
+
+ public TajuruBeastmaster(UUID ownerId) {
+ super(ownerId, 193, "Tajuru Beastmaster", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{5}{G}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Elf");
+ this.subtype.add("Warrior");
+ this.subtype.add("Ally");
+ this.power = new MageInt(5);
+ this.toughness = new MageInt(5);
+
+ // Rally - Whenever Tajuru Beastmaster or another Ally creature enters the battlefield under your control, creatures you control get +1/+1 until end of turn.
+ this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new BoostControlledEffect(1, 1, Duration.EndOfTurn), false));
+ }
+
+ public TajuruBeastmaster(final TajuruBeastmaster card) {
+ super(card);
+ }
+
+ @Override
+ public TajuruBeastmaster copy() {
+ return new TajuruBeastmaster(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/TajuruStalwart.java b/Mage.Sets/src/mage/sets/battleforzendikar/TajuruStalwart.java
new file mode 100644
index 00000000000..15981c7815d
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/TajuruStalwart.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.EntersBattlefieldAbility;
+import mage.abilities.dynamicvalue.common.ColorsOfManaSpentToCastCount;
+import mage.abilities.effects.common.counter.AddCountersSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class TajuruStalwart extends CardImpl {
+
+ public TajuruStalwart(UUID ownerId) {
+ super(ownerId, 194, "Tajuru Stalwart", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{G}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Elf");
+ this.subtype.add("Scout");
+ this.subtype.add("Ally");
+ this.power = new MageInt(0);
+ this.toughness = new MageInt(1);
+
+ // Converge - Tajuru Stalwart enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.
+ this.addAbility(new EntersBattlefieldAbility(
+ new AddCountersSourceEffect(CounterType.P1P1.createInstance(), ColorsOfManaSpentToCastCount.getInstance(), true),
+ null, true, "Converge - {this} enters the battlefield with a +1/+1 counter on it for each color of mana spent to cast it.", null));
+
+ }
+
+ public TajuruStalwart(final TajuruStalwart card) {
+ super(card);
+ }
+
+ @Override
+ public TajuruStalwart copy() {
+ return new TajuruStalwart(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/UnnaturalAggression.java b/Mage.Sets/src/mage/sets/battleforzendikar/UnnaturalAggression.java
new file mode 100644
index 00000000000..e6524803953
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/UnnaturalAggression.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those 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.ReplacementEffectImpl;
+import mage.abilities.effects.common.FightTargetsEffect;
+import mage.abilities.keyword.DevoidAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.constants.Zone;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.permanent.ControllerPredicate;
+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.players.Player;
+import mage.target.common.TargetControlledCreaturePermanent;
+import mage.target.common.TargetCreaturePermanent;
+import mage.target.targetpointer.FixedTarget;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class UnnaturalAggression extends CardImpl {
+
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
+
+ static {
+ filter.add(new ControllerPredicate(TargetController.OPPONENT));
+ }
+
+ public UnnaturalAggression(UUID ownerId) {
+ super(ownerId, 168, "Unnatural Aggression", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{G}");
+ this.expansionSetCode = "BFZ";
+
+ // Devoid
+ this.addAbility(new DevoidAbility(this.color));
+ // Target creature you control fights target creature an opponent controls.
+ this.getSpellAbility().addEffect(new FightTargetsEffect());
+ this.getSpellAbility().addTarget(new TargetControlledCreaturePermanent());
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent(filter));
+ // If the creature an opponent controls would die this turn, exile it instead.
+ this.getSpellAbility().addEffect(new DealtDamageToOpponentsCreatureDiesEffect(Duration.EndOfTurn));
+ }
+
+ public UnnaturalAggression(final UnnaturalAggression card) {
+ super(card);
+ }
+
+ @Override
+ public UnnaturalAggression copy() {
+ return new UnnaturalAggression(this);
+ }
+}
+
+class DealtDamageToOpponentsCreatureDiesEffect extends ReplacementEffectImpl {
+
+ public DealtDamageToOpponentsCreatureDiesEffect(Duration duration) {
+ super(Duration.EndOfTurn, Outcome.Exile);
+ staticText = "If the creature an opponent controls would die this turn, exile it instead";
+ }
+
+ public DealtDamageToOpponentsCreatureDiesEffect(final DealtDamageToOpponentsCreatureDiesEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public DealtDamageToOpponentsCreatureDiesEffect copy() {
+ return new DealtDamageToOpponentsCreatureDiesEffect(this);
+ }
+
+ @Override
+ public boolean apply(Game game, Ability source) {
+ return true;
+ }
+
+ @Override
+ public void init(Ability source, Game game) {
+ super.init(source, game);
+ Permanent opponentCreature = game.getPermanent(source.getTargets().get(1).getFirstTarget());
+ if (opponentCreature != null) {
+ this.setTargetPointer(new FixedTarget(opponentCreature, game));
+ } else {
+ discard();
+ }
+ }
+
+ @Override
+ public boolean replaceEvent(GameEvent event, Ability source, Game game) {
+ Permanent permanent = ((ZoneChangeEvent) event).getTarget();
+ Player controller = game.getPlayer(source.getControllerId());
+ if (controller != null && permanent != null) {
+ return controller.moveCards(permanent, null, Zone.EXILED, source, game);
+ }
+ return false;
+ }
+
+ @Override
+ public boolean checksEventType(GameEvent event, Game game) {
+ return event.getType() == EventType.ZONE_CHANGE;
+ }
+
+ @Override
+ public boolean applies(GameEvent event, Ability source, Game game) {
+ ZoneChangeEvent zce = (ZoneChangeEvent) event;
+ return zce.isDiesEvent() && zce.getTargetId().equals(getTargetPointer().getFirst(game, source));
+ }
+
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/VoidAttendant.java b/Mage.Sets/src/mage/sets/battleforzendikar/VoidAttendant.java
new file mode 100644
index 00000000000..6bda7350b34
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/VoidAttendant.java
@@ -0,0 +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.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.CostImpl;
+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.Card;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.constants.Zone;
+import mage.filter.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 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 VoidAttendantPutOpponentExileCardToGraveyardCost());
+ this.addAbility(ability);
+
+ }
+
+ public VoidAttendant(final VoidAttendant card) {
+ super(card);
+ }
+
+ @Override
+ public VoidAttendant copy() {
+ return new VoidAttendant(this);
+ }
+}
+
+class VoidAttendantPutOpponentExileCardToGraveyardCost extends CostImpl {
+
+ public VoidAttendantPutOpponentExileCardToGraveyardCost() {
+ this.text = "Put a card an opponent owns from exile into that player's graveyard";
+ }
+
+ public VoidAttendantPutOpponentExileCardToGraveyardCost(VoidAttendantPutOpponentExileCardToGraveyardCost cost) {
+ super(cost);
+ }
+
+ @Override
+ public boolean pay(Ability ability, Game game, UUID sourceId, UUID controllerId, boolean noMana) {
+ Player controller = game.getPlayer(controllerId);
+ if (controller != null) {
+ FilterCard filter = new FilterCard();
+ filter.add(new OwnerPredicate(TargetController.OPPONENT));
+ Target target = new TargetCardInExile(filter);
+ if (controller.chooseTarget(Outcome.Damage, target, ability, game)) {
+ Card card = game.getCard(target.getFirstTarget());
+ if (card != null) {
+ paid = true;
+ controller.moveCards(card, null, Zone.GRAVEYARD, ability, game);
+ }
+ }
+ }
+ return paid;
+ }
+
+ @Override
+ public boolean canPay(Ability ability, UUID sourceId, UUID controllerId, Game game) {
+ Player controller = game.getPlayer(controllerId);
+ if (controller != null) {
+ for (Card card : game.getExile().getAllCards(game)) {
+ if (controller.hasOpponent(card.getOwnerId(), game)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public VoidAttendantPutOpponentExileCardToGraveyardCost copy() {
+ return new VoidAttendantPutOpponentExileCardToGraveyardCost(this);
+ }
+
+}
diff --git a/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java b/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java
index 25df790451c..9f421323473 100644
--- a/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java
+++ b/Mage/src/mage/abilities/effects/common/counter/AddCountersTargetEffect.java
@@ -1,16 +1,16 @@
/*
* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
- *
+ *
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
- *
+ *
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
- *
+ *
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
- *
+ *
* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
@@ -20,28 +20,26 @@
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
+ *
* The views and conclusions contained in the software and documentation are 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.counter;
-import mage.constants.Outcome;
-import mage.abilities.Ability;
-import mage.abilities.effects.OneShotEffect;
-import mage.counters.Counter;
-import mage.game.Game;
-import mage.game.permanent.Permanent;
-import mage.players.Player;
-
import java.util.UUID;
import mage.MageObject;
+import mage.abilities.Ability;
import mage.abilities.Mode;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.StaticValue;
+import mage.abilities.effects.OneShotEffect;
+import mage.constants.Outcome;
+import mage.counters.Counter;
import mage.counters.CounterType;
+import mage.game.Game;
+import mage.game.permanent.Permanent;
+import mage.players.Player;
import mage.util.CardUtil;
/**
@@ -54,7 +52,7 @@ public class AddCountersTargetEffect extends OneShotEffect {
private DynamicValue amount;
public AddCountersTargetEffect(Counter counter) {
- this(counter, counter.getName().equals(CounterType.M1M1.getName()) ? Outcome.UnboostCreature: Outcome.Benefit);
+ this(counter, counter.getName().equals(CounterType.M1M1.getName()) ? Outcome.UnboostCreature : Outcome.Benefit);
}
public AddCountersTargetEffect(Counter counter, DynamicValue amount) {
@@ -94,10 +92,10 @@ public class AddCountersTargetEffect extends OneShotEffect {
int before = permanent.getCounters().getCount(counter.getName());
permanent.addCounters(newCounter, game);
int numberAdded = permanent.getCounters().getCount(counter.getName()) - before;
- affectedTargets ++;
+ affectedTargets++;
if (!game.isSimulation()) {
- game.informPlayers(sourceObject.getLogName() +": "+ controller.getLogName()+ " puts " +
- numberAdded + " " + counter.getName().toLowerCase() + " counter on " + permanent.getLogName());
+ game.informPlayers(sourceObject.getLogName() + ": " + controller.getLogName() + " puts "
+ + numberAdded + " " + counter.getName().toLowerCase() + " counter on " + permanent.getLogName());
}
}
} else {
@@ -106,14 +104,14 @@ public class AddCountersTargetEffect extends OneShotEffect {
Counter newCounter = counter.copy();
newCounter.add(amount.calculate(game, source, this));
player.addCounters(newCounter, game);
- affectedTargets ++;
+ affectedTargets++;
if (!game.isSimulation()) {
- game.informPlayers(sourceObject.getLogName() +": " + controller.getLogName() + " puts " +
- counter.getCount() + " " + counter.getName().toLowerCase() + " counter on " + player.getLogName());
- }
+ game.informPlayers(sourceObject.getLogName() + ": " + controller.getLogName() + " puts "
+ + counter.getCount() + " " + counter.getName().toLowerCase() + " counter on " + player.getLogName());
+ }
}
}
- }
+ }
return affectedTargets > 0;
}
return false;
@@ -131,8 +129,11 @@ public class AddCountersTargetEffect extends OneShotEffect {
} else {
sb.append("a ");
}
- sb.append(counter.getName().toLowerCase()).append(" counter on ");
-
+ sb.append(counter.getName().toLowerCase()).append(" counter");
+ if (counter.getCount() > 1) {
+ sb.append("s");
+ }
+ sb.append(" on ");
// TODO: add normal text infrastructure for target pointers
if (mode.getTargets().size() > 0) {
@@ -155,5 +156,4 @@ public class AddCountersTargetEffect extends OneShotEffect {
return new AddCountersTargetEffect(this);
}
-
}
diff --git a/Mage/src/mage/abilities/effects/common/replacement/DealtDamageToCreatureBySourceDies.java b/Mage/src/mage/abilities/effects/common/replacement/DealtDamageToCreatureBySourceDies.java
index 7132048114b..ddb8825748e 100644
--- a/Mage/src/mage/abilities/effects/common/replacement/DealtDamageToCreatureBySourceDies.java
+++ b/Mage/src/mage/abilities/effects/common/replacement/DealtDamageToCreatureBySourceDies.java
@@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
-
package mage.abilities.effects.common.replacement;
import mage.abilities.Ability;
@@ -47,11 +46,10 @@ import mage.watchers.common.DamagedByWatcher;
*
* @author LevelX2
*/
-
public class DealtDamageToCreatureBySourceDies extends ReplacementEffectImpl {
public DealtDamageToCreatureBySourceDies(Card card, Duration duration) {
- super(Duration.WhileOnBattlefield, Outcome.Exile);
+ super(duration, Outcome.Exile);
if (card.getCardType().contains(CardType.CREATURE)) {
staticText = "If a creature dealt damage by {this} this turn would die, exile it instead";
} else {
@@ -75,7 +73,7 @@ public class DealtDamageToCreatureBySourceDies extends ReplacementEffectImpl {
@Override
public boolean replaceEvent(GameEvent event, Ability source, Game game) {
- Permanent permanent = ((ZoneChangeEvent)event).getTarget();
+ Permanent permanent = ((ZoneChangeEvent) event).getTarget();
Player controller = game.getPlayer(source.getControllerId());
if (controller != null && permanent != null) {
return controller.moveCardToExileWithInfo(permanent, null, "", source.getSourceId(), game, Zone.BATTLEFIELD, true);
@@ -90,7 +88,7 @@ public class DealtDamageToCreatureBySourceDies extends ReplacementEffectImpl {
@Override
public boolean applies(GameEvent event, Ability source, Game game) {
- ZoneChangeEvent zce = (ZoneChangeEvent) event;
+ ZoneChangeEvent zce = (ZoneChangeEvent) event;
if (zce.isDiesEvent()) {
DamagedByWatcher watcher = (DamagedByWatcher) game.getState().getWatchers().get("DamagedByWatcher", source.getSourceId());
if (watcher != null) {