Exemplo n.º 1
0
    // サーバーからハイスコアを取得  -----------------
    public void getHighScore(ScoreDataV1 param, bool myScore)
    {
        // データストアの「ScoreDataV1」クラスから、Nameをキーにして検索
        NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreDataV1");

        query.WhereEqualTo("ScoreKindValue", param.ScoreKindValue);
        if (myScore)
        {
            query.WhereEqualTo("Id", param.Id);
            myHighScore[param.ScoreKindValue] = 0;
        }
        else
        {
            allHighScore[param.ScoreKindValue] = 0;
        }
        query.WhereEqualTo("Row", param.Row);
        query.WhereEqualTo("Col", param.Col);
        query.WhereEqualTo("Color", param.Color);
        query.WhereEqualTo("Link", param.Link);
        query.WhereEqualTo("Direction", param.Direction);
        query.WhereEqualTo("Time", param.Time);
        query.WhereEqualTo("Stop", param.Stop);
        query.WhereEqualTo("CountDisp", param.CountDisp);
        query.WhereEqualTo("Garbage", param.Garbage);
        query.WhereGreaterThan("Version", 1);
        query.WhereEqualTo("ScoreCategoryValue", param.ScoreCategoryValue);

        query.OrderByDescending("Score");
        query.FindAsync((List <NCMBObject> objList, NCMBException e) =>
        {
            //検索成功したら
            if (e == null)
            {
                // ハイスコアが未登録だったら
                if (objList.Count == 0)
                {
                    if (myScore)
                    {
                        myHighScore[param.ScoreKindValue] = 0;
                    }
                    else
                    {
                        allHighScore[param.ScoreKindValue] = 0;
                    }
                }
                // ハイスコアが登録済みだったら
                else
                {
                    if (myScore)
                    {
                        myHighScore[param.ScoreKindValue] = System.Convert.ToInt32(objList[0]["Score"]);
                    }
                    else
                    {
                        allHighScore[param.ScoreKindValue] = System.Convert.ToInt32(objList[0]["Score"]);
                    }
                }
            }
        });
    }
Exemplo n.º 2
0
    public void OnClick()
    {
        FreeController.WriteData();

        DataManager dataManager = DataManager.Instance;

        ScoreDataV1 param = new ScoreDataV1();

        param.Id                 = dataManager.UserData.Id;
        param.Name               = dataManager.UserData.Name;
        param.Row                = dataManager.PuzzleData.Row;
        param.Col                = dataManager.PuzzleData.Col;
        param.Color              = dataManager.PuzzleData.Color;
        param.Link               = dataManager.PuzzleData.Link;
        param.Direction          = dataManager.PuzzleData.Direction;
        param.Time               = dataManager.PuzzleData.Time;
        param.Stop               = dataManager.PuzzleData.Stop;
        param.CountDisp          = dataManager.PuzzleData.CountDisp;
        param.Garbage            = dataManager.PuzzleData.Garbage;
        param.Version            = 0;
        param.ScoreCategoryValue = (int)ScoreDataV1.ScoreCategory.Global;

        ScoreManager scoreManager = ScoreManager.Instance;

        for (int scoreKind = 0; scoreKind < ScoreDataV1.SCORE_KIND_MAX; scoreKind++)
        {
            param.ScoreKindValue = scoreKind;
            scoreManager.fetchTopRankers(scoreKind, param, FreeController.RANK_MAX);
        }
    }
Exemplo n.º 3
0
    // サーバーにハイスコアを保存 -------------------------
    // スコア送信処理は非同期でまとめて処理するため、categoryが途中で変わってしまう。
    public void save(ScoreDataV1 param, int category)
    {
        // データストアの「ScoreDataV1」クラスから、Nameをキーにして検索
        NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreDataV1");

        query.WhereEqualTo("ScoreKindValue", param.ScoreKindValue);
        query.WhereEqualTo("Id", param.Id);
        query.WhereEqualTo("Row", param.Row);
        query.WhereEqualTo("Col", param.Col);
        query.WhereEqualTo("Color", param.Color);
        query.WhereEqualTo("Link", param.Link);
        query.WhereEqualTo("Direction", param.Direction);
        query.WhereEqualTo("Time", param.Time);
        query.WhereEqualTo("Stop", param.Stop);
        query.WhereEqualTo("CountDisp", param.CountDisp);
        query.WhereEqualTo("Garbage", param.Garbage);
        query.WhereGreaterThan("Version", 1);
        query.WhereEqualTo("ScoreCategoryValue", category);

        query.FindAsync((List <NCMBObject> objList, NCMBException e) =>
        {
            //検索成功したら
            if (e == null)
            {
                // ハイスコアが未登録だったら
                if (objList.Count == 0)
                {
                    NCMBObject obj        = new NCMBObject("ScoreDataV1");
                    obj["ScoreKindValue"] = param.ScoreKindValue;
                    obj["Id"]             = param.Id;
                    obj["Row"]            = param.Row;
                    obj["Col"]            = param.Col;
                    obj["Color"]          = param.Color;
                    obj["Link"]           = param.Link;
                    obj["Direction"]      = param.Direction;
                    obj["Time"]           = param.Time;
                    obj["Stop"]           = param.Stop;
                    obj["CountDisp"]      = param.CountDisp;
                    obj["Garbage"]        = param.Garbage;

                    obj["Name"]               = param.Name;
                    obj["PlayDateTime"]       = param.PlayDateTime;
                    obj["Score"]              = param.Score;
                    obj["Version"]            = param.Version;
                    obj["ScoreCategoryValue"] = category;
                    obj.SaveAsync();
                }
                // ハイスコアが登録済みだったら
                else
                {
                    objList[0]["Name"]         = param.Name;
                    objList[0]["PlayDateTime"] = param.PlayDateTime;
                    objList[0]["Score"]        = param.Score;
                    objList[0]["Version"]      = param.Version;
                    objList[0].SaveAsync();
                }
            }
        });
    }
