mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
Fixed #8771
This commit is contained in:
parent
595955a3cc
commit
0820761c3a
1 changed files with 26 additions and 0 deletions
|
|
@ -396,6 +396,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))) {
|
||||||
List<Card> cards = new ArrayList<>();
|
List<Card> cards = new ArrayList<>();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue