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; } } } }
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); }