public Leaderboard GetLeaderboardDocumentFromRaw(string raw, string gameMode)
        {
            JObject jResponse = JsonConvert.DeserializeObject <JObject>(raw);
            JArray  players   = JArray.FromObject(jResponse[LeaderboardPlayersJsonPath]);

            Leaderboard document = new Leaderboard();

            foreach (JToken player in players)
            {
                LeaderboardPlayer leaderboardPlayer = player.ToObject <LeaderboardPlayer>();
                document.Players.Add(leaderboardPlayer);
                document.Mode = gameMode;
            }
            return(document);
        }
예제 #2
0
    public void UpdateLeaderboardEntry(int rankNumber, LeaderboardPlayer leaderboardPlayer)
    {
        if (rankNumber <= 3)
        {
            crownIcon.gameObject.SetActive(true);
            crownIcon.sprite = crownSprites[rankNumber - 1];
        }
        else
        {
            crownIcon.gameObject.SetActive(false);
        }

        rankNumberText.text = rankNumber.ToString();
        scoreText.text      = leaderboardPlayer.playerScore.ToString();
        playerNameText.text = leaderboardPlayer.playerName;
    }
        public async Task <PlayerLifetimeStats> GetPlayerLifetimeStatsAsync(LeaderboardPlayer player, CancellationToken cancellationToken)
        {
            try
            {
                HttpResponseMessage apiResponse = await CallGovernor.Call(async() =>
                {
                    return(await _httpClient.GetAsync($"https://api.pubg.com/shards/steam/players/{player.Id}/seasons/lifetime", cancellationToken));
                }, cancellationToken);

                string raw = await apiResponse.Content.ReadAsStringAsync();

                PlayerLifetimeStats playerLifetimeStats =
                    _documentExtractorService.GetPlayerLifetimeStatsDocumentFromRaw(raw, player.Id, player.Attributes.Name);

                return(playerLifetimeStats);
            }
            catch (Exception ex)
            {
                Log.Error("Error getting data from API", ex);
                throw;
            }
        }
예제 #4
0
    public void UpdateScore()
    {
        if (leaderboard == null)
        {
            leaderboard = new Dictionary <int, LeaderboardPlayer>();
        }

        foreach (PlayerManager player in GameManager.players.Values)
        {
            if (!leaderboard.ContainsKey(player.id))
            {
                LeaderboardPlayer temp = Instantiate(playerleaderboardPrefab, panel).GetComponent <LeaderboardPlayer>();

                leaderboard.Add(player.id, temp);
            }

            if (leaderboard.ContainsKey(player.id))
            {
                leaderboard[player.id].UpdateScore(player);
            }
        }
    }
예제 #5
0
 public void SavePlayer(LeaderboardPlayer leaderboardPlayer)
 {
     // save leaderboard to persistant store
 }
예제 #6
0
 public void SetLeaderboardEntry(LeaderboardPlayer entry)
 {
     _boardEntry = entry;
 }