From f2b7434b927fa7a6c71d828abc97c52248222fce Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Sat, 11 Sep 2021 20:18:29 -0400 Subject: [PATCH] [MID] Implemented The Meathook Massacre --- .../src/mage/cards/t/TheMeathookMassacre.java | 58 +++++++++++++++++++ .../src/mage/sets/InnistradMidnightHunt.java | 1 + 2 files changed, 59 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/t/TheMeathookMassacre.java diff --git a/Mage.Sets/src/mage/cards/t/TheMeathookMassacre.java b/Mage.Sets/src/mage/cards/t/TheMeathookMassacre.java new file mode 100644 index 00000000000..def254de989 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TheMeathookMassacre.java @@ -0,0 +1,58 @@ +package mage.cards.t; + +import mage.abilities.common.DiesCreatureTriggeredAbility; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.dynamicvalue.DynamicValue; +import mage.abilities.dynamicvalue.MultipliedValue; +import mage.abilities.dynamicvalue.common.ManacostVariableValue; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.LoseLifeOpponentsEffect; +import mage.abilities.effects.common.continuous.BoostAllEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SuperType; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TheMeathookMassacre extends CardImpl { + + private static final DynamicValue xValue = new MultipliedValue(ManacostVariableValue.ETB, -1); + + public TheMeathookMassacre(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{X}{B}{B}"); + + this.addSuperType(SuperType.LEGENDARY); + + // When The Meathook Massacre enters the battlefield, each creature gets -X/-X until end of turn. + this.addAbility(new EntersBattlefieldTriggeredAbility(new BoostAllEffect( + xValue, xValue, Duration.EndOfTurn + ).setText("each creature gets -X/-X until end of turn"))); + + // Whenever a creature you control dies, each opponent loses 1 life. + this.addAbility(new DiesCreatureTriggeredAbility( + new LoseLifeOpponentsEffect(1), false, + StaticFilters.FILTER_CONTROLLED_A_CREATURE + )); + + // Whenever a creature an opponent controls dies, you gain 1 life. + this.addAbility(new DiesCreatureTriggeredAbility( + new GainLifeEffect(1), false, + StaticFilters.FILTER_OPPONENTS_PERMANENT_CREATURE + )); + } + + private TheMeathookMassacre(final TheMeathookMassacre card) { + super(card); + } + + @Override + public TheMeathookMassacre copy() { + return new TheMeathookMassacre(this); + } +} diff --git a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java index 8ee1b8b59af..efc4e7c404f 100644 --- a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java +++ b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java @@ -264,6 +264,7 @@ public final class InnistradMidnightHunt extends ExpansionSet { cards.add(new SetCardInfo("Tainted Adversary", 124, Rarity.MYTHIC, mage.cards.t.TaintedAdversary.class)); cards.add(new SetCardInfo("Tavern Ruffian", 163, Rarity.COMMON, mage.cards.t.TavernRuffian.class)); cards.add(new SetCardInfo("Tavern Smasher", 163, Rarity.COMMON, mage.cards.t.TavernSmasher.class)); + cards.add(new SetCardInfo("The Meathook Massacre", 112, Rarity.MYTHIC, mage.cards.t.TheMeathookMassacre.class)); cards.add(new SetCardInfo("Thermo-Alchemist", 164, Rarity.UNCOMMON, mage.cards.t.ThermoAlchemist.class)); cards.add(new SetCardInfo("Thraben Exorcism", 39, Rarity.COMMON, mage.cards.t.ThrabenExorcism.class)); cards.add(new SetCardInfo("Timberland Guide", 202, Rarity.COMMON, mage.cards.t.TimberlandGuide.class));