public async Task <JobStats> GetStats()
 {
     return(await StatsRequests.RequestStats(client));
 }
Exemple #2
0
        public async Task <Dictionary <Guid, UserStats> > GetStatsAsync(Platform platform, params Guid[] userIds)
        {
            var response = await StatsRequests.GetStats(this, platform, userIds);

            var result = new Dictionary <Guid, UserStats>();

            foreach (var kv in response.Results)
            {
                var userId   = Guid.Parse(kv.Key);
                var allStats = kv.Value;

                var allOperatorStats = new List <OperatorStats>();
                foreach (var op in Operators.Data)
                {
                    var gadgetStats = new Dictionary <string, int>();

                    foreach (var gadgetStatId in op.Gadgets)
                    {
                        gadgetStats.Add(gadgetStatId, GetStatValue(allStats, $"{gadgetStatId}:{op.FullIndex}:infinite"));
                    }

                    var operatorStats = new OperatorStats
                    {
                        Operator    = op,
                        TimePlayed  = GetStatValue(allStats, $"operatorpvp_timeplayed:{op.FullIndex}:infinite"),
                        Kills       = GetStatValue(allStats, $"operatorpvp_kills:{op.FullIndex}:infinite"),
                        Deaths      = GetStatValue(allStats, $"operatorpvp_death:{op.FullIndex}:infinite"),
                        RoundsWon   = GetStatValue(allStats, $"operatorpvp_roundwon:{op.FullIndex}:infinite"),
                        RoundsLost  = GetStatValue(allStats, $"operatorpvp_roundlost:{op.FullIndex}:infinite"),
                        GadgetStats = gadgetStats
                    };

                    allOperatorStats.Add(operatorStats);
                }

                result.Add(userId, new UserStats
                {
                    Operators   = allOperatorStats,
                    CasualStats = GetQueueStats(allStats, "casual"),
                    RankedStats = GetQueueStats(allStats, "ranked"),
                    PvpStats    = new PvpStats
                    {
                        Deaths           = GetStatValue(allStats, "generalpvp_death:infinite"),
                        Kills            = GetStatValue(allStats, "generalpvp_kills:infinite"),
                        MatchesLost      = GetStatValue(allStats, "generalpvp_matchlost:infinite"),
                        MatchesWon       = GetStatValue(allStats, "generalpvp_matchwon:infinite"),
                        TimePlayed       = GetStatValue(allStats, "generalpvp_timeplayed:infinite"),
                        Dbno             = GetStatValue(allStats, "generalpvp_dbno:infinite"),
                        Headshots        = GetStatValue(allStats, "generalpvp_headshot:infinite"),
                        Revives          = GetStatValue(allStats, "generalpvp_revive:infinite"),
                        Suicides         = GetStatValue(allStats, "generalpvp_suicide:infinite"),
                        BlindKills       = GetStatValue(allStats, "generalpvp_blindkills:infinite"),
                        BulletsFired     = GetStatValue(allStats, "generalpvp_bulletfired:infinite"),
                        BulletsHit       = GetStatValue(allStats, "generalpvp_bullethit:infinite"),
                        DeniedRevives    = GetStatValue(allStats, "generalpvp_revivedenied:infinite"),
                        DbnoAssists      = GetStatValue(allStats, "generalpvp_dnboassists:infinite"),
                        GadgetsDestroyed = GetStatValue(allStats, "generalpvp_gadgetdestroy:infinite"),
                        HostagesDefended = GetStatValue(allStats, "generalpvp_hostagedefense:infinite"),
                        HostagesRescued  = GetStatValue(allStats, "generalpvp_hostagerescue:infinite"),
                        KillAssists      = GetStatValue(allStats, "generalpvp_killassists:infinite"),
                        MeleeKills       = GetStatValue(allStats, "generalpvp_meleekills:infinite"),
                        PenetrationKills = GetStatValue(allStats, "generalpvp_penetrationkills:infinite"),
                        RappelBreaches   = GetStatValue(allStats, "generalpvp_rappelbreach:infinite")
                    },
                    GameModes = new GameModesStats
                    {
                        Bomb       = GetGameModeStats(allStats, "plantbomb"),
                        Hostage    = GetGameModeStats(allStats, "rescuehostage"),
                        SecureArea = GetGameModeStats(allStats, "securearea")
                    },
                    WeaponStats = new Dictionary <WeaponType, WeaponStats>
                    {
                        { WeaponType.Assault, GetWeaponStats(allStats, "1") },
                        { WeaponType.Smg, GetWeaponStats(allStats, "2") },
                        { WeaponType.Lmg, GetWeaponStats(allStats, "3") },
                        { WeaponType.Sniper, GetWeaponStats(allStats, "4") },
                        { WeaponType.Pistol, GetWeaponStats(allStats, "5") },
                        { WeaponType.Shotgun, GetWeaponStats(allStats, "6") },
                        { WeaponType.MachinePistol, GetWeaponStats(allStats, "7") },
                        { WeaponType.Shield, GetWeaponStats(allStats, "8") },
                        { WeaponType.Launcher, GetWeaponStats(allStats, "9") },
                        { WeaponType.B, GetWeaponStats(allStats, "B") }
                    }
                });
            }

            return(result);
        }