package mage.abilities.effects.common; import java.util.List; import mage.abilities.Ability; import mage.abilities.Mode; import mage.abilities.effects.OneShotEffect; import mage.constants.Outcome; import mage.filter.FilterPermanent; import mage.game.Game; import mage.game.permanent.Permanent; import mage.players.Player; /** * * @author LoneFox */ public class TapAllTargetPlayerControlsEffect extends OneShotEffect { private final FilterPermanent filter; public TapAllTargetPlayerControlsEffect(FilterPermanent filter) { super(Outcome.Tap); this.filter = filter; } public TapAllTargetPlayerControlsEffect(final TapAllTargetPlayerControlsEffect effect) { super(effect); filter = effect.filter.copy(); } @Override public boolean apply(Game game, Ability source) { Player player = game.getPlayer(targetPointer.getFirst(game, source)); if (player != null) { List permanents = game.getBattlefield().getAllActivePermanents(filter, player.getId(), game); for (Permanent p : permanents) { p.tap(game); } return true; } return false; } @Override public TapAllTargetPlayerControlsEffect copy() { return new TapAllTargetPlayerControlsEffect(this); } @Override public String getText(Mode mode) { if (staticText != null && !staticText.isEmpty()) { return staticText; } return "tap all " + filter.toString() + " target " + (mode.getTargets().size() == 0 ? "player" : mode.getTargets().get(0).getTargetName()) + " controls"; } }