Ejemplo n.º 1
0
    public void LoadData()
    {
        // 플레이어 InDate
        string InDate = Backend.BMember.GetUserInfo().GetInDate();

        // 서버에서 Player테이블의 데이터를 받아옴
        var Info = Backend.GameSchemaInfo.Get("Player", InDate);

        NickName = Backend.BMember.GetUserInfo().GetReturnValuetoJSON()["row"]["nickname"].ToString();

        // Player테이블의 데이터를 받아오는데 성공
        if (Info.GetStatusCode() == "200")
        {
            BackendReturnObject contents = Backend.GameSchemaInfo.Get("Player", InDate);

            JsonData data = contents.Rows()[0];

            if (data.Keys.Contains("Money"))
            {
                Money = long.Parse(data["Money"]["N"].ToString());
            }
            if (data.Keys.Contains("Month"))
            {
                Month = int.Parse(data["Month"]["N"].ToString());
            }
            if (data.Keys.Contains("Day"))
            {
                Day = int.Parse(data["Day"]["N"].ToString());
            }
            if (data.Keys.Contains("DefaultSuccess"))
            {
                DefaultSuccess = PlayerPrefs.GetInt(PLAYERPREFSLIST.DEFAULT_SUCCESS,
                                                    int.Parse(data["DefaultSuccess"]["N"].ToString()));
            }
            if (data.Keys.Contains("BestQuality"))
            {
                Best_Quality = float.Parse(data["BestQuality"]["N"].ToString());
            }
            if (data.Keys.Contains("BestAudience"))
            {
                Best_Audience = int.Parse(data["BestAudience"]["N"].ToString());
            }
            if (data.Keys.Contains("BestProfit"))
            {
                Best_Profit = long.Parse(data["BestProfit"]["N"].ToString());
            }

            Debug.Log("기존 데이터 불러오기");
        }
        // Player테이블의 데이터를 받아오는데 실패
        else
        {
            Param param = new Param();

            param.Add("Money", PLAYER.DEFAULT_MONEY);
            param.Add("Year", PLAYER.DEFAULT_YEAR);
            param.Add("Month", PLAYER.DEFAULT_MONTH);
            param.Add("DefaultSuccess", PLAYER.DEFAULT_SUCCESS);

            param.Add("BestQuality", 0);
            param.Add("BestAudience", 0);
            param.Add("BestProfit", 0);

            Backend.GameSchemaInfo.Insert("Player", param); // 동기

            Money = PLAYER.DEFAULT_MONEY;
            //Year = PLAYER.DEFAULT_YEAR;
            Month          = PLAYER.DEFAULT_MONTH;
            DefaultSuccess = PLAYER.DEFAULT_SUCCESS;

            Debug.Log("새 데이터 생성");
        }

        // 서버로부터 Shop테이블의 데이터를 받아옴
        Info = Backend.GameSchemaInfo.Get("Shop", InDate);

        // Shop테이블의 데이터를 받아오는데 성공
        if (Info.GetStatusCode() == "200")
        {
            BackendReturnObject contents = Backend.GameSchemaInfo.Get("Shop", InDate);

            JsonData data = contents.Rows()[0];

            if (data.Keys.Contains("Adblock"))
            {
                var temp = (bool)data["Adblock"]["BOOL"];
                Adblock = temp;
            }
            if (data.Keys.Contains("StartPackage"))
            {
                var temp = (bool)data["StartPackage"]["BOOL"];
                OnPackage = temp;
            }
            if (data.Keys.Contains("UseStartPackage"))
            {
                var temp = (bool)data["UseStartPackage"]["BOOL"];
                UsePackage = temp;
            }
        }
        // Shop테이블의 데이터를 받아오는데 실패
        else
        {
            Param param = new Param();

            param.Add("Adblock", false);
            param.Add("StartPackage", false);
            param.Add("UseStartPackage", false);

            // 서버에 새로운 데이터 삽입
            Backend.GameSchemaInfo.Insert("Shop", param); // 동기

            Adblock    = false;
            OnPackage  = false;
            UsePackage = false;
        }

        // 서버로부터 PlayData테이블의 데이터를 받아옴
        Info = Backend.GameInfo.GetPrivateContents("PlayData");

        if (Info.GetStatusCode() == "200")
        {
            Debug.Log("PlayData 테이블의 데이터를 받아오는데 성공");

            // PlayData테이블의 데이터를 받아오는데 성공
            if (Info.GetReturnValuetoJSON()["rows"].Count > 0)
            {
                Debug.Log("PlayData테이블 데이터 있음");

                var data = BackendReturnObject.Flatten(Info.Rows());
                var Json = Info.Rows()[0];

                if (Json.Keys.Contains("Scenario"))
                {
                    if (Json["Scenario"].Keys.Contains("NULL"))
                    {
                        NowScenario = null;
                        MaxActor    = 0;
                    }
                    else
                    {
                        int code = int.Parse(Json["Scenario"]["N"].ToString());
                        NowScenario = ScenarioData.Instance.FindScenario(code);
                        MaxActor    = NowScenario.Actors;
                    }
                }
                if (Json.Keys.Contains("NowStep"))
                {
                    SetStep((Step)int.Parse(Json["NowStep"]["N"].ToString()));
                }
                if (Json.Keys.Contains("Play_Quality"))
                {
                    Play_Quality = float.Parse(Json["Play_Quality"]["N"].ToString());
                }
                if (Json.Keys.Contains("Play_Marketing"))
                {
                    Play_Marketing = float.Parse(Json["Play_Marketing"]["N"].ToString());
                }
                if (Json.Keys.Contains("Play_Success"))
                {
                    Play_Success = float.Parse(Json["Play_Success"]["N"].ToString());
                }
                if (Json.Keys.Contains("Quality_Acting"))
                {
                    Quality_Acting = int.Parse(Json["Quality_Acting"]["N"].ToString());
                }
                if (Json.Keys.Contains("Quality_Scenario"))
                {
                    Quality_Scenario = float.Parse(Json["Quality_Scenario"]["N"].ToString());
                }
                if (Json.Keys.Contains("Quality_Direction"))
                {
                    Quality_Direction = float.Parse(Json["Quality_Direction"]["N"].ToString());
                }
                if (Json.Keys.Contains("Plus_Direction"))
                {
                    Plus_Direction = float.Parse(Json["Plus_Direction"]["N"].ToString());
                }
                if (Json.Keys.Contains("Period"))
                {
                    Period = int.Parse(Json["Period"]["N"].ToString());
                }
                if (Json.Keys.Contains("LeftDays"))
                {
                    LeftDays = float.Parse(Json["LeftDays"]["N"].ToString());
                }
            }
            // PlayData테이블의 데이터를 받아오는데 실패
            else
            {
                Debug.Log("PlayData테이블의 데이터를 받아오는데 실패");

                Reset();

                Param param = new Param();

                if (NowScenario == null)
                {
                    param.AddNull("Scenario");
                }
                else
                {
                    param.Add("Scenario", NowScenario.No);
                }
                param.Add("NowStep", (int)NowStep);

                param.Add("Play_Quality", Play_Quality);
                param.Add("Play_Marketing", Play_Marketing);
                param.Add("Play_Success", Play_Success);

                param.Add("Quality_Acting", Quality_Acting);
                param.Add("Quality_Scenario", Quality_Scenario);
                param.Add("Quality_Direction", Quality_Direction);

                param.Add("Plus_Direction", Plus_Direction);

                param.Add("Period", Period);
                param.Add("LeftDays", LeftDays);

                Backend.GameInfo.Insert("PlayData", param);
                Debug.Log("PlayData -> 새로운 데이터 생성");
            }
        }

        // 서버로부터 Actors테이블의 데이터를 받아옴
        Info = Backend.GameInfo.GetPrivateContents("Actors");

        if (Info.GetStatusCode() == "200")
        {
            Debug.Log("Actors 테이블의 데이터를 받아오는데 성공");

            // Actors 테이블의 데이터를 받아오는데 성공
            if (Info.GetReturnValuetoJSON()["rows"].Count > 0)
            {
                Debug.Log("Actors 테이블 데이터 있음");

                var Data = Info.Rows()[0];

                for (int i = 0; i < MaxActor; i++)
                {
                    if (Data.Keys.Contains("Actor" + i))
                    {
                        int No   = int.Parse(Data["Actor" + i]["N"].ToString());
                        var temp = ActorData.Instance.FindActor(No);
                        Actors.Add(temp);
                    }
                }

                NowActor = Actors.Count();
            }
            // Actors 테이블의 데이터를 받아오는데 실패
            else
            {
                Debug.Log("Actors 테이블 데이터 없음");

                Actors.Clear();
            }
        }


        // 서버로부터 Illust테이블의 데이터를 받아옴
        Info = Backend.GameInfo.GetPrivateContents("Illust");

        if (Info.GetStatusCode() == "200")
        {
            Debug.Log("Illust 테이블의 데이터를 받아오는데 성공");

            // Illust 테이블의 데이터를 받아오는데 성공
            if (Info.GetReturnValuetoJSON()["rows"].Count > 0)
            {
                Debug.Log("Illust 테이블 데이터 있음");

                var Data = Info.Rows()[0];

                for (int i = 0; Data.Keys.Contains("Illust" + i); i++)
                {
                    var temp = (bool)Data["Illust" + i]["BOOL"];
                    ScenarioIllust[i] = temp;
                }
            }
            // Illust 테이블의 데이터를 받아오는데 실패
            else
            {
                Debug.Log("Illust 테이블 데이터 없음");

                for (int i = 0; i < ScenarioIllust.Length; i++)
                {
                    ScenarioIllust[i] = false;
                }
            }
        }

        // 서버로부터 Illust테이블의 데이터를 받아옴
        Info = Backend.GameInfo.GetPrivateContents("Illust");

        if (Info.GetStatusCode() == "200")
        {
            Debug.Log("Illust 테이블의 데이터를 받아오는데 성공");

            // Illust 테이블의 데이터를 받아오는데 성공
            if (Info.GetReturnValuetoJSON()["rows"].Count > 0)
            {
                Debug.Log("Illust 테이블 데이터 있음");

                var Data = Info.Rows()[0];

                for (int i = 0; Data.Keys.Contains("Illust" + i); i++)
                {
                    var temp = (bool)Data["Illust" + i]["BOOL"];
                    ScenarioIllust[i] = temp;
                }
            }
            // Illust 테이블의 데이터를 받아오는데 실패
            else
            {
                Debug.Log("Illust 테이블 데이터 없음");

                for (int i = 0; i < ScenarioIllust.Length; i++)
                {
                    ScenarioIllust[i] = false;
                }
            }
        }
    }
