/// <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();
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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);
    }
Beispiel #4
0
 public void RequestLocalUserScore(AGSSocialLeaderboard leaderboard)
 {
     leaderboardForRequest.Add(requestID, leaderboard);
     AGSLeaderboardsClient.RequestScores(leaderboard.id, fromTimeScope(leaderboard.timeScope), requestID++);
 }
Beispiel #5
0
 public void RequestScores(AGSSocialLeaderboard leaderboard, Action <bool> callback)
 {
     leaderboardForRequest.Add(requestID, leaderboard);
     simpleCallbacks.Add(requestID, callback);
     AGSLeaderboardsClient.RequestScores(leaderboard.id, fromTimeScope(leaderboard.timeScope), requestID++);
 }
Beispiel #6
0
 public void RequestScores(AGSSocialLeaderboard leaderboard, Action<bool> callback)
 {
     leaderboardForRequest.Add (requestID, leaderboard);
     simpleCallbacks.Add (requestID, callback);
     AGSLeaderboardsClient.RequestScores (leaderboard.id, fromTimeScope (leaderboard.timeScope), requestID++);
 }
Beispiel #7
0
 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();
    }