public void AffixNoPrefixesWhenFullNormalTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); for (int i = 0; i < 10; i++) { Affix affix = GetTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } }); affix.GenerationType = i < 5 ? "prefix" : "suffix"; allAffixes.Add(affix); } AffixManager affixManager = new AffixManager(testItem, allAffixes, new List <Affix>(), new Dictionary <Influence, List <Affix> >(), new Dictionary <Influence, string>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; var equipmentModifiers = new EquipmentModifiers(new List <Influence>(), new List <string>(), new List <string>(), 100, new Dictionary <string, int>()); for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(equipmentModifiers, CurrencyModifier(), new List <Affix>(), EquipmentRarity.Normal, _random)); } Assert.IsTrue(generated.All(x => x == null)); }
public void AffixGenerationDefaultTest() { int count = 10; String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var fossilAffixes = new List <Affix>(); for (int i = 0; i < count; i++) { allAffixes.Add(getTestAffix("test" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } })); } AffixManager affixManager = new AffixManager(testItem, allAffixes, fossilAffixes); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; for (var i = 0; i < count; i++) { generated.Add(affixManager.GetAffix(new List <Affix>(), EquipmentRarity.Rare, random)); } Assert.AreEqual(count, generated.Count); }
public void AffixNoSuffixesWhenFullTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var p1 = GetTestAffix("test_p1", "test_p1", new Dictionary <string, int>() { { defaultTag, 100 } }); var p2 = GetTestAffix("test_p2", "test_p2", new Dictionary <string, int>() { { defaultTag, 100 } }); var p3 = GetTestAffix("test_p3", "test_p3", new Dictionary <string, int>() { { defaultTag, 100 } }); p1.GenerationType = "suffix"; p2.GenerationType = "suffix"; p3.GenerationType = "suffix"; var existing = new List <Affix>() { p1, p2, p3 }; allAffixes.AddRange(existing); for (int i = 0; i < 10; i++) { Affix affix = GetTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } }); affix.GenerationType = i < 5 ? "prefix" : "suffix"; allAffixes.Add(affix); } AffixManager affixManager = new AffixManager(testItem, allAffixes, new List <Affix>(), new Dictionary <Influence, List <Affix> >(), new Dictionary <Influence, string>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; var equipmentModifiers = new EquipmentModifiers(new List <Influence>(), new List <string>(), new List <string>(), 100, new Dictionary <string, int>()); for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(equipmentModifiers, CurrencyModifier(), existing, EquipmentRarity.Rare, _random)); } Assert.IsFalse(generated.Any(x => x.GenerationType == "suffix")); }
public void CurrencyWeightModifierTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; String fossilTag = "abyss_jewel"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var fossilAffixes = new List <Affix>(); var testAffix = GetTestAffix("test", "test", new Dictionary <string, int>() { { fossilTag, 100 } }); allAffixes.Add(testAffix); for (int i = 0; i < 8; i++) { allAffixes.Add(GetTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } })); } AffixManager affixManager = new AffixManager(testItem, allAffixes, fossilAffixes, new Dictionary <Influence, List <Affix> >(), new Dictionary <Influence, string>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; CurrencyModifiers currencyModifiers = new CurrencyModifiers( null, new Dictionary <string, double>() { { fossilTag, 200 } }, null, null, null); var equipmentModifiers = new EquipmentModifiers(new List <Influence>(), new List <string>(), new List <string>(), 100, new Dictionary <string, int>()); for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(equipmentModifiers, currencyModifiers, new List <Affix>(), EquipmentRarity.Rare, random)); } Assert.AreEqual(generated[0], testAffix); Assert.AreEqual(generated[1], testAffix); }
public void AffixGenerationTest() { int count = 1000; int ilvl = 75; var influence = Influence.Shaper; String item = "Murderous Eye Jewel"; List <Affix> affixes = new List <Affix>() { getTestAffix("test", "SpecificWeaponColdDamage", null, "specific_weapon", "mace"), }; List <Fossil> fossils = new List <Fossil>(); var fossilAffixes = new List <Affix>(); var testItem = _itemFactory.Jewel.First(x => x.Name == item); var allAffixes = _affixFactory.GetAffixesForItem(testItem.Tags, testItem.ItemClass, ilvl, new List <Influence> { influence }).ToList(); AffixManager affixManager = new AffixManager(testItem, allAffixes, fossilAffixes); List <Affix> generated = new List <Affix>(); for (int i = 0; i < count; i++) { for (int x = 0; x < 6; x++) { generated.Add(affixManager.GetAffix(affixes, EquipmentRarity.Rare, random)); } } var description = new { Item = item, Faction = Enum.GetName(typeof(Influence), influence), Ilvl = ilvl, Count = count, Affixes = affixes.Select(x => new { x.Group, x.AddsTags }), Fossils = fossils, }; var groups = generated.GroupBy(x => x.Group).ToDictionary(x => x.Key, x => x.Count()).ToList(); var affixNames = generated.GroupBy(x => x.FullName).ToDictionary(x => x.Key, x => x.Count()).ToList(); var bundle = new { Description = description, GroupCount = groups, AffixCount = affixNames }; var bundleJson = JsonConvert.SerializeObject(bundle); // Assert.IsNotNull(groups); }
public void AddedAffixesTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var testAffix = GetTestAffix("test", "test", new Dictionary <string, int>() { { defaultTag, 100 } }); var addedAffixes = new List <Affix> { testAffix }; CurrencyModifiers currencyModifiers = new CurrencyModifiers( addedAffixes, null, null, null, null); for (int i = 0; i < 9; i++) { allAffixes.Add(GetTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } })); } AffixManager affixManager = new AffixManager(testItem, allAffixes, addedAffixes, new Dictionary <Influence, List <Affix> >(), new Dictionary <Influence, string>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; var equipmentModifiers = new EquipmentModifiers(new List <Influence>(), new List <string>(), new List <string>(), 100, new Dictionary <string, int>()); for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(equipmentModifiers, currencyModifiers, new List <Affix>(), EquipmentRarity.Rare, random)); } Assert.IsTrue(generated.Contains(testAffix)); }
public void AffixGenerationUniqueGroupTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var fossilAffixes = new List <Affix>(); var itemAffix = GetTestAffix("test_d1", "duplicate", new Dictionary <string, int>() { { defaultTag, 100 } }); var duplicate = GetTestAffix("test_d2", "duplicate", new Dictionary <string, int>() { { defaultTag, 100 } }); allAffixes.Add(itemAffix); allAffixes.Add(duplicate); for (int i = 0; i < 4; i++) { allAffixes.Add(GetTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } })); } AffixManager affixManager = new AffixManager(testItem, allAffixes, fossilAffixes, new Dictionary <Influence, List <Affix> >(), new Dictionary <Influence, string>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; for (var i = 0; i < 10; i++) { var equipmentModifiers = new EquipmentModifiers(new List <Influence>(), new List <string>(), new List <string>(), 100, new Dictionary <string, int>()); generated.Add(affixManager.GetAffix(equipmentModifiers, CurrencyModifier(), new List <Affix> { itemAffix }, EquipmentRarity.Rare, _random)); } Assert.IsTrue(!generated.Contains(itemAffix)); Assert.IsTrue(!generated.Contains(duplicate)); }
public void AffixFossilWeightTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; String fossilTag = "abyss_jewel"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var fossilAffixes = new List <Affix>(); var testAffix = getTestAffix("test", "test", new Dictionary <string, int>() { { fossilTag, 100 } }); allAffixes.Add(testAffix); Fossil fossil = new Fossil(); fossil.FullName = "TestFossil"; fossil.AddedAffixes = new List <Affix>(); fossil.ModWeightModifiers = new Dictionary <string, int>() { { fossilTag, 200 } }; for (int i = 0; i < 8; i++) { allAffixes.Add(getTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } })); } AffixManager affixManager = new AffixManager(testItem, allAffixes, fossilAffixes); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(new List <Affix>(), EquipmentRarity.Rare, random, new List <Fossil>() { fossil })); } Assert.AreEqual(generated[0], testAffix); Assert.AreEqual(generated[1], testAffix); }
public void AffixNoPrefixesWhenFullMagicTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var p1 = getTestAffix("test_p1", "test_p1", new Dictionary <string, int>() { { defaultTag, 100 } }); p1.GenerationType = "prefix"; var existing = new List <Affix>() { p1 }; allAffixes.AddRange(existing); for (int i = 0; i < 10; i++) { Affix affix = getTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } }); affix.GenerationType = i < 5 ? "prefix" : "suffix"; allAffixes.Add(affix); } AffixManager affixManager = new AffixManager(testItem, allAffixes, new List <Affix>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(existing, EquipmentRarity.Magic, random)); } Assert.IsFalse(generated.Any(x => x.GenerationType == "prefix")); }
public void AffixMasterModNoAttackTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; String attackTag = "attack"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var testAffix = GetTestAffix("test", "test", new Dictionary <string, int>() { { defaultTag, 100 }, { attackTag, 100 } }); var metamod = GetTestAffix("metamod", "ItemGenerationCannotRollAttackAffixes", new Dictionary <string, int>()); for (int i = 0; i < 9; i++) { allAffixes.Add(GetTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } })); } AffixManager affixManager = new AffixManager(testItem, allAffixes, new List <Affix>(), new Dictionary <Influence, List <Affix> >(), new Dictionary <Influence, string>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; var equipmentModifiers = new EquipmentModifiers(new List <Influence>(), new List <string>(), new List <string>(), 100, new Dictionary <string, int>()); for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(equipmentModifiers, CurrencyModifier(), new List <Affix>() { metamod }, EquipmentRarity.Rare, _random)); } Assert.IsFalse(generated.Contains(testAffix)); }
public void AffixMasterModNoCasterTest() { String item = "Murderous Eye Jewel"; String defaultTag = "abyss_jewel_melee"; String casterTag = "caster"; var testItem = _itemFactory.Jewel.First(x => x.Name == item); List <Affix> allAffixes = new List <Affix>(); var testAffix = getTestAffix("test", "test", new Dictionary <string, int>() { { defaultTag, 100 }, { casterTag, 100 } }); var metamod = getTestAffix("metamod", "ItemGenerationCannotRollCasterAffixes", new Dictionary <string, int>()); for (int i = 0; i < 9; i++) { allAffixes.Add(getTestAffix("test_" + i, "test" + i, new Dictionary <string, int>() { { defaultTag, 100 } })); } AffixManager affixManager = new AffixManager(testItem, allAffixes, new List <Affix>()); List <Affix> generated = new List <Affix>(); IRandom random = SetupRandom().Object; for (var i = 0; i < 10; i++) { generated.Add(affixManager.GetAffix(new List <Affix>() { metamod }, EquipmentRarity.Rare, random, new List <Fossil>())); } Assert.IsFalse(generated.Contains(testAffix)); }