public void AllDataFromFeatSelectionIsCopiedToFeat() { var selection = new AdditionalFeatSelection(); selection.Feat = "additional feat"; selection.FocusType = "focus type"; selection.Frequency.Quantity = 9266; selection.Frequency.TimePeriod = "frequency time period"; selection.Power = 12345; additionalFeatSelections.Add(selection); mockFeatFocusGenerator.SetupSequence(g => g.GenerateFrom("additional feat", "focus type", skills, additionalFeatSelections[0].RequiredFeats, It.IsAny<IEnumerable<Feat>>(), characterClass)) .Returns("focus").Returns(FeatConstants.Foci.All); var feats = additionalFeatsGenerator.GenerateWith(characterClass, race, stats, skills, baseAttack, preselectedFeats); var feat = feats.Single(); Assert.That(feat.Foci.Single(), Is.EqualTo("focus")); Assert.That(feat.Frequency.Quantity, Is.EqualTo(9266)); Assert.That(feat.Frequency.TimePeriod, Is.EqualTo("frequency time period")); Assert.That(feat.Name, Is.EqualTo("additional feat")); Assert.That(feat.Power, Is.EqualTo(12345)); }
private AdditionalFeatSelection SelectAdditional(string feat) { var additionalFeatSelection = new AdditionalFeatSelection(); additionalFeatSelection.Feat = feat; var featData = collectionsSelector.SelectFrom(TableNameConstants.Set.Collection.AdditionalFeatData, feat).ToArray(); additionalFeatSelection.RequiredBaseAttack = Convert.ToInt32(featData[DataIndexConstants.AdditionalFeatData.BaseAttackRequirementIndex]); additionalFeatSelection.FocusType = featData[DataIndexConstants.AdditionalFeatData.FocusTypeIndex]; additionalFeatSelection.Frequency.Quantity = Convert.ToInt32(featData[DataIndexConstants.AdditionalFeatData.FrequencyQuantityIndex]); additionalFeatSelection.Frequency.TimePeriod = featData[DataIndexConstants.AdditionalFeatData.FrequencyTimePeriodIndex]; additionalFeatSelection.Power = Convert.ToInt32(featData[DataIndexConstants.AdditionalFeatData.PowerIndex]); additionalFeatSelection.RequiredFeats = GetRequiredFeats(additionalFeatSelection.Feat); var featsWithClassRequirements = collectionsSelector.SelectFrom(TableNameConstants.Set.Collection.FeatGroups, GroupConstants.HasClassRequirements); if (featsWithClassRequirements.Contains(feat)) { var tableName = string.Format(TableNameConstants.Formattable.Adjustments.FEATClassRequirements, feat); additionalFeatSelection.RequiredCharacterClasses = adjustmentsSelector.SelectFrom(tableName); } var featsWithSkillRequirements = collectionsSelector.SelectFrom(TableNameConstants.Set.Collection.FeatGroups, GroupConstants.HasSkillRequirements); if (featsWithSkillRequirements.Contains(feat)) { var tableName = string.Format(TableNameConstants.Formattable.Adjustments.FEATSkillRankRequirements, feat); additionalFeatSelection.RequiredSkillRanks = adjustmentsSelector.SelectFrom(tableName); } var featWithStatRequirements = collectionsSelector.SelectFrom(TableNameConstants.Set.Collection.FeatGroups, GroupConstants.HasStatRequirements); if (featWithStatRequirements.Contains(feat)) { var tableName = string.Format(TableNameConstants.Formattable.Adjustments.FEATStatRequirements, feat); additionalFeatSelection.RequiredStats = adjustmentsSelector.SelectFrom(tableName); } return additionalFeatSelection; }
private bool FeatsMatch(Feat feat, AdditionalFeatSelection additionalFeatSelection) { return feat.Frequency.TimePeriod == string.Empty && feat.Name == additionalFeatSelection.Feat && feat.Power == additionalFeatSelection.Power && feat.Foci.Any() && string.IsNullOrEmpty(additionalFeatSelection.FocusType) == false; }
public void Setup() { selection = new AdditionalFeatSelection(); feats = new List<Feat>(); stats = new Dictionary<string, Stat>(); stats["stat"] = new Stat("stat"); skills = new Dictionary<string, Skill>(); characterClass = new CharacterClass(); }
private void AddFeatSelections(int quantity) { for (var i = 0; i < quantity; i++) { var selection = new AdditionalFeatSelection(); selection.Feat = $"feat{i + 1}"; additionalFeatSelections.Add(selection); } }