static void Postfix(LibraryScriptableObject __instance) { var self = __instance; if (Main.library != null) { return; } Main.library = self; EnableGameLogging(); SafeLoad(LoadCustomPortraits, "Custom Portraits in main portrait selection"); SafeLoad(Helpers.Load, "Initialization code"); SafeLoad(Spells.Load, "New spells"); // Note: needs to be loaded after other spells, so it can offer them as a choice. SafeLoad(WishSpells.Load, "Wish spells"); // Note: needs to run before almost everything else, so they can find the Oracle class. // However needs to run after spells are added, because it uses some of them. SafeLoad(OracleClass.Load, "Oracle class"); // Note: spells need to be added before this, because it adds metamagics. // // It needs to run after new classes too, because SpellSpecialization needs to find // all class spell lists. SafeLoad(MagicFeats.Load, "Magic feats"); // Note: needs to run after arcane spells (it uses some of them). SafeLoad(Bloodlines.Load, "Bloodlines"); // Note: needs to run after things that add classes, and after bloodlines in case // they allow qualifying for racial prerequisites. SafeLoad(FavoredClassBonus.Load, "Favored class bonus, deity selection"); SafeLoad(Traits.Load, "Traits"); // Note: needs to run after we create Favored Prestige Class above. SafeLoad(PrestigiousSpellcaster.Load, "Prestigious Spellcaster"); // Note: needs to run after things that add bloodlines. SafeLoad(CrossbloodedSorcerer.Load, "Crossblooded Sorcerer"); // Note: needs to run after things that add martial classes or bloodlines. SafeLoad(EldritchHeritage.Load, "Eldritch Heritage"); // Note: needs to run after crossblooded and spontaneous caster classes, // so it can find their spellbooks. SafeLoad(ReplaceSpells.Load, "Spell replacement for spontaneous casters"); #if DEBUG // Perform extra sanity checks in debug builds. SafeLoad(CheckPatchingSuccess, "Check that all patches are used, and were loaded"); SafeLoad(SaveCompatibility.CheckCompat, "Check save game compatibility"); Log.Write("Loaded finished."); #endif /* * Ideas for future work: * - More Oracle mysteries/archetypes * - Arcane Savant prestige class (started) * - Warpriest class (started) * - Bloodline mutations * - Shapechange bloodline * - Variant multiclassing * - Spells! So many fun ones (see ArcaneSpells file for a few ideas) * - Ninja Tricks * - Vanishing trick * - Shadow Clone * - Pressure Points * - Rogue talents: ninja trick/ki pool/improved * - Magus Close Range (can use Spellstrike with range touch spells) * - Multiattack * * Things to help Wizards: * - Admixture subschool * - More scrolls in loot/vendors: every spell in game should be purchasable * at appropriate level. (note: IIRC there's another mod that fixes this.) * - Fast study: if you leave a spell slot empty at rest, you can choose a spell * and after 1 minute it'll be memorized. * - Scribe scrolls at rest: tickable option to scribe all unused spells, so * they'll be available for later use? (note: craft items mod seems a better * place for this). * - More spells, especially utility spells. * * Things to help Druids: * - more spells (e.g. fire seeds) * - Planar Wild Shape Feat * - Powerful Shape * - Draconic Druid Archetype */ }
public static bool GetInitialized(this LibraryScriptableObject library) { return(library.GetFieldValue <LibraryScriptableObject, bool>("m_Initialized")); }