[FIN] Implement Eden, Seat of the Sanctum

This commit is contained in:
theelk801 2025-05-27 22:06:31 -04:00 committed by Failure
parent 6b2be185ce
commit 790c4186da
2 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,62 @@
package mage.cards.e;
import mage.abilities.Ability;
import mage.abilities.common.SimpleActivatedAbility;
import mage.abilities.common.delayed.ReflexiveTriggeredAbility;
import mage.abilities.costs.common.SacrificeSourceCost;
import mage.abilities.costs.common.TapSourceCost;
import mage.abilities.costs.mana.GenericManaCost;
import mage.abilities.effects.common.DoWhenCostPaid;
import mage.abilities.effects.common.MillCardsControllerEffect;
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
import mage.abilities.mana.ColorlessManaAbility;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.constants.CardType;
import mage.constants.SubType;
import mage.filter.FilterCard;
import mage.filter.common.FilterPermanentCard;
import mage.filter.predicate.mageobject.AnotherPredicate;
import mage.target.common.TargetCardInYourGraveyard;
import java.util.UUID;
/**
* @author TheElk801
*/
public final class EdenSeatOfTheSanctum extends CardImpl {
private static final FilterCard filter = new FilterPermanentCard("another target permanent card from your graveyard");
static {
filter.add(AnotherPredicate.instance);
}
public EdenSeatOfTheSanctum(UUID ownerId, CardSetInfo setInfo) {
super(ownerId, setInfo, new CardType[]{CardType.LAND}, "");
this.subtype.add(SubType.TOWN);
// {T}: Add {C}.
this.addAbility(new ColorlessManaAbility());
// {5}, {T}: Mill two cards. Then you may sacrifice this land. When you do, return another target permanent card from your graveyard to your hand.
Ability ability = new SimpleActivatedAbility(new MillCardsControllerEffect(2), new GenericManaCost(5));
ability.addCost(new TapSourceCost());
ReflexiveTriggeredAbility rAbility = new ReflexiveTriggeredAbility(
new ReturnFromGraveyardToHandTargetEffect(), false
);
rAbility.addTarget(new TargetCardInYourGraveyard(filter));
ability.addEffect(new DoWhenCostPaid(rAbility, new SacrificeSourceCost(), "Sacrifice this land?").concatBy("Then"));
this.addAbility(ability);
}
private EdenSeatOfTheSanctum(final EdenSeatOfTheSanctum card) {
super(card);
}
@Override
public EdenSeatOfTheSanctum copy() {
return new EdenSeatOfTheSanctum(this);
}
}

View file

@ -168,6 +168,7 @@ public final class FinalFantasy extends ExpansionSet {
cards.add(new SetCardInfo("Dragoon's Wyvern", 49, Rarity.COMMON, mage.cards.d.DragoonsWyvern.class));
cards.add(new SetCardInfo("Dreams of Laguna", 50, Rarity.COMMON, mage.cards.d.DreamsOfLaguna.class));
cards.add(new SetCardInfo("Dwarven Castle Guard", 18, Rarity.COMMON, mage.cards.d.DwarvenCastleGuard.class));
cards.add(new SetCardInfo("Eden, Seat of the Sanctum", 277, Rarity.UNCOMMON, mage.cards.e.EdenSeatOfTheSanctum.class));
cards.add(new SetCardInfo("Edgar, King of Figaro", 436, Rarity.RARE, mage.cards.e.EdgarKingOfFigaro.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Edgar, King of Figaro", 51, Rarity.RARE, mage.cards.e.EdgarKingOfFigaro.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Eject", 52, Rarity.UNCOMMON, mage.cards.e.Eject.class));