public static AGSRequestLeaderboardsResponse GetBlankResponseWithError(string error, int userData = 0)
 {
     AGSRequestLeaderboardsResponse response = new AGSRequestLeaderboardsResponse ();
     response.error = error;
     response.userData = userData;
     response.leaderboards = new List<AGSLeaderboard>();
     return response;
 }
Beispiel #2
0
    public static AGSRequestLeaderboardsResponse GetBlankResponseWithError(string error, int userData = 0)
    {
        AGSRequestLeaderboardsResponse response = new AGSRequestLeaderboardsResponse();

        response.error        = error;
        response.userData     = userData;
        response.leaderboards = new List <AGSLeaderboard>();
        return(response);
    }
    /// <summary>
    ///  callback method for native code to communicate events back to unity
    /// </summary>
    public static void RequestLeaderboardsSucceeded(string json)
    {
        AGSRequestLeaderboardsResponse response = AGSRequestLeaderboardsResponse.FromJSON(json);

        if (!response.IsError() && RequestLeaderboardsSucceededEvent != null)
        {
            RequestLeaderboardsSucceededEvent(response.leaderboards);
        }
        if (RequestLeaderboardsCompleted != null)
        {
            RequestLeaderboardsCompleted(response);
        }
    }
    /// <summary>
    /// request all leaderboards for this game
    /// </summary>
    /// <remarks>
    /// RequestLeaderboardsCompleted will be called if the event is registered.
    /// </remarks>
    /// <param name="userData">
    /// ANDROID ONLY
    /// An optional code that will be returned in the response. Used to associate a function call to its response.
    /// A value of 0 is not recommended because 0 is the value returned when userData is not specified.
    /// </param>
    public static void RequestLeaderboards(int userData = 0)
    {
#if UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS)
        // GameCircle only functions on device.
#elif UNITY_ANDROID
        JavaObject.Call("requestLeaderboards", 0);
#else
        AGSRequestLeaderboardsResponse response = AGSRequestLeaderboardsResponse.GetPlatformNotSupportedResponse(userData);
        if (RequestLeaderboardsFailedEvent != null)
        {
            RequestLeaderboardsFailedEvent(response.error);
        }
        if (RequestLeaderboardsCompleted != null)
        {
            RequestLeaderboardsCompleted(response);
        }
#endif
    }
 public static AGSRequestLeaderboardsResponse FromJSON(string json)
 {
     try {
         AGSRequestLeaderboardsResponse response = new AGSRequestLeaderboardsResponse ();
         Hashtable hashtable = json.hashtableFromJson();
         response.error = hashtable.ContainsKey("error") ? hashtable ["error"].ToString () : "";
         response.userData = hashtable.ContainsKey("userData") ? int.Parse(hashtable ["userData"].ToString ()) : 0;
         response.leaderboards = new List<AGSLeaderboard>();
         if (hashtable.ContainsKey("leaderboards")) {
             foreach (Hashtable leaderboardHashtable in hashtable["leaderboards"] as ArrayList) {
                 response.leaderboards.Add(AGSLeaderboard.fromHashtable(leaderboardHashtable));
             }
         }
         return response;
     } catch (Exception e) {
         AGSClient.LogGameCircleError(e.ToString());
         return GetBlankResponseWithError(JSON_PARSE_ERROR);
     }
 }
Beispiel #6
0
 public static AGSRequestLeaderboardsResponse FromJSON(string json)
 {
     try {
         AGSRequestLeaderboardsResponse response = new AGSRequestLeaderboardsResponse();
         Hashtable hashtable = json.hashtableFromJson();
         response.error        = hashtable.ContainsKey("error") ? hashtable ["error"].ToString() : "";
         response.userData     = hashtable.ContainsKey("userData") ? int.Parse(hashtable ["userData"].ToString()) : 0;
         response.leaderboards = new List <AGSLeaderboard>();
         if (hashtable.ContainsKey("leaderboards"))
         {
             foreach (Hashtable leaderboardHashtable in hashtable["leaderboards"] as ArrayList)
             {
                 response.leaderboards.Add(AGSLeaderboard.fromHashtable(leaderboardHashtable));
             }
         }
         return(response);
     } catch (Exception e) {
         AGSClient.LogGameCircleError(e.ToString());
         return(GetBlankResponseWithError(JSON_PARSE_ERROR));
     }
 }
Beispiel #7
0
    private void OnRequestLeaderboardsCompleted(AGSRequestLeaderboardsResponse response)
    {
        if (response.IsError())
        {
            AMN_RequestLeaderboardsResult result = new AMN_RequestLeaderboardsResult(response.error);

            OnRequestLeaderboardsReceived(result);
        }
        else
        {
            Leaderboards.Clear();
            foreach (AGSLeaderboard lb in response.leaderboards)
            {
                Leaderboards.Add(new GC_Leaderboard(lb));
            }

            AMN_RequestLeaderboardsResult result = new AMN_RequestLeaderboardsResult(Leaderboards);

            OnRequestLeaderboardsReceived(result);
        }
    }
 private void OnRequestLeaderboardsCompleted( AGSRequestLeaderboardsResponse response )
 {
     if (response.IsError ()) {
         // Update the status message to show the error.
         requestLeaderboardsStatus = requestLeaderboardsFailedLabel;
         requestLeaderboardsStatusMessage = response.error;
     } else {
         // Update the status message to show the request has succeeded.
         requestLeaderboardsStatus = requestLeaderboardsSucceededLabel;
         // Store the list of leaderboards.
         leaderboardList = response.leaderboards;
         // Mark the leaderboards as ready for use.
         // This bool is used instead of checking if the leaderboard list is null,
         // because the passed in leaderboard list can be null.
         // In that case, the menu should update to show that leaderboards were received, but empty.
         leaderboardsReady = true;
     }
 }