public void OnSelectedStepChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { var treeView = sender as TreeView; var model = treeView.SelectedItem as CraftingStepViewModel; if (model?.Value == null || _selected == model.Value) { return; } var craftingStep = model.Value; ConditionModel?.Save(); if (model.HasCondition) { ConditionModel = new ConditionControlViewModel(model.Condition, _itemBase, _affixes.ToList()); Condition = new ConditionControlView(ConditionModel); OnPropertyChanged(nameof(Condition)); } else { Condition = null; OnPropertyChanged(nameof(Condition)); } CraftingTree.Select(craftingStep); _selected = model.Value; Tree.UpdateTree(CraftingTree, _selected); }
private CraftMetadata UpdateMetadataOnCraft( ICraftingStep craftingStep, CraftMetadata craftMetadata, Dictionary <string, int> currencyAmounts, ProgressManager progressManager) { if (!craftMetadata.CraftingStepMetadata.ContainsKey(craftingStep)) { CraftingStepMetadata stepMetadata = new CraftingStepMetadata { TimesVisited = 0, CurrencyAmounts = currencyAmounts }; craftMetadata.CraftingStepMetadata.Add(craftingStep, stepMetadata); } craftMetadata.CraftingStepMetadata[craftingStep].TimesVisited++; if (currencyAmounts.Any()) { craftMetadata.CraftingStepMetadata[craftingStep].TimesModified++; } foreach (var currency in currencyAmounts) { progressManager.SpendCurrency(currency.Key, currency.Value); } return(craftMetadata); }
public CraftingTreeViewModel(CraftingTree craftingTree, ICraftingStep selected) { var craftingSteps = craftingTree.CraftingSteps.Select(x => new CraftingStepViewModel(x, selected)); Tree = new ObservableCollection <CraftingStepViewModel>(craftingSteps.ToArray()); OnPropertyChanged(nameof(Tree)); }
private void OnDeleteClick(object sender, RoutedEventArgs e) { if (_selected != null) { CraftingTree.Delete(_selected); Tree.UpdateTree(CraftingTree, _selected); _selected = null; } }
public void UpdateTree(CraftingTree craftingTree, ICraftingStep selected) { Tree.Clear(); var steps = craftingTree.CraftingSteps.Select(x => new CraftingStepViewModel(x, selected)).ToList(); for (int i = 0; i < steps.Count(); i++) { steps[i].UpdateStatus(); Tree.Add(steps[i]); } OnPropertyChanged(nameof(Tree)); }
private StatusMetadata UpdateMetadata(ICraftingStep craftingStep, StatusMetadata statusMetadata) { if (!statusMetadata.CraftingStepMetadata.ContainsKey(craftingStep)) { statusMetadata.CraftingStepMetadata.Add(craftingStep, new CraftingStepStatusMetadata()); } var craftingStepMetadata = statusMetadata.CraftingStepMetadata[craftingStep]; craftingStepMetadata.Status = (ItemStatus)statusMetadata.CurrentStatus.Clone(); craftingStepMetadata.TimesEvaluated++; return(statusMetadata); }
private CraftMetadata UpdateMetadataOnCraft(ICraftingStep craftingStep, CraftMetadata craftMetadata, bool isModified) { if (!craftMetadata.CraftingStepMetadata.ContainsKey(craftingStep)) { CraftingStepMetadata stepMetadata = new CraftingStepMetadata { TimesVisited = 0, CurrencyAmounts = craftingStep.GetCurrency }; craftMetadata.CraftingStepMetadata.Add(craftingStep, stepMetadata); } craftMetadata.CraftingStepMetadata[craftingStep].TimesVisited++; if (isModified) { craftMetadata.CraftingStepMetadata[craftingStep].TimesModified++; } return(craftMetadata); }
public CraftingStepViewModel(ICraftingStep craftingStep, ICraftingStep selected) { _value = craftingStep; Options = craftingStep.Options == null ? new ObservableCollection <string>() : new ObservableCollection <string>(craftingStep.Options); if (craftingStep == selected) { _selected = true; } if (craftingStep.Children == null) { Children = new ObservableCollection <CraftingStepViewModel>(); } else { var children = craftingStep.Children.Select(x => new CraftingStepViewModel(x, selected)).ToArray(); Children = new ObservableCollection <CraftingStepViewModel>(children); } }
public void Initialize() { var baseInfo = _configRepository.GetItemConfig(); if (_baseInfo != null && _baseInfo.Equals(baseInfo)) { return; } _baseInfo = baseInfo; _equipmentFactory.Initialize(baseInfo.ItemBase, baseInfo.Category, baseInfo.ItemLevel); _itemBase = _equipmentFactory.GetBaseItem(); _affixes = new ObservableCollection <Affix>(_equipmentFactory.GetPossibleAffixes()); CraftingTree.ClearConditions(); CraftingTree.Initialize(); Condition = null; _selected = Tree.Tree[0].Value; Tree.UpdateTree(CraftingTree, _selected); OnPropertyChanged(nameof(Condition)); OnPropertyChanged(nameof(Tree)); }
private void AddStep(List <ICraftingStep> craftingSteps, ICraftingStep craftingStep) { craftingSteps.Add(craftingStep); }
private void UpdateMetadataOnChildrenVisit(ICraftingStep craftingStep, CraftMetadata craftMetadata) { craftMetadata.CraftingStepMetadata[craftingStep].TimesChildrenVisited++; }