Beispiel #1
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);
        }
Beispiel #2
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
        }
        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
        }