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