[FIN] Implement Omega, Heartless Evolution

This commit is contained in:
theelk801 2025-05-22 17:53:34 -04:00 committed by Failure
parent 8e0fe07fdc
commit 088a8f180f
2 changed files with 71 additions and 0 deletions

View file

@ -0,0 +1,68 @@
package mage.cards.o;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.PermanentsOnBattlefieldCount;
import mage.abilities.effects.common.GainLifeEffect;
import mage.abilities.effects.common.TapTargetEffect;
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.constants.SuperType;
import mage.counters.CounterType;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledLandPermanent;
import mage.filter.predicate.Predicates;
import mage.target.TargetPermanent;
import mage.target.targetadjustment.ForEachOpponentTargetsAdjuster;
import mage.target.targetpointer.EachTargetPointer;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class OmegaHeartlessEvolution extends CardImpl {
private static final FilterPermanent filter = new FilterControlledLandPermanent("nonbasic lands you control");
static {
filter.add(Predicates.not(SuperType.BASIC.getPredicate()));
}
private static final DynamicValue xValue = new PermanentsOnBattlefieldCount(filter, null);
public OmegaHeartlessEvolution(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.ARTIFACT, CardType.CREATURE}, "{5}{G}{U}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.ROBOT);
this.power = new MageInt(8);
this.toughness = new MageInt(8);
// Wave Cannon -- When Omega enters, for each opponent, tap up to one target nonland permanent that opponent controls. Put X stun counters on each of those permanents and you gain X life, where X is the number of nonbasic lands you control.
Ability ability = new EntersBattlefieldTriggeredAbility(new TapTargetEffect()
.setTargetPointer(new EachTargetPointer())
.setText("for each opponent, tap up to one target nonland permanent that opponent controls"));
ability.addEffect(new AddCountersTargetEffect(CounterType.STUN.createInstance(), xValue)
.setTargetPointer(new EachTargetPointer())
.setText("Put X stun counters on each of those permanents"));
ability.addEffect(new GainLifeEffect(xValue).concatBy("and"));
ability.addTarget(new TargetPermanent(0, 1, StaticFilters.FILTER_PERMANENT_NON_LAND));
this.addAbility(ability.withFlavorWord("Wave Cannon").setTargetAdjuster(new ForEachOpponentTargetsAdjuster()));
}
private OmegaHeartlessEvolution(final OmegaHeartlessEvolution card) {
super(card);
}
@Override
public OmegaHeartlessEvolution copy() {
return new OmegaHeartlessEvolution(this);
}
}

View file

@ -260,6 +260,9 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Noctis, Prince of Lucis", 401, Rarity.RARE, mage.cards.n.NoctisPrinceOfLucis.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Noctis, Prince of Lucis", 500, Rarity.RARE, mage.cards.n.NoctisPrinceOfLucis.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Noctis, Prince of Lucis", 546, Rarity.RARE, mage.cards.n.NoctisPrinceOfLucis.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Omega, Heartless Evolution", 236, Rarity.UNCOMMON, mage.cards.o.OmegaHeartlessEvolution.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Omega, Heartless Evolution", 347, Rarity.UNCOMMON, mage.cards.o.OmegaHeartlessEvolution.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Omega, Heartless Evolution", 501, Rarity.UNCOMMON, mage.cards.o.OmegaHeartlessEvolution.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Paladin's Arms", 28, Rarity.COMMON, mage.cards.p.PaladinsArms.class));
cards.add(new SetCardInfo("Phantom Train", 110, Rarity.UNCOMMON, mage.cards.p.PhantomTrain.class));
cards.add(new SetCardInfo("Phoenix Down", 29, Rarity.UNCOMMON, mage.cards.p.PhoenixDown.class, NON_FULL_USE_VARIOUS));