diff --git a/Mage/src/main/java/mage/abilities/effects/common/UntapLandsEffect.java b/Mage/src/main/java/mage/abilities/effects/common/UntapLandsEffect.java index 502b70186ba..f408e17033c 100644 --- a/Mage/src/main/java/mage/abilities/effects/common/UntapLandsEffect.java +++ b/Mage/src/main/java/mage/abilities/effects/common/UntapLandsEffect.java @@ -31,8 +31,6 @@ import java.util.UUID; import mage.abilities.Ability; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; -import mage.filter.FilterPermanent; -import mage.filter.StaticFilters; import mage.filter.common.FilterLandPermanent; import mage.filter.predicate.permanent.TappedPredicate; import mage.game.Game; @@ -46,6 +44,11 @@ import mage.util.CardUtil; */ public class UntapLandsEffect extends OneShotEffect { + private static final FilterLandPermanent filter = new FilterLandPermanent("untapped lands"); + + static { + filter.add(new TappedPredicate()); + } private final int amount; private final boolean upTo; @@ -70,15 +73,12 @@ public class UntapLandsEffect extends OneShotEffect { public boolean apply(Game game, Ability source) { Player controller = game.getPlayer(source.getControllerId()); if (controller != null) { - TargetLandPermanent target = new TargetLandPermanent(upTo ? 0 : amount, amount, StaticFilters.FILTER_LAND, true); + int tappedLands = game.getBattlefield().getAllActivePermanents(filter, controller.getId(), game).size(); + TargetLandPermanent target = new TargetLandPermanent(upTo ? 0 : Math.min(tappedLands, amount), amount, filter, true); if (target.canChoose(source.getSourceId(), source.getControllerId(), game)) { // UI Shortcut: Check if any lands are already tapped. If there are equal/fewer than amount, give the option to add those in to be untapped now. - FilterPermanent filter = new FilterLandPermanent(); - filter.add(new TappedPredicate()); - int tappedLands = game.getBattlefield().getAllActivePermanents(filter, controller.getId(), game).size(); - - if (tappedLands <= amount) { + if (tappedLands <= amount && upTo) { if (controller.chooseUse(outcome, "Include your tapped lands to untap?", source, game)) { for (Permanent land : game.getBattlefield().getAllActivePermanents(filter, controller.getId(), game)) { target.addTarget(land.getId(), source, game);