AI hooks and navmesh rebaking modifiers #515
Open
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.
Adds the following hooks:
Adds the following modifiers:
The modifiers are just to allow rebaking navmesh so NPCs can roam freely. Niche application but would be nice to not have to custom patch each time
The AI hooks allow insertion of custom state behaviors as well as custom control of AI targeting (both to filter out normal targets and to inject abnormal ones). The NPC GetBestRoampoint lets you change how roam points are picked so they're not tied to AIInformationZones for free-roaming. The turret hooks allow custom targeting logic (like targeting NPCs and animals)
Usecase plugins:
Psilocybin and cordyceps are utility plugins that allow custom event-state mapping and injection of custom state behaviors, AIZLiberator lets them free-roam and changes aspects of combat and chase behaviors, as well as hijacks takecover to mostly make them pick nearby spots because otherwise they try to run across the map to get to some AIZ-tied cover point. Navmesher rebackes the navmesh and tries to add some obstacles to things like cactii so the NPC stop running into them repeatedly. Admittedly, that lat part isn't working as ell as I hoped, it's a WIP. The full thing is built in layers and I've only added the lowest layers as a minimum-viable example
Example usecase.zip
Hooks in isolation:
AIPlus.opj.txt