//식물 눌렀을 때
    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;
    }
Exemplo n.º 2
0
    private void OnClick_Seed(int index)
    {
        WPData_Seed seedData = WPGameDataManager.instance.GetData <WPData_Seed>(WPEnum.GameData.eSeed)[index];

        if (seedData != null)
        {
            WPUI_BookItemInfo bookItemInfo = WPUIManager_Book.instance.ui_BookItemInfo;
            bookItemInfo.SetSprite_Item(seedSpriteData[index]);
            bookItemInfo.Name.SetText(seedData.Name);
            bookItemInfo.GetImageText_Info(0).SetActive(true);
            bookItemInfo.GetImageText_Info(0).SetText(seedData.Description);
            bookItemInfo.SetActive(true);
        }
    }
Exemplo n.º 3
0
    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);
        }
    }
Exemplo n.º 4
0
    // 로직 구현 방식입니다.
    // 밭을 누르면 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;
    }