/// <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);
 }
Beispiel #2
0
 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;
 }
Beispiel #3
0
        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($"-------------------------------------------------------------------- ");
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
 public FortniteReplayBuilderTest()
 {
     builder = new FortniteReplayBuilder();
     replay  = new FortniteReplay();
 }
Beispiel #9
0
 private static bool IsValidReplay(FortniteReplay replay)
 {
     return(replay.Stats != null);
 }
Beispiel #10
0
 private static void ProcessReplay(GameData gameData, FortniteReplay replay)
 {
     ExtractReplayData(gameData, replay);
     PrintInformation(gameData, replay);
 }
 public void SetReplay(FortniteReplay replay)
 {
     Replay = replay;
 }
Beispiel #12
0
 public BenchmarkReplayReader()
 {
     Replay = new FortniteReplay();
 }