[FIN] Implement Choco, Seeker of Paradise

This commit is contained in:
theelk801 2025-05-14 18:21:04 -04:00
parent 370e1dbeec
commit 9621f730e9
3 changed files with 109 additions and 2 deletions

View file

@ -0,0 +1,105 @@
package mage.cards.c;
import mage.MageInt;
import mage.abilities.Ability;
import mage.abilities.common.AttacksWithCreaturesTriggeredAbility;
import mage.abilities.common.LandfallAbility;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.effects.common.continuous.BoostSourceEffect;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.Cards;
import mage.cards.CardsImpl;
import mage.constants.*;
import mage.filter.FilterPermanent;
import mage.filter.StaticFilters;
import mage.filter.common.FilterControlledPermanent;
import mage.game.Game;
import mage.players.Player;
import mage.target.TargetCard;
import mage.target.common.TargetCardInLibrary;
import java.util.Optional;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class ChocoSeekerOfParadise extends CardImpl {
private static final FilterPermanent filter = new FilterControlledPermanent(SubType.BIRD, "Birds you control");
public ChocoSeekerOfParadise(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{G}{W}{U}");
this.supertype.add(SuperType.LEGENDARY);
this.subtype.add(SubType.BIRD);
this.power = new MageInt(3);
this.toughness = new MageInt(5);
// Whenever one or more Birds you control attack, look at that many cards from the top of your library. You may put one of them into your hand. Then put any number of land cards from among them onto the battlefield tapped and the rest into your graveyard.
this.addAbility(new AttacksWithCreaturesTriggeredAbility(new ChocoSeekerOfParadiseEffect(), 1, filter));
// Landfall -- Whenever a land you control enters, Choco gets +1/+0 until end of turn.
this.addAbility(new LandfallAbility(new BoostSourceEffect(1, 0, Duration.EndOfTurn)));
}
private ChocoSeekerOfParadise(final ChocoSeekerOfParadise card) {
super(card);
}
@Override
public ChocoSeekerOfParadise copy() {
return new ChocoSeekerOfParadise(this);
}
}
class ChocoSeekerOfParadiseEffect extends OneShotEffect {
ChocoSeekerOfParadiseEffect() {
super(Outcome.Benefit);
staticText = "look at that many cards from the top of your library. " +
"You may put one of them into your hand. Then put any number of land cards " +
"from among them onto the battlefield tapped and the rest into your graveyard";
}
private ChocoSeekerOfParadiseEffect(final ChocoSeekerOfParadiseEffect effect) {
super(effect);
}
@Override
public ChocoSeekerOfParadiseEffect copy() {
return new ChocoSeekerOfParadiseEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player player = game.getPlayer(source.getControllerId());
if (player == null) {
return false;
}
int amount = (Integer) getValue(AttacksWithCreaturesTriggeredAbility.VALUEKEY_NUMBER_ATTACKERS);
Cards cards = new CardsImpl(player.getLibrary().getTopCards(game, amount));
cards.retainZone(Zone.LIBRARY, game);
if (cards.isEmpty()) {
return false;
}
TargetCard target = new TargetCardInLibrary(0, 1, StaticFilters.FILTER_CARD);
target.withChooseHint("to put into your hand");
player.choose(outcome, cards, target, source, game);
Optional.ofNullable(target.getFirstTarget())
.map(game::getCard)
.ifPresent(card -> player.moveCards(card, Zone.HAND, source, game));
cards.retainZone(Zone.LIBRARY, game);
target = new TargetCardInLibrary(0, Integer.MAX_VALUE, StaticFilters.FILTER_CARD_LANDS);
target.withChooseHint("to put onto the battlefield tapped");
player.choose(outcome, cards, target, source, game);
player.moveCards(
new CardsImpl(target.getTargets()).getCards(game), Zone.BATTLEFIELD, source,
game, true, false, false, null
);
cards.retainZone(Zone.LIBRARY, game);
player.moveCards(cards, Zone.GRAVEYARD, source, game);
return true;
}
}

View file

@ -52,6 +52,8 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Cecil, Redeemed Paladin", 91, Rarity.RARE, mage.cards.c.CecilRedeemedPaladin.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cecil, Redeemed Paladin", 91, Rarity.RARE, mage.cards.c.CecilRedeemedPaladin.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Chaos, the Endless", 221, Rarity.UNCOMMON, mage.cards.c.ChaosTheEndless.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Chaos, the Endless", 221, Rarity.UNCOMMON, mage.cards.c.ChaosTheEndless.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Chaos, the Endless", 486, Rarity.UNCOMMON, mage.cards.c.ChaosTheEndless.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Chaos, the Endless", 486, Rarity.UNCOMMON, mage.cards.c.ChaosTheEndless.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Choco, Seeker of Paradise", 215, Rarity.RARE, mage.cards.c.ChocoSeekerOfParadise.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Choco, Seeker of Paradise", 479, Rarity.RARE, mage.cards.c.ChocoSeekerOfParadise.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Cid, Timeless Artificer", 216, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cid, Timeless Artificer", 216, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Cid, Timeless Artificer", 407, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cid, Timeless Artificer", 407, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Cid, Timeless Artificer", 408, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cid, Timeless Artificer", 408, Rarity.UNCOMMON, mage.cards.c.CidTimelessArtificer.class, NON_FULL_USE_VARIOUS));

