private void button1_Click(object sender, EventArgs e)
        {
            //	解析攻击目标的坐标
            if (this.txtX.Text == "" && this.txtY.Text == "" && this.textCoord.Text == "")
            {
                return;
            }
            else if (this.txtX.Text != "" || this.txtY.Text != "")
            {
                //	单目标情况
                int x = 0, y = 0;
                Int32.TryParse(this.txtX.Text, out x);
                Int32.TryParse(this.txtY.Text, out y);
                var aTargets = new TPoint(x, y);
                iTargets.Add(aTargets);
            }
            else
            {
                //	多目标情况,格式:"xxx|yyy,xxx|yyy"
                if (!this.textCoord.Text.Contains(","))
                {
                    return;
                }
                string[] multipletargets = this.textCoord.Text.Split(',');
                for (int i = 0; i < multipletargets.Length; i++)
                {
                    if (!multipletargets[i].Contains("|"))
                    {
                        continue;
                    }
                    string[] id = multipletargets[i].Split('|');
                    int      x1 = 0, y1 = 0;
                    Int32.TryParse(id[0], out x1);
                    Int32.TryParse(id[1], out y1);
                    TPoint tid = new TPoint(x1, y1);
                    if (!tid.IsEmpty)
                    {
                        iTargets.Add(tid);
                    }
                }
            }

            //	检查部队设置的数量是否超过现有的数量
            for (int i = 0; i < 11; i++)
            {
                int   totalattack     = Convert.ToInt32(this.numericUpDown1.Value) * iTargets.Count;
                int[] totalraidtroops = new int[11];
                int   totaltroops     = 0;
                int[] raidtroops      = new int[11];
                for (int j = 0; j < 5; j++)
                {
                    int wv = Convert.ToInt32(Waves[j].Value);
                    raidtroops[i] = Convert.ToInt32(Nums[j, i].Value);
                    totaltroops   = totaltroops + (raidtroops[i] * wv);
                }
                totalraidtroops[i] = totaltroops;
                if (totalraidtroops[i] * totalattack > Troops[i])
                {
                    var Nt = MessageBox.Show("No Enough Troop");
                    return;
                }
            }


            for (int j = 0; j < 5; j++)
            {
                int   wv          = Convert.ToInt32(Waves[j].Value);
                int[] raidtroops  = new int[11];
                int   totaltroops = 0;
                for (int i = 0; i < 11; i++)
                {
                    raidtroops[i] = Convert.ToInt32(Nums[j, i].Value);
                    totaltroops   = totaltroops + raidtroops[i];
                }

                if (wv != 0 && totaltroops != 0)
                {
                    TTInfo mTargets = new TTInfo
                    {
                        Troops = raidtroops
                    };
                    nWaves.Add(wv);
                    nTargets.Add(mTargets);
                }
            }

            if (nWaves.Count == 0 || nTargets.Count == 0 || iTargets.Count == 0)
            {
                if (!this.checkBox2.Checked)
                {
                    return;
                }
            }

            Return = new AttackQueue
            {
                Raidtype        = this.checkBox2.Checked ? 1 : this.comboBox3.SelectedIndex + 2,
                Targets         = iTargets,
                wTroops         = nTargets,
                wWaves          = nWaves,
                VillageID       = VillageID,
                kata            = this.comboBox1.SelectedIndex,
                kata2           = this.comboBox2.SelectedIndex,
                Settlers        = this.checkBox2.Checked,
                MinimumInterval = minimumInterval,
                NextExec        = actionAt,
            };
        }
        private void StatusUI(WorkStatus status)
        {
            Status = status;
            try
            {
                Invoke(new Action(() =>
                {
                    LBStatus.Text = status.ToString();
                    switch (status)
                    {
                    case WorkStatus.准备就绪:
                        BackColor               = ColorTranslator.FromHtml("#6a9c78");
                        LBStatus.BackColor      = ColorTranslator.FromHtml("#446e5c");
                        LBProjectName.BackColor = ColorTranslator.FromHtml("#7dc383");
                        BTStartOrStop.Text      = "启动";
                        UIEnable(BTStartOrStop); //允许启动/关闭
                        UIEnable(BTAddNew);      //允许装载新版本
                        //UIEnable(BTConfig);//允许配置工程
                        UIEnable(CBVersion);     //允许选择启动版本
                        break;

                    case WorkStatus.启动成功:
                        BackColor               = ColorTranslator.FromHtml("#26adaf");
                        LBStatus.BackColor      = ColorTranslator.FromHtml("#0081c6");
                        LBProjectName.BackColor = ColorTranslator.FromHtml("#1fd1c6");
                        BTStartOrStop.Text      = "停止";
                        UIEnable(BTStartOrStop);    //允许启动/关闭
                        UIEnable(BTAddNew, false);  //禁止装载新版本
                        //UIEnable(BTConfig, false);//禁止配置工程
                        UIEnable(CBVersion, false); //禁止选择启动版本
                        break;

                    case WorkStatus.正在启动:
                        BackColor               = ColorTranslator.FromHtml("#ff8264");
                        LBStatus.BackColor      = ColorTranslator.FromHtml("#ff6464");
                        LBProjectName.BackColor = ColorTranslator.FromHtml("#ffaa64");
                        BTStartOrStop.Text      = "启~";
                        UIEnable(BTStartOrStop, false); //禁止启动/关闭
                        UIEnable(BTAddNew, false);      //禁止装载新版本
                        //UIEnable(BTConfig, false);//禁止配置工程
                        UIEnable(CBVersion, false);     //禁止选择启动版本
                        break;

                    case WorkStatus.正在关闭:
                        BackColor               = ColorTranslator.FromHtml("#ff8264");
                        LBStatus.BackColor      = ColorTranslator.FromHtml("#ff6464");
                        LBProjectName.BackColor = ColorTranslator.FromHtml("#ffaa64");
                        BTStartOrStop.Text      = "关~";
                        UIEnable(BTStartOrStop, false); //禁止启动/关闭
                        UIEnable(BTAddNew, false);      //禁止装载新版本
                        //UIEnable(BTConfig, false);//禁止配置工程
                        UIEnable(CBVersion, false);     //禁止选择启动版本
                        break;

                    case WorkStatus.端口占用:
                        BackColor               = ColorTranslator.FromHtml("#ff467e");
                        LBStatus.BackColor      = ColorTranslator.FromHtml("#f12b6b");
                        LBProjectName.BackColor = ColorTranslator.FromHtml("#fd94b4");
                        BTStartOrStop.Text      = "停止";
                        UIEnable(BTStartOrStop);    //允许启动/关闭
                        UIEnable(BTAddNew, false);  //禁止装载新版本
                        //UIEnable(BTConfig);//允许配置工程
                        UIEnable(CBVersion, false); //禁止选择启动版本
                        break;

                    case WorkStatus.启动失败:
                        BackColor               = ColorTranslator.FromHtml("#ff467e");
                        LBStatus.BackColor      = ColorTranslator.FromHtml("#f12b6b");
                        LBProjectName.BackColor = ColorTranslator.FromHtml("#fd94b4");
                        BTStartOrStop.Text      = "启动";
                        UIEnable(BTStartOrStop); //允许启动/关闭
                        UIEnable(BTAddNew);      //允许装载新版本
                        //UIEnable(BTConfig);//允许配置工程
                        UIEnable(CBVersion);     //允许选择启动版本
                        break;
                    }

                    StringBuilder tip = new StringBuilder();
                    if (StartTime.Year > 2000)
                    {
                        tip.AppendLine($"启动时间:{StartTime.ToString("yyyy年MM月dd日 HH时mm分ss秒")}");
                    }
                    else
                    {
                        tip.AppendLine($"启动时间:未使用程序启动");
                    }
                    TTInfo.SetToolTip(LBStatus, tip.ToString());
                }));
            }
            catch { }
        }