From e3a547586363d468878efe698da134f5fb44ff06 Mon Sep 17 00:00:00 2001 From: Daniel Bomar Date: Tue, 7 Sep 2021 17:31:11 -0500 Subject: [PATCH] [MID] Implemented Candletrap --- Mage.Sets/src/mage/cards/c/Candletrap.java | 64 +++++++++++++++++++ .../src/mage/cards/d/DemonicTorment.java | 2 +- .../src/mage/sets/InnistradMidnightHunt.java | 1 + 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 Mage.Sets/src/mage/cards/c/Candletrap.java diff --git a/Mage.Sets/src/mage/cards/c/Candletrap.java b/Mage.Sets/src/mage/cards/c/Candletrap.java new file mode 100644 index 00000000000..507cee13298 --- /dev/null +++ b/Mage.Sets/src/mage/cards/c/Candletrap.java @@ -0,0 +1,64 @@ +package mage.cards.c; + +import java.util.UUID; + +import mage.abilities.common.ActivateIfConditionActivatedAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.condition.common.CovenCondition; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.ExileAttachedEffect; +import mage.abilities.effects.common.PreventAllDamageByAttachedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.hint.common.CovenHint; +import mage.abilities.keyword.DefenderAbility; +import mage.constants.*; +import mage.target.common.TargetCreaturePermanent; +import mage.abilities.Ability; +import mage.abilities.effects.common.AttachEffect; +import mage.target.TargetPermanent; +import mage.abilities.keyword.EnchantAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; + +/** + * + * @author weirddan455 + */ +public final class Candletrap extends CardImpl { + + public Candletrap(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{W}"); + + this.subtype.add(SubType.AURA); + + // Enchant creature + TargetPermanent auraTarget = new TargetCreaturePermanent(); + this.getSpellAbility().addTarget(auraTarget); + this.getSpellAbility().addEffect(new AttachEffect(Outcome.BoostCreature)); + Ability ability = new EnchantAbility(auraTarget.getTargetName()); + this.addAbility(ability); + + // Enchanted creature has defender. + this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(DefenderAbility.getInstance(), AttachmentType.AURA))); + + // Prevent all combat damage that would be dealt by enchanted creature. + this.addAbility(new SimpleStaticAbility(new PreventAllDamageByAttachedEffect(Duration.WhileOnBattlefield, "enchanted creature", true))); + + // Coven — {2}{W}, Sacrifice Candletrap: Exile enchanted creature. Activate only if you control three or more creatures with different powers. + ability = new ActivateIfConditionActivatedAbility(Zone.BATTLEFIELD, new ExileAttachedEffect(), new ManaCostsImpl<>("{2}{W}"), CovenCondition.instance); + ability.addCost(new SacrificeSourceCost()); + ability.setAbilityWord(AbilityWord.COVEN); + ability.addHint(CovenHint.instance); + this.addAbility(ability); + } + + private Candletrap(final Candletrap card) { + super(card); + } + + @Override + public Candletrap copy() { + return new Candletrap(this); + } +} diff --git a/Mage.Sets/src/mage/cards/d/DemonicTorment.java b/Mage.Sets/src/mage/cards/d/DemonicTorment.java index e1ad2680a4b..03dce93b32d 100644 --- a/Mage.Sets/src/mage/cards/d/DemonicTorment.java +++ b/Mage.Sets/src/mage/cards/d/DemonicTorment.java @@ -34,7 +34,7 @@ public final class DemonicTorment extends CardImpl { // Enchanted creature can't attack. this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new CantAttackAttachedEffect(AttachmentType.AURA))); // Prevent all combat damage that would be dealt by enchanted creature. - this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PreventAllDamageByAttachedEffect(Duration.WhileOnBattlefield, "enchanted creature", false))); + this.addAbility(new SimpleStaticAbility(Zone.BATTLEFIELD, new PreventAllDamageByAttachedEffect(Duration.WhileOnBattlefield, "enchanted creature", true))); } private DemonicTorment(final DemonicTorment card) { diff --git a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java index 81bb620accb..ea8f24eec4a 100644 --- a/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java +++ b/Mage.Sets/src/mage/sets/InnistradMidnightHunt.java @@ -40,6 +40,7 @@ public final class InnistradMidnightHunt extends ExpansionSet { cards.add(new SetCardInfo("Can't Stay Away", 368, Rarity.RARE, mage.cards.c.CantStayAway.class)); cards.add(new SetCardInfo("Candlegrove Witch", 8, Rarity.COMMON, mage.cards.c.CandlegroveWitch.class)); cards.add(new SetCardInfo("Candlelit Cavalry", 175, Rarity.COMMON, mage.cards.c.CandlelitCavalry.class)); + cards.add(new SetCardInfo("Candletrap", 9, Rarity.COMMON, mage.cards.c.Candletrap.class)); cards.add(new SetCardInfo("Celestus Sanctifier", 12, Rarity.COMMON, mage.cards.c.CelestusSanctifier.class)); cards.add(new SetCardInfo("Champion of the Perished", 91, Rarity.RARE, mage.cards.c.ChampionOfThePerished.class)); cards.add(new SetCardInfo("Clear Shot", 176, Rarity.UNCOMMON, mage.cards.c.ClearShot.class));