View file

@ -57711,7 +57711,7 @@ Traveling Chocobo|Final Fantasy|210|M|{2}{G}|Creature - Bird|3|2|You may look at
Vanille, Cheerful l'Cie|Final Fantasy|211|U|{3}{G}|Legendary Creature - Human Cleric|3|2|When Vanille enters, mill two cards, then return a permanent card from your graveyard to your hand.$At the beginning of your first main phase, if you both own and control Vanille and a creature named Fang, Fearless l'Cie, you may pay {3}{B}{G}. If you do, exile them, then meld them into Ragnarok, Divine Deliverance.| Vanille, Cheerful l'Cie|Final Fantasy|211|U|{3}{G}|Legendary Creature - Human Cleric|3|2|When Vanille enters, mill two cards, then return a permanent card from your graveyard to your hand.$At the beginning of your first main phase, if you both own and control Vanille and a creature named Fang, Fearless l'Cie, you may pay {3}{B}{G}. If you do, exile them, then meld them into Ragnarok, Divine Deliverance.|
Absolute Virtue|Final Fantasy|212|M|{6}{W}{U}|Legendary Creature - Avatar Warrior|8|8|This spell can't be countered.$Flying$You have protection from each of your opponents.| Absolute Virtue|Final Fantasy|212|M|{6}{W}{U}|Legendary Creature - Avatar Warrior|8|8|This spell can't be countered.$Flying$You have protection from each of your opponents.|
Balthier and Fran|Final Fantasy|213|R|{1}{R}{G}|Legendary Creature - Human Rabbit|4|3|Reach$Vehicles you control get +1/+1 and have vigilance and reach.$Whenever a Vehicle crewed by Balthier and Fran this turn attacks, if it's the first combat phase of the turn, you may pay {1}{R}{G}. If you do, after this phase, there is an additional combat phase.| Balthier and Fran|Final Fantasy|213|R|{1}{R}{G}|Legendary Creature - Human Rabbit|4|3|Reach$Vehicles you control get +1/+1 and have vigilance and reach.$Whenever a Vehicle crewed by Balthier and Fran this turn attacks, if it's the first combat phase of the turn, you may pay {1}{R}{G}. If you do, after this phase, there is an additional combat phase.|
Choco, Seeker of Paradise|Final Fantasy|215|R|{1}{W}{B}{U}|Legendary Creature - Bird|3|5|Whenever one or more Birds you control attack, look at that many cards from the top of your library. You may put one of them into your hand. Then put any number of land cards from among them onto the battlefield tapped and the rest into your graveyard.$Landfall -- Whenever a land you control enters, Choco gets +1/+0 until end of turn.| Choco, Seeker of Paradise|Final Fantasy|215|R|{1}{G}{W}{U}|Legendary Creature - Bird|3|5|Whenever one or more Birds you control attack, look at that many cards from the top of your library. You may put one of them into your hand. Then put any number of land cards from among them onto the battlefield tapped and the rest into your graveyard.$Landfall -- Whenever a land you control enters, Choco gets +1/+0 until end of turn.|
Cid, Timeless Artificer|Final Fantasy|216|U|{2}{W}{U}|Legendary Creature - Human Artificer|4|4|Artifact creatures and Heroes you control get +1/+1 for each Artificer you control and each Artificer card in your graveyard.$A deck can have any number of cards named Cid, Timeless Artificer.$Cycling {W}{U}| Cid, Timeless Artificer|Final Fantasy|216|U|{2}{W}{U}|Legendary Creature - Human Artificer|4|4|Artifact creatures and Heroes you control get +1/+1 for each Artificer you control and each Artificer card in your graveyard.$A deck can have any number of cards named Cid, Timeless Artificer.$Cycling {W}{U}|
Emet-Selch, Unsundered|Final Fantasy|218|M|{1}{U}{B}|Legendary Creature - Elder Wizard|2|4|Vigilance$Whenever Emet-Selch enters or attacks, draw a card, then discard a card.$At the beginning of your upkeep, if there are fourteen or more cards in your graveyard, you may transform Emet-Selch.| Emet-Selch, Unsundered|Final Fantasy|218|M|{1}{U}{B}|Legendary Creature - Elder Wizard|2|4|Vigilance$Whenever Emet-Selch enters or attacks, draw a card, then discard a card.$At the beginning of your upkeep, if there are fourteen or more cards in your graveyard, you may transform Emet-Selch.|
Hades, Sorcerer of Eld|Final Fantasy|218|M||Legendary Creature - Avatar|6|6|Vigilance$Echo of the Lost -- During your turn, you may play cards from your graveyard.$If a card or token would be put into your graveyard from anywhere, exile it instead.| Hades, Sorcerer of Eld|Final Fantasy|218|M||Legendary Creature - Avatar|6|6|Vigilance$Echo of the Lost -- During your turn, you may play cards from your graveyard.$If a card or token would be put into your graveyard from anywhere, exile it instead.|
@ -57879,7 +57879,7 @@ Tifa Lockhart|Final Fantasy|473|R|{1}{G}|Legendary Creature - Human Monk|1|2|Tra
Vanille, Cheerful l'Cie|Final Fantasy|475|U|{3}{G}|Legendary Creature - Human Cleric|3|2|When Vanille enters, mill two cards, then return a permanent card from your graveyard to your hand.$At the beginning of your first main phase, if you both own and control Vanille and a creature named Fang, Fearless l'Cie, you may pay {3}{B}{G}. If you do, exile them, then meld them into Ragnarok, Divine Deliverance.| Vanille, Cheerful l'Cie|Final Fantasy|475|U|{3}{G}|Legendary Creature - Human Cleric|3|2|When Vanille enters, mill two cards, then return a permanent card from your graveyard to your hand.$At the beginning of your first main phase, if you both own and control Vanille and a creature named Fang, Fearless l'Cie, you may pay {3}{B}{G}. If you do, exile them, then meld them into Ragnarok, Divine Deliverance.|
Absolute Virtue|Final Fantasy|476|M|{6}{W}{U}|Legendary Creature - Avatar Warrior|8|8|This spell can't be countered.$Flying$You have protection from each of your opponents.| Absolute Virtue|Final Fantasy|476|M|{6}{W}{U}|Legendary Creature - Avatar Warrior|8|8|This spell can't be countered.$Flying$You have protection from each of your opponents.|
Balthier and Fran|Final Fantasy|477|R|{1}{R}{G}|Legendary Creature - Human Rabbit|4|3|Reach$Vehicles you control get +1/+1 and have vigilance and reach.$Whenever a Vehicle crewed by Balthier and Fran this turn attacks, if it's the first combat phase of the turn, you may pay {1}{R}{G}. If you do, after this phase, there is an additional combat phase.| Balthier and Fran|Final Fantasy|477|R|{1}{R}{G}|Legendary Creature - Human Rabbit|4|3|Reach$Vehicles you control get +1/+1 and have vigilance and reach.$Whenever a Vehicle crewed by Balthier and Fran this turn attacks, if it's the first combat phase of the turn, you may pay {1}{R}{G}. If you do, after this phase, there is an additional combat phase.|
Choco, Seeker of Paradise|Final Fantasy|479|R|{1}{W}{B}{U}|Legendary Creature - Bird|3|5|Whenever one or more Birds you control attack, look at that many cards from the top of your library. You may put one of them into your hand. Then put any number of land cards from among them onto the battlefield tapped and the rest into your graveyard.$Landfall -- Whenever a land you control enters, Choco gets +1/+0 until end of turn.| Choco, Seeker of Paradise|Final Fantasy|479|R|{1}{G}{W}{U}|Legendary Creature - Bird|3|5|Whenever one or more Birds you control attack, look at that many cards from the top of your library. You may put one of them into your hand. Then put any number of land cards from among them onto the battlefield tapped and the rest into your graveyard.$Landfall -- Whenever a land you control enters, Choco gets +1/+0 until end of turn.|
Cid, Timeless Artificer|Final Fantasy|480|U|{2}{W}{U}|Legendary Creature - Human Artificer|4|4|Artifact creatures and Heroes you control get +1/+1 for each Artificer you control and each Artificer card in your graveyard.$A deck can have any number of cards named Cid, Timeless Artificer.$Cycling {W}{U}| Cid, Timeless Artificer|Final Fantasy|480|U|{2}{W}{U}|Legendary Creature - Human Artificer|4|4|Artifact creatures and Heroes you control get +1/+1 for each Artificer you control and each Artificer card in your graveyard.$A deck can have any number of cards named Cid, Timeless Artificer.$Cycling {W}{U}|
Cloud, Planet's Champion|Final Fantasy|482|M|{3}{R}{W}|Legendary Creature - Human Soldier Mercenary|4|4|During your turn, as long as Cloud is equipped, it has double strike and indestructible.$Equip abilities you activate that target Cloud cost {2} less to activate.| Cloud, Planet's Champion|Final Fantasy|482|M|{3}{R}{W}|Legendary Creature - Human Soldier Mercenary|4|4|During your turn, as long as Cloud is equipped, it has double strike and indestructible.$Equip abilities you activate that target Cloud cost {2} less to activate.|
Emet-Selch, Unsundered|Final Fantasy|483|M|{1}{U}{B}|Legendary Creature - Elder Wizard|2|4|Vigilance$Whenever Emet-Selch enters or attacks, draw a card, then discard a card.$At the beginning of your upkeep, if there are fourteen or more cards in your graveyard, you may transform Emet-Selch.| Emet-Selch, Unsundered|Final Fantasy|483|M|{1}{U}{B}|Legendary Creature - Elder Wizard|2|4|Vigilance$Whenever Emet-Selch enters or attacks, draw a card, then discard a card.$At the beginning of your upkeep, if there are fourteen or more cards in your graveyard, you may transform Emet-Selch.|