private void Base_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { //Need to be careful to prevent StackOverFlow exceptions //UpdateCharacter triggers PropertyChanged if (e.PropertyName == "Base" || e.PropertyName == "EquipmentBonus") { Seyan.UpdateCharacter(); OnPropertyChanged(nameof(Accuracy)); OnPropertyChanged(nameof(AccuracyAndArmor)); OnPropertyChanged(nameof(EffectiveArmor)); } }
public void Setup() { Seyan.SetupSkills(); Parallel.ForEach(Seyan.Attributes, attributes => { attributes.PropertyChanged += Base_PropertyChanged; }); Parallel.ForEach(Seyan.Skills, skill => { skill.PropertyChanged += Base_PropertyChanged; }); Seyan.UpdateCharacter(); }