Example #1
0
        private List <SpecialAbility> GetAvailableAbilities(Item targetItem, IEnumerable <string> tableNames, int bonus)
        {
            var availableAbilities = new List <SpecialAbility>();

            foreach (var tableName in tableNames)
            {
                var abilityNames = percentileSelector.SelectAllFrom(tableName);

                foreach (var abilityName in abilityNames)
                {
                    if (abilityName == "BonusSpecialAbility")
                    {
                        continue;
                    }

                    var ability = GetSpecialAbility(abilityName);

                    if (ability.RequirementsMet(targetItem) && bonus + ability.BonusEquivalent <= 10)
                    {
                        availableAbilities.Add(ability);
                    }
                }
            }

            return(availableAbilities);
        }
        public IEnumerable <TypeAndAmountSelection> SelectAllFrom(string tablename)
        {
            var percentileResults = percentileSelector.SelectAllFrom(tablename);
            var results           = percentileResults.Select(r => ParseResult(r));

            return(results);
        }
        public void DecoratorSelectsAllFromInnerSelector()
        {
            var percentiles  = new[] { "first", "second" };
            var replacements = new[] { "third", "fourth" };

            mockInnerSelector.Setup(s => s.SelectAllFrom("table")).Returns(percentiles);
            mockReplacementSelector.Setup(s => s.SelectAll(percentiles, false)).Returns(replacements);

            var results = decorator.SelectAllFrom("table");

            Assert.That(results, Is.EquivalentTo(replacements));
        }
        private string GetSize(Weapon template)
        {
            if (!string.IsNullOrEmpty(template.Size))
            {
                return(template.Size);
            }

            if (!template.Traits.Any())
            {
                return(GetRandomSize());
            }

            var allSizes   = percentileSelector.SelectAllFrom(TableNameConstants.Percentiles.Set.MundaneGearSizes);
            var sizeTraits = template.Traits.Intersect(allSizes);

            if (sizeTraits.Any())
            {
                return(sizeTraits.Single());
            }

            return(GetRandomSize());
        }