[ECL] Implement Ashling's Command

This commit is contained in:
theelk801 2025-09-30 08:56:12 -04:00
parent 29ab28fd74
commit 33ca328b38
2 changed files with 60 additions and 0 deletions

View file

@ -0,0 +1,58 @@
package mage.cards.a;
import mage.abilities.Mode;
import mage.abilities.effects.common.CreateTokenCopyTargetEffect;
import mage.abilities.effects.common.CreateTokenTargetEffect;
import mage.abilities.effects.common.DamageAllControlledTargetEffect;
import mage.abilities.effects.common.DrawCardTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.FilterPermanent;
import mage.filter.common.FilterControlledPermanent;
import mage.game.permanent.token.TreasureToken;
import mage.target.TargetPermanent;
import mage.target.TargetPlayer;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class AshlingsCommand extends CardImpl {
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.ELEMENTAL);
public AshlingsCommand(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.KINDRED, CardType.INSTANT}, "{3}{U}{R}");
this.subtype.add(SubType.ELEMENTAL);
// Choose two --
this.getSpellAbility().getModes().setMinModes(2);
this.getSpellAbility().getModes().setMaxModes(2);
// * Create a token that's a copy of target Elemental you control.
this.getSpellAbility().addEffect(new CreateTokenCopyTargetEffect());
this.getSpellAbility().addTarget(new TargetPermanent(filter));
// * Target player draws two cards.
this.getSpellAbility().addMode(new Mode(new DrawCardTargetEffect(2)).addTarget(new TargetPlayer()));
// * Ashling's Command deals 2 damage to each creature target player controls.
this.getSpellAbility().addMode(new Mode(new DamageAllControlledTargetEffect(2)).addTarget(new TargetPlayer()));
// * Target player creates two Treasure tokens.
this.getSpellAbility().addMode(new Mode(new CreateTokenTargetEffect(new TreasureToken(), 2)).addTarget(new TargetPlayer()));
}
private AshlingsCommand(final AshlingsCommand card) {
super(card);
}
@Override
public AshlingsCommand copy() {
return new AshlingsCommand(this);
}
}

View file

@ -20,6 +20,8 @@ public final class LorwynEclipsed extends ExpansionSet {
this.blockName = "Lorwyn Eclipsed"; // for sorting in GUI
this.hasBasicLands = false; // temporary
cards.add(new SetCardInfo("Ashling's Command", 205, Rarity.RARE, mage.cards.a.AshlingsCommand.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ashling's Command", 330, Rarity.RARE, mage.cards.a.AshlingsCommand.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Bitterbloom Bearer", 310, Rarity.MYTHIC, mage.cards.b.BitterbloomBearer.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Bitterbloom Bearer", 352, Rarity.MYTHIC, mage.cards.b.BitterbloomBearer.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Bitterbloom Bearer", 88, Rarity.MYTHIC, mage.cards.b.BitterbloomBearer.class, NON_FULL_USE_VARIOUS));