[FIN] Implement Ambrosia Whiteheart

This commit is contained in:
theelk801 2025-05-20 15:22:15 -04:00
parent 84735e09ce
commit 3db293252d
3 changed files with 94 additions and 0 deletions

View file

@ -0,0 +1,88 @@
package mage.cards.a;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
import mage.abilities.common.LandfallAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.abilities.keyword.FlashAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.*;
import mage.filter.StaticFilters;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetImpl;
import mage.target.TargetPermanent;
import java.util.Optional;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class AmbrosiaWhiteheart extends CardImpl {
public AmbrosiaWhiteheart(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.BIRD);
this.power = new MageInt(2);
this.toughness = new MageInt(2);
// Flash
this.addAbility(FlashAbility.getInstance());
// When Ambrosia Whiteheart enters, you may return another permanent you control to its owner's hand.
this.addAbility(new EntersBattlefieldTriggeredAbility(new AmbrosiaWhiteheartEffect()));
// Landfall -- Whenever a land you control enters, Ambrosia Whiteheart gets +1/+0 until end of turn.
this.addAbility(new LandfallAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn)));
}
private AmbrosiaWhiteheart(final AmbrosiaWhiteheart card) {
super(card);
}
@Override
public AmbrosiaWhiteheart copy() {
return new AmbrosiaWhiteheart(this);
}
}
class AmbrosiaWhiteheartEffect extends OneShotEffect {
AmbrosiaWhiteheartEffect() {
super(Outcome.Benefit);
staticText = "you may return another permanent you control to its owner's hand";
}
private AmbrosiaWhiteheartEffect(final AmbrosiaWhiteheartEffect effect) {
super(effect);
}
@Override
public AmbrosiaWhiteheartEffect copy() {
return new AmbrosiaWhiteheartEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
if (player == null) {
return false;
}
TargetPermanent target = new TargetPermanent(
0, 1, StaticFilters.FILTER_CONTROLLED_ANOTHER_PERMANENT, true
);
player.choose(outcome, target, source, game);
return Optional
.ofNullable(target)
.map(TargetImpl::getFirstTarget)
.map(game::getCard)
.map(card -> player.moveCards(card, Zone.HAND, source, game))
.orElse(false);
}
}

View file

@ -31,6 +31,9 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Aerith Gainsborough", 423, Rarity.RARE, mage.cards.a.AerithGainsborough.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Aerith Gainsborough", 423, Rarity.RARE, mage.cards.a.AerithGainsborough.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Aerith Gainsborough", 519, Rarity.RARE, mage.cards.a.AerithGainsborough.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Aerith Gainsborough", 519, Rarity.RARE, mage.cards.a.AerithGainsborough.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Al Bhed Salvagers", 88, Rarity.UNCOMMON, mage.cards.a.AlBhedSalvagers.class)); cards.add(new SetCardInfo("Al Bhed Salvagers", 88, Rarity.UNCOMMON, mage.cards.a.AlBhedSalvagers.class));
cards.add(new SetCardInfo("Ambrosia Whiteheart", 325, Rarity.UNCOMMON, mage.cards.a.AmbrosiaWhiteheart.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ambrosia Whiteheart", 424, Rarity.UNCOMMON, mage.cards.a.AmbrosiaWhiteheart.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ambrosia Whiteheart", 6, Rarity.UNCOMMON, mage.cards.a.AmbrosiaWhiteheart.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ardyn, the Usurper", 315, Rarity.RARE, mage.cards.a.ArdynTheUsurper.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ardyn, the Usurper", 315, Rarity.RARE, mage.cards.a.ArdynTheUsurper.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ardyn, the Usurper", 379, Rarity.RARE, mage.cards.a.ArdynTheUsurper.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ardyn, the Usurper", 379, Rarity.RARE, mage.cards.a.ArdynTheUsurper.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Ardyn, the Usurper", 444, Rarity.RARE, mage.cards.a.ArdynTheUsurper.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Ardyn, the Usurper", 444, Rarity.RARE, mage.cards.a.ArdynTheUsurper.class, NON_FULL_USE_VARIOUS));

View file

