public CraftingViewModel(EquipmentData equipmentData) : base(equipmentData, equipmentData.ItemBases.Where(b => equipmentData.AffixesPerItemType.ContainsKey(b.ItemType))) { MsPrefix.ForEach(ms => ms.PropertyChanged += MsPrefixOnPropertyChanged); MsSuffix.ForEach(ms => ms.PropertyChanged += MsSuffixOnPropertyChanged); Init(); }
protected override void UpdateBaseSpecific() { _prefixes = CreateAffixes(_allPrefixes).ToList(); _suffixes = CreateAffixes(_allSuffixes).ToList(); _changingBase = true; MsPrefix.ForEach(ms => ms.Affixes = _prefixes); foreach (var ms in MsPrefix) { var blockedPrefixes = MsPrefix.Where(m => m != ms).Select(m => m.SelectedAffix); ms.Affixes = _prefixes.Except(blockedPrefixes).ToList(); } MsSuffix.ForEach(ms => ms.Affixes = _suffixes); foreach (var ms in MsSuffix) { var blockedSuffixes = MsSuffix.Where(m => m != ms).Select(m => m.SelectedAffix); ms.Affixes = _suffixes.Except(blockedSuffixes).ToList(); } _changingBase = false; }
public CraftingViewModel(EquipmentData equipmentData) : base(equipmentData, SelectCraftableBases(equipmentData)) { _allPrefixes = equipmentData.ModDatabase[ModGenerationType.Prefix]; _allSuffixes = equipmentData.ModDatabase[ModGenerationType.Suffix]; MsPrefix = new[] { new ModSelectorViewModel(EquipmentData.StatTranslator), new ModSelectorViewModel(EquipmentData.StatTranslator), new ModSelectorViewModel(EquipmentData.StatTranslator) }; MsPrefix.ForEach(ms => ms.PropertyChanged += MsPrefixOnPropertyChanged); MsSuffix = new[] { new ModSelectorViewModel(EquipmentData.StatTranslator), new ModSelectorViewModel(EquipmentData.StatTranslator), new ModSelectorViewModel(EquipmentData.StatTranslator) }; MsSuffix.ForEach(ms => ms.PropertyChanged += MsSuffixOnPropertyChanged); Init(); }
protected override void UpdateBaseSpecific() { var aaff = EquipmentData.AffixesPerItemType[Item.ItemType]; _prefixes = aaff.Where(a => a.ModType == ModType.Prefix).ToList(); _suffixes = aaff.Where(a => a.ModType == ModType.Suffix).ToList(); _changingBase = true; MsPrefix.ForEach(ms => ms.Affixes = _prefixes); foreach (var ms in MsPrefix) { var blockedPrefixes = MsPrefix.Where(m => m != ms).Select(m => m.SelectedAffix); ms.Affixes = _prefixes.Except(blockedPrefixes).ToList(); } MsSuffix.ForEach(ms => ms.Affixes = _suffixes); foreach (var ms in MsSuffix) { var blockedSuffixes = MsSuffix.Where(m => m != ms).Select(m => m.SelectedAffix); ms.Affixes = _suffixes.Except(blockedSuffixes).ToList(); } _changingBase = false; }