From 3308cde97277640456d6718e43065c9a62213ed5 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Wed, 20 Apr 2022 08:45:11 -0400 Subject: [PATCH] [NCC] Implemented False Floor --- Mage.Sets/src/mage/cards/f/FalseFloor.java | 59 +++++++++++++++++++ .../src/mage/sets/NewCapennaCommander.java | 1 + 2 files changed, 60 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/f/FalseFloor.java diff --git a/Mage.Sets/src/mage/cards/f/FalseFloor.java b/Mage.Sets/src/mage/cards/f/FalseFloor.java new file mode 100644 index 0000000000..c978f01c9a --- /dev/null +++ b/Mage.Sets/src/mage/cards/f/FalseFloor.java @@ -0,0 +1,59 @@ +package mage.cards.f; + +import mage.abilities.Ability; +import mage.abilities.common.ActivateAsSorceryActivatedAbility; +import mage.abilities.common.EntersBattlefieldTappedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.costs.common.ExileSourceCost; +import mage.abilities.costs.common.TapSourceCost; +import mage.abilities.costs.mana.GenericManaCost; +import mage.abilities.effects.common.ExileAllEffect; +import mage.abilities.effects.common.PermanentsEnterBattlefieldTappedEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.filter.common.FilterCreaturePermanent; +import mage.filter.predicate.permanent.TappedPredicate; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class FalseFloor extends CardImpl { + + private static final FilterPermanent filter = new FilterCreaturePermanent("untapped creatures"); + + static { + filter.add(TappedPredicate.UNTAPPED); + } + + public FalseFloor(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{4}"); + + // False Floor enters the battlefield tapped. + this.addAbility(new EntersBattlefieldTappedAbility()); + + // Creatures enter the battlefield tapped. + this.addAbility(new SimpleStaticAbility( + new PermanentsEnterBattlefieldTappedEffect(StaticFilters.FILTER_PERMANENT_CREATURES) + )); + + // {2}, {T}, Exile False Floor: Exile all untapped creatures. Activate only as a sorcery. + Ability ability = new ActivateAsSorceryActivatedAbility(new ExileAllEffect(filter), new GenericManaCost(2)); + ability.addCost(new TapSourceCost()); + ability.addCost(new ExileSourceCost()); + this.addAbility(ability); + } + + private FalseFloor(final FalseFloor card) { + super(card); + } + + @Override + public FalseFloor copy() { + return new FalseFloor(this); + } +} diff --git a/Mage.Sets/src/mage/sets/NewCapennaCommander.java b/Mage.Sets/src/mage/sets/NewCapennaCommander.java index f5ba9f4176..bb0d81b977 100644 --- a/Mage.Sets/src/mage/sets/NewCapennaCommander.java +++ b/Mage.Sets/src/mage/sets/NewCapennaCommander.java @@ -115,6 +115,7 @@ public final class NewCapennaCommander extends ExpansionSet { cards.add(new SetCardInfo("Extravagant Replication", 25, Rarity.RARE, mage.cards.e.ExtravagantReplication.class)); cards.add(new SetCardInfo("Fact or Fiction", 221, Rarity.UNCOMMON, mage.cards.f.FactOrFiction.class)); cards.add(new SetCardInfo("Fallen Shinobi", 338, Rarity.RARE, mage.cards.f.FallenShinobi.class)); + cards.add(new SetCardInfo("False Floor", 82, Rarity.RARE, mage.cards.f.FalseFloor.class)); cards.add(new SetCardInfo("Farseek", 290, Rarity.COMMON, mage.cards.f.Farseek.class)); cards.add(new SetCardInfo("Fathom Mage", 339, Rarity.RARE, mage.cards.f.FathomMage.class)); cards.add(new SetCardInfo("Feed the Swarm", 250, Rarity.COMMON, mage.cards.f.FeedTheSwarm.class));