[ECL] Implement Omni-Changeling (#14202)

This commit is contained in:
Muz 2026-01-09 09:54:09 -06:00 committed by GitHub
parent 4def8afd7d
commit c9b82e7742
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,70 @@
package mage.cards.o;
import java.util.UUID;
import mage.MageInt;
import mage.MageObject;
import mage.constants.SubType;
import mage.constants.Zone;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.util.functions.CopyApplier;
import mage.abilities.Ability;
import mage.abilities.common.SimpleStaticAbility;
import mage.abilities.effects.EntersBattlefieldEffect;
import mage.abilities.effects.common.CopyPermanentEffect;
import mage.abilities.keyword.ChangelingAbility;
import mage.abilities.keyword.ConvokeAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
/**
*
* @author muz
*/
public final class OmniChangeling extends CardImpl {
private static final CopyApplier applier = new CopyApplier() {
@Override
public boolean apply(Game game, MageObject blueprint, Ability source, UUID copyToObjectId) {
blueprint.getAbilities().add(new ChangelingAbility());
return true;
}
};
public OmniChangeling(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{U}{U}");
this.subtype.add(SubType.SHAPESHIFTER);
this.power = new MageInt(0);
this.toughness = new MageInt(0);
// Changeling
this.addAbility(new ChangelingAbility());
// Convoke
this.addAbility(new ConvokeAbility());
// You may have this creature enter as a copy of any creature on the battlefield, except it has changeling.
this.addAbility(new SimpleStaticAbility(
Zone.ALL,
new EntersBattlefieldEffect(
new CopyPermanentEffect(
StaticFilters.FILTER_PERMANENT_CREATURE,
applier
).setText("You may have {this} enter as a copy of any creature on the battlefield, except it has changeling"),
"",
true
)
));
}
private OmniChangeling(final OmniChangeling card) {
super(card);
}
@Override
public OmniChangeling copy() {
return new OmniChangeling(this);
}
}

View file

@ -185,6 +185,7 @@ public final class LorwynEclipsed extends ExpansionSet {
cards.add(new SetCardInfo("Mutable Explorer", 327, Rarity.RARE, mage.cards.m.MutableExplorer.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Nameless Inversion", 113, Rarity.UNCOMMON, mage.cards.n.NamelessInversion.class));
cards.add(new SetCardInfo("Noggle Robber", 237, Rarity.UNCOMMON, mage.cards.n.NoggleRobber.class));
cards.add(new SetCardInfo("Omni-Changeling", 62, Rarity.UNCOMMON, mage.cards.o.OmniChangeling.class));
cards.add(new SetCardInfo("Overgrown Tomb", "350b", Rarity.RARE, mage.cards.o.OvergrownTomb.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Overgrown Tomb", 266, Rarity.RARE, mage.cards.o.OvergrownTomb.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Overgrown Tomb", 350, Rarity.RARE, mage.cards.o.OvergrownTomb.class, NON_FULL_USE_VARIOUS));