fix #9877 (Disorder in the Court) (#11987)

This commit is contained in:
xenohedron 2024-03-23 17:17:50 -04:00 committed by GitHub
parent 0d5ae6b704
commit ad63362c33
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 11 additions and 12 deletions

View file

@ -10,7 +10,6 @@ import mage.abilities.effects.keyword.InvestigateEffect;
import mage.cards.Card;
import mage.cards.CardImpl;
import mage.cards.CardSetInfo;
import mage.cards.CardsImpl;
import mage.constants.CardType;
import mage.constants.Outcome;
import mage.game.Game;
@ -93,7 +92,10 @@ class DisorderInTheCourtEffect extends OneShotEffect {
new InvestigateEffect(ManacostVariableValue.REGULAR).apply(game, source);
if (!toExile.isEmpty()) {
Effect effect = new ReturnToBattlefieldUnderOwnerControlTargetEffect(true, true);
effect.setTargetPointer(new FixedTargets(new CardsImpl(toExile), game));
effect.setTargetPointer(new FixedTargets(toExile
.stream()
.map(Card::getMainCard)
.collect(Collectors.toSet()), game));
game.addDelayedTriggeredAbility(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(effect), source);
}
return true;

View file

@ -6,14 +6,12 @@ import mage.abilities.common.delayed.AtTheBeginOfNextEndStepDelayedTriggeredAbil
import mage.abilities.effects.Effect;
import mage.abilities.effects.OneShotEffect;
import mage.cards.Card;
import mage.cards.CardsImpl;
import mage.constants.Outcome;
import mage.game.Game;
import mage.players.Player;
import mage.target.targetpointer.FixedTargets;
import mage.util.CardUtil;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Objects;
import java.util.Set;
@ -75,7 +73,10 @@ public class ExileReturnBattlefieldNextEndStepTargetEffect extends OneShotEffect
Effect effect = yourControl
? new ReturnToBattlefieldUnderYourControlTargetEffect(exiledOnly)
: new ReturnToBattlefieldUnderOwnerControlTargetEffect(false, exiledOnly);
effect.setTargetPointer(new FixedTargets(toExile, game));
effect.setTargetPointer(new FixedTargets(toExile
.stream()
.map(Card::getMainCard)
.collect(Collectors.toSet()), game));
game.addDelayedTriggeredAbility(new AtTheBeginOfNextEndStepDelayedTriggeredAbility(effect), source);
return true;
}

View file

@ -18,8 +18,8 @@ import java.util.UUID;
*/
public class ReturnToBattlefieldUnderOwnerControlTargetEffect extends OneShotEffect {
private boolean tapped;
protected boolean returnFromExileZoneOnly;
private final boolean tapped;
private final boolean returnFromExileZoneOnly;
/**
* @param returnFromExileZoneOnly see https://github.com/magefree/mage/issues/5151
@ -27,14 +27,10 @@ public class ReturnToBattlefieldUnderOwnerControlTargetEffect extends OneShotEff
* return exiled card - true
*/
public ReturnToBattlefieldUnderOwnerControlTargetEffect(boolean tapped, boolean returnFromExileZoneOnly) {
this(tapped, returnFromExileZoneOnly, "that card");
}
public ReturnToBattlefieldUnderOwnerControlTargetEffect(boolean tapped, boolean returnFromExileZoneOnly, String description) {
super(Outcome.Benefit);
this.tapped = tapped;
this.returnFromExileZoneOnly = returnFromExileZoneOnly;
staticText = "return " + description + " to the battlefield " + (tapped ? "tapped " : "") + "under its owner's control";
staticText = "return that card to the battlefield " + (tapped ? "tapped " : "") + "under its owner's control";
}
protected ReturnToBattlefieldUnderOwnerControlTargetEffect(final ReturnToBattlefieldUnderOwnerControlTargetEffect effect) {