private static CraftingCondition CreateTestCondition(params CraftingSubcondition[] subconditions) { CraftingCondition condition = new CraftingCondition(); condition.CraftingSubConditions.AddRange(subconditions.ToList()); return(condition); }
public void CountSubconditionWithMultipleSubconditionsIsValidTest() { int range = 10; int conditionMin = _random.Next(range); int conditionMax = range + _random.Next(range); string modType = "TestModType"; var subcondition = CreateCraftingSubcondition( SubconditionAggregateType.Count, StatValueType.Flat, 1, 1, CreateTestAffix(conditionMin, conditionMax, modType)); CraftingCondition condition = CreateTestCondition(subcondition, subcondition); var stat = CreateStat(range, modType); Equipment item = new Equipment(); item.Stats.Add(stat); Assert.IsTrue(_conditionResolver.IsValid(condition, item)); }
public void CountSubconditionIsValidTest() { int range = 10; int conditionMin = _random.Next(range); int conditionMax = range + _random.Next(range); string modType = "TestModType"; var subcondition = CreateCraftingSubcondition( SubconditionAggregateType.Count, StatValueType.Flat, 1, 1, CreateTestAffix(conditionMin, conditionMax, modType)); CraftingCondition condition = CreateTestCondition(subcondition); Equipment item = new Equipment(); Stat stat = new Stat(); stat.Value1 = range; Affix affix = new Affix(); affix.Group = modType; affix.GenerationType = "Prefix"; stat.Affix = affix; item.Stats.Add(stat); Assert.IsTrue(_conditionResolver.IsValid(condition, item)); }
public void NotSubconditionPresentModIsInvalidTest() { int range = 10; int conditionMin = _random.Next(range); int conditionMax = range + _random.Next(range); string modType = "TestModType1"; var subcondition = CreateCraftingSubcondition( SubconditionAggregateType.If, StatValueType.Flat, null, null, CreateTestAffix(conditionMin, conditionMax, modType)); CraftingCondition condition = CreateTestCondition(subcondition, subcondition); var stat1 = CreateStat(conditionMax + range, modType); Equipment item = new Equipment(); item.Stats.Add(stat1); Assert.IsFalse(_conditionResolver.IsValid(condition, item)); }
public void AndSubconditionIsValidTest() { int range = 10; int conditionMin = _random.Next(range); int conditionMax = range + _random.Next(range); string modType1 = "TestModType1"; string modType2 = "TestModType2"; var subcondition = CreateCraftingSubcondition( SubconditionAggregateType.And, StatValueType.Flat, null, null, CreateTestAffix(conditionMin, conditionMax, modType1), CreateTestAffix(conditionMin, conditionMax, modType2)); CraftingCondition condition = CreateTestCondition(subcondition, subcondition); var stat1 = CreateStat(range, modType1); var stat2 = CreateStat(range, modType2); Equipment item = new Equipment(); item.Stats.Add(stat1); item.Stats.Add(stat2); Assert.IsTrue(_conditionResolver.IsValid(condition, item)); }
public ConditionControlViewModel(CraftingCondition condition, PoeCrafting.Entities.ItemBase itemBase, List <Affix> affixes) { _itemBase = itemBase; _affixes = affixes; _craftingCondition = condition; SubconditionControls = new ObservableCollection <SubconditionControlView>(); for (int i = condition.CraftingSubConditions.Count - 1; i >= 0; i--) { var model = new SubconditionControlViewModel(condition.CraftingSubConditions[i], affixes, GetNextIndex(), _itemBase); var subconditionControl = new SubconditionControlView(model); model.OnDeleteEvent += (x, y) => RemoveSubcondition(y.Control); SubconditionControls.Add(subconditionControl); } if (SubconditionControls.Count == 0) { AddSubcondition(); } SelectedSubcondition = SubconditionControls[0]; OnPropertyChanged(nameof(SelectedSubcondition)); OnPropertyChanged(nameof(SubconditionControls)); }
public ConditionControl(CraftingCondition condition, ItemBase itemBase, List <Affix> affixes) { _itemBase = itemBase; _affixes = affixes; _craftingCondition = condition; SubconditionControls = new ObservableCollection <SubconditionControl>(); for (int i = condition.CraftingSubConditions.Count - 1; i >= 0; i--) { var subconditionControl = new SubconditionControl(condition.CraftingSubConditions[i], affixes, GetNextIndex(), _itemBase); subconditionControl.OnDeleteEvent += (x, y) => RemoveSubcondition(y.Control); SubconditionControls.Add(subconditionControl); } if (SubconditionControls.Count == 0) { AddSubcondition(); } SelectedSubcondition = SubconditionControls[0]; OnPropertyChanged(nameof(SelectedSubcondition)); OnPropertyChanged(nameof(SubconditionControls)); DataContext = this; InitializeComponent(); }
public bool IsValid(CraftingCondition condition, Equipment item) { int validCount = 0; for (int i = condition.CraftingSubConditions.Count - 1; i >= 0; i--) { if (IsSubconditionValid(condition.CraftingSubConditions[i], item)) { validCount++; } } return(validCount == condition.CraftingSubConditions.Count); }
private void AddClicked(object sender, RoutedEventArgs e) { var a = (ComboBoxNewAction.SelectedValue as ImageAndActionContainer); if (a == null) { return; } CraftingCondition newCondition = new CraftingCondition(Sim, a.CraftingAction); CraftingConditions.Add(newCondition); ListViewConditions.SelectedIndex = CraftingConditions.Count - 1; newCondition.PropertyChanged += OnChanged; newCondition.CollectionChanged += OnChanged; }
public void NotSubconditionZeroModsIsValidTest() { int range = 10; int conditionMin = _random.Next(range); int conditionMax = range + _random.Next(range); string modType = "TestModType1"; var subcondition = CreateCraftingSubcondition( SubconditionAggregateType.If, StatValueType.Flat, null, null, CreateTestAffix(conditionMin, conditionMax, modType)); CraftingCondition condition = CreateTestCondition(subcondition, subcondition); Equipment item = new Equipment(); Assert.IsTrue(_conditionResolver.IsValid(condition, item)); }
public void CountSubconditionWithZeroItemModsIsInvalidTest() { int range = 10; int conditionMin = _random.Next(range); int conditionMax = range + _random.Next(range); string modType = "TestModType"; var subcondition = CreateCraftingSubcondition( SubconditionAggregateType.Count, StatValueType.Flat, 1, 3, CreateTestAffix(conditionMin, conditionMax, modType)); CraftingCondition condition = CreateTestCondition(subcondition, subcondition); Equipment item = new Equipment(); Assert.IsFalse(_conditionResolver.IsValid(condition, item)); }