public void InitUI(PlayerRankingModel _playerRankingModel, int index)
 {
     m_playerRankingModel = _playerRankingModel;
     lbRank.text          = (index + 1).ToString();
     lbFbName.text        = _playerRankingModel.user_name;
     lbScore.text         = _playerRankingModel.score.ToString();
     InitAvatar();
 }
Exemplo n.º 2
0
        /// <summary>
        /// Update local current ranking for this user after playing any level/song
        /// </summary>
        /// <param name="pModel"></param>
        public void UpdateLevelRanking(PlayerRankingModel pModel)
        {
            bool isNewPlayThisSong = true;

            if (dic_player_rank == null)
            {
                dic_player_rank = new Dictionary <string, List <PlayerRankingModel> >();
            }

            List <PlayerRankingModel> listpModel;

            //try to get level ranking for specified song
            if (dic_player_rank.TryGetValue(pModel.song_id, out listpModel))
            {
                //if success, browse all level ranking record for that song
                for (int i = 0; i < listpModel.Count; i++)
                {
                    //and update record of this user
                    //REMOVE FB
                    //if (listpModel[i].user_id == AccessToken.CurrentAccessToken.UserId) {
                    //    isNewPlayThisSong = false;
                    //    if (listpModel[i].score < pModel.score)
                    //        listpModel[i] = pModel;

                    //    break;
                    //}
                }
                //if there is no record for this user, add a new one
                if (isNewPlayThisSong)
                {
                    listpModel.Add(pModel);
                }

                //finally, rank them
                listpModel.Sort(new PlayerRankingComparer());
            }
            else
            {
                //if there is no ranking for this song, create a new one
                listpModel = new List <PlayerRankingModel>();
                listpModel.Add(pModel);
                dic_player_rank[pModel.song_id] = listpModel;
            }

            //Debug.Log("refect : " + listpModel);
            //if (listpModel == null) {
            //    //Debug.Log("refacr null : ");
            //    listpModel = new List<PlayerRankingModel>();
            //    listpModel.Add(pModel);
            //    dic_player_rank[pModel.song_id] = listpModel;
            //}
            //else {
            //    for (int i = 0; i < listpModel.Count; i++) {
            //        if (listpModel[i].user_id == AccessToken.CurrentAccessToken.UserId ) {
            //            //Debug.Log("add: " + pModel.user_name);
            //            isNewPlayThisSong = false;
            //            if(listpModel[i].score < pModel.score)
            //                listpModel[i] = pModel;
            //        }
            //    }
            //    if (isNewPlayThisSong)
            //        listpModel.Add(pModel);
            //    listpModel.Sort(new SortInSong());
            //}
            //MessageBus.Annouce(new Message(MessageBusType.CompletedLevelRanking));
        }
Exemplo n.º 3
0
        private IEnumerator <float> C_PushCurrentHighScore(PlayerRankingModel pModel)
        {
            yield return(0);
            //ParseQuery<ParseObject> query = ParseObject.GetQuery(GameConsts.PT_LEVEL_RANKING).WhereEqualTo(GameConsts.PK_USER_ID, pModel.user_id);
            //query.Select(GameConsts.PK_USER_ID);
            //query.Select(GameConsts.PK_LEVELRANKING_CONTENT);

            ////get first record for level ranking
            //var q = query.FirstAsync();

            //while (!q.IsCanceled && !q.IsCompleted && !q.IsFaulted) {
            //    Debug.Log("Querying...");
            //    yield return Timing.WaitForSeconds(0.25f);
            //}

            //Debug.Log("isCancelled: " + q.IsCanceled);
            //if (q.IsFaulted) {
            //    //Debug.LogError("Error querying level ranking: " + q.Exception);
            //    foreach (var ex in q.Exception.InnerExceptions) {
            //        //Debug.LogError("Error querying level ranking: " + ex);
            //        if (ex.ToString().Contains("No results matched")) {
            //            List<PlayerRankingModel> listplayer;
            //            //Debug.Log("insert du lieu:");
            //            // khong co du lieu ghi moi vao
            //            ParseObject rankLevel = new ParseObject(GameConsts.PT_LEVEL_RANKING);
            //            rankLevel[GameConsts.PK_USER_ID] = pModel.user_id;
            //            listplayer = new List<PlayerRankingModel>();
            //            listplayer.Add(pModel);
            //            fsData dataPlayer = null;
            //            //string json = "";
            //            FileUtilities.JSONSerializer.TrySerialize<List<PlayerRankingModel>>(listplayer, out dataPlayer);
            //            rankLevel[GameConsts.PK_LEVELRANKING_CONTENT] = dataPlayer.ToString();
            //            rankLevel.SaveAsync();
            //            yield break;
            //        }
            //    }
            //}
            ////List<ParseObject> listParse = new List<ParseObject>();

            //if (q.IsCompleted) {
            //    Debug.Log("Query completed");
            //    ParseObject obj = q.Result;
            //    List<PlayerRankingModel> listplayer;
            //    if (obj == null)// khong co -> ghi du lieu moi len parse
            //    {
            //        Debug.Log("insert du lieu:");
            //        // khong co du lieu ghi moi vao
            //        ParseObject rankLevel = new ParseObject(GameConsts.PT_LEVEL_RANKING);
            //        rankLevel[GameConsts.PK_USER_ID] = pModel.user_id;
            //        listplayer = new List<PlayerRankingModel>();
            //        listplayer.Add(pModel);
            //        fsData dataPlayer = null;
            //        //string json = "";
            //        FileUtilities.JSONSerializer.TrySerialize<List<PlayerRankingModel>>(listplayer, out dataPlayer);
            //        rankLevel[GameConsts.PK_LEVELRANKING_CONTENT] = dataPlayer.ToString();
            //        rankLevel.SaveAsync();
            //    }
            //    else {
            //        Debug.Log("update du lieu:");
            //        ParseObject rankLevel = obj;
            //        //string contentOld = "";
            //        string oldName = "";
            //        if (rankLevel.ContainsKey(GameConsts.PK_LEVELRANKING_CONTENT)) {
            //            //rankLevel.TryGetValue("content", out contentOld);
            //            string jsonUserRanking = (string)rankLevel[GameConsts.PK_LEVELRANKING_CONTENT];
            //            listplayer = new List<PlayerRankingModel>();
            //            fsData jsonData = fsJsonParser.Parse(jsonUserRanking);
            //            fsResult dresult = FileUtilities.JSONSerializer.TryDeserialize<List<PlayerRankingModel>>(jsonData, ref listplayer);
            //            if (dresult.Failed) {
            //                Debug.LogError("Failed to parse level ranking data, creating new one");
            //                //listplayer.Add(pModel);
            //                //fsData dataPlayer = null;
            //                ////string json = "";
            //                //FileUtilities.JSONSerializer.TrySerialize<List<PlayerRankingModel>>(listplayer, out dataPlayer);
            //                //rankLevel[GameConsts.PK_LEVELRANKING_CONTENT] = dataPlayer.ToString();
            //            }

            //            bool isExitedSongLevelRanking = false;
            //            for (int i = 0; i < listplayer.Count; i++) {
            //                if (listplayer[i].song_id.Equals(pModel.song_id)) {
            //                    listplayer[i] = pModel;
            //                    isExitedSongLevelRanking = true;
            //                    break;
            //                }
            //            }
            //            if (!isExitedSongLevelRanking)
            //                listplayer.Add(pModel);
            //            fsData dataPlayer = null;
            //            //string json = "";
            //            FileUtilities.JSONSerializer.TrySerialize<List<PlayerRankingModel>>(listplayer, out dataPlayer);
            //            rankLevel[GameConsts.PK_LEVELRANKING_CONTENT] = dataPlayer.ToString();
            //        }
            //        else {
            //            Debug.LogWarning("khong co content parse");
            //        }


            //        if (rankLevel.ContainsKey("user_name"))
            //            rankLevel.TryGetValue("user_name", out oldName);
            //        if (oldName.Contains((string)ParseUser.CurrentUser[GameConsts.PK_USERNAME])) {
            //            rankLevel["user_name"] = ParseUser.CurrentUser[GameConsts.PK_USERNAME];
            //        }
            //        else {
            //            //Debug.LogWarning("khong co username parse");
            //            rankLevel["user_name"] = ParseUser.CurrentUser[GameConsts.PK_USERNAME];
            //        }

            //        rankLevel.SaveAsync();
            //    }
            //}
        }
