@Override public int getMaxPlayers() { return mapLoader.getMaxPlayers(); }
private void resetNumberOfPlayersComboBox() { numberOfPlayersComboBox.removeAllItems(); for (int i = 1; i < mapLoader.getMaxPlayers() + 1; i++) { numberOfPlayersComboBox.addItem(i); } numberOfPlayersComboBox.setSelectedIndex(mapLoader.getMaxPlayers() - 1); }
lbPlayerCount.setText("Player: " + value.getMinPlayers() + " - " + value.getMaxPlayers());
playerCountLabel.setText("Player: " + value.getMinPlayers() + " - " + value.getMaxPlayers());
public static PlayMapResult playMapToTargetTimes(MapLoader map, byte playerId, final int... targetTimeMinutes) { OfflineNetworkConnector networkConnector = ReplayUtils.createPausingOfflineNetworkConnector(); JSettlersGame game = new JSettlersGame(map, 0L, networkConnector, playerId, PlayerSetting.createDefaultSettings(playerId, (byte) map.getMaxPlayers())) { @Override protected OutputStream createReplayWriteStream() throws IOException { return ResourceManager.writeConfigurationFile("jsettlers.integration.replay"); } }; final MapLoader[] savegames = ReplayUtils.playGameToTargetTimeAndGetSavegames(game, networkConnector, targetTimeMinutes); return new PlayMapResult(map, savegames); }
@Override public PlayerSlot createPlayerSlot(byte slot, MapLoader mapLoader) { PlayerSlot playerSlot = new PlayerSlot(); playerSlot.setPossibleTypes(new EPlayerType[] { EPlayerType.HUMAN, EPlayerType.AI_VERY_HARD }); playerSlot.setSlotAndTeams((byte) mapLoader.getMaxPlayers()); playerSlot.setReady(false); playerSlot.setReadyButtonEnabled(false); playerSlot.disableAllInputs(); return playerSlot; } }
private void buildPlayerSlots() { int maximumNumberOfPlayers = this.mapLoader.getMaxPlayers(); playerSlots.clear(); for (byte i = 0; i < maximumNumberOfPlayers; i++) { PlayerSlot playerSlot = playerSlotFactory.createPlayerSlot(i, this.mapLoader); playerSlots.add(playerSlot); } PlayerSetting[] playerSettings = mapLoader.getFileHeader().getPlayerSettings(); for (byte i = 0; i < playerSlots.size(); i++) { PlayerSlot playerSlot = playerSlots.get(i); PlayerSetting playerSetting = playerSettings[i]; playerSlot.setSlot(i); if (playerSetting.getTeamId() != null) { playerSlot.setTeam(playerSetting.getTeamId(), false); } else { playerSlot.setTeam(i); } if (playerSetting.getCivilisation() != null) { playerSlot.setCivilisation(playerSetting.getCivilisation(), false); } if (playerSetting.getPlayerType() != null) { playerSlot.setPlayerType(playerSetting.getPlayerType(), false); } } }
if (mapLoader.getFileHeader().getType() == MapFileHeader.MapType.NORMAL) { byte playerId = 0; PlayerSetting[] playerSettings = PlayerSetting.createDefaultSettings(playerId, (byte) mapLoader.getMaxPlayers()); game = new JSettlersGame(mapLoader, randomSeed, playerId, playerSettings).start(); } else {
@Override public PlayerSlot createPlayerSlot(byte slot, MapLoader mapLoader) { PlayerSlot playerSlot = new PlayerSlot(); if (slot == 0) { SettingsManager settingsManager = SettingsManager.getInstance(); playerSlot.setPlayerName(settingsManager.getPlayer().getName()); playerSlot.setPossibleTypes(new EPlayerType[] { EPlayerType.HUMAN, EPlayerType.AI_VERY_HARD, EPlayerType.AI_HARD, EPlayerType.AI_EASY, EPlayerType.AI_VERY_EASY }); } else { playerSlot.setPossibleTypes(new EPlayerType[] { EPlayerType.AI_VERY_HARD, EPlayerType.AI_HARD, EPlayerType.AI_EASY, EPlayerType.AI_VERY_EASY }); } playerSlot.setSlotAndTeams((byte) mapLoader.getMaxPlayers()); playerSlot.setReadyButtonEnabled(false); playerSlot.setReady(true); return playerSlot; }
private IPacketReceiver<MatchStartPacket> generateMatchStartedListener() { return packet -> { updatePlayersList(packet.getMatchInfo().getPlayers()); MapLoader mapLoader = MapList.getDefaultList().getMapById(packet.getMatchInfo().getMapInfo().getId()); long randomSeed = packet.getRandomSeed(); boolean[] availablePlayers = new boolean[mapLoader.getMaxPlayers()]; byte ownPlayerId = calculatePlayerInfos(availablePlayers); PlayerSetting[] playerSettings = determinePlayerSettings(availablePlayers); JSettlersGame game = new JSettlersGame(mapLoader, randomSeed, networkClient.getNetworkConnector(), ownPlayerId, playerSettings); multiplayerListener.gameIsStarting(game.start()); }; }
@Override public PlayerSlot createPlayerSlot(byte slot, MapLoader mapLoader) { PlayerSlot playerSlot = new PlayerSlot(); if (slot == 0) { SettingsManager settingsManager = SettingsManager.getInstance(); playerSlot.setPlayerName(settingsManager.getPlayer().getName()); playerSlot.setPossibleTypes(new EPlayerType[] { EPlayerType.HUMAN }); playerSlot.setReadyButtonEnabled(true); playerSlot.setReady(false); } else { playerSlot.setPossibleTypes(new EPlayerType[] { EPlayerType.HUMAN, EPlayerType.AI_VERY_HARD }); playerSlot.setPlayerType(EPlayerType.AI_VERY_HARD, false); playerSlot.setReadyButtonEnabled(false); playerSlot.setReady(true); } playerSlot.setSlotAndTeams((byte) mapLoader.getMaxPlayers()); playerSlot.disableAllInputs(); return playerSlot; } }
@Test public void testIfSavegameOfSavegameEqualsSavegame() throws IOException, MapLoadException, ClassNotFoundException, InterruptedException { final byte playerId = 0; final int targetTimeMinutes = 30; MapLoader map = MapUtils.getMountainlake(); ReplayUtils.PlayMapResult directSavegameReplay = ReplayUtils.playMapToTargetTimes(map, playerId, targetTimeMinutes); assertDirectSavegameReplay(1, directSavegameReplay); MapLoader savegame = directSavegameReplay.getSavegames()[0]; Thread.sleep(2000L); // loading + saving might happend in less than a second => make sure the next savegame is saved with a different name System.out.println("Loading savegame..."); MatchConstants.init(new NetworkTimer(true), 0L); MainGridWithUiSettings loadedMap = savegame.loadMainGrid(PlayerSetting.createDefaultSettings(playerId, (byte) savegame.getMaxPlayers())); MainGrid mainGrid = loadedMap.getMainGrid(); PlayerState playerState = loadedMap.getPlayerState(playerId); mainGrid.initForPlayer(playerId, playerState.getFogOfWar()); MapLoader savegameOfSavegame; try { System.out.println("Creating savegame of savegame..."); savegameOfSavegame = MapUtils.saveMainGrid(mainGrid, playerId, playerState.getUiState()); assertNotNull(savegameOfSavegame); } finally { mainGrid.stopThreads(); JSettlersGame.clearState(); } // compare direct savegame with replayed savegame. MapUtils.compareMapFiles(savegame, savegameOfSavegame); }