/// <summary> /// データファイルを読み出す。 /// </summary> /// <param name="dir">フォルダ</param> private void ReadDataFiles(string dir) { string itemsPath = System.IO.Path.Combine(dir, "Items.json"); if (System.IO.File.Exists(itemsPath)) { items = DataItemListParser.Read(itemsPath); } string weaponsPath = System.IO.Path.Combine(dir, "Weapons.json"); if (System.IO.File.Exists(weaponsPath)) { weapons = DataWeaponListParser.Read(weaponsPath); } string armorsPath = System.IO.Path.Combine(dir, "Armors.json"); if (System.IO.File.Exists(armorsPath)) { armors = DataArmorListParser.Read(armorsPath); } string enemiesPath = System.IO.Path.Combine(dir, "Enemies.json"); if (System.IO.File.Exists(enemiesPath)) { enemies = DataEnemyListParser.Read(enemiesPath); } string questsPath = System.IO.Path.Combine(dir, "Quests.json"); if (System.IO.File.Exists(questsPath)) { Quests = DataQuestListReader.Read(questsPath); if (!Quests.Contains(null)) { Quests.Add(null); } Quests.Sort((a, b) => { if (a == null) { return(-1); } else if (b == null) { return(1); } else { return(a.Id - b.Id); } }); } }
/// <summary> /// Возвращает ID квеста в списке квестов /// </summary> /// <param name="node">Квест</param> /// <returns></returns> public int GetIdQuest(Quest node) { if (!Quests.Contains(node)) { return(int.MaxValue); } for (int i = 0; i < Quests.Count; i++) { if (Quests[i].Name == node.Name) { return(i); } } return(int.MaxValue);; }
public Quest_Status GetQuestStatus(ushort id) { if (Quests.Contains(id)) { NPCQuest questAsset = MainWindow.CurrentProject.data.quests.Single(d => d.ID == id); if (questAsset.conditions.All(d => d.Check(this))) { return(Quest_Status.Ready); } return(Quest_Status.Active); } if (Flags.ContainsKey(id)) { return(Quest_Status.Completed); } return(Quest_Status.None); }