/// <summary> /// Loads the scores. /// </summary> /// <param name='leaderboardID'> /// Leaderboard I. /// </param> /// <param name='callback'> /// Callback. /// </param> public void LoadScores(string leaderboardID, System.Action <IScore[]> callback) { // Forward the AGSClient callbacks to the passed in callback. if (null != callback) { AGSLeaderboardsClient.RequestLeaderboardsSucceededEvent += (leaderboards) => { // If the leaderboard could not be found, call the callback with a null list. IScore [] scores = null; // Look through the retrieved leaderboards for the passed in leaderboard ID foreach (AGSLeaderboard leaderboard in leaderboards) { if (leaderboard.id == leaderboardID) { AGSSocialLeaderboard socialLeaderboard = new AGSSocialLeaderboard(leaderboard); scores = socialLeaderboard.scores; break; } } callback(scores); }; // If retrieving leaderboards failed, call the callback with a null list. AGSLeaderboardsClient.RequestLeaderboardsFailedEvent += (error) => { callback(null); }; } // Request the leaderboard list so the requested leaderboard ID can be searched for. AGSLeaderboardsClient.RequestLeaderboards(); }
private void OnRequestScoresCompleted(AGSRequestScoresResponse response) { // Put scores in leaderboard. AGSSocialLeaderboard leaderboard = leaderboardForRequest.ContainsKey(response.userData) ? leaderboardForRequest[response.userData] : null; if (null != leaderboard && !response.IsError()) { leaderboard.scores = new IScore[response.scores.Count]; for (int i = 0; i < response.scores.Count; i++) { leaderboard.scores[i] = new AGSSocialLeaderboardScore(response.scores[i], response.leaderboard); } } // Handle any callbacks Action <bool> callback = simpleCallbacks.ContainsKey(response.userData) ? simpleCallbacks[response.userData] : null; if (null != callback) { callback(!response.IsError()); } Action <IScore[]> scoreCallback = loadScoresCallbacks.ContainsKey(response.userData) ? loadScoresCallbacks[response.userData] : null; if (null != scoreCallback) { IScore[] scores = new IScore[response.scores.Count]; for (int i = 0; i < response.scores.Count; i++) { scores[i] = new AGSSocialLeaderboardScore(response.scores[i], response.leaderboard); } scoreCallback(scores); } // cleanup leaderboardForRequest.Remove(response.userData); simpleCallbacks.Remove(response.userData); }
private void OnRequestLocalPlayerScoreCompleted(AGSRequestScoreResponse response) { AGSSocialLeaderboard leaderboard = leaderboardForRequest.ContainsKey(response.userData) ? leaderboardForRequest[response.userData] : null; if (null != leaderboard) { leaderboard.localPlayerScore = response.score; leaderboard.localPlayerRank = response.rank; } leaderboardForRequest.Remove(response.userData); }
public void RequestLocalUserScore(AGSSocialLeaderboard leaderboard) { leaderboardForRequest.Add(requestID, leaderboard); AGSLeaderboardsClient.RequestScores(leaderboard.id, fromTimeScope(leaderboard.timeScope), requestID++); }
public void RequestScores(AGSSocialLeaderboard leaderboard, Action <bool> callback) { leaderboardForRequest.Add(requestID, leaderboard); simpleCallbacks.Add(requestID, callback); AGSLeaderboardsClient.RequestScores(leaderboard.id, fromTimeScope(leaderboard.timeScope), requestID++); }
public void RequestScores(AGSSocialLeaderboard leaderboard, Action<bool> callback) { leaderboardForRequest.Add (requestID, leaderboard); simpleCallbacks.Add (requestID, callback); AGSLeaderboardsClient.RequestScores (leaderboard.id, fromTimeScope (leaderboard.timeScope), requestID++); }
public void RequestLocalUserScore(AGSSocialLeaderboard leaderboard) { leaderboardForRequest.Add (requestID, leaderboard); AGSLeaderboardsClient.RequestScores (leaderboard.id, fromTimeScope (leaderboard.timeScope), requestID++); }
/// <summary> /// Loads the scores. /// </summary> /// <param name='leaderboardID'> /// Leaderboard I. /// </param> /// <param name='callback'> /// Callback. /// </param> public void LoadScores(string leaderboardID, System.Action<IScore[]> callback) { // Forward the AGSClient callbacks to the passed in callback. if(null != callback) { AGSLeaderboardsClient.RequestLeaderboardsSucceededEvent += (leaderboards) => { // If the leaderboard could not be found, call the callback with a null list. IScore [] scores = null; // Look through the retrieved leaderboards for the passed in leaderboard ID foreach(AGSLeaderboard leaderboard in leaderboards) { if(leaderboard.id == leaderboardID) { AGSSocialLeaderboard socialLeaderboard = new AGSSocialLeaderboard(leaderboard); scores = socialLeaderboard.scores; break; } } callback(scores); }; // If retrieving leaderboards failed, call the callback with a null list. AGSLeaderboardsClient.RequestLeaderboardsFailedEvent += (error) => { callback(null); }; } // Request the leaderboard list so the requested leaderboard ID can be searched for. AGSLeaderboardsClient.RequestLeaderboards(); }