registered players as r/o list

This commit is contained in:
Maxmtg
2012-10-23 22:14:40 +00:00
parent bfd6af7f2b
commit 1c98b79088

View File

@@ -23,9 +23,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import org.testng.collections.Lists;
import forge.Card; import forge.Card;
import forge.CardLists; import forge.CardLists;
import forge.CardPredicates.Presets; import forge.CardPredicates.Presets;
@@ -59,7 +56,7 @@ import forge.game.zone.ZoneType;
*/ */
public class GameState { public class GameState {
private final List<Player> roIngamePlayers; private final List<Player> roIngamePlayers;
private final List<Player> players = new ArrayList<Player>(); private final List<Player> allPlayers;
private final List<Player> ingamePlayers = new ArrayList<Player>(); private final List<Player> ingamePlayers = new ArrayList<Player>();
private final Cleanup cleanup = new Cleanup(); private final Cleanup cleanup = new Cleanup();
@@ -88,12 +85,13 @@ public class GameState {
* @param players2 * @param players2
*/ */
public GameState(Iterable<LobbyPlayer> players2) { /* no more zones to map here */ public GameState(Iterable<LobbyPlayer> players2) { /* no more zones to map here */
List<Player> players = new ArrayList<Player>();
for(LobbyPlayer p : players2) { for(LobbyPlayer p : players2) {
Player pl = getIngamePlayer(p); Player pl = getIngamePlayer(p);
players.add(pl); players.add(pl);
ingamePlayers.add(pl); ingamePlayers.add(pl);
} }
allPlayers = Collections.unmodifiableList(players);
roIngamePlayers = Collections.unmodifiableList(ingamePlayers); roIngamePlayers = Collections.unmodifiableList(ingamePlayers);
action = new GameAction(this); action = new GameAction(this);
stack = new MagicStack(this); stack = new MagicStack(this);
@@ -115,7 +113,7 @@ public class GameState {
* @return the players * @return the players
*/ */
public final List<Player> getRegisteredPlayers() { public final List<Player> getRegisteredPlayers() {
return Lists.newArrayList(players); return allPlayers;
} }
/** /**
@@ -461,8 +459,8 @@ public class GameState {
{ {
int iAlive; int iAlive;
do{ do{
iPlayer = ( players.indexOf(playerTurn) + 1 ) % players.size(); iPlayer = ( allPlayers.indexOf(playerTurn) + 1 ) % allPlayers.size();
iAlive = roIngamePlayers.indexOf(players.get(iPlayer)); iAlive = roIngamePlayers.indexOf(allPlayers.get(iPlayer));
} while(iAlive < 0); } while(iAlive < 0);
iPlayer = iAlive; iPlayer = iAlive;
} else { // for the case noone has died } else { // for the case noone has died