コード例 #1
0
        public MechCountForm(Action switchToSelect, Action switchToAddMech)
        {
            this.SwitchSelect    = switchToSelect;
            this.SwitchToAddMech = switchToAddMech;
            choosableModels      = XMLRetriever.GetMechModels(AllClasses, AllFactions);
            InitializeComponent();
            FillOutForm();
            // Inner Sphere light mechs
            IS20TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, LightMechWeightIncrements.TWENTY.ToString()); };
            IS25TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, LightMechWeightIncrements.TWENTY_FIVE.ToString()); };
            IS30TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, LightMechWeightIncrements.THIRTY.ToString()); };
            IS35TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, LightMechWeightIncrements.THIRTY_FIVE.ToString()); };

            // Clan light mechs
            clan20TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, LightMechWeightIncrements.TWENTY.ToString()); };
            clan25TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, LightMechWeightIncrements.TWENTY_FIVE.ToString()); };
            clan30TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, LightMechWeightIncrements.THIRTY.ToString()); };
            clan35TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, LightMechWeightIncrements.THIRTY_FIVE.ToString()); };

            // Inner Sphere medium mechs
            IS40TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, MediumMechWeightIncrements.FORTY.ToString()); };
            IS45TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, MediumMechWeightIncrements.FORTY_FIVE.ToString()); };
            IS50TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, MediumMechWeightIncrements.FIFTY.ToString()); };
            IS55TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, MediumMechWeightIncrements.FIFTY_FIVE.ToString()); };

            // Clan medium mechs
            clan40TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, MediumMechWeightIncrements.FORTY.ToString()); };
            clan45TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, MediumMechWeightIncrements.FORTY_FIVE.ToString()); };
            clan50TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, MediumMechWeightIncrements.FIFTY.ToString()); };
            clan55TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, MediumMechWeightIncrements.FIFTY_FIVE.ToString()); };

            // Inner Sphere heavy mechs
            IS60TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, HeavyMechWeightIncrements.SIXTY.ToString()); };
            IS65TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, HeavyMechWeightIncrements.SIXTY_FIVE.ToString()); };
            IS70TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, HeavyMechWeightIncrements.SEVENTY.ToString()); };
            IS75TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, HeavyMechWeightIncrements.SEVENTY_FIVE.ToString()); };

            // Clan heavy mechs
            clan60TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, HeavyMechWeightIncrements.SIXTY.ToString()); };
            clan65TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, HeavyMechWeightIncrements.SIXTY_FIVE.ToString()); };
            clan70TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, HeavyMechWeightIncrements.SEVENTY.ToString()); };
            clan75TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, HeavyMechWeightIncrements.SEVENTY_FIVE.ToString()); };

            // Inner Sphere assault mechs
            IS80TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, AssaultMechWeightIncrements.EIGHTY.ToString()); };
            IS85TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, AssaultMechWeightIncrements.EIGHTY_FIVE.ToString()); };
            IS90TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, AssaultMechWeightIncrements.NINETY.ToString()); };
            IS95TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, AssaultMechWeightIncrements.NINETY_FIVE.ToString()); };
            IS100TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.INNER_SPHERE, AssaultMechWeightIncrements.HUNDRED.ToString()); };

            // Clan assault mechs
            clan80TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, AssaultMechWeightIncrements.EIGHTY.ToString()); };
            clan85TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, AssaultMechWeightIncrements.EIGHTY_FIVE.ToString()); };
            clan90TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, AssaultMechWeightIncrements.NINETY.ToString()); };
            clan95TonMoreButton.Click  += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, AssaultMechWeightIncrements.NINETY_FIVE.ToString()); };
            clan100TonMoreButton.Click += delegate(object sender, EventArgs e) { OpenMoreWindow(sender, e, Factions.CLAN, AssaultMechWeightIncrements.HUNDRED.ToString()); };
        }
コード例 #2
0
        private void ExistingMechs_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = this.ExistingMechs.SelectedIndex;

            if (index == 0)
            {
                this.NewChassisLabel.Visible = true;
                this.NewChassisName.Visible  = true;
                this.FactionSelector.Enabled = true;

                UpdateWeightClassDropdown(MechClasses.LIGHT);
                this.WeightClassSelector.Enabled = true;
                UpdateWeightIncrement(LightMechWeightIncrements.TWENTY.ToString());
                this.WeightIncrement.Enabled = true;
            }
            else
            {
                this.NewChassisLabel.Visible = false;
                this.NewChassisName.Visible  = false;

                DropDownItem item  = (DropDownItem)ExistingMechs.Items[index];
                MechModel    model = XMLRetriever.PerformChassisLookup(item.DisplayValue, item.Value);

                if (model.MechFaction == Factions.INNER_SPHERE)
                {
                    this.FactionSelector.SelectedIndex = 0;
                    this.FactionSelector.Enabled       = false;
                }
                else
                {
                    this.FactionSelector.SelectedIndex = 1;
                    this.FactionSelector.Enabled       = false;
                }

                UpdateWeightClassDropdown(model.MechClass);
                this.WeightClassSelector.Enabled = false;
                UpdateWeightIncrement(model.GetMechWeight());
                this.WeightIncrement.Enabled = false;
            }
        }
コード例 #3
0
        public AddMechForm(Action switchToSelection, Action switchToMechCount)
        {
            this.SwitchToSelect    = switchToSelection;
            this.SwitchToMechCount = switchToMechCount;
            InitializeComponent();
            this.ExistingMechs.Items.Add(new DropDownItem("--New Chassis--", StaticValues.NOCHASSIS));
            this.ExistingMechs.Items.AddRange(XMLRetriever.GetMechsForDropdown());
            this.ExistingMechs.SelectedIndex = 0;
            this.ActiveControl = this.NewChassisName;

            this.FactionSelector.Items.Add(new DropDownItem(Factions.INNER_SPHERE.ToString().Replace('_', ' '), Factions.INNER_SPHERE.ToString()));
            this.FactionSelector.Items.Add(new DropDownItem(Factions.CLAN.ToString(), Factions.CLAN.ToString()));
            this.FactionSelector.SelectedIndex = 0;

            this.WeightClassSelector.Items.Add(new DropDownItem(MechClasses.LIGHT.ToString(), MechClasses.LIGHT.ToString()));
            this.WeightClassSelector.Items.Add(new DropDownItem(MechClasses.MEDIUM.ToString(), MechClasses.MEDIUM.ToString()));
            this.WeightClassSelector.Items.Add(new DropDownItem(MechClasses.HEAVY.ToString(), MechClasses.HEAVY.ToString()));
            this.WeightClassSelector.Items.Add(new DropDownItem(MechClasses.ASSAULT.ToString(), MechClasses.ASSAULT.ToString()));
            this.WeightClassSelector.SelectedIndex = 0;

            CompletedInitialization = true;
        }
コード例 #4
0
        private void ChooseMechButton_Click(object sender, EventArgs e)
        {
            if (ValidateFactionCheckboxes() && ValidateWeightClassCheckboxes())
            {
                StrongRandom       rand          = new StrongRandom();
                List <MechClasses> chosenClasses = new List <MechClasses>();
                if (this.LightCheckbox.Checked)
                {
                    chosenClasses.Add(MechClasses.LIGHT);
                }
                if (this.MediumCheckbox.Checked)
                {
                    chosenClasses.Add(MechClasses.MEDIUM);
                }
                if (this.HeavyCheckbox.Checked)
                {
                    chosenClasses.Add(MechClasses.HEAVY);
                }
                if (this.AssaultCheckbox.Checked)
                {
                    chosenClasses.Add(MechClasses.ASSAULT);
                }

                List <Factions> chosenFactions = new List <Factions>();
                if (this.ClanCheckbox.Checked)
                {
                    chosenFactions.Add(Factions.CLAN);
                }
                if (this.InnerSphereCheckbox.Checked)
                {
                    chosenFactions.Add(Factions.INNER_SPHERE);
                }

                List <MechModel> choosableModels = XMLRetriever.GetMechModels(chosenClasses.ToArray(), chosenFactions.ToArray());

                if (choosableModels.Count > 0)
                {
                    int  mechSelectAttempts       = 0;
                    bool successfullySelectedMech = false;
                    while (!successfullySelectedMech && mechSelectAttempts < NoRepeatsFailoverLimit)
                    {
                        int       randomMechIndex = rand.Next(choosableModels.Count);
                        MechModel chosenMech      = choosableModels[randomMechIndex];

                        if (!AlreadySelectedMechs.Contains(chosenMech))
                        {
                            this.ChassisName.Text     = chosenMech.MechModelName;
                            this.VariantName.Text     = chosenMech.ModelVariantName;
                            this.NoMechsError.Visible = false;
                            AlreadySelectedMechs.Add(chosenMech);
                            successfullySelectedMech = true;
                        }
                        else
                        {
                            mechSelectAttempts++;
                            //Simple cleanout: if reached no repeat failover limit minus 1,
                            //assume already selected mech list should be emptied so that last
                            //attempt in while loop *should* succeed if any mech matches criteria
                            if (mechSelectAttempts == (NoRepeatsFailoverLimit - 1))
                            {
                                AlreadySelectedMechs.Clear();
                            }
                        }
                    }
                }
                else
                {
                    this.ChassisName.Text     = "";
                    this.VariantName.Text     = "";
                    this.NoMechsError.Visible = true;
                }
            }
        }