void AddRandomItem(RandomType type)
        {
            var args = new GenItemEventArgs(null);

            switch (type)
            {
            case RandomType.Current:
                OnAddingRandomItem(args);
                break;

            case RandomType.Misc:
                OnAddingMiscRandomItem(args);
                break;

            default:
                break;
            }

            if (args.Gen == null)
            {
                return;
            }

            AddItem(args.Gen);
        }
 void AddingRandomItem(GenItemEventArgs genItemArgs)
 {
     if (GetCurrentGenGetter() is IGenRandomGetter rgen)
     {
         genItemArgs.Gen = rgen.GetRandomBaseGen();
     }
 }
 void AddingItem(GenItemEventArgs genItemArgs)
 {
     genItemArgs.Gen = GetCurrentGenGetter()?.GetBaseGen();
     if (genItemArgs.Gen != null)
     {
         genItemArgs.Gen.Name = textBoxName.Text;
     }
 }
        void AddingMiscRandomItem(GenItemEventArgs genItemArgs)
        {
            var index = Randomizer.R.Next(genUnits.Length);
            var gen   = genUnits[index].GenControl as IGenGetter;

            if (gen is IGenRandomGetter rgen)
            {
                genItemArgs.Gen = rgen.GetRandomBaseGen();
            }
        }
        void AddItem()
        {
            var args = new GenItemEventArgs(null);

            OnAddingItem(args);

            if (args.Gen == null)
            {
                return;
            }

            AddItem(args.Gen);
        }
        void ReplaceItem()
        {
            if (!(listBox.SelectedItem is BaseGen selected))
            {
                return;
            }

            var args = new GenItemEventArgs(null);

            OnAddingItem(args);

            if (args.Gen == null)
            {
                return;
            }

            var index = listBox.Items.IndexOf(selected);

            listBox.Items.Remove(selected);
            listBox.Items.Insert(index, args.Gen);
            listBox.SetSelected(index, true);
            UpdateCaption();
        }
 void OnAddingMiscRandomItem(GenItemEventArgs args) => AddingMiscRandomItem?.Invoke(this, args);
 void OnItemSelected(GenItemEventArgs args) => ItemSelected?.Invoke(this, args);
 void OnAddingItem(GenItemEventArgs args) => AddingItem?.Invoke(this, args);
 void SelectingItem(GenItemEventArgs genItemArgs)
 {
     ShowOnly(genItemArgs.Gen);
 }