Exemplo n.º 1
0
        /// <summary>
        /// 绑定具体信息
        /// </summary>
        /// <param name="oobID"></param>
        private void BindDetail(int oobID)
        {
            if (oobID == 0)
            {
                return;
            }
            ClearBaseInformation();
            ClearLeaderInformation();
            OOBInfo oobModel = oobList.Find(o => o.id == oobID);

            if (oobModel.armyType == ArmyTypeEnum.Regiment || oobModel.armyType == ArmyTypeEnum.Ship || oobModel.armyType == ArmyTypeEnum.Wing)
            {
                int parentID = oobModel.parentID;
                oobModel = oobList.Find(o => o.id == parentID);
                oobID    = oobModel.id;
            }

            #region 绑定基本信息
            txt_BasicID.Text   = oobID.ToString();
            txt_BasicName.Text = oobModel.name;
            txt_BasicType.Text = GetOOBType(oobModel.armyType);
            string flagPath = RetuenPath(string.Concat(pathInfo.gfxPath, "flags\\", countryCode, ".tga"));

            Bitmap m_bmp = DevIL.DevIL.LoadBitmap(flagPath);
            pb_CountryFlag.Image = m_bmp;
            string provinceName = "";
            if (!string.IsNullOrEmpty(oobModel.location))
            {
                provinceName = string.Concat(localisationModel.ProvinceList.Find(p => p.id == oobModel.location).name, "(", oobModel.location, ")");
            }
            else
            {
                OOBInfo parentOOBModel = oobList.Find(o => o.id == oobModel.parentID);
                provinceName = string.Concat(localisationModel.ProvinceList.Find(p => p.id == parentOOBModel.location).name, "(", parentOOBModel.location, ")");
            }
            txt_BasicLocation.Text = provinceName;

            if (oobModel.is_reserve == null)
            {
                cb_Reserve.Enabled = false;
            }
            else
            {
                cb_Reserve.Enabled = true;
                cb_Reserve.Checked = oobModel.is_reserve.Value;
            }
            #endregion

            BindLeader(oobModel);

            this.panel1.Controls.Clear();
            foreach (OOBInfo oobInfo in oobList.FindAll(o => o.parentID == oobID))
            {
                if (oobInfo.armyType == ArmyTypeEnum.Regiment || oobInfo.armyType == ArmyTypeEnum.Ship || oobInfo.armyType == ArmyTypeEnum.Wing)
                {
                    ShowUserControl(oobInfo);
                    acNum++;
                }
            }
        }
Exemplo n.º 2
0
        private void GenerateAdvanced(OOBInfo oobInfo, int tabNum)
        {
            AddTab(tabNum);
            int childTabNum = tabNum + 1;

            sb.Append(oobInfo.armyType.ToString().ToLower() + " = {\r\n");

            GeneralAdvancedBasicCode(oobInfo, childTabNum);

            var oobChildList = oobList.FindAll(c => c.parentID == oobInfo.id).OrderBy(co => co.id);

            foreach (OOBInfo oobChildInfo in oobChildList)
            {
                if (oobChildInfo.armyType == ArmyTypeEnum.Regiment || oobChildInfo.armyType == ArmyTypeEnum.Ship || oobChildInfo.armyType == ArmyTypeEnum.Wing)
                {
                    GenerateRegimentOrShipOrWing(oobChildInfo, childTabNum);
                    var oobChildList2 = oobList.FindAll(c => c.parentID == oobChildInfo.id);
                    if (oobChildList2.Count > 0)
                    {
                        foreach (OOBInfo oobChildInfo2 in oobChildList2)
                        {
                            GenerateAdvanced(oobChildInfo2, childTabNum);
                        }
                    }
                    continue;
                }
                GenerateAdvanced(oobChildInfo, childTabNum);
            }
            AddTab(tabNum);
            sb.Append("}\r\n");
        }
Exemplo n.º 3
0
        private void btn_AddAttachment_Click(object sender, EventArgs e)
        {
            //OOBInfo

            OOBInfo oobInfo = new OOBInfo();

            this.lastOobID++;
            oobInfo.id = lastOobID;
            if (acNum == 0)
            {
                oobInfo.name = this.txt_BasicName.Text.Trim();
            }
            string       basicTypeName = (string)cbb_BasicType.SelectedItem;//获取当前选中项
            ArmyTypeEnum armyTypeEnum  = ConvertArmyTypeStringToEnum(basicTypeName);

            if (armyTypeEnum.Equals(ArmyTypeEnum.Navy))
            {
                oobInfo.type = "destroyer";
            }
            else if (armyTypeEnum.Equals(ArmyTypeEnum.Air))
            {
                oobInfo.type = "interceptor";
            }
            else
            {
                oobInfo.type = "hq_brigade";
            }

            ShowUserControl(oobInfo);
            acNum++;
        }
