From 03f8c340023a7ab0f655ab9afee9f182eb9a0d43 Mon Sep 17 00:00:00 2001 From: Daniel Bomar Date: Fri, 28 May 2021 20:43:37 -0500 Subject: [PATCH] [MH2] Implemented Dress Down (#7856) --- Mage.Sets/src/mage/cards/d/DressDown.java | 52 +++++++++++++++++++ Mage.Sets/src/mage/sets/ModernHorizons2.java | 1 + .../continuous/LoseAllAbilitiesAllEffect.java | 2 +- 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 Mage.Sets/src/mage/cards/d/DressDown.java diff --git a/Mage.Sets/src/mage/cards/d/DressDown.java b/Mage.Sets/src/mage/cards/d/DressDown.java new file mode 100644 index 00000000000..cba8de87977 --- /dev/null +++ b/Mage.Sets/src/mage/cards/d/DressDown.java @@ -0,0 +1,52 @@ +package mage.cards.d; + +import java.util.UUID; + +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.OnEventTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.SacrificeSourceEffect; +import mage.abilities.effects.common.continuous.LoseAllAbilitiesAllEffect; +import mage.abilities.keyword.FlashAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.filter.StaticFilters; +import mage.game.events.GameEvent; + +/** + * + * @author weirddan455 + */ +public final class DressDown extends CardImpl { + + public DressDown(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{U}"); + + // Flash + this.addAbility(FlashAbility.getInstance()); + + // When Dress Down enters the battlefield, draw a card. + this.addAbility(new EntersBattlefieldTriggeredAbility(new DrawCardSourceControllerEffect(1))); + + // Creatures lose all abilities. + this.addAbility(new SimpleStaticAbility(new LoseAllAbilitiesAllEffect(StaticFilters.FILTER_PERMANENT_CREATURES, Duration.WhileOnBattlefield))); + + // At the beginning of the end step, sacrifice Dress Down. + this.addAbility(new OnEventTriggeredAbility( + GameEvent.EventType.END_TURN_STEP_PRE, "beginning of the end step", + true, new SacrificeSourceEffect() + )); + } + + private DressDown(final DressDown card) { + super(card); + } + + @Override + public DressDown copy() { + return new DressDown(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons2.java b/Mage.Sets/src/mage/sets/ModernHorizons2.java index 531cd7cf041..64c1f7c121c 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons2.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons2.java @@ -54,6 +54,7 @@ public final class ModernHorizons2 extends ExpansionSet { cards.add(new SetCardInfo("Diamond Lion", 225, Rarity.RARE, mage.cards.d.DiamondLion.class)); cards.add(new SetCardInfo("Discerning Taste", 82, Rarity.COMMON, mage.cards.d.DiscerningTaste.class)); cards.add(new SetCardInfo("Dragon's Rage Channeler", 121, Rarity.UNCOMMON, mage.cards.d.DragonsRageChanneler.class)); + cards.add(new SetCardInfo("Dress Down", 39, Rarity.RARE, mage.cards.d.DressDown.class)); cards.add(new SetCardInfo("Drey Keeper", 194, Rarity.COMMON, mage.cards.d.DreyKeeper.class)); cards.add(new SetCardInfo("Drossforge Bridge", 246, Rarity.COMMON, mage.cards.d.DrossforgeBridge.class)); cards.add(new SetCardInfo("Enchantress's Presence", 283, Rarity.RARE, mage.cards.e.EnchantresssPresence.class)); diff --git a/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAllAbilitiesAllEffect.java b/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAllAbilitiesAllEffect.java index 4f6dbc691fd..070183a217b 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAllAbilitiesAllEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/continuous/LoseAllAbilitiesAllEffect.java @@ -21,7 +21,7 @@ public class LoseAllAbilitiesAllEffect extends ContinuousEffectImpl { private final FilterPermanent filter; public LoseAllAbilitiesAllEffect(FilterPermanent filter, Duration duration) { - super(duration, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.AddAbility); + super(duration, Layer.AbilityAddingRemovingEffects_6, SubLayer.NA, Outcome.LoseAbility); this.filter = filter; }