Exemple #1
0
        static BlueprintFeatureSelection CreateExtraArcana(BlueprintFeatureSelection magusArcanas)
        {
            var feat = Helpers.CreateFeatureSelection("ExtraArcanaSelection", "Extra Arcana",
                                                      "You have unlocked the secret of a new magus arcana. You gain one additional magus arcana. You must meet all the prerequisites for this magus arcana.\n" +
                                                      "Special: You can gain this feat multiple times. Its effects stack, granting a new arcana each time you gain this feat.",
                                                      "bace31a97ed141d9b11cc5dabacb5b88",
                                                      Helpers.GetIcon("cd9f19775bd9d3343a31a065e93f0c47"), // extra channel
                                                      FeatureGroup.Feat,
                                                      magusArcanas.PrerequisiteFeature());

            feat.SetFeatures(magusArcanas.AllFeatures);
            return(feat);
        }
        static BlueprintFeatureSelection CreateExtraArcana(BlueprintFeatureSelection magusArcanas)
        {
            var feat = Helpers.CreateFeatureSelection("ExtraArcanaSelection", "额外奥秘",
                                                      "你已经研究出了一个新的魔战士奥秘。你获得一个额外的魔战士奥秘,你必须满足这个奥秘的所有先决条件。\n" +
                                                      "特殊: 你可以多次选择这个专长,它的效果叠加。你每次选择这个专长都要选择一个新奥秘。",
                                                      "bace31a97ed141d9b11cc5dabacb5b88",
                                                      Helpers.GetIcon("cd9f19775bd9d3343a31a065e93f0c47"), // extra channel
                                                      FeatureGroup.Feat,
                                                      magusArcanas.PrerequisiteFeature());

            feat.SetFeatures(magusArcanas.AllFeatures);
            return(feat);
        }
        private static void CreateAdvancedWeaponTraining()
        {
            var fighter = Helpers.fighterClass;

            BlueprintFeature twoHandedWeaponFeature = library.Get <BlueprintFeature>("88da2a5dfc505054f933bb81014e864f");

            twoHandedWeaponFeature.AddComponent(twoHandedWeaponFeature.PrerequisiteFeature());


            BlueprintFeatureSelection advancedWeaponTraining = Helpers.CreateFeatureSelection("AdvancedWeaponTraining",
                                                                                              "Advanced Weapon Training",
                                                                                              "Beginning at 9th level, instead of selecting an additional fighter weapon group, a fighter can choose an advanced weapon training option for one fighter weapon group that he previously selected with the weapon training class feature.",
                                                                                              "e10b3aca8e8c4075b96ac6b5f27dae27",
                                                                                              WeaponTraining.Icon,
                                                                                              FeatureGroup.CombatFeat,
                                                                                              WeaponTraining.PrerequisiteFeature(true),
                                                                                              twoHandedWeaponFeature.PrerequisiteFeature(true),
                                                                                              fighter.PrerequisiteClassLevel(5)
                                                                                              );

            var features = getAdvancedWeaponTraining(fighter);

            var goBackFeature = Helpers.CreateFeature("0GoBack", "(Go Back)", "Helps to navigate in deep selection trees. Has no other use.", Helpers.getGuid("0GoBack"), null, FeatureGroup.None, Helpers.Create <UndoSelectionLogic>());
            var prerequisite  = Helpers.Create <PrerequisiteMeetsPrerequisiteForAny>();

            prerequisite.Features = features.ToArray();
            goBackFeature.AddComponent(prerequisite);

            advancedWeaponTraining.AddComponent(prerequisite);
            features.Add(goBackFeature);
            advancedWeaponTraining.SetFeatures(features);

            library.AddCombatFeats(advancedWeaponTraining);

            BlueprintFeatureSelection advancedWeaponTrainingForSelection = Helpers.CreateFeatureSelection("AdvancedWeaponTrainingLVL9",
                                                                                                          "Advanced Weapon Training",
                                                                                                          "Beginning at 9th level, instead of selecting an additional fighter weapon group, a fighter can choose an advanced weapon training option for one fighter weapon group that he previously selected with the weapon training class feature.",
                                                                                                          "914b143cd76b40dc91feb87d7c404b23",
                                                                                                          WeaponTraining.Icon,
                                                                                                          FeatureGroup.CombatFeat,
                                                                                                          Helpers.PrerequisiteFeature(WeaponTraining),
                                                                                                          fighter.PrerequisiteClassLevel(9)
                                                                                                          );

            BlueprintFeatureSelection advancedWeaponTrainingForSelectionLVL13 = Helpers.CreateFeatureSelection("AdvancedWeaponTrainingLVL13",
                                                                                                               "Advanced Weapon Training",
                                                                                                               "Beginning at 9th level, instead of selecting an additional fighter weapon group, a fighter can choose an advanced weapon training option for one fighter weapon group that he previously selected with the weapon training class feature.",
                                                                                                               Helpers.getGuid("AdvancedWeaponTrainingLVL13"),
                                                                                                               WeaponTraining.Icon,
                                                                                                               FeatureGroup.CombatFeat,
                                                                                                               WeaponTraining.PrerequisiteFeature(),
                                                                                                               fighter.PrerequisiteClassLevel(13)
                                                                                                               );

            BlueprintFeatureSelection advancedWeaponTrainingForSelectionLVL17 = Helpers.CreateFeatureSelection("AdvancedWeaponTrainingLVL17",
                                                                                                               "Advanced Weapon Training",
                                                                                                               "Beginning at 9th level, instead of selecting an additional fighter weapon group, a fighter can choose an advanced weapon training option for one fighter weapon group that he previously selected with the weapon training class feature.",
                                                                                                               Helpers.getGuid("AdvancedWeaponTrainingLVL17"),
                                                                                                               WeaponTraining.Icon,
                                                                                                               FeatureGroup.CombatFeat,
                                                                                                               Helpers.PrerequisiteFeature(WeaponTraining),
                                                                                                               fighter.PrerequisiteClassLevel(17)
                                                                                                               );

            advancedWeaponTrainingForSelection.SetFeatures(features);
            advancedWeaponTrainingForSelection.AddComponent(prerequisite);
            advancedWeaponTrainingForSelectionLVL13.SetFeatures(features);
            advancedWeaponTrainingForSelectionLVL13.AddComponent(prerequisite);
            advancedWeaponTrainingForSelectionLVL17.SetFeatures(features);
            advancedWeaponTrainingForSelectionLVL17.AddComponent(prerequisite);


            WeaponTraining.SetFeatures(WeaponTraining.AllFeatures.AddToArray(advancedWeaponTrainingForSelection, advancedWeaponTrainingForSelectionLVL13, advancedWeaponTrainingForSelectionLVL17));
        }
Exemple #4
0
        internal static void Load()
        {
            if (heritageSelection != null)
            {
                return;
            }

            var spellSpecialization = library.Get <BlueprintFeatureSelection>("fe67bc3b04f1cd542b4df6e28b6e0ff5");

            //var noFeature = Helpers.Create<PrerequisiteNoFeature>();
            heritageSelection = Helpers.CreateFeatureSelection("EldritchHeritageSelection",
                                                               "Eldritch Heritage",
                                                               "You are descended from a long line of sorcerers, and some portion of their power flows in your veins.\n" +
                                                               "Select one sorcerer bloodline. You must have Skill focus in the class skill that bloodline grants to a sorcerer at 1st level (for example, Heal for the celestial bloodline). This bloodline cannot be a bloodline you already have. You gain the first-level bloodline power for the selected bloodline. For purposes of using that power, treat your sorcerer level as equal to your character level – 2, even if you have levels in sorcerer. You do not gain any of the other bloodline abilities.",
                                                               "733b54b0669b4aeda47953ec0e2b33dd",
                                                               Image2Sprite.Create("Mods/EldritchArcana/sprites/eldritch_heritage.png"),
                                                               FeatureGroup.Feat);

            var components = new List <BlueprintComponent> {
                heritageSelection.PrerequisiteNoFeature(),
                Helpers.PrerequisiteCharacterLevel(3),
                Helpers.PrerequisiteStatValue(StatType.Charisma, 13),
            };

            components.Add(Helpers.PrerequisiteFeaturesFromList(Helpers.skillFocusFeat.AllFeatures));
            heritageSelection.SetComponents(components);

            improvedHeritageSelection = Helpers.CreateFeatureSelection("ImprovedEldritchHeritageSelection",
                                                                       "Improved Eldritch Heritage",
                                                                       "The power of your discovered bloodline continues to grow.\n" +
                                                                       "You gain either the 3rd-level or the 9th-level power (your choice) of the bloodline you selected with the Eldritch Heritage feat. For purposes of using that power, treat your sorcerer level as equal to your character level – 2, even if you have levels in sorcerer. You do not gain any of the other bloodline abilities.",
                                                                       "c8bd273034684e6689b105a7d8bc9c3b",
                                                                       Image2Sprite.Create("Mods/EldritchArcana/sprites/eldritch_heritage_improved.png"),//spellSpecialization.Icon,
                                                                       FeatureGroup.Feat,
                                                                       Helpers.PrerequisiteCharacterLevel(11),
                                                                       Helpers.PrerequisiteStatValue(StatType.Charisma, 15),
                                                                       heritageSelection.PrerequisiteFeature());
            improvedHeritageSelection.Mode  = SelectionMode.OnlyNew;
            improvedHeritageSelection.Ranks = 2;

            var noFeature = Helpers.Create <PrerequisiteNoFeature>();
            var greaterHeritageSelection = Helpers.CreateFeatureSelection("GreaterEldritchHeritageSelection",
                                                                          "Greater Eldritch Heritage",
                                                                          "Your discovered bloodline power reaches its zenith.\n" +
                                                                          "You gain an additional power from the bloodline you selected with the Eldritch Heritage feat. You gain a 15th-level (or lower) sorcerer bloodline power that you do not already have. For purposes of using that power, treat your character level as your sorcerer level for all your sorcerer bloodline powers granted by this feat, Eldritch Heritage, and Improved Eldritch Heritage.",
                                                                          "24aad7af058a49f88d1203b856409023",
                                                                          Image2Sprite.Create("Mods/EldritchArcana/sprites/eldritch_heritage_greater.png"),
                                                                          FeatureGroup.Feat,
                                                                          Helpers.PrerequisiteCharacterLevel(17),
                                                                          Helpers.PrerequisiteStatValue(StatType.Charisma, 17),
                                                                          improvedHeritageSelection.PrerequisiteFeature(),
                                                                          noFeature);

            noFeature.Feature = greaterHeritageSelection;


            EldritchHeritageBloodlineLogic.greaterHeritageSelection = greaterHeritageSelection;

            var undoChoice    = UndoSelection.Feature.Value;
            var heritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var improvedHeritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var greaterHeritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var featDescription = new StringBuilder(heritageSelection.Description)
                                  .Append($"\n{bloodlineSelection.Name} — {Helpers.skillFocusFeat.Name} prerequisites:");

            bool seenDraconic  = false;
            bool seenElemental = false;

            foreach (var bloodline in bloodlineSelection.AllFeatures.Cast <BlueprintProgression>())
            {
                // Create Eldritch Heritage (level 1 power, Prereq: level 3+, Cha 13+, skill focus bloodline skill)
                String classSkillName;
                var    heritageFeat = CreateHeritage(bloodline, out classSkillName);
                if (heritageFeat == null)
                {
                    continue;
                }
                heritageFeats.Add(heritageFeat);

                var bloodlineName = bloodline.Name;
                if (bloodline.name.StartsWith("BloodlineDraconic"))
                {
                    if (!seenDraconic)
                    {
                        var i = bloodlineName.IndexOf(" — ");
                        if (i >= 0)
                        {
                            bloodlineName = bloodlineName.Substring(0, i);
                        }
                        featDescription.Append($"\n  {bloodlineName} — {classSkillName}");
                        seenDraconic = true;
                    }
                }
                else if (bloodline.name.StartsWith("BloodlineElemental"))
                {
                    if (!seenElemental)
                    {
                        var i = bloodlineName.IndexOf(" — ");
                        if (i >= 0)
                        {
                            bloodlineName = bloodlineName.Substring(0, i);
                        }
                        featDescription.Append($"\n  {bloodlineName} — {classSkillName}");
                        seenElemental = true;
                    }
                }
                else
                {
                    featDescription.Append($"\n  {bloodlineName} — {classSkillName}");
                }

                // Create Improved Eldrith Heritage (choice of level 3/9 powers and use level -2, can select twice, Prereq: level 11+, Cha 15+)
                var improvedFeat3 = CreateImprovedHeritage(bloodline, heritageFeat, 3);
                var improvedFeat9 = CreateImprovedHeritage(bloodline, heritageFeat, 9);
                improvedHeritageFeats.Add(improvedFeat3);
                improvedHeritageFeats.Add(improvedFeat9);

                // Create Greater Eldrith Heritage (choice of level 15 or lower powers and use full level, Prereq: level 17+, Cha 17+)
                var improvedfeats = new BlueprintFeature[] { improvedFeat3, improvedFeat9 };
                var greaterFeat3  = CreateGreaterHeritage(bloodline, improvedfeats, 3, improvedFeat3);
                var greaterFeat9  = CreateGreaterHeritage(bloodline, improvedfeats, 9, improvedFeat9);
                var greaterFeat15 = CreateGreaterHeritage(bloodline, improvedfeats);
                greaterHeritageFeats.Add(greaterFeat3);
                greaterHeritageFeats.Add(greaterFeat9);
                greaterHeritageFeats.Add(greaterFeat15);
            }

            heritageSelection.SetDescription(featDescription.ToString());
            heritageSelection.SetFeatures(heritageFeats);
            improvedHeritageSelection.SetFeatures(improvedHeritageFeats);
            greaterHeritageSelection.SetFeatures(greaterHeritageFeats);

            library.AddFeats(heritageSelection, improvedHeritageSelection, greaterHeritageSelection);
            //featselection
        }
