//식물 눌렀을 때 public void OnClick_Seed(int index) { WPData_Seed seedData = WPGameDataManager.instance.GetData <WPData_Seed>(WPEnum.GameData.eSeed)[index]; if (seedData != null) { WPGameCommon._WPDebug(seedData.Name + "을(를) 선택하였습니다."); int growthTime = seedData.GrowthTime; if (fertilizerIndex != -1) { WPData_Fertilizer fertilizerData = WPGameDataManager.instance.GetData <WPData_Fertilizer>(WPEnum.GameData.eFertilizer)[fertilizerIndex]; if (fertilizerData != null) { switch (fertilizerData.ItemType) { case WPEnum.FertilizerType.eGrowth: { growthTime -= fertilizerData.Value; break; } } } } WPUIManager_Field.instance.SetText_Time( WPDateTime.Now.AddTimeData( growthTime ).ToString()); WPUIManager_Field.instance.SetText_Money(( seedData.ComparePrice ).ToString()); WPUIManager_Field.instance.SetSprite_Seed(seedSpriteData[index]); } seedIndex = index; }
private void OnClick_Fertilizer(int index) { WPData_Fertilizer fertilizerData = WPGameDataManager.instance.GetData <WPData_Fertilizer>(WPEnum.GameData.eFertilizer)[index]; if (fertilizerData != null) { WPUI_BookItemInfo bookItemInfo = WPUIManager_Book.instance.ui_BookItemInfo; bookItemInfo.SetSprite_Item(fertilizerSpriteData[index]); bookItemInfo.Name.SetText(fertilizerData.Name); bookItemInfo.GetImageText_Info(0).SetActive(true); bookItemInfo.GetImageText_Info(0).SetText(fertilizerData.Description); bookItemInfo.GetImageText_Info(1).SetActive(false); bookItemInfo.GetImageText_Info(2).SetActive(false); bookItemInfo.SetActive(true); } }
private void LoadData(WPEnum.GameData _gameData) { string dataName = _gameData.ToString().Substring(1); string dataPath = "Data/" + dataName; /* * if (!File.Exists(dataPath)) * { * WPGameCommon._WPDebug("해당하는 파일이 존재하지 않습니다! : " + dataPath); * return; * }*/ TextAsset newData = Resources.Load <TextAsset>(dataPath); if (newData == null) { WPGameCommon._WPDebug("해당하는 파일이 존재하지 않습니다! : " + dataPath); return; } string csvString = newData.text; List <WPData> csvData = new List <WPData>(); string[] lines = Regex.Split(csvString, LINE_SPLIT_RE); if (lines.Length > 1) { string[] header = Regex.Split(lines[0], SPLIT_RE); for (int i = 1; i < lines.Length; ++i) { string[] values = Regex.Split(lines[i], SPLIT_RE); if (values.Length <= 0) { continue; } string testString = string.Empty; Dictionary <string, object> entry = new Dictionary <string, object>(); for (int j = 0; j < header.Length && j < values.Length; ++j) { string value = values[j].TrimStart(TRIM_CHARS).TrimEnd(TRIM_CHARS).Replace("\\", ""); entry[header[j]] = value; testString += header[j] + ":" + value + "//"; } switch (_gameData) { case WPEnum.GameData.eNews: { if (WPData_News.CheckDataIntegrity(entry)) { WPData_News newsData = new WPData_News(entry); csvData.Add(newsData); } break; } case WPEnum.GameData.eSeed: { if (WPData_Seed.CheckDataIntegrity(entry)) { WPData_Seed seedData = new WPData_Seed(entry); csvData.Add(seedData); } break; } case WPEnum.GameData.eFertilizer: { if (WPData_Fertilizer.CheckDataIntegrity(entry)) { WPData_Fertilizer fertilizerData = new WPData_Fertilizer(entry); csvData.Add(fertilizerData); } break; } case WPEnum.GameData.eEvent: { if (WPData_Event.CheckDataIntegrity(entry)) { WPData_Event eventData = new WPData_Event(entry); csvData.Add(eventData); } break; } } WPGameCommon._WPDebug(testString); } gameData.Add(_gameData, csvData); } }
// 로직 구현 방식입니다. // 밭을 누르면 GetFieldData로 해당 밭의 WPField 클래스를 받아오려고 합니다. // 만약 아무것도 심지 않은 상태라면 그 밭의 WPField 클래스는 null 값입니다. (사실 IsPlanted == false 인 wpfield가 존재하지만, GetFieldData 에 인자로 넘겨주는 과정에서 null 값을 넘겨주게 됩니다.) // null 이라면 그 밭은 비어있고, null 이 아니라면 그 클래스를 이용해 ui를 표시합니다. // null이라고 해서 새로운 WPField를 바로 생성하지 않습니다. <- 중요. // UI에서 선택한 정보는 WPScrollView_Select에 저장됩니다. ( seedIndex, workerIndex, fertilizerIndex ) // 새로운 WPField를 생성하는 시점은 OnClick_Plant를 클릭했을 때 입니다. public void GetFieldData(WPField wpField, WPFieldCtrl wpFieldCtrl) { if (wpField == null) // 이 경우 밭의 정보가 없는 것으로, 이 때 여기서 새로운 밭을 만들어 넘겨주어야 합니다. { Text text = button_Action.GetComponentInChildren <Text>(); if (text != null) { text.text = "심기"; // Action 버튼의 UI 설정 } ui_FieldStatus.SetActive(false); button_Seed.interactable = true; // Seed 버튼의 활성화 SetSprite_Seed(); scrollView_Select.SetActive(true); // scrollView UI 활성화 } else // 밭의 정보가 있습니다. 이 정보를 활용하여 UI로 표시합니다. { Text text = button_Action.GetComponentInChildren <Text>(); if (text != null) { text.text = "엎기"; } WPGameCommon._WPDebug("Seed Index " + wpField.seedIndex + ":" + "Worker Index " + wpField.workerIndex + ":" + "Fertilizer Index " + wpField.fertilizerIndex); if (wpField.seedIndex != -1) { WPData_Seed seedData = WPGameDataManager.instance.GetData <WPData_Seed>(WPEnum.GameData.eSeed)[wpField.seedIndex]; SetText_Time(string.Format("{0:f2}% 자람", (wpField.GrowthRate * 100f))); instance.SetText_Money( Convert.ToInt32(seedData.ComparePrice).ToString()); string seedDataName = seedData.DataName; string seedDataPath = "Image/Seed/" + seedDataName; Sprite seedSprite = WPResourceManager.instance.GetResource <Sprite>(seedDataPath); SetSprite_Seed(seedSprite); } ui_FieldStatus.SetActive(true); if (wpField.workerIndex != -1) { } else { ui_FieldStatus.Worker.SetActive(false); } if (wpField.fertilizerIndex != -1) { WPData_Fertilizer fertilizerData = WPGameDataManager.instance.GetData <WPData_Fertilizer>(WPEnum.GameData.eFertilizer)[wpField.fertilizerIndex]; string fertilizerDataName = fertilizerData.DataName; string fertilizerDataPath = "Image/Fertilizer/" + fertilizerDataName; Sprite fertilizerSprite = WPResourceManager.instance.GetResource <Sprite>(fertilizerDataPath); ui_FieldStatus.Fertilizer.SetActive(true); ui_FieldStatus.Fertilizer.SetText(fertilizerData.Name); ui_FieldStatus.Fertilizer.SetSprite(fertilizerSprite); } else { ui_FieldStatus.Fertilizer.SetActive(false); } button_Seed.interactable = false; scrollView_Select.SetActive(false); this.targetField = wpField; } this.targetFieldCtrl = wpFieldCtrl; }