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); }
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 } )); }