예제 #1
0
        public void GetRawAttributesFromAttributesSelector()
        {
            var attributes = new[] { "42", "9266" };

            mockInnerSelector.Setup(s => s.SelectFrom("table name", "name")).Returns(attributes);

            var result = rangeDataSelector.SelectFrom("table name", "name");

            Assert.That(result.Minimum, Is.EqualTo(42));
            Assert.That(result.Maximum, Is.EqualTo(9266));
        }
예제 #2
0
        public int GenerateFor(string itemType, string name)
        {
            if (itemType == ItemTypeConstants.Wand || itemType == ItemTypeConstants.Staff)
            {
                return(PercentileCharges());
            }

            if (name == WondrousItemConstants.DeckOfIllusions)
            {
                var isFullyCharged = percentileSelector.SelectFrom <bool>(TableNameConstants.Percentiles.Set.IsDeckOfIllusionsFullyCharged);

                if (isFullyCharged)
                {
                    name = WondrousItemConstants.DeckOfIllusions_Full;
                }
            }

            var result = rangeDataSelector.SelectFrom(TableNameConstants.Collections.Set.ChargeLimits, name);
            var roll   = RollHelper.GetRollWithMostEvenDistribution(result.Minimum, result.Maximum);

            return(dice.Roll(roll).AsSum());
        }