Exemplo n.º 4
0
        /// <summary>
        /// 绑定附属部队
        /// </summary>
        /// <param name="oobInfo"></param>
        /// <param name="acNum"></param>
        private void ShowUserControl(OOBInfo oobInfo)
        {
            try
            {
                Add_AttachmentControl aac = new Add_AttachmentControl(oobInfo, localisationModel, pathInfo, countryCode, militaryTypeList);

                if (this.panel1.Controls.Count > 0)
                {
                    Point point = this.panel1.Controls[this.panel1.Controls.Count - 1].Location;
                    aac.Location = new Point(-5, point.Y + 105);
                }
                else
                {
                    int pointy = acNum == 0 ? (acNum * 105) : (acNum * 105);
                    aac.Location = new Point(-5, pointy);
                }
                aac.Parent = this.panel1;
                aac.Height = 100;
                this.panel1.Controls.Add(aac);
            }
            catch (Exception ex)
            {
                ShowErrorMessage("添加附属部队失败:" + ex.Message);
            }
        }
 public Add_AttachmentControl(OOBInfo oobInfo, LocalisationInfo localisationModel, PathInfo pathInfo, string countryCode, List <MilitaryTypeInfo> militaryTypeList)
 {
     InitializeComponent();
     this.oobInfo           = oobInfo;
     this.localisationModel = localisationModel;
     this.pathInfo          = pathInfo;
     this.countryCode       = countryCode;
     this.militaryTypeList  = militaryTypeList;
     Bind();
     BindAttType();
 }
Exemplo n.º 6
0
        /// <summary>
        /// 绑定将领信息
        /// </summary>
        /// <param name="oobModel"></param>
        private void BindLeader(OOBInfo oobModel)
        {
            if (!string.IsNullOrEmpty(oobModel.leader))
            {
                LeaderInfo leaderInfo = leaderList.Find(l => l.ID.ToString() == oobModel.leader);
                if (leaderInfo != null)
                {
                    string leaderPath = RetuenPath(string.Concat(pathInfo.gfxPath, "pictures\\portraits\\", leaderInfo.picture, ".tga"));

                    Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath);
                    pb_Leader.Image         = m_bmpLeader;
                    txt_LeaderID.Text       = leaderInfo.ID.ToString();
                    txt_LeaderName.Text     = leaderInfo.name;
                    txt_LeaderSkill.Text    = leaderInfo.skill.ToString();
                    txt_LeaderMaxSkill.Text = leaderInfo.max_skill.ToString();
                    int num = leaderInfo.add_trait.Count;
                    if (num > 0)
                    {
                        pictureBox_trait1.Image = showTraitImage(leaderInfo.add_trait[0]);
                        traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[0]).traitName);
                    }
                    if (num > 1)
                    {
                        pictureBox_trait2.Image = showTraitImage(leaderInfo.add_trait[1]);
                        traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[1]).traitName);
                    }
                    if (num > 2)
                    {
                        pictureBox_trait3.Image = showTraitImage(leaderInfo.add_trait[2]);
                        traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[2]).traitName);
                    }
                    if (num > 3)
                    {
                        pictureBox_trait4.Image = showTraitImage(leaderInfo.add_trait[3]);
                        traitList.Add(leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[3]).traitName);
                    }
                }
                else
                {
                    string leaderPath = RetuenPath(string.Concat(pathInfo.gfxPath, "pictures\\portraits\\empty_position.tga"));

                    Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath);
                    pb_Leader.Image = m_bmpLeader;
                }
            }
            else
            {
                string leaderPath = RetuenPath(string.Concat(pathInfo.gfxPath, "pictures\\portraits\\empty_position.tga"));

                Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath);
                pb_Leader.Image = m_bmpLeader;
            }
        }
