Пример #1
0
 public new static AGSRequestPercentilesForPlayerResponse FromJSON(string json)
 {
     try {
         AGSRequestPercentilesForPlayerResponse response = new AGSRequestPercentilesForPlayerResponse();
         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());
         response.playerId  = hashtable.ContainsKey("playerId") ? hashtable ["playerId"].ToString() : "";
         return(response);
     } catch (Exception e) {
         AGSClient.LogGameCircleError(e.ToString());
         return(GetBlankResponseWithError(JSON_PARSE_ERROR));
     }
 }
Пример #2
0
 public static AGSLeaderboardPercentile fromHashTable( Hashtable percentilesHashtable )
 {
     AGSLeaderboardPercentile leaderboardPercentile = new AGSLeaderboardPercentile();
     try {
         leaderboardPercentile.percentile = int.Parse(percentilesHashtable[percentileKey].ToString());
         leaderboardPercentile.score = long.Parse(percentilesHashtable[scoreKey].ToString());
     } catch (FormatException e){
         AGSClient.Log ("Unable to parse percentile item " + e.Message);
     }
     leaderboardPercentile.player = AGSPlayer.fromHashtable(percentilesHashtable[playerKey] as Hashtable);
     return leaderboardPercentile;
 }
    public static AGSLeaderboardPercentile fromHashTable(Hashtable percentilesHashtable)
    {
        AGSLeaderboardPercentile leaderboardPercentile = new AGSLeaderboardPercentile();

        try {
            leaderboardPercentile.percentile = int.Parse(percentilesHashtable[percentileKey].ToString());
            leaderboardPercentile.score      = long.Parse(percentilesHashtable[scoreKey].ToString());
        } catch (FormatException e) {
            AGSClient.Log("Unable to parse percentile item " + e.Message);
        }
        leaderboardPercentile.player = AGSPlayer.fromHashtable(percentilesHashtable[playerKey] as Hashtable);
        return(leaderboardPercentile);
    }
Пример #4
0
    /// <summary>
    /// callback method for native code to communicate events back to unity
    /// </summary>
    public static void RequestPercentileRanksSucceeded(string json)
    {
        if (RequestPercentileRanksSucceededEvent != null)
        {
            var            ht          = json.hashtableFromJson();
            AGSLeaderboard leaderboard = AGSLeaderboard.fromHashtable(ht["leaderboard"] as Hashtable);
            var            arrayList   = (ht["percentiles"] as ArrayList);

            List <AGSLeaderboardPercentile> percentiles = new List <AGSLeaderboardPercentile>();
            foreach (Hashtable pht in arrayList)
            {
                percentiles.Add(AGSLeaderboardPercentile.fromHashTable(pht));
            }

            int localPlayerIndex = int.Parse(ht["localPlayerIndex"].ToString());


            RequestPercentileRanksSucceededEvent(leaderboard, percentiles, localPlayerIndex);
        }
    }