List <float> GetValuePairOf(string gemName, string attr, int level, int quality = 0) { AttributeSet attrs = ItemDB.AttributesOf(gemName, level, quality); return(attrs.ContainsKey(attr) ? ItemDB.AttributesOf(gemName, level, quality)[attr] : new List <float> { float.NaN, float.NaN }); }
public void TestMergeDB() { ItemDB.Merge("TestItems.xml"); ItemDB.Index(); Assert.AreEqual(5, ItemDB.AttributesOf("TestGem", 5, 0)["Attribute1: #"][0]); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 10, 0)["Attribute1: #"][0]); ItemDB.Merge("TestMerge.xml"); ItemDB.Index(); // Attribute1: <Value Level="5">21</Value> <ValuePerLevel>5</ValuePerLevel> Assert.AreEqual(21, ItemDB.AttributesOf("TestGem", 5, 0)["Attribute1: #"][0], "Level 5"); Assert.AreEqual(45, ItemDB.AttributesOf("TestGem", 10, 0)["Attribute1: #"][0], "Level 10"); // Attribute2: <Value Level="5">5</Value> <Value Level="6">7</Value> <ValueForLevel From="1" To="10">10</ValueForLevel> Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 1, 0)["Attribute2: #"][0], "Level 1"); Assert.AreEqual(6, ItemDB.AttributesOf("TestGem", 5, 0)["Attribute2: #"][0], "Level 5"); Assert.AreEqual(7, ItemDB.AttributesOf("TestGem", 6, 0)["Attribute2: #"][0], "Level 6"); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 10, 0)["Attribute2: #"][0], "Level 10"); // Attribute3: <Value Level="5">5</Value> <ValueForLevel From="1" To="7">10</ValueForLevel> <ValueForLevel From="8" To="15">15</ValueForLevel> Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 1, 0)["Attribute3: #"][0], "Level 1"); Assert.AreEqual(5, ItemDB.AttributesOf("TestGem", 5, 0)["Attribute3: #"][0], "Level 5"); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 7, 0)["Attribute3: #"][0], "Level 7"); Assert.AreEqual(15, ItemDB.AttributesOf("TestGem", 8, 0)["Attribute3: #"][0], "Level 8"); Assert.AreEqual(15, ItemDB.AttributesOf("TestGem", 15, 0)["Attribute3: #"][0], "Level 15"); // Attribute4: <Value Level="5">5</Value> <ValueForLevel From="1" To="7">10</ValueForLevel> <ValueForLevel From="8" To="9">15</ValueForLevel> <Value Level="10">10</Value> Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 1, 0)["Attribute4: #"][0], "Level 1"); Assert.AreEqual(5, ItemDB.AttributesOf("TestGem", 5, 0)["Attribute4: #"][0], "Level 5"); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 7, 0)["Attribute4: #"][0], "Level 7"); Assert.AreEqual(15, ItemDB.AttributesOf("TestGem", 8, 0)["Attribute4: #"][0], "Level 8"); Assert.AreEqual(15, ItemDB.AttributesOf("TestGem", 9, 0)["Attribute4: #"][0], "Level 9"); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 10, 0)["Attribute4: #"][0], "Level 10"); // Attribute5: <Value Level="1">1</Value> <Value Level="2">2</Value> <Value Level="3">3</Value> Assert.AreEqual(1, ItemDB.AttributesOf("TestGem", 1, 0)["Attribute5: #"][0], "Level 1"); Assert.AreEqual(2, ItemDB.AttributesOf("TestGem", 2, 0)["Attribute5: #"][0], "Level 2"); Assert.AreEqual(3, ItemDB.AttributesOf("TestGem", 3, 0)["Attribute5: #"][0], "Level 3"); // Attribute6: <Value Level="1">1</Value> <Value Level="2">2</Value> ... <Value Level="30">30</Value> Assert.AreEqual(1, ItemDB.AttributesOf("TestGem", 1, 0)["Attribute6: #"][0], "Level 1"); Assert.AreEqual(2, ItemDB.AttributesOf("TestGem", 2, 0)["Attribute6: #"][0], "Level 2"); Assert.AreEqual(30, ItemDB.AttributesOf("TestGem", 30, 0)["Attribute6: #"][0], "Level 30"); // Attribute7: <Value Level="1">1</Value> <Value Level="2">2</Value> ... <Value Level="30">30</Value> Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 1, 0)["Attribute7: #"][0], "Level 1"); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 2, 0)["Attribute7: #"][0], "Level 2"); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 30, 0)["Attribute7: #"][0], "Level 30"); // Attribute8: <Value>10</Value> Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 1, 0)["Attribute8: #"][0], "Level 1"); Assert.AreEqual(10, ItemDB.AttributesOf("TestGem", 30, 0)["Attribute8: #"][0], "Level 30"); }