示例#1
0
        private void PushToggleKeyOnValueChange(object sender, O9K.Core.Managers.Menu.EventArgs.KeyEventArgs e)
        {
            try
            {
                if (!e.NewValue)
                {
                    return;
                }

                var units = this.owner.SelectedUnits.Select(x => this.unitManager.GetControllableUnit(x)).Where(x => x != null).ToList();

                var disable = this.pushMode.ContainsAllUnits(units);

                foreach (var farmMode in this.farmModes)
                {
                    farmMode.RemoveUnits(units);
                }

                if (disable)
                {
                    this.RemoveEffects(this.pushMode.LastAddedUnits);
                    this.pushMode.RemoveLastAddedUnits();
                }
                else
                {
                    this.AddEffects(units);
                    this.pushMode.AddUnits(units);
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
            }
        }
示例#2
0
        private void LastHitHoldKeyOnValueChange(object sender, O9K.Core.Managers.Menu.EventArgs.KeyEventArgs e)
        {
            try
            {
                if (e.NewValue)
                {
                    var units = this.owner.SelectedUnits.Select(x => this.unitManager.GetControllableUnit(x))
                                .Where(x => x != null)
                                .ToList();

                    foreach (var farmMode in this.farmModes)
                    {
                        farmMode.RemoveUnits(units);
                    }

                    this.AddEffects(units);
                    this.lastHitMode.AddUnits(units);
                }
                else
                {
                    this.RemoveEffects(this.lastHitMode.LastAddedUnits);
                    this.lastHitMode.RemoveLastAddedUnits();
                }
            }
            catch (Exception exception)
            {
                Logger.Error(exception);
            }
        }