[ECL] Implement Champions of the Shoal

This commit is contained in:
theelk801 2026-01-16 13:28:41 -05:00
parent b79d154445
commit 05f4f2b5a8
2 changed files with 66 additions and 0 deletions

View file

@ -0,0 +1,64 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.BecomesTappedTriggeredAbility;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.LeavesBattlefieldTriggeredAbility;
import mage.abilities.costs.common.BeholdAndExileCost;
import mage.abilities.effects.common.ReturnExiledCardToHandEffect;
import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.abilities.meta.OrTriggeredAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.BeholdType;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.counters.CounterType;
import mage.target.common.TargetCreaturePermanent;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ChampionsOfTheShoal extends CardImpl {
public ChampionsOfTheShoal(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}");
this.subtype.add(SubType.MERFOLK);
this.subtype.add(SubType.SOLDIER);
this.power = new MageInt(4);
this.toughness = new MageInt(6);
// As an additional cost to cast this spell, behold a Merfolk and exile it.
this.getSpellAbility().addCost(new BeholdAndExileCost(BeholdType.MERFOLK));
// Whenever this creature enters or becomes tapped, tap up to one target creature and put a stun counter on it.
Ability ability = new OrTriggeredAbility(
Zone.BATTLEFIELD, new TapTargetEffect(), false,
"Whenever this creature enters or becomes tapped, ",
new EntersBattlefieldTriggeredAbility(null),
new BecomesTappedTriggeredAbility(null, false)
);
ability.addEffect(new AddCountersTargetEffect(CounterType.STUN.createInstance())
.setText("and put a stun counter on it"));
ability.addTarget(new TargetCreaturePermanent(0, 1));
this.addAbility(ability);
// When this creature leaves the battlefield, return the exiled card to its owner's hand.
this.addAbility(new LeavesBattlefieldTriggeredAbility(new ReturnExiledCardToHandEffect()));
}
private ChampionsOfTheShoal(final ChampionsOfTheShoal card) {
super(card);
}
@Override
public ChampionsOfTheShoal copy() {
return new ChampionsOfTheShoal(this);
}
}

View file

@ -89,6 +89,8 @@ public final class LorwynEclipsed extends ExpansionSet {
cards.add(new SetCardInfo("Champion of the Weird", 95, Rarity.RARE, mage.cards.c.ChampionOfTheWeird.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Champions of the Perfect", 171, Rarity.RARE, mage.cards.c.ChampionsOfThePerfect.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Champions of the Perfect", 365, Rarity.RARE, mage.cards.c.ChampionsOfThePerfect.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Champions of the Shoal", 356, Rarity.RARE, mage.cards.c.ChampionsOfTheShoal.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Champions of the Shoal", 46, Rarity.RARE, mage.cards.c.ChampionsOfTheShoal.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Changeling Wayfinder", 1, Rarity.COMMON, mage.cards.c.ChangelingWayfinder.class));
cards.add(new SetCardInfo("Chaos Spewer", 210, Rarity.COMMON, mage.cards.c.ChaosSpewer.class));
cards.add(new SetCardInfo("Chitinous Graspling", 211, Rarity.COMMON, mage.cards.c.ChitinousGraspling.class));