From 83842ccdeadec6339110d738c0254c475e2acaa5 Mon Sep 17 00:00:00 2001 From: Merlingilb <daniel.h.e@outlook.de> Date: Mon, 20 Feb 2023 00:15:31 +0100 Subject: [PATCH] [ONE] Implement Maze's Mantle (#9997) --- Mage.Sets/src/mage/cards/m/MazesMantle.java | 62 +++++++++++++++++++ .../src/mage/sets/PhyrexiaAllWillBeOne.java | 1 + 2 files changed, 63 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/m/MazesMantle.java diff --git a/Mage.Sets/src/mage/cards/m/MazesMantle.java b/Mage.Sets/src/mage/cards/m/MazesMantle.java new file mode 100644 index 0000000000..0af7b14ffa --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MazesMantle.java @@ -0,0 +1,62 @@ +package mage.cards.m; + +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.AttachedToMatchesFilterCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility; +import mage.abilities.effects.common.AttachEffect; +import mage.abilities.effects.common.continuous.BoostEnchantedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.EnchantAbility; +import mage.abilities.keyword.FlashAbility; +import mage.abilities.keyword.HexproofAbility; +import mage.abilities.keyword.ToxicAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.FilterPermanent; +import mage.filter.predicate.mageobject.AbilityPredicate; +import mage.target.TargetPermanent; +import mage.target.common.TargetCreaturePermanent; + +import java.util.UUID; + +public class MazesMantle extends CardImpl { + public MazesMantle(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{2}{G}"); + this.addSubType(SubType.AURA); + + //Flash + this.addAbility(FlashAbility.getInstance()); + + //Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget); + this.addAbility(ability); + + //When Maze’s Mantle enters the battlefield, if enchanted creature has toxic, that creature gains hexproof until end of turn. + FilterPermanent filter = new FilterPermanent("if enchanted creature has toxic"); + filter.add(new AbilityPredicate(ToxicAbility.class)); + this.addAbility(new ConditionalInterveningIfTriggeredAbility(new EntersBattlefieldTriggeredAbility( + new GainAbilityAttachedEffect(HexproofAbility.getInstance(), AttachmentType.AURA, Duration.EndOfTurn)), + new AttachedToMatchesFilterCondition(filter), "When {this} enters the battlefield, " + + "if enchanted creature has toxic, that creature gains hexproof until end of turn." + )); + + //Enchanted creature gets +2/+2. + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new BoostEnchantedEffect(2, 2, Duration.WhileOnBattlefield))); + } + + private MazesMantle(final MazesMantle card) { + super(card); + } + + @Override + public MazesMantle copy() { + return new MazesMantle(this); + } +} diff --git a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java index d555381972..8c8a19dbce 100644 --- a/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java +++ b/Mage.Sets/src/mage/sets/PhyrexiaAllWillBeOne.java @@ -131,6 +131,7 @@ public final class PhyrexiaAllWillBeOne extends ExpansionSet { cards.add(new SetCardInfo("Malcator, Purity Overseer", 208, Rarity.RARE, mage.cards.m.MalcatorPurityOverseer.class)); cards.add(new SetCardInfo("Mandible Justiciar", 21, Rarity.COMMON, mage.cards.m.MandibleJusticiar.class)); cards.add(new SetCardInfo("Maze Skullbomb", 231, Rarity.COMMON, mage.cards.m.MazeSkullbomb.class)); + cards.add(new SetCardInfo("Maze's Mantle", 174, Rarity.COMMON, mage.cards.m.MazesMantle.class)); cards.add(new SetCardInfo("Meldweb Curator", 59, Rarity.COMMON, mage.cards.m.MeldwebCurator.class)); cards.add(new SetCardInfo("Meldweb Strider", 60, Rarity.COMMON, mage.cards.m.MeldwebStrider.class)); cards.add(new SetCardInfo("Mercurial Spelldancer", 61, Rarity.RARE, mage.cards.m.MercurialSpelldancer.class));