From 04a34801466eeddc4200ad290d98e38e13a1b554 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 30 Oct 2024 09:53:10 -0400 Subject: [PATCH] [FDN] Implement Crystal Barricade --- .../src/mage/cards/c/CrystalBarricade.java | 50 +++++++++++++++++++ Mage.Sets/src/mage/sets/Foundations.java | 1 + 2 files changed, 51 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CrystalBarricade.java diff --git a/Mage.Sets/src/mage/cards/c/CrystalBarricade.java b/Mage.Sets/src/mage/cards/c/CrystalBarricade.java new file mode 100644 index 00000000000..22d53fb2e9b --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CrystalBarricade.java @@ -0,0 +1,50 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.PreventAllNonCombatDamageToAllEffect; +import mage.abilities.effects.common.continuous.GainAbilityControllerEffect; +import mage.abilities.keyword.DefenderAbility; +import mage.abilities.keyword.HexproofAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class CrystalBarricade extends CardImpl { + + public CrystalBarricade(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{1}{W}"); + + this.subtype.add(SubType.WALL); + this.power = new MageInt(0); + this.toughness = new MageInt(4); + + // Defender + this.addAbility(DefenderAbility.getInstance()); + + // You have hexproof. + this.addAbility(new SimpleStaticAbility(new GainAbilityControllerEffect(HexproofAbility.getInstance()))); + + // Prevent all noncombat damage that would be dealt to other creatures you control. + this.addAbility(new SimpleStaticAbility(new PreventAllNonCombatDamageToAllEffect( + Duration.WhileOnBattlefield, StaticFilters.FILTER_OTHER_CONTROLLED_CREATURES + ))); + } + + private CrystalBarricade(final CrystalBarricade card) { + super(card); + } + + @Override + public CrystalBarricade copy() { + return new CrystalBarricade(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Foundations.java b/Mage.Sets/src/mage/sets/Foundations.java index 17128e36f04..4add2483fb9 100644 --- a/Mage.Sets/src/mage/sets/Foundations.java +++ b/Mage.Sets/src/mage/sets/Foundations.java @@ -69,6 +69,7 @@ public final class Foundations extends ExpansionSet { cards.add(new SetCardInfo("Crusader of Odric", 569, Rarity.COMMON, mage.cards.c.CrusaderOfOdric.class)); cards.add(new SetCardInfo("Crypt Feaster", 59, Rarity.COMMON, mage.cards.c.CryptFeaster.class)); cards.add(new SetCardInfo("Cryptic Caves", 686, Rarity.UNCOMMON, mage.cards.c.CrypticCaves.class)); + cards.add(new SetCardInfo("Crystal Barricade", 7, Rarity.RARE, mage.cards.c.CrystalBarricade.class)); cards.add(new SetCardInfo("Cultivator's Caravan", 670, Rarity.RARE, mage.cards.c.CultivatorsCaravan.class)); cards.add(new SetCardInfo("Darksteel Colossus", 671, Rarity.MYTHIC, mage.cards.d.DarksteelColossus.class)); cards.add(new SetCardInfo("Dawnwing Marshal", 570, Rarity.UNCOMMON, mage.cards.d.DawnwingMarshal.class));