コード例 #1
0
ファイル: FormMain.cs プロジェクト: kapuusagi/twld-utils
        /// <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);
                    }
                });
            }
        }
コード例 #2
0
 /// <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);;
 }
コード例 #3
0
        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);
        }