public static AbilitiModel DublicateAbility(AbilitiModel _selAb, Pers prs) { if (_selAb == null) { return(null); } var context = StaticMetods.Locator.AddOrEditAbilityVM; var oldAb = _selAb; context.addAb(); var addedAbility = context.SelectedAbilitiModelProperty; addedAbility.ImageProperty = oldAb.ImageProperty; addedAbility.NameOfProperty = oldAb.NameOfProperty; foreach (var characteristic in prs.Characteristics) { var k = characteristic.NeedAbilitisProperty.First(n => n.AbilProperty == oldAb) .KoeficientProperty; characteristic.NeedAbilitisProperty.First(n => n.AbilProperty == addedAbility) .KoeficientProperty = k; } AddOrEditAbilityView addAbilityView = new AddOrEditAbilityView { btnOk = { Visibility = Visibility.Collapsed }, btnAddAbility = { Visibility = Visibility .Visible }, btnCansel = { Visibility = Visibility.Visible } }; addedAbility.SetMinMaxValue(); context.RefreshInfoCommand.Execute(null); //addAbilityView.chaRelays.IsExpanded = true; Messenger.Default.Send("Фокусировка на названии!"); addAbilityView.ShowDialog(); StaticMetods.RecauntAllValues(); return(addedAbility); }
/// <summary> /// Метод удаления выбранной характеристики /// </summary> /// <param name="persProperty">Персонаж</param> public void RemoveCharacteristic(Pers persProperty) { var inventory = persProperty.InventoryItems; var shopItems = persProperty.ShopItems; var allCharacteristics = persProperty.Characteristics; // Удаляем связанные навыки //foreach (AbilitiModel abilitiModel in persProperty.Abilitis.Where(n => n.RuleCharacterisic == this).ToList()) //{ // StaticMetods.DeleteAbility(persProperty, abilitiModel); //} // Удаляем из магазинов и инвентаря removeChaFromShopAndInventory(inventory, this, shopItems); //persProperty.ChaLevAndValues.ChaLevAndValuesListWhenDelCharact(this); // Удаляем из требований навыков foreach (var abilitiModel in persProperty.Abilitis) { foreach (var needsForLevel in abilitiModel.NeedsForLevels) { foreach (var source in needsForLevel.NeedCharacts.Where(n => n.CharactProperty == this).ToList()) { needsForLevel.NeedCharacts.Remove(source); } } foreach (var needCharact in abilitiModel.NeedCharacts.Where(n => n.CharactProperty == this).ToList()) { abilitiModel.NeedCharacts.Remove(needCharact); } } // Удаляем из требований квестов foreach (var qw in persProperty.Aims) { foreach (var needCharact in qw.NeedCharacts.Where(n => n.CharactProperty == this).ToList()) { qw.NeedCharacts.Remove(needCharact); } } allCharacteristics.Remove(this); // Удаляем из навыков //foreach (var source in persProperty.Abilitis.Where(n => n.RuleCharacterisic == this)) //{ // source.RuleCharacterisic = null; //} StaticMetods.RecauntAllValues(); StaticMetods.PersProperty.NewRecountExp(); }