Exemplo n.º 7
0
 private void GenerateRegimentOrShipOrWing(OOBInfo oobInfo, int tabNum)
 {
     AddTab(tabNum);
     sb.Append(oobInfo.armyType.ToString().ToLower() + " = {");
     sb.Append(" type = " + oobInfo.type);
     if (!string.IsNullOrEmpty(oobInfo.name))
     {
         sb.Append(" name = \"" + oobInfo.name + "\"");
     }
     if (!string.IsNullOrEmpty(oobInfo.experience))
     {
         sb.Append(" experience = " + oobInfo.experience);
     }
     sb.Append(" historical_model = " + oobInfo.historical_model + " }\r\n");
 }
Exemplo n.º 8
0
 private void 添加新部队ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         int             oobID           = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString());
         int             lastOOBID       = oobList.FindAll(l => l.id > -1).Max(m => m.id);
         OOBInfo         parentOOBInfo   = oobList.Find(o => o.id == oobID);
         AddMilitaryForm addMilitaryForm = new AddMilitaryForm(localisationModel, pathInfo, countryCode, militaryTypeList, oobID, lastOOBID, parentOOBInfo.armyType);
         addMilitaryForm.add_military += new AddMilitaryForm.Add_military(alreadyAddMilitary);
         addMilitaryForm.Show();
     }
     catch (Exception ex)
     {
         ShowErrorMessage("添加新部队失败:" + ex.Message);
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// 绑定附属部队
 /// </summary>
 /// <param name="oobInfo"></param>
 /// <param name="acNum"></param>
 private void ShowUserControl(OOBInfo oobInfo)
 {
     try
     {
         AttachmentControl ac = new AttachmentControl(oobInfo, localisationModel, pathInfo, countryCode, militaryTypeList);
         ac.Parent = this.panel1;
         int pointy = acNum == 0 ? (acNum * 105) : (acNum * 105);
         ac.Location = new Point(5, pointy);
         ac.Height   = 100;
         this.panel1.Controls.Add(ac);
     }
     catch (Exception ex)
     {
         ShowErrorMessage("附属部队绑定失败:" + ex.Message);
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// 添加附属部队
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_AddAttBriage_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.txt_BasicID.Text))
            {
                ShowErrorMessage("请先选择部队");
                return;
            }
            int parentID      = Convert.ToInt32(this.txt_BasicID.Text.Trim());
            int listLastOOBID = oobList.FindAll(l => l.id > -1).Max(m => m.id);

            if (lastOOBID < listLastOOBID)
            {
                lastOOBID = listLastOOBID;
            }
            OOBInfo oobInfo = new OOBInfo();

            //if (lastOOBID == 0)
            //{
            //    lastOOBID = oobList.FindAll(l => l.id > -1).Max(m => m.id);
            //}
            lastOOBID++;
            oobInfo.id = lastOOBID;
            if (acNum == 0)
            {
                oobInfo.name = this.txt_BasicName.Text.Trim();
            }
            OOBInfo parentOOBInfo = oobList.Find(p => p.id == parentID);

            if (parentOOBInfo.armyType == ArmyTypeEnum.Navy)
            {
                oobInfo.type = "destroyer";
            }
            else if (parentOOBInfo.armyType == ArmyTypeEnum.Air)
            {
                oobInfo.type = "multi_role";
            }
            else
            {
                oobInfo.type = "hq_brigade";
            }
            AddShowUserControl(oobInfo);
        }
Exemplo n.º 11
0
        private void changeLeaderID(string leaderID)
        {
            try
            {
                int     oobID         = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString());
                OOBInfo leaderOOBInfo = oobList.Find(o => o.leader == leaderID);
                if (leaderOOBInfo != null)
                {
                    leaderOOBInfo.leader = "";
                }
                OOBInfo oobInfo = oobList.Find(o => o.id == oobID);
                oobInfo.leader = leaderID;

                BindLeader(oobInfo);
            }
            catch (Exception ex)
            {
                ShowErrorMessage("添加将领失败:" + ex.Message);
            }
        }
Exemplo n.º 12
0
 private void 添加将领ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         int     oobID   = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString());
         OOBInfo oobInfo = oobList.Find(o => o.id == oobID);
         if (oobInfo.armyType != ArmyTypeEnum.Regiment && oobInfo.armyType != ArmyTypeEnum.Ship && oobInfo.armyType != ArmyTypeEnum.Wing)
         {
             SelectLeaderForm selectLeaderForm = new SelectLeaderForm(oobList, pathInfo, countryCode, 0, leaderTraitList, leaderList, oobInfo.armyType);
             selectLeaderForm.change_Leader += new SelectLeaderForm.Change_Leader(changeLeaderID);
             selectLeaderForm.Show();
         }
         else
         {
             ShowErrorMessage("旅级部队不支持选择将领");
         }
     }
     catch (Exception ex)
     {
         ShowErrorMessage("添加将领失败:" + ex.Message);
     }
 }
