From 1faec71a9e8bc6baa3b3adebea58989dc44ee070 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Thu, 7 Jan 2021 21:42:25 -0500 Subject: [PATCH] [KHM] Implemented Masked Vandal --- Mage.Sets/src/mage/cards/m/MaskedVandal.java | 64 ++++++++++++++++++++ Mage.Sets/src/mage/sets/Kaldheim.java | 3 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 Mage.Sets/src/mage/cards/m/MaskedVandal.java diff --git a/Mage.Sets/src/mage/cards/m/MaskedVandal.java b/Mage.Sets/src/mage/cards/m/MaskedVandal.java new file mode 100644 index 00000000000..824c2c23b65 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MaskedVandal.java @@ -0,0 +1,64 @@ +package mage.cards.m; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.costs.common.ExileFromGraveCost; +import mage.abilities.effects.common.DoIfCostPaid; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.keyword.ChangelingAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.TargetController; +import mage.filter.FilterPermanent; +import mage.filter.StaticFilters; +import mage.filter.common.FilterArtifactOrEnchantmentPermanent; +import mage.target.TargetPermanent; +import mage.target.common.TargetCardInYourGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class MaskedVandal extends CardImpl { + + private static final FilterPermanent filter + = new FilterArtifactOrEnchantmentPermanent("artifact or enchantment an opponent controls"); + + static { + filter.add(TargetController.OPPONENT.getControllerPredicate()); + } + + public MaskedVandal(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}"); + + this.subtype.add(SubType.SHAPESHIFTER); + this.power = new MageInt(1); + this.toughness = new MageInt(3); + + // Changeling + this.setIsAllCreatureTypes(true); + this.addAbility(ChangelingAbility.getInstance()); + + // When enters the battlefield, you may exile a creature card from your graveyard. If you do, exile target artifact or enchantment an opponent controls. + Ability ability = new EntersBattlefieldAbility( + new DoIfCostPaid(new ExileTargetEffect(), new ExileFromGraveCost( + new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_A) + )) + ); + ability.addTarget(new TargetPermanent(filter)); + this.addAbility(ability); + } + + private MaskedVandal(final MaskedVandal card) { + super(card); + } + + @Override + public MaskedVandal copy() { + return new MaskedVandal(this); + } +} diff --git a/Mage.Sets/src/mage/sets/Kaldheim.java b/Mage.Sets/src/mage/sets/Kaldheim.java index bd6c7de250e..8f1fc71533c 100644 --- a/Mage.Sets/src/mage/sets/Kaldheim.java +++ b/Mage.Sets/src/mage/sets/Kaldheim.java @@ -18,7 +18,7 @@ public final class Kaldheim extends ExpansionSet { private Kaldheim() { super("Kaldheim", "KHM", ExpansionSet.buildDate(2021, 2, 5), SetType.EXPANSION); this.blockName = "Kaldheim"; - this.hasBasicLands = false; // TODO: change after more cards added + this.hasBasicLands = true; this.hasBoosters = true; this.numBoosterLands = 1; this.numBoosterCommon = 9; @@ -52,6 +52,7 @@ public final class Kaldheim extends ExpansionSet { cards.add(new SetCardInfo("Invasion of the Giants", 215, Rarity.UNCOMMON, mage.cards.i.InvasionOfTheGiants.class)); cards.add(new SetCardInfo("Kaya the Inexorable", 218, Rarity.MYTHIC, mage.cards.k.KayaTheInexorable.class)); cards.add(new SetCardInfo("Magda, Brazen Outlaw", 142, Rarity.RARE, mage.cards.m.MagdaBrazenOutlaw.class)); + cards.add(new SetCardInfo("Masked Vandal", 184, Rarity.COMMON, mage.cards.m.MaskedVandal.class)); cards.add(new SetCardInfo("Pyre of Heroes", 241, Rarity.RARE, mage.cards.p.PyreOfHeroes.class)); cards.add(new SetCardInfo("Rampage of the Valkyries", 393, Rarity.UNCOMMON, mage.cards.r.RampageOfTheValkyries.class)); cards.add(new SetCardInfo("Realmwalker", 188, Rarity.RARE, mage.cards.r.Realmwalker.class));