From e3177d9beaaa3fcfafd4b6d2c0801684cd05dd9a Mon Sep 17 00:00:00 2001 From: theelk801 Date: Wed, 16 Jul 2025 10:12:32 -0400 Subject: [PATCH] [EOE] Implement Hymn of the Faller --- .../src/mage/cards/h/HymnOfTheFaller.java | 47 +++++++++++++++++++ Mage.Sets/src/mage/sets/EdgeOfEternities.java | 1 + Utils/mtg-cards-data.txt | 1 + 3 files changed, 49 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/h/HymnOfTheFaller.java diff --git a/Mage.Sets/src/mage/cards/h/HymnOfTheFaller.java b/Mage.Sets/src/mage/cards/h/HymnOfTheFaller.java new file mode 100644 index 00000000000..8ac0ef63791 --- /dev/null +++ b/Mage.Sets/src/mage/cards/h/HymnOfTheFaller.java @@ -0,0 +1,47 @@ +package mage.cards.h; + +import mage.abilities.condition.common.VoidCondition; +import mage.abilities.decorator.ConditionalOneShotEffect; +import mage.abilities.effects.common.DrawCardSourceControllerEffect; +import mage.abilities.effects.common.LoseLifeSourceControllerEffect; +import mage.abilities.effects.keyword.SurveilEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.AbilityWord; +import mage.constants.CardType; +import mage.watchers.common.VoidWatcher; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class HymnOfTheFaller extends CardImpl { + + public HymnOfTheFaller(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{1}{B}"); + + // Surveil 1, then you draw a card and lose 1 life. + this.getSpellAbility().addEffect(new SurveilEffect(1)); + this.getSpellAbility().addEffect(new DrawCardSourceControllerEffect(1, true).concatBy(", then")); + this.getSpellAbility().addEffect(new LoseLifeSourceControllerEffect(1).setText("and you lose one life")); + + // Void -- If a nonland permanent left the battlefield this turn or a spell was warped this turn, draw another card. + this.getSpellAbility().addEffect(new ConditionalOneShotEffect( + new DrawCardSourceControllerEffect(1), VoidCondition.instance, + "
" + AbilityWord.VOID.formatWord() + "If a nonland permanent left the battlefield " + + "this turn or a spell was warped this turn, draw another card" + )); + this.getSpellAbility().addHint(VoidCondition.getHint()); + this.getSpellAbility().addWatcher(new VoidWatcher()); + } + + private HymnOfTheFaller(final HymnOfTheFaller card) { + super(card); + } + + @Override + public HymnOfTheFaller copy() { + return new HymnOfTheFaller(this); + } +} diff --git a/Mage.Sets/src/mage/sets/EdgeOfEternities.java b/Mage.Sets/src/mage/sets/EdgeOfEternities.java index 8bdc47b75e8..7561dd2e6d2 100644 --- a/Mage.Sets/src/mage/sets/EdgeOfEternities.java +++ b/Mage.Sets/src/mage/sets/EdgeOfEternities.java @@ -128,6 +128,7 @@ public final class EdgeOfEternities extends ExpansionSet { cards.add(new SetCardInfo("Honored Knight-Captain", 22, Rarity.UNCOMMON, mage.cards.h.HonoredKnightCaptain.class)); cards.add(new SetCardInfo("Hullcarver", 105, Rarity.COMMON, mage.cards.h.Hullcarver.class)); cards.add(new SetCardInfo("Hylderblade", 106, Rarity.UNCOMMON, mage.cards.h.Hylderblade.class)); + cards.add(new SetCardInfo("Hymn of the Faller", 107, Rarity.UNCOMMON, mage.cards.h.HymnOfTheFaller.class)); cards.add(new SetCardInfo("Illvoi Galeblade", 58, Rarity.COMMON, mage.cards.i.IllvoiGaleblade.class)); cards.add(new SetCardInfo("Infinite Guideline Station", 219, Rarity.RARE, mage.cards.i.InfiniteGuidelineStation.class, NON_FULL_USE_VARIOUS)); cards.add(new SetCardInfo("Infinite Guideline Station", 348, Rarity.RARE, mage.cards.i.InfiniteGuidelineStation.class, NON_FULL_USE_VARIOUS)); diff --git a/Utils/mtg-cards-data.txt b/Utils/mtg-cards-data.txt index 54fe19d2bc9..bbdf418006d 100644 --- a/Utils/mtg-cards-data.txt +++ b/Utils/mtg-cards-data.txt @@ -59168,6 +59168,7 @@ Fell Gravship|Edge of Eternities|101|U|{2}{B}|Artifact - Spacecraft|||When this Gravkill|Edge of Eternities|103|C|{3}{B}|Instant|||Exile target creature or Spacecraft.| Hullcarver|Edge of Eternities|105|C|{B}|Artifact Creature - Robot Assassin|1|1|Deathtouch| Hylderblade|Edge of Eternities|106|U|{B}|Artifact - Equipment|||Equipped creature gets +3/+1.$Void -- At the beginning of your end step, if a nonland permanent left the battlefield this turn or a spell was warped this turn, attach this Equipment to target creature you control.$Equip {4}| +Hymn of the Faller|Edge of Eternities|107|U|{1}{B}|Sorcery|||Surveil 1, then you draw a card and lose 1 life.$Void -- If a nonland permanent left the battlefield this turn or a spell was warped this turn, draw another card.| Insatiable Skittermaw|Edge of Eternities|108|C|{2}{B}|Creature - Insect Horror|2|2|Menace$Void -- At the beginning of your end step, if a nonland permanent left the battlefield this turn or a spell was warped this turn, put a +1/+1 counter on this creature.| Lightless Evangel|Edge of Eternities|109|U|{1}{B}|Creature - Vampire Cleric|2|2|Whenever you sacrifice another creature or artifact, put a +1/+1 counter on this creature.| Monoist Circuit-Feeder|Edge of Eternities|110|U|{4}{B}{B}|Artifact Creature - Nautilus|4|4|Flying$When this creature enters, until end of turn, target creature you control gets +X/+0 and target creature an opponent controls gets -0/-X, where X is the number of artifacts you control.|