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;