Esempio n. 1
0
        public IEnumerable<CharacterClassFeatSelection> SelectClass(string characterClassName)
        {
            var classFeats = collectionsSelector.SelectFrom(TableNameConstants.Set.Collection.FeatGroups, characterClassName);
            var classFeatSelections = new List<CharacterClassFeatSelection>();

            foreach (var classFeat in classFeats)
            {
                var tableName = string.Format(TableNameConstants.Formattable.Collection.CLASSFeatData, characterClassName);
                var featData = collectionsSelector.SelectFrom(tableName, classFeat).ToArray();

                var classFeatSelection = new CharacterClassFeatSelection();
                classFeatSelection.Feat = featData[DataIndexConstants.CharacterClassFeatData.FeatNameIndex];
                classFeatSelection.FocusType = featData[DataIndexConstants.CharacterClassFeatData.FocusTypeIndex];
                classFeatSelection.Frequency.Quantity = Convert.ToInt32(featData[DataIndexConstants.CharacterClassFeatData.FrequencyQuantityIndex]);
                classFeatSelection.Frequency.TimePeriod = featData[DataIndexConstants.CharacterClassFeatData.FrequencyTimePeriodIndex];
                classFeatSelection.MinimumLevel = Convert.ToInt32(featData[DataIndexConstants.CharacterClassFeatData.MinimumLevelRequirementIndex]);
                classFeatSelection.Power = Convert.ToInt32(featData[DataIndexConstants.CharacterClassFeatData.PowerIndex]);
                classFeatSelection.MaximumLevel = Convert.ToInt32(featData[DataIndexConstants.CharacterClassFeatData.MaximumLevelRequirementIndex]);
                classFeatSelection.FrequencyQuantityStat = featData[DataIndexConstants.CharacterClassFeatData.FrequencyQuantityStatIndex];
                classFeatSelection.RequiredFeats = GetRequiredFeats(classFeat);
                classFeatSelection.SizeRequirement = featData[DataIndexConstants.CharacterClassFeatData.SizeRequirementIndex];
                classFeatSelection.AllowFocusOfAll = Convert.ToBoolean(featData[DataIndexConstants.CharacterClassFeatData.AllowFocusOfAllIndex]);

                classFeatSelections.Add(classFeatSelection);
            }

            return classFeatSelections;
        }
Esempio n. 2
0
        private Feat BuildFeatFrom(CharacterClassFeatSelection selection, string focus, IEnumerable<Feat> earnedFeat, Dictionary<string, Stat> stats, CharacterClass characterClass, Dictionary<string, Skill> skills)
        {
            var feat = new Feat();
            feat.Name = selection.Feat;

            if (string.IsNullOrEmpty(focus) == false)
                feat.Foci = feat.Foci.Union(new[] { focus });

            feat.Frequency = selection.Frequency;
            feat.Power = selection.Power;

            if (string.IsNullOrEmpty(selection.FrequencyQuantityStat) == false)
                feat.Frequency.Quantity += stats[selection.FrequencyQuantityStat].Bonus;

            if (feat.Frequency.Quantity < 0)
                feat.Frequency.Quantity = 0;

            return feat;
        }
 public void Setup()
 {
     selection = new CharacterClassFeatSelection();
     characterClass = new CharacterClass();
     race = new Race();
     feats = new List<Feat>();
 }
        private void AddClassFeat(string className, string feat, string focusType = "", int minimumLevel = 1, int maximumLevel = 0, int frequencyQuantity = 0, string frequencyPeriod = "", int power = 0, params string[] requiredFeatNames)
        {
            var selection = new CharacterClassFeatSelection();
            selection.Feat = feat;
            selection.FocusType = focusType;
            selection.MinimumLevel = minimumLevel;
            selection.RequiredFeats = requiredFeatNames.Select(f => new RequiredFeatSelection { Feat = f });
            selection.Frequency.Quantity = frequencyQuantity;
            selection.Frequency.TimePeriod = frequencyPeriod;
            selection.MaximumLevel = maximumLevel;
            selection.Power = power;
            selection.AllowFocusOfAll = true;

            if (classFeatSelections.ContainsKey(className) == false)
            {
                classFeatSelections[className] = new List<CharacterClassFeatSelection>();
                mockFeatsSelector.Setup(s => s.SelectClass(className)).Returns(classFeatSelections[className]);
            }

            classFeatSelections[className].Add(selection);
        }