Beispiel #1
0
        /// <summary>
        /// 随从的导入
        /// </summary>
        /// <param name="target"></param>
        /// <param name="workbook"></param>
        private void Minion(dynamic workbook)
        {
            if (Directory.Exists(ExportFolderPicker.SelectedPathOrFileName + "\\Minion\\"))
            {
                Directory.Delete(ExportFolderPicker.SelectedPathOrFileName + "\\Minion\\", true);
            }
            Directory.CreateDirectory(ExportFolderPicker.SelectedPathOrFileName + "\\Minion\\");
            //随从的导入
            dynamic worksheet = workbook.Sheets(1);
            int rowCount = 4;
            while (!string.IsNullOrEmpty(worksheet.Cells(rowCount, 2).Text))
            {
                MinionCard Minion = new MinionCard();
                Minion.序列号 = worksheet.Cells(rowCount, 2).Text;
                Minion.名称 = worksheet.Cells(rowCount, 3).Text;
                Minion.描述 = worksheet.Cells(rowCount, 4).Text;
                Minion.职业 = CSharpUtility.GetEnum<CardUtility.职业枚举>(worksheet.Cells(rowCount, 5).Text, CardUtility.职业枚举.中立);
                Minion.种族 = CSharpUtility.GetEnum<CardUtility.种族枚举>(worksheet.Cells(rowCount, 6).Text, CardUtility.种族枚举.无);
                Minion.使用成本 = CSharpUtility.GetInt(worksheet.Cells(rowCount, 7).Text);

                Minion.攻击力 = CSharpUtility.GetInt(worksheet.Cells(rowCount, 8).Text);
                Minion.生命值上限 = CSharpUtility.GetInt(worksheet.Cells(rowCount, 9).Text);
                Minion.稀有程度 = CSharpUtility.GetEnum<CardBasicInfo.稀有程度枚举>(worksheet.Cells(rowCount, 12).Text, CardBasicInfo.稀有程度枚举.白色);
                Minion.是否启用 = !string.IsNullOrEmpty(worksheet.Cells(rowCount, 13).Text);

                Minion.嘲讽特性 = !string.IsNullOrEmpty(worksheet.Cells(rowCount, 14).Text);
                Minion.冲锋特性 = !string.IsNullOrEmpty(worksheet.Cells(rowCount, 15).Text);
                Minion.风怒特性 = !string.IsNullOrEmpty(worksheet.Cells(rowCount, 17).Text);
                Minion.潜行特性 = !string.IsNullOrEmpty(worksheet.Cells(rowCount, 18).Text);
                Minion.圣盾特性 = !string.IsNullOrEmpty(worksheet.Cells(rowCount, 19).Text);

                bool HasBuff = false;
                for (int i = 22; i < 25; i++)
                {
                    if (!string.IsNullOrEmpty(worksheet.Cells(rowCount, i).Text))
                    {
                        HasBuff = true;
                        break;
                    }
                }
                if (HasBuff)
                {
                    Minion.光环效果.来源 = Minion.名称;
                    //Minion.光环效果.范围 = CSharpUtility.GetEnum<Buff.光环范围枚举>(worksheet.Cells(rowCount, 22).Text, Buff.光环范围枚举.随从全体);
                    Minion.光环效果.类型 = CSharpUtility.GetEnum<Buff.光环类型枚举>(worksheet.Cells(rowCount, 23).Text, Buff.光环类型枚举.增加攻防);
                    Minion.光环效果.信息 = worksheet.Cells(rowCount, 24).Text;
                }
                Minion.战吼效果 = worksheet.Cells(rowCount, 25).Text;
                Minion.亡语效果 = worksheet.Cells(rowCount, 27).Text;
                Minion.激怒效果 = worksheet.Cells(rowCount, 28).Text;
                Minion.连击效果 = worksheet.Cells(rowCount, 29).Text;
                Minion.回合开始效果 = worksheet.Cells(rowCount, 30).Text;
                Minion.回合结束效果 = worksheet.Cells(rowCount, 31).Text;
                Minion.过载 = CSharpUtility.GetInt(worksheet.Cells(rowCount, 32).Text);
                //Minion.自身事件效果.触发效果事件类型 = CSharpUtility.GetEnum<CardUtility.事件类型枚举>(worksheet.Cells(rowCount, 33).Text, CardUtility.事件类型枚举.无);
                Minion.自身事件效果.效果编号 = worksheet.Cells(rowCount, 34).Text;
                Minion.自身事件效果.触发效果事件方向 = CSharpUtility.GetEnum<CardUtility.目标选择方向枚举>(worksheet.Cells(rowCount, 35).Text, CardUtility.目标选择方向枚举.本方);
                Minion.自身事件效果.限制信息 = worksheet.Cells(rowCount, 36).Text;
                Minion.特殊效果 = CSharpUtility.GetEnum<MinionCard.特殊效果枚举>(worksheet.Cells(rowCount, 37).Text, MinionCard.特殊效果枚举.无效果);
                switch (exportType)
                {
                    case SystemManager.ExportType.XML:
                        XmlSerializer xml = new XmlSerializer(typeof(MinionCard));
                        string XmlFilename = ExportFolderPicker.SelectedPathOrFileName + "\\Minion\\" + Minion.序列号 + ".xml";
                        xml.Serialize(new StreamWriter(XmlFilename), Minion);
                        break;
                    case SystemManager.ExportType.JSON:
                        string JSonFilename = ExportFolderPicker.SelectedPathOrFileName + "\\Minion\\" + Minion.序列号 + ".json";
                        StreamWriter json = new StreamWriter(JSonFilename);
                        json.Write(Minion.ToJson());
                        json.Close();
                        break;
                    default:
                        break;
                }
                rowCount++;
            }
        }