/// <summary> /// Once a replay is fully parsed, add the data build over time to the replay. /// </summary> /// <param name="replay"></param> /// <returns>FortniteReplay</returns> public FortniteReplay Build(FortniteReplay replay) { UpdateTeamData(); replay.GameData = GameData; replay.MapData = MapData; replay.KillFeed = KillFeed; replay.TeamData = _teams.Values; replay.PlayerData = _players.Values; return(replay); }
private static void ExtractReplayData(GameData gameData, FortniteReplay replay) { gameData.GameType = CalculateTypeOfGame(replay); gameData.GameId = replay.GameData.GameSessionId; gameData.Position = (int)replay.TeamStats.Position; gameData.PlayersType = GetAllPlayers(replay.PlayerData); gameData.PlayerInfo = SetPlayerInfo(replay, sharkaum); gameData.GameTime = replay.Info.Timestamp; gameData.Season = GetSeason(gameData.GameTime); gameData.TeamStats = (gameData.GameType == GameType.Duo || gameData.GameType == GameType.Squad)? GetTeamstats(replay): null; }
private static void PrintInformation(GameData gameData, FortniteReplay replay) { Console.WriteLine($"{replay.Info.Timestamp} Game Type: {gameData.GameType} - Final Position: {gameData.Position} - Kills: {gameData.PlayerInfo.Eliminations}"); if (gameData.Position == 1) { Console.WriteLine($"}}===========WINNER WINNER==========={{ "); } Console.WriteLine($"PSN: {CountPlayerTypes(gameData.PlayersType, PlayerType.PSN)} / XBL: {CountPlayerTypes(gameData.PlayersType, PlayerType.XBL)} / " + $"Win: {CountPlayerTypes(gameData.PlayersType, PlayerType.PC)} / Mac: {CountPlayerTypes(gameData.PlayersType, PlayerType.MAC)} / " + $"Henchman: {CountPlayerTypes(gameData.PlayersType, PlayerType.Henchmam)} / Marauder: {CountPlayerTypes(gameData.PlayersType, PlayerType.Marauder)} / " + $"Bosses: {CountPlayerTypes(gameData.PlayersType, PlayerType.Boss)} / Bots Players: {CountPlayerTypes(gameData.PlayersType, PlayerType.BOT)} / " + $"Unknown: {CountPlayerTypes(gameData.PlayersType, PlayerType.Unknown)} "); Console.WriteLine($"-------------------------------------------------------------------- "); }
private static GameType CalculateTypeOfGame(FortniteReplay replay) { // Need better investigation. No gameType property var numberOfTeams = replay.TeamData.ToList().Count; if (numberOfTeams == 2) { return(GameType.LTM); } if (numberOfTeams < 40) { return(GameType.Squad); } if (numberOfTeams < 80) { return(GameType.Duo); } return(GameType.Solo); }
private static PlayerStats SetPlayerInfo(FortniteReplay replay, string playerEpicId) { PlayerStats player = new PlayerStats(playerEpicId); player.Accuracy = replay.Stats.Accuracy; player.Assists = replay.Stats.Assists; player.DamageTaken = replay.Stats.DamageTaken; player.DamageToPlayers = replay.Stats.DamageToPlayers; player.DamageToStructures = replay.Stats.DamageToStructures; player.Eliminations = replay.Stats.Eliminations; player.MaterialsGathered = replay.Stats.MaterialsGathered; player.MaterialsUsed = replay.Stats.MaterialsUsed; player.OtherDamage = replay.Stats.OtherDamage; player.Revives = replay.Stats.Revives; player.TotalTraveled = replay.Stats.TotalTraveled; player.WeaponDamage = replay.Stats.WeaponDamage; return(player); }
private static PlayerInfo GetTeamPlayersInfo(FortniteReplay replay, string EpicId) { var playerInfo = replay.PlayerData.FirstOrDefault(x => x.EpicId == EpicId); if (playerInfo != null) { int elimination = 0; if (playerInfo.Kills != null) { elimination = (int)playerInfo.Kills; } return(new PlayerInfo() { EpicId = playerInfo.EpicId, Kills = elimination }); } return(null); }
private static TeamStats GetTeamstats(FortniteReplay replay) { TeamStats stats = new TeamStats(); foreach (var team in replay.TeamData) { if (team.PlayerNames.Contains(sharkaum.ToUpper())) { stats.Players = new List <PlayerInfo>(); foreach (var player in team.PlayerNames.ToList()) { var playerInfo = GetTeamPlayersInfo(replay, player); if (player != null) { stats.Players.Add(playerInfo); } } } } stats.TotalTeamKillsInAMatch = replay.PlayerData.FirstOrDefault(x => x.EpicId == sharkaum.ToUpper()).TeamKills; return(stats); }
public FortniteReplayBuilderTest() { builder = new FortniteReplayBuilder(); replay = new FortniteReplay(); }
private static bool IsValidReplay(FortniteReplay replay) { return(replay.Stats != null); }
private static void ProcessReplay(GameData gameData, FortniteReplay replay) { ExtractReplayData(gameData, replay); PrintInformation(gameData, replay); }
public void SetReplay(FortniteReplay replay) { Replay = replay; }
public BenchmarkReplayReader() { Replay = new FortniteReplay(); }