From f7f72036b2d33678b399392eb5dc7b6da707110c Mon Sep 17 00:00:00 2001 From: Blake Lowe <9019960+blake-lowe@users.noreply.github.com> Date: Sat, 9 Dec 2023 16:03:57 -0500 Subject: [PATCH] [WHO] Implement Gallifrey Falls // No More (#11531) Co-authored-by: Blake Lowe <9019960+dragonfyre23@users.noreply.github.com> --- .../mage/cards/g/GallifreyFallsNoMore.java | 60 +++++++++++++++++++ Mage.Sets/src/mage/sets/DoctorWho.java | 1 + 2 files changed, 61 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/g/GallifreyFallsNoMore.java diff --git a/Mage.Sets/src/mage/cards/g/GallifreyFallsNoMore.java b/Mage.Sets/src/mage/cards/g/GallifreyFallsNoMore.java new file mode 100644 index 00000000000..239abcb8d91 --- /dev/null +++ b/Mage.Sets/src/mage/cards/g/GallifreyFallsNoMore.java @@ -0,0 +1,60 @@ + +package mage.cards.g; + +import java.util.UUID; +import mage.abilities.Ability; +import mage.abilities.common.EntersBattlefieldTriggeredAbility; +import mage.abilities.effects.OneShotEffect; +import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.DamageAllEffect; +import mage.abilities.effects.common.PhaseOutTargetEffect; +import mage.abilities.effects.common.replacement.DealtDamageToCreatureBySourceDies; +import mage.cards.CardSetInfo; +import mage.cards.SplitCard; +import mage.constants.CardType; +import mage.constants.Duration; +import mage.constants.Outcome; +import mage.constants.SpellAbilityType; +import mage.filter.common.FilterControlledCreaturePermanent; +import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; +import mage.game.permanent.token.CentaurToken; +import mage.players.Player; +import mage.target.common.TargetControlledCreaturePermanent; +import mage.watchers.common.DamagedByWatcher; + +/** + * + * @author dragonfyre23 + */ +public final class GallifreyFallsNoMore extends SplitCard { + + private static final FilterControlledCreaturePermanent filter = new FilterControlledCreaturePermanent("target creatures you control"); + + public GallifreyFallsNoMore(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.INSTANT}, "{4}{R}{R}", "{2}{W}", SpellAbilityType.SPLIT_FUSED); + + // Gallifrey Falls + // Gallifrey Falls deals 4 damage to each creature. + getLeftHalfCard().getSpellAbility().addEffect(new DamageAllEffect(4, new FilterCreaturePermanent())); + + //If a creature dealt damage this way would die this turn, exile it instead. + getLeftHalfCard().getSpellAbility().addEffect(new DealtDamageToCreatureBySourceDies(getLeftHalfCard(), Duration.EndOfTurn)); + getLeftHalfCard().getSpellAbility().addWatcher(new DamagedByWatcher(false)); + + // No More + // Any number of target creatures you control phase out. + getRightHalfCard().getSpellAbility().addEffect(new PhaseOutTargetEffect()); + getRightHalfCard().getSpellAbility().addTarget(new TargetControlledCreaturePermanent(0, Integer.MAX_VALUE, filter, false)); + + } + + private GallifreyFallsNoMore(final GallifreyFallsNoMore card) { + super(card); + } + + @Override + public GallifreyFallsNoMore copy() { + return new GallifreyFallsNoMore(this); + } +} diff --git a/Mage.Sets/src/mage/sets/DoctorWho.java b/Mage.Sets/src/mage/sets/DoctorWho.java index 8c8b624045d..8bb0cc6250d 100644 --- a/Mage.Sets/src/mage/sets/DoctorWho.java +++ b/Mage.Sets/src/mage/sets/DoctorWho.java @@ -97,6 +97,7 @@ public final class DoctorWho extends ExpansionSet { cards.add(new SetCardInfo("Frostboil Snarl", 282, Rarity.RARE, mage.cards.f.FrostboilSnarl.class)); cards.add(new SetCardInfo("Furycalm Snarl", 283, Rarity.RARE, mage.cards.f.FurycalmSnarl.class)); cards.add(new SetCardInfo("Gallifrey Council Chamber", 188, Rarity.RARE, mage.cards.g.GallifreyCouncilChamber.class)); + cards.add(new SetCardInfo("Gallifrey Falls // No More", 131, Rarity.RARE, mage.cards.g.GallifreyFallsNoMore.class)); cards.add(new SetCardInfo("Gallifrey Stands", 132, Rarity.RARE, mage.cards.g.GallifreyStands.class)); cards.add(new SetCardInfo("Game Trail", 284, Rarity.RARE, mage.cards.g.GameTrail.class)); cards.add(new SetCardInfo("Glacial Fortress", 285, Rarity.RARE, mage.cards.g.GlacialFortress.class));