Exemplo n.º 13
0
 private void GeneralAdvancedBasicCode(OOBInfo oobInfo, int tabNum)
 {
     AddTab(tabNum);
     sb.Append("name = \"" + oobInfo.name + "\"\r\n");
     AddTab(tabNum);
     sb.Append("location = " + oobInfo.location + "\r\n");
     if (!string.IsNullOrEmpty(oobInfo.leader))
     {
         AddTab(tabNum);
         sb.Append("leader = " + oobInfo.leader + "\r\n");
     }
     if ((oobInfo.armyType == ArmyTypeEnum.Navy || oobInfo.armyType == ArmyTypeEnum.Air) && !string.IsNullOrEmpty(oobInfo.baseID))
     {
         AddTab(tabNum);
         sb.Append("base = " + oobInfo.baseID + "\r\n");
     }
     if (oobInfo.armyType == ArmyTypeEnum.Division && oobInfo.is_reserve.HasValue)
     {
         AddTab(tabNum);
         sb.Append("is_reserve = yes \r\n");
     }
 }
Exemplo n.º 14
0
        private void  除当前将领ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int oobID = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString());

            if (oobID == 0)
            {
                return;
            }
            OOBInfo oobModel = oobList.Find(o => o.id == oobID);

            if (oobModel.armyType == ArmyTypeEnum.Regiment || oobModel.armyType == ArmyTypeEnum.Ship || oobModel.armyType == ArmyTypeEnum.Wing)
            {
                int parentID = oobModel.parentID;
                oobModel = oobList.Find(o => o.id == parentID);
                oobID    = oobModel.id;
            }
            oobModel.leader = "";
            //if (ShowErrorMessageOK("删除当前将领成功") == DialogResult.OK)
            //{
            BindDetail(oobID);
            //}
        }
Exemplo n.º 15
0
 private void  除当前部队ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try
     {
         int oobID = Convert.ToInt32(tv_Military.SelectedNode.Name.ToString());
         if (oobID == 0)
         {
             return;
         }
         OOBInfo oobModel = oobList.Find(o => o.id == oobID);
         oobList.Remove(oobModel);
         //if (ShowErrorMessageOK("删除当前部队成功") == DialogResult.OK)
         //{
         this.tv_Military.Nodes.Clear();
         BindTree(0, oobList);
         //}
     }
     catch (Exception ex)
     {
         ShowErrorMessage("删除当前部队失败:" + ex.Message);
     }
 }
