From a56d52c5a89e05a5159ad4d89daee000385f37e2 Mon Sep 17 00:00:00 2001 From: xenohedron Date: Sat, 18 Nov 2023 21:59:12 -0500 Subject: [PATCH] simplify Stitcher's Apprentice --- .../src/mage/cards/s/StitchersApprentice.java | 49 ++----------------- 1 file changed, 5 insertions(+), 44 deletions(-) diff --git a/Mage.Sets/src/mage/cards/s/StitchersApprentice.java b/Mage.Sets/src/mage/cards/s/StitchersApprentice.java index 1d7341c6c76..207afa3db9e 100644 --- a/Mage.Sets/src/mage/cards/s/StitchersApprentice.java +++ b/Mage.Sets/src/mage/cards/s/StitchersApprentice.java @@ -1,27 +1,21 @@ - package mage.cards.s; -import java.util.UUID; import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.costs.mana.ManaCostsImpl; -import mage.abilities.effects.OneShotEffect; import mage.abilities.effects.common.CreateTokenEffect; +import mage.abilities.effects.common.SacrificeControllerEffect; import mage.cards.CardImpl; import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.SubType; -import mage.constants.Outcome; import mage.constants.Zone; -import mage.filter.common.FilterControlledCreaturePermanent; -import mage.game.Game; -import mage.game.permanent.Permanent; +import mage.filter.StaticFilters; import mage.game.permanent.token.StitchersApprenticeHomunculusToken; -import mage.players.Player; -import mage.target.Target; -import mage.target.common.TargetControlledPermanent; + +import java.util.UUID; /** * @@ -39,7 +33,7 @@ public final class StitchersApprentice extends CardImpl { // {1}{U}, {tap}: Create a 2/2 blue Homunculus creature token, then sacrifice a creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new CreateTokenEffect(new StitchersApprenticeHomunculusToken()), new ManaCostsImpl<>("{1}{U}")); ability.addCost(new TapSourceCost()); - ability.addEffect(new StitchersApprenticeEffect()); + ability.addEffect(new SacrificeControllerEffect(StaticFilters.FILTER_PERMANENT_A_CREATURE, 1, ", then")); this.addAbility(ability); } @@ -52,36 +46,3 @@ public final class StitchersApprentice extends CardImpl { return new StitchersApprentice(this); } } - -class StitchersApprenticeEffect extends OneShotEffect { - - public StitchersApprenticeEffect() { - super(Outcome.Sacrifice); - this.staticText = "then sacrifice a creature"; - } - - private StitchersApprenticeEffect(final StitchersApprenticeEffect effect) { - super(effect); - } - - @Override - public StitchersApprenticeEffect copy() { - return new StitchersApprenticeEffect(this); - } - - @Override - public boolean apply(Game game, Ability source) { - Player player = game.getPlayer(source.getControllerId()); - if (player != null) { - Target target = new TargetControlledPermanent(new FilterControlledCreaturePermanent()); - - if (target.canChoose(player.getId(), source, game) && player.choose(Outcome.Sacrifice, target, source, game)) { - Permanent permanent = game.getPermanent(target.getFirstTarget()); - if (permanent != null) { - return permanent.sacrifice(source, game); - } - } - } - return false; - } -}