@Override
	public void update(Observable o, Object arg) {
		if (presenter.getGames().size() > numGames || getNewNumberOfPlayers() > numPlayers) {
			this.getJoinGameView().setGames(presenter.getGames(), presenter.getPlayerInfo());
			numGames = presenter.getGames().size();
			numPlayers = getNewNumberOfPlayers();
			this.getJoinGameView().closeModal();
			this.getJoinGameView().showModal();
		}
		
		if (currentGame != null) {
			GameDescription newGame = presenter.getGames().get(currentGame.getId());
			for (int i = 0; i < newGame.getPlayerDescriptions().size(); i++) {
				if (i < currentGame.getPlayerDescriptions().size()) {
					if (!currentGame.getPlayerDescriptions().get(i).getColor().equals(newGame.getPlayerDescriptions().get(i).getColor())) {
						getSelectColorView().setColorEnabled(CatanColor.valueOf(currentGame.getPlayerDescriptions().get(i).getColor().toUpperCase()), true);
						getSelectColorView().setColorEnabled(CatanColor.valueOf(newGame.getPlayerDescriptions().get(i).getColor().toUpperCase()), false);
					}
				}
				else {
					getSelectColorView().setColorEnabled(CatanColor.valueOf(newGame.getPlayerDescriptions().get(i).getColor().toUpperCase()), false);
				}
			}
		}
		
		if(presenter.getState().getStatus().equals("Playing")) {
			if(getJoinGameView().isModalShowing()) {
				getJoinGameView().closeModal();
			}
		}
	}