mirror of
https://github.com/magefree/mage.git
synced 2025-12-26 21:42:07 -08:00
Merge remote-tracking branch 'upstream/master' into CMH-GuiltyConscienceAndBackfire
This commit is contained in:
commit
4a13ba3645
8 changed files with 253 additions and 11 deletions
|
|
@ -106,15 +106,29 @@ class ReturnExiledPermanentsEffect extends OneShotEffect {
|
|||
Player controller = game.getPlayer(source.getControllerId());
|
||||
MageObject sourceObject = source.getSourceObject(game);
|
||||
if (sourceObject != null && controller != null) {
|
||||
UUID exileZone = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter());
|
||||
if (exileZone != null) {
|
||||
ExileZone exile = game.getExile().getExileZone(exileZone);
|
||||
if (exile != null) {
|
||||
controller.moveCards(new LinkedHashSet<>(exile.getCards(game)), Zone.BATTLEFIELD, source, game, false, false, true, null);
|
||||
}
|
||||
return true;
|
||||
ExileZone exile = getExileIfPossible(game, source);
|
||||
if (exile != null) {
|
||||
return controller.moveCards(new LinkedHashSet<>(exile.getCards(game)), Zone.BATTLEFIELD, source, game, false, false, true, null);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private ExileZone getExileIfPossible(final Game game, final Ability source) {
|
||||
UUID exileZone = CardUtil.getExileZoneId(game, source.getSourceId(), source.getSourceObjectZoneChangeCounter());
|
||||
|
||||
if (exileZone != null) {
|
||||
ExileZone exile = game.getExile().getExileZone(exileZone);
|
||||
if (exile == null) {
|
||||
// try without ZoneChangeCounter - that is useful for tokens
|
||||
exileZone = CardUtil.getCardExileZoneId(game, source);
|
||||
if (exileZone != null) {
|
||||
return game.getExile().getExileZone(exileZone);
|
||||
}
|
||||
}
|
||||
return exile;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue