private bool HasRangerBonusFeats(string FeatName) { if (!CharacterClasses.HasClass("ranger")) { return(false); } int rangerLevel = CharacterClasses.FindClassLevel("ranger"); if (rangerLevel < 2) { return(false); } string CombatStyle = _monSBSearch.GetSpecialAttack("combat style").Replace("combat style", string.Empty); CombatStyle = Utility.RemoveParentheses(CombatStyle); if (string.IsNullOrEmpty(CombatStyle)) { bool foundBonus = false; //Two-Weapon Combat List <string> BonusFeats = new List <string> { "Double Slice", "Improved Shield Bash", "Quick Draw", "Two-Weapon Fighting" }; foreach (FeatFoundation.FeatFoundation feat in Feats) { if (BonusFeats.Contains(feat.Name)) { foundBonus = true; break; } } //if (foundBonus) //{ // if (rangerLevel >= 6) BonusFeats.AddRange(new List<string> { "Improved Two-Weapon Fighting", "Two-Weapon Defense" }); // if (rangerLevel >= 6) BonusFeats.AddRange(new List<string> { "Greater Two-Weapon Fighting", "Two-Weapon Rend" }); //} //List<string> BonusFeats = new List<string> {"Catch Off-Guard", "Combat Reflexes", "Deflect Arrows", "Dodge", // "Improved Grapple", "Scorpion Style", "Throw Anything"}; CombatStyle = foundBonus ? "two-weapon combat" : "archery"; } List <string> temp = RemoveSuperScripts(new List <string> { CombatStyle }); List <string> CombatStyleFeats = GetRangerCombatStyleFeats(rangerLevel, temp[0]); return(CombatStyleFeats.Contains(FeatName)); }