diff --git a/src/server/ClientGame.java b/src/server/ClientGame.java index fe0b2d6..fbaeeb3 100644 --- a/src/server/ClientGame.java +++ b/src/server/ClientGame.java @@ -70,15 +70,11 @@ } System.out.println("Client " + ownId + " waiting for game..."); } - init(); } @Override protected void init() { super.init(); - loadOptions(); - loadFont(); - createPlayers(); createUI(); } @Override @@ -118,7 +114,7 @@ } protected void moveTrashCard(Card c){ - movePlaceCard(c, false); + moveTrashCard(c, false); } protected void moveTrashCard(Card c, boolean isDry) { @@ -159,6 +155,7 @@ protected abstract void createUI(); + protected abstract void updateUI(); public int getDifficulty(){ return difficulty; @@ -219,20 +216,38 @@ break; case MOVE_UPDATE: if(!initGameReceived){ - initGameReceived = true; // TODO move createXY() somewhere else? - createPlayers(); createDeck(); createTrash(); + loadOptions(); + loadFont(); + updateGame(jo); + init(); + initGameReceived = true; + break; } updateGame(jo); - System.out.println("Received game:"); - System.out.println(jo.toString(4)); + updateUI(); break; } } - - private void updateGame(JSONObject jo){ + + private int getPlayersSightId(int id){ + // TODO get the id of a player with ownId as 0-based index + return id + (nrOfPlayers - ownId) % nrOfPlayers; + } + + private int getRealId(int id){ + // TODO get the real id of a player + return (id + ownId) % nrOfPlayers; + } + + protected void updateGame(JSONObject jo){ + nrOfPlayers = jo.getInt("nrOfPlayers"); + if(!initGameReceived){ + createPlayers(); + } + System.out.println("update game"); // TODO movesLeft = jo.getInt("movesLeft"); cardsInDeck = jo.getInt("cardsInDeck"); hints = jo.getInt("hints"); @@ -260,7 +275,9 @@ JSONArray playerArray = jo.getJSONArray("players"); for(int i=0; i