[SLD] Implement Abby, Merciless Soldier

This commit is contained in:
theelk801 2025-09-29 11:14:03 -04:00
parent 8749dcc2d4
commit 4a81ca7c78
3 changed files with 86 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -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));

View file

@ -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);
}
}