From 4a81ca7c7865378be8f9237928c098c9a7218c55 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Mon, 29 Sep 2025 11:14:03 -0400 Subject: [PATCH] [SLD] Implement Abby, Merciless Soldier --- .../mage/cards/a/AbbyMercilessSoldier.java | 55 +++++++++++++++++++ Mage.Sets/src/mage/sets/SecretLairDrop.java | 1 + .../token/CordycepsInfectedToken.java | 30 ++++++++++ 3 files changed, 86 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/a/AbbyMercilessSoldier.java create mode 100644 Mage/src/main/java/mage/game/permanent/token/CordycepsInfectedToken.java diff --git a/Mage.Sets/src/mage/cards/a/AbbyMercilessSoldier.java b/Mage.Sets/src/mage/cards/a/AbbyMercilessSoldier.java new file mode 100644 index 00000000000..768d6508925 --- /dev/null +++ b/Mage.Sets/src/mage/cards/a/AbbyMercilessSoldier.java @@ -0,0 +1,55 @@ +package mage.cards.a; + +import mage.MageInt; +import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.dynamicvalue.common.ManaSpentToCastCount; +import mage.abilities.effects.common.CastSourceTriggeredAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.EntersBattlefieldUnderControlOfOpponentOfChoiceEffect; +import mage.abilities.keyword.PartnerSurvivorsAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.game.permanent.token.CordycepsInfectedToken; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class AbbyMercilessSoldier extends CardImpl { + + public AbbyMercilessSoldier(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{R}{G}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.SURVIVOR); + this.power = new MageInt(4); + this.toughness = new MageInt(4); + + // When you cast this spell, create a number of 1/1 black Fungus Zombie creature tokens named Cordyceps Infected equal to the amount of mana spent to cast it. + this.addAbility(new CastSourceTriggeredAbility( + new CreateTokenEffect(new CordycepsInfectedToken(), ManaSpentToCastCount.instance) + .setText("create a number of 1/1 black Fungus Zombie creature tokens " + + "named Cordyceps Infected equal to the amount of mana spent to cast it") + )); + + // Abby enters under the control of an opponent of your choice. + this.addAbility(new EntersBattlefieldAbility(new EntersBattlefieldUnderControlOfOpponentOfChoiceEffect())); + + // Partner--Survivors + this.addAbility(PartnerSurvivorsAbility.getInstance()); + } + + private AbbyMercilessSoldier(final AbbyMercilessSoldier card) { + super(card); + } + + @Override + public AbbyMercilessSoldier copy() { + return new AbbyMercilessSoldier(this); + } +} diff --git a/Mage.Sets/src/mage/sets/SecretLairDrop.java b/Mage.Sets/src/mage/sets/SecretLairDrop.java index 119bdde09fb..ccabba45ece 100644 --- a/Mage.Sets/src/mage/sets/SecretLairDrop.java +++ b/Mage.Sets/src/mage/sets/SecretLairDrop.java @@ -2066,6 +2066,7 @@ public class SecretLairDrop extends ExpansionSet { cards.add(new SetCardInfo("Academy Manufactor", 2195, Rarity.RARE, mage.cards.a.AcademyManufactor.class)); cards.add(new SetCardInfo("Wurmcoil Engine", 2196, Rarity.MYTHIC, mage.cards.w.WurmcoilEngine.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Joel, Resolute Survivor", 2198, Rarity.MYTHIC, mage.cards.j.JoelResoluteSurvivor.class)); + cards.add(new SetCardInfo("Abby, Merciless Soldier", 2202, Rarity.MYTHIC, mage.cards.a.AbbyMercilessSoldier.class)); cards.add(new SetCardInfo("Ellie, Vengeful Hunter", 2203, Rarity.MYTHIC, mage.cards.e.EllieVengefulHunter.class)); cards.add(new SetCardInfo("Kratos, God of War", 2207, Rarity.MYTHIC, mage.cards.k.KratosGodOfWar.class)); cards.add(new SetCardInfo("Atreus, Impulsive Son", 2212, Rarity.MYTHIC, mage.cards.a.AtreusImpulsiveSon.class)); diff --git a/Mage/src/main/java/mage/game/permanent/token/CordycepsInfectedToken.java b/Mage/src/main/java/mage/game/permanent/token/CordycepsInfectedToken.java new file mode 100644 index 00000000000..2d1ba020cff --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/CordycepsInfectedToken.java @@ -0,0 +1,30 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.constants.SubType; + +/** + * @author TheElk801 + */ +public final class CordycepsInfectedToken extends TokenImpl { + + public CordycepsInfectedToken() { + super("Cordyceps Infected", "1/1 black Fungus Zombie creature token named Cordyceps Infected"); + cardType.add(CardType.CREATURE); + color.setBlack(true); + subtype.add(SubType.FUNGUS); + subtype.add(SubType.ZOMBIE); + power = new MageInt(1); + toughness = new MageInt(1); + } + + private CordycepsInfectedToken(final CordycepsInfectedToken token) { + super(token); + } + + @Override + public CordycepsInfectedToken copy() { + return new CordycepsInfectedToken(this); + } +}