From a7095fc536335ca4fd99c05efa62a450562e0d17 Mon Sep 17 00:00:00 2001 From: Jeff Wadsworth Date: Mon, 27 Jun 2022 09:45:38 -0500 Subject: [PATCH] - Fixed #9159 --- .../src/mage/cards/c/ChiseiHeartOfOceans.java | 17 ++++++++--------- Mage.Sets/src/mage/cards/f/FainTheBroker.java | 3 ++- .../src/mage/cards/f/FalcoSparaPactweaver.java | 11 ++++++----- .../src/mage/cards/h/HungryHungryHeifer.java | 1 - Mage.Sets/src/mage/cards/p/PowerConduit.java | 3 ++- Mage.Sets/src/mage/cards/s/SanctuaryWarden.java | 6 +++--- Mage.Sets/src/mage/cards/s/SoulDiviner.java | 2 +- 7 files changed, 22 insertions(+), 21 deletions(-) diff --git a/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java b/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java index ddbf3dcc18c..bde4c4e3e59 100644 --- a/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java +++ b/Mage.Sets/src/mage/cards/c/ChiseiHeartOfOceans.java @@ -1,4 +1,3 @@ - package mage.cards.c; import java.util.UUID; @@ -24,15 +23,15 @@ import mage.target.TargetPermanent; */ public final class ChiseiHeartOfOceans extends CardImpl { - private static final FilterPermanent filter = new FilterControlledPermanent("remove a counter from a permanent you control"); - + private static final FilterPermanent filter = new FilterControlledPermanent("remove a counter from a permanent you control"); + static { filter.add(TargetController.YOU.getControllerPredicate()); filter.add(CounterAnyPredicate.instance); - } - + } + public ChiseiHeartOfOceans(UUID ownerId, CardSetInfo setInfo) { - super(ownerId,setInfo,new CardType[]{CardType.CREATURE},"{2}{U}{U}"); + super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{U}{U}"); addSuperType(SuperType.LEGENDARY); this.subtype.add(SubType.SPIRIT); @@ -41,11 +40,11 @@ public final class ChiseiHeartOfOceans extends CardImpl { // Flying this.addAbility(FlyingAbility.getInstance()); - + // At the beginning of your upkeep, sacrifice Chisei, Heart of Oceans unless you remove a counter from a permanent you control. - TargetPermanent target = new TargetPermanent(1,1,filter,true); + TargetPermanent target = new TargetPermanent(1, 1, filter, true); target.setTargetName("a permanent you control"); - this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new RemoveCounterCost(target)),TargetController.YOU, false)); + this.addAbility(new BeginningOfUpkeepTriggeredAbility(new SacrificeSourceUnlessPaysEffect(new RemoveCounterCost(target)), TargetController.YOU, false)); } diff --git a/Mage.Sets/src/mage/cards/f/FainTheBroker.java b/Mage.Sets/src/mage/cards/f/FainTheBroker.java index 21203910dd9..e14d78471d7 100644 --- a/Mage.Sets/src/mage/cards/f/FainTheBroker.java +++ b/Mage.Sets/src/mage/cards/f/FainTheBroker.java @@ -24,6 +24,7 @@ import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; +import mage.filter.common.FilterControlledCreaturePermanent; /** * @author TheElk801 @@ -51,7 +52,7 @@ public final class FainTheBroker extends CardImpl { // {T}, Remove a counter from a creature you control: Create a Treasure token. ability = new SimpleActivatedAbility(new CreateTokenEffect(new TreasureToken()), new TapSourceCost()); - ability.addCost(new RemoveCounterCost(new TargetControlledCreaturePermanent())); + ability.addCost(new RemoveCounterCost(new TargetControlledCreaturePermanent(1, 1, new FilterControlledCreaturePermanent(), true))); this.addAbility(ability); // {T}, Sacrifice an artifact: Create a 2/1 white and black Inkling creature token with flying. diff --git a/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java b/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java index f7f11141226..80d97f63e8a 100644 --- a/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java +++ b/Mage.Sets/src/mage/cards/f/FalcoSparaPactweaver.java @@ -23,6 +23,7 @@ import mage.players.Player; import mage.target.common.TargetControlledCreaturePermanent; import java.util.UUID; +import mage.filter.common.FilterControlledCreaturePermanent; /** * @author TheElk801 @@ -47,8 +48,8 @@ public final class FalcoSparaPactweaver extends CardImpl { // Falco Spara, Pactweaver enters the battlefield with a shield counter on it. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.SHIELD.createInstance(1)), - "with a shield counter on it. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" + "with a shield counter on it. (If it would be dealt damage " + + "or destroyed, remove a shield counter from it instead.)" )); // You may look at the top card of your library any time. @@ -72,8 +73,8 @@ class FalcoSparaPactweaverEffect extends AsThoughEffectImpl { FalcoSparaPactweaverEffect() { super(AsThoughEffectType.PLAY_FROM_NOT_OWN_HAND_ZONE, Duration.WhileOnBattlefield, Outcome.AIDontUseIt); - staticText = "you may cast spells from the top of your library by removing " + - "a counter from a creature you control in addition to paying their other costs"; + staticText = "you may cast spells from the top of your library by removing " + + "a counter from a creature you control in addition to paying their other costs"; } private FalcoSparaPactweaverEffect(final FalcoSparaPactweaverEffect effect) { @@ -110,7 +111,7 @@ class FalcoSparaPactweaverEffect extends AsThoughEffectImpl { } Costs newCosts = new CostsImpl<>(); - newCosts.add(new RemoveCounterCost(new TargetControlledCreaturePermanent())); + newCosts.add(new RemoveCounterCost(new TargetControlledCreaturePermanent(1, 1, new FilterControlledCreaturePermanent(), true))); newCosts.addAll(cardToCheck.getSpellAbility().getCosts()); player.setCastSourceIdWithAlternateMana(cardToCheck.getId(), cardToCheck.getManaCost(), newCosts); return true; diff --git a/Mage.Sets/src/mage/cards/h/HungryHungryHeifer.java b/Mage.Sets/src/mage/cards/h/HungryHungryHeifer.java index 2e20a82bcb2..0fb9eb007ce 100644 --- a/Mage.Sets/src/mage/cards/h/HungryHungryHeifer.java +++ b/Mage.Sets/src/mage/cards/h/HungryHungryHeifer.java @@ -1,4 +1,3 @@ - package mage.cards.h; import mage.MageInt; diff --git a/Mage.Sets/src/mage/cards/p/PowerConduit.java b/Mage.Sets/src/mage/cards/p/PowerConduit.java index 9b9d1fb6529..c4c0c321477 100644 --- a/Mage.Sets/src/mage/cards/p/PowerConduit.java +++ b/Mage.Sets/src/mage/cards/p/PowerConduit.java @@ -13,6 +13,7 @@ import mage.cards.CardSetInfo; import mage.constants.CardType; import mage.constants.Zone; import mage.counters.CounterType; +import mage.filter.common.FilterControlledPermanent; import mage.target.common.TargetArtifactPermanent; import mage.target.common.TargetControlledPermanent; import mage.target.common.TargetCreaturePermanent; @@ -28,7 +29,7 @@ public final class PowerConduit extends CardImpl { // {tap}, Remove a counter from a permanent you control: Choose one - Put a charge counter on target artifact; or put a +1/+1 counter on target creature. Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersTargetEffect(CounterType.CHARGE.createInstance()), new TapSourceCost()); - ability.addCost(new RemoveCounterCost(new TargetControlledPermanent())); + ability.addCost(new RemoveCounterCost(new TargetControlledPermanent(1, 1, new FilterControlledPermanent(), true))); ability.addTarget(new TargetArtifactPermanent()); Mode mode = new Mode(new AddCountersTargetEffect(CounterType.P1P1.createInstance())); mode.addTarget(new TargetCreaturePermanent()); diff --git a/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java b/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java index 4f926b367c4..2fd420af1a6 100644 --- a/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java +++ b/Mage.Sets/src/mage/cards/s/SanctuaryWarden.java @@ -50,15 +50,15 @@ public final class SanctuaryWarden extends CardImpl { // Sanctuary Warden enters the battlefield with two shield counters on it. this.addAbility(new EntersBattlefieldAbility( new AddCountersSourceEffect(CounterType.SHIELD.createInstance(2)), - "with two shield counters on it. (If it would be dealt damage " + - "or destroyed, remove a shield counter from it instead.)" + "with two shield counters on it. (If it would be dealt damage " + + "or destroyed, remove a shield counter from it instead.)" )); // Whenever Sanctuary Warden enters the battlefield or attacks, you may remove a counter from a creature or planeswalker you control. If you do, draw a card and create a 1/1 green and white Citizen creature token. this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility( new DoIfCostPaid( new DrawCardSourceControllerEffect(1), - new RemoveCounterCost(new TargetControlledPermanent(filter)) + new RemoveCounterCost(new TargetControlledPermanent(1, 1, filter, true)) ).addEffect(new CreateTokenEffect(new CitizenGreenWhiteToken()).concatBy("and")) )); } diff --git a/Mage.Sets/src/mage/cards/s/SoulDiviner.java b/Mage.Sets/src/mage/cards/s/SoulDiviner.java index 50696f8242d..5dd3d590f24 100644 --- a/Mage.Sets/src/mage/cards/s/SoulDiviner.java +++ b/Mage.Sets/src/mage/cards/s/SoulDiviner.java @@ -46,7 +46,7 @@ public final class SoulDiviner extends CardImpl { Ability ability = new SimpleActivatedAbility( new DrawCardSourceControllerEffect(1), new TapSourceCost() ); - ability.addCost(new RemoveCounterCost(new TargetPermanent(filter))); + ability.addCost(new RemoveCounterCost(new TargetPermanent(1, 1, filter, true))); this.addAbility(ability); }