Exemplo n.º 4
0
        public void PushCurrentHighscore(PlayerRankingModel pModel)
        {
            //if (ParseUser.CurrentUser == null)
            //    return;

            //fsData data = null;
            //string json = "";

            ////serialize ranking data into json
            //var result = FileUtilities.JSONSerializer.TrySerialize<PlayerRankingModel>(pModel, out data);
            //if (result.Failed) {
            //    Debug.LogError("Can't serialize PlayerRankingModel, skipping");
            //    return;
            //}
            ////Loom.Instance.CheckInitial();
            //json = data.ToString();
            //Debug.Log("Level ranking json:" + json);
            //if (!string.IsNullOrEmpty(json)) {
            //    Timing.RunCoroutine(C_PushCurrentHighScore(pModel));
            //    return;

            //    #region Old implement
            //    ////first, try to query a record of current user
            //    //ParseQuery<ParseObject> query = ParseObject.GetQuery(GameConsts.PT_LEVEL_RANKING).WhereEqualTo(GameConsts.PK_USER_ID, pModel.user_id);
            //    //query.Select(GameConsts.PK_USER_ID);
            //    //query.Select(GameConsts.PK_LEVELRANKING_CONTENT);
            //    //Debug.Log("Querying...");
            //    //query.FirstAsync().ContinueWith(t => {
            //    //    Debug.Log(t.Result);
            //    //    Loom.Instance.QueueOnMainThread(() => {
            //    //        Debug.Log("isCancelled: " + t.IsCanceled);
            //    //        if (t.IsFaulted) {
            //    //            Debug.LogError("Loi Query Parse save ranking user");
            //    //            return;
            //    //        }
            //    //        //List<ParseObject> listParse = new List<ParseObject>();

            //    //        if (t.IsCompleted) {
            //    //            //IEnumerable<ParseObject> results = t.Result;
            //    //            //IEnumerator<ParseObject> iterator = results.GetEnumerator();

            //    //            //while (iterator.MoveNext()) {
            //    //            //    ParseObject currentObj = iterator.Current;
            //    //            //    if (currentObj != null) {
            //    //            //        listParse.Add(currentObj);
            //    //            //    }
            //    //            //}

            //    //            //ParseObject obj = null;
            //    //            //if (listParse.Count > 0) {
            //    //            //    obj = listParse[0];
            //    //            //}
            //    //            Debug.Log("Query completed");
            //    //            ParseObject obj = t.Result;
            //    //            List<PlayerRankingModel> listplayer;
            //    //            if (obj == null)// khong co -> ghi du lieu moi len parse
            //    //            {
            //    //                Debug.Log("insert du lieu:");
            //    //                // khong co du lieu ghi moi vao
            //    //                ParseObject rankLevel = new ParseObject(GameConsts.PT_LEVEL_RANKING);
            //    //                rankLevel[GameConsts.PK_USER_ID] = pModel.user_id;
            //    //                listplayer = new List<PlayerRankingModel>();
            //    //                listplayer.Add(pModel);
            //    //                fsData dataPlayer = null;
            //    //                //string json = "";
            //    //                FileUtilities.JSONSerializer.TrySerialize<List<PlayerRankingModel>>(listplayer, out dataPlayer);
            //    //                rankLevel[GameConsts.PK_LEVELRANKING_CONTENT] = dataPlayer.ToString();
            //    //                rankLevel.SaveAsync();
            //    //            }
            //    //            else {
            //    //                Debug.Log("update du lieu:");
            //    //                ParseObject rankLevel = obj;
            //    //                //string contentOld = "";
            //    //                string oldName = "";
            //    //                if (rankLevel.ContainsKey(GameConsts.PK_LEVELRANKING_CONTENT)) {
            //    //                    //rankLevel.TryGetValue("content", out contentOld);
            //    //                    string jsonUserRanking = (string)rankLevel[GameConsts.PK_LEVELRANKING_CONTENT];
            //    //                    listplayer = new List<PlayerRankingModel>();
            //    //                    fsData jsonData = fsJsonParser.Parse(jsonUserRanking);
            //    //                    fsResult dresult = FileUtilities.JSONSerializer.TryDeserialize<List<PlayerRankingModel>>(jsonData, ref listplayer);
            //    //                    if (dresult.Failed) {
            //    //                        Debug.LogError("Failed to parse level ranking data, creating new one");
            //    //                        //listplayer.Add(pModel);
            //    //                        //fsData dataPlayer = null;
            //    //                        ////string json = "";
            //    //                        //FileUtilities.JSONSerializer.TrySerialize<List<PlayerRankingModel>>(listplayer, out dataPlayer);
            //    //                        //rankLevel[GameConsts.PK_LEVELRANKING_CONTENT] = dataPlayer.ToString();
            //    //                    }

            //    //                    bool isExitedSongLevelRanking = false;
            //    //                    for (int i = 0; i < listplayer.Count; i++) {
            //    //                        if (listplayer[i].song_id.Equals(pModel.song_id)) {
            //    //                            listplayer[i] = pModel;
            //    //                            isExitedSongLevelRanking = true;
            //    //                            break;
            //    //                        }
            //    //                    }
            //    //                    if (!isExitedSongLevelRanking)
            //    //                        listplayer.Add(pModel);
            //    //                    fsData dataPlayer = null;
            //    //                    //string json = "";
            //    //                    FileUtilities.JSONSerializer.TrySerialize<List<PlayerRankingModel>>(listplayer, out dataPlayer);
            //    //                    rankLevel[GameConsts.PK_LEVELRANKING_CONTENT] = dataPlayer.ToString();
            //    //                }
            //    //                else {
            //    //                    Debug.LogWarning("khong co content parse");
            //    //                }


            //    //                if (rankLevel.ContainsKey("user_name"))
            //    //                    rankLevel.TryGetValue("user_name", out oldName);
            //    //                if (oldName.Contains((string)ParseUser.CurrentUser[GameConsts.PK_USERNAME])) {
            //    //                    rankLevel["user_name"] = ParseUser.CurrentUser[GameConsts.PK_USERNAME];
            //    //                }
            //    //                else {
            //    //                    //Debug.LogWarning("khong co username parse");
            //    //                    rankLevel["user_name"] = ParseUser.CurrentUser[GameConsts.PK_USERNAME];
            //    //                }

            //    //                rankLevel.SaveAsync();
            //    //            }
            //    //        }
            //    //    });
            //    //});
            //    #endregion

            //}
        }