public ParsedMapStageDetailLevelData(RawMapStageDetailLevelData raw, ParsedMapStageDetailData MapStageDetail)
        {
            try
            {
                MapStageDetailId    = int.Parse(raw.MapStageDetailId);
                Level               = int.Parse(raw.Level);
                CardList            = string.IsNullOrEmpty(raw.CardList) ? new string[] { } : raw.CardList.Split(',');
                RuneList            = string.IsNullOrEmpty(raw.RuneList) ? new string[] { } : raw.RuneList.Split(',');
                HeroLevel           = int.Parse(raw.HeroLevel);
                AchievementId       = int.Parse(raw.AchievementId);
                EnergyExpend        = int.Parse(raw.EnergyExpend);
                BonusWin            = string.IsNullOrEmpty(raw.BonusWin) ? new string[] { } : raw.BonusWin.Split(',');
                FirstBonusWin       = string.IsNullOrEmpty(raw.FirstBonusWin) ? new string[] { } : raw.FirstBonusWin.Split(',');
                BonusLose           = string.IsNullOrEmpty(raw.BonusLose) ? new string[] { } : raw.BonusLose.Split(',');
                AddedBonus          = string.IsNullOrEmpty(raw.AddedBonus) ? new string[] { } : raw.AddedBonus.Split(',');
                EnergyExplore       = int.Parse(raw.EnergyExplore);
                BonusExplore        = string.IsNullOrEmpty(raw.AddedBonus) ? new string[] { } : raw.BonusExplore.Split(',');
                Hint                = int.Parse(raw.Hint);
                BonusChip           = string.IsNullOrEmpty(raw.BonusChip) ? (int?)null : int.Parse(raw.BonusChip);
                ChipRate            = string.IsNullOrEmpty(raw.ChipRate) ? (int?)null : int.Parse(raw.ChipRate);
                AchievementText     = raw.AchievementText;
                this.MapStageDetail = MapStageDetail;
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex);
                Console.WriteLine(JsonConvert.SerializeObject(raw));
                Console.ResetColor();

                throw new ArgumentException($"解析 ID 为 {MapStageDetail.MapStageId}-{raw.MapStageDetailId}-{raw.Level} 的关卡子关数据时出错", ex);
            }
        }
        public ParsedMapStageDetailDialogueData(RawMapStageDetailDialogueData raw, ParsedMapStageDetailData MapStageDetail)
        {
            try
            {
                StoryId             = int.Parse(raw.StoryId);
                Did                 = raw.Did;
                NPC                 = raw.NPC;
                Dialogue            = raw.Dialogue;
                Icon                = raw.Icon;
                Orientations        = int.Parse(raw.Orientations);
                Opportunity         = int.Parse(raw.Opportunity);
                this.MapStageDetail = MapStageDetail;
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex);
                Console.WriteLine(JsonConvert.SerializeObject(raw));
                Console.ResetColor();

                throw new ArgumentException($"解析 ID 为 {raw.StoryId} 的剧情数据时出错", ex);
            }
        }