From ffef19fe43717ae4fb21b682a754ad7f106ed1af Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sun, 31 Mar 2019 12:43:00 -0400 Subject: [PATCH] Implemented Invade the City --- Mage.Sets/src/mage/cards/i/InvadeTheCity.java | 35 +++++++++++++++++++ Mage.Sets/src/mage/sets/WarOfTheSpark.java | 1 + .../effects/keyword/AmassEffect.java | 4 +-- 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/i/InvadeTheCity.java diff --git a/Mage.Sets/src/mage/cards/i/InvadeTheCity.java b/Mage.Sets/src/mage/cards/i/InvadeTheCity.java new file mode 100644 index 00000000000..5f66f9a070f --- /dev/null +++ b/Mage.Sets/src/mage/cards/i/InvadeTheCity.java @@ -0,0 +1,35 @@ +package mage.cards.i; + +import mage.abilities.dynamicvalue.common.CardsInControllerGraveyardCount; +import mage.abilities.effects.keyword.AmassEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.common.FilterInstantOrSorceryCard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class InvadeTheCity extends CardImpl { + + public static final FilterInstantOrSorceryCard filter + = new FilterInstantOrSorceryCard("instant and sorcery cards"); + + public InvadeTheCity(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{U}{R}"); + + // Amass X, where X is the number of instant and sorcery cards in your graveyard. + this.getSpellAbility().addEffect(new AmassEffect(new CardsInControllerGraveyardCount(filter))); + } + + private InvadeTheCity(final InvadeTheCity card) { + super(card); + } + + @Override + public InvadeTheCity copy() { + return new InvadeTheCity(this); + } +} diff --git a/Mage.Sets/src/mage/sets/WarOfTheSpark.java b/Mage.Sets/src/mage/sets/WarOfTheSpark.java index 1b813b96f04..dfaa7c8cd29 100644 --- a/Mage.Sets/src/mage/sets/WarOfTheSpark.java +++ b/Mage.Sets/src/mage/sets/WarOfTheSpark.java @@ -28,6 +28,7 @@ public final class WarOfTheSpark extends ExpansionSet { cards.add(new SetCardInfo("Forest", 263, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Forest", 264, Rarity.LAND, mage.cards.basiclands.Forest.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Herald of the Dreadhorde", 93, Rarity.COMMON, mage.cards.h.HeraldOfTheDreadhorde.class)); + cards.add(new SetCardInfo("Invade the City", 201, Rarity.UNCOMMON, mage.cards.i.InvadeTheCity.class)); cards.add(new SetCardInfo("Island", 253, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Island", 254, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Island", 255, Rarity.LAND, mage.cards.basiclands.Island.class, NON_FULL_USE_VARIOUS)); diff --git a/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java b/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java index c218a960e55..98d4ea01cb1 100644 --- a/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/keyword/AmassEffect.java @@ -37,7 +37,7 @@ public class AmassEffect extends OneShotEffect { public AmassEffect(int amassNumber) { this(new StaticValue(amassNumber)); - staticText = "Amass " + amassNumber + " (Put " + CardUtil.numberToText(amassNumber) + + staticText = "Amass " + amassNumber + ". (Put " + CardUtil.numberToText(amassNumber) + " +1/+1 counter" + (amassNumber > 1 ? "s" : "") + "on an Army you control. If you don’t control one, " + "create a 0/0 black Zombie Army creature token first.)"; @@ -46,7 +46,7 @@ public class AmassEffect extends OneShotEffect { public AmassEffect(DynamicValue amassNumber) { super(Outcome.BoostCreature); this.amassNumber = amassNumber; - staticText = "Amass " + amassNumber.getMessage() + " (Put X +1/+1 counters" + + staticText = "Amass X, where X is the number of " + amassNumber.getMessage() + ". (Put X +1/+1 counters" + "on an Army you control. If you don’t control one, " + "create a 0/0 black Zombie Army creature token first.)"; }