public void FillData()
        {
            SQLiteTableReader reader = new SQLiteTableReader(null, Program.DbPath);

            reader.Connect();
            DataTable missionTable = reader.ExecuteQuery("SELECT tm.id as id, tm.item_id as item_id, tm.item_num as item_num, t0.text as MissionText FROM (SELECT id, item_id, item_num FROM mission_data) as tm, (SELECT \"index\", text FROM text_data WHERE category=67) as t0 WHERE tm.id = t0.\"index\"");

            reader.Disconnect();
            for (int i = 0; i < missionTable.Rows.Count; i++)
            {
                MissionData data = new MissionData();
                data.Id        = (long)missionTable.Rows[i]["id"];
                data.ItemId    = (long)missionTable.Rows[i]["item_id"];
                data.ItemCount = (long)missionTable.Rows[i]["item_num"];
                data.SetMissionText(((string)missionTable.Rows[i]["MissionText"]).Replace("\\n", ""));
                if (!MissionDataList.Exists(a => a.MissionText.Equals(data.MissionText)))
                {
                    string transText = Program.TransDict.GetTranslation(transDict, data.MissionText);
                    if (string.IsNullOrEmpty(transText))
                    {
                        transText = string.Empty;
                    }
                    data.TransMissionText = transText;
                    MissionDataList.Add(data);
                }
            }
        }
        public void FillData()
        {
            SQLiteTableReader reader = new SQLiteTableReader(null, Program.DbPath);

            reader.Connect();
            DataTable shopItemTable = reader.ExecuteQuery("SELECT tm.item_id, tm.coin_num, tm.motion_id, t0.text as ItemName, t1.text as ItemDesc FROM (SELECT item_id, coin_num, motion_id FROM single_mode_free_shop_item) as tm, (SELECT \"index\", text FROM text_data WHERE category=225) as t0, (SELECT \"index\", text FROM text_data WHERE category=238) as t1 WHERE tm.item_id = t0.\"index\" AND tm.item_id = t1.\"index\"");

            reader.Disconnect();
            for (int i = 0; i < shopItemTable.Rows.Count; i++)
            {
                FreeShopItemData data = new FreeShopItemData();
                data.ItemId    = (long)shopItemTable.Rows[i]["item_id"];
                data.ItemPrice = (long)shopItemTable.Rows[i]["coin_num"];
                data.SetItemName(((string)shopItemTable.Rows[i]["ItemName"]).Replace("\\n", ""));
                data.ItemDesc = ((string)shopItemTable.Rows[i]["ItemDesc"]).Replace("\\n", "");
                if (!FreeShopDataList.Exists(a => a.ItemName.Equals(data.ItemName)))
                {
                    string transName = Program.TransDict.GetTranslation(transDict, data.ItemName);
                    if (string.IsNullOrEmpty(transName))
                    {
                        transName = string.Empty;
                    }
                    data.ItemNameTrans = transName;
                    string transDesc = Program.TransDict.GetTranslation(transDict, data.ItemDesc);
                    if (string.IsNullOrEmpty(transDesc))
                    {
                        transDesc = string.Empty;
                    }
                    data.ItemDescTrans = transDesc;
                    FreeShopDataList.Add(data);
                }
            }
        }
        public void FillData()
        {
            SQLiteTableReader reader = new SQLiteTableReader(null, Program.DbPath);

            reader.Connect();
            DataTable factorTable = reader.ExecuteQuery("SELECT tm.factor_id as id, tm.factor_type, t0.text as FactorName, t1.text as FactorDesc FROM (SELECT factor_id, factor_type FROM succession_factor) as tm, (SELECT \"index\", text FROM text_data WHERE category=147) as t0, (SELECT \"index\", text FROM text_data WHERE category=172) as t1 WHERE tm.factor_id = t0.\"index\" AND tm.factor_id = t1.\"index\"");

            reader.Disconnect();
            for (int i = 0; i < factorTable.Rows.Count; i++)
            {
                FactorData data = new FactorData();
                data.Id         = (long)factorTable.Rows[i]["id"];
                data.FactorType = (FactorType)factorTable.Rows[i]["factor_type"];
                data.Desc       = (string)factorTable.Rows[i]["FactorDesc"];
                data.Desc       = data.Desc.Replace("\\n", "");
                data.SetName((string)factorTable.Rows[i]["FactorName"]);
                if (!FactorDataList.Exists(a => a.Name.Equals(data.Name)))
                {
                    string transName = Program.TransDict.GetTranslation(transDict, data.Name);
                    if (string.IsNullOrEmpty(transName))
                    {
                        transName = string.Empty;
                    }
                    data.NameTrans = transName;
                    string transDesc = Program.TransDict.GetTranslation(transDict, data.Desc);
                    if (string.IsNullOrEmpty(transDesc))
                    {
                        transDesc = string.Empty;
                    }
                    data.DescTrans = transDesc;
                    FactorDataList.Add(data);
                }
            }

            for (int i = 0; i < FactorDataList.Count; i++)
            {
                KeyValuePair <int, StringData> data = new KeyValuePair <int, StringData>(i, new StringData(FactorDataList[i].NameToCheck));
                int key = FactorDataList[i].NameToCheck.Length;
                if (factorListByName.ContainsKey(key))
                {
                    factorListByName[key].Add(data);
                }
                else
                {
                    factorListByName.Add(key, new List <KeyValuePair <int, StringData> >()
                    {
                        data
                    });
                }
            }
        }
        public void FillData()
        {
            SQLiteTableReader reader = new SQLiteTableReader(null, Program.DbPath);

            reader.Connect();
            DataTable skillTable = reader.ExecuteQuery("SELECT tm.id, tm.icon_id,tm.rarity, t0.text as SkillName, t1.text as SkillDesc FROM (SELECT id, rarity, icon_id FROM skill_data) as tm, (SELECT \"index\", text FROM text_data WHERE category=47) as t0, (SELECT \"index\", text FROM text_data WHERE category=48) as t1 WHERE tm.id = t0.\"index\" AND tm.id = t1.\"index\"");

            reader.Disconnect();
            for (int i = 0; i < skillTable.Rows.Count; i++)
            {
                SkillData data = new SkillData();
                data.Id     = (long)skillTable.Rows[i]["id"];
                data.IconId = (long)skillTable.Rows[i]["icon_id"];
                data.Rarity = (long)skillTable.Rows[i]["rarity"];
                data.Desc   = (string)skillTable.Rows[i]["SkillDesc"];
                data.Desc   = data.Desc.Replace("\\n", "");
                data.SetName((string)skillTable.Rows[i]["SkillName"]);
                SkillDataList.Add(data);
            }

            for (int i = 0; i < SkillDataList.Count; i++)
            {
                if (SkillDataList[i].Rarity > 2)
                {
                    continue;
                }
                KeyValuePair <int, StringData> data = new KeyValuePair <int, StringData>(i, new StringData(SkillDataList[i].NameToCheck));
                int key = SkillDataList[i].NameToCheck.Length;
                if (skillListByName.ContainsKey(key))
                {
                    skillListByName[key].Add(data);
                }
                else
                {
                    skillListByName.Add(key, new List <KeyValuePair <int, StringData> >()
                    {
                        data
                    });
                }
            }
        }