コード例 #1
0
            protected override void ExecuteQuery()
            {
                var targets = new Targets();

                foreach (var validator in D._p.TargetSelector.Effect)
                {
                    if (NoValidTargets(validator))
                    {
                        continue;
                    }

                    var selectTargetParameters = new SelectTargetParameters
                    {
                        Validator      = validator,
                        CanCancel      = false,
                        TriggerMessage = D._p.Effect.TriggerMessage <object>()
                    };

                    var dialog = Ui.Dialogs.SelectTarget.Create(selectTargetParameters);
                    Ui.Shell.ShowModalDialog(dialog, DialogType.Small, InteractionState.SelectTarget);

                    foreach (var target in dialog.Selection)
                    {
                        targets.AddEffect(target);
                    }
                }

                if (D._p.DistributeAmount > 0)
                {
                    targets.Distribution = DistributeAmount(targets.Effect, D._p.DistributeAmount);
                }

                Result = new ChosenTargets(targets);
            }
コード例 #2
0
 public ScenarioStep NoValidTarget()
 {
     _results.Add(new DecisionResult(ChosenTargets.None()));
     return(this);
 }
コード例 #3
0
 public void SetResult(int index)
 {
     Result = new ChosenTargets(_targets[index]);
 }
コード例 #4
0
 public MachineHandler()
 {
     Result    = new ChosenTargets(null);
     _executor = new MachinePlanExecutor(this);
 }
コード例 #5
0
 protected override void ExecuteQuery()
 {
     Result = GetNextScenarioResult() ?? ChosenTargets.None();
 }