Exemplo n.º 4
0
    public void OnValueChanged(int result)
    {
        DataManager dataManager = DataManager.Instance;

        ScoreDataV1 param = new ScoreDataV1();

        param.Version            = CommonDefine.VERSION;
        param.ScoreCategoryValue = (int)ScoreDataV1.ScoreCategory.NewArrivals;

        Dropdown queryDropdown = GameObject.Find("QueryDropdown").GetComponent <Dropdown>();
        int      scoreKind     = queryDropdown.value;

        ScoreManager scoreManager = ScoreManager.Instance;

        param.ScoreKindValue = scoreKind;
        scoreManager.fetchNewArrivals(scoreKind, param, ReplayController.RANK_MAX);
        //scoreManager.setNewCol(false);
        //scoreManager.setNewCol(true);
    }
Exemplo n.º 5
0
    //-------------------------------------------------------
    // Private Function
    //-------------------------------------------------------
    private void InitScoreData()
    {
        DataManager dataManager = DataManager.Instance;

        scoreData  = new ScoreDataV1[ScoreDataV1.SCORE_KIND_MAX];
        replayData = new ReplayDataV1[ScoreDataV1.SCORE_KIND_MAX];

        int seed;

        if (replay)
        {
            seed = dataManager.ReplayData.Seed;
        }
        else
        {
            seed = (int)((DateTime.Now.ToBinary() + dataManager.PuzzleData.WriteCount) % int.MaxValue);
        }

        ScoreManager scoreManager = ScoreManager.Instance;

        for (int scoreKind = 0; scoreKind < scoreData.Length; scoreKind++)
        {
            scoreData[scoreKind] = new ScoreDataV1();

            if (replay)
            {
                scoreData[scoreKind].Id                 = dataManager.ReplayData.Id;
                scoreData[scoreKind].Name               = dataManager.ReplayData.Name;
                scoreData[scoreKind].Row                = dataManager.ReplayData.Row;
                scoreData[scoreKind].Col                = dataManager.ReplayData.Col;
                scoreData[scoreKind].Color              = dataManager.ReplayData.Color;
                scoreData[scoreKind].Link               = dataManager.ReplayData.Link;
                scoreData[scoreKind].Direction          = dataManager.ReplayData.Direction;
                scoreData[scoreKind].Time               = dataManager.ReplayData.Time;
                scoreData[scoreKind].Stop               = dataManager.ReplayData.Stop;
                scoreData[scoreKind].CountDisp          = dataManager.ReplayData.CountDisp;
                scoreData[scoreKind].Garbage            = dataManager.ReplayData.Garbage;
                scoreData[scoreKind].Version            = dataManager.ReplayData.Version;
                scoreData[scoreKind].ScoreCategoryValue = dataManager.ReplayData.ScoreCategoryValue;
            }
            else
            {
                scoreData[scoreKind].Id                 = dataManager.UserData.Id;
                scoreData[scoreKind].Name               = dataManager.UserData.Name;
                scoreData[scoreKind].Row                = dataManager.PuzzleData.Row;
                scoreData[scoreKind].Col                = dataManager.PuzzleData.Col;
                scoreData[scoreKind].Color              = dataManager.PuzzleData.Color;
                scoreData[scoreKind].Link               = dataManager.PuzzleData.Link;
                scoreData[scoreKind].Direction          = dataManager.PuzzleData.Direction;
                scoreData[scoreKind].Time               = dataManager.PuzzleData.Time;
                scoreData[scoreKind].Stop               = dataManager.PuzzleData.Stop;
                scoreData[scoreKind].CountDisp          = dataManager.PuzzleData.CountDisp;
                scoreData[scoreKind].Garbage            = dataManager.PuzzleData.Garbage;
                scoreData[scoreKind].Version            = CommonDefine.VERSION;
                scoreData[scoreKind].ScoreCategoryValue = (int)ScoreDataV1.ScoreCategory.Global;
            }

            scoreData[scoreKind].ScoreKindValue = scoreKind;
            scoreManager.getHighScore(scoreData[scoreKind], true);
            scoreManager.getHighScore(scoreData[scoreKind], false);

            if (replay)
            {
                replayData[scoreKind] = dataManager.ReplayData;
                continue;
            }

            replayData[scoreKind]                    = new ReplayDataV1();
            replayData[scoreKind].Version            = CommonDefine.VERSION;
            replayData[scoreKind].Id                 = dataManager.UserData.Id;
            replayData[scoreKind].ScoreKindValue     = scoreKind;
            replayData[scoreKind].Seed               = seed;
            replayData[scoreKind].Row                = dataManager.PuzzleData.Row;
            replayData[scoreKind].Col                = dataManager.PuzzleData.Col;
            replayData[scoreKind].Color              = dataManager.PuzzleData.Color;
            replayData[scoreKind].Link               = dataManager.PuzzleData.Link;
            replayData[scoreKind].Direction          = dataManager.PuzzleData.Direction;
            replayData[scoreKind].Time               = dataManager.PuzzleData.Time;
            replayData[scoreKind].Stop               = dataManager.PuzzleData.Stop;
            replayData[scoreKind].CountDisp          = dataManager.PuzzleData.CountDisp;
            replayData[scoreKind].Garbage            = dataManager.PuzzleData.Garbage;
            replayData[scoreKind].ScoreCategoryValue = (int)ScoreDataV1.ScoreCategory.Global;
        }

        UnityEngine.Random.seed = seed;
        frame      = 0;
        inputFrame = new List <int>();
        inputType  = new List <byte>();
        inputData1 = new List <byte>();
        inputData2 = new List <byte>();
    }