Exemplo n.º 16
0
        public void DataGridViewBind(string leaderName = null, string leaderMaxSkill = null, string leaderTraitCode = null)
        {
            bindLeaderList = leaderList;
            DataTable dt = new DataTable();

            #region 创建列
            DataColumn dtc = new DataColumn("图片", typeof(Bitmap));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("ID", typeof(Int32));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("姓名", typeof(string));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("隶属", typeof(string));
            dt.Columns.Add(dtc);
            //dtc = new DataColumn("类型", typeof(string));
            //dt.Columns.Add(dtc);
            dtc = new DataColumn("技能", typeof(Int32));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("最大", typeof(Int32));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("技能1", typeof(string));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("技能2", typeof(string));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("技能3", typeof(string));
            dt.Columns.Add(dtc);
            dtc = new DataColumn("技能4", typeof(string));
            dt.Columns.Add(dtc);
            #endregion
            string oobType = GetOOBType(armyTypeEnum);
            bindLeaderList = bindLeaderList.FindAll(l => l.type == oobType);
            if (!string.IsNullOrEmpty(leaderName))
            {
                bindLeaderList = bindLeaderList.FindAll(l => l.name.Contains(leaderName));
            }
            if (!string.IsNullOrEmpty(leaderMaxSkill))
            {
                int maxSkill = Convert.ToInt32(leaderMaxSkill);
                bindLeaderList = bindLeaderList.FindAll(l => l.max_skill == maxSkill);
            }
            if (!string.IsNullOrEmpty(leaderTraitCode))
            {
                List <LeaderInfo> newLeaderList = new List <LeaderInfo>();
                foreach (LeaderInfo l in bindLeaderList)
                {
                    if (l.add_trait.Count > 0)
                    {
                        if (!string.IsNullOrEmpty(l.add_trait.Find(at => at == leaderTraitCode)))
                        {
                            newLeaderList.Add(l);
                        }
                    }
                }
                bindLeaderList = newLeaderList;
            }
            foreach (LeaderInfo leaderInfo in bindLeaderList)
            {
                DataRow dr         = dt.NewRow();
                string  leaderPath = ReturnLeaderPicturePath(leaderInfo.picture);

                Bitmap m_bmpLeader = DevIL.DevIL.LoadBitmap(leaderPath);
                dr["图片"] = m_bmpLeader;
                dr["ID"] = leaderInfo.ID;
                dr["姓名"] = leaderInfo.name.Trim();
                OOBInfo oobInfo = oobList.Find(o => o.leader == leaderInfo.ID.ToString());
                dr["隶属"] = oobInfo == null ? "" : oobInfo.name;
                //dr["类型"] = leaderInfo.type;
                dr["技能"] = leaderInfo.skill;
                dr["最大"] = leaderInfo.max_skill;
                int num = leaderInfo.add_trait.Count;
                if (num > 0)
                {
                    dr["技能1"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[0]).traitName;
                }
                if (num > 1)
                {
                    dr["技能2"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[1]).traitName;
                }
                if (num > 2)
                {
                    dr["技能3"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[2]).traitName;
                }
                if (num > 3)
                {
                    dr["技能4"] = leaderTraitList.Find(t => t.traitCode == leaderInfo.add_trait[3]).traitName;
                }

                dt.Rows.Add(dr);
            }
            dataGridView1.DataSource          = dt;
            dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
            dataGridView1.AutoSizeRowsMode    = DataGridViewAutoSizeRowsMode.AllCells;
            dataGridView1.AllowUserToAddRows  = false;
            dataGridView1.RowHeadersVisible   = false; //去掉最左边的空列
        }
Exemplo n.º 17
0
        private void btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                List <OOBInfo> oobList = new List <OOBInfo>();
                int            ID      = Convert.ToInt32(txt_BasicID.Text);

                OOBInfo oobAddInfo = new OOBInfo();

                #region 赋值基本信息
                oobAddInfo.id       = ID;
                oobAddInfo.parentID = parentID;
                if (!((string)cbb_BasicType.SelectedItem).Equals("请选择"))
                {
                    string attTypeName = (string)cbb_BasicType.SelectedItem;//获取当前选中项
                    oobAddInfo.armyType = ConvertArmyTypeStringToEnum(attTypeName);
                }
                if (!string.IsNullOrEmpty(txt_BasicName.Text))
                {
                    oobAddInfo.name = txt_BasicName.Text.Trim();
                }
                if (!string.IsNullOrEmpty(txt_BasicLocation.Text))
                {
                    Regex           reg = new Regex(@"[0-9][0-9,.]*");
                    MatchCollection mc  = reg.Matches(txt_BasicLocation.Text);
                    if (mc.Count > 0)
                    {
                        if (oobAddInfo.armyType != ArmyTypeEnum.Navy && oobAddInfo.armyType != ArmyTypeEnum.Air)
                        {
                            oobAddInfo.location = mc[0].Value;
                        }
                        else
                        {
                            oobAddInfo.location = mc[0].Value;
                            oobAddInfo.baseID   = mc[0].Value;
                        }
                    }
                }
                if (cb_Reserve.Enabled && oobAddInfo.armyType == ArmyTypeEnum.Division)
                {
                    oobAddInfo.is_reserve = cb_Reserve.Checked;
                }
                oobList.Add(oobAddInfo);
                #endregion

                #region 赋值附属部队的信息
                foreach (Control c in this.panel1.Controls)
                {
                    Add_AttachmentControl aac = (Add_AttachmentControl)c;
                    TextBox txt_AttID         = (TextBox)aac.Controls[0].Controls.Find("txt_AttID", false)[0];
                    int     attID             = Convert.ToInt32(txt_AttID.Text);
                    OOBInfo oobAttAddInfo     = new OOBInfo();
                    oobAttAddInfo.id       = attID;
                    oobAttAddInfo.parentID = ID;
                    TextBox txt_AttName = (TextBox)aac.Controls[0].Controls.Find("txt_AttName", false)[0];
                    if (!string.IsNullOrEmpty(txt_AttName.Text))
                    {
                        oobAttAddInfo.name = txt_AttName.Text;
                    }
                    TextBox txt_AttExp = (TextBox)aac.Controls[0].Controls.Find("txt_AttExp", false)[0];
                    if (!string.IsNullOrEmpty(txt_AttExp.Text))
                    {
                        oobAttAddInfo.experience = txt_AttExp.Text;
                    }
                    ComboBox cbb_AttType = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttType", false)[0];
                    if (cbb_AttType.SelectedItem != null)
                    {
                        MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString());
                        oobAttAddInfo.type = militaryTypeInfo.type;
                    }
                    ComboBox cbb_AttModel = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttModel", false)[0];
                    if (cbb_AttModel.SelectedItem != null)
                    {
                        MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString());
                        if (militaryTypeInfo.unitModelList != null || militaryTypeInfo.unitModelList.Count > 0)
                        {
                            oobAttAddInfo.historical_model = militaryTypeInfo.unitModelList.Find(uml => uml.name == cbb_AttModel.SelectedItem.ToString()).modelNum;
                        }
                    }
                    if (oobAddInfo.armyType == ArmyTypeEnum.Navy)
                    {
                        oobAttAddInfo.armyType = ArmyTypeEnum.Ship;
                    }
                    else if (oobAddInfo.armyType == ArmyTypeEnum.Air)
                    {
                        oobAttAddInfo.armyType = ArmyTypeEnum.Wing;
                    }
                    else
                    {
                        oobAttAddInfo.armyType = ArmyTypeEnum.Regiment;
                    }
                    oobList.Add(oobAttAddInfo);
                }
                #endregion

                this.Close();
                this.add_military(oobList);
            }
            catch (Exception ex)
            {
                ShowErrorMessage("保存失败:" + ex.Message);
            }
        }