Ejemplo n.º 2
0
        public ChartManager LoadChartDatas <T>(string chartName = null, params string[] primaryKeys)
        {
            BackendReturnObject retChartList = null;
            bool isSuccessGetChartList       = (chartListJsonData != null);

            if (!isSuccessGetChartList)
            {
                retChartList          = Backend.Chart.GetChartList();
                isSuccessGetChartList = retChartList.IsSuccess();
            }

            if (isSuccessGetChartList)
            {
                chartListJsonData = chartListJsonData ?? retChartList.GetReturnValuetoJSON();
                bool foundedChart = false;
                for (int i = 0; i < chartListJsonData["rows"].Count; i++)
                {
                    JsonData row  = chartListJsonData["rows"][i];
                    string   name = row["chartName"]["S"].ToString();

                    if (name == chartName)
                    {
                        if (row["selectedChartFileId"].ContainsKey("N"))
                        {
                            foundedChart = true;
                            string selectedChartFileId = row["selectedChartFileId"]["N"].ToString();
                            BackendReturnObject returnChartContents = Backend.Chart.GetChartContents(selectedChartFileId);

                            if (returnChartContents.IsSuccess())
                            {
                                if (!dataByKey.ContainsKey(chartName))
                                {
                                    dataByKey.Add(chartName, new Dictionary <string, Dictionary <object, object> >());
                                }

                                JsonData dataRows = returnChartContents.GetReturnValuetoJSON()["rows"];

                                if (primaryKeys.Length > 0)
                                {
                                    for (int j = 0; j < dataRows.Count; j++)
                                    {
                                        JsonData data = dataRows[j];
                                        foreach (var primaryKey in primaryKeys)
                                        {
                                            if (!dataByKey[chartName].ContainsKey(primaryKey))
                                            {
                                                dataByKey[chartName].Add(primaryKey, new Dictionary <object, object>());
                                            }

                                            string    dataJson = BackendReturnObject.Flatten(data).ToJson();
                                            T         toData   = JsonUtility.FromJson <T>(dataJson);
                                            FieldInfo field    = typeof(T).GetField(primaryKey);
                                            object    value    = field.GetValue(toData);
                                            dataByKey[chartName][primaryKey].Add(value, toData);
                                        }
                                    }
                                }

                                string   jsonStr  = BackendReturnObject.Flatten(dataRows).ToJson();
                                List <T> dataList = JsonToDataList <T>(jsonStr);

                                dbNamesByType.Add(typeof(T), chartName);
                                db.Add(chartName, dataList);
                            }
                            else
                            {
                                Debug.LogWarning(chartName + "차트 내용을 불러올 수 없습니다");
                            }
                        }
                        else
                        {
                            Debug.LogWarning("적용중인 " + chartName + "가 없습니다");
                        }
                    }
                }

                if (!foundedChart)
                {
                    Debug.LogWarning(chartName + "차트를 찾을 수 없습니다");
                }
            }
            else
            {
                Debug.LogWarning("차트가 목록을 받아오지 못했습니다");
            }

            return(this);
        }