[CLB] fixed game error on Intellect Devourer usage with disconnected opponent

This commit is contained in:
Oleg Agafonov 2023-08-25 19:13:01 +04:00
parent da89ab6ad7
commit 0db46ba3da

View file

@ -113,14 +113,14 @@ class IntellectDevourerExileEffect extends OneShotEffect {
UUID exileZoneId = CardUtil.getExileZoneId(game, sourceObject.getId(), sourceObject.getZoneChangeCounter(game)); UUID exileZoneId = CardUtil.getExileZoneId(game, sourceObject.getId(), sourceObject.getZoneChangeCounter(game));
for (UUID opponentId : game.getOpponents(source.getControllerId())) { for (UUID opponentId : game.getOpponents(source.getControllerId())) {
Cards cardsOpponentsChoseToExile = new CardsImpl(); Cards opponentCardsToExile = new CardsImpl();
Player opponent = game.getPlayer(opponentId); Player opponent = game.getPlayer(opponentId);
if (opponent == null || !cardsToExile.containsKey(opponentId)) { if (opponent == null || !cardsToExile.containsKey(opponentId) || cardsToExile.get(opponentId).isEmpty()) {
continue; continue;
} }
cardsOpponentsChoseToExile.addAll(cardsToExile.get(opponentId)); opponentCardsToExile.addAll(cardsToExile.get(opponentId));
opponent.moveCardsToExile(cardsOpponentsChoseToExile.getCards(game), source, game, false, exileZoneId, sourceObject.getIdName()); opponent.moveCardsToExile(opponentCardsToExile.getCards(game), source, game, false, exileZoneId, sourceObject.getIdName());
Card thisCard = cardsOpponentsChoseToExile.getCards(game).iterator().next(); Card thisCard = opponentCardsToExile.getCards(game).iterator().next();
game.getState().setValue(thisCard.getId().toString() + game.getState().getZoneChangeCounter(thisCard.getId()), exileZoneId); game.getState().setValue(thisCard.getId().toString() + game.getState().getZoneChangeCounter(thisCard.getId()), exileZoneId);
applied = true; applied = true;
} }