diff --git a/DnDGen.TreasureGen.Tests.Integration.IoC/DnDGen.TreasureGen.Tests.Integration.IoC.csproj b/DnDGen.TreasureGen.Tests.Integration.IoC/DnDGen.TreasureGen.Tests.Integration.IoC.csproj index e8ce7124..22ce0388 100644 --- a/DnDGen.TreasureGen.Tests.Integration.IoC/DnDGen.TreasureGen.Tests.Integration.IoC.csproj +++ b/DnDGen.TreasureGen.Tests.Integration.IoC/DnDGen.TreasureGen.Tests.Integration.IoC.csproj @@ -7,12 +7,12 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/DnDGen.TreasureGen.Tests.Integration.Stress/DnDGen.TreasureGen.Tests.Integration.Stress.csproj b/DnDGen.TreasureGen.Tests.Integration.Stress/DnDGen.TreasureGen.Tests.Integration.Stress.csproj index 7cf5f3e6..0540a8a7 100644 --- a/DnDGen.TreasureGen.Tests.Integration.Stress/DnDGen.TreasureGen.Tests.Integration.Stress.csproj +++ b/DnDGen.TreasureGen.Tests.Integration.Stress/DnDGen.TreasureGen.Tests.Integration.Stress.csproj @@ -7,13 +7,13 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/DnDGen.TreasureGen.Tests.Integration.Tables/DnDGen.TreasureGen.Tests.Integration.Tables.csproj b/DnDGen.TreasureGen.Tests.Integration.Tables/DnDGen.TreasureGen.Tests.Integration.Tables.csproj index 962d6a29..9ff286b7 100644 --- a/DnDGen.TreasureGen.Tests.Integration.Tables/DnDGen.TreasureGen.Tests.Integration.Tables.csproj +++ b/DnDGen.TreasureGen.Tests.Integration.Tables/DnDGen.TreasureGen.Tests.Integration.Tables.csproj @@ -7,13 +7,13 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/DnDGen.TreasureGen.Tests.Integration/DnDGen.TreasureGen.Tests.Integration.csproj b/DnDGen.TreasureGen.Tests.Integration/DnDGen.TreasureGen.Tests.Integration.csproj index 74c0d8a7..556092ce 100644 --- a/DnDGen.TreasureGen.Tests.Integration/DnDGen.TreasureGen.Tests.Integration.csproj +++ b/DnDGen.TreasureGen.Tests.Integration/DnDGen.TreasureGen.Tests.Integration.csproj @@ -7,15 +7,15 @@ - - + + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/DnDGen.TreasureGen.Tests.Unit/ConfigTests.cs b/DnDGen.TreasureGen.Tests.Unit/ConfigTests.cs new file mode 100644 index 00000000..eb841506 --- /dev/null +++ b/DnDGen.TreasureGen.Tests.Unit/ConfigTests.cs @@ -0,0 +1,14 @@ +using NUnit.Framework; + +namespace DnDGen.TreasureGen.Tests.Unit +{ + internal class ConfigTests + { + [Test] + public void ConfigNameIsCorrect() + { + var configType = typeof(Config); + Assert.That(Config.Name, Is.EqualTo("DnDGen.TreasureGen").And.EqualTo(configType.Namespace)); + } + } +} diff --git a/DnDGen.TreasureGen.Tests.Unit/DnDGen.TreasureGen.Tests.Unit.csproj b/DnDGen.TreasureGen.Tests.Unit/DnDGen.TreasureGen.Tests.Unit.csproj index 2215e8e1..10533b3a 100644 --- a/DnDGen.TreasureGen.Tests.Unit/DnDGen.TreasureGen.Tests.Unit.csproj +++ b/DnDGen.TreasureGen.Tests.Unit/DnDGen.TreasureGen.Tests.Unit.csproj @@ -8,12 +8,12 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/DnDGen.TreasureGen.Tests.Unit/Generators/Goods/GoodsGeneratorTests.cs b/DnDGen.TreasureGen.Tests.Unit/Generators/Goods/GoodsGeneratorTests.cs index d1b4c9a9..17ab1fc1 100644 --- a/DnDGen.TreasureGen.Tests.Unit/Generators/Goods/GoodsGeneratorTests.cs +++ b/DnDGen.TreasureGen.Tests.Unit/Generators/Goods/GoodsGeneratorTests.cs @@ -47,7 +47,7 @@ public void Setup() var count = 0; object testLock = new object(); mockCollectionsSelector - .Setup(p => p.SelectRandomFrom(tableName, It.IsAny())) + .Setup(p => p.SelectRandomFrom(Config.Name, tableName, It.IsAny())) .Returns(() => { lock (testLock) diff --git a/DnDGen.TreasureGen.Tests.Unit/Generators/Items/ItemsGeneratorTests.cs b/DnDGen.TreasureGen.Tests.Unit/Generators/Items/ItemsGeneratorTests.cs index a45d2528..4578f8ff 100644 --- a/DnDGen.TreasureGen.Tests.Unit/Generators/Items/ItemsGeneratorTests.cs +++ b/DnDGen.TreasureGen.Tests.Unit/Generators/Items/ItemsGeneratorTests.cs @@ -50,7 +50,7 @@ public void Setup() selection.Type = "power"; selection.Amount = 42; mockTypeAndAmountPercentileSelector.Setup(p => p.SelectFrom(It.IsAny())).Returns(selection); - mockPercentileSelector.Setup(p => p.SelectFrom(It.IsAny())).Returns(ItemTypeConstants.WondrousItem); + mockPercentileSelector.Setup(p => p.SelectFrom(Config.Name, It.IsAny())).Returns(ItemTypeConstants.WondrousItem); var dummyMagicalMock = new Mock(); dummyMagicalMock.Setup(m => m.GenerateRandom(It.IsAny())).Returns(() => new Item { Name = "magical item" }); @@ -139,7 +139,7 @@ public void GenerateRandomAtLevel_GetMundaneItems() var mundaneItem = new Item(); var expectedTableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERItems, selection.Type); - mockPercentileSelector.Setup(p => p.SelectFrom(expectedTableName)).Returns("mundane item type"); + mockPercentileSelector.Setup(p => p.SelectFrom(Config.Name, expectedTableName)).Returns("mundane item type"); mockJustInTimeFactory.Setup(f => f.Build("mundane item type")).Returns(mockMundaneItemGenerator.Object); mockMundaneItemGenerator.Setup(g => g.GenerateRandom()).Returns(mundaneItem); @@ -155,7 +155,7 @@ public void GenerateRandomAtLevel_GetMagicalItems() var magicalItem = new Item(); var expectedTableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERItems, selection.Type); - mockPercentileSelector.Setup(p => p.SelectFrom(expectedTableName)).Returns("magic item type"); + mockPercentileSelector.Setup(p => p.SelectFrom(Config.Name, expectedTableName)).Returns("magic item type"); mockJustInTimeFactory.Setup(f => f.Build("magic item type")).Returns(mockMagicalItemGenerator.Object); mockMagicalItemGenerator.Setup(g => g.GenerateRandom(selection.Type)).Returns(magicalItem); @@ -223,7 +223,7 @@ public async Task GenerateRandomAtLevelAsync_GetMundaneItems() var mundaneItem = new Item(); var expectedTableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERItems, selection.Type); - mockPercentileSelector.Setup(p => p.SelectFrom(expectedTableName)).Returns("mundane item type"); + mockPercentileSelector.Setup(p => p.SelectFrom(Config.Name, expectedTableName)).Returns("mundane item type"); mockJustInTimeFactory.Setup(f => f.Build("mundane item type")).Returns(mockMundaneItemGenerator.Object); mockMundaneItemGenerator.Setup(g => g.GenerateRandom()).Returns(mundaneItem); @@ -239,7 +239,7 @@ public async Task GenerateRandomAtLevelAsync_GetMagicalItems() var magicalItem = new Item(); var expectedTableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERItems, selection.Type); - mockPercentileSelector.Setup(p => p.SelectFrom(expectedTableName)).Returns("magic item type"); + mockPercentileSelector.Setup(p => p.SelectFrom(Config.Name, expectedTableName)).Returns("magic item type"); mockJustInTimeFactory.Setup(f => f.Build("magic item type")).Returns(mockMagicalItemGenerator.Object); mockMagicalItemGenerator.Setup(g => g.GenerateRandom(selection.Type)).Returns(magicalItem); @@ -253,7 +253,7 @@ public void GenerateAtLevel_Named_GetMundaneItem() selection.Type = PowerConstants.Mundane; mockCollectionSelector - .Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, "item name")) + .Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, "item name")) .Returns(new[] { PowerConstants.Mundane, "power", "more power", "wrong power" }); var firstItem = new Item(); @@ -270,7 +270,7 @@ public void BUG_GenerateAtLevel_Named_GetMundaneItem_WhenNoPowerSpecified() selection.Type = string.Empty; mockCollectionSelector - .Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, "item name")) + .Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, "item name")) .Returns(new[] { PowerConstants.Mundane, "power", "more power", "wrong power" }); var firstItem = new Item(); @@ -287,7 +287,7 @@ public void BUG_GenerateAtLevel_Named_GetSpecificItem_WhenMundaneSpecified() selection.Type = PowerConstants.Mundane; mockCollectionSelector - .Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, "specific item")) + .Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, "specific item")) .Returns(new[] { "power", "more power", "wrong power" }); var magicalItem = new Item(); @@ -304,7 +304,7 @@ public void BUG_GenerateAtLevel_Named_GetSpecificItem_WhenNoneSpecified() selection.Type = string.Empty; mockCollectionSelector - .Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, "specific item")) + .Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, "specific item")) .Returns(new[] { "power", "more power", "wrong power" }); var magicalItem = new Item(); @@ -321,7 +321,7 @@ public void BUG_GenerateAtLevel_Named_GetMagicalItem_WhenNoPowerSpecified() selection.Type = string.Empty; mockCollectionSelector - .Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, "item name")) + .Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, "item name")) .Returns(new[] { "power", "more power", "wrong power" }); var magicalItem = new Item(); @@ -338,7 +338,7 @@ public void BUG_GenerateAtLevel_Named_GetMundaneItem_WhenPowerIsMagical_ButItemT selection.Type = "power"; mockCollectionSelector - .Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, "item name")) + .Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, "item name")) .Returns(new[] { PowerConstants.Mundane }); var firstItem = new Item(); diff --git a/DnDGen.TreasureGen.Tests.Unit/Generators/Items/Magical/IntelligenceGeneratorTests.cs b/DnDGen.TreasureGen.Tests.Unit/Generators/Items/Magical/IntelligenceGeneratorTests.cs index 191c7373..23196d04 100644 --- a/DnDGen.TreasureGen.Tests.Unit/Generators/Items/Magical/IntelligenceGeneratorTests.cs +++ b/DnDGen.TreasureGen.Tests.Unit/Generators/Items/Magical/IntelligenceGeneratorTests.cs @@ -39,12 +39,12 @@ public void Setup() itemType = "item type"; var fillerValues = new[] { "0" }; - mockCollectionsSelector.Setup(s => s.SelectFrom(It.IsAny(), It.IsAny())).Returns(fillerValues); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, It.IsAny(), It.IsAny())).Returns(fillerValues); mockDice.Setup(d => d.Roll(1).d(4).AsSum()).Returns(4); mockDice.Setup(d => d.Roll(1).d(3).AsSum()).Returns(3); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("10"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("10"); mockIntelligenceDataSelector.Setup(s => s.SelectFrom(It.IsAny())).Returns(intelligenceSelection); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)).Returns(string.Empty); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)).Returns(string.Empty); intelligenceGenerator = new IntelligenceGenerator(mockDice.Object, mockPercentileSelector.Object, mockCollectionsSelector.Object, mockIntelligenceDataSelector.Object); } @@ -53,7 +53,7 @@ public void Setup() public void DetermineIntelligentFromBooleanSelector() { var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, itemType); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(true); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(true); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, true); Assert.That(isIntelligent, Is.True); @@ -63,7 +63,7 @@ public void DetermineIntelligentFromBooleanSelector() public void DetermineNotIntelligentFromBooleanSelector() { var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, itemType); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(false); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(false); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, true); Assert.That(isIntelligent, Is.False); @@ -74,7 +74,7 @@ public void DetermineMeleeIntelligence() { attributes.Add(AttributeConstants.Melee); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, AttributeConstants.Melee); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(true); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(true); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, true); Assert.That(isIntelligent, Is.True); @@ -85,7 +85,7 @@ public void DetermineRangedIntelligence() { attributes.Add(AttributeConstants.Ranged); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, AttributeConstants.Ranged); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(true); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(true); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, true); Assert.That(isIntelligent, Is.True); @@ -97,7 +97,7 @@ public void DetermineRangedAndMeleeIntelligence() attributes.Add(AttributeConstants.Melee); attributes.Add(AttributeConstants.Ranged); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, AttributeConstants.Melee); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(true); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(true); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, true); Assert.That(isIntelligent, Is.True); @@ -108,7 +108,7 @@ public void AmmunitionIsNotIntelligent() { attributes.Add(AttributeConstants.Ammunition); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, itemType); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(true); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(true); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, true); Assert.That(isIntelligent, Is.False); @@ -119,7 +119,7 @@ public void OneTimeUseItemsAreNotIntelligent() { attributes.Add(AttributeConstants.OneTimeUse); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, itemType); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(true); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(true); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, true); Assert.That(isIntelligent, Is.False); @@ -129,7 +129,7 @@ public void OneTimeUseItemsAreNotIntelligent() public void NonMagicalItemsAreNotIntelligent() { var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, itemType); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns(true); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns(true); var isIntelligent = intelligenceGenerator.IsIntelligent(itemType, attributes, false); Assert.That(isIntelligent, Is.False); @@ -171,7 +171,7 @@ public void ReturnIntelligence() public void Roll1MeansCharismaIsWeakStat() { mockDice.Setup(d => d.Roll(1).d(3).AsSum()).Returns(1); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("42"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("42"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.CharismaStat, Is.EqualTo(10)); @@ -183,7 +183,7 @@ public void Roll1MeansCharismaIsWeakStat() public void Roll2MeansIntelligenceIsWeakStat() { mockDice.Setup(d => d.Roll(1).d(3).AsSum()).Returns(2); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("42"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("42"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.CharismaStat, Is.EqualTo(42)); @@ -195,7 +195,7 @@ public void Roll2MeansIntelligenceIsWeakStat() public void Roll3MeansWisdomIsWeakStat() { mockDice.Setup(d => d.Roll(1).d(3).AsSum()).Returns(3); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("42"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("42"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.CharismaStat, Is.EqualTo(42)); @@ -207,8 +207,8 @@ public void Roll3MeansWisdomIsWeakStat() public void GetCommunicationFromAttributesSelector() { var attributes = new[] { "talky" }; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("9266"); - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "9266")).Returns(attributes); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("9266"); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "9266")).Returns(attributes); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Communication, Is.EqualTo(attributes)); @@ -218,8 +218,8 @@ public void GetCommunicationFromAttributesSelector() public void GetLanguagesIfSpeech() { var attributes = new[] { "Speech" }; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("10"); - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("10"); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Languages, Contains.Item("Common")); @@ -229,9 +229,9 @@ public void GetLanguagesIfSpeech() public void GetNumberOfBonusLanguagesEqualToIntelligenceModifier() { var attributes = new[] { "Speech" }; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("14"); - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "14")).Returns(attributes); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.Languages)).Returns("english").Returns("german"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("14"); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "14")).Returns(attributes); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.Languages)).Returns("english").Returns("german"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Languages, Has.Count.EqualTo(3) @@ -244,9 +244,9 @@ public void GetNumberOfBonusLanguagesEqualToIntelligenceModifier() public void DoNotHaveDuplicateLanguages() { var attributes = new[] { "Speech" }; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("14"); - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "14")).Returns(attributes); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.Languages)) + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("14"); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "14")).Returns(attributes); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.Languages)) .Returns("english").Returns("english").Returns("german"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -269,7 +269,7 @@ public void GetLesserPowersFromAttributesSelector() { intelligenceSelection.LesserPowersCount = 2; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("power 1").Returns("power 2"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Powers, Has.Count.EqualTo(2)); @@ -280,7 +280,7 @@ public void CannotHaveDuplicateLesserPowers() { intelligenceSelection.LesserPowersCount = 2; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("power 1").Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("power 1").Returns("power 1").Returns("power 2"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Powers, Has.Count.EqualTo(2) @@ -293,7 +293,7 @@ public void GetGreaterPowersFromAttributesSelector() { intelligenceSelection.GreaterPowersCount = 2; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("power 1").Returns("power 2"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Powers, Has.Count.EqualTo(2)); @@ -304,7 +304,7 @@ public void CannotHaveDuplicateGreaterPowers() { intelligenceSelection.GreaterPowersCount = 2; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("power 1").Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("power 1").Returns("power 1").Returns("power 2"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Powers, Has.Count.EqualTo(2) @@ -319,15 +319,15 @@ public void ZeroGreaterPowerMeans0PercentChanceForSpecialPurpose() intelligenceSelection.GreaterPowersCount = 0; var lesserTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(lesserTableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, lesserTableName)).Returns("power 1").Returns("power 2"); var greaterTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.Setup(s => s.SelectFrom(greaterTableName)).Returns("greater power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, greaterTableName)).Returns("greater power"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(5)).Returns(true); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Powers, Has.Count.EqualTo(2) @@ -344,15 +344,15 @@ public void OneGreaterPowerMeans25PercentChanceForSpecialPurpose() intelligenceSelection.GreaterPowersCount = 1; var lesserTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(lesserTableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, lesserTableName)).Returns("power 1").Returns("power 2"); var greaterTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.Setup(s => s.SelectFrom(greaterTableName)).Returns("greater power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, greaterTableName)).Returns("greater power"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(4)).Returns(true); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Powers, Has.Count.EqualTo(2) @@ -369,15 +369,15 @@ public void OneGreaterPowerMeans75PercentChanceForGreaterPower() intelligenceSelection.GreaterPowersCount = 1; var lesserTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(lesserTableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, lesserTableName)).Returns("power 1").Returns("power 2"); var greaterTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.Setup(s => s.SelectFrom(greaterTableName)).Returns("greater power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, greaterTableName)).Returns("greater power"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(4)).Returns(false); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Powers, Has.Count.EqualTo(3) @@ -394,14 +394,14 @@ public void TwoGreaterPowerMeans50PercentChanceForSpecialPurpose() intelligenceSelection.LesserPowersCount = 2; intelligenceSelection.GreaterPowersCount = 2; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var lesserTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(lesserTableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, lesserTableName)).Returns("power 1").Returns("power 2"); var greaterTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(greaterTableName)).Returns("greater power 1").Returns("greater power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, greaterTableName)).Returns("greater power 1").Returns("greater power 2"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(3)).Returns(true); @@ -420,14 +420,14 @@ public void TwoGreaterPowerMeans50PercentChanceForGreaterPower() intelligenceSelection.LesserPowersCount = 2; intelligenceSelection.GreaterPowersCount = 2; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var lesserTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(lesserTableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, lesserTableName)).Returns("power 1").Returns("power 2"); var greaterTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(greaterTableName)).Returns("greater power 1").Returns("greater power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, greaterTableName)).Returns("greater power 1").Returns("greater power 2"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(3)).Returns(false); @@ -447,14 +447,14 @@ public void ThreeGreaterPowerMeans75PercentChanceForSpecialPurpose() intelligenceSelection.LesserPowersCount = 2; intelligenceSelection.GreaterPowersCount = 3; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var lesserTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(lesserTableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, lesserTableName)).Returns("power 1").Returns("power 2"); var greaterTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(greaterTableName)).Returns("greater power 1").Returns("greater power 2").Returns("greater power 3"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, greaterTableName)).Returns("greater power 1").Returns("greater power 2").Returns("greater power 3"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(2)).Returns(true); @@ -474,14 +474,14 @@ public void ThreeGreaterPowerMeans25PercentChanceForGreaterPower() intelligenceSelection.LesserPowersCount = 2; intelligenceSelection.GreaterPowersCount = 3; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var lesserTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(lesserTableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, lesserTableName)).Returns("power 1").Returns("power 2"); var greaterTableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(greaterTableName)).Returns("greater power 1").Returns("greater power 2").Returns("greater power 3"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, greaterTableName)).Returns("greater power 1").Returns("greater power 2").Returns("greater power 3"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(2)).Returns(false); @@ -499,7 +499,7 @@ public void ThreeGreaterPowerMeans25PercentChanceForGreaterPower() [Test] public void GetAlignmentFromPercentileSelector() { - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)).Returns("alignment"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)).Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Alignment, Is.EqualTo("alignment")); @@ -510,7 +510,7 @@ public void NonAxiomaticAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Axiomatic }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns(alignment + " alignment").Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -524,7 +524,7 @@ public void AxiomaticAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Axiomatic }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns(alignment + " alignment").Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -536,7 +536,7 @@ public void NonAnarchicAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Anarchic }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns(alignment + " alignment").Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -550,7 +550,7 @@ public void AnarchicAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Anarchic }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns(alignment + " alignment").Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -562,7 +562,7 @@ public void NonHolyAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Holy }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment " + alignment).Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -575,7 +575,7 @@ public void HolyAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Holy }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment " + alignment).Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -587,7 +587,7 @@ public void NonUnholyAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Unholy }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment " + alignment).Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -600,7 +600,7 @@ public void UnholyAlignments(string alignment) { var ability = new SpecialAbility { Name = SpecialAbilityConstants.Unholy }; item.Magic.SpecialAbilities = new[] { ability }; - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment " + alignment).Returns("alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -611,11 +611,11 @@ public void UnholyAlignments(string alignment) public void ItemWithSpecificAlignmentHasMatchingAlignment() { item.Name = "item name"; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")) .Returns(new[] { item.Name, "other item name" }); var alignment = "specific alignment"; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { alignment }); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { alignment }); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment").Returns(alignment); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -626,9 +626,9 @@ public void ItemWithSpecificAlignmentHasMatchingAlignment() public void ItemWithNoSpecificAlignmentHasAnyAlignment() { item.Name = "item name"; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")).Returns(new[] { "other item name" }); - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { "specific" }); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")).Returns(new[] { "other item name" }); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { "specific" }); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment").Returns("specific alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -639,11 +639,11 @@ public void ItemWithNoSpecificAlignmentHasAnyAlignment() public void ItemWithSpecificAlignmentBeginningHasMatchingAlignment() { item.Name = "item name"; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")) .Returns(new[] { item.Name, "other item name" }); var alignment = "specific"; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { alignment }); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { alignment }); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment").Returns("specific alignment"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -654,11 +654,11 @@ public void ItemWithSpecificAlignmentBeginningHasMatchingAlignment() public void ItemWithSpecificAlignmentEndingHasMatchingAlignment() { item.Name = "item name"; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items")) .Returns(new[] { item.Name, "other item name" }); var alignment = "ending"; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { alignment }); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { alignment }); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment").Returns("specific alignment ending"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -669,7 +669,7 @@ public void ItemWithSpecificAlignmentEndingHasMatchingAlignment() public void ItemWithPartOfAlignmentAsTraitUsesThatAsAlignmentRequirement() { item.Traits.Add(AlignmentConstants.Good); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment Evil").Returns("alignment Good"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -681,7 +681,7 @@ public void ItemWithPartOfAlignmentAsPartOfTraitUsesThatAsAlignmentRequirement() { var trait = string.Format("trait ({0})", AlignmentConstants.Good); item.Traits.Add(trait); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment Evil").Returns("alignment Good"); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -692,7 +692,7 @@ public void ItemWithPartOfAlignmentAsPartOfTraitUsesThatAsAlignmentRequirement() public void ItemWithAlignmentAsTraitUsesThatAsAlignmentRequirement() { item.Traits.Add(AlignmentConstants.ChaoticNeutral); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment").Returns(AlignmentConstants.ChaoticNeutral); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -704,7 +704,7 @@ public void ItemWithAlignmentAsPartOfTraitUsesThatAsAlignmentRequirement() { var trait = string.Format("trait ({0})", AlignmentConstants.ChaoticNeutral); item.Traits.Add(trait); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns("alignment").Returns(AlignmentConstants.ChaoticNeutral); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -715,7 +715,7 @@ public void ItemWithAlignmentAsPartOfTraitUsesThatAsAlignmentRequirement() public void OnlyAlignmentsEndingInNeutralMatchNeutralRequirement() { item.Traits.Add(AlignmentConstants.Neutral); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns(AlignmentConstants.NeutralEvil).Returns(AlignmentConstants.ChaoticNeutral); var intelligence = intelligenceGenerator.GenerateFor(item); @@ -736,8 +736,8 @@ public void TrueNeutralSatisfiesAllRequirements() item.Traits.Add(AlignmentConstants.ChaoticEvil); item.Traits.Add($"trait ({AlignmentConstants.Good})"); - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { "specific" }); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments)) + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name)).Returns(new[] { "specific" }); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments)) .Returns(AlignmentConstants.ChaoticEvil) .Returns(AlignmentConstants.ChaoticGood) .Returns(AlignmentConstants.ChaoticNeutral) @@ -779,7 +779,7 @@ public void EgoIncludesLesserPowers() { intelligenceSelection.LesserPowersCount = 2; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("power 1").Returns("power 2"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Ego, Is.EqualTo(2)); @@ -790,7 +790,7 @@ public void EgoIncludesGreaterPowers() { intelligenceSelection.GreaterPowersCount = 2; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("greater power 1").Returns("greater power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("greater power 1").Returns("greater power 2"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Ego, Is.EqualTo(4)); @@ -801,11 +801,11 @@ public void EgoIncludesDedicatedPower() { intelligenceSelection.GreaterPowersCount = 1; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.Setup(s => s.SelectFrom(tableName)).Returns("greater power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, tableName)).Returns("greater power"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(4)).Returns(true); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Ego, Is.EqualTo(4)); @@ -815,7 +815,7 @@ public void EgoIncludesDedicatedPower() public void EgoIncludesTelepathy() { var attributes = new[] { "Telepathy" }; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Ego, Is.EqualTo(1)); @@ -825,7 +825,7 @@ public void EgoIncludesTelepathy() public void EgoIncludesReading() { var attributes = new[] { "Read" }; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Ego, Is.EqualTo(1)); @@ -835,7 +835,7 @@ public void EgoIncludesReading() public void EgoIncludesReadMagic() { var attributes = new[] { "Read magic" }; - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "10")).Returns(attributes); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Ego, Is.EqualTo(1)); @@ -854,7 +854,7 @@ public void EgoIncludesReadMagic() [TestCase(20, 10)] public void EgoIncludesStatBonuses(int strongStat, int egoBonus) { - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns(strongStat.ToString()); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns(strongStat.ToString()); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Ego, Is.EqualTo(egoBonus)); } @@ -863,20 +863,20 @@ public void EgoIncludesStatBonuses(int strongStat, int egoBonus) public void EgoSumsAllFactors() { var communication = new[] { "Read", "Read magic", "Telepathy" }; - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("19"); - mockCollectionsSelector.Setup(s => s.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, "19")).Returns(communication); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats)).Returns("19"); + mockCollectionsSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, "19")).Returns(communication); intelligenceSelection.LesserPowersCount = 2; intelligenceSelection.GreaterPowersCount = 2; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Greater"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("greater power 1").Returns("greater power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("greater power 1").Returns("greater power 2"); mockDice.Setup(d => d.Roll(1).d(4).AsTrueOrFalse(3)).Returns(true); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes)).Returns("purpose"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers)).Returns("dedicated power"); tableName = string.Format(TableNameConstants.Percentiles.Formattable.IntelligencePOWERPowers, "Lesser"); - mockPercentileSelector.SetupSequence(s => s.SelectFrom(tableName)).Returns("power 1").Returns("power 2"); + mockPercentileSelector.SetupSequence(s => s.SelectFrom(Config.Name, tableName)).Returns("power 1").Returns("power 2"); var ability = new SpecialAbility(); ability.BonusEquivalent = 92; @@ -890,7 +890,7 @@ public void EgoSumsAllFactors() [Test] public void IntelligenceHasPersonality() { - mockPercentileSelector.Setup(s => s.SelectFrom(TableNameConstants.Percentiles.Set.PersonalityTraits)).Returns("personality"); + mockPercentileSelector.Setup(s => s.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.PersonalityTraits)).Returns("personality"); var intelligence = intelligenceGenerator.GenerateFor(item); Assert.That(intelligence.Personality, Is.EqualTo("personality")); } diff --git a/DnDGen.TreasureGen/Config.cs b/DnDGen.TreasureGen/Config.cs new file mode 100644 index 00000000..88c9212d --- /dev/null +++ b/DnDGen.TreasureGen/Config.cs @@ -0,0 +1,7 @@ +namespace DnDGen.TreasureGen +{ + internal static class Config + { + public const string Name = "DnDGen.TreasureGen"; + } +} diff --git a/DnDGen.TreasureGen/DnDGen.TreasureGen.csproj b/DnDGen.TreasureGen/DnDGen.TreasureGen.csproj index 900bd885..069c27d5 100644 --- a/DnDGen.TreasureGen/DnDGen.TreasureGen.csproj +++ b/DnDGen.TreasureGen/DnDGen.TreasureGen.csproj @@ -973,8 +973,8 @@ - - + + diff --git a/DnDGen.TreasureGen/Generators/Goods/GoodsGenerator.cs b/DnDGen.TreasureGen/Generators/Goods/GoodsGenerator.cs index d5365575..fe8c9712 100644 --- a/DnDGen.TreasureGen/Generators/Goods/GoodsGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Goods/GoodsGenerator.cs @@ -52,7 +52,7 @@ private Good GenerateGood(TypeAndAmountSelection quantity) var valueSelection = typeAndAmountPercentileSelector.SelectFrom(valueTableName); var good = new Good(); - good.Description = collectionSelector.SelectRandomFrom(descriptionTableName, valueSelection.Type); + good.Description = collectionSelector.SelectRandomFrom(Config.Name, descriptionTableName, valueSelection.Type); good.ValueInGold = valueSelection.Amount; return good; diff --git a/DnDGen.TreasureGen/Generators/Items/ItemsGenerator.cs b/DnDGen.TreasureGen/Generators/Items/ItemsGenerator.cs index 9cbc979b..45a269b4 100644 --- a/DnDGen.TreasureGen/Generators/Items/ItemsGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/ItemsGenerator.cs @@ -84,7 +84,7 @@ private Item GenerateRandomAtPower(string power) private Item GenerateRandomMundaneItem() { var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERItems, PowerConstants.Mundane); - var itemType = percentileSelector.SelectFrom(tableName); + var itemType = percentileSelector.SelectFrom(Config.Name, tableName); return GenerateMundaneItem(itemType); } @@ -92,7 +92,7 @@ private Item GenerateRandomMundaneItem() private Item GenerateRandomMagicalItemAtPower(string power) { var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERItems, power); - var itemType = percentileSelector.SelectFrom(tableName); + var itemType = percentileSelector.SelectFrom(Config.Name, tableName); return GenerateMagicalItemAtPower(power, itemType); } @@ -104,10 +104,10 @@ public Item GenerateAtLevel(int level, string itemType, string itemName, params var tableName = string.Format(TableNameConstants.Percentiles.Formattable.LevelXItems, level); var result = typeAndAmountPercentileSelector.SelectFrom(tableName); - var powers = collectionSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, itemType); + var powers = collectionSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, itemType); if (itemType != ItemTypeConstants.Scroll && itemType != ItemTypeConstants.Wand) - powers = collectionSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, itemName); + powers = collectionSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, itemName); var power = PowerHelper.AdjustPower(result.Type, powers); if (power == PowerConstants.Mundane) diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/ChargesGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/ChargesGenerator.cs index 25bd4ca9..48590b1f 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/ChargesGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/ChargesGenerator.cs @@ -28,7 +28,7 @@ public int GenerateFor(string itemType, string name) if (name == WondrousItemConstants.DeckOfIllusions) { - var isFullyCharged = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IsDeckOfIllusionsFullyCharged); + var isFullyCharged = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IsDeckOfIllusionsFullyCharged); if (isFullyCharged) name = WondrousItemConstants.DeckOfIllusions_Full; diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/CurseGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/CurseGenerator.cs index 4db2ec21..f5736dec 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/CurseGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/CurseGenerator.cs @@ -29,12 +29,12 @@ public CurseGenerator(Dice dice, ITreasurePercentileSelector percentileSelector, public bool HasCurse(Item item) { - return item.IsMagical && percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IsItemCursed); + return item.IsMagical && percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IsItemCursed); } public string GenerateCurse() { - var curse = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.Curses); + var curse = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.Curses); if (curse == CurseConstants.Intermittent) { @@ -43,7 +43,7 @@ public string GenerateCurse() } if (curse == CurseConstants.Drawback) - return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.CurseDrawbacks); + return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.CurseDrawbacks); return curse; } @@ -58,13 +58,13 @@ private string GetIntermittentFunctioning() if (roll == 3) return "Uncontrolled"; - var situation = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.CursedDependentSituations); + var situation = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.CursedDependentSituations); return $"Dependent: {situation}"; } public Item GenerateRandom() { - var name = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.SpecificCursedItems); + var name = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.SpecificCursedItems); return Generate(name); } @@ -87,12 +87,12 @@ private string GetCursedName(string itemName) if (IsSpecificCursedItem(itemName)) return itemName; - var cursedItems = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, CurseConstants.SpecificCursedItem); + var cursedItems = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, CurseConstants.SpecificCursedItem); var cursedNames = new List(); foreach (var cursedName in cursedItems) { - var baseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, cursedName); + var baseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, cursedName); if (baseNames.Contains(itemName)) cursedNames.Add(cursedName); } @@ -106,7 +106,7 @@ private Item GeneratePrototype(string name) { var specificCursedItem = new Item(); specificCursedItem.Name = name; - specificCursedItem.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, name); + specificCursedItem.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, name); specificCursedItem.Magic.Curse = CurseConstants.SpecificCursedItem; return specificCursedItem; @@ -115,8 +115,10 @@ private Item GeneratePrototype(string name) private Item GenerateFromPrototype(Item prototype) { var specificCursedItem = prototype.Clone(); - specificCursedItem.ItemType = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.SpecificCursedItemItemTypes, specificCursedItem.Name).Single(); - specificCursedItem.Attributes = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.SpecificCursedItemAttributes, specificCursedItem.Name); + specificCursedItem.ItemType = collectionsSelector + .SelectFrom(Config.Name, TableNameConstants.Collections.Set.SpecificCursedItemItemTypes, specificCursedItem.Name) + .Single(); + specificCursedItem.Attributes = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.SpecificCursedItemAttributes, specificCursedItem.Name); if (specificCursedItem.ItemType == ItemTypeConstants.Armor) return GetArmor(specificCursedItem); @@ -169,7 +171,7 @@ public bool IsSpecificCursedItem(Item template) public bool IsSpecificCursedItem(string itemName) { - var cursedItems = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, CurseConstants.SpecificCursedItem); + var cursedItems = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, CurseConstants.SpecificCursedItem); return cursedItems.Contains(itemName); } @@ -178,10 +180,10 @@ public bool CanBeSpecificCursedItem(string itemName) if (IsSpecificCursedItem(itemName)) return true; - var cursedItems = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, CurseConstants.SpecificCursedItem); + var cursedItems = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, CurseConstants.SpecificCursedItem); foreach (var item in cursedItems) { - var baseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, item); + var baseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, item); if (baseNames.Contains(itemName)) return true; } @@ -191,14 +193,14 @@ public bool CanBeSpecificCursedItem(string itemName) public bool ItemTypeCanBeSpecificCursedItem(string itemType) { - var itemTypes = collectionsSelector.SelectAllFrom(TableNameConstants.Collections.Set.SpecificCursedItemItemTypes); + var itemTypes = collectionsSelector.SelectAllFrom(Config.Name, TableNameConstants.Collections.Set.SpecificCursedItemItemTypes); return itemTypes.Values.SelectMany(v => v).Contains(itemType); } public Item Generate(Item template, bool allowDecoration = false) { var prototype = template.SmartClone(); - prototype.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, prototype.Name); + prototype.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, prototype.Name); prototype.Magic.Curse = CurseConstants.SpecificCursedItem; prototype.Quantity = 1; prototype.Magic.SpecialAbilities = Enumerable.Empty(); @@ -222,7 +224,7 @@ public Item GenerateSpecificCursedItem(string itemType) private string GetCursedNameFromItemType(string itemType) { - var cursedItems = collectionsSelector.SelectAllFrom(TableNameConstants.Collections.Set.SpecificCursedItemItemTypes); + var cursedItems = collectionsSelector.SelectAllFrom(Config.Name, TableNameConstants.Collections.Set.SpecificCursedItemItemTypes); var cursedNames = cursedItems .Where(kvp => kvp.Value.Contains(itemType)) .Select(kvp => kvp.Key); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/IntelligenceGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/IntelligenceGenerator.cs index 5d51b83d..d2dfdcb6 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/IntelligenceGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/IntelligenceGenerator.cs @@ -46,12 +46,12 @@ public bool IsIntelligent(string itemType, IEnumerable attributes, bool itemType = AttributeConstants.Ranged; var tableName = string.Format(TableNameConstants.Percentiles.Formattable.IsITEMTYPEIntelligent, itemType); - return percentileSelector.SelectFrom(tableName); + return percentileSelector.SelectFrom(Config.Name, tableName); } public Intelligence GenerateFor(Item item) { - var highStatResult = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceStrongStats); + var highStatResult = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceStrongStats); var highStat = Convert.ToInt32(highStatResult); var intelligence = new Intelligence(); @@ -72,7 +72,7 @@ public Intelligence GenerateFor(Item item) case 3: intelligence.WisdomStat = 10; break; } - intelligence.Communication = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.IntelligenceCommunication, highStatResult); + intelligence.Communication = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceCommunication, highStatResult); if (intelligence.Communication.Contains("Speech")) intelligence.Languages = GenerateLanguages(intelligence.IntelligenceStat); @@ -95,15 +95,15 @@ public Intelligence GenerateFor(Item item) if (greaterPowers.Any() && hasSpecialPurpose) { greaterPowers.RemoveAt(greaterPowers.Count - 1); - intelligence.SpecialPurpose = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes); - intelligence.DedicatedPower = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers); + intelligence.SpecialPurpose = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceSpecialPurposes); + intelligence.DedicatedPower = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceDedicatedPowers); intelligence.Ego += 4; } intelligence.Ego += greaterPowers.Count * 2; intelligence.Powers.AddRange(greaterPowers); intelligence.Alignment = GetAlignment(item); - intelligence.Personality = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.PersonalityTraits); + intelligence.Personality = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.PersonalityTraits); return intelligence; } @@ -135,7 +135,7 @@ private List GetNonDuplicateList(string tableName, int quantity) while (list.Count < quantity) { - var result = percentileSelector.SelectFrom(tableName); + var result = percentileSelector.SelectFrom(Config.Name, tableName); if (result.Equals("Common", StringComparison.InvariantCultureIgnoreCase)) continue; @@ -155,7 +155,7 @@ private string GetAlignment(Item item) var abilityNames = item.Magic.SpecialAbilities.Select(a => a.Name); var specificAlignmentRequirement = GetSpecificAlignmentRequirement(item); - do alignment = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments); + do alignment = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments); while (!AlignmentIsAllowed(alignment, abilityNames, specificAlignmentRequirement)); return alignment; @@ -163,10 +163,10 @@ private string GetAlignment(Item item) private string GetSpecificAlignmentRequirement(Item item) { - var itemsWithSpecificAlignments = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items"); + var itemsWithSpecificAlignments = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, "Items"); if (itemsWithSpecificAlignments.Contains(item.Name)) - return collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name).Single(); + return collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemAlignmentRequirements, item.Name).Single(); var alignments = AlignmentConstants.GetAllAlignments(); var requirements = alignments.Where(a => item.Traits.Any(t => t.Contains(a))); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalArmorGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalArmorGenerator.cs index 7000c088..638d528b 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalArmorGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalArmorGenerator.cs @@ -62,7 +62,7 @@ private string GetArmorType(string itemName) } var tableName = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, ItemTypeConstants.Armor); - var attributes = collectionsSelector.SelectFrom(tableName, itemName); + var attributes = collectionsSelector.SelectFrom(Config.Name, tableName, itemName); if (attributes.Contains(AttributeConstants.Shield)) { @@ -89,10 +89,10 @@ private Item GenerateArmor(string power, string itemName, string armorType, bool private (string Name, string ArmorType) GenerateRandomName(string power) { var armorTypeTableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERArmorTypes, power, ItemTypeConstants.Armor); - var armorType = percentileSelector.SelectFrom(armorTypeTableName); + var armorType = percentileSelector.SelectFrom(Config.Name, armorTypeTableName); var nameTableName = string.Format(TableNameConstants.Percentiles.Formattable.ARMORTYPETypes, armorType); - var name = percentileSelector.SelectFrom(nameTableName); + var name = percentileSelector.SelectFrom(Config.Name, nameTableName); return (name, armorType); } @@ -114,14 +114,14 @@ private Armor GeneratePrototype(string power, string itemName, string armorType, var bonus = string.Empty; var abilityCount = 0; - do bonus = percentileSelector.SelectFrom(tableName); + do bonus = percentileSelector.SelectFrom(Config.Name, tableName); while (!canBeSpecific && bonus == ItemTypeConstants.Armor); while (bonus == SpecialAbility) { abilityCount++; - do bonus = percentileSelector.SelectFrom(tableName); + do bonus = percentileSelector.SelectFrom(Config.Name, tableName); while (!canBeSpecific && bonus == ItemTypeConstants.Armor); } @@ -137,7 +137,7 @@ private Armor GeneratePrototype(string power, string itemName, string armorType, } prototype.Name = itemName; - prototype.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, itemName); + prototype.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, itemName); prototype.Magic.Bonus = Convert.ToInt32(bonus); prototype.Magic.SpecialAbilities = Enumerable.Repeat(new SpecialAbility(), abilityCount); @@ -174,7 +174,7 @@ public Item Generate(Item template, bool allowRandomDecoration = false) var armorTemplate = new Armor(); template.CloneInto(armorTemplate); armorTemplate.Magic.SpecialAbilities = Enumerable.Empty(); - armorTemplate.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, armorTemplate.Name); + armorTemplate.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, armorTemplate.Name); var armor = GenerateFromPrototype(armorTemplate); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemGeneratorSpecialMaterialDecorator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemGeneratorSpecialMaterialDecorator.cs index 9cdef0c0..42dee0f3 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemGeneratorSpecialMaterialDecorator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemGeneratorSpecialMaterialDecorator.cs @@ -37,7 +37,7 @@ private Item AddSpecialMaterials(Item item, bool allowMaterials) item.Traits.Add(material); } - var masterworkMaterials = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.SpecialMaterials, TraitConstants.Masterwork); + var masterworkMaterials = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.SpecialMaterials, TraitConstants.Masterwork); if (item.Traits.Intersect(masterworkMaterials).Any()) item.Traits.Add(TraitConstants.Masterwork); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemTraitsGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemTraitsGenerator.cs index 4bb948b2..46db709c 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemTraitsGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalItemTraitsGenerator.cs @@ -1,8 +1,8 @@ -using System.Collections.Generic; -using System.Linq; +using DnDGen.TreasureGen.Items; using DnDGen.TreasureGen.Selectors.Percentiles; using DnDGen.TreasureGen.Tables; -using DnDGen.TreasureGen.Items; +using System.Collections.Generic; +using System.Linq; namespace DnDGen.TreasureGen.Generators.Items.Magical { @@ -18,7 +18,7 @@ public MagicalItemTraitsGenerator(ITreasurePercentileSelector percentileSelector public IEnumerable GenerateFor(string itemType, IEnumerable attributes) { var tableName = GetTableName(itemType, attributes); - var result = percentileSelector.SelectFrom(tableName); + var result = percentileSelector.SelectFrom(Config.Name, tableName); if (string.IsNullOrEmpty(result)) return Enumerable.Empty(); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalWeaponGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalWeaponGenerator.cs index 143294c0..dff6055a 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/MagicalWeaponGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/MagicalWeaponGenerator.cs @@ -65,9 +65,9 @@ private Item GenerateWeapon(string power, string name, bool isSpecific, params s private string GenerateRandomName() { - var type = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.MagicalWeaponTypes); + var type = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.MagicalWeaponTypes); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.WEAPONTYPEWeapons, type); - var name = percentileSelector.SelectFrom(tableName); + var name = percentileSelector.SelectFrom(Config.Name, tableName); return name; } @@ -89,14 +89,14 @@ private Weapon GeneratePrototype(string power, string itemName, bool isSpecific, var bonus = string.Empty; var specialAbilitiesCount = 0; - do bonus = percentileSelector.SelectFrom(tableName); + do bonus = percentileSelector.SelectFrom(Config.Name, tableName); while (!canBeSpecific && bonus == ItemTypeConstants.Weapon); while (bonus == SpecialAbility) { specialAbilitiesCount++; - do bonus = percentileSelector.SelectFrom(tableName); + do bonus = percentileSelector.SelectFrom(Config.Name, tableName); while (!canBeSpecific && bonus == ItemTypeConstants.Weapon); } @@ -112,7 +112,7 @@ private Weapon GeneratePrototype(string power, string itemName, bool isSpecific, } prototype.Name = itemName; - prototype.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, itemName); + prototype.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, itemName); prototype.Quantity = 0; prototype.Magic.Bonus = Convert.ToInt32(bonus); prototype.Magic.SpecialAbilities = Enumerable.Repeat(new SpecialAbility(), specialAbilitiesCount); @@ -183,7 +183,7 @@ private Weapon ApplySpecialAbilities(Weapon weapon) { if (weapon.Magic.SpecialAbilities.Any(a => a.Name == SpecialAbilityConstants.SpellStoring)) { - var shouldStoreSpell = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.SpellStoringContainsSpell); + var shouldStoreSpell = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.SpellStoringContainsSpell); if (shouldStoreSpell) { @@ -267,7 +267,7 @@ private Weapon ApplySpecialAbilities(Weapon weapon) public Item Generate(Item template, bool allowRandomDecoration = false) { - template.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, template.Name); + template.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, template.Name); var weapon = new Weapon(); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/PotionGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/PotionGenerator.cs index c8652653..1b91084e 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/PotionGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/PotionGenerator.cs @@ -49,7 +49,7 @@ private Item GeneratePotion(string itemName, int bonus, params string[] traits) public Item Generate(string power, string itemName, params string[] traits) { - var possiblePowers = collectionSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, itemName); + var possiblePowers = collectionSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, itemName); var adjustedPower = PowerHelper.AdjustPower(power, possiblePowers); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, adjustedPower, ItemTypeConstants.Potion); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/RingGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/RingGenerator.cs index aa3a9126..3dc38e8d 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/RingGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/RingGenerator.cs @@ -44,7 +44,7 @@ public Item GenerateRandom(string power) public Item Generate(string power, string itemName, params string[] traits) { - var possiblePowers = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, itemName); + var possiblePowers = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, itemName); var adjustedPower = PowerHelper.AdjustPower(power, possiblePowers); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, adjustedPower, ItemTypeConstants.Ring); @@ -79,7 +79,7 @@ private Item BuildRing(string name, string power, params string[] traits) ring.Traits = new HashSet(traits); var tableName = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, ring.ItemType); - ring.Attributes = collectionsSelector.SelectFrom(tableName, name); + ring.Attributes = collectionsSelector.SelectFrom(Config.Name, tableName, name); if (ring.Attributes.Contains(AttributeConstants.Charged)) ring.Magic.Charges = chargesGenerator.GenerateFor(ItemTypeConstants.Ring, name); @@ -142,7 +142,7 @@ public Item Generate(Item template, bool allowRandomDecoration = false) ring.IsMagical = true; var tableName = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, ItemTypeConstants.Ring); - ring.Attributes = collectionsSelector.SelectFrom(tableName, ring.Name); + ring.Attributes = collectionsSelector.SelectFrom(Config.Name, tableName, ring.Name); return ring.SmartClone(); } diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/RodGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/RodGenerator.cs index 3c6bc793..3196fa29 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/RodGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/RodGenerator.cs @@ -38,7 +38,7 @@ public RodGenerator(ITypeAndAmountPercentileSelector typeAndAmountPercentileSele public Item GenerateRandom(string power) { - var rodPowers = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, ItemTypeConstants.Rod); + var rodPowers = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, ItemTypeConstants.Rod); var adjustedPower = PowerHelper.AdjustPower(power, rodPowers); var tablename = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, adjustedPower, ItemTypeConstants.Rod); @@ -52,20 +52,20 @@ private Item GenerateRod(string name, int bonus, params string[] traits) var rod = new Item(); rod.ItemType = ItemTypeConstants.Rod; rod.Name = name; - rod.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, name); + rod.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, name); rod.IsMagical = true; rod.Magic.Bonus = bonus; rod.Traits = new HashSet(traits); var tablename = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, ItemTypeConstants.Rod); - rod.Attributes = collectionsSelector.SelectFrom(tablename, name); + rod.Attributes = collectionsSelector.SelectFrom(Config.Name, tablename, name); if (rod.Attributes.Contains(AttributeConstants.Charged)) rod.Magic.Charges = chargesGenerator.GenerateFor(ItemTypeConstants.Rod, name); if (name == RodConstants.Absorption) { - var containsSpellLevels = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.RodOfAbsorptionContainsSpellLevels); + var containsSpellLevels = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.RodOfAbsorptionContainsSpellLevels); if (containsSpellLevels) { var maxCharges = chargesGenerator.GenerateFor(ItemTypeConstants.Rod, RodConstants.Absorption_Full); @@ -83,7 +83,7 @@ public Item Generate(string power, string itemName, params string[] traits) { var rodName = GetRodName(itemName); - var powers = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, rodName); + var powers = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, rodName); var adjustedPower = PowerHelper.AdjustPower(power, powers); var tablename = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, adjustedPower, ItemTypeConstants.Rod); @@ -191,7 +191,7 @@ private Item GetWeapon(Item rod) public Item Generate(Item template, bool allowRandomDecoration = false) { var rod = template.Clone(); - rod.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, rod.Name); + rod.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, rod.Name); rod.IsMagical = true; rod.Quantity = 1; rod.ItemType = ItemTypeConstants.Rod; @@ -201,7 +201,7 @@ public Item Generate(Item template, bool allowRandomDecoration = false) rod.Magic.Bonus = result.Amount; var tablename = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, ItemTypeConstants.Rod); - rod.Attributes = collectionsSelector.SelectFrom(tablename, rod.Name); + rod.Attributes = collectionsSelector.SelectFrom(Config.Name, tablename, rod.Name); rod.Magic.SpecialAbilities = specialAbilitiesGenerator.GenerateFor(rod.Magic.SpecialAbilities); @@ -232,7 +232,7 @@ private string GetRodName(string itemName) if (rods.Contains(itemName)) return itemName; - var rodFromBaseName = collectionsSelector.FindCollectionOf(TableNameConstants.Collections.Set.ItemGroups, itemName, rods.ToArray()); + var rodFromBaseName = collectionsSelector.FindCollectionOf(Config.Name, TableNameConstants.Collections.Set.ItemGroups, itemName, rods.ToArray()); return rodFromBaseName; } diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/SpecialAbilitiesGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/SpecialAbilitiesGenerator.cs index cb20890f..9a9c74f7 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/SpecialAbilitiesGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/SpecialAbilitiesGenerator.cs @@ -116,7 +116,7 @@ private List GetAvailableAbilities(Item targetItem, IEnumerable< foreach (var tableName in tableNames) { - var abilityNames = percentileSelector.SelectAllFrom(tableName); + var abilityNames = percentileSelector.SelectAllFrom(Config.Name, tableName); foreach (var abilityName in abilityNames) { @@ -140,11 +140,11 @@ private SpecialAbility GetSpecialAbility(string abilityName) ability.Name = abilityName; ability.BaseName = abilitySelection.BaseName; - ability.AttributeRequirements = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.SpecialAbilityAttributeRequirements, ability.BaseName); + ability.AttributeRequirements = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.SpecialAbilityAttributeRequirements, ability.BaseName); ability.BonusEquivalent = abilitySelection.BonusEquivalent; ability.Power = abilitySelection.Power; - var damagesData = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.WeaponDamages, abilityName).ToArray(); + var damagesData = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.WeaponDamages, abilityName).ToArray(); if (!damagesData.Any()) { return ability; @@ -234,7 +234,7 @@ private SpecialAbility GenerateAbilityFrom(IEnumerable available { var tableName = collectionsSelector.SelectRandomFrom(tableNames); - abilityName = percentileSelector.SelectFrom(tableName); + abilityName = percentileSelector.SelectFrom(Config.Name, tableName); if (abilityName == "BonusSpecialAbility") return new SpecialAbility { Name = abilityName }; diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/SpellGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/SpellGenerator.cs index 1eb92b62..38aaa297 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/SpellGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/SpellGenerator.cs @@ -1,6 +1,6 @@ -using System; -using DnDGen.TreasureGen.Selectors.Percentiles; +using DnDGen.TreasureGen.Selectors.Percentiles; using DnDGen.TreasureGen.Tables; +using System; namespace DnDGen.TreasureGen.Generators.Items.Magical { @@ -15,20 +15,20 @@ public SpellGenerator(ITreasurePercentileSelector percentileSelector) public string GenerateType() { - return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.SpellTypes); + return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.SpellTypes); } public int GenerateLevel(string power) { var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERSpellLevels, power); - var level = percentileSelector.SelectFrom(tableName); + var level = percentileSelector.SelectFrom(Config.Name, tableName); return Convert.ToInt32(level); } public string Generate(string spellType, int level) { var tableName = string.Format(TableNameConstants.Percentiles.Formattable.LevelXSPELLTYPESpells, level, spellType); - return percentileSelector.SelectFrom(tableName); + return percentileSelector.SelectFrom(Config.Name, tableName); } } } \ No newline at end of file diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/StaffGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/StaffGenerator.cs index a9e5f7ec..99c52852 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/StaffGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/StaffGenerator.cs @@ -34,7 +34,7 @@ public StaffGenerator(ITypeAndAmountPercentileSelector typeAndAmountPercentileSe public Item GenerateRandom(string power) { - var rodPowers = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, ItemTypeConstants.Staff); + var rodPowers = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, ItemTypeConstants.Staff); var adjustedPower = PowerHelper.AdjustPower(power, rodPowers); var tablename = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, adjustedPower, ItemTypeConstants.Staff); @@ -59,7 +59,7 @@ private Item GenerateStaff(string name, int bonus, params string[] traits) public Item Generate(string power, string itemName, params string[] traits) { var staffName = GetStaffName(itemName); - var powers = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, staffName); + var powers = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, staffName); var adjustedPower = PowerHelper.AdjustPower(power, powers); var tablename = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, adjustedPower, ItemTypeConstants.Staff); @@ -76,7 +76,7 @@ private string GetStaffName(string itemName) if (staffs.Contains(itemName)) return itemName; - var staffFromBaseName = collectionsSelector.FindCollectionOf(TableNameConstants.Collections.Set.ItemGroups, itemName, staffs.ToArray()); + var staffFromBaseName = collectionsSelector.FindCollectionOf(Config.Name, TableNameConstants.Collections.Set.ItemGroups, itemName, staffs.ToArray()); return staffFromBaseName; } @@ -87,7 +87,7 @@ private Item BuildStaff(Item staff) staff.Attributes = new[] { AttributeConstants.Charged, AttributeConstants.OneTimeUse }; staff.Quantity = 1; staff.IsMagical = true; - staff.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, staff.Name); + staff.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, staff.Name); staff = GetWeapon(staff); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/WandGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/WandGenerator.cs index 4e61221d..49810e02 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/WandGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/WandGenerator.cs @@ -20,7 +20,7 @@ public WandGenerator(ITreasurePercentileSelector percentileSelector, IChargesGen public Item GenerateRandom(string power) { var tablename = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, power, ItemTypeConstants.Wand); - var spell = percentileSelector.SelectFrom(tablename); + var spell = percentileSelector.SelectFrom(Config.Name, tablename); var name = $"Wand of {spell}"; return GenerateWand(name); diff --git a/DnDGen.TreasureGen/Generators/Items/Magical/WondrousItemGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Magical/WondrousItemGenerator.cs index f78ea457..bacf701f 100644 --- a/DnDGen.TreasureGen/Generators/Items/Magical/WondrousItemGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Magical/WondrousItemGenerator.cs @@ -48,7 +48,7 @@ public Item GenerateRandom(string power) public Item Generate(string power, string itemName, params string[] traits) { - var possiblePowers = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, itemName); + var possiblePowers = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, itemName); var adjustedPower = PowerHelper.AdjustPower(power, possiblePowers); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERITEMTYPEs, adjustedPower, ItemTypeConstants.WondrousItem); @@ -72,7 +72,7 @@ private Item BuildWondrousItem(string name, params string[] traits) item.Traits = new HashSet(traits); var tableName = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, item.ItemType); - item.Attributes = collectionsSelector.SelectFrom(tableName, name); + item.Attributes = collectionsSelector.SelectFrom(Config.Name, tableName, name); if (item.Attributes.Contains(AttributeConstants.Charged)) item.Magic.Charges = chargesGenerator.GenerateFor(item.ItemType, name); @@ -94,9 +94,9 @@ private string GetTraitFor(string name) { switch (name) { - case WondrousItemConstants.HornOfValhalla: return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.HornOfValhallaTypes); - case WondrousItemConstants.CandleOfInvocation: return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IntelligenceAlignments); - case WondrousItemConstants.RobeOfTheArchmagi: return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.RobeOfTheArchmagiColors); + case WondrousItemConstants.HornOfValhalla: return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.HornOfValhallaTypes); + case WondrousItemConstants.CandleOfInvocation: return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IntelligenceAlignments); + case WondrousItemConstants.RobeOfTheArchmagi: return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.RobeOfTheArchmagiColors); default: return string.Empty; } } @@ -118,20 +118,20 @@ private IEnumerable GetContentsFor(string name) private IEnumerable GetIronFlaskContents() { - var contents = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IronFlaskContents); + var contents = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IronFlaskContents); if (string.IsNullOrEmpty(contents)) return Enumerable.Empty(); if (contents == TableNameConstants.Percentiles.Set.BalorOrPitFiend) - contents = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.BalorOrPitFiend); + contents = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.BalorOrPitFiend); return new[] { contents }; } private IEnumerable GetRobeOfUsefulItemsItems() { - var baseItems = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.WondrousItemContents, WondrousItemConstants.RobeOfUsefulItems); + var baseItems = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.WondrousItemContents, WondrousItemConstants.RobeOfUsefulItems); var extraItems = GenerateExtraItemsInRobeOfUsefulItems(); //INFO: Can't do Union because it will deduplicate the allowed duplicate items @@ -145,7 +145,7 @@ private IEnumerable GetRobeOfUsefulItemsItems() private IEnumerable GetPartialContents(string name) { var quantity = chargesGenerator.GenerateFor(ItemTypeConstants.WondrousItem, name); - var fullContents = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.WondrousItemContents, name).ToList(); + var fullContents = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.WondrousItemContents, name).ToList(); if (quantity >= fullContents.Count) return fullContents; @@ -184,7 +184,7 @@ private IEnumerable GenerateExtraItemsInRobeOfUsefulItems() while (quantity-- > 0) { - var item = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.RobeOfUsefulItemsExtraItems); + var item = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.RobeOfUsefulItemsExtraItems); if (item == ItemTypeConstants.Scroll) { @@ -208,7 +208,7 @@ private IEnumerable GeneratePlanesForCubicGate() while (planes.Count < 6) { - var plane = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.Planes); + var plane = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.Planes); planes.Add(plane); } @@ -222,7 +222,7 @@ public Item Generate(Item template, bool allowRandomDecoration = false) item.BaseNames = new[] { item.Name }; var tableName = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, ItemTypeConstants.WondrousItem); - item.Attributes = collectionsSelector.SelectFrom(tableName, item.Name); + item.Attributes = collectionsSelector.SelectFrom(Config.Name, tableName, item.Name); item.ItemType = ItemTypeConstants.WondrousItem; return item.SmartClone(); diff --git a/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneArmorGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneArmorGenerator.cs index 40206f5a..2876b23a 100644 --- a/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneArmorGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneArmorGenerator.cs @@ -44,7 +44,7 @@ private Armor SetArmorAttributes(Armor armor) armor.Quantity = 1; var tableName = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, armor.ItemType); - armor.Attributes = collectionsSelector.SelectFrom(tableName, armor.Name); + armor.Attributes = collectionsSelector.SelectFrom(Config.Name, tableName, armor.Name); armor.Size = GetSize(armor); armor.Traits.Remove(armor.Size); @@ -59,7 +59,7 @@ private Armor SetArmorAttributes(Armor armor) public Item Generate(Item template, bool allowRandomDecoration = false) { - template.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, template.Name); + template.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, template.Name); var armor = new Armor(); @@ -81,7 +81,7 @@ private string GetSize(Armor template) if (!template.Traits.Any()) return GetRandomSize(); - var allSizes = percentileSelector.SelectAllFrom(TableNameConstants.Percentiles.Set.MundaneGearSizes); + var allSizes = percentileSelector.SelectAllFrom(Config.Name, TableNameConstants.Percentiles.Set.MundaneGearSizes); var sizeTraits = template.Traits.Intersect(allSizes); if (sizeTraits.Any()) @@ -92,7 +92,7 @@ private string GetSize(Armor template) private string GetRandomSize() { - return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.MundaneGearSizes); + return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.MundaneGearSizes); } private Armor GenerateFromPrototype(Armor prototype, bool allowDecoration) @@ -101,7 +101,7 @@ private Armor GenerateFromPrototype(Armor prototype, bool allowDecoration) if (allowDecoration) { - var isMasterwork = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IsMasterwork); + var isMasterwork = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IsMasterwork); if (isMasterwork) armor.Traits.Add(TraitConstants.Masterwork); } @@ -111,10 +111,10 @@ private Armor GenerateFromPrototype(Armor prototype, bool allowDecoration) private string GetRandomName() { - var name = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.MundaneArmors); + var name = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.MundaneArmors); if (name == AttributeConstants.Shield) - name = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.MundaneShields); + name = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.MundaneShields); return name; } @@ -123,7 +123,7 @@ private Armor GeneratePrototype(string itemName) { var armor = new Armor(); armor.Name = itemName; - armor.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, itemName); + armor.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, itemName); return armor; } diff --git a/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneItemGeneratorSpecialMaterialDecorator.cs b/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneItemGeneratorSpecialMaterialDecorator.cs index 6b21884b..00204c23 100644 --- a/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneItemGeneratorSpecialMaterialDecorator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneItemGeneratorSpecialMaterialDecorator.cs @@ -43,7 +43,7 @@ private Item AddSpecialMaterials(Item item) item.Traits.Add(material); } - var masterworkMaterials = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.SpecialMaterials, TraitConstants.Masterwork); + var masterworkMaterials = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.SpecialMaterials, TraitConstants.Masterwork); if (item.Traits.Intersect(masterworkMaterials).Any()) item.Traits.Add(TraitConstants.Masterwork); diff --git a/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneWeaponGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneWeaponGenerator.cs index 90f98974..84e60418 100644 --- a/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneWeaponGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Mundane/MundaneWeaponGenerator.cs @@ -51,9 +51,9 @@ public Item Generate(string itemName, params string[] traits) private string GetRandomName() { - var type = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.MundaneWeaponTypes); + var type = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.MundaneWeaponTypes); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.WEAPONTYPEWeapons, type); - var weaponName = percentileSelector.SelectFrom(tableName); + var weaponName = percentileSelector.SelectFrom(Config.Name, tableName); return weaponName; } @@ -62,7 +62,7 @@ private Weapon GeneratePrototype(string name) { var weapon = new Weapon(); weapon.Name = name; - weapon.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, name); + weapon.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, name); weapon.Quantity = 0; return weapon; @@ -75,7 +75,7 @@ private Weapon GenerateFromPrototype(Weapon prototype, bool allowDecoration) if (allowDecoration) { - var isMasterwork = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.IsMasterwork); + var isMasterwork = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.IsMasterwork); if (isMasterwork) weapon.Traits.Add(TraitConstants.Masterwork); } @@ -104,7 +104,7 @@ private Weapon SetWeaponAttributes(Weapon weapon) } var tableName = string.Format(TableNameConstants.Collections.Formattable.ITEMTYPEAttributes, ItemTypeConstants.Weapon); - weapon.Attributes = collectionsSelector.SelectFrom(tableName, weapon.Name); + weapon.Attributes = collectionsSelector.SelectFrom(Config.Name, tableName, weapon.Name); var weaponSelection = weaponDataSelector.Select(weapon.Name); if (!weapon.Damages.Any()) @@ -168,7 +168,7 @@ private string GetCompositeBowBonus(string weaponName) public Item Generate(Item template, bool allowRandomDecoration = false) { - template.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, template.Name); + template.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, template.Name); var weapon = new Weapon(); @@ -190,7 +190,7 @@ private string GetSize(Weapon template) if (!template.Traits.Any()) return GetRandomSize(); - var allSizes = percentileSelector.SelectAllFrom(TableNameConstants.Percentiles.Set.MundaneGearSizes); + var allSizes = percentileSelector.SelectAllFrom(Config.Name, TableNameConstants.Percentiles.Set.MundaneGearSizes); var sizeTraits = template.Traits.Intersect(allSizes); if (sizeTraits.Any()) @@ -201,7 +201,7 @@ private string GetSize(Weapon template) private string GetRandomSize() { - return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.MundaneGearSizes); + return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.MundaneGearSizes); } } } \ No newline at end of file diff --git a/DnDGen.TreasureGen/Generators/Items/Mundane/SpecialMaterialGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Mundane/SpecialMaterialGenerator.cs index 2ca9b3da..c5368cb8 100644 --- a/DnDGen.TreasureGen/Generators/Items/Mundane/SpecialMaterialGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Mundane/SpecialMaterialGenerator.cs @@ -1,11 +1,11 @@ using DnDGen.Infrastructure.Selectors.Collections; -using System; -using System.Collections.Generic; -using System.Linq; +using DnDGen.TreasureGen.Items; using DnDGen.TreasureGen.Items.Mundane; using DnDGen.TreasureGen.Selectors.Percentiles; using DnDGen.TreasureGen.Tables; -using DnDGen.TreasureGen.Items; +using System; +using System.Collections.Generic; +using System.Linq; namespace DnDGen.TreasureGen.Generators.Items.Mundane { @@ -26,7 +26,7 @@ public bool CanHaveSpecialMaterial(string itemType, IEnumerable attribut return false; var attributesWithType = attributes.Union(new[] { itemType }); - return percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.HasSpecialMaterial) + return percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.HasSpecialMaterial) && AttributesAllowForSpecialMaterials(attributesWithType) && TraitsAllowForSpecialMaterials(attributesWithType, traits); } @@ -63,7 +63,7 @@ private Dictionary> GetSpecialMaterialAttributes() foreach (var material in allMaterials) { - var attributeRequirements = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.SpecialMaterials, material); + var attributeRequirements = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.SpecialMaterials, material); specialMaterialAttributeRequirements.Add(material, attributeRequirements); } diff --git a/DnDGen.TreasureGen/Generators/Items/Mundane/ToolGenerator.cs b/DnDGen.TreasureGen/Generators/Items/Mundane/ToolGenerator.cs index 3b30fcd7..307577c7 100644 --- a/DnDGen.TreasureGen/Generators/Items/Mundane/ToolGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/Mundane/ToolGenerator.cs @@ -18,7 +18,7 @@ public ToolGenerator(ITreasurePercentileSelector percentileSelector) public Item GenerateRandom() { - var name = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.Tools); + var name = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.Tools); return Generate(name); } diff --git a/DnDGen.TreasureGen/Generators/Items/SpecificGearGenerator.cs b/DnDGen.TreasureGen/Generators/Items/SpecificGearGenerator.cs index 7882e2cd..3eeffc29 100644 --- a/DnDGen.TreasureGen/Generators/Items/SpecificGearGenerator.cs +++ b/DnDGen.TreasureGen/Generators/Items/SpecificGearGenerator.cs @@ -52,11 +52,11 @@ private Item SetPrototypeAttributes(Item prototype, string specificGearType) } else if (gear.Name == ArmorConstants.CastersShield) { - var hasSpell = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.CastersShieldContainsSpell); + var hasSpell = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.CastersShieldContainsSpell); if (hasSpell) { - var spellType = percentileSelector.SelectFrom(TableNameConstants.Percentiles.Set.CastersShieldSpellTypes); + var spellType = percentileSelector.SelectFrom(Config.Name, TableNameConstants.Percentiles.Set.CastersShieldSpellTypes); var spellLevel = spellGenerator.GenerateLevel(PowerConstants.Medium); var spell = spellGenerator.Generate(spellType, spellLevel); var formattedSpell = $"{spell} ({spellType}, {spellLevel})"; @@ -70,10 +70,10 @@ private Item SetPrototypeAttributes(Item prototype, string specificGearType) gear.Magic.SpecialAbilities = GetSpecialAbilities(specificGearType, templateName, prototype.Magic.SpecialAbilities); var tableName = string.Format(TableNameConstants.Collections.Formattable.SpecificITEMTYPEAttributes, specificGearType); - gear.Attributes = collectionsSelector.SelectFrom(tableName, templateName); + gear.Attributes = collectionsSelector.SelectFrom(Config.Name, tableName, templateName); tableName = string.Format(TableNameConstants.Collections.Formattable.SpecificITEMTYPETraits, specificGearType); - var traits = collectionsSelector.SelectFrom(tableName, templateName); + var traits = collectionsSelector.SelectFrom(Config.Name, tableName, templateName); foreach (var trait in traits) gear.Traits.Add(trait); @@ -219,7 +219,7 @@ private Weapon GetWeapon(Item gear) private IEnumerable GetSpecialAbilities(string specificGearType, string name, IEnumerable templateSpecialAbilities) { var tableName = string.Format(TableNameConstants.Collections.Formattable.SpecificITEMTYPESpecialAbilities, specificGearType); - var abilityNames = collectionsSelector.SelectFrom(tableName, name); + var abilityNames = collectionsSelector.SelectFrom(Config.Name, tableName, name); var abilityPrototypes = abilityNames.Select(n => new SpecialAbility { Name = n }).Union(templateSpecialAbilities); var abilities = specialAbilitiesGenerator.GenerateFor(abilityPrototypes); @@ -232,7 +232,7 @@ public Item GenerateFrom(Item template) var specificGearType = GetSpecificGearType(gear.Name); gear.ItemType = GetItemType(specificGearType); - gear.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, gear.Name); + gear.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, gear.Name); gear = SetPrototypeAttributes(gear, specificGearType); @@ -271,7 +271,7 @@ public bool IsSpecific(Item template) public Item GeneratePrototypeFrom(string power, string specificGearType, string name, params string[] traits) { - var possiblePowers = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.PowerGroups, name); + var possiblePowers = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.PowerGroups, name); var adjustedPower = PowerHelper.AdjustPower(power, possiblePowers); var tableName = string.Format(TableNameConstants.Percentiles.Formattable.POWERSpecificITEMTYPEs, adjustedPower, specificGearType); @@ -282,7 +282,7 @@ public Item GeneratePrototypeFrom(string power, string specificGearType, string var gear = new Item(); gear.Name = selection.Type; - gear.BaseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, selection.Type); + gear.BaseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, selection.Type); gear.ItemType = GetItemType(specificGearType); gear.Magic.Bonus = selection.Amount; gear.Quantity = 0; @@ -329,7 +329,7 @@ public string GenerateNameFrom(string power, string specificGearType, string bas foreach (var selection in selections) { - var baseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, selection.Type); + var baseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, selection.Type); if (baseNames.Contains(baseType)) names.Add(selection.Type); } @@ -375,7 +375,7 @@ public bool CanBeSpecific(string power, string specificGearType, string itemName foreach (var selection in powerSelections) { - var baseNames = collectionsSelector.SelectFrom(TableNameConstants.Collections.Set.ItemGroups, selection.Type); + var baseNames = collectionsSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ItemGroups, selection.Type); if (baseNames.Contains(itemName)) return true; } diff --git a/DnDGen.TreasureGen/Selectors/Collections/ArmorDataSelector.cs b/DnDGen.TreasureGen/Selectors/Collections/ArmorDataSelector.cs index 491c3728..d0e8df86 100644 --- a/DnDGen.TreasureGen/Selectors/Collections/ArmorDataSelector.cs +++ b/DnDGen.TreasureGen/Selectors/Collections/ArmorDataSelector.cs @@ -1,8 +1,8 @@ using DnDGen.Infrastructure.Selectors.Collections; -using System; -using System.Linq; using DnDGen.TreasureGen.Selectors.Selections; using DnDGen.TreasureGen.Tables; +using System; +using System.Linq; namespace DnDGen.TreasureGen.Selectors.Collections { @@ -17,7 +17,7 @@ public ArmorDataSelector(ICollectionSelector innerSelector) public ArmorSelection Select(string name) { - var data = innerSelector.SelectFrom(TableNameConstants.Collections.Set.ArmorData, name).ToArray(); + var data = innerSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.ArmorData, name).ToArray(); var selection = new ArmorSelection(); selection.ArmorBonus = Convert.ToInt32(data[DataIndexConstants.Armor.ArmorBonus]); diff --git a/DnDGen.TreasureGen/Selectors/Collections/IntelligenceDataSelector.cs b/DnDGen.TreasureGen/Selectors/Collections/IntelligenceDataSelector.cs index 2ba0f2ae..826c8611 100644 --- a/DnDGen.TreasureGen/Selectors/Collections/IntelligenceDataSelector.cs +++ b/DnDGen.TreasureGen/Selectors/Collections/IntelligenceDataSelector.cs @@ -1,8 +1,8 @@ using DnDGen.Infrastructure.Selectors.Collections; -using System; -using System.Linq; using DnDGen.TreasureGen.Selectors.Selections; using DnDGen.TreasureGen.Tables; +using System; +using System.Linq; namespace DnDGen.TreasureGen.Selectors.Collections { @@ -17,7 +17,7 @@ public IntelligenceDataSelector(ICollectionSelector innerSelector) public IntelligenceSelection SelectFrom(string name) { - var data = innerSelector.SelectFrom(TableNameConstants.Collections.Set.IntelligenceData, name).ToList(); + var data = innerSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.IntelligenceData, name).ToList(); if (data.Count != 3) throw new Exception("Data is not formatted for intelligence"); diff --git a/DnDGen.TreasureGen/Selectors/Collections/RangeDataSelector.cs b/DnDGen.TreasureGen/Selectors/Collections/RangeDataSelector.cs index 6058113c..8924ddef 100644 --- a/DnDGen.TreasureGen/Selectors/Collections/RangeDataSelector.cs +++ b/DnDGen.TreasureGen/Selectors/Collections/RangeDataSelector.cs @@ -1,8 +1,8 @@ using DnDGen.Infrastructure.Selectors.Collections; -using System; -using System.Linq; using DnDGen.TreasureGen.Selectors.Selections; using DnDGen.TreasureGen.Tables; +using System; +using System.Linq; namespace DnDGen.TreasureGen.Selectors.Collections { @@ -17,7 +17,7 @@ public RangeDataSelector(ICollectionSelector innerSelector) public RangeSelection SelectFrom(string tableName, string name) { - var data = innerSelector.SelectFrom(tableName, name).ToArray(); + var data = innerSelector.SelectFrom(Config.Name, tableName, name).ToArray(); if (data.Count() != 2) throw new Exception("Data is not in format for range"); diff --git a/DnDGen.TreasureGen/Selectors/Collections/SpecialAbilityDataSelector.cs b/DnDGen.TreasureGen/Selectors/Collections/SpecialAbilityDataSelector.cs index a6924cdb..b4af3b71 100644 --- a/DnDGen.TreasureGen/Selectors/Collections/SpecialAbilityDataSelector.cs +++ b/DnDGen.TreasureGen/Selectors/Collections/SpecialAbilityDataSelector.cs @@ -1,8 +1,8 @@ using DnDGen.Infrastructure.Selectors.Collections; -using System; -using System.Linq; using DnDGen.TreasureGen.Selectors.Selections; using DnDGen.TreasureGen.Tables; +using System; +using System.Linq; namespace DnDGen.TreasureGen.Selectors.Collections { @@ -17,12 +17,12 @@ public SpecialAbilityDataSelector(ICollectionSelector innerSelector) public bool IsSpecialAbility(string name) { - return innerSelector.IsCollection(TableNameConstants.Collections.Set.SpecialAbilityAttributes, name); + return innerSelector.IsCollection(Config.Name, TableNameConstants.Collections.Set.SpecialAbilityAttributes, name); } public SpecialAbilitySelection SelectFrom(string name) { - var data = innerSelector.SelectFrom(TableNameConstants.Collections.Set.SpecialAbilityAttributes, name).ToArray(); + var data = innerSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.SpecialAbilityAttributes, name).ToArray(); if (data.Length != 3) throw new Exception("Data is not formatted for special abilities"); diff --git a/DnDGen.TreasureGen/Selectors/Collections/WeaponDataSelector.cs b/DnDGen.TreasureGen/Selectors/Collections/WeaponDataSelector.cs index 2f3f3eb2..43a88ffc 100644 --- a/DnDGen.TreasureGen/Selectors/Collections/WeaponDataSelector.cs +++ b/DnDGen.TreasureGen/Selectors/Collections/WeaponDataSelector.cs @@ -22,8 +22,8 @@ public WeaponDataSelector(ICollectionSelector collectionSelector) public WeaponSelection Select(string name) { - var data = collectionSelector.SelectFrom(TableNameConstants.Collections.Set.WeaponData, name).ToArray(); - var damagesData = collectionSelector.SelectFrom(TableNameConstants.Collections.Set.WeaponDamages, name).ToArray(); + var data = collectionSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.WeaponData, name).ToArray(); + var damagesData = collectionSelector.SelectFrom(Config.Name, TableNameConstants.Collections.Set.WeaponDamages, name).ToArray(); var damages = new List>(); foreach (var damageData in damagesData) diff --git a/DnDGen.TreasureGen/Selectors/Percentiles/PercentileSelectorStringReplacementDecorator.cs b/DnDGen.TreasureGen/Selectors/Percentiles/PercentileSelectorStringReplacementDecorator.cs index b639984b..1459b385 100644 --- a/DnDGen.TreasureGen/Selectors/Percentiles/PercentileSelectorStringReplacementDecorator.cs +++ b/DnDGen.TreasureGen/Selectors/Percentiles/PercentileSelectorStringReplacementDecorator.cs @@ -16,30 +16,30 @@ public PercentileSelectorStringReplacementDecorator( this.replacementSelector = replacementSelector; } - public string SelectFrom(string tableName) + public string SelectFrom(string assemblyName, string tableName) { - var result = innerSelector.SelectFrom(tableName); + var result = innerSelector.SelectFrom(assemblyName, tableName); var replaceResult = replacementSelector.SelectRandom(result); return replaceResult; } - public IEnumerable SelectAllFrom(string tableName) + public IEnumerable SelectAllFrom(string assemblyName, string tableName) { - var results = innerSelector.SelectAllFrom(tableName); + var results = innerSelector.SelectAllFrom(assemblyName, tableName); var allResults = replacementSelector.SelectAll(results); return allResults; } - public T SelectFrom(string tableName) + public T SelectFrom(string assemblyName, string tableName) { - return innerSelector.SelectFrom(tableName); + return innerSelector.SelectFrom(assemblyName, tableName); } - public IEnumerable SelectAllFrom(string tableName) + public IEnumerable SelectAllFrom(string assemblyName, string tableName) { - return innerSelector.SelectAllFrom(tableName); + return innerSelector.SelectAllFrom(assemblyName, tableName); } public bool SelectFrom(double chance) diff --git a/DnDGen.TreasureGen/Selectors/Percentiles/ReplacementSelector.cs b/DnDGen.TreasureGen/Selectors/Percentiles/ReplacementSelector.cs index 42d9106c..773ee8d9 100644 --- a/DnDGen.TreasureGen/Selectors/Percentiles/ReplacementSelector.cs +++ b/DnDGen.TreasureGen/Selectors/Percentiles/ReplacementSelector.cs @@ -30,7 +30,7 @@ public string SelectRandom(string source) private Dictionary> GetReplacementTargetsAndTables(string source, bool allowSingle) { - var replacements = collectionsSelector.SelectAllFrom(TableNameConstants.Collections.Set.ReplacementStrings); + var replacements = collectionsSelector.SelectAllFrom(Config.Name, TableNameConstants.Collections.Set.ReplacementStrings); var matchingReplacements = replacements .Where(kvp => source.Contains(kvp.Key)) .Where(kvp => allowSingle || kvp.Value.Count() > 1) diff --git a/DnDGen.TreasureGen/Selectors/Percentiles/TypeAndAmountPercentileSelector.cs b/DnDGen.TreasureGen/Selectors/Percentiles/TypeAndAmountPercentileSelector.cs index 61258258..e14cc537 100644 --- a/DnDGen.TreasureGen/Selectors/Percentiles/TypeAndAmountPercentileSelector.cs +++ b/DnDGen.TreasureGen/Selectors/Percentiles/TypeAndAmountPercentileSelector.cs @@ -1,8 +1,8 @@ using DnDGen.RollGen; +using DnDGen.TreasureGen.Selectors.Selections; using System; using System.Collections.Generic; using System.Linq; -using DnDGen.TreasureGen.Selectors.Selections; namespace DnDGen.TreasureGen.Selectors.Percentiles { @@ -19,7 +19,7 @@ public TypeAndAmountPercentileSelector(ITreasurePercentileSelector percentileSel public TypeAndAmountSelection SelectFrom(string tableName) { - var percentileResult = percentileSelector.SelectFrom(tableName); + var percentileResult = percentileSelector.SelectFrom(Config.Name, tableName); var result = ParseResult(percentileResult); return result; @@ -45,7 +45,7 @@ private TypeAndAmountSelection ParseResult(string percentileResult) public IEnumerable SelectAllFrom(string tablename) { - var percentileResults = percentileSelector.SelectAllFrom(tablename); + var percentileResults = percentileSelector.SelectAllFrom(Config.Name, tablename); var results = percentileResults.Select(r => ParseResult(r)); return results;