diff --git a/Mage.Sets/src/mage/cards/t/TheBirthOfMeletis.java b/Mage.Sets/src/mage/cards/t/TheBirthOfMeletis.java new file mode 100644 index 0000000000..14d5da4370 --- /dev/null +++ b/Mage.Sets/src/mage/cards/t/TheBirthOfMeletis.java @@ -0,0 +1,65 @@ +package mage.cards.t; + +import mage.abilities.common.SagaAbility; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.GainLifeEffect; +import mage.abilities.effects.common.search.SearchLibraryPutInHandEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SagaChapter; +import mage.constants.SubType; +import mage.constants.SuperType; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.SubtypePredicate; +import mage.filter.predicate.mageobject.SupertypePredicate; +import mage.game.permanent.token.ArtifactWallToken; +import mage.target.common.TargetCardInLibrary; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class TheBirthOfMeletis extends CardImpl { + + private static final FilterCard filter = new FilterCard("a basic Plains card"); + + static { + filter.add(new SubtypePredicate(SubType.PLAINS)); + filter.add(new SupertypePredicate(SuperType.BASIC)); + } + + public TheBirthOfMeletis(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT}, "{1}{W}"); + + this.subtype.add(SubType.SAGA); + + // (As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.) + SagaAbility sagaAbility = new SagaAbility(this, SagaChapter.CHAPTER_III); + + // I — Search your library for a basic Plains card, reveal it, put it into your hand, then shuffle your library. + sagaAbility.addChapterEffect( + this, SagaChapter.CHAPTER_I, new SearchLibraryPutInHandEffect( + new TargetCardInLibrary(filter), false, true + ) + ); + + // II — Create a colorless 0/4 Wall artifact creature token with defender. + sagaAbility.addChapterEffect( + this, SagaChapter.CHAPTER_II, new CreateTokenEffect(new ArtifactWallToken()) + ); + + // III — You gain 2 life. + sagaAbility.addChapterEffect(this, SagaChapter.CHAPTER_III, new GainLifeEffect(2)); + } + + private TheBirthOfMeletis(final TheBirthOfMeletis card) { + super(card); + } + + @Override + public TheBirthOfMeletis copy() { + return new TheBirthOfMeletis(this); + } +} diff --git a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java index 5c252c9184..eda1989300 100644 --- a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java +++ b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java @@ -97,6 +97,7 @@ public final class TherosBeyondDeath extends ExpansionSet { cards.add(new SetCardInfo("Terror of Mount Velus", 295, Rarity.RARE, mage.cards.t.TerrorOfMountVelus.class)); cards.add(new SetCardInfo("The Akroan War", 124, Rarity.RARE, mage.cards.t.TheAkroanWar.class)); cards.add(new SetCardInfo("The Binding of the Titans", 166, Rarity.UNCOMMON, mage.cards.t.TheBindingOfTheTitans.class)); + cards.add(new SetCardInfo("The Birth of Meletis", 5, Rarity.UNCOMMON, mage.cards.t.TheBirthOfMeletis.class)); cards.add(new SetCardInfo("Thirst for Meaning", 74, Rarity.COMMON, mage.cards.t.ThirstForMeaning.class)); cards.add(new SetCardInfo("Towering-Wave Mystic", 77, Rarity.COMMON, mage.cards.t.ToweringWaveMystic.class)); cards.add(new SetCardInfo("Treacherous Blessing", 316, Rarity.RARE, mage.cards.t.TreacherousBlessing.class)); diff --git a/Mage/src/main/java/mage/game/permanent/token/ArtifactWallToken.java b/Mage/src/main/java/mage/game/permanent/token/ArtifactWallToken.java new file mode 100644 index 0000000000..90e13596e9 --- /dev/null +++ b/Mage/src/main/java/mage/game/permanent/token/ArtifactWallToken.java @@ -0,0 +1,25 @@ +package mage.game.permanent.token; + +import mage.MageInt; +import mage.constants.CardType; +import mage.constants.SubType; + +public final class ArtifactWallToken extends TokenImpl { + + public ArtifactWallToken() { + super("Wall", "colorless 0/4 Wall artifact creature token with defender"); + cardType.add(CardType.ARTIFACT); + cardType.add(CardType.CREATURE); + subtype.add(SubType.WALL); + power = new MageInt(0); + toughness = new MageInt(4); + } + + private ArtifactWallToken(final ArtifactWallToken token) { + super(token); + } + + public ArtifactWallToken copy() { + return new ArtifactWallToken(this); + } +}