// todo: return rank? public IRequestToken SubmitScore(double score, uint mode, ScoreloopCallback<Score> callback) { if (!this.IsNetworkAvailable) { callback.InvokeIfNotNull(new ScoreloopResponse<Score>(null, null, false)); return null; } IScoreController scoreController = _client.CreateScoreController(); scoreController.RequestFailed += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<Score>(null, scoreController, false)); scoreController.RequestCancelled += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<Score>(null, scoreController, false)); scoreController.ScoreSubmitted += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<Score>(scoreController.Score, scoreController, true)); scoreController.Submit(scoreController.CreateScore(score, mode)); return new RequestToken(scoreController); }
public IRequestToken RenameUser(string newName, ScoreloopCallback callback) { if (!this.IsNetworkAvailable) { callback.InvokeIfNotNull(new ScoreloopResponse(null, false)); return null; } Ensure.NotNull(newName); IUserController userController = _client.CreateUserController(); userController.RequestFailed += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse(userController, false)); userController.RequestCancelled += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse(userController, false)); userController.UserUpdated += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse(userController, true)); userController.Update(newName, ""); return new RequestToken(userController); }
public IRequestToken GetUserScore(LeaderboardScope leaderboardScope, uint mode, ScoreloopCallback<Score> callback) { return this.GetRank(leaderboardScope, mode, response => { if (callback != null) { callback(new ScoreloopResponse<Score>(response.Data != null ? response.Data.Score : null, response.RequestSource, response.Success)); } }); }
public IRequestToken GetRank(LeaderboardScope leaderboardScope, Score score, ScoreloopCallback<RankResponse> callback) { if (!this.IsNetworkAvailable) { callback.InvokeIfNotNull(new ScoreloopResponse<RankResponse>(new RankResponse(-1, null, leaderboardScope), null, false)); return null; } IRankingController rankingController = _client.CreateRankingController(); rankingController.RequestFailed += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<RankResponse>(new RankResponse(-1, null, leaderboardScope), rankingController, false)); rankingController.RequestCancelled += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<RankResponse>(new RankResponse(-1, null, leaderboardScope), rankingController, false)); rankingController.RankingLoaded += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<RankResponse>(new RankResponse((int)e.Controller.Rank, e.Controller.Score, leaderboardScope), rankingController, true)); rankingController.LoadRanking(ScoreloopHelper.GetSearchList(leaderboardScope, rankingController), score); return new RequestToken(rankingController); }
public IRequestToken LoadScores(LeaderboardScope leaderboardScope, RangeInt scoreRange, uint mode, ScoreloopCallback<LeaderboardScoresResponse> callback) { if (!this.IsNetworkAvailable) { callback.InvokeIfNotNull(new ScoreloopResponse<LeaderboardScoresResponse>(null, null, false)); return null; } Ensure.True(scoreRange.Length > 0); IScoresController scoresController = _client.CreateScoresController(); scoresController.RequestCancelled += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<LeaderboardScoresResponse>(null, scoresController, false)); scoresController.RequestFailed += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<LeaderboardScoresResponse>(null, scoresController, false)); scoresController.ScoresLoaded += (o, e) => callback.InvokeIfNotNull(new ScoreloopResponse<LeaderboardScoresResponse>(new LeaderboardScoresResponse(e.Controller.Scores, scoreRange.Min), scoresController, true)); scoresController.LoadScores(ScoreloopHelper.GetSearchList(leaderboardScope, scoresController), new ScoreloopRange(scoreRange.Min, (uint)scoreRange.Length), mode); return new RequestToken(scoresController); }
public void GetRank(LeaderboardScope scope, ScoreloopCallback<RankResponse> callback) { _scoreloopManager.GetRank(scope, _mode, callback); }
new public void GetRank(ScoreloopCallback<RankResponse> callback) { base.GetRank(callback); }
public void LoadMoreScores(ScoreloopCallback<LeaderboardScoresResponse> callback) { this.LoadScores(new RangeInt(this.ScoresLoaded, this.ScoresLoaded + _scoresToLoad), callback); }
protected IRequestToken LoadScores(RangeInt scoreRange, ScoreloopCallback<LeaderboardScoresResponse> callback) { ScoreloopCallback<LeaderboardScoresResponse> innerCallback = response => { if (_latestScoreRequestToken != null && response.RequestSource == _latestScoreRequestToken.RequestSource) { _latestScoreRequestToken = null; } // if less scores than the requested amount was loaded, that *should* mean that there are no more scores to load if (response.Success && response.Data.Scores.Count != scoreRange.Length) { _canLoadMoreScores = false; } this.OnScoresLoaded(response); if (callback != null) { callback(response); } }; this.CancelLatestScoreRequest(); _latestScoreRequestToken = _scoreloopManager.LoadScores(_leaderboardScope, scoreRange, _mode, innerCallback); return _latestScoreRequestToken; }
protected IRequestToken GetRank(Score score, ScoreloopCallback<RankResponse> callback) { return _scoreloopManager.GetRank(_leaderboardScope, score, callback); }