Exemplo n.º 18
0
        private void Save(object sender, EventArgs e)
        {
            try
            {
                int ID = Convert.ToInt32(txt_BasicID.Text);

                OOBInfo oobUpdateInfo = oobList.Find(o => o.id == ID);
                //移除当前的oob
                //oobList.Remove(oobUpdateInfo);

                #region 赋值基本信息
                if (!string.IsNullOrEmpty(txt_BasicName.Text))
                {
                    oobUpdateInfo.name = txt_BasicName.Text;
                    this.tv_Military.SelectedNode.Text = txt_BasicName.Text;
                }
                if (!string.IsNullOrEmpty(txt_BasicLocation.Text))
                {
                    Regex           reg = new Regex(@"[0-9][0-9,.]*");
                    MatchCollection mc  = reg.Matches(txt_BasicLocation.Text);
                    if (mc.Count > 0)
                    {
                        if (oobUpdateInfo.armyType != ArmyTypeEnum.Navy && oobUpdateInfo.armyType != ArmyTypeEnum.Air)
                        {
                            oobUpdateInfo.location = mc[0].Value;
                        }
                        else
                        {
                            oobUpdateInfo.location = mc[0].Value;
                            oobUpdateInfo.baseID   = mc[0].Value;
                        }
                    }
                }
                if (cb_Reserve.Enabled && oobUpdateInfo.armyType == ArmyTypeEnum.Division)
                {
                    oobUpdateInfo.is_reserve = cb_Reserve.Checked;
                }
                if (!string.IsNullOrEmpty(txt_LeaderID.Text))
                {
                    oobUpdateInfo.leader = txt_LeaderID.Text.Trim();
                }
                //oobList.Add(oobUpdateInfo);
                #endregion

                #region 赋值附属部队的信息
                int currentAcNum = oobList.FindAll(att => att.parentID == ID &&
                                                   (att.armyType == ArmyTypeEnum.Regiment || att.armyType == ArmyTypeEnum.Ship || att.armyType == ArmyTypeEnum.Wing)).Count;
                int num = 0;
                foreach (Control c in this.panel1.Controls)
                {
                    if (num < currentAcNum)
                    {
                        AttachmentControl ac        = (AttachmentControl)c;
                        TextBox           txt_AttID = (TextBox)ac.Controls[0].Controls.Find("txt_AttID", false)[0];
                        int     attID            = Convert.ToInt32(txt_AttID.Text);
                        OOBInfo oobAttUpdateInfo = oobList.Find(o => o.id == attID);
                        //oobList.Remove(oobAttUpdateInfo);

                        TextBox txt_AttName = (TextBox)ac.Controls[0].Controls.Find("txt_AttName", false)[0];
                        if (!string.IsNullOrEmpty(txt_AttName.Text))
                        {
                            oobAttUpdateInfo.name = txt_AttName.Text;
                        }
                        TextBox txt_AttExp = (TextBox)ac.Controls[0].Controls.Find("txt_AttExp", false)[0];
                        if (!string.IsNullOrEmpty(txt_AttExp.Text))
                        {
                            oobAttUpdateInfo.experience = txt_AttExp.Text;
                        }
                        ComboBox cbb_AttType = (ComboBox)ac.Controls[0].Controls.Find("cbb_AttType", false)[0];
                        if (cbb_AttType.SelectedItem != null)
                        {
                            MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString());
                            oobAttUpdateInfo.type = militaryTypeInfo.type;
                        }
                        ComboBox cbb_AttModel = (ComboBox)ac.Controls[0].Controls.Find("cbb_AttModel", false)[0];
                        if (cbb_AttModel.SelectedItem != null)
                        {
                            MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString());
                            if (militaryTypeInfo.unitModelList != null || militaryTypeInfo.unitModelList.Count > 0)
                            {
                                oobAttUpdateInfo.historical_model = militaryTypeInfo.unitModelList.Find(uml => uml.name == cbb_AttModel.SelectedItem.ToString()).modelNum;
                            }
                        }
                        //oobList.Add(oobAttUpdateInfo);
                    }
                    else
                    {
                        Add_AttachmentControl aac = (Add_AttachmentControl)c;
                        TextBox txt_AttID         = (TextBox)aac.Controls[0].Controls.Find("txt_AttID", false)[0];
                        int     attID             = Convert.ToInt32(txt_AttID.Text);
                        OOBInfo oobAttAddInfo     = new OOBInfo();
                        oobAttAddInfo.id       = attID;
                        oobAttAddInfo.parentID = ID;
                        TextBox txt_AttName = (TextBox)aac.Controls[0].Controls.Find("txt_AttName", false)[0];
                        if (!string.IsNullOrEmpty(txt_AttName.Text))
                        {
                            oobAttAddInfo.name = txt_AttName.Text;
                        }
                        TextBox txt_AttExp = (TextBox)aac.Controls[0].Controls.Find("txt_AttExp", false)[0];
                        if (!string.IsNullOrEmpty(txt_AttExp.Text))
                        {
                            oobAttAddInfo.experience = txt_AttExp.Text;
                        }
                        ComboBox cbb_AttType = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttType", false)[0];
                        if (cbb_AttType.SelectedItem != null)
                        {
                            MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString());
                            oobAttAddInfo.type = militaryTypeInfo.type;
                        }
                        ComboBox cbb_AttModel = (ComboBox)aac.Controls[0].Controls.Find("cbb_AttModel", false)[0];
                        if (cbb_AttModel.SelectedItem != null)
                        {
                            MilitaryTypeInfo militaryTypeInfo = militaryTypeList.Find(m => m.name == cbb_AttType.SelectedItem.ToString());
                            if (militaryTypeInfo.unitModelList != null || militaryTypeInfo.unitModelList.Count > 0)
                            {
                                oobAttAddInfo.historical_model = militaryTypeInfo.unitModelList.Find(uml => uml.name == cbb_AttModel.SelectedItem.ToString()).modelNum;
                            }
                        }
                        if (oobUpdateInfo.armyType == ArmyTypeEnum.Navy)
                        {
                            oobAttAddInfo.armyType = ArmyTypeEnum.Ship;
                        }
                        else if (oobUpdateInfo.armyType == ArmyTypeEnum.Air)
                        {
                            oobAttAddInfo.armyType = ArmyTypeEnum.Wing;
                        }
                        else
                        {
                            oobAttAddInfo.armyType = ArmyTypeEnum.Regiment;
                        }
                        oobList.Add(oobAttAddInfo);
                    }
                    num++;
                }
                #endregion

                //this.tv_Military.Nodes.Clear();
                BindTree(0, oobList);
            }
            catch (Exception ex)
            {
                ShowErrorMessage("保存失败:" + ex.Message);
            }
        }