public static AGSRequestPercentilesResponse FromJSON(string json)
 {
     try {
         AGSRequestPercentilesResponse response = new AGSRequestPercentilesResponse();
         Hashtable hashtable = json.hashtableFromJson();
         response.error         = hashtable.ContainsKey("error") ? hashtable ["error"].ToString() : "";
         response.userData      = hashtable.ContainsKey("userData") ? int.Parse(hashtable ["userData"].ToString()) : 0;
         response.leaderboardId = hashtable.ContainsKey("leaderboardId") ? hashtable ["leaderboardId"].ToString() : "";
         if (hashtable.ContainsKey("leaderboard"))
         {
             response.leaderboard = AGSLeaderboard.fromHashtable(hashtable ["leaderboard"] as Hashtable);
         }
         else
         {
             response.leaderboard = AGSLeaderboard.GetBlankLeaderboard();
         }
         response.percentiles = new List <AGSLeaderboardPercentile> ();
         if (hashtable.Contains("percentiles"))
         {
             foreach (Hashtable percentileHashtable in hashtable["percentiles"] as ArrayList)
             {
                 response.percentiles.Add(AGSLeaderboardPercentile.fromHashTable(percentileHashtable));
             }
         }
         response.userIndex = hashtable.ContainsKey("userIndex") ? int.Parse(hashtable ["userIndex"].ToString()) : -1;
         response.scope     = (LeaderboardScope)Enum.Parse(typeof(LeaderboardScope), hashtable["scope"].ToString());
         return(response);
     } catch (Exception e) {
         AGSClient.LogGameCircleError(e.ToString());
         return(GetBlankResponseWithError(JSON_PARSE_ERROR));
     }
 }
 public static AGSRequestPercentilesResponse FromJSON(string json)
 {
     try {
         AGSRequestPercentilesResponse response = new AGSRequestPercentilesResponse ();
         Hashtable hashtable = json.hashtableFromJson();
         response.error = hashtable.ContainsKey("error") ? hashtable ["error"].ToString () : "";
         response.userData = hashtable.ContainsKey("userData") ? int.Parse(hashtable ["userData"].ToString ()) : 0;
         response.leaderboardId = hashtable.ContainsKey("leaderboardId") ? hashtable ["leaderboardId"].ToString() : "";
         if (hashtable.ContainsKey("leaderboard")) {
             response.leaderboard = AGSLeaderboard.fromHashtable (hashtable ["leaderboard"] as Hashtable);
         } else {
             response.leaderboard = AGSLeaderboard.GetBlankLeaderboard();
         }
         response.percentiles = new List<AGSLeaderboardPercentile> ();
         if (hashtable.Contains ("percentiles")) {
             foreach (Hashtable percentileHashtable in hashtable ["percentiles"] as ArrayList) {
                 response.percentiles.Add(AGSLeaderboardPercentile.fromHashTable(percentileHashtable));
             }
         }
         response.userIndex = hashtable.ContainsKey ("userIndex") ? int.Parse (hashtable ["userIndex"].ToString ()) : -1;
         response.scope = (LeaderboardScope) Enum.Parse(typeof(LeaderboardScope), hashtable["scope"].ToString());
         return response;
     } catch (Exception e) {
         AGSClient.LogGameCircleError(e.ToString());
         return GetBlankResponseWithError(JSON_PARSE_ERROR);
     }
 }
Exemplo n.º 3
0
    /// <summary>
    /// callback method for native code to communicate events back to unity
    /// </summary>
    public static void RequestPercentileRanksSucceeded(string json)
    {
        AGSRequestPercentilesResponse response = AGSRequestPercentilesResponse.FromJSON(json);

        if (!response.IsError() && RequestPercentileRanksSucceededEvent != null)
        {
            RequestPercentileRanksSucceededEvent(response.leaderboard, response.percentiles, response.userIndex);
        }
        if (RequestPercentileRanksCompleted != null)
        {
            RequestPercentileRanksCompleted(response);
        }
    }
