/// <summary> /// Купить награду /// </summary> /// <param name="_pers">Персонаж</param> /// <param name="costProperty">Цена награды</param> public void BuyReward(Pers _pers, int costProperty) { StaticMetods.PlaySound(Properties.Resources.coin); var editableReward = this; ObservableCollection <Revard> shopItems = _pers.ShopItems; List <Revard> uni = (_pers.InventoryItems.Union(_pers.ShopItems)).ToList(); var vc = new ViewChangesClass(uni); vc.GetValBefore(); _pers.GoldProperty -= costProperty; _pers.InventoryItems.Add(editableReward); vc.GetValAfter(); var header = $"{editableReward.GetTypeOfRevard()} \"{editableReward.NameOfProperty}\" добавлен в инвентарь!!!"; Brush col = Brushes.Green; var itemImageProperty = StaticMetods.pathToImage(Path.Combine(Directory.GetCurrentDirectory(), "Images", "good.png")); vc.ShowChanges(header, col, itemImageProperty); if (editableReward.IsArtefact) { shopItems.Remove(editableReward); } StaticMetods.AbillitisRefresh(_pers); StaticMetods.refreshShopItems(_pers); }
public override void ImportItems() { foreach (AbilitiModel ab in ImportList.Where(n => n.IsChecked)) { var fod = PersProperty.Abilitis.FirstOrDefault(n => n.NameOfProperty == ab.NameOfProperty); if (fod == null || Cha == null) { AbilitiModel cc = new AbilitiModel(ab, PersProperty); foreach (var needTaskse in ab.NeedTasks) { AddOrEditAbilityViewModel.CloneTask(needTaskse, 0, cc, false); } foreach (var source in cc.NeedTasks.ToList()) { source.TaskProperty.BeginDateProperty = MainViewModel.selectedTime; } if (Cha != null) { Cha.NeedAbilitisProperty.First(n => n.AbilProperty == cc).KoeficientProperty = 3; } } else { if (Cha != null) { Cha.NeedAbilitisProperty.First(n => n.AbilProperty == fod).KoeficientProperty = 3; } } } StaticMetods.AbillitisRefresh(PersProperty); StaticMetods.Locator.MainVM.RefreshTasksInMainView(); PersProperty.SellectedAbilityProperty = PersProperty.Abilitis.LastOrDefault(); }
public void ShowChanges(string _header, Brush _color, byte[] _itemImage, string date = "", bool showEndTurn = false, bool isShowEditAb = true, bool isOnlyShowArts = false) { double beforeExp; double afterExp; GetChanges(out beforeExp, out afterExp); bool isShowInfo = false; var notRev = ViewChanges.Where(n => n.ТипХарактеристики != "награда").ToList(); // Показываем сообщения по поводу наград var rev = ViewChanges.Where(n => n.ТипХарактеристики == "награда").ToList(); foreach (viewChangesModel vcm in rev) { var lv = new LevelsChangesView(); var cs = vcm.ChangeProperty >= 0 ? "+++" : "---"; var header = $"{cs} {vcm.названиеХарактеристики} {cs}"; lv.Image.Source = StaticMetods.getImagePropertyFromImage(vcm.ImageProperty); lv.down.Visibility = Visibility.Collapsed; lv.Header.Text = header; lv.Header.Foreground = vcm.ChangeProperty > 0 ? Brushes.Green : Brushes.Red; lv.btnOk.Click += (sender, args) => { lv.Close(); }; lv.down.Visibility = Visibility.Collapsed; lv.up.Visibility = Visibility.Collapsed; lv.ShowDialog(); } // Показываем изменения..................................................................................... // Показываем изменения (навыки) if (!StaticMetods.PersProperty.PersSettings.IsNotShowNotifications) { StaticMetods.ShowItemToPersChanges(_header, _itemImage, notRev.Where(n => n.ТипХарактеристики != "Ранг").ToList(), _color, date, null, showEndTurn, true); } // StaticMetods.ShowItemToPersChanges(_header, _itemImage, notRev.Where(n => n.ТипХарактеристики != "ХарактеристикаУр" && n.ТипХарактеристики != "НавыкУр" && n.ТипХарактеристики != "Ранг").ToList(), _color, date, null, showEndTurn, true); // StaticMetods.ShowItemToPersChanges("Навыки", _itemImage, notRev.Where(n => n.ТипХарактеристики == "НавыкУр").ToList(), _color, date, null, showEndTurn); //StaticMetods.ShowItemToPersChanges("Характеристики", _itemImage, notRev.Where(n => n.ТипХарактеристики == "ХарактеристикаУр").ToList(), _color, date, null, showEndTurn); //---------------------------------------------------------------------------------- // Выполненные квесты Pers.ShowDoneQwests(ValBefore, ValAfter, true); // Изменения уровней навыков //Pers.ShowChengeAbLevels(ValBefore, ValAfter, isShowEditAb, false); // Изменения уровней характеристик //Pers.ShowChangeChaLevels(ValBefore, ValAfter); // Показываем изменения (опыт) //StaticMetods.ShowItemToPersChanges("Опыт", _itemImage, notRev.Where(n => n.ТипХарактеристики == "Опыт").ToList(), _color, date, null, showEndTurn); // Изменение уровней персонажа Pers.ShowChangePersLevel(afterExp, beforeExp, notRev, out isShowInfo); //----------------------------------------------------------------------------------- // Открываем лист персонажа, если новый уровень if (isShowInfo) { StaticMetods.Locator.MainVM.OpenPersWindow(new Tuple <string, string>("Окно персонажа", "Информация")); } // Редактируем квесты //foreach (var aim in qwToEdit) //{ // StaticMetods.editAim(aim); //} //// Навыки //foreach (var abilitiModel in absToEdit) //{ // abilitiModel.EditAbility(null, -1, true); //} StaticMetods.AbillitisRefresh(Pers); StaticMetods.RefreshAllQwests(Pers, true, true, true); }