Exemple #1
0
    public void AddQuest(Quest quest)
    {
        QuestWithState qWS = new QuestWithState {
            Quest = quest, QuestState = QuestState.InProces
        };

        if (File.Exists(wayToFile))//Если файла есть
        {
            SaveQs = JsonConvert.DeserializeObject <SaveQuests>(File.ReadAllText(wayToFile), JsonSettings);
            QWSs   = SaveQs.TakedQuests;
            QWSs.Add(qWS);
        }
        else
        {
            QWSs.Add(qWS);
        }
        File.WriteAllText(wayToFile, JsonConvert.SerializeObject(new SaveQuests {
            TakedQuests = QWSs
        }, JsonSettings));
        QH.QuestUpdate();
    }
    public void QuestUpdate()
    {
        if (File.Exists(wayToFile))
        {
            SaveQs = JsonConvert.DeserializeObject <SaveQuests>(File.ReadAllText(wayToFile), JsonSettings);

            foreach (Transform child in QuestListUI.transform)
            {
                Destroy(child.gameObject);                                               //чистим объект от квестов
            }
            for (int i = 0; i < SaveQs.TakedQuests.Count; i++)
            {
                if (SaveQs.TakedQuests[i].QuestState != QuestState.Passed)
                {
                    LocalQuestUI = Instantiate(QuestUI, QuestListUI.transform);

                    LocalQuestUI.transform.GetChild(0).GetComponent <Text>().text = SaveQs.TakedQuests[i].Quest.QuestName;
                    LocalQuestUI.transform.GetChild(1).GetComponent <Text>().text = SaveQs.TakedQuests[i].Quest.DescriptionGoal;
                    LocalQuestUI.transform.GetChild(2).GetComponent <Text>().text = SaveQs.TakedQuests[i].QuestState.ToString();
                }
            }
        }
    }
Exemple #3
0
    private void OnTriggerEnter(Collider colider)
    {
        dialogs = new List <Dialog>();

        wayToFile = Path.Combine(Application.dataPath, "Saves/" + nameOfSave + "/SaveQuestsData.json");

        GameObject UI = GameObject.Find("Main Camera");

        MainScreen = UI.transform.GetChild(1);

        dialogUI = Resources.Load <GameObject>("UI/Dialog");

        QH = UI.GetComponent <QuestHandler>();

        dialogs = CDs.LoadDialog(npcCharacters[1]);

        if (colider.tag == "Player")
        {
            if (File.Exists(wayToFile))
            {
                SaveQs = JsonConvert.DeserializeObject <SaveQuests>(File.ReadAllText(wayToFile), JsonSettings);

                for (int i = 0; i < SaveQs.TakedQuests.Count; i++)
                {
                    if (SaveQs.TakedQuests[i].Quest.QuestName == dialogs[dialogs.Count - 1].Quest.QuestName)
                    {
                        if (SaveQs.TakedQuests[i].QuestState == QuestState.Complete)
                        {
                            if (SaveQs.TakedQuests[i].QuestState == QuestState.Passed)
                            {
                                numCharacter = 0;
                            }
                            else
                            {
                                SaveQs.TakedQuests[i].QuestState = QuestState.Passed;
                                File.WriteAllText(wayToFile, JsonConvert.SerializeObject(SaveQs, JsonSettings));
                                numCharacter = 2;
                            }
                            break;
                        }
                        else
                        {
                            numCharacter = 0;
                            break;
                        }
                    }
                    else
                    {
                        numCharacter = 1;
                    }
                }
            }
            else
            {
                numCharacter = 1;
            }

            if (numCharacter >= 0)
            {
                SpawnDialog(npcCharacters[numCharacter]);
            }
        }
    }