From 662c8cd0fab80f30b55432cce864e1b519047456 Mon Sep 17 00:00:00 2001 From: theelk801 Date: Fri, 5 Apr 2024 09:16:31 -0400 Subject: [PATCH] [OTC] Implement Back in Town --- Mage.Sets/src/mage/cards/b/BackInTown.java | 53 +++++++++++++++++++ .../OutlawsOfThunderJunctionCommander.java | 1 + 2 files changed, 54 insertions(+) create mode 100644 Mage.Sets/src/mage/cards/b/BackInTown.java diff --git a/Mage.Sets/src/mage/cards/b/BackInTown.java b/Mage.Sets/src/mage/cards/b/BackInTown.java new file mode 100644 index 00000000000..7a055e4ae04 --- /dev/null +++ b/Mage.Sets/src/mage/cards/b/BackInTown.java @@ -0,0 +1,53 @@ +package mage.cards.b; + +import mage.abilities.Ability; +import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect; +import mage.cards.CardImpl; +import mage.cards.CardSetInfo; +import mage.constants.CardType; +import mage.filter.FilterCard; +import mage.filter.predicate.mageobject.OutlawPredicate; +import mage.game.Game; +import mage.target.common.TargetCardInYourGraveyard; +import mage.target.targetadjustment.TargetAdjuster; + +import java.util.UUID; + +/** + * @author TheElk801 + */ +public final class BackInTown extends CardImpl { + + public BackInTown(UUID ownerId, CardSetInfo setInfo) { + super(ownerId, setInfo, new CardType[]{CardType.SORCERY}, "{X}{2}{B}"); + + // Return X target outlaw creature cards from your graveyard to the battlefield. + this.getSpellAbility().addEffect(new ReturnFromGraveyardToBattlefieldTargetEffect() + .setText("return X target outlaw creature cards from your graveyard to the battlefield")); + this.getSpellAbility().setTargetAdjuster(BackInTownAdjuster.instance); + } + + private BackInTown(final BackInTown card) { + super(card); + } + + @Override + public BackInTown copy() { + return new BackInTown(this); + } +} + +enum BackInTownAdjuster implements TargetAdjuster { + instance; + private static final FilterCard filter = new FilterCard("outlaw cards"); + + static { + filter.add(OutlawPredicate.instance); + } + + @Override + public void adjustTargets(Ability ability, Game game) { + ability.getTargets().clear(); + ability.addTarget(new TargetCardInYourGraveyard(ability.getManaCostsToPay().getX(), filter)); + } +} diff --git a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java index 7478d868dc5..1a5ffa7b481 100644 --- a/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java +++ b/Mage.Sets/src/mage/sets/OutlawsOfThunderJunctionCommander.java @@ -21,6 +21,7 @@ public final class OutlawsOfThunderJunctionCommander extends ExpansionSet { cards.add(new SetCardInfo("Angel of Indemnity", 45, Rarity.RARE, mage.cards.a.AngelOfIndemnity.class)); cards.add(new SetCardInfo("Angelic Sell-Sword", 10, Rarity.RARE, mage.cards.a.AngelicSellSword.class)); + cards.add(new SetCardInfo("Back in Town", 18, Rarity.RARE, mage.cards.b.BackInTown.class)); cards.add(new SetCardInfo("Charred Graverobber", 19, Rarity.RARE, mage.cards.c.CharredGraverobber.class)); cards.add(new SetCardInfo("Elemental Eruption", 27, Rarity.RARE, mage.cards.e.ElementalEruption.class)); cards.add(new SetCardInfo("Leyline Dowser", 39, Rarity.RARE, mage.cards.l.LeylineDowser.class));