mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
Fixed #8771
This commit is contained in:
parent
595955a3cc
commit
0820761c3a
1 changed files with 26 additions and 0 deletions
|
|
@ -395,6 +395,32 @@ public class ComputerPlayer extends PlayerImpl implements Player {
|
|||
}
|
||||
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
|
||||
|| (target.getZone() == Zone.GRAVEYARD && (target.getOriginalTarget() instanceof TargetCard))) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue