From ea65f670783933346995eff1a57c1f66e8c05de4 Mon Sep 17 00:00:00 2001 From: jmharmon <37360760+jmharmon@users.noreply.github.com> Date: Fri, 13 Dec 2019 20:30:04 -0800 Subject: [PATCH 1/6] Implement 4 cards --- Mage.Sets/src/mage/sets/TherosBeyondDeath.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java index 801adeb3559..2f822b54ed5 100644 --- a/Mage.Sets/src/mage/sets/TherosBeyondDeath.java +++ b/Mage.Sets/src/mage/sets/TherosBeyondDeath.java @@ -26,14 +26,18 @@ public final class TherosBeyondDeath extends ExpansionSet { this.ratioBoosterMythic = 8; this.maxCardNumberInBooster = 254; + cards.add(new SetCardInfo("Eidolon of Philosophy", 48, Rarity.COMMON, mage.cards.e.EidolonOfPhilosophy.class)); cards.add(new SetCardInfo("Elspeth, Sun's Nemesis", 14, Rarity.MYTHIC, mage.cards.e.ElspethSunsNemesis.class)); cards.add(new SetCardInfo("Forest", 254, Rarity.LAND, mage.cards.basiclands.Forest.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Indomitable Will", 25, Rarity.COMMON, mage.cards.i.IndomitableWill.class)); cards.add(new SetCardInfo("Island", 251, Rarity.LAND, mage.cards.basiclands.Island.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Klothys's Design", 176, Rarity.UNCOMMON, mage.cards.k.KlothyssDesign.class)); + cards.add(new SetCardInfo("Leonin of the Lost Pride", 28, Rarity.COMMON, mage.cards.l.LeoninOfTheLostPride.class)); + cards.add(new SetCardInfo("Memory Drain", 54, Rarity.COMMON, mage.cards.m.MemoryDrain.class)); cards.add(new SetCardInfo("Mire's Grasp", 106, Rarity.COMMON, mage.cards.m.MiresGrasp.class)); cards.add(new SetCardInfo("Mountain", 253, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Nyxborn Colossus", 191, Rarity.COMMON, mage.cards.n.NyxbornColossus.class)); + cards.add(new SetCardInfo("Nyxborn Courser", 29, Rarity.COMMON, mage.cards.n.NyxbornCourser.class)); cards.add(new SetCardInfo("Plains", 250, Rarity.LAND, mage.cards.basiclands.Plains.class, FULL_ART_BFZ_VARIOUS)); cards.add(new SetCardInfo("Revoke Existence", 34, Rarity.COMMON, mage.cards.r.RevokeExistence.class)); cards.add(new SetCardInfo("Setessan Champion", 198, Rarity.RARE, mage.cards.s.SetessanChampion.class)); From 4099d233a917ee19ec3500fdcf2ca609c524e2da Mon Sep 17 00:00:00 2001 From: jmharmon <37360760+jmharmon@users.noreply.github.com> Date: Fri, 13 Dec 2019 20:31:13 -0800 Subject: [PATCH 2/6] Implement Eidolon of Philosophy --- .../src/mage/cards/e/EidolonOfPhilosophy.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/e/EidolonOfPhilosophy.java diff --git a/Mage.Sets/src/mage/cards/e/EidolonOfPhilosophy.java b/Mage.Sets/src/mage/cards/e/EidolonOfPhilosophy.java new file mode 100644 index 00000000000..fe02b244343 --- /dev/null +++ b/Mage.Sets/src/mage/cards/e/EidolonOfPhilosophy.java @@ -0,0 +1,45 @@ +package mage.cards.e; + +import mage.MageInt; +import mage.abilities.Ability; +import mage.abilities.common.SimpleActivatedAbility; +import mage.abilities.costs.common.SacrificeSourceCost; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.constants.Zone; + +import java.util.UUID; + +/** + * @author jmharmon + */ + +public final class EidolonOfPhilosophy extends CardImpl { + + public EidolonOfPhilosophy(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{U}"); + + this.subtype.add(SubType.SPIRIT); + + this.power = new MageInt(1); + this.toughness = new MageInt(2); + + // {6}{U}, Sacrifice Eidolon of Philosophy: Draw three cards. + Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new DrawCardSourceControllerEffect(3), new ManaCostsImpl("{6}{U}")); + ability.addCost(new SacrificeSourceCost()); + this.addAbility(ability); + } + + public EidolonOfPhilosophy(final EidolonOfPhilosophy card) { + super(card); + } + + @Override + public EidolonOfPhilosophy copy() { + return new EidolonOfPhilosophy(this); + } +} From f954d1ad931b6f9e00bcbaa1d12fdf03d60d8a0f Mon Sep 17 00:00:00 2001 From: jmharmon <37360760+jmharmon@users.noreply.github.com> Date: Fri, 13 Dec 2019 20:32:17 -0800 Subject: [PATCH 3/6] Implement Leonin of the Lost Pride --- .../mage/cards/l/LeoninOfTheLostPride.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/l/LeoninOfTheLostPride.java diff --git a/Mage.Sets/src/mage/cards/l/LeoninOfTheLostPride.java b/Mage.Sets/src/mage/cards/l/LeoninOfTheLostPride.java new file mode 100644 index 00000000000..3d5719900f4 --- /dev/null +++ b/Mage.Sets/src/mage/cards/l/LeoninOfTheLostPride.java @@ -0,0 +1,44 @@ +package mage.cards.l; + +import mage.MageInt; +import mage.abilities.common.DiesTriggeredAbility; +import mage.abilities.effects.common.ExileTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.FilterCard; +import mage.target.common.TargetCardInOpponentsGraveyard; + +import java.util.UUID; + +/** + * @author jmharmon + */ + +public final class LeoninOfTheLostPride extends CardImpl { + + public LeoninOfTheLostPride(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{1}{W}"); + + this.subtype.add(SubType.CAT); + this.subtype.add(SubType.WARRIOR); + + this.power = new MageInt(3); + this.toughness = new MageInt(1); + + // When Leonin of the Lost Pride dies, exile target card from an opponent’s graveyard. + DiesTriggeredAbility diesTriggeredAbility = new DiesTriggeredAbility(new ExileTargetEffect()); + diesTriggeredAbility.addTarget(new TargetCardInOpponentsGraveyard(new FilterCard("card from an opponent's graveyard"))); + this.addAbility(diesTriggeredAbility); + } + + public LeoninOfTheLostPride(final LeoninOfTheLostPride card) { + super(card); + } + + @Override + public LeoninOfTheLostPride copy() { + return new LeoninOfTheLostPride(this); + } +} From b538baef6f118326a5367c0f2d28010ecff4dce4 Mon Sep 17 00:00:00 2001 From: jmharmon <37360760+jmharmon@users.noreply.github.com> Date: Fri, 13 Dec 2019 20:33:23 -0800 Subject: [PATCH 4/6] Implement Memory Drain --- Mage.Sets/src/mage/cards/m/MemoryDrain.java | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/m/MemoryDrain.java diff --git a/Mage.Sets/src/mage/cards/m/MemoryDrain.java b/Mage.Sets/src/mage/cards/m/MemoryDrain.java new file mode 100644 index 00000000000..661efa3b618 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MemoryDrain.java @@ -0,0 +1,34 @@ +package mage.cards.m; + +import mage.abilities.effects.keyword.ScryEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.target.TargetSpell; + +import java.util.UUID; + +/** + * @author jmharmon + */ + +public final class MemoryDrain extends CardImpl { + + public MemoryDrain(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{U}"); + + // Counter target spell. Scry 2. + this.getSpellAbility().addEffect(new CounterSourceEffect()); + this.getSpellAbility().addTarget(new TargetSpell()); + this.getSpellAbility().addEffect(new ScryEffect(2)); + } + + public MemoryDrain(final MemoryDrain card) { + super(card); + } + + @Override + public MemoryDrain copy() { + return new MemoryDrain(this); + } +} From 073ee1419b1c6d1f1bdd463da01581b47768ea85 Mon Sep 17 00:00:00 2001 From: jmharmon <37360760+jmharmon@users.noreply.github.com> Date: Fri, 13 Dec 2019 20:34:18 -0800 Subject: [PATCH 5/6] Implement Nyxborn Courser --- .../src/mage/cards/n/NyxbornCourser.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/n/NyxbornCourser.java diff --git a/Mage.Sets/src/mage/cards/n/NyxbornCourser.java b/Mage.Sets/src/mage/cards/n/NyxbornCourser.java new file mode 100644 index 00000000000..3bffca694f8 --- /dev/null +++ b/Mage.Sets/src/mage/cards/n/NyxbornCourser.java @@ -0,0 +1,35 @@ +package mage.cards.n; + +import mage.MageInt; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.UUID; + +/** + * @author jmharmon + */ + +public final class NyxbornCourser extends CardImpl { + + public NyxbornCourser(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.ENCHANTMENT, CardType.CREATURE}, "{1}{W}{W}"); + + this.subtype.add(SubType.CENTAUR); + this.subtype.add(SubType.SCOUT); + + this.power = new MageInt(2); + this.toughness = new MageInt(4); + } + + public NyxbornCourser(final NyxbornCourser card) { + super(card); + } + + @Override + public NyxbornCourser copy() { + return new NyxbornCourser(this); + } +} From 2d4f8b6a02eb9ba283586bc37ef774097c1ba60a Mon Sep 17 00:00:00 2001 From: jmharmon <37360760+jmharmon@users.noreply.github.com> Date: Fri, 13 Dec 2019 20:43:16 -0800 Subject: [PATCH 6/6] Fix to CounterTargetEffect --- Mage.Sets/src/mage/cards/m/MemoryDrain.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mage.Sets/src/mage/cards/m/MemoryDrain.java b/Mage.Sets/src/mage/cards/m/MemoryDrain.java index 661efa3b618..c6d6878a5e9 100644 --- a/Mage.Sets/src/mage/cards/m/MemoryDrain.java +++ b/Mage.Sets/src/mage/cards/m/MemoryDrain.java @@ -18,7 +18,7 @@ public final class MemoryDrain extends CardImpl { super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{2}{U}{U}"); // Counter target spell. Scry 2. - this.getSpellAbility().addEffect(new CounterSourceEffect()); + this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell()); this.getSpellAbility().addEffect(new ScryEffect(2)); }