예제 #1
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);
    }
예제 #2
0
    /// <summary>
    ///  callback method for native code to communicate events back to unity
    /// </summary>
    public static void RequestLocalPlayerScoreSucceeded(string json)
    {
        AGSRequestScoreResponse response = AGSRequestScoreResponse.FromJSON(json);

        if (!response.IsError() && RequestLocalPlayerScoreSucceededEvent != null)
        {
            RequestLocalPlayerScoreSucceededEvent(response.leaderboardId, response.rank, response.score);
        }
        if (RequestLocalPlayerScoreCompleted != null)
        {
            RequestLocalPlayerScoreCompleted(response);
        }
    }
예제 #3
0
 public static AGSRequestScoreResponse GetBlankResponseWithError(string error,
                                                                  string leaderboardId = "",
                                                                  LeaderboardScope scope = LeaderboardScope.GlobalAllTime,
                                                                  int userData = 0)
 {
     AGSRequestScoreResponse response = new AGSRequestScoreResponse ();
     response.error = error;
     response.userData = userData;
     response.leaderboardId = leaderboardId;
     response.scope = scope;
     response.rank = -1;
     response.score = -1;
     return response;
 }
예제 #4
0
    public static AGSRequestScoreResponse GetBlankResponseWithError(string error,
                                                                    string leaderboardId   = "",
                                                                    LeaderboardScope scope = LeaderboardScope.GlobalAllTime,
                                                                    int userData           = 0)
    {
        AGSRequestScoreResponse response = new AGSRequestScoreResponse();

        response.error         = error;
        response.userData      = userData;
        response.leaderboardId = leaderboardId;
        response.scope         = scope;
        response.rank          = -1;
        response.score         = -1;
        return(response);
    }
예제 #5
0
 public static AGSRequestScoreResponse FromJSON(string json)
 {
     try {
         AGSRequestScoreResponse response = new AGSRequestScoreResponse ();
         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() : "";
         response.rank = hashtable.ContainsKey ("rank") ? int.Parse (hashtable ["rank"].ToString ()) : -1;
         response.score = hashtable.ContainsKey ("score") ? long.Parse (hashtable ["score"].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);
     }
 }
예제 #6
0
 public static AGSRequestScoreResponse FromJSON(string json)
 {
     try {
         AGSRequestScoreResponse response = new AGSRequestScoreResponse();
         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() : "";
         response.rank          = hashtable.ContainsKey("rank") ? int.Parse(hashtable ["rank"].ToString()) : -1;
         response.score         = hashtable.ContainsKey("score") ? long.Parse(hashtable ["score"].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));
     }
 }
예제 #7
0
    /// <summary>
    /// request current player's score for a given leaderboad and scope
    /// </summary>
    /// <remarks>
    /// RequestLocalPlayerScoreCompleted will be called if the event is registered.
    /// </remarks>
    /// <param name="leaderboardId">the id of the leaderboard for the score request</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 RequestLocalPlayerScore(string leaderboardId, LeaderboardScope scope, int userData = 0)
    {
#if UNITY_EDITOR && (UNITY_ANDROID || UNITY_IOS)
        // GameCircle only functions on device.
#elif UNITY_ANDROID
        JavaObject.Call("requestLocalPlayerScore", leaderboardId, (int)scope, 0);
#else
        AGSRequestScoreResponse response = AGSRequestScoreResponse.GetPlatformNotSupportedResponse(leaderboardId, scope, userData);
        if (RequestLocalPlayerScoreFailedEvent != null)
        {
            RequestLocalPlayerScoreFailedEvent(response.leaderboardId, response.error);
        }
        if (RequestLocalPlayerScoreCompleted != null)
        {
            RequestLocalPlayerScoreCompleted(response);
        }
#endif
    }
예제 #8
0
    private void OnLocalPlayerScoresLoaded(AGSRequestScoreResponse response)
    {
        AMN_LocalPlayerScoreLoadedResult result = null;

        if (response.IsError())
        {
            Debug.Log("[OnLocalPlayerScoresLoaded] error " + response.error);
            result = new AMN_LocalPlayerScoreLoadedResult(response.leaderboardId, response.scope.GetGCTimeSpan(), response.error);
        }
        else
        {
            Debug.Log("[OnLocalPlayerScoresLoaded] success " + response.rank + " " + response.score);
            result = new AMN_LocalPlayerScoreLoadedResult(response.leaderboardId, response.scope.GetGCTimeSpan(), response.rank, response.score);

            GC_Leaderboard leaderboard = GetLeaderboard(response.leaderboardId);
            if (leaderboard != null)
            {
                GC_Score score = new GC_Score(SA_AmazonGameCircleManager.Instance.Player.PlayerId, response.leaderboardId, response.rank, response.score, response.scope.GetGCTimeSpan());
                leaderboard.UpdateCurrentPlayerScore(score);
            }
        }

        OnLocalPlayerScoreLoaded(result);
    }
 private void OnRequestLocalPlayerScoreCompleted( AGSRequestScoreResponse response )
 {
     if (response.IsError()){
         // Update the local score request status message to show the error that occured.
         leaderboardsLocalScoreStatus[response.leaderboardId] = string.Format(leaderboardScoreFailed, response.leaderboardId);
         leaderboardsLocalScoreStatusMessage[response.leaderboardId] = response.error;
     } else {
         // Update the local score request status to show that the local score request has succeeded,
         // and update the message with the local score and rank.
         leaderboardsLocalScoreStatus[response.leaderboardId] = string.Format(leaderboardRankScoreLabel, response.rank, response.score);
     }
 }
예제 #10
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);
 }