From 93353f94d2675ce8d519b42d0cad12602b555a6f Mon Sep 17 00:00:00 2001 From: Susucre <34709007+Susucre@users.noreply.github.com> Date: Tue, 23 Jan 2024 18:46:01 +0100 Subject: [PATCH] [CLU] Implement Carnage Interpreter --- .../src/mage/cards/c/CarnageInterpreter.java | 60 +++++++++++++++++++ .../src/mage/sets/RavnicaClueEdition.java | 1 + 2 files changed, 61 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/c/CarnageInterpreter.java diff --git a/Mage.Sets/src/mage/cards/c/CarnageInterpreter.java b/Mage.Sets/src/mage/cards/c/CarnageInterpreter.java new file mode 100644 index 00000000000..439b5761334 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/CarnageInterpreter.java @@ -0,0 +1,60 @@ +package mage.cards.c; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.HeckbentCondition; +import mage.abilities.decorator.ConditionalContinuousEffect; +import mage.abilities.effects.common.continuous.BoostSourceEffect; +import mage.abilities.effects.common.continuous.GainAbilitySourceEffect; +import mage.abilities.effects.common.discard.DiscardHandControllerEffect; +import mage.abilities.effects.keyword.InvestigateEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.SubType; + +import java.util.UUID; + +/** + * @author Susucr + */ +public final class CarnageInterpreter extends CardImpl { + + public CarnageInterpreter(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{B/R}{B/R}"); + + this.subtype.add(SubType.DEVIL); + this.subtype.add(SubType.DETECTIVE); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + + // When Carnage Interpreter enters the battlefield, discard your hand, then investigate four times. + Ability ability = new EntersBattlefieldTriggeredAbility(new DiscardHandControllerEffect()); + ability.addEffect(new InvestigateEffect(4).concatBy(", then")); + this.addAbility(ability); + + // As long as you have one or fewer cards in hand, Carnage Interpreter gets +2/+2 and has menace. + ability = new SimpleStaticAbility(new ConditionalContinuousEffect( + new BoostSourceEffect(2, 2, Duration.WhileOnBattlefield), HeckbentCondition.instance, + "as long as you have one or fewer cards in hand, {this} gets +2/+2" + )); + ability.addEffect(new ConditionalContinuousEffect( + new GainAbilitySourceEffect(new MenaceAbility(false)), + HeckbentCondition.instance, "and has menace" + )); + this.addAbility(ability); + } + + private CarnageInterpreter(final CarnageInterpreter card) { + super(card); + } + + @Override + public CarnageInterpreter copy() { + return new CarnageInterpreter(this); + } +} diff --git a/Mage.Sets/src/mage/sets/RavnicaClueEdition.java b/Mage.Sets/src/mage/sets/RavnicaClueEdition.java index cc5e953f1b4..46472211500 100644 --- a/Mage.Sets/src/mage/sets/RavnicaClueEdition.java +++ b/Mage.Sets/src/mage/sets/RavnicaClueEdition.java @@ -25,6 +25,7 @@ public final class RavnicaClueEdition extends ExpansionSet { cards.add(new SetCardInfo("Billiard Room", 13, Rarity.UNCOMMON, mage.cards.b.BilliardRoom.class)); cards.add(new SetCardInfo("Blood Crypt", 274, Rarity.RARE, mage.cards.b.BloodCrypt.class)); cards.add(new SetCardInfo("Breeding Pool", 275, Rarity.RARE, mage.cards.b.BreedingPool.class)); + cards.add(new SetCardInfo("Carnage Interpreter", 26, Rarity.RARE, mage.cards.c.CarnageInterpreter.class)); cards.add(new SetCardInfo("Commander Mustard", 6, Rarity.RARE, mage.cards.c.CommanderMustard.class)); cards.add(new SetCardInfo("Conclave Evangelist", 27, Rarity.RARE, mage.cards.c.ConclaveEvangelist.class)); cards.add(new SetCardInfo("Conservatory", 14, Rarity.UNCOMMON, mage.cards.c.Conservatory.class));