From 90f09dd816c2eb912c949e4e879543884b3c755e Mon Sep 17 00:00:00 2001 From: Daniel Bomar Date: Thu, 3 Jun 2021 20:50:34 -0500 Subject: [PATCH] [MH2] Implemented Kaldra Compleat (#7883) --- .../src/mage/cards/k/KaldraCompleat.java | 87 +++++++++++++++++++ Mage.Sets/src/mage/sets/ModernHorizons2.java | 1 + ...ealsDamageToACreatureTriggeredAbility.java | 1 + 3 files changed, 89 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/k/KaldraCompleat.java diff --git a/Mage.Sets/src/mage/cards/k/KaldraCompleat.java b/Mage.Sets/src/mage/cards/k/KaldraCompleat.java new file mode 100644 index 00000000000..d336cf27470 --- /dev/null +++ b/Mage.Sets/src/mage/cards/k/KaldraCompleat.java @@ -0,0 +1,87 @@ +package mage.cards.k; + +import java.util.UUID; + +import mage.abilities.Ability; +import mage.abilities.common.DealsDamageToACreatureTriggeredAbility; +import mage.abilities.common.SimpleStaticAbility; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.abilities.effects.common.continuous.BoostEquippedEffect; +import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect; +import mage.abilities.keyword.*; +import mage.constants.*; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.filter.StaticFilters; + +/** + * + * @author weirddan455 + */ +public final class KaldraCompleat extends CardImpl { + + public KaldraCompleat(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT}, "{7}"); + + this.addSuperType(SuperType.LEGENDARY); + this.subtype.add(SubType.EQUIPMENT); + + // Living weapon + this.addAbility(new LivingWeaponAbility()); + + // Indestructible + this.addAbility(IndestructibleAbility.getInstance()); + + // Equipped creature gets +5/+5 and has first strike, trample, indestructible, haste, and "Whenever this creature deals combat damage to a creature, exile that creature." + Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(5, 5)); + ability.addEffect(new GainAbilityAttachedEffect( + FirstStrikeAbility.getInstance(), + AttachmentType.EQUIPMENT, + Duration.WhileOnBattlefield, + "and has first strike" + )); + ability.addEffect(new GainAbilityAttachedEffect( + TrampleAbility.getInstance(), + AttachmentType.EQUIPMENT, + Duration.WhileOnBattlefield, + ", trample" + )); + ability.addEffect(new GainAbilityAttachedEffect( + IndestructibleAbility.getInstance(), + AttachmentType.EQUIPMENT, + Duration.WhileOnBattlefield, + ", indestructible" + )); + ability.addEffect(new GainAbilityAttachedEffect( + HasteAbility.getInstance(), + AttachmentType.EQUIPMENT, + Duration.WhileOnBattlefield, + ", haste" + )); + ability.addEffect(new GainAbilityAttachedEffect( + new DealsDamageToACreatureTriggeredAbility( + new ExileTargetEffect("exile that creature"), + true, + false, + true, + StaticFilters.FILTER_PERMANENT_CREATURE_A + ), + AttachmentType.EQUIPMENT, + Duration.WhileOnBattlefield, + ", and \"Whenever this creature deals combat damage to a creature, exile that creature.\"" + )); + this.addAbility(ability); + + // Equip {7} + this.addAbility(new EquipAbility(7)); + } + + private KaldraCompleat(final KaldraCompleat card) { + super(card); + } + + @Override + public KaldraCompleat copy() { + return new KaldraCompleat(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ModernHorizons2.java b/Mage.Sets/src/mage/sets/ModernHorizons2.java index 3439694b891..e4df579954c 100644 --- a/Mage.Sets/src/mage/sets/ModernHorizons2.java +++ b/Mage.Sets/src/mage/sets/ModernHorizons2.java @@ -153,6 +153,7 @@ public final class ModernHorizons2 extends ExpansionSet { cards.add(new SetCardInfo("Jade Avenger", 167, Rarity.COMMON, mage.cards.j.JadeAvenger.class)); cards.add(new SetCardInfo("Jewel-Eyed Cobra", 168, Rarity.COMMON, mage.cards.j.JewelEyedCobra.class)); cards.add(new SetCardInfo("Junk Winder", 48, Rarity.UNCOMMON, mage.cards.j.JunkWinder.class)); + cards.add(new SetCardInfo("Kaldra Compleat", 227, Rarity.MYTHIC, mage.cards.k.KaldraCompleat.class)); cards.add(new SetCardInfo("Kaleidoscorch", 133, Rarity.UNCOMMON, mage.cards.k.Kaleidoscorch.class)); cards.add(new SetCardInfo("Karmic Guide", 263, Rarity.RARE, mage.cards.k.KarmicGuide.class)); cards.add(new SetCardInfo("Kitchen Imp", 89, Rarity.COMMON, mage.cards.k.KitchenImp.class)); diff --git a/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureTriggeredAbility.java b/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureTriggeredAbility.java index 5de73a3a578..8f780f2883b 100644 --- a/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureTriggeredAbility.java +++ b/Mage/src/main/java/mage/abilities/common/DealsDamageToACreatureTriggeredAbility.java @@ -81,6 +81,7 @@ public class DealsDamageToACreatureTriggeredAbility extends TriggeredAbilityImpl sb.append("a creature, "); } else { sb.append(filter.getMessage()); + sb.append(", "); } sb.append(super.getRule()); return sb.toString();