示例#1
0
        private bool SelectX(PlayableActivator playableActivator, ActivationParameters activationParameters)
        {
            if (playableActivator.Prerequisites.HasXInCost)
            {
                var dialog = ViewModels.SelectXCost.Create(playableActivator.Prerequisites.MaxX.Value.Value);
                Shell.ShowModalDialog(dialog, DialogType.Small, InteractionState.Disabled);

                if (dialog.WasCanceled)
                {
                    return(false);
                }

                activationParameters.X = dialog.ChosenX;
            }

            return(true);
        }
示例#2
0
        private bool SelectTargets(PlayableActivator activator, ActivationParameters parameters)
        {
            if (activator.Prerequisites.Selector.RequiresCostTargets)
            {
                var dialog = ShowSelectorDialog(
                    activator.Prerequisites.Selector.Cost.FirstOrDefault(),
                    parameters.X);

                if (dialog.WasCanceled)
                {
                    return(false);
                }

                foreach (var target in dialog.Selection)
                {
                    parameters.Targets.AddCost(target);
                }
            }

            if (activator.Prerequisites.Selector.RequiresEffectTargets)
            {
                foreach (var selector in activator.Prerequisites.Selector.Effect)
                {
                    var dialog = ShowSelectorDialog(selector, parameters.X);

                    if (dialog.WasCanceled)
                    {
                        return(false);
                    }

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

            return(activator.Prerequisites.Selector.ValidateTargetDependencies(
                       new ValidateTargetDependenciesParam
            {
                Cost = parameters.Targets.Cost,
                Effect = parameters.Targets.Effect
            }
                       ));
        }