Exemple #5
0
        internal static void Load()
        {
            if (heritageSelection != null)
            {
                return;
            }

            var spellSpecialization = library.Get <BlueprintFeatureSelection>("fe67bc3b04f1cd542b4df6e28b6e0ff5");

            //var noFeature = Helpers.Create<PrerequisiteNoFeature>();
            heritageSelection = Helpers.CreateFeatureSelection("EldritchHeritageSelection",
                                                               Main.lc.GetTranslate("EldritchHeritage.ftEldritchHeritageName"),
                                                               Main.lc.GetTranslate("EldritchHeritage.ftEldritchHeritageDesc"),
                                                               "733b54b0669b4aeda47953ec0e2b33dd",
                                                               spellSpecialization.Icon,
                                                               FeatureGroup.Feat);

            var components = new List <BlueprintComponent> {
                heritageSelection.PrerequisiteNoFeature(),
                Helpers.PrerequisiteCharacterLevel(3),
                Helpers.PrerequisiteStatValue(StatType.Charisma, 13),
            };

            components.Add(Helpers.PrerequisiteFeaturesFromList(Helpers.skillFocusFeat.AllFeatures));
            heritageSelection.SetComponents(components);

            improvedHeritageSelection = Helpers.CreateFeatureSelection("ImprovedEldritchHeritageSelection",
                                                                       Main.lc.GetTranslate("EldritchHeritage.ftImprovedEHName"),
                                                                       Main.lc.GetTranslate("EldritchHeritage.ftImprovedEHDesc"),
                                                                       "c8bd273034684e6689b105a7d8bc9c3b",
                                                                       spellSpecialization.Icon,
                                                                       FeatureGroup.Feat,
                                                                       Helpers.PrerequisiteCharacterLevel(11),
                                                                       Helpers.PrerequisiteStatValue(StatType.Charisma, 15),
                                                                       heritageSelection.PrerequisiteFeature());
            improvedHeritageSelection.Mode  = SelectionMode.OnlyNew;
            improvedHeritageSelection.Ranks = 2;

            var noFeature = Helpers.Create <PrerequisiteNoFeature>();
            var greaterHeritageSelection = Helpers.CreateFeatureSelection("GreaterEldritchHeritageSelection",
                                                                          Main.lc.GetTranslate("EldritchHeritage.ftGreaterEHName"),
                                                                          Main.lc.GetTranslate("EldritchHeritage.ftGreaterEHDesc"),
                                                                          "24aad7af058a49f88d1203b856409023",
                                                                          spellSpecialization.Icon,
                                                                          FeatureGroup.Feat,
                                                                          Helpers.PrerequisiteCharacterLevel(17),
                                                                          Helpers.PrerequisiteStatValue(StatType.Charisma, 17),
                                                                          improvedHeritageSelection.PrerequisiteFeature(),
                                                                          noFeature);

            noFeature.Feature = greaterHeritageSelection;
            EldritchHeritageBloodlineLogic.greaterHeritageSelection = greaterHeritageSelection;

            var undoChoice    = UndoSelection.Feature.Value;
            var heritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var improvedHeritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var greaterHeritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var featDescription = new StringBuilder(heritageSelection.Description)
                                  .Append(string.Format(Main.lc.GetTranslate("EldritchHeritage.stSkillFocusReqDesc"), bloodlineSelection.Name, Helpers.skillFocusFeat.Name));

            bool seenDraconic  = false;
            bool seenElemental = false;

            foreach (var bloodline in bloodlineSelection.AllFeatures.Cast <BlueprintProgression>())
            {
                // Create Eldritch Heritage (level 1 power, Prereq: level 3+, Cha 13+, skill focus bloodline skill)
                String classSkillName;
                var    heritageFeat = CreateHeritage(bloodline, out classSkillName);
                if (heritageFeat == null)
                {
                    continue;
                }
                heritageFeats.Add(heritageFeat);

                var bloodlineName = bloodline.Name;
                if (bloodline.name.StartsWith("BloodlineDraconic"))
                {
                    if (!seenDraconic)
                    {
                        var i = bloodlineName.IndexOf(" — ");
                        if (i >= 0)
                        {
                            bloodlineName = bloodlineName.Substring(0, i);
                        }
                        featDescription.Append(string.Format(Main.lc.GetTranslate("EldritchHeritage.stBLNameClsSkillName"), bloodlineName, classSkillName));
                        seenDraconic = true;
                    }
                }
                else if (bloodline.name.StartsWith("BloodlineElemental"))
                {
                    if (!seenElemental)
                    {
                        var i = bloodlineName.IndexOf(" — ");
                        if (i >= 0)
                        {
                            bloodlineName = bloodlineName.Substring(0, i);
                        }
                        featDescription.Append(string.Format(Main.lc.GetTranslate("EldritchHeritage.stBLNameClsSkillName"), bloodlineName, classSkillName));
                        seenElemental = true;
                    }
                }
                else
                {
                    featDescription.Append(string.Format(Main.lc.GetTranslate("EldritchHeritage.stBLNameClsSkillName"), bloodlineName, classSkillName));
                }

                // Create Improved Eldrith Heritage (choice of level 3/9 powers and use level -2, can select twice, Prereq: level 11+, Cha 15+)
                var improvedFeat3 = CreateImprovedHeritage(bloodline, heritageFeat, 3);
                var improvedFeat9 = CreateImprovedHeritage(bloodline, heritageFeat, 9);
                improvedHeritageFeats.Add(improvedFeat3);
                improvedHeritageFeats.Add(improvedFeat9);

                // Create Greater Eldrith Heritage (choice of level 15 or lower powers and use full level, Prereq: level 17+, Cha 17+)
                var improvedfeats = new BlueprintFeature[] { improvedFeat3, improvedFeat9 };
                var greaterFeat3  = CreateGreaterHeritage(bloodline, improvedfeats, 3, improvedFeat3);
                var greaterFeat9  = CreateGreaterHeritage(bloodline, improvedfeats, 9, improvedFeat9);
                var greaterFeat15 = CreateGreaterHeritage(bloodline, improvedfeats);
                greaterHeritageFeats.Add(greaterFeat3);
                greaterHeritageFeats.Add(greaterFeat9);
                greaterHeritageFeats.Add(greaterFeat15);
            }

            heritageSelection.SetDescription(featDescription.ToString());
            heritageSelection.SetFeatures(heritageFeats);
            improvedHeritageSelection.SetFeatures(improvedHeritageFeats);
            greaterHeritageSelection.SetFeatures(greaterHeritageFeats);

            library.AddFeats(heritageSelection, improvedHeritageSelection, greaterHeritageSelection);
        }
        internal static void Load()
        {
            if (heritageSelection != null)
            {
                return;
            }

            var spellSpecialization = library.Get <BlueprintFeatureSelection>("fe67bc3b04f1cd542b4df6e28b6e0ff5");

            //var noFeature = Helpers.Create<PrerequisiteNoFeature>();
            heritageSelection = Helpers.CreateFeatureSelection("EldritchHeritageSelection",
                                                               RES.EldritchHeritageFeatureName_info,
                                                               RES.EldritchHeritageFeatureDescription_info,
                                                               "733b54b0669b4aeda47953ec0e2b33dd",
                                                               Image2Sprite.Create("Mods/EldritchArcana/sprites/eldritch_heritage.png"),
                                                               FeatureGroup.Feat);

            var components = new List <BlueprintComponent> {
                heritageSelection.PrerequisiteNoFeature(),
                Helpers.PrerequisiteCharacterLevel(3),
                Helpers.PrerequisiteStatValue(StatType.Charisma, 13),
            };

            components.Add(Helpers.PrerequisiteFeaturesFromList(Helpers.skillFocusFeat.AllFeatures));
            heritageSelection.SetComponents(components);

            improvedHeritageSelection = Helpers.CreateFeatureSelection("ImprovedEldritchHeritageSelection",
                                                                       RES.ImprovedEldritchHeritageFeatureName_info,
                                                                       RES.ImprovedEldritchHeritageFeatureDescription_info,
                                                                       "c8bd273034684e6689b105a7d8bc9c3b",
                                                                       Image2Sprite.Create("Mods/EldritchArcana/sprites/eldritch_heritage_improved.png"),//spellSpecialization.Icon,
                                                                       FeatureGroup.Feat,
                                                                       Helpers.PrerequisiteCharacterLevel(11),
                                                                       Helpers.PrerequisiteStatValue(StatType.Charisma, 15),
                                                                       heritageSelection.PrerequisiteFeature());
            improvedHeritageSelection.Mode  = SelectionMode.OnlyNew;
            improvedHeritageSelection.Ranks = 2;

            var noFeature = Helpers.Create <PrerequisiteNoFeature>();
            var greaterHeritageSelection = Helpers.CreateFeatureSelection("GreaterEldritchHeritageSelection",
                                                                          RES.GreaterEldritchHeritageFeatureName_info,
                                                                          RES.GreaterEldritchHeritageFeatureDescription_info,
                                                                          "24aad7af058a49f88d1203b856409023",
                                                                          Image2Sprite.Create("Mods/EldritchArcana/sprites/eldritch_heritage_greater.png"),
                                                                          FeatureGroup.Feat,
                                                                          Helpers.PrerequisiteCharacterLevel(17),
                                                                          Helpers.PrerequisiteStatValue(StatType.Charisma, 17),
                                                                          improvedHeritageSelection.PrerequisiteFeature(),
                                                                          noFeature);

            noFeature.Feature = greaterHeritageSelection;


            EldritchHeritageBloodlineLogic.greaterHeritageSelection = greaterHeritageSelection;

            var undoChoice    = UndoSelection.Feature.Value;
            var heritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var improvedHeritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var greaterHeritageFeats = new List <BlueprintFeature> {
                undoChoice
            };
            var featDescription = new StringBuilder(heritageSelection.Description).Append(
                String.Format(RES.EldritchHeritagePrerequisitesDescription_info, Helpers.skillFocusFeat.Name));

            HashSet <String> DescribeItemsSet = new HashSet <string> {
            };

            // bool seenDraconic = false;
            // bool seenElemental = false;
            foreach (var bloodline in BloodlineSelection.AllFeatures.Cast <BlueprintProgression>())
            {
                // Create Eldritch Heritage (level 1 power, Prereq: level 3+, Cha 13+, skill focus bloodline skill)
                String classSkillName;
                var    heritageFeat = CreateHeritage(bloodline, out classSkillName);
                if (heritageFeat == null)
                {
                    continue;
                }
                heritageFeats.Add(heritageFeat);

                var bloodlineName = bloodline.Name;
                // 英语法语用“—”,德语俄语用“-”,中文是“()”,不想写字典只能用傻办法。
                List <int> SubstringIndexForBloodline = new List <int>()
                {
                    bloodlineName.IndexOf(" — "),
                    bloodlineName.IndexOf(" - "),
                    bloodlineName.IndexOf("(")
                };
                SubstringIndexForBloodline.Sort();
                var i = SubstringIndexForBloodline[2];
                if (i >= 0)
                {
                    bloodlineName = bloodlineName.Substring(0, i);
                }

                DescribeItemsSet.Add(String.Format(RES.EldritchHeritageFeatDescription_info, bloodlineName, classSkillName));
                //if (bloodline.name.StartsWith("BloodlineDraconic"))
                //{
                //    if (!seenDraconic)
                //    {
                //        var i = bloodlineName.IndexOf(" — ");
                //        if (i >= 0) bloodlineName = bloodlineName.Substring(0, i);
                //        featDescription.Append($"\n  {bloodlineName} — {classSkillName}");
                //        seenDraconic = true;
                //    }
                //}
                //else if (bloodline.name.StartsWith("BloodlineElemental"))
                //{
                //    if (!seenElemental)
                //    {
                //        var i = bloodlineName.IndexOf(" — ");
                //        if (i >= 0) bloodlineName = bloodlineName.Substring(0, i);
                //        featDescription.Append($"\n  {bloodlineName} — {classSkillName}");
                //        seenElemental = true;
                //    }
                //}
                //else
                //{
                //    featDescription.Append($"\n  {bloodlineName} — {classSkillName}");
                //}

                // Create Improved Eldrith Heritage (choice of level 3/9 powers and use level -2, can select twice, Prereq: level 11+, Cha 15+)
                var improvedFeat3 = CreateImprovedHeritage(bloodline, heritageFeat, 3);
                var improvedFeat9 = CreateImprovedHeritage(bloodline, heritageFeat, 9);
                improvedHeritageFeats.Add(improvedFeat3);
                improvedHeritageFeats.Add(improvedFeat9);

                // Create Greater Eldrith Heritage (choice of level 15 or lower powers and use full level, Prereq: level 17+, Cha 17+)
                var improvedfeats = new BlueprintFeature[] { improvedFeat3, improvedFeat9 };
                var greaterFeat3  = CreateGreaterHeritage(bloodline, improvedfeats, 3, improvedFeat3);
                var greaterFeat9  = CreateGreaterHeritage(bloodline, improvedfeats, 9, improvedFeat9);
                var greaterFeat15 = CreateGreaterHeritage(bloodline, improvedfeats);
                greaterHeritageFeats.Add(greaterFeat3);
                greaterHeritageFeats.Add(greaterFeat9);
                greaterHeritageFeats.Add(greaterFeat15);
            }
            foreach (var DescribeItem in DescribeItemsSet)
            {
                featDescription.Append(DescribeItem);
            }
            // Log.Write(featDescription.ToString());
            heritageSelection.SetDescription(featDescription.ToString());
            heritageSelection.SetFeatures(heritageFeats);
            improvedHeritageSelection.SetFeatures(improvedHeritageFeats);
            greaterHeritageSelection.SetFeatures(greaterHeritageFeats);

            library.AddFeats(heritageSelection, improvedHeritageSelection, greaterHeritageSelection);
            //featselection
        }