From fe051b5d29961af2cd30f3f1686da326c96d3ebf Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Wed, 10 Apr 2013 01:10:03 +0200 Subject: [PATCH] Fixed a bug that Free For All multiplayer games were never finished because no player got wins. Only losses were set. --- Mage/src/mage/game/GameImpl.java | 5 +++++ Mage/src/mage/players/PlayerImpl.java | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index c6642d0cc5c..b1023b86675 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -392,6 +392,11 @@ public abstract class GameImpl> implements Game, Serializa } } if (remainingPlayers <= 1 || numLosers >= state.getPlayers().size() - 1) { + for (Player player: state.getPlayers().values()) { + if (!player.hasLeft() && !player.hasLost()) { + player.won(this); + } + } state.endGame(); endTime = new Date(); return true; diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 5a2b3dd742c..984ecc47c23 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -1158,8 +1158,12 @@ public abstract class PlayerImpl> implements Player, Ser //20100423 - 800.6, 801.16 if (game.getPlayers().size() > 2) { for (UUID opponentId: game.getOpponents(playerId)) { - game.getPlayer(opponentId).lost(game); + Player opponent = game.getPlayer(opponentId); + if (!opponent.hasLost()) { + game.getPlayer(opponentId).lost(game); + } } + this.wins = true; } else { this.wins = true;