public void SelectSkillBonuses(string skillName1, string skillFocus1, string condition1, int bonus1, string skillName2, string skillFocus2, string condition2, int bonus2) { SetUpSkillBonus(skillName1, skillFocus1, condition1, bonus1); SetUpSkillBonus(skillName2, skillFocus2, condition2, bonus2); var bonusSelections = skillSelector.SelectBonusesFor("creature"); Assert.That(bonusSelections.Count, Is.EqualTo(2)); var selection = bonusSelections.First(); Assert.That(selection.Bonus, Is.EqualTo(bonus1)); Assert.That(selection.Condition, Is.EqualTo(condition1)); var expected = SkillConstants.Build(skillName1, skillFocus1); Assert.That(selection.Target, Is.EqualTo(expected)); selection = bonusSelections.Last(); Assert.That(selection.Bonus, Is.EqualTo(bonus2)); Assert.That(selection.Condition, Is.EqualTo(condition2)); expected = SkillConstants.Build(skillName2, skillFocus2); Assert.That(selection.Target, Is.EqualTo(expected)); }
public void BuildSkillString(string skill, string focus, string expected) { var skillString = SkillConstants.Build(skill, focus); Assert.That(skillString, Is.Not.Null); Assert.That(skillString, Is.EqualTo(expected)); }
public void BuildSkillTypeAndAmountData(string skill, string focus) { var skillString = SkillConstants.Build(skill, focus); var typeAndAmount = TypeAndAmountHelper.Build(skillString, "9266"); Assert.That(typeAndAmount, Is.EqualTo(skillString + "@9266")); }
public void FeatFociForSkillsContainsAllFoci(string skill) { var skillGroups = collectionMapper.Map(TableNameConstants.Collection.SkillGroups); var skillFoci = skillGroups[skill]; var featFoci = skillFoci.Select(f => SkillConstants.Build(skill, f)); Assert.That(table[GroupConstants.Skills], Is.SupersetOf(featFoci)); }
public void ParseSkillTypeAndAmountData(string skill, string focus) { var skillString = SkillConstants.Build(skill, focus); var typeAndAmount = TypeAndAmountHelper.Parse(skillString + "@9266"); Assert.That(typeAndAmount[0], Is.EqualTo(skillString)); Assert.That(typeAndAmount[1], Is.EqualTo("9266")); Assert.That(typeAndAmount.Length, Is.EqualTo(2)); }
private void SetUpSkillBonus( string skill, string focus = "", string condition = "", int bonus = 1) { var bonusSelection = new BonusSelection(); bonusSelection.Bonus = bonus; bonusSelection.Target = SkillConstants.Build(skill, focus); bonusSelection.Condition = condition; bonusSelections.Add(bonusSelection); }
public void SelectSkillBonus(string skillName, string skillFocus, string condition, int bonus) { SetUpSkillBonus(skillName, skillFocus, condition, bonus); var bonusSelections = skillSelector.SelectBonusesFor("creature"); Assert.That(bonusSelections.Count, Is.EqualTo(1)); var selection = bonusSelections.Single(); Assert.That(selection.Bonus, Is.EqualTo(bonus)); Assert.That(selection.Condition, Is.EqualTo(condition)); var expected = SkillConstants.Build(skillName, skillFocus); Assert.That(selection.Target, Is.EqualTo(expected)); }
public void SelectASingleSkillTypeAndAmount(string skill, string focus) { var skillString = SkillConstants.Build(skill, focus); var entries = new[] { TypeAndAmountHelper.Build(skillString, "9266"), }; mockCollectionSelector.Setup(s => s.SelectFrom("table name", "name")).Returns(entries); SetUpRoll("9266", 42); var typeAndAmount = selector.SelectOne("table name", "name"); Assert.That(typeAndAmount.Type, Is.EqualTo(skillString)); Assert.That(typeAndAmount.Amount, Is.EqualTo(42)); }
private string SelectRandomAndIncludeSkills(IEnumerable <string> foci, IEnumerable <Skill> skills) { var skillFoci = collectionsSelector.SelectFrom(TableNameConstants.Collection.FeatFoci, GroupConstants.Skills); var applicableSkillFoci = skillFoci.Intersect(foci); if (applicableSkillFoci.Any()) { var potentialSkillFoci = skills.Select(s => SkillConstants.Build(s.Name, s.Focus)); foci = applicableSkillFoci.Intersect(potentialSkillFoci); } if (!foci.Any()) { return(FeatConstants.Foci.NoValidFociAvailable); } return(collectionsSelector.SelectRandomFrom(foci)); }
public bool RequirementMet(IEnumerable <Skill> otherSkills) { var thisSkill = SkillConstants.Build(Skill, Focus); var requiredSkills = otherSkills.Where(s => s.IsEqualTo(thisSkill)); if (!requiredSkills.Any()) { return(false); } if (!string.IsNullOrEmpty(Focus) && !requiredSkills.Any(s => s.Focus == Focus)) { return(false); } var anyHaveSufficientRanks = requiredSkills.Any(s => s.EffectiveRanks >= Ranks); return(anyHaveSufficientRanks); }
public void SkillsFoci() { var foci = new[] { SkillConstants.Appraise, SkillConstants.Balance, SkillConstants.Bluff, SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Alchemy), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Armorsmithing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Blacksmithing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Bookbinding), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Bowmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Brassmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Brewing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Candlemaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Cloth), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Coppersmithing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Dyemaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Gemcutting), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Glass), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Goldsmithing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Hatmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Hornworking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Jewelmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Leather), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Locksmithing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Mapmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Milling), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Painting), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Parchmentmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Pewtermaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Potterymaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Sculpting), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Shipmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Shoemaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Silversmithing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Skinning), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Soapmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Stonemasonry), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Tanning), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Trapmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Weaponsmithing), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Weaving), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Wheelmaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Winemaking), SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Woodworking), SkillConstants.Climb, SkillConstants.Concentration, SkillConstants.DecipherScript, SkillConstants.Diplomacy, SkillConstants.DisableDevice, SkillConstants.Disguise, SkillConstants.EscapeArtist, SkillConstants.Forgery, SkillConstants.GatherInformation, SkillConstants.HandleAnimal, SkillConstants.Heal, SkillConstants.Hide, SkillConstants.Intimidate, SkillConstants.Jump, SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Arcana), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.ArchitectureAndEngineering), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Dungeoneering), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Geography), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.History), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Local), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Nature), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.NobilityAndRoyalty), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Religion), SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.ThePlanes), SkillConstants.Listen, SkillConstants.MoveSilently, SkillConstants.OpenLock, SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Act), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Comedy), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Dance), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.KeyboardInstruments), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Oratory), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.PercussionInstruments), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Sing), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.StringInstruments), SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.WindInstruments), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Adviser), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Alchemist), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.AnimalGroomer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.AnimalTrainer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Apothecary), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Appraiser), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Architect), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Armorer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Barrister), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Blacksmith), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Bookbinder), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Bowyer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Brazier), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Brewer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Butler), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Carpenter), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cartographer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cartwright), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Chandler), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.CityGuide), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Clerk), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cobbler), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Coffinmaker), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Coiffeur), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cook), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Coppersmith), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Craftsman), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Dowser), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Dyer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Embalmer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Engineer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Entertainer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.ExoticAnimalTrainer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Farmer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Fletcher), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Footman), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Gemcutter), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Goldsmith), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Governess), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Haberdasher), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Healer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Horner), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Hunter), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Interpreter), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Jeweler), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Laborer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Launderer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Limner), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.LocalCourier), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Locksmith), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Maid), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Masseuse), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Matchmaker), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Midwife), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Miller), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Miner), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Navigator), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Nursemaid), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.OutOfTownCourier), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Painter), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Parchmentmaker), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Pewterer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Polisher), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Porter), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Potter), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Sage), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.SailorCrewmember), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.SailorMate), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Scribe), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Sculptor), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Shepherd), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Shipwright), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Silversmith), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Skinner), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Soapmaker), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Soothsayer), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Tanner), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Teacher), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Teamster), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Trader), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Trapper), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Valet), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Vintner), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Weaponsmith), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Weaver), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Wheelwright), SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.WildernessGuide), SkillConstants.Ride, SkillConstants.Search, SkillConstants.SenseMotive, SkillConstants.SleightOfHand, SkillConstants.Spellcraft, SkillConstants.Spot, SkillConstants.Survival, SkillConstants.Swim, SkillConstants.Tumble, SkillConstants.UseMagicDevice, SkillConstants.UseRope }; base.AssertDistinctCollection(GroupConstants.Skills, foci); }
public static IEnumerable <string> GetFeatsWithFoci() { var featsWithFoci = new List <string>(); var simpleWeapons = WeaponConstants.GetAllSimple(false, false); foreach (var weapon in simpleWeapons) { featsWithFoci.Add($"{FeatConstants.WeaponProficiency_Simple}/{weapon}"); } var martialWeapons = WeaponConstants.GetAllMartial(false, false); foreach (var weapon in martialWeapons) { featsWithFoci.Add($"{FeatConstants.WeaponProficiency_Martial}/{weapon}"); } //INFO: Adding in some exotic as martial, for weapon familiarity featsWithFoci.Add($"{FeatConstants.WeaponProficiency_Martial}/{WeaponConstants.DwarvenUrgrosh}"); featsWithFoci.Add($"{FeatConstants.WeaponProficiency_Martial}/{WeaponConstants.DwarvenWaraxe}"); featsWithFoci.Add($"{FeatConstants.WeaponProficiency_Martial}/{WeaponConstants.OrcDoubleAxe}"); featsWithFoci.Add($"{FeatConstants.WeaponProficiency_Martial}/{WeaponConstants.GnomeHookedHammer}"); var exoticWeapons = WeaponConstants.GetAllExotic(false, false); foreach (var weapon in exoticWeapons) { featsWithFoci.Add($"{FeatConstants.WeaponProficiency_Exotic}/{weapon}"); } featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Appraise}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Balance}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Bluff}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Climb}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Concentration}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Craft}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Alchemy)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Armorsmithing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Blacksmithing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Bookbinding)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Bowmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Brassmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Brewing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Candlemaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Cloth)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Coppersmithing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Dyemaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Gemcutting)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Glass)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Goldsmithing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Hatmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Hornworking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Jewelmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Leather)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Locksmithing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Mapmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Milling)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Painting)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Parchmentmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Pewtermaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Potterymaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Sculpting)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Shipmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Shoemaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Silversmithing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Skinning)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Soapmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Stonemasonry)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Tanning)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Trapmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Weaponsmithing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Weaving)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Wheelmaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Winemaking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Craft, SkillConstants.Foci.Craft.Woodworking)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.DecipherScript}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Diplomacy}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.DisableDevice}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Disguise}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.EscapeArtist}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Forgery}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.GatherInformation}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.HandleAnimal}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Heal}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Hide}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Intimidate}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Jump}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Knowledge}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Arcana)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.ArchitectureAndEngineering)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Dungeoneering)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Geography)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.History)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Local)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Nature)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.NobilityAndRoyalty)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.Religion)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Knowledge, SkillConstants.Foci.Knowledge.ThePlanes)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Listen}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.MoveSilently}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.OpenLock}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Perform}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Act)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Comedy)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Dance)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.KeyboardInstruments)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Oratory)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.PercussionInstruments)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.Sing)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.StringInstruments)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Perform, SkillConstants.Foci.Perform.WindInstruments)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Profession}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Adviser)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Alchemist)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.AnimalGroomer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.AnimalTrainer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Apothecary)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Appraiser)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Architect)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Armorer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Barrister)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Blacksmith)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Bookbinder)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Bowyer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Brazier)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Brewer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Butler)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Carpenter)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cartographer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cartwright)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Chandler)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.CityGuide)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Clerk)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cobbler)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Coffinmaker)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Coiffeur)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Cook)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Coppersmith)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Craftsman)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Dowser)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Dyer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Embalmer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Engineer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Entertainer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.ExoticAnimalTrainer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Farmer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Fletcher)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Footman)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Gemcutter)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Goldsmith)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Governess)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Haberdasher)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Healer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Horner)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Hunter)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Interpreter)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Jeweler)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Laborer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Launderer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Limner)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.LocalCourier)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Locksmith)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Maid)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Masseuse)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Matchmaker)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Midwife)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Miller)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Miner)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Navigator)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Nursemaid)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.OutOfTownCourier)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Painter)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Parchmentmaker)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Pewterer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Polisher)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Porter)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Potter)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Sage)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.SailorCrewmember)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.SailorMate)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Scribe)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Sculptor)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Shepherd)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Shipwright)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Silversmith)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Skinner)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Soapmaker)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Soothsayer)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Tanner)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Teacher)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Teamster)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Trader)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Trapper)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Valet)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Vintner)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Weaponsmith)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Weaver)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.Wheelwright)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Build(SkillConstants.Profession, SkillConstants.Foci.Profession.WildernessGuide)}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Ride}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Search}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.SenseMotive}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.SleightOfHand}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Spellcraft}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Spot}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Survival}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Swim}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.Tumble}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.UseMagicDevice}"); featsWithFoci.Add($"{FeatConstants.SkillFocus}/{SkillConstants.UseRope}"); featsWithFoci.Add($"{FeatConstants.SpecialQualities.AlternateForm}/{CreatureConstants.Boar}"); featsWithFoci.Add($"{FeatConstants.SpecialQualities.AlternateForm}/{CreatureConstants.Rat}"); featsWithFoci.Add($"{FeatConstants.SpecialQualities.AlternateForm}/{CreatureConstants.Raven}"); featsWithFoci.Add($"{FeatConstants.SpecialQualities.AlternateForm}/{CreatureConstants.Spider_Monstrous_Hunter_Small}"); featsWithFoci.Add($"{FeatConstants.SpecialQualities.AlternateForm}/{CreatureConstants.Spider_Monstrous_Hunter_Medium}"); featsWithFoci.Add($"{FeatConstants.SpecialQualities.AlternateForm}/{CreatureConstants.Spider_Monstrous_WebSpinner_Small}"); featsWithFoci.Add($"{FeatConstants.SpecialQualities.AlternateForm}/{CreatureConstants.Spider_Monstrous_WebSpinner_Medium}"); return(featsWithFoci); }