Implemented The Birth of Meletis

This commit is contained in:
Evan Kranzler 2020-01-02 15:30:30 -05:00
parent 136c4fe55b
commit 9948aca713
3 changed files with 91 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -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));

View file

@ -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);
}
}