Initialized plugin in CombatDirector #2
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Recent changes in Risk of Rain 2 seem to have altered the way content is loaded. If we access
CombatDirector
data throughEliteAPI
too early, then things like elite types simply will not be available; everything underRoR2Content.Elites
is null. Worse, usingEliteAPI
forces the combat director to be initialized immediately (CombatDirector.Init()
is called early), and then every elite tier gets null, and no elites can ever spawn.Patching
CombatDirector.Init()
is unreliable, as it can be called during plugin loading by mods that useEliteAPI
. Mod order can then break this mod by simply not callingCombatDirector.Init()
too early. Instead I patchResetEliteType()
, which is called before each monster wave to select an elite tier, and that seems to work much more reliably (in addition to being called as late as possible, when assets are guaranteed to have been loaded).Bonus: normalized indentation! No mixed tabs and spaces, thank goodness.
Fixes #1