Exemplo n.º 4
0
    /// <summary>
    /// callback method for native code to communicate events back to unity
    /// </summary>
    public static void RequestPercentileRanksFailed(string json)
    {
        AGSRequestPercentilesResponse response = AGSRequestPercentilesResponse.FromJSON(json);

        if (response.IsError() && RequestPercentileRanksFailedEvent != null)
        {
            RequestPercentileRanksFailedEvent(response.leaderboardId, response.error);
        }
        if (RequestPercentileRanksCompleted != null)
        {
            RequestPercentileRanksCompleted(response);
        }
    }
 public static AGSRequestPercentilesResponse GetBlankResponseWithError(string error,
                                                                       string leaderboardId = "",
                                                                       LeaderboardScope scope = LeaderboardScope.GlobalAllTime,
                                                                       int userData = 0)
 {
     AGSRequestPercentilesResponse response = new AGSRequestPercentilesResponse ();
     response.error = error;
     response.userData = userData;
     response.leaderboardId = leaderboardId;
     response.scope = scope;
     response.leaderboard = AGSLeaderboard.GetBlankLeaderboard ();
     response.percentiles = new List<AGSLeaderboardPercentile>();
     response.userIndex = -1;
     response.scope = scope;
     return response;
 }
    public static AGSRequestPercentilesResponse GetBlankResponseWithError(string error,
                                                                          string leaderboardId   = "",
                                                                          LeaderboardScope scope = LeaderboardScope.GlobalAllTime,
                                                                          int userData           = 0)
    {
        AGSRequestPercentilesResponse response = new AGSRequestPercentilesResponse();

        response.error         = error;
        response.userData      = userData;
        response.leaderboardId = leaderboardId;
        response.scope         = scope;
        response.leaderboard   = AGSLeaderboard.GetBlankLeaderboard();
        response.percentiles   = new List <AGSLeaderboardPercentile>();
        response.userIndex     = -1;
        response.scope         = scope;
        return(response);
    }
Exemplo n.º 7
0
    /// <summary>
    /// request percentile ranks
    /// </summary>
    /// <remarks>
    /// RequestPercentileRanksCompleted will be called if the event is registered.
    /// </remarks>
    /// <param name="leaderboardId">the id of the leaderboard for the score request.</param>
    /// <param name="scope">enum value of leaderboard scope</param>
    /// <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 RequestPercentileRanks(string leaderboardId, LeaderboardScope scope, int userData = 0)
    {
#if UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS)
        // GameCircle only functions on device.
#elif UNITY_ANDROID
        JavaObject.Call("requestPercentileRanks", leaderboardId, (int)scope, userData);
#else
        AGSRequestPercentilesResponse response = AGSRequestPercentilesResponse.GetPlatformNotSupportedResponse(leaderboardId, scope, userData);
        if (RequestPercentileRanksFailedEvent != null)
        {
            RequestPercentileRanksFailedEvent(response.leaderboardId, response.error);
        }
        if (RequestPercentileRanksCompleted != null)
        {
            RequestPercentileRanksCompleted(response);
        }
#endif
    }
 private void OnRequestPercentileRanksCompleted( AGSRequestPercentilesResponse response )
 {
     if (response.IsError ()) {
         // Update the percentiles request status message to show the error that occured.
         List<string> failureStringContainer = new List<string>();
         failureStringContainer.Add(string.Format(percentilesFailed, response.leaderboardId));
         leaderboardsPercentilesStatus[response.leaderboardId] = failureStringContainer;
         leaderboardsPercentilesStatusMessage[response.leaderboardId] = response.error;
     } else {
         // Format the response into human readable strings.
         List<string> formattedResult = new List<string>();
         foreach (AGSLeaderboardPercentile percentile in response.percentiles){
             formattedResult.Add(string.Format(percentileRankLabel, percentile.player.ToString(), percentile.percentile, percentile.score));
         }
         formattedResult.Add(string.Format(localPlayerIndexLabel, response.userIndex));
         // Update the status for the percentile response.
         leaderboardsPercentilesStatus[response.leaderboardId] = formattedResult;
     }
 }