From 88ad8519f5675283983312f49093f0809717b1ca Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 20 Apr 2022 08:20:26 -0400 Subject: [PATCH] [NCC] Implemented Crash the Party --- Mage.Sets/src/mage/cards/c/CrashTheParty.java | 51 +++++++++++++++++++ .../src/mage/sets/NewCapennaCommander.java | 1 + 2 files changed, 52 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CrashTheParty.java diff --git a/Mage.Sets/src/mage/cards/c/CrashTheParty.java b/Mage.Sets/src/mage/cards/c/CrashTheParty.java new file mode 100644 index 00000000000..33ea58a6374 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CrashTheParty.java @@ -0,0 +1,51 @@ +package mage.cards.c; + +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.hint.Hint; +import mage.abilities.hint.ValueHint; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterPermanent; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; +import mage.game.permanent.token.RhinoWarriorToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class CrashTheParty extends CardImpl { + + private static final FilterPermanent filter + = new FilterControlledCreaturePermanent("tapped creature you control"); + + static { + filter.add(TappedPredicate.TAPPED); + } + + private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter, 1); + private static final Hint hint = new ValueHint("Tapped creatures you control", xValue); + + public CrashTheParty(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{5}{G}"); + + // Create a tapped 4/4 green Rhino Warrior creature token for each tapped creature you control. + this.getSpellAbility().addEffect(new CreateTokenEffect( + new RhinoWarriorToken(), xValue, true, false + )); + this.getSpellAbility().addHint(hint); + } + + private CrashTheParty(final CrashTheParty card) { + super(card); + } + + @Override + public CrashTheParty copy() { + return new CrashTheParty(this); + } +} diff --git a/Mage.Sets/src/mage/sets/NewCapennaCommander.java b/Mage.Sets/src/mage/sets/NewCapennaCommander.java index bb2d67a3a6a..d66ff18e92e 100644 --- a/Mage.Sets/src/mage/sets/NewCapennaCommander.java +++ b/Mage.Sets/src/mage/sets/NewCapennaCommander.java @@ -78,6 +78,7 @@ public final class NewCapennaCommander extends ExpansionSet { cards.add(new SetCardInfo("Command Tower", 395, Rarity.COMMON, mage.cards.c.CommandTower.class)); cards.add(new SetCardInfo("Commander's Sphere", 363, Rarity.COMMON, mage.cards.c.CommandersSphere.class)); cards.add(new SetCardInfo("Commit // Memory", 216, Rarity.RARE, mage.cards.c.CommitMemory.class)); + cards.add(new SetCardInfo("Crash the Party", 57, Rarity.RARE, mage.cards.c.CrashTheParty.class)); cards.add(new SetCardInfo("Creeping Tar Pit", 396, Rarity.RARE, mage.cards.c.CreepingTarPit.class)); cards.add(new SetCardInfo("Crumbling Necropolis", 397, Rarity.UNCOMMON, mage.cards.c.CrumblingNecropolis.class)); cards.add(new SetCardInfo("Crystalline Giant", 364, Rarity.RARE, mage.cards.c.CrystallineGiant.class));