From 0b290bcfd18307d3ec9d903b9f1cd5311b2ec887 Mon Sep 17 00:00:00 2001 From: Evan Kranzler Date: Thu, 4 Nov 2021 22:27:42 -0400 Subject: [PATCH] [VOW] Implemented Oakshade Stalker / Moonlit Ambusher --- .../src/mage/cards/m/MoonlitAmbusher.java | 38 +++++++++++++++ .../src/mage/cards/o/OakshadeStalker.java | 46 +++++++++++++++++++ .../src/mage/sets/InnistradCrimsonVow.java | 4 +- Utils/mtg-cards-data.txt | 1 + 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 Mage.Sets/src/mage/cards/m/MoonlitAmbusher.java create mode 100644 Mage.Sets/src/mage/cards/o/OakshadeStalker.java diff --git a/Mage.Sets/src/mage/cards/m/MoonlitAmbusher.java b/Mage.Sets/src/mage/cards/m/MoonlitAmbusher.java new file mode 100644 index 00000000000..ee33eed54c2 --- /dev/null +++ b/Mage.Sets/src/mage/cards/m/MoonlitAmbusher.java @@ -0,0 +1,38 @@ +package mage.cards.m; + +import mage.MageInt; +import mage.abilities.keyword.NightboundAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class MoonlitAmbusher extends CardImpl { + + public MoonlitAmbusher(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, ""); + + this.subtype.add(SubType.WEREWOLF); + this.power = new MageInt(6); + this.toughness = new MageInt(3); + this.color.setGreen(true); + this.nightCard = true; + + // Nightbound + this.addAbility(new NightboundAbility()); + } + + private MoonlitAmbusher(final MoonlitAmbusher card) { + super(card); + } + + @Override + public MoonlitAmbusher copy() { + return new MoonlitAmbusher(this); + } +} diff --git a/Mage.Sets/src/mage/cards/o/OakshadeStalker.java b/Mage.Sets/src/mage/cards/o/OakshadeStalker.java new file mode 100644 index 00000000000..ce665e7b6f7 --- /dev/null +++ b/Mage.Sets/src/mage/cards/o/OakshadeStalker.java @@ -0,0 +1,46 @@ +package mage.cards.o; + +import mage.MageInt; +import mage.abilities.common.PayMoreToCastAsThoughtItHadFlashAbility; +import mage.abilities.costs.mana.ManaCostsImpl; +import mage.abilities.keyword.DayboundAbility; +import mage.abilities.keyword.TransformAbility; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.constants.SubType; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class OakshadeStalker extends CardImpl { + + public OakshadeStalker(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{G}"); + + this.subtype.add(SubType.HUMAN); + this.subtype.add(SubType.RANGER); + this.subtype.add(SubType.WEREWOLF); + this.power = new MageInt(3); + this.toughness = new MageInt(3); + this.secondSideCardClazz = mage.cards.m.MoonlitAmbusher.class; + + // You may cast this spell as though it had flash if you pay {2} more to cast it. + this.addAbility(new PayMoreToCastAsThoughtItHadFlashAbility(this, new ManaCostsImpl<>("{2}"))); + + // Daybound + this.addAbility(new TransformAbility()); + this.addAbility(new DayboundAbility()); + } + + private OakshadeStalker(final OakshadeStalker card) { + super(card); + } + + @Override + public OakshadeStalker copy() { + return new OakshadeStalker(this); + } +} diff --git a/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java b/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java index 68996afa9c4..2c71f23fe7b 100644 --- a/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java +++ b/Mage.Sets/src/mage/sets/InnistradCrimsonVow.java @@ -12,7 +12,7 @@ import java.util.List; */ public final class InnistradCrimsonVow extends ExpansionSet { - private static final List unfinished = Arrays.asList("Avabruck Caretaker", "Hollowhenge Huntmaster", "Ballista Watcher", "Ballista Wielder", "Brine Comber", "Brinebound Gift", "Child of the Pack", "Savage Packmate", "Distracting Geist", "Clever Distraction", "Dorothea, Vengeful Victim", "Dorothea's Retribution", "Drogskol Infantry", "Drogskol Armaments", "Faithbound Judge", "Sinner's Judgment", "Fearful Villager", "Fearsome Werewolf", "Gutter Skulker", "Gutter Shortcut", "Howlpack Piper", "Wildsong Howler", "Infestation Expert", "Infested Werewolf", "Katilda, Dawnhart Martyr", "Katilda's Rising Dawn", "Kindly Ancestor", "Ancestor's Embrace", "Lambholt Raconteur", "Lambholt Ravager", "Lantern Bearer", "Lanterns' Lift", "Mirrorhall Mimic", "Ghastly Mimicry", "Mischievous Catgeist", "Catlike Curiosity", "Oakshade Stalker", "Twinblade Geist", "Twinblade Invocation", "Volatile Arsonist", "Dire-Strain Anarchist", "Weary Prisoner", "Wrathful Jailbreaker", "Weaver of Blossoms", "Blossom-Clad Werewolf", "Wolfkin Outcast", "Wedding Crasher"); + private static final List unfinished = Arrays.asList("Avabruck Caretaker", "Hollowhenge Huntmaster", "Ballista Watcher", "Ballista Wielder", "Brine Comber", "Brinebound Gift", "Child of the Pack", "Savage Packmate", "Distracting Geist", "Clever Distraction", "Dorothea, Vengeful Victim", "Dorothea's Retribution", "Drogskol Infantry", "Drogskol Armaments", "Faithbound Judge", "Sinner's Judgment", "Fearful Villager", "Fearsome Werewolf", "Gutter Skulker", "Gutter Shortcut", "Howlpack Piper", "Wildsong Howler", "Infestation Expert", "Infested Werewolf", "Katilda, Dawnhart Martyr", "Katilda's Rising Dawn", "Kindly Ancestor", "Ancestor's Embrace", "Lambholt Raconteur", "Lambholt Ravager", "Lantern Bearer", "Lanterns' Lift", "Mirrorhall Mimic", "Ghastly Mimicry", "Mischievous Catgeist", "Catlike Curiosity", "Oakshade Stalker", "Moonlit Ambusher", "Twinblade Geist", "Twinblade Invocation", "Volatile Arsonist", "Dire-Strain Anarchist", "Weary Prisoner", "Wrathful Jailbreaker", "Weaver of Blossoms", "Blossom-Clad Werewolf", "Wolfkin Outcast", "Wedding Crasher"); private static final InnistradCrimsonVow instance = new InnistradCrimsonVow(); public static InnistradCrimsonVow getInstance() { @@ -126,7 +126,9 @@ public final class InnistradCrimsonVow extends ExpansionSet { cards.add(new SetCardInfo("Militia Rallier", 24, Rarity.COMMON, mage.cards.m.MilitiaRallier.class)); cards.add(new SetCardInfo("Mindleech Ghoul", 122, Rarity.COMMON, mage.cards.m.MindleechGhoul.class)); cards.add(new SetCardInfo("Mountain", 274, Rarity.LAND, mage.cards.basiclands.Mountain.class, FULL_ART_BFZ_VARIOUS)); + cards.add(new SetCardInfo("Moonlit Ambusher", 212, Rarity.UNCOMMON, mage.cards.m.MoonlitAmbusher.class)); cards.add(new SetCardInfo("Mulch", 210, Rarity.COMMON, mage.cards.m.Mulch.class)); + cards.add(new SetCardInfo("Oakshade Stalker", 212, Rarity.UNCOMMON, mage.cards.o.OakshadeStalker.class)); cards.add(new SetCardInfo("Old Rutstein", 244, Rarity.RARE, mage.cards.o.OldRutstein.class)); cards.add(new SetCardInfo("Olivia, Crimson Bride", 245, Rarity.MYTHIC, mage.cards.o.OliviaCrimsonBride.class)); cards.add(new SetCardInfo("Ollenbock Escort", 27, Rarity.UNCOMMON, mage.cards.o.OllenbockEscort.class)); diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 3ac3d58efcd..2b4da9dd131 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -43193,6 +43193,7 @@ Massive Might|Innistrad: Crimson Vow|208|C|{G}|Instant|||Target creature gets +2 Moldgraf Millipede|Innistrad: Crimson Vow|209|C|{4}{G}|Creature - Insect Horror|2|2|When Moldgraf Millipede enters the battlefield, mill three cards, then put a +1/+1 counter on Moldgraf Millipede for each creature card in your graveyard.| Mulch|Innistrad: Crimson Vow|210|C|{1}{G}|Sorcery|||Reveal the top four cards of your library. Put all land cards revealed this way into your hand and the rest into your graveyard.| Oakshade Stalker|Innistrad: Crimson Vow|212|U|{2}{G}|Creature - Human Ranger Werewolf|3|3|You may cast this spell as though it had flash if you pay {2} more to cast it.$Daybound| +Moonlit Ambusher|Innistrad: Crimson Vow|212|U||Creature - Werewolf|6|3|Nightbound| Packsong Pup|Innistrad: Crimson Vow|213|U|{1}{G}|Creature - Wolf|1|1|At the beginning of combat on your turn, if you control another Wolf or Werewolf, put a +1/+1 counter on Packsong Pup.$When Packsong Pup dies, you gain life equal to its power.| Reclusive Taxidermist|Innistrad: Crimson Vow|214|U|{1}{G}|Creature - Human Druid|1|2|Reclusive Taxidermist gets +3/+2 as long as there are four or more creature cards in your graveyard.${T}: Add one mana of any color.| Retrieve|Innistrad: Crimson Vow|215|U|{2}{G}|Sorcery|||Return up to one target creature card and up to one target noncreature permanent card from your graveyard to your hand. Exile Retrieve.|