From aa1190ddba0de41d3df019d2ae78ac22c25cda44 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Thu, 5 Sep 2019 21:02:04 -0400 Subject: [PATCH] Implemented Order of Midnight --- .../src/mage/cards/f/FoulmireKnight.java | 4 +- .../src/mage/cards/o/OrderOfMidnight.java | 49 +++++++++++++++++++ Mage.Sets/src/mage/sets/ThroneOfEldraine.java | 1 + .../main/java/mage/cards/AdventureCard.java | 6 ++- 4 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 Mage.Sets/src/mage/cards/o/OrderOfMidnight.java diff --git a/Mage.Sets/src/mage/cards/f/FoulmireKnight.java b/Mage.Sets/src/mage/cards/f/FoulmireKnight.java index 6873a6d0571..6a12a74b235 100644 --- a/Mage.Sets/src/mage/cards/f/FoulmireKnight.java +++ b/Mage.Sets/src/mage/cards/f/FoulmireKnight.java @@ -29,8 +29,8 @@ public final class FoulmireKnight extends AdventureCard { // Profane Insight // You draw a card and you lose 1 life. - adventureSpellAbility.addEffect(new DrawCardSourceControllerEffect(1).setText("You draw a card and")); - adventureSpellAbility.addEffect(new LoseLifeSourceControllerEffect(1)); + this.getAdventureSpellAbility().addEffect(new DrawCardSourceControllerEffect(1).setText("You draw a card and")); + this.getAdventureSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1)); } private FoulmireKnight(final FoulmireKnight card) { diff --git a/Mage.Sets/src/mage/cards/o/OrderOfMidnight.java b/Mage.Sets/src/mage/cards/o/OrderOfMidnight.java new file mode 100644 index 00000000000..710b96a81a1 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OrderOfMidnight.java @@ -0,0 +1,49 @@ +package mage.cards.o; + +import mage.MageInt; +import mage.abilities.common.CantBlockAbility; +import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect; +import mage.abilities.keyword.FlyingAbility; +import mage.cards.AdventureCard; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; +import mage.filter.StaticFilters; +import mage.target.common.TargetCardInYourGraveyard; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class OrderOfMidnight extends AdventureCard { + + public OrderOfMidnight(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, new CardType[]{CardType.SORCERY}, "{1}{B}", "{1}{B}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.KNIGHT); + this.power = new MageInt(2); + this.toughness = new MageInt(2); + + // Flying + this.addAbility(FlyingAbility.getInstance()); + + // Order of Midnight can't block. + this.addAbility(new CantBlockAbility()); + + // Alter Fate + // Return target creature card from your graveyard to your hand. + this.getAdventureSpellAbility().addEffect(new ReturnFromGraveyardToHandTargetEffect()); + this.getAdventureSpellAbility().addTarget(new TargetCardInYourGraveyard(StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD)); + } + + private OrderOfMidnight(final OrderOfMidnight card) { + super(card); + } + + @Override + public OrderOfMidnight copy() { + return new OrderOfMidnight(this); + } +} diff --git a/Mage.Sets/src/mage/sets/ThroneOfEldraine.java b/Mage.Sets/src/mage/sets/ThroneOfEldraine.java index 73f8e310c11..8569a4328ff 100644 --- a/Mage.Sets/src/mage/sets/ThroneOfEldraine.java +++ b/Mage.Sets/src/mage/sets/ThroneOfEldraine.java @@ -52,6 +52,7 @@ public final class ThroneOfEldraine extends ExpansionSet { cards.add(new SetCardInfo("Heraldic Banner", 222, Rarity.UNCOMMON, mage.cards.h.HeraldicBanner.class)); cards.add(new SetCardInfo("Inspiring Veteran", 194, Rarity.UNCOMMON, mage.cards.i.InspiringVeteran.class)); cards.add(new SetCardInfo("Maraleaf Pixie", 196, Rarity.UNCOMMON, mage.cards.m.MaraleafPixie.class)); + cards.add(new SetCardInfo("Order of Midnight", 99, Rarity.UNCOMMON, mage.cards.o.OrderOfMidnight.class)); cards.add(new SetCardInfo("Rankle, Master of Pranks", 101, Rarity.MYTHIC, mage.cards.r.RankleMasterOfPranks.class)); cards.add(new SetCardInfo("Run Away Together", 62, Rarity.COMMON, mage.cards.r.RunAwayTogether.class)); cards.add(new SetCardInfo("Savvy Hunter", 200, Rarity.UNCOMMON, mage.cards.s.SavvyHunter.class)); diff --git a/Mage/src/main/java/mage/cards/AdventureCard.java b/Mage/src/main/java/mage/cards/AdventureCard.java index 674d87777a4..2f08b7cef40 100644 --- a/Mage/src/main/java/mage/cards/AdventureCard.java +++ b/Mage/src/main/java/mage/cards/AdventureCard.java @@ -10,7 +10,7 @@ import java.util.UUID; */ public abstract class AdventureCard extends CardImpl { - protected SpellAbility adventureSpellAbility = new SpellAbility(null, null); + protected SpellAbility adventureSpellAbility = new SpellAbility(null, null); public AdventureCard(UUID ownerId, CardSetInfo setInfo, CardType[] typesLeft, CardType[] typesRight, String costsLeft, String costsRight) { super(ownerId, setInfo, typesLeft, costsLeft); @@ -19,4 +19,8 @@ public abstract class AdventureCard extends CardImpl { public AdventureCard(AdventureCard card) { super(card); } + + public SpellAbility getAdventureSpellAbility() { + return adventureSpellAbility; + } }