From 5e3786fe1c98ddc2e2855b7a4a9aa19d791e63f8 Mon Sep 17 00:00:00 2001 From: Sol Date: Tue, 18 Feb 2014 03:04:40 +0000 Subject: [PATCH] - Fix for Players not being assigned to any team causing issues from Quest mode --- forge-game/src/main/java/forge/game/Game.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index 8a540c31641..01f2364133f 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -86,6 +86,14 @@ public class Game { allPlayers = Collections.unmodifiableList(players); roIngamePlayers = Collections.unmodifiableList(ingamePlayers); + int highestTeam = -1; + for (RegisteredPlayer psc : players0) { + // Track highest team number for auto assigning unassigned teams + int teamNum = psc.getTeamNumber(); + if (teamNum > highestTeam) + highestTeam = teamNum; + } + for (RegisteredPlayer psc : players0) { Player pl = psc.getPlayer().createIngamePlayer(this); players.add(pl); @@ -94,7 +102,15 @@ public class Game { pl.setStartingLife(psc.getStartingLife()); pl.setMaxHandSize(psc.getStartingHand()); pl.setStartingHandSize(psc.getStartingHand()); - pl.setTeam(psc.getTeamNumber()); + + int teamNum = psc.getTeamNumber(); + if (teamNum == -1) { + // RegisteredPlayer doesn't have an assigned team, set it to 1 higher than the highest found team number + teamNum = ++highestTeam; + psc.setTeamNumber(teamNum); + } + + pl.setTeam(teamNum); } action = new GameAction(this);