diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/AngelOfRenewal.java b/Mage.Sets/src/mage/sets/battleforzendikar/AngelOfRenewal.java
new file mode 100644
index 00000000000..67671cfd94a
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/AngelOfRenewal.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.EntersBattlefieldTriggeredAbility;
+import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
+import mage.abilities.effects.common.GainLifeEffect;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.common.FilterControlledCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AngelOfRenewal extends CardImpl {
+
+ public AngelOfRenewal(UUID ownerId) {
+ super(ownerId, 18, "Angel of Renewal", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{5}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Angel");
+ this.subtype.add("Ally");
+ this.power = new MageInt(4);
+ this.toughness = new MageInt(4);
+
+ // Flying
+ this.addAbility(FlyingAbility.getInstance());
+ // When Angel of Renewal enters the battlefield, you gain 1 life for each creature you control.
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(
+ new PermanentsOnBattlefieldCount(new FilterControlledCreaturePermanent()))));
+
+ }
+
+ public AngelOfRenewal(final AngelOfRenewal card) {
+ super(card);
+ }
+
+ @Override
+ public AngelOfRenewal copy() {
+ return new AngelOfRenewal(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/AngelicGift.java b/Mage.Sets/src/mage/sets/battleforzendikar/AngelicGift.java
new file mode 100644
index 00000000000..66d622f82e5
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/AngelicGift.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.common.EntersBattlefieldTriggeredAbility;
+import mage.abilities.common.SimpleStaticAbility;
+import mage.abilities.effects.common.AttachEffect;
+import mage.abilities.effects.common.DrawCardSourceControllerEffect;
+import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
+import mage.abilities.keyword.EnchantAbility;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.AttachmentType;
+import mage.constants.CardType;
+import mage.constants.Outcome;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+import mage.target.TargetPermanent;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class AngelicGift extends CardImpl {
+
+ public AngelicGift(UUID ownerId) {
+ super(ownerId, 19, "Angelic Gift", Rarity.COMMON, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Aura");
+
+ // Enchant creature
+ TargetPermanent auraTarget = new TargetCreaturePermanent();
+ this.getSpellAbility().addTarget(auraTarget);
+ this.getSpellAbility().addEffect(new AttachEffect(Outcome.AddAbility));
+ Ability ability = new EnchantAbility(auraTarget.getTargetName());
+ this.addAbility(ability);
+
+ // When Angelic Gift enters the battlefield, draw a card.
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1), false));
+
+ // Enchanted creature has flying.
+ this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new GainAbilityAttachedEffect(FlyingAbility.getInstance(), AttachmentType.AURA)));
+ }
+
+ public AngelicGift(final AngelicGift card) {
+ super(card);
+ }
+
+ @Override
+ public AngelicGift copy() {
+ return new AngelicGift(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java b/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java
index c0e52a735e1..ecade73ae51 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/ChasmGuide.java
@@ -36,6 +36,7 @@ import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
+import mage.filter.common.FilterControlledCreaturePermanent;
/**
*
@@ -53,7 +54,8 @@ public class ChasmGuide extends CardImpl {
this.toughness = new MageInt(2);
// Rally — Whenever Chasm Guide or another Ally enters the battlefield under your control, creatures you control gain haste until end of turn.
- this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn), false));
+ this.addAbility(new AllyEntersBattlefieldTriggeredAbility(
+ new GainAbilityControlledEffect(HasteAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false));
}
public ChasmGuide(final ChasmGuide card) {
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/CliffsideLookout.java b/Mage.Sets/src/mage/sets/battleforzendikar/CliffsideLookout.java
new file mode 100644
index 00000000000..a362b9e360f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/CliffsideLookout.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.continuous.BoostControlledEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class CliffsideLookout extends CardImpl {
+
+ public CliffsideLookout(UUID ownerId) {
+ super(ownerId, 20, "Cliffside Lookout", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Kor");
+ this.subtype.add("Scout");
+ this.subtype.add("Ally");
+ this.power = new MageInt(1);
+ this.toughness = new MageInt(1);
+
+ // {4}{W}: Creatures you control get +1/+1 until end of turn.
+ this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostControlledEffect(1, 1, Duration.EndOfTurn), new ManaCostsImpl<>("{4}{W}")));
+ }
+
+ public CliffsideLookout(final CliffsideLookout card) {
+ super(card);
+ }
+
+ @Override
+ public CliffsideLookout copy() {
+ return new CliffsideLookout(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/CourierGriffin.java b/Mage.Sets/src/mage/sets/battleforzendikar/CourierGriffin.java
new file mode 100644
index 00000000000..88a03fe4f6f
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/CourierGriffin.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.EntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.common.GainLifeEffect;
+import mage.abilities.keyword.FlyingAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class CourierGriffin extends CardImpl {
+
+ public CourierGriffin(UUID ownerId) {
+ super(ownerId, 21, "Courier Griffin", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Griffin");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(3);
+
+ // Flying
+ this.addAbility(FlyingAbility.getInstance());
+ // When Courier Griffin enters the battlefield, you gain 2 life.
+ this.addAbility(new EntersBattlefieldTriggeredAbility(new GainLifeEffect(2), false));
+ }
+
+ public CourierGriffin(final CourierGriffin card) {
+ super(card);
+ }
+
+ @Override
+ public CourierGriffin copy() {
+ return new CourierGriffin(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/EncirclingFissure.java b/Mage.Sets/src/mage/sets/battleforzendikar/EncirclingFissure.java
new file mode 100644
index 00000000000..3722f671901
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/EncirclingFissure.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.Ability;
+import mage.abilities.effects.PreventionEffectImpl;
+import mage.abilities.keyword.AwakenAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.game.Game;
+import mage.game.events.DamageEvent;
+import mage.game.events.GameEvent;
+import mage.game.permanent.Permanent;
+import mage.target.common.TargetOpponent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class EncirclingFissure extends CardImpl {
+
+ public EncirclingFissure(UUID ownerId) {
+ super(ownerId, 23, "Encircling Fissure", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{2}{W}");
+ this.expansionSetCode = "BFZ";
+
+ // Prevent all combat damage that would be dealt this turn by creatures target opponent controls.
+ this.getSpellAbility().addEffect(new EncirclingFissurePreventEffect());
+ this.getSpellAbility().addTarget(new TargetOpponent());
+
+ // Awaken 2 —{4}{W}
+ this.addAbility(new AwakenAbility(this, 2, "{4}{W}"));
+ }
+
+ public EncirclingFissure(final EncirclingFissure card) {
+ super(card);
+ }
+
+ @Override
+ public EncirclingFissure copy() {
+ return new EncirclingFissure(this);
+ }
+}
+
+class EncirclingFissurePreventEffect extends PreventionEffectImpl {
+
+ public EncirclingFissurePreventEffect() {
+ super(Duration.EndOfTurn, Integer.MAX_VALUE, true, false);
+ staticText = "Prevent all combat damage that would be dealt this turn by creatures target opponent controls";
+ }
+
+ public EncirclingFissurePreventEffect(final EncirclingFissurePreventEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public EncirclingFissurePreventEffect copy() {
+ return new EncirclingFissurePreventEffect(this);
+ }
+
+ @Override
+ public boolean applies(GameEvent event, Ability source, Game game) {
+ if (super.applies(event, source, game) && event instanceof DamageEvent && event.getAmount() > 0) {
+ DamageEvent damageEvent = (DamageEvent) event;
+ if (damageEvent.isCombatDamage()) {
+ Permanent permanent = game.getPermanent(damageEvent.getSourceId());
+ if (permanent != null
+ && permanent.getCardType().contains(CardType.CREATURE)
+ && permanent.getControllerId().equals(getTargetPointer().getFirst(game, source))) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/ExpeditionEnvoy.java b/Mage.Sets/src/mage/sets/battleforzendikar/ExpeditionEnvoy.java
index e48615cc187..2238af4b527 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/ExpeditionEnvoy.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/ExpeditionEnvoy.java
@@ -40,7 +40,7 @@ import mage.constants.Rarity;
public class ExpeditionEnvoy extends CardImpl {
public ExpeditionEnvoy(UUID ownerId) {
- super(ownerId, 024, "Expedition Envoy", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{W}");
+ super(ownerId, 24, "Expedition Envoy", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{W}");
this.expansionSetCode = "BFZ";
this.subtype.add("Human");
this.subtype.add("Scout");
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java b/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java
index 610370d6342..4dfae72574a 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/FiremantleMage.java
@@ -36,6 +36,7 @@ import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
+import mage.filter.common.FilterControlledCreaturePermanent;
/**
*
@@ -53,7 +54,8 @@ public class FiremantleMage extends CardImpl {
this.toughness = new MageInt(2);
// Rally — Whenver Firemantle Mage or another Ally enters the battlefield under your control, creatures you control gain menace until end of turn.
- this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(new MenaceAbility(), Duration.EndOfTurn), false));
+ this.addAbility(new AllyEntersBattlefieldTriggeredAbility(
+ new GainAbilityControlledEffect(new MenaceAbility(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false));
}
public FiremantleMage(final FiremantleMage card) {
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/FortifiedRampart.java b/Mage.Sets/src/mage/sets/battleforzendikar/FortifiedRampart.java
index 81ce7972850..73543737e94 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/FortifiedRampart.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/FortifiedRampart.java
@@ -41,7 +41,7 @@ import mage.constants.Rarity;
public class FortifiedRampart extends CardImpl {
public FortifiedRampart(UUID ownerId) {
- super(ownerId, 027, "Fortified Rampart", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
+ super(ownerId, 27, "Fortified Rampart", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
this.expansionSetCode = "BFZ";
this.subtype.add("Wall");
this.power = new MageInt(0);
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/InspiredCharge.java b/Mage.Sets/src/mage/sets/battleforzendikar/InspiredCharge.java
index 057788a5971..3b5d54435b3 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/InspiredCharge.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/InspiredCharge.java
@@ -37,7 +37,7 @@ public class InspiredCharge extends mage.sets.magic2011.InspiredCharge {
public InspiredCharge(UUID ownerId) {
super(ownerId);
- this.cardNumber = 032;
+ this.cardNumber = 32;
this.expansionSetCode = "BFZ";
}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/KitesailScout.java b/Mage.Sets/src/mage/sets/battleforzendikar/KitesailScout.java
index 999ff2d0c55..4bc5547dbd3 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/KitesailScout.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/KitesailScout.java
@@ -41,7 +41,7 @@ import mage.constants.Rarity;
public class KitesailScout extends CardImpl {
public KitesailScout(UUID ownerId) {
- super(ownerId, 033, "Kitesail Scout", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}");
+ super(ownerId, 33, "Kitesail Scout", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{W}");
this.expansionSetCode = "BFZ";
this.subtype.add("Kor");
this.subtype.add("Scout");
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/KorBladewhirl.java b/Mage.Sets/src/mage/sets/battleforzendikar/KorBladewhirl.java
new file mode 100644
index 00000000000..283723fab14
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/KorBladewhirl.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.MageInt;
+import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.keyword.FirstStrikeAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.filter.common.FilterControlledCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class KorBladewhirl extends CardImpl {
+
+ public KorBladewhirl(UUID ownerId) {
+ super(ownerId, 34, "Kor Bladewhirl", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Kor");
+ this.subtype.add("Soldier");
+ this.subtype.add("Ally");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(2);
+
+ // Rally — Whenever Kor Bladewhirl or another Ally enters the battlefield under your control, creatures you control gain first strike until end of turn.
+ this.addAbility(new AllyEntersBattlefieldTriggeredAbility(
+ new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false));
+ }
+
+ public KorBladewhirl(final KorBladewhirl card) {
+ super(card);
+ }
+
+ @Override
+ public KorBladewhirl copy() {
+ return new KorBladewhirl(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/KorCastigator.java b/Mage.Sets/src/mage/sets/battleforzendikar/KorCastigator.java
new file mode 100644
index 00000000000..2595f18b8b3
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/KorCastigator.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.common.SimpleEvasionAbility;
+import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesSourceEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.mageobject.SubtypePredicate;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class KorCastigator extends CardImpl {
+
+ private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("Eldrazi Scions");
+
+ static {
+ filter.add(new SubtypePredicate("Eldrazi"));
+ filter.add(new SubtypePredicate("Scion"));
+ }
+
+ public KorCastigator(UUID ownerId) {
+ super(ownerId, 35, "Kor Castigator", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Kor");
+ this.subtype.add("Wizard");
+ this.subtype.add("Ally");
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(1);
+
+ // Kor Castigator can't be blocked by Eldrazi Scions.
+ this.addAbility(new SimpleEvasionAbility(new CantBeBlockedByCreaturesSourceEffect(filter, Duration.WhileOnBattlefield)));
+ }
+
+ public KorCastigator(final KorCastigator card) {
+ super(card);
+ }
+
+ @Override
+ public KorCastigator copy() {
+ return new KorCastigator(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/KorEntanglers.java b/Mage.Sets/src/mage/sets/battleforzendikar/KorEntanglers.java
new file mode 100644
index 00000000000..7e4e28338d5
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/KorEntanglers.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.common.TapTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.TargetController;
+import mage.filter.common.FilterCreaturePermanent;
+import mage.filter.predicate.permanent.ControllerPredicate;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class KorEntanglers extends CardImpl {
+
+ private final static FilterCreaturePermanent filter = new FilterCreaturePermanent("creature an opponent controls");
+
+ static {
+ filter.add(new ControllerPredicate(TargetController.OPPONENT));
+ }
+
+ public KorEntanglers(UUID ownerId) {
+ super(ownerId, 36, "Kor Entanglers", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{4}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Kor");
+ this.subtype.add("Soldier");
+ this.subtype.add("Ally");
+ this.power = new MageInt(3);
+ this.toughness = new MageInt(4);
+
+ // Rally — Whenever Kor Entanglers or another Ally enters the battlefield under your control, tap target creature an opponent controls.
+ Ability ability = new AllyEntersBattlefieldTriggeredAbility(new TapTargetEffect(), false);
+ ability.addTarget(new TargetCreaturePermanent(filter));
+ this.addAbility(ability);
+
+ }
+
+ public KorEntanglers(final KorEntanglers card) {
+ super(card);
+ }
+
+ @Override
+ public KorEntanglers copy() {
+ return new KorEntanglers(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/LithomancersFocus.java b/Mage.Sets/src/mage/sets/battleforzendikar/LithomancersFocus.java
new file mode 100644
index 00000000000..93abab3bb34
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/LithomancersFocus.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageObject;
+import mage.abilities.Ability;
+import mage.abilities.effects.PreventionEffectImpl;
+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.game.Game;
+import mage.game.events.GameEvent;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class LithomancersFocus extends CardImpl {
+
+ public LithomancersFocus(UUID ownerId) {
+ super(ownerId, 38, "Lithomancer's Focus", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{W}");
+ this.expansionSetCode = "BFZ";
+
+ // Target creature gets +2/+2 until end of turn.
+ this.getSpellAbility().addEffect(new BoostTargetEffect(2, 2, Duration.EndOfTurn));
+ this.getSpellAbility().addTarget(new TargetCreaturePermanent());
+
+ // Prevent all damage that would be dealt to that creature this turn by colorless sources.
+ this.getSpellAbility().addEffect(new LithomancersFocusPreventDamageToTargetEffect());
+ }
+
+ public LithomancersFocus(final LithomancersFocus card) {
+ super(card);
+ }
+
+ @Override
+ public LithomancersFocus copy() {
+ return new LithomancersFocus(this);
+ }
+}
+
+class LithomancersFocusPreventDamageToTargetEffect extends PreventionEffectImpl {
+
+ public LithomancersFocusPreventDamageToTargetEffect() {
+ super(Duration.EndOfTurn, Integer.MAX_VALUE, false);
+ staticText = "Prevent all damage that would be dealt to that creature this turn by colorless sources";
+ }
+
+ public LithomancersFocusPreventDamageToTargetEffect(final LithomancersFocusPreventDamageToTargetEffect effect) {
+ super(effect);
+ }
+
+ @Override
+ public LithomancersFocusPreventDamageToTargetEffect copy() {
+ return new LithomancersFocusPreventDamageToTargetEffect(this);
+ }
+
+ @Override
+ public boolean applies(GameEvent event, Ability source, Game game) {
+ if (super.applies(event, source, game) && event.getTargetId().equals(targetPointer.getFirst(game, source))) {
+ MageObject object = game.getObject(event.getSourceId());
+ return object != null && object.getColor(game).isColorless();
+ }
+ return false;
+ }
+
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/MakindiPatrol.java b/Mage.Sets/src/mage/sets/battleforzendikar/MakindiPatrol.java
new file mode 100644
index 00000000000..52a9f396492
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/MakindiPatrol.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.MageInt;
+import mage.abilities.common.AllyEntersBattlefieldTriggeredAbility;
+import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
+import mage.abilities.keyword.VigilanceAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.filter.common.FilterControlledCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class MakindiPatrol extends CardImpl {
+
+ public MakindiPatrol(UUID ownerId) {
+ super(ownerId, 39, "Makindi Patrol", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Human");
+ this.subtype.add("Knight");
+ this.subtype.add("Ally");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(3);
+
+ // Rally — Whenever Makindi Patrol or another Ally enters the battlefield under your control, creatures you control gain vigilance until end of turn.
+ this.addAbility(new AllyEntersBattlefieldTriggeredAbility(
+ new GainAbilityControlledEffect(VigilanceAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false));
+ }
+
+ public MakindiPatrol(final MakindiPatrol card) {
+ super(card);
+ }
+
+ @Override
+ public MakindiPatrol copy() {
+ return new MakindiPatrol(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java b/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java
index bd0a4c52632..1db9a5e52e2 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/OnduChampion.java
@@ -36,6 +36,7 @@ import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Rarity;
+import mage.filter.common.FilterControlledCreaturePermanent;
/**
*
@@ -53,7 +54,8 @@ public class OnduChampion extends CardImpl {
this.toughness = new MageInt(3);
// Rally — Whenever Ondu Champion or another Ally enters the battlefield under your control, creatures you control gain trample until end of turn.
- this.addAbility(new AllyEntersBattlefieldTriggeredAbility(new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn), false));
+ this.addAbility(new AllyEntersBattlefieldTriggeredAbility(
+ new GainAbilityControlledEffect(TrampleAbility.getInstance(), Duration.EndOfTurn, new FilterControlledCreaturePermanent("creatures you control")), false));
}
public OnduChampion(final OnduChampion card) {
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/OnduGreathorn.java b/Mage.Sets/src/mage/sets/battleforzendikar/OnduGreathorn.java
new file mode 100644
index 00000000000..008e92ca918
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/OnduGreathorn.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.effects.common.continuous.BoostSourceEffect;
+import mage.abilities.keyword.FirstStrikeAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class OnduGreathorn extends CardImpl {
+
+ public OnduGreathorn(UUID ownerId) {
+ super(ownerId, 40, "Ondu Greathorn", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{3}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Beast");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(3);
+
+ // First strike
+ this.addAbility(FirstStrikeAbility.getInstance());
+ // Landfall — Whenever a land enters the battlefield under your control, Ondu Greathorn gets +2/+2 until end of turn.
+ this.addAbility(new LandfallAbility(new BoostSourceEffect(2, 2, Duration.EndOfTurn), false));
+ }
+
+ public OnduGreathorn(final OnduGreathorn card) {
+ super(card);
+ }
+
+ @Override
+ public OnduGreathorn copy() {
+ return new OnduGreathorn(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/OnduRising.java b/Mage.Sets/src/mage/sets/battleforzendikar/OnduRising.java
new file mode 100644
index 00000000000..d10af4706ce
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/OnduRising.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.battleforzendikar;
+
+import java.util.UUID;
+import mage.abilities.DelayedTriggeredAbility;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.CreateDelayedTriggeredAbilityEffect;
+import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
+import mage.abilities.keyword.AwakenAbility;
+import mage.abilities.keyword.LifelinkAbility;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Duration;
+import mage.constants.Rarity;
+import mage.game.Game;
+import mage.game.events.GameEvent;
+import mage.game.events.GameEvent.EventType;
+import mage.game.permanent.Permanent;
+import mage.target.targetpointer.FixedTarget;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class OnduRising extends CardImpl {
+
+ public OnduRising(UUID ownerId) {
+ super(ownerId, 41, "Ondu Rising", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{1}{W}");
+ this.expansionSetCode = "BFZ";
+
+ // Whenever a creature attacks this turn, it gains lifelink until end of turn.
+ this.getSpellAbility().addEffect(new CreateDelayedTriggeredAbilityEffect(new OnduRisingTriggeredAbility()));
+
+ // Awaken 4—{4}{W}
+ this.addAbility(new AwakenAbility(this, 4, "{4}{W}"));
+ }
+
+ public OnduRising(final OnduRising card) {
+ super(card);
+ }
+
+ @Override
+ public OnduRising copy() {
+ return new OnduRising(this);
+ }
+}
+
+class OnduRisingTriggeredAbility extends DelayedTriggeredAbility {
+
+ public OnduRisingTriggeredAbility() {
+ super(new GainAbilityTargetEffect(LifelinkAbility.getInstance(), Duration.EndOfTurn), Duration.EndOfTurn, false);
+ }
+
+ public OnduRisingTriggeredAbility(OnduRisingTriggeredAbility ability) {
+ super(ability);
+ }
+
+ @Override
+ public boolean checkEventType(GameEvent event, Game game) {
+ return event.getType() == EventType.DECLARE_ATTACKER;
+ }
+
+ @Override
+ public boolean checkTrigger(GameEvent event, Game game) {
+ Permanent permanent = game.getPermanent(event.getTargetId());
+ if (permanent != null) {
+ for (Effect effect : getEffects()) {
+ effect.setTargetPointer(new FixedTarget(permanent, game));
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public OnduRisingTriggeredAbility copy() {
+ return new OnduRisingTriggeredAbility(this);
+ }
+
+ @Override
+ public String getRule() {
+ return "Whenever a creature attacks this turn, it gains lifelink until end of turn.";
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/RoilsRetribution.java b/Mage.Sets/src/mage/sets/battleforzendikar/RoilsRetribution.java
new file mode 100644
index 00000000000..b94090773f5
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/RoilsRetribution.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those 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.DamageMultiEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.filter.common.FilterAttackingOrBlockingCreature;
+import mage.target.common.TargetCreaturePermanentAmount;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class RoilsRetribution extends CardImpl {
+
+ public RoilsRetribution(UUID ownerId) {
+ super(ownerId, 45, "Roil's Retribution", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{W}{W}");
+ this.expansionSetCode = "BFZ";
+
+ // Roil's Retribution deals 5 damage divided as you choose among any number of target attacking or blocking creatures.
+ this.getSpellAbility().addEffect(new DamageMultiEffect(5));
+ this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(5, new FilterAttackingOrBlockingCreature("attacking or blocking creatures")));
+ }
+
+ public RoilsRetribution(final RoilsRetribution card) {
+ super(card);
+ }
+
+ @Override
+ public RoilsRetribution copy() {
+ return new RoilsRetribution(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/SereneSteward.java b/Mage.Sets/src/mage/sets/battleforzendikar/SereneSteward.java
new file mode 100644
index 00000000000..3b965ef9d60
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/SereneSteward.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list
+ * of conditions and the following disclaimer in the documentation and/or other materials
+ * provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation are those of the
+ * authors and should not be interpreted as representing official policies, either expressed
+ * or implied, of BetaSteward_at_googlemail.com.
+ */
+package mage.sets.battleforzendikar;
+
+import java.util.UUID;
+import mage.MageInt;
+import mage.abilities.Ability;
+import mage.abilities.common.GainLifeControllerTriggeredAbility;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.DoIfCostPaid;
+import mage.abilities.effects.common.counter.AddCountersTargetEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.counters.CounterType;
+import mage.target.common.TargetCreaturePermanent;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class SereneSteward extends CardImpl {
+
+ public SereneSteward(UUID ownerId) {
+ super(ownerId, 46, "Serene Steward", Rarity.UNCOMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Human");
+ this.subtype.add("Cleric");
+ this.subtype.add("Ally");
+ this.power = new MageInt(2);
+ this.toughness = new MageInt(2);
+
+ // Whenever you gain life, you may pay {W}. If you do, put a +1/+1 counter on target creature.
+ Ability ability = new GainLifeControllerTriggeredAbility(
+ new DoIfCostPaid(new AddCountersTargetEffect(CounterType.P1P1.createInstance()), new ManaCostsImpl("{W}")),
+ false);
+ ability.addTarget(new TargetCreaturePermanent());
+ this.addAbility(ability);
+ }
+
+ public SereneSteward(final SereneSteward card) {
+ super(card);
+ }
+
+ @Override
+ public SereneSteward copy() {
+ return new SereneSteward(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/ShadowGlider.java b/Mage.Sets/src/mage/sets/battleforzendikar/ShadowGlider.java
index 0f7f9c83a69..786eac4e37e 100644
--- a/Mage.Sets/src/mage/sets/battleforzendikar/ShadowGlider.java
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/ShadowGlider.java
@@ -41,7 +41,7 @@ import mage.constants.Rarity;
public class ShadowGlider extends CardImpl {
public ShadowGlider(UUID ownerId) {
- super(ownerId, 047, "Shadow Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
+ super(ownerId, 47, "Shadow Glider", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{2}{W}");
this.expansionSetCode = "BFZ";
this.subtype.add("Kor");
this.subtype.add("Soldier");
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/StoneHavenMedic.java b/Mage.Sets/src/mage/sets/battleforzendikar/StoneHavenMedic.java
new file mode 100644
index 00000000000..1395376edab
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/StoneHavenMedic.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.Ability;
+import mage.abilities.common.SimpleActivatedAbility;
+import mage.abilities.costs.common.TapSourceCost;
+import mage.abilities.costs.mana.ManaCostsImpl;
+import mage.abilities.effects.common.GainLifeEffect;
+import mage.cards.CardImpl;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+import mage.constants.Zone;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class StoneHavenMedic extends CardImpl {
+
+ public StoneHavenMedic(UUID ownerId) {
+ super(ownerId, 51, "Stone Haven Medic", Rarity.COMMON, new CardType[]{CardType.CREATURE}, "{1}{W}");
+ this.expansionSetCode = "BFZ";
+ this.subtype.add("Kor");
+ this.subtype.add("Cleric");
+ this.power = new MageInt(1);
+ this.toughness = new MageInt(3);
+
+ // {W}, {T}: You gain 1 life.
+ Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new GainLifeEffect(1), new ManaCostsImpl("{W}"));
+ ability.addCost(new TapSourceCost());
+ this.addAbility(ability);
+ }
+
+ public StoneHavenMedic(final StoneHavenMedic card) {
+ super(card);
+ }
+
+ @Override
+ public StoneHavenMedic copy() {
+ return new StoneHavenMedic(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/battleforzendikar/UnifiedFront.java b/Mage.Sets/src/mage/sets/battleforzendikar/UnifiedFront.java
new file mode 100644
index 00000000000..bff442256cc
--- /dev/null
+++ b/Mage.Sets/src/mage/sets/battleforzendikar/UnifiedFront.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.dynamicvalue.common.ColorsOfManaSpentToCastCount;
+import mage.abilities.effects.Effect;
+import mage.abilities.effects.common.CreateTokenEffect;
+import mage.cards.CardImpl;
+import mage.constants.AbilityWord;
+import mage.constants.CardType;
+import mage.constants.Rarity;
+
+/**
+ *
+ * @author LevelX2
+ */
+public class UnifiedFront extends CardImpl {
+
+ public UnifiedFront(UUID ownerId) {
+ super(ownerId, 53, "Unified Front", Rarity.UNCOMMON, new CardType[]{CardType.SORCERY}, "{3}{W}");
+ this.expansionSetCode = "BFZ";
+
+ // Converge — Put a 1/1 white Kor Ally creature token onto the battlefield for each color of mana spent to cast Unified Front.
+ getSpellAbility().setAbilityWord(AbilityWord.CONVERGE);
+ Effect effect = new CreateTokenEffect(new KorAllyToken(), ColorsOfManaSpentToCastCount.getInstance());
+ getSpellAbility().addEffect(effect);
+ }
+
+ public UnifiedFront(final UnifiedFront card) {
+ super(card);
+ }
+
+ @Override
+ public UnifiedFront copy() {
+ return new UnifiedFront(this);
+ }
+}
diff --git a/Mage.Sets/src/mage/sets/zendikar/ArrowVolleyTrap.java b/Mage.Sets/src/mage/sets/zendikar/ArrowVolleyTrap.java
index 704c1011a60..cf786931cf8 100644
--- a/Mage.Sets/src/mage/sets/zendikar/ArrowVolleyTrap.java
+++ b/Mage.Sets/src/mage/sets/zendikar/ArrowVolleyTrap.java
@@ -35,8 +35,7 @@ import mage.abilities.effects.common.DamageMultiEffect;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Rarity;
-import mage.filter.common.FilterCreaturePermanent;
-import mage.filter.predicate.permanent.AttackingPredicate;
+import mage.filter.common.FilterAttackingCreature;
import mage.game.Game;
import mage.target.common.TargetCreaturePermanentAmount;
@@ -45,23 +44,16 @@ import mage.target.common.TargetCreaturePermanentAmount;
*/
public class ArrowVolleyTrap extends CardImpl {
- private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("attacking creatures");
-
- static {
- filter.add(new AttackingPredicate());
- }
-
public ArrowVolleyTrap(UUID ownerId) {
super(ownerId, 2, "Arrow Volley Trap", Rarity.UNCOMMON, new CardType[]{CardType.INSTANT}, "{3}{W}{W}");
this.expansionSetCode = "ZEN";
-
// If four or more creatures are attacking, you may pay {1}{W} rather than pay Arrow Volley Trap's mana cost.
this.getSpellAbility().addAlternativeCost(new ArrowVolleyTrapAlternativeCost());
// Arrow Volley Trap deals 5 damage divided as you choose among any number of target attacking creatures.
this.getSpellAbility().addEffect(new DamageMultiEffect(5));
- this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(5, filter));
+ this.getSpellAbility().addTarget(new TargetCreaturePermanentAmount(5, new FilterAttackingCreature("attacking creatures")));
}
@@ -100,4 +92,4 @@ class ArrowVolleyTrapAlternativeCost extends AlternativeCostImpl {
public String getText() {
return "If four or more creatures are attacking, you may pay {1}{W} rather than pay {this}'s mana cost";
}
-}
\ No newline at end of file
+}