This commit is contained in:
Jeff Wadsworth 2023-11-01 21:26:28 -05:00
parent 595955a3cc
commit 0820761c3a

View file

@ -395,6 +395,32 @@ public class ComputerPlayer extends PlayerImpl implements Player {
} }
return false; return false;
} }
if (target.getOriginalTarget() instanceof TargetCardInASingleGraveyard) {
List<Card> cards = new ArrayList<>();
for (Player player : game.getPlayers().values()) {
for (Card card : player.getGraveyard().getCards(game)) {
if (target.canTarget(card.getId(), source, game)) {
cards.add(card);
}
}
}
// exile cost workaround: exile is bad, but exile from graveyard in most cases is good (more exiled -- more good things you get, e.g. delve's pay)
boolean isRealGood = outcome.isGood() || outcome == Outcome.Exile;
while ((isRealGood ? target.getTargets().size() < target.getMaxNumberOfTargets() : !target.isChosen())
&& !cards.isEmpty()) {
Card pick = pickTarget(abilityControllerId, cards, outcome, target, null, game);
if (pick != null) {
target.addTarget(pick.getId(), null, game);
cards.remove(pick);
} else {
break;
}
}
return target.isChosen();
}
if (target.getOriginalTarget() instanceof TargetCardInGraveyard if (target.getOriginalTarget() instanceof TargetCardInGraveyard
|| (target.getZone() == Zone.GRAVEYARD && (target.getOriginalTarget() instanceof TargetCard))) { || (target.getZone() == Zone.GRAVEYARD && (target.getOriginalTarget() instanceof TargetCard))) {