public void read(HearthstoneReplay replay) { // read replay file and notify of turns/events etc. if (replay.getGames() == null || replay.getGames().isEmpty()) { return; } // For now support only a single game Game game = replay.getGames().get(0); helper.setGame(game); List<GameData> data = game.getData(); for (GameData gameData : data) { readData(gameData); } }
private String getPlayerCardId(HearthstoneReplay replay, PlayerEntity player) { List<GameData> data = replay.getGames().get(0).getData(); int playerEntityId = player.getTags().stream().filter(t -> t.getName() == GameTag.HERO_ENTITY.getIntValue()) .findFirst().get().getValue(); FullEntity playerEntity = data.stream().filter(d -> (d instanceof FullEntity)).map(e -> (FullEntity) e) .filter(e -> e.getId() == playerEntityId).findFirst().get(); return playerEntity.getCardId(); }
private String getPlayerClass(HearthstoneReplay replay, PlayerEntity player) { List<GameData> data = replay.getGames().get(0).getData(); int playerEntityId = player.getTags().stream().filter(t -> t.getName() == GameTag.HERO_ENTITY.getIntValue()) .findFirst().get().getValue(); FullEntity playerEntity = data.stream().filter(d -> (d instanceof FullEntity)).map(e -> (FullEntity) e) .filter(e -> e.getId() == playerEntityId).findFirst().get(); return cardsList.getDbCards().stream() .filter(c -> playerEntity.getCardId().equalsIgnoreCase(c.getId())) .findFirst() .map(DbCard::getPlayerClass) .map(String::toLowerCase) .orElse("unknown"); }
public HearthstoneReplay fromString(Iterable<String> lines, int hsBuild, GameType... gameTypes) throws Exception { read(lines); state.getReplay().setVersion(VERSION); state.getReplay().setBuild(String.valueOf(hsBuild)); for (int i = 0; i < state.getReplay().getGames().size(); i++) { if (gameTypes.length == 1) { state.getReplay().getGames().get(i).setType(gameTypes[0].getIntValue()); } else { state.getReplay().getGames().get(i).setType(gameTypes.length > i ? gameTypes[i].getIntValue() : 0); } } return state.getReplay(); }
helper.setGame(replay.getGames().get(0));
Game currentGame = Game.builder().data(new ArrayList<GameData>()).timestamp(timestamp).build(); state.setCurrentGame(currentGame); state.getReplay().getGames().add(currentGame); Node node = new Node(Game.class, currentGame, 0, null); state.setNode(node); if (state.getReplay().getGames().isEmpty()) { return; if (state.getReplay().getGames().isEmpty()) { Game currentGame = Game.builder().data(new ArrayList<GameData>()).timestamp(timestamp).build(); state.setCurrentGame(currentGame); state.getReplay().getGames().add(currentGame); Node node = new Node(Game.class, currentGame, 0, null); state.setNode(node);