示例#1
0
    private void LoadEndingData()
    {
        _endingDatas = new List <EndingData>();
        TextAsset csv = Resources.Load("ending") as TextAsset;

        using (var streamReader = new StreamReader(new MemoryStream(csv.bytes)))
        {
            using (var reader = new Mono.Csv.CsvFileReader(streamReader))
            {
                var stringArray = new List <List <string> >();
                reader.ReadAll(stringArray);
                stringArray.RemoveAt(0);

                //Index 0: 현재 투표 인덱스
                //Index 1: 날짜
                //Index 2: 질문
                //Index 4: 제목
                //Index 9: 설명
                //Index 12: 힌트
                foreach (List <string> column in stringArray)
                {
                    EndingData data = new EndingData();
                    data.endingQuestion    = column[2];
                    data.endingHint        = column[12];
                    data.endingDescription = column[9];
                    data.endingTitle       = column[4];
                    _endingDatas.Add(data);
                }
            }
        }
    }
示例#2
0
    private void Awake()
    {
        if (instance == null)
        {
            DontDestroyOnLoad(gameObject);
            instance = this;
        }
        else
        {
            Destroy(gameObject);
        }

        #region populate all arrays/lists using our .json files

        _questionJson = Application.streamingAssetsPath + "/Text/AllQuestions.json"; //find location of AllQuestions.json
        string allQuestionText = File.ReadAllText(_questionJson);                    //read all the text in that .json file
        questionData = QuestionData.CreatFromJson(allQuestionText);                  //convert text in that .json file into something that Unity can read
        //(in this case, an object containing a List of strings)

        questionPool = questionData.questionPool.questions;                      //initialize our List variable as the List of strings in our .json file

        _answerJson = Application.streamingAssetsPath + "/Text/AllAnswers.json"; //find location of AllAnswers.json
        string allAnswerText = File.ReadAllText(_answerJson);                    //read all the text in that .json file
        characterData = CharacterData.CreateFromJson(allAnswerText);             //convert text in that .json file into something that Unity can read
        //(in this case, an array of objects, each containing a string name, and a List of string answers)

        _endingJson = Application.streamingAssetsPath + "/Text/AllEndings.json"; //find location of AllEndings.json
        string allEndingText = File.ReadAllText(_endingJson);                    //read all the text in that .json file
        endingData = EndingData.CreateFromJson(allEndingText);                   //convert text in that .json file into something that Unity can read
        //(in this case, an array of objects, each containing a string name, and an array of string parings)

        #endregion
    }
示例#3
0
            public static void Postfix(GameMain __instance)
            {
                try
                {
                    String filePath = FindOverridenFile("Ending");
                    if (filePath is null)
                    {
                        Log.Warning($"[{nameof(GameMain_ReadCSVData_EndingData)}] File not found: Ending.json");
                        return;
                    }

                    Int32        language = StWorkProxy.CurrentLanguage;
                    EndingData[] engings  = __instance.endingData;

                    foreach (Reference <TransifexEntry> item in PrepareTexts(filePath).Enumerate())
                    {
                        EndingDataId reference = EndingDataId.Parse(item.Key);
                        EndingData   info      = engings[reference.Id];

                        Int32  sceneIndex = reference.Scene - 1;
                        String valueText  = item.Value.Text;

                        switch (language)
                        {
                        case 1:
                            info.endingText_En[0, sceneIndex] = valueText;
                            break;

                        case 2:
                            info.endingText_Ch[0, sceneIndex] = valueText;
                            break;

                        case 3:
                            info.endingText_Ko[0, sceneIndex] = valueText;
                            break;

                        default:
                            info.endingText_Jp[0, sceneIndex] = valueText;
                            break;
                        }
                    }

                    Log.Message($"[{nameof(GameMain_ReadCSVData_EndingData)}] Loaded: Ending.json");
                }
                catch (Exception ex)
                {
                    Log.Error(ex, $"[{nameof(GameMain_ReadCSVData_EndingData)}] Failed to load Ending.json");
                }
            }
    public void SetPanel(EndingData endingData, bool isUnlock, Action <long> callBack)
    {
        _buttonPanel.onClick.RemoveAllListeners();
        if (isUnlock)
        {
            var backGroundData = ResourceManager.Instance.LoadMasterData <BackGroundData, BackGroundDataObjectList>(endingData.BackGroundId);
            _image.sprite = backGroundData.Sprites[0];

            _textTitle.text = $"End{endingData.EndingNumber}:{endingData.Memo}";

            _textDescription.text = endingData.Description;

            _buttonPanel.onClick.AddListener(delegate {
                callBack?.Invoke(endingData.Id);
            });
        }
        else
        {
            _textTitle.text       = $"End{endingData.EndingNumber}:???????";
            _textDescription.text = string.Empty;
        }
    }
