Example #1
0
        public static void GetSongInfo()
        {
            var mainGameSceneSetupData = Resources.FindObjectsOfTypeAll <MainGameSceneSetupData>().First();
            var playerLevelStatsData   = PersistentSingleton <GameDataModel> .instance.gameDynamicData.GetCurrentPlayerDynamicData().GetPlayerLevelStatsData(mainGameSceneSetupData.difficultyLevel.level.levelID, mainGameSceneSetupData.difficultyLevel.difficulty, mainGameSceneSetupData.gameplayMode);

            //Get notes count
            noteCount = mainGameSceneSetupData.difficultyLevel.beatmapData.notesCount;

            //Get Player Score
            localHighScore = playerLevelStatsData.validScore ? playerLevelStatsData.highScore : 0;

            //If we couldn't grab a local score, we'll try to grab one from the leaderboards
            if (localHighScore == 0)
            {
                string leaderboardID = LeaderboardsModel.GetLeaderboardID(mainGameSceneSetupData.difficultyLevel, mainGameSceneSetupData.gameplayMode);
                if (_asyncRequest != null)
                {
                    _asyncRequest.Cancel();
                }
                _asyncRequest = new HMAsyncRequest();

                //Note: I'm leaving "around" as 10 intentionally so that this "looks" like a normal score request
                //Don't judge. Old habits die hard.
                PersistentSingleton <PlatformLeaderboardsModel> .instance.GetScoresAroundPlayer(leaderboardID, 10, _asyncRequest, LeaderboardsResultsReturned);
            }
            CalculatePercentage();
        }
        public override void GetPlayerId(HMAsyncRequest asyncRequest, LeaderboardsModel.GetPlayerIdCompletionHandler completionHandler)
        {
            Request <User> oculusRequest = Users.GetLoggedInUser().OnComplete(delegate(Message <User> message)
            {
                if (!this.CheckMessageForValidRequest(message))
                {
                    return;
                }
                if (message.IsError)
                {
                    if (completionHandler != null)
                    {
                        completionHandler(LeaderboardsModel.GetPlayerIdResult.Failed, null);
                    }
                }
                else
                {
                    string playerId = message.Data.ID.ToString();

                    string playerName = message.Data.OculusID;
                    Global.playerId   = playerId;
                    Global.playerName = playerName;
                    if (completionHandler != null)
                    {
                        completionHandler(LeaderboardsModel.GetPlayerIdResult.OK, playerId);
                    }
                }
            });

            this.AddOculusRequest(oculusRequest, asyncRequest);
        }
        public override void UploadScore(string leaderboadId, int score, HMAsyncRequest asyncRequest, LeaderboardsModel.UploadScoreCompletionHandler completionHandler)
        {
            try
            {
                if (leaderboadId.Contains("∎"))
                {
                    string text = "lb_" + leaderboadId;

                    this.PrepareCustomScore(text, score);
                    if (completionHandler != null)
                    {
                        completionHandler(LeaderboardsModel.UploadScoreResult.OK);
                    }

                    return;
                }
                else
                {
                    base.UploadScore(leaderboadId, score, asyncRequest, completionHandler);
                }
            }
            catch (Exception ex)
            {
                Log(ex.ToString());
            }
        }
        public override void UploadScore(string leaderboadId, int score, HMAsyncRequest asyncRequest, LeaderboardsModel.UploadScoreCompletionHandler completionHandler)
        {
            try
            {
                if (leaderboadId.Contains("∎"))
                {
                    string text = "lb_" + leaderboadId;
                    this.PrepareCustomScore(text, score);
                    if (completionHandler != null)
                    {
                        completionHandler(LeaderboardsModel.UploadScoreResult.OK);
                    }

                    return;
                }
                else
                {
                    CallNonStaticFunctionDynamically("OculusPlatformLeaderboardsHandler", "Assembly-CSharp", "UploadScore",
                                                     new Type[] { typeof(string), typeof(int), typeof(HMAsyncRequest), typeof(LeaderboardsModel.UploadScoreCompletionHandler) },
                                                     new object[] { leaderboadId, score, asyncRequest, completionHandler });
                }
            }
            catch (Exception ex)
            {
                Global.Log(ex.ToString());
            }
        }
 public override void UploadScore(string leaderboadId, int score, HMAsyncRequest asyncRequest, PlatformLeaderboardsModel.UploadScoreCompletionHandler completionHandler)
 {
     try
     {
         if (leaderboadId.Contains("∎"))
         {
             string text = "lb_" + leaderboadId;
             this.PrepareCustomScore(text, score, completionHandler);
             return;
         }
         else
         {
             base.UploadScore(leaderboadId, score, asyncRequest, completionHandler);
         }
     }
     catch (Exception ex)
     {
         FailScoreCompletionHandler(completionHandler);
         FailLog(ex);
     }
 }
 public override void UploadScore(string leaderboadId, int score, HMAsyncRequest asyncRequest, PlatformLeaderboardsModel.UploadScoreCompletionHandler completionHandler)
 {
     try
     {
         if (leaderboadId.Contains("∎"))
         {
             string text = "lb_" + leaderboadId;
             this.PrepareCustomScore(text, score, completionHandler);
             return;
         }
         else
         {
             base.UploadScore(leaderboadId, score, asyncRequest, completionHandler);
             //CallNonStaticFunctionDynamically("OculusPlatformLeaderboardsHandler", "Assembly-CSharp", "UploadScore",
             //   new Type[] { typeof(string), typeof(int), typeof(HMAsyncRequest), typeof(PlatformLeaderboardsModel.UploadScoreCompletionHandler) },
             //          new object[] { leaderboadId, score, asyncRequest, completionHandler });
         }
     }
     catch (Exception ex)
     {
         FailLog(ex);
         FailScoreCompletionHandler(completionHandler);
     }
 }
        public IEnumerator GetScoreRoutine(string url, LeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequestd, Action <byte[], LeaderboardsModel.GetScoresCompletionHandler, string, HMAsyncRequest> callback)
        {
            using (var www = new WWW(url))
            {
                yield return(www);

                callback.Invoke(www.bytes, completionHandler, leaderboadID, asyncRequestd);
            }
        }
        public static void GetScore(string url, LeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequestd, Action <byte[], LeaderboardsModel.GetScoresCompletionHandler, string, HMAsyncRequest> callback)
        {
            if (_instance == null)
            {
                _instance = new GameObject("temp").AddComponent <GetCustomScoreBehaviour>();
            }

            _instance.StartCoroutine(_instance.GetScoreRoutine(url, completionHandler, leaderboadID, asyncRequestd, callback));
        }
 private void FailCompletionHandler(PlatformLeaderboardsModel.GetScoresCompletionHandler handler, HMAsyncRequest request)
 {
     if (request != null)
     {
         if (handler != null)
         {
             handler(PlatformLeaderboardsModel.GetScoresResult.Failed, new PlatformLeaderboardsModel.LeaderboardScore[0], 0);
         }
     }
 }
 private void OkCompletionHandler(PlatformLeaderboardsModel.GetScoresCompletionHandler handler, PlatformLeaderboardsModel.LeaderboardScore[] leaders, int playerScoreIndex, HMAsyncRequest request)
 {
     if (request != null)
     {
         if (handler != null)
         {
             handler(PlatformLeaderboardsModel.GetScoresResult.OK, leaders.ToArray(), playerScoreIndex);
         }
     }
 }
        private void OnGetScore(byte[] data, PlatformLeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequest)
        {
            string scoreData = System.Text.Encoding.UTF8.GetString(data);

            bool cancelRequest = false;

            if (asyncRequest != null)
            {
                asyncRequest.CancelHandler = delegate(HMAsyncRequest request)
                {
                    cancelRequest = true;
                };
            }
            int playerScoreIndex = -1;
            List <PlatformLeaderboardsModel.LeaderboardScore> leaders = PassLeaderBoardInfo(scoreData, ref playerScoreIndex);

            if (leaders.Count > 0)
            {
                if (cancelRequest == false)
                {
                    OkCompletionHandler(completionHandler, leaders.ToArray(), playerScoreIndex, asyncRequest);
                }
                else
                {
                    FailCompletionHandler(completionHandler, asyncRequest);
                }
            }
            else
            {
                FailCompletionHandler(completionHandler, asyncRequest);
            }
        }
        public override void GetScores(string leaderboadId, int count, int fromRank, PlatformLeaderboardsModel.ScoresScope scope, string referencePlayerId, HMAsyncRequest asyncRequest, PlatformLeaderboardsModel.GetScoresCompletionHandler completionHandler)
        {
            if (leaderboadId.Contains("∎"))
            {
                leaderboadId = FormatLeaderBoard(leaderboadId);

                switch (scope)
                {
                case PlatformLeaderboardsModel.ScoresScope.AroundPlayer:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/a0461a2eac6bb4d1ba0b0e976e9740ac.php?id=" + leaderboadId + "&steamId=" + Global.playerId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case PlatformLeaderboardsModel.ScoresScope.Global:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/a0461a2eac6bb4d1ba0b0e976e9740ac.php?id=" + leaderboadId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;
                }
            }
            else
            {
                base.GetScores(leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler);
                //CallNonStaticFunctionDynamically("OculusPlatformLeaderboardsHandler", "Assembly-CSharp", "GetScores",
                //         new Type[] { typeof(string), typeof(int), typeof(int), typeof(PlatformLeaderboardsModel.ScoresScope),
                //                typeof(string), typeof(HMAsyncRequest), typeof(PlatformLeaderboardsModel.GetScoresCompletionHandler) },
                //               new object[] { leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler });
            }
        }
        public override void GetScores(string leaderboadId, int count, int fromRank, LeaderboardsModel.ScoresScope scope, string referencePlayerId, HMAsyncRequest asyncRequest, LeaderboardsModel.GetScoresCompletionHandler completionHandler)
        {
            if (leaderboadId.Contains("∎"))
            {
                leaderboadId = FormatLeaderBoard(leaderboadId);

                switch (scope)
                {
                case LeaderboardsModel.ScoresScope.AroundPlayer:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId + "&steamId=" + SteamUser.GetSteamID().m_SteamID.ToString(), completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case LeaderboardsModel.ScoresScope.Global:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;
                }
            }
            else
            {
                base.GetScores(leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler);
            }
        }
        public override void GetScores(string leaderboadId, int count, int fromRank, LeaderboardsModel.ScoresScope scope, string referencePlayerId, HMAsyncRequest asyncRequest, LeaderboardsModel.GetScoresCompletionHandler completionHandler)
        {
            var leaderBoardsModel = PersistentSingleton <LeaderboardsModel> .instance;

            if (leaderboadId.Contains("∎"))
            {
                leaderboadId = FormatLeaderBoard(leaderboadId);

                switch (scope)
                {
                case LeaderboardsModel.ScoresScope.AroundPlayer:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId + "&steamId=" + Global.playerId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case LeaderboardsModel.ScoresScope.Global:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;
                }
            }
            else
            {
                try
                {
                    CallNonStaticFunctionDynamically("OculusPlatformLeaderboardsHandler", "Assembly-CSharp", "GetScores",
                                                     new Type[] { typeof(string), typeof(int), typeof(int), typeof(LeaderboardsModel.ScoresScope),
                                                                  typeof(string), typeof(HMAsyncRequest), typeof(LeaderboardsModel.GetScoresCompletionHandler) },
                                                     new object[] { leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler });
                }
                catch (Exception ex)
                {
                    Global.Log(ex.ToString());
                }
            }
        }
 public override void GetPlayerId(HMAsyncRequest asyncRequest, LeaderboardsModel.GetPlayerIdCompletionHandler completionHandler)
 {
     CallNonStaticFunctionDynamically("OculusPlatformLeaderboardsHandler", "Assembly-CSharp", "GetPlayerId",
                                      new Type[] { typeof(HMAsyncRequest), typeof(LeaderboardsModel.GetScoresCompletionHandler) },
                                      new object[] { asyncRequest, completionHandler });
 }