コード例 #1
0
ファイル: FrmBuildTeam.cs プロジェクト: radtek/Portfolio
        private void btnBuildTeam_Click(object sender, EventArgs e)
        {
            try
            {
                _toolbuildteam = new ToolBuildTeam((AccountInfo)cmbAccount.SelectedItem);
                _toolbuildteam.MessageChanged     += new KaixinBase.MessageChangedEventHandler(_toolbuildteam_MessageChanged);
                _toolbuildteam.ValidateCodeNeeded += new KaixinBase.ValidateCodeNeededEventHandler(_toolbuildteam_ValidateCodeNeeded);
                _toolbuildteam.BuildTeamFinished  += new GamePark.BuildTeamFinishedEventHandler(_toolbuildteam_BuildTeamFinished);

                if (cmbAccount.Items.Count <= 0 || cmbAccount.SelectedIndex < 0)
                {
                    MessageBox.Show("请选择账号!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbAccount.Select();
                    return;
                }

                if (lstViewCarsInMarket.SelectedItems.Count == 0)
                {
                    MessageBox.Show("请在市场上的汽车列表里选择你需要组建的车队车型!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    lstViewCarsInMarket.Select();
                    return;
                }

                if (cmbMaxCarCount.Items.Count <= 0 || cmbMaxCarCount.SelectedIndex < 0)
                {
                    MessageBox.Show("请选择汽车数量!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbMaxCarCount.Select();
                    return;
                }

                _account = cmbAccount.Items[cmbAccount.SelectedIndex] as AccountInfo;

                if (_account == null)
                {
                    return;
                }

                _modelcar = new NewCarInfo();
                ListViewItem item = lstViewCarsInMarket.SelectedItems[0];
                if (item != null)
                {
                    _modelcar.CarId    = DataConvert.GetInt32(item.SubItems[3].Text);
                    _modelcar.CarName  = item.SubItems[1].Text;
                    _modelcar.CarPrice = DataConvert.GetInt32(item.SubItems[2].Text);
                }

                if (_modelcar.CarPrice < 70000)
                {
                    MessageBox.Show("按规则70000元以下的车型,同一款车只能拥有一辆!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    lstViewCarsInMarket.Select();
                    return;
                }
                if (_modelcar.CarPrice < 200000)
                {
                    if (MessageBox.Show("根据游戏规则,不能组建汽车单价低于200000的车队!是否继续?", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
                    {
                        lstViewCarsInMarket.Select();
                        return;
                    }
                }

                _maxcarcount = DataConvert.GetInt32(cmbMaxCarCount.Items[cmbMaxCarCount.SelectedIndex].ToString());
                _exchange    = ExchangeCar.Stop;
                if (rdbExpensive.Checked)
                {
                    _exchange = ExchangeCar.Expensive;
                }
                else if (rdbCheap.Checked)
                {
                    _exchange = ExchangeCar.Cheap;
                }

                SetControlStatus(false);

                _toolbuildteam._account      = _account;
                _toolbuildteam._modelcar     = _modelcar;
                _toolbuildteam._maxcarcount  = _maxcarcount;
                _toolbuildteam._exchange     = _exchange;
                _toolbuildteam._carsInMarket = _carsInMarket;
                _toolbuildteam.BuildTeamByThread();
            }
            catch (Exception ex)
            {
                Program.ShowMessageBox("FrmBuildTeam", ex);
            }
        }
コード例 #2
0
ファイル: FrmBuildTeam.cs プロジェクト: jojozhuang/Projects
        private void btnBuildTeam_Click(object sender, EventArgs e)
        {
            try
            {
                _toolbuildteam = new ToolBuildTeam((AccountInfo)cmbAccount.SelectedItem);
                _toolbuildteam.MessageChanged += new KaixinBase.MessageChangedEventHandler(_toolbuildteam_MessageChanged);
                _toolbuildteam.ValidateCodeNeeded += new KaixinBase.ValidateCodeNeededEventHandler(_toolbuildteam_ValidateCodeNeeded);
                _toolbuildteam.BuildTeamFinished += new GamePark.BuildTeamFinishedEventHandler(_toolbuildteam_BuildTeamFinished);

                if (cmbAccount.Items.Count <= 0 || cmbAccount.SelectedIndex < 0)
                {
                    MessageBox.Show("请选择账号!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbAccount.Select();
                    return;
                }

                if (lstViewCarsInMarket.SelectedItems.Count == 0)
                {
                    MessageBox.Show("请在市场上的汽车列表里选择你需要组建的车队车型!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    lstViewCarsInMarket.Select();
                    return;
                }

                if (cmbMaxCarCount.Items.Count <= 0 || cmbMaxCarCount.SelectedIndex < 0)
                {
                    MessageBox.Show("请选择汽车数量!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    cmbMaxCarCount.Select();
                    return;
                }

                _account = cmbAccount.Items[cmbAccount.SelectedIndex] as AccountInfo;

                if (_account == null)
                    return;

                _modelcar = new NewCarInfo();
                ListViewItem item = lstViewCarsInMarket.SelectedItems[0];
                if (item != null)
                {
                    _modelcar.CarId = DataConvert.GetInt32(item.SubItems[3].Text);
                    _modelcar.CarName = item.SubItems[1].Text;
                    _modelcar.CarPrice = DataConvert.GetInt32(item.SubItems[2].Text);
                }

                if (_modelcar.CarPrice < 70000)
                {
                    MessageBox.Show("按规则70000元以下的车型,同一款车只能拥有一辆!", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    lstViewCarsInMarket.Select();
                    return;
                }
                if (_modelcar.CarPrice < 200000)
                {
                    if (MessageBox.Show("根据游戏规则,不能组建汽车单价低于200000的车队!是否继续?", MainConstants.MESSAGEBOX_CAPTION, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
                    {
                        lstViewCarsInMarket.Select();
                        return;
                    }
                }

                _maxcarcount = DataConvert.GetInt32(cmbMaxCarCount.Items[cmbMaxCarCount.SelectedIndex].ToString());
                _exchange = ExchangeCar.Stop;
                if (rdbExpensive.Checked)
                    _exchange = ExchangeCar.Expensive;
                else if (rdbCheap.Checked)
                    _exchange = ExchangeCar.Cheap;

                SetControlStatus(false);
                
                _toolbuildteam._account = _account;
                _toolbuildteam._modelcar = _modelcar;
                _toolbuildteam._maxcarcount = _maxcarcount;
                _toolbuildteam._exchange = _exchange;
                _toolbuildteam._carsInMarket = _carsInMarket;
                _toolbuildteam.BuildTeamByThread();
            }
            catch (Exception ex)
            {
                Program.ShowMessageBox("FrmBuildTeam", ex);
            }
        }
コード例 #3
0
ファイル: GamePark.cs プロジェクト: jojozhuang/Projects
        public void BuildTeam(AccountInfo account, NewCarInfo modelcar, int carcount, ExchangeCar exchange, Collection<NewCarInfo> carsInMarket)
        {
            TryCatchBlock th = new TryCatchBlock(delegate
            {             
                _module = Constants.MSG_BUILDTEAM;
                _outofmoney = false;
                //if (modelcar.CarPrice < 200000)
                //{
                //    SetMessageLn("根据游戏规则,不能组建汽车单价低于200000的车队!");
                //    OnBuildTeamFinished();
                //    return;
                //}

                _allCarsInMarketList = carsInMarket;

                SetMessageLn("开始组建车队...");

                if (!this.ValidationLogin(account))
                {
                    if (BuildTeamFinished != null)
                        BuildTeamFinished(null, 0, 0);
                    return;
                }

                string content = RequestParkHomePage();
                this.ReadCars(content, false);

                Collection<NewCarInfo> buildableCars = FindNeedsBuildCars(modelcar);
                if (buildableCars.Count <= 0)
                {
                    SetMessageLn("您已经拥有6辆该款车型的汽车,无需再换购!");
                }
                else
                {
                    int ix = 0;
                    int index = 0;
                    foreach (NewCarInfo newcar in buildableCars)
                    {
                        if (this._outofmoney)
                            break;

                        if (carcount > _carList.Count)
                        {
                            SetMessageLn(string.Format("需要组建的车辆#{0}({1}):{2}({3},{4}) ", ++index, (carcount > _carList.Count) ? "购买" : "换购", newcar.CarName, GetCarColor(newcar.CarColor), newcar.CarPrice));
                            BuyTheCar(newcar);
                        }
                        else
                        {
                            if (exchange == ExchangeCar.Stop)
                            {
                                SetMessageLn("达到最大汽车数量,停止操作!");
                                break;
                            }

                            SetMessageLn(string.Format("需要组建的车辆#{0}({1}):{2}({3},{4}) ", ++index, (carcount > _carList.Count) ? "购买" : "换购", newcar.CarName, GetCarColor(newcar.CarColor), newcar.CarPrice));

                            _carList = SortCarsList();
                            if (exchange == ExchangeCar.Expensive)
                            {
                                for (ix = _carList.Count - 1; ix >= 0; ix--)
                                {
                                    if (this._outofmoney || UpgradeTheCar(_carList[ix], newcar))
                                        break;
                                }
                            }
                            else
                            {
                                for (ix = 0; ix < _carList.Count; ix++)
                                {
                                    if (this._outofmoney || UpgradeTheCar(_carList[ix], newcar))
                                        break;
                                }
                            }
                        }
                    }
                }

                content = RequestParkHomePage();
                this.ReadCars(content, false);

                SetMessageLn("组建车队完成!");
                if (BuildTeamFinished != null)
                    BuildTeamFinished(_carList, _parkcash, _carprice);
            });
            base.ExecuteTryCatchBlock(th, "发生异常,组建车队失败!");
        }