diff --git a/Mage.Sets/src/mage/cards/b/BraskasFinalAeon.java b/Mage.Sets/src/mage/cards/b/BraskasFinalAeon.java new file mode 100644 index 00000000000..ca6109afb02 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BraskasFinalAeon.java @@ -0,0 +1,61 @@ +package mage.cards.b; + +import mage.MageInt; +import mage.abilities.common.SagaAbility; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.SacrificeOpponentsEffect; +import mage.abilities.effects.common.discard.DiscardEachPlayerEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.*; +import mage.filter.StaticFilters; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class BraskasFinalAeon extends CardImpl { + + public BraskasFinalAeon(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, ""); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.SAGA); + this.subtype.add(SubType.NIGHTMARE); + this.power = new MageInt(7); + this.toughness = new MageInt(7); + this.nightCard = true; + this.color.setBlack(true); + + // (As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) + SagaAbility sagaAbility = new SagaAbility(this); + + // I, II -- Jecht Beam -- Each opponent discards a card and you draw a card. + sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_I, SagaChapter.CHAPTER_II, ability -> { + ability.addEffect(new DiscardEachPlayerEffect(TargetController.OPPONENT)); + ability.addEffect(new DrawCardSourceControllerEffect(1).concatBy("and you")); + ability.withFlavorWord("Jecht Beam"); + }); + + // III -- Ultimate Jecht Shot -- Each opponent sacrifices two creatures of their choice. + sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, ability -> { + ability.addEffect(new SacrificeOpponentsEffect(2, StaticFilters.FILTER_PERMANENT_CREATURES)); + ability.withFlavorWord("Ultimate Jecht Shot"); + }); + this.addAbility(new MenaceAbility()); + + // Menace + this.addAbility(new MenaceAbility()); + } + + private BraskasFinalAeon(final BraskasFinalAeon card) { + super(card); + } + + @Override + public BraskasFinalAeon copy() { + return new BraskasFinalAeon(this); + } +} diff --git a/Mage.Sets/src/mage/cards/j/JechtReluctantGuardian.java b/Mage.Sets/src/mage/cards/j/JechtReluctantGuardian.java new file mode 100644 index 00000000000..7b59e44dce1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/j/JechtReluctantGuardian.java @@ -0,0 +1,49 @@ +package mage.cards.j; + +import mage.MageInt; +import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility; +import mage.abilities.effects.common.ExileAndReturnSourceEffect; +import mage.abilities.keyword.MenaceAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.PutCards; +import mage.constants.SubType; +import mage.constants.SuperType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class JechtReluctantGuardian extends CardImpl { + + public JechtReluctantGuardian(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}"); + + this.supertype.add(SuperType.LEGENDARY); + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.WARRIOR); + this.power = new MageInt(4); + this.toughness = new MageInt(3); + this.secondSideCardClazz = mage.cards.b.BraskasFinalAeon.class; + + // Menace + this.addAbility(new MenaceAbility()); + + // Whenever Jecht deals combat damage to a player, you may exile it, then return it to the battlefield transformed under its owner's control. + this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility( + new ExileAndReturnSourceEffect(PutCards.BATTLEFIELD_TRANSFORMED) + .setText("exile it, then return it to the battlefield transformed under its owner's control"), true + )); + } + + private JechtReluctantGuardian(final JechtReluctantGuardian card) { + super(card); + } + + @Override + public JechtReluctantGuardian copy() { + return new JechtReluctantGuardian(this); + } +} diff --git a/Mage.Sets/src/mage/sets/FinalFantasy.java b/Mage.Sets/src/mage/sets/FinalFantasy.java index 6c131f3f9d2..a74e07bba27 100644 --- a/Mage.Sets/src/mage/sets/FinalFantasy.java +++ b/Mage.Sets/src/mage/sets/FinalFantasy.java @@ -42,6 +42,9 @@ public final class FinalFantasy extends ExpansionSet { cards.add(new SetCardInfo("Beatrix, Loyal General", 426, Rarity.RARE, mage.cards.b.BeatrixLoyalGeneral.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Beatrix, Loyal General", 554, Rarity.RARE, mage.cards.b.BeatrixLoyalGeneral.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Black Mage's Rod", 90, Rarity.COMMON, mage.cards.b.BlackMagesRod.class)); + cards.add(new SetCardInfo("Braska's Final Aeon", 104, Rarity.RARE, mage.cards.b.BraskasFinalAeon.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Braska's Final Aeon", 363, Rarity.RARE, mage.cards.b.BraskasFinalAeon.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Braska's Final Aeon", 448, Rarity.RARE, mage.cards.b.BraskasFinalAeon.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cecil, Dark Knight", 380, Rarity.RARE, mage.cards.c.CecilDarkKnight.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cecil, Dark Knight", 445, Rarity.RARE, mage.cards.c.CecilDarkKnight.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Cecil, Dark Knight", 525, Rarity.RARE, mage.cards.c.CecilDarkKnight.class, NON_FULL_USE_VARIOUS)); @@ -138,6 +141,9 @@ public final class FinalFantasy extends ExpansionSet { cards.add(new SetCardInfo("Island", 299, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Island", 573, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Item Shopkeep", 142, Rarity.COMMON, mage.cards.i.ItemShopkeep.class)); + cards.add(new SetCardInfo("Jecht, Reluctant Guardian", 104, Rarity.RARE, mage.cards.j.JechtReluctantGuardian.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Jecht, Reluctant Guardian", 363, Rarity.RARE, mage.cards.j.JechtReluctantGuardian.class, NON_FULL_USE_VARIOUS)); + cards.add(new SetCardInfo("Jecht, Reluctant Guardian", 448, Rarity.RARE, mage.cards.j.JechtReluctantGuardian.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Jidoor, Aristocratic Capital", 284, Rarity.RARE, mage.cards.j.JidoorAristocraticCapital.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Jidoor, Aristocratic Capital", 311, Rarity.RARE, mage.cards.j.JidoorAristocraticCapital.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Jill, Shiva's Dominant", 378, Rarity.RARE, mage.cards.j.JillShivasDominant.class, NON_FULL_USE_VARIOUS));