示例#5
0
    public IEnumerator LoadingData(Slider loadingSlider, float WaitTime)
    {
        if (LoadingDataXmlList.Count <= 0)
        {
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Door", "Doors"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Note", "Notes"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("CommonData", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Localize", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Item", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Skill", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Character", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Background", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("Ending", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("EndingGroup", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("CharSkinSlotLevel", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("BGSkinSlotLevel", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("DoorSkinSlotLevel", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("CharMsg", "Datas"));
            LoadingDataXmlList.Add(new KeyValuePair <string, string>("ItemLevelUpCost", "Datas"));
        }

        for (int i = 0; i < LoadingDataXmlList.Count; i++)
        {
            string      xmlName = LoadingDataXmlList[i].Key;
            XmlNodeList list    = GetXmlNodeList(LoadingDataXmlList[i].Key, LoadingDataXmlList[i].Value);


            if (xmlName == "Door")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new DoorData(child);
                        DoorDataDic.Add(data.id, data);
                    }
                }
            }
            else if (xmlName == "Note")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new NoteData(child);
                        NoteDataDic.Add(data.id, data);
                    }
                }
            }
            else if (xmlName == "CommonData")
            {
                foreach (XmlNode node in list)
                {
                    ConfigData.Instance.Initialize(node.ChildNodes);
                }
            }
            else if (xmlName == "Localize")
            {
                foreach (XmlNode node in list)
                {
                    LocalizeData.Instance.Initialize(node.ChildNodes);
                }
            }
            else if (xmlName == "Item")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new ItemData(child);
                        ItemDataDic.Add(data.id, data);
                    }
                }
            }
            else if (xmlName == "Skill")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new SkillData(child);
                        SkillDataList.Add(data.name, data);
                    }
                }
            }

            else if (xmlName == "Character")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new CharData(child);
                        CharDataDic.Add(data.id, data);
                    }
                }
            }
            else if (xmlName == "Background")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new BackgroundData(child);
                        BackGroundDataDic.Add(data.id, data);
                    }
                }
            }
            else if (xmlName == "Ending")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new EndingData(child);
                        EndingDataList.Add(data.id, data);
                    }
                }
            }

            else if (xmlName == "EndingGroup")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new EndingGroupData(child);
                        EndingGroupDataList.Add(data.id, data);
                    }
                }
            }


            else if (xmlName == "CharSkinSlotLevel")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new SkinSlotLevelData(child);
                        if (SkinSlotLevelDataList.ContainsKey(CommonData.SKIN_TYPE.CHAR) == false)
                        {
                            SkinSlotLevelDataList.Add(CommonData.SKIN_TYPE.CHAR, new List <SkinSlotLevelData>());
                        }

                        SkinSlotLevelDataList[CommonData.SKIN_TYPE.CHAR].Add(data);
                    }
                }

                SkinSlotLevelDataList[CommonData.SKIN_TYPE.CHAR].Sort(delegate(SkinSlotLevelData A, SkinSlotLevelData B)
                {
                    if (A.level > B.level)
                    {
                        return(1);
                    }
                    else
                    {
                        return(-1);
                    }
                });
            }

            else if (xmlName == "BGSkinSlotLevel")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new SkinSlotLevelData(child);
                        if (SkinSlotLevelDataList.ContainsKey(CommonData.SKIN_TYPE.BACKGROUND) == false)
                        {
                            SkinSlotLevelDataList.Add(CommonData.SKIN_TYPE.BACKGROUND, new List <SkinSlotLevelData>());
                        }

                        SkinSlotLevelDataList[CommonData.SKIN_TYPE.BACKGROUND].Add(data);
                    }
                }

                SkinSlotLevelDataList[CommonData.SKIN_TYPE.BACKGROUND].Sort(delegate(SkinSlotLevelData A, SkinSlotLevelData B)
                {
                    if (A.level > B.level)
                    {
                        return(1);
                    }
                    else
                    {
                        return(-1);
                    }
                });
            }

            else if (xmlName == "DoorSkinSlotLevel")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new SkinSlotLevelData(child);
                        if (SkinSlotLevelDataList.ContainsKey(CommonData.SKIN_TYPE.DOOR) == false)
                        {
                            SkinSlotLevelDataList.Add(CommonData.SKIN_TYPE.DOOR, new List <SkinSlotLevelData>());
                        }

                        SkinSlotLevelDataList[CommonData.SKIN_TYPE.DOOR].Add(data);
                    }
                }

                SkinSlotLevelDataList[CommonData.SKIN_TYPE.DOOR].Sort(delegate(SkinSlotLevelData A, SkinSlotLevelData B)
                {
                    if (A.level > B.level)
                    {
                        return(1);
                    }
                    else
                    {
                        return(-1);
                    }
                });
            }

            else if (xmlName == "CharMsg")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new CharMsgData(child);
                        CharMsgDataList.Add(data.id, data);
                    }
                }
            }

            else if (xmlName == "ItemLevelUpCost")
            {
                foreach (XmlNode node in list)
                {
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        var data = new ItemLevelUpCostData(child);
                        ItemLevelUpCostDataList.Add(data.name, data);
                    }
                }
            }



            loadingSlider.value = (i + 1) / (float)LoadingDataXmlList.Count;
            yield return(null);
        }

        yield return(new WaitForSeconds(WaitTime));
    }