private static void addFavoredClassBonus(BlueprintCharacterClass favoredClass) { BlueprintProgression progression = library.TryGet <BlueprintProgression>(Helpers.MergeIds(Helpers.fighterClass.AssetGuid, "081651146ada4d0a88f6e9190ac6b01a")); BlueprintFeatureSelection FavoredClassFeature = library.TryGet <BlueprintFeatureSelection>("bc4c271ef0954eceb808d84978c500f7"); if (progression != null && FavoredClassFeature != null) { BlueprintProgression newProgression = library.CopyAndAdd(progression, $"FavoredClass{favoredClass.name}Progression", Helpers.getGuid($"FavoredClass{favoredClass.name}Progression")); newProgression.SetName($"Favored Class — {favoredClass.Name}"); newProgression.SetIcon(favoredClass.Icon); newProgression.Classes = new BlueprintCharacterClass[] { favoredClass }; newProgression.ExclusiveProgression = favoredClass; FavoredClassFeature.SetFeatures(FavoredClassFeature.AllFeatures.AddToArray(newProgression)); } }
static public void CreateFeats() { if (!prepared) { LoadSpecialSpells(); } if (addSpecialSpellFeat != null) { return; } BlueprintSpellList specialList = Helpers.Create <BlueprintSpellList>(); specialList.name = "RisiaBossSpecialSpells"; specialList.SpellsByLevel = new SpellLevelList[10]; for (int i = 0; i < 10; i++) { specialList.SpellsByLevel[i] = new SpellLevelList(i); } int len = specialSpellLevels.Count; for (int i = 0; i < len; i++) { specialList.SpellsByLevel[specialSpellLevels[i]].Spells.Add(specialSpells[i]); } library.AddAsset(specialList, OtherUtils.GetMd5("Risia.Boss.AddSpecialSpellList.List")); addSpecialSpellListFeat = Helpers.CreateFeature("RisiaAddSpecialSpellListFeat", "", "", OtherUtils.GetMd5("Risia.Boss.AddSpecialSpellList.Feat"), IconSet.elvenmagic, FeatureGroup.None, Helpers.Create <AddSpecialSpellList>(a => { a.CharacterClass = ArcanistClass.arcanist; a.SpellList = specialList; })); /*addSpecialSpellFeat = Helpers.CreateFeature("RisiaAddSpecialSpellFeat", "", "", * OtherUtils.GetMd5("Risia.AddSpecialSpell.Feat"), * IconSet.elvenmagic, * FeatureGroup.None);*/ addSpecialSpellFeat = Helpers.CreateProgression("RisiaAddSpecialSpellProgression", "", "", OtherUtils.GetMd5("Risia.AddSpecialSpell.Progression.Feat"), null, FeatureGroup.None); addSpecialSpellFeat.IsClassFeature = false; addSpecialSpellFeat.Classes = new BlueprintCharacterClass[] { ArcanistClass.arcanist }; addSpecialSpellFeat.LevelEntries = new LevelEntry[20]; for (int i = 0; i < 20; i++) { addSpecialSpellFeat.LevelEntries[i] = new LevelEntry { Level = i + 1 }; } BlueprintFeature[] subFeats = new BlueprintFeature[10]; for (int i = 0; i < 10; i++) { subFeats[i] = Helpers.CreateFeature($"Risia.AddSpecialSpellFeat.Level{i}", "", "", OtherUtils.GetMd5($"Risia.AddSpecialSpellFeat.Level{i}"), null, FeatureGroup.None); } for (int i = 0; i < len; i++) { subFeats[specialSpellLevels[i]].AddComponent(specialSpells[i].CreateAddKnownSpell(ArcanistClass.arcanist, specialSpellLevels[i])); } for (int i = 1; i <= 9; i++) { int firstArcanistLevel = (i == 1 ? 1 : i * 2) + 1; addSpecialSpellFeat.LevelEntries[firstArcanistLevel - 1] = Helpers.LevelEntry(firstArcanistLevel, subFeats[i]); } addSpecialSpellFeat.SetName(Helpers.CreateString("Risia.AddSpecialSpell.Feat.Name")); addSpecialSpellFeat.SetDescription(Helpers.CreateString("Risia.AddSpecialSpell.Feat.Desc")); }