Exemplo n.º 6
0
    // ============================================================
    // Score
    // ============================================================
    // サーバーからトップ10を取得 ---------------
    public void fetchTopRankers(int scoreKind, ScoreDataV1 param, int queryLimit)
    {
        fetchData[scoreKind].flag = false;

        version = param.Version;

        // データストアの「ScoreDataV1」クラスから検索
        NCMBQuery <NCMBObject> query = new NCMBQuery <NCMBObject>("ScoreDataV1");

        query.WhereEqualTo("ScoreKindValue", param.ScoreKindValue);
        //query.WhereEqualTo("Id", param.Id);
        query.WhereEqualTo("Row", param.Row);
        query.WhereEqualTo("Col", param.Col);
        query.WhereEqualTo("Color", param.Color);
        query.WhereEqualTo("Link", param.Link);
        query.WhereEqualTo("Direction", param.Direction);
        query.WhereEqualTo("Time", param.Time);
        query.WhereEqualTo("Stop", param.Stop);
        query.WhereEqualTo("CountDisp", param.CountDisp);
        query.WhereEqualTo("Garbage", param.Garbage);
        if (param.Version != 0)
        {
//            query.WhereEqualTo("Version", param.Version);
            query.WhereGreaterThan("Version", 1);
        }
        query.WhereEqualTo("ScoreCategoryValue", param.ScoreCategoryValue);

        query.OrderByDescending("Score");
        query.Limit = queryLimit;
        query.FindAsync((List <NCMBObject> objList, NCMBException e) =>
        {
            if (e != null)
            {
                //検索失敗時の処理
            }
            else
            {
                //検索成功時の処理
                fetchData[scoreKind].scoreDataList.Clear();
                // 取得したレコードをScoreDataV1クラスとして保存
                foreach (NCMBObject obj in objList)
                {
                    ScoreDataV1 data = new ScoreDataV1();
                    data.Score       = System.Convert.ToInt32(obj["Score"]);
                    data.Name        = System.Convert.ToString(obj["Name"]);
                    if (version != 0)
                    {
                        data.Version        = System.Convert.ToInt32(obj["Version"]);
                        data.Id             = System.Convert.ToString(obj["Id"]);
                        data.PlayDateTime   = System.Convert.ToInt64(obj["PlayDateTime"]);
                        data.ScoreKindValue = System.Convert.ToInt32(obj["ScoreKindValue"]);

                        data.Row                = System.Convert.ToInt32(obj["Row"]);
                        data.Col                = System.Convert.ToInt32(obj["Col"]);
                        data.Color              = System.Convert.ToInt32(obj["Color"]);
                        data.Link               = System.Convert.ToInt32(obj["Link"]);
                        data.Direction          = System.Convert.ToInt32(obj["Direction"]);
                        data.Time               = System.Convert.ToInt32(obj["Time"]);
                        data.Stop               = System.Convert.ToInt32(obj["Stop"]);
                        data.CountDisp          = System.Convert.ToInt32(obj["CountDisp"]);
                        data.Garbage            = System.Convert.ToInt32(obj["Garbage"]);
                        data.ScoreCategoryValue = System.Convert.ToInt32(obj["ScoreCategoryValue"]);
                    }
                    fetchData[scoreKind].scoreDataList.Add(data);
                }
                for (int idx = objList.Count; idx < queryLimit; idx++)
                {
                    ScoreDataV1 data = new ScoreDataV1();
                    data.Score       = 0;
                    data.Name        = "----------";
                    fetchData[scoreKind].scoreDataList.Add(data);
                }
                fetchData[scoreKind].flag = true;
            }
        });
    }