Exemplo n.º 1
0
    private IEnumerator UpdatePointsMenu()
    {
        //Get leaderboard details to display on points menu
        string url = "http://127.0.0.1:5000/statistics/leaderboard";

        using (UnityWebRequest webRequest = UnityWebRequest.Get(url))
        {
            yield return(webRequest.SendWebRequest());

            TMP_Text           pointsContent = GameObject.Find("PointsContent").GetComponent <TMP_Text>();
            TMP_Text           pointsNumbers = GameObject.Find("PointsNumbers").GetComponent <TMP_Text>();
            LeaderboardDetails leaderboard   = JsonUtility.FromJson <LeaderboardDetails>(webRequest.downloadHandler.text);
            string             displayText   = "";
            string             numberText    = "";
            int i = 1;
            foreach (LeaderboardScoresDetails student in leaderboard.scores)
            {
                displayText += i.ToString() + "." + student.name + "\n";
                numberText  += student.score.ToString() + "\n";
                i++;
                if (i > 17)
                {
                    break;
                }
            }
            pointsContent.text = displayText;
            pointsNumbers.text = numberText;
        }
    }
Exemplo n.º 2
0
        private async Task UpdateLeaderboard(int regionId, List <PlayerEntity> players, IBinder binder, ILogger log)
        {
            var collection = players.Select(_ => new LeaderboardEntity()
            {
                RegionId  = int.Parse(_.PartitionKey),
                AccountId = uint.Parse(_.RowKey),
                Ranking   = _.Ranking,
                Total     = _.Total,
                WinRate   = _.WinRate,
            }).ToList();

            var identities = collection.Select(_ => _.SteamId).ToArray();
            var profiles   = await GetProfiles(regionId, identities);

            if (profiles.Count() > 0)
            {
                collection = collection.Join(profiles, _ => _.SteamId, _ => _.steamid, (lhs, rhs) => new LeaderboardEntity()
                {
                    RegionId  = lhs.RegionId,
                    AccountId = lhs.AccountId,
                    Ranking   = lhs.Ranking,
                    Total     = lhs.Total,
                    WinRate   = lhs.WinRate,
                    Persona   = rhs.personaname,
                    Avatar    = rhs.avatarfull
                }).ToList();
            }

            var model = new LeaderboardDetails()
            {
                Region = regionId,
                List   = collection
            };

            var attr   = new BlobAttribute(string.Format(LEADERBOARD_PATH, regionId));
            var writer = await binder.BindAsync <TextWriter>(attr);

            var json = JsonConvert.SerializeObject(model);
            await writer.WriteAsync(json);
        }