@ -57628,6 +57628,7 @@ Command Tower|Final Fantasy Commander|486|C||Land|||{T}: Add one mana of any col
Summon: Bahamut|Final Fantasy|1|M|{9}|Enchantment Creature - Saga Dragon|9|9|(As this Saga enters and after your draw step, add a lore counter. Sacrifice after IV.)$I, II -- Destroy up to one target nonland permanent.$III -- Draw two cards.$IV -- Mega Flare -- This creature deals damage equal to the total mana value of other permanents you control to each opponent.$Flying| Summon: Bahamut|Final Fantasy|1|M|{9}|Enchantment Creature - Saga Dragon|9|9|(As this Saga enters and after your draw step, add a lore counter. Sacrifice after IV.)$I, II -- Destroy up to one target nonland permanent.$III -- Draw two cards.$IV -- Mega Flare -- This creature deals damage equal to the total mana value of other permanents you control to each opponent.$Flying|
Ultima, Origin of Oblivion|Final Fantasy|2|R|{5}|Legendary Creature - God|4|4|Flying$Whenever Ultima attacks, put a blight counter on target land. For as long as that land has a blight counter on it, it loses all land types and abilities and has "{T}: Add {C}."$Whenever you tap a land for {C}, add an additional {C}.| Ultima, Origin of Oblivion|Final Fantasy|2|R|{5}|Legendary Creature - God|4|4|Flying$Whenever Ultima attacks, put a blight counter on target land. For as long as that land has a blight counter on it, it loses all land types and abilities and has "{T}: Add {C}."$Whenever you tap a land for {C}, add an additional {C}.|
Aerith Gainsborough|Final Fantasy|4|R|{2}{W}|Legendary Creature - Human Cleric|2|2|Lifelink$Whenever you gain life, put a +1/+1 counter on Aerith Gainsborough.$When Aerith Gainsborough dies, put X +1/+1 counters on each legendary creature you control, where X is the number of +1/+1 counters on Aerith Gainsborough.| Aerith Gainsborough|Final Fantasy|4|R|{2}{W}|Legendary Creature - Human Cleric|2|2|Lifelink$Whenever you gain life, put a +1/+1 counter on Aerith Gainsborough.$When Aerith Gainsborough dies, put X +1/+1 counters on each legendary creature you control, where X is the number of +1/+1 counters on Aerith Gainsborough.|
Ambrosia Whiteheart|Final Fantasy|6|U|{1}{W}|Legendary Creature - Bird|2|2|Flash$When Ambrosia Whiteheart enters, you may return another permanent you control to its owner's hand.$Landfall -- Whenever a land you control enters, Ambrosia Whiteheart gets +1/+0 until end of turn.|
Auron's Inspiration|Final Fantasy|8|U|{2}{W}|Instant|||Attacking creatures get +2/+0 until end of turn.$Flashback {2}{W}{W}| Auron's Inspiration|Final Fantasy|8|U|{2}{W}|Instant|||Attacking creatures get +2/+0 until end of turn.$Flashback {2}{W}{W}|
Cloud, Midgar Mercenary|Final Fantasy|10|M|{W}{W}|Legendary Creature - Human Soldier Mercenary|2|1|When Cloud enters, search your library for an Equipment card, reveal it, put it into your hand, then shuffle.$As long as Cloud is equipped, if an ability of Cloud or an Equipment attached to it triggers, that ability triggers an additional time.| Cloud, Midgar Mercenary|Final Fantasy|10|M|{W}{W}|Legendary Creature - Human Soldier Mercenary|2|1|When Cloud enters, search your library for an Equipment card, reveal it, put it into your hand, then shuffle.$As long as Cloud is equipped, if an ability of Cloud or an Equipment attached to it triggers, that ability triggers an additional time.|
Cloudbound Moogle|Final Fantasy|11|C|{3}{W}{W}|Creature - Moogle|2|3|Flying$When this creature enters, put a +1/+1 counter on target creature.$Plainscycling {2}| Cloudbound Moogle|Final Fantasy|11|C|{3}{W}{W}|Creature - Moogle|2|3|Flying$When this creature enters, put a +1/+1 counter on target creature.$Plainscycling {2}|
@ -57831,6 +57832,7 @@ Kefka, Ruler of Ruin|Final Fantasy|322|M||Legendary Creature - Avatar Wizard|5|7
Terra, Magical Adept|Final Fantasy|323|M|{1}{R}{G}|Legendary Creature - Human Wizard Warrior|4|2|When Terra enters, mill five cards. Put up to one enchantment card milled this way into your hand.$Trance -- {4}{R}{G}, {T}: Exile Terra, then return it to the battlefield transformed under its owner's control. Activate only as a sorcery.| Terra, Magical Adept|Final Fantasy|323|M|{1}{R}{G}|Legendary Creature - Human Wizard Warrior|4|2|When Terra enters, mill five cards. Put up to one enchantment card milled this way into your hand.$Trance -- {4}{R}{G}, {T}: Exile Terra, then return it to the battlefield transformed under its owner's control. Activate only as a sorcery.|
Esper Terra|Final Fantasy|323|M||Legendary Enchantment Creature - Saga Wizard|6|6|(As this Saga enters and after your draw step, add a lore counter.)$I, II, III -- Create a token that's a copy of target nonlegendary enchantment you control. It gains haste. If it's a Saga, put up to three lore counters on it. Sacrifice it at the beginning of your next end step.$IV -- Add {W}{W}, {U}{U}, {B}{B}, {R}{R}, and {G}{G}. Exile Esper Terra, then return it to the battlefield.$Flying| Esper Terra|Final Fantasy|323|M||Legendary Enchantment Creature - Saga Wizard|6|6|(As this Saga enters and after your draw step, add a lore counter.)$I, II, III -- Create a token that's a copy of target nonlegendary enchantment you control. It gains haste. If it's a Saga, put up to three lore counters on it. Sacrifice it at the beginning of your next end step.$IV -- Add {W}{W}, {U}{U}, {B}{B}, {R}{R}, and {G}{G}. Exile Esper Terra, then return it to the battlefield.$Flying|
Ultima, Origin of Oblivion|Final Fantasy|324|R|{5}|Legendary Creature - God|4|4|Flying$Whenever Ultima attacks, put a blight counter on target land. For as long as that land has a blight counter on it, it loses all land types and abilities and has "{T}: Add {C}."$Whenever you tap a land for {C}, add an additional {C}.| Ultima, Origin of Oblivion|Final Fantasy|324|R|{5}|Legendary Creature - God|4|4|Flying$Whenever Ultima attacks, put a blight counter on target land. For as long as that land has a blight counter on it, it loses all land types and abilities and has "{T}: Add {C}."$Whenever you tap a land for {C}, add an additional {C}.|
Ambrosia Whiteheart|Final Fantasy|325|U|{1}{W}|Legendary Creature - Bird|2|2|Flash$When Ambrosia Whiteheart enters, you may return another permanent you control to its owner's hand.$Landfall -- Whenever a land you control enters, Ambrosia Whiteheart gets +1/+0 until end of turn.|
Moogles' Valor|Final Fantasy|326|R|{3}{W}{W}|Instant|||For each creature you control, create a 1/2 white Moogle creature token with lifelink. Then creatures you control gain indestructible until end of turn.| Moogles' Valor|Final Fantasy|326|R|{3}{W}{W}|Instant|||For each creature you control, create a 1/2 white Moogle creature token with lifelink. Then creatures you control gain indestructible until end of turn.|
Stiltzkin, Moogle Merchant|Final Fantasy|327|R|{W}|Legendary Creature - Moogle|1|2|Lifelink${2}, {T}: Target opponent gains control of another target permanent you control. If they do, you draw a card.| Stiltzkin, Moogle Merchant|Final Fantasy|327|R|{W}|Legendary Creature - Moogle|1|2|Lifelink${2}, {T}: Target opponent gains control of another target permanent you control. If they do, you draw a card.|
The Wind Crystal|Final Fantasy|330|R|{2}{W}{W}|Legendary Artifact|||White spells you cast cost {1} less to cast.$If you would gain life, you gain twice that much life instead.${4}{W}{W}, {T}: Creatures you control gain flying and lifelink until end of turn.| The Wind Crystal|Final Fantasy|330|R|{2}{W}{W}|Legendary Artifact|||White spells you cast cost {1} less to cast.$If you would gain life, you gain twice that much life instead.${4}{W}{W}, {T}: Creatures you control gain flying and lifelink until end of turn.|
@ -57910,6 +57912,7 @@ Cid, Timeless Artificer|Final Fantasy|420|U|{2}{W}{U}|Legendary Creature - Human
Ultima, Origin of Oblivion|Final Fantasy|421|R|{5}|Legendary Creature - God|4|4|Flying$Whenever Ultima attacks, put a blight counter on target land. For as long as that land has a blight counter on it, it loses all land types and abilities and has "{T}: Add {C}."$Whenever you tap a land for {C}, add an additional {C}.| Ultima, Origin of Oblivion|Final Fantasy|421|R|{5}|Legendary Creature - God|4|4|Flying$Whenever Ultima attacks, put a blight counter on target land. For as long as that land has a blight counter on it, it loses all land types and abilities and has "{T}: Add {C}."$Whenever you tap a land for {C}, add an additional {C}.|
Adelbert Steiner|Final Fantasy|422|U|{1}{W}|Legendary Creature - Human Knight|2|1|Lifelink$Adelbert Steiner gets +1/+1 for each Equipment you control.| Adelbert Steiner|Final Fantasy|422|U|{1}{W}|Legendary Creature - Human Knight|2|1|Lifelink$Adelbert Steiner gets +1/+1 for each Equipment you control.|
Aerith Gainsborough|Final Fantasy|423|R|{2}{W}|Legendary Creature - Human Cleric|2|2|Lifelink$Whenever you gain life, put a +1/+1 counter on Aerith Gainsborough.$When Aerith Gainsborough dies, put X +1/+1 counters on each legendary creature you control, where X is the number of +1/+1 counters on Aerith Gainsborough.| Aerith Gainsborough|Final Fantasy|423|R|{2}{W}|Legendary Creature - Human Cleric|2|2|Lifelink$Whenever you gain life, put a +1/+1 counter on Aerith Gainsborough.$When Aerith Gainsborough dies, put X +1/+1 counters on each legendary creature you control, where X is the number of +1/+1 counters on Aerith Gainsborough.|
Ambrosia Whiteheart|Final Fantasy|424|U|{1}{W}|Legendary Creature - Bird|2|2|Flash$When Ambrosia Whiteheart enters, you may return another permanent you control to its owner's hand.$Landfall -- Whenever a land you control enters, Ambrosia Whiteheart gets +1/+0 until end of turn.|
Beatrix, Loyal General|Final Fantasy|426|R|{4}{W}{W}|Legendary Creature - Human Soldier|4|4|Vigilance$At the beginning of combat on your turn, you may attach any number of Equipment you control to target creature you control.| Beatrix, Loyal General|Final Fantasy|426|R|{4}{W}{W}|Legendary Creature - Human Soldier|4|4|Vigilance$At the beginning of combat on your turn, you may attach any number of Equipment you control to target creature you control.|
Cloud, Midgar Mercenary|Final Fantasy|427|M|{W}{W}|Legendary Creature - Human Soldier Mercenary|2|1|When Cloud enters, search your library for an Equipment card, reveal it, put it into your hand, then shuffle.$As long as Cloud is equipped, if an ability of Cloud or an Equipment attached to it triggers, that ability triggers an additional time.| Cloud, Midgar Mercenary|Final Fantasy|427|M|{W}{W}|Legendary Creature - Human Soldier Mercenary|2|1|When Cloud enters, search your library for an Equipment card, reveal it, put it into your hand, then shuffle.$As long as Cloud is equipped, if an ability of Cloud or an Equipment attached to it triggers, that ability triggers an additional time.|
Rosa, Resolute White Mage|Final Fantasy|431|R|{3}{W}|Legendary Creature - Human Noble Cleric|2|3|Reach$At the beginning of combat on your turn, put a +1/+1 counter on target creature you control. It gains lifelink until end of turn.| Rosa, Resolute White Mage|Final Fantasy|431|R|{3}{W}|Legendary Creature - Human Noble Cleric|2|3|Reach$At the beginning of combat on your turn, put a +1/+1 counter on target creature you control. It gains lifelink until end of turn.|