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);
        }
예제 #2
0
        /// <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();
        }