public void SetRowData(UIScoreData lbRowData) { _rowData = lbRowData; _rankText.text = _rowData.Ranking.ToString(); _nameText.text = _rowData.Username; _scoreText.text = _rowData.ScoreValue.ToString(); }
private List <UIScoreData> ParseResultsData(List <ScoreboardCore.Data.ScoreResult> results) { List <UIScoreData> scoreData = new List <UIScoreData>(); foreach (var r in results) { UIScoreData data = new UIScoreData(); data.Ranking = r.Ranking; data.ScoreValue = r.Score.ScoreValue; if (r.Score.ExtraData.ContainsKey("Username")) { data.Username = r.Score.ExtraData["Username"]; } else { data.Username = "******"; } scoreData.Add(data); } return(scoreData); }
private string FormatScore(UIScoreData _score) { return($"{_score.Ranking}. {_score.Username} - {_score.ScoreValue}"); }
private void ProcessScores() { if (_scores.Count == 0) { return; } var localScore = MakePlayerScore(); var user = localScore.User; var myResult = _scores.Where(x => x.Score.User == user).FirstOrDefault(); if (myResult != null) { if (myResult.Score.ScoreValue < localScore.ScoreValue) { _scores.Remove(myResult); ScoreResult result = new ScoreResult(); result.Ranking = -1; result.Score = localScore; _scores.Add(result); _newHighscore = true; _scores = _scores.OrderByDescending(x => x.Score.ScoreValue).ToList(); } } else { ScoreResult result = new ScoreResult(); result.Ranking = -1; result.Score = localScore; _scores.Add(result); _newHighscore = true; _scores = _scores.OrderByDescending(x => x.Score.ScoreValue).ToList(); } int index = 0; for (index = 0; index < _scores.Count; ++index) { if (_scores[index].Score.User == user) { break; } } _currentRank = index + 1; if (_currentRank > 99) { _currentRank = -1; } var resultScore = new List <UIScoreData>(); bool extendedHighScores = false; int highScoresToShow = 3; if (_currentRank < 6 && _currentRank > 0) { highScoresToShow = 6; extendedHighScores = true; } for (int i = 0; i < highScoresToShow; ++i) { if (i < _scores.Count) { UIScoreData s = new UIScoreData(); if (_scores[i].Score.ExtraData.ContainsKey("Username")) { s.Username = _scores[i].Score.ExtraData["Username"]; } else { s.Username = "******"; } s.ScoreValue = _scores[i].Score.ScoreValue; s.Ranking = i + 1; resultScore.Add(s); } else { break; } } _liveScores.SetHighScores(resultScore); resultScore = new List <UIScoreData>(); if (!extendedHighScores && index > 0) { int startingPos = index - 1; int endingPos = index + 1; if (index == _scores.Count - 1) { startingPos = index - 2; endingPos = index; } for (int i = startingPos; i <= endingPos; ++i) { if (i < _scores.Count) { UIScoreData s = new UIScoreData(); if (_scores[i].Score.ExtraData.ContainsKey("Username")) { s.Username = _scores[i].Score.ExtraData["Username"]; } else { s.Username = "******"; } s.ScoreValue = _scores[i].Score.ScoreValue; s.Ranking = i + 1; resultScore.Add(s); } else { break; } } _liveScores.SetRelativeScores(resultScore); } else { _liveScores.SetRelativeScores(new List <UIScoreData>()); } }
private void UpdateLeaderboard() { if (_leaderboard && _leaderboardInfoRetrieved && _updateLeaderboard) { List <UIScoreData> leaderboardScores = new List <UIScoreData>(); for (int i = 0; i < _scores.Count; ++i) { if (i > 9) { break; } UIScoreData sd = new UIScoreData(); sd.Ranking = 1 + i; sd.ScoreValue = _scores[i].Score.ScoreValue; if (_scores[i].Score.ExtraData.ContainsKey("Username")) { sd.Username = _scores[i].Score.ExtraData["Username"]; } else { sd.Username = "******"; } leaderboardScores.Add(sd); } _leaderboard.UpdateScores(leaderboardScores); _leaderboard.gameObject.SetActive(true); if (_gameOverData) { GameOverData gameOverData = new GameOverData(); gameOverData.NewRank = _newHighscore; gameOverData.RankNumber = _currentRank; var playerScore = PlayerLife.Instance.GetComponent <PlayerScore>(); gameOverData.Laps = playerScore.Lap; gameOverData.Score = Mathf.RoundToInt(playerScore.Score); gameOverData.TimeAlive = playerScore.TotalTime; gameOverData.UserName = PlayerInfo.Instance.Username; gameOverData.TrackName = _publicLevelName; _gameOverData.SetData(gameOverData); } } else if (_leaderboard && _updateLeaderboard) { _leaderboard.gameObject.SetActive(false); if (_gameOverData) { GameOverData gameOverData = new GameOverData(); gameOverData.NewRank = false; var playerScore = PlayerLife.Instance.GetComponent <PlayerScore>(); gameOverData.Laps = playerScore.Lap; gameOverData.Score = Mathf.RoundToInt(playerScore.Score); gameOverData.TimeAlive = playerScore.TotalTime; gameOverData.UserName = PlayerInfo.Instance.Username; gameOverData.TrackName = _publicLevelName; _gameOverData.SetData(gameOverData); } } }