コード例 #1
0
        private void shipGroupItem_SplitRequested(object sender, EventArgs e)
        {
            var groupItem = sender as ShipGroupItem;

            using (var form = new FormSelectQuantity(groupItem.Data.Quantity, 1)) {
                form.ShowDialog();
                groupItem.PartialSelect(form.SelectedValue);
                groupItem.IsSelected = form.SelectedValue > 0;
            }
        }
コード例 #2
0
        private void customAmountAction_Click(object sender, EventArgs e)
        {
            if (this.equipmentList.SelectedItem == null || !(this.equipmentList.SelectedItem is ShipEquipmentItem))
            {
                return;
            }

            var  selectedItem = this.equipmentList.SelectedItem as ShipEquipmentItem;
            long maxCount     = 0;

            this.equipmentAction.MissionEquipmentAction = x => maxCount = (long)Math.Floor(this.controller.SpaceTotal / x.Size);
            this.equipmentAction.SpecialEquipmentAction = x => maxCount = (long)x.MaxCount;
            selectedItem.Data.Dispatch();

            using (var form = new FormSelectQuantity(maxCount, (long)selectedItem.Amount))
                if (form.ShowDialog() == DialogResult.OK)
                {
                    this.equipmentAction.MissionEquipmentAction = x =>
                    {
                        this.controller.MissionEquipSetAmount(this.equipmentList.SelectedIndex, (int)form.SelectedValue);

                        if (form.SelectedValue == 0)
                        {
                            this.equipmentList.Controls.Remove(selectedItem);
                        }
                        else
                        {
                            selectedItem.Amount = this.controller.MissionEquipCount(this.equipmentList.SelectedIndex);
                        }
                    };

                    this.equipmentAction.SpecialEquipmentAction = x =>
                    {
                        this.controller.SpecialEquipSetAmount(x, (int)form.SelectedValue);

                        if (this.controller.SpecialEquipCount(x) == 0)
                        {
                            this.equipmentList.Controls.Remove(selectedItem);
                            this.removeEquipmentSeparator();
                        }
                        else
                        {
                            selectedItem.Amount = this.controller.SpecialEquipCount(x);
                        }
                    };
                    selectedItem.Data.Dispatch();

                    updateInfos();
                }
        }