public Model.Effect.Effect GetEffect()
        {
            bool   askForInput = true;
            string feedback    = null;

            Model.Effect.Effect effect = null;
            while (askForInput)
            {
                View.AddEffectWindow addEffectWindow = new View.AddEffectWindow(feedback);
                addEffectWindow.DataContext = this;

                if (addEffectWindow.ShowDialog() == true)
                {
                    try
                    {
                        effect      = CreateEffect();
                        askForInput = false;
                    }
                    catch (ArgumentException e)
                    {
                        feedback = e.Message;
                    }
                    catch (FormatException)
                    {
                        feedback = "Invalid format";
                    }
                }
                else
                {
                    askForInput = false;
                }
            }

            return(effect);
        }
Пример #2
0
        private void ExecuteAddEffect()
        {
            AddEffectWindowViewModel addEffectWindowViewModel = new AddEffectWindowViewModel();

            Model.Effect.Effect effect = addEffectWindowViewModel.GetEffect();
            if (effect != null)
            {
                Effects.Add(effect);
                ActorUpdated();
            }
        }
        private Model.Effect.Effect CreateEffect()
        {
            Model.Effect.Effect effect;
            int duration = Convert.ToInt32(Duration);

            if (duration == 0)
            {
                if (AbilityEffect && ValueEffect)
                {
                    effect = new Model.Effect.AbilityValueEffect(SelectedEffectType, SelectedAbility, Convert.ToInt32(Value));
                }
                else if (ValueEffect)
                {
                    effect = new Model.Effect.ValueEffect(SelectedEffectType, Convert.ToInt32(Value));
                }
                else if (TextEffect)
                {
                    effect = new Model.Effect.TextEffect(SelectedEffectType, CustomText);
                }
                else
                {
                    effect = new Model.Effect.Effect(SelectedEffectType);
                }
            }
            else
            {
                if (AbilityEffect && ValueEffect)
                {
                    effect = new Model.Effect.TimedAbilityValueEffect(SelectedEffectType, SelectedAbility,
                                                                      Convert.ToInt32(Value), duration);
                }
                else if (ValueEffect)
                {
                    effect = new Model.Effect.TimedValueEffect(SelectedEffectType, Convert.ToInt32(Value), duration);
                }
                else if (TextEffect)
                {
                    effect = new Model.Effect.TimedTextEffect(SelectedEffectType, CustomText, duration);
                }
                else
                {
                    effect = new Model.Effect.TimedEffect(SelectedEffectType, duration);
                }
            }

            return(effect);
        }