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