[WIP] npctalk: move more stuff to JSON #27643
Closed
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.
Summary
SUMMARY: Infrastructure "npctalk: move more stuff to JSON"
Purpose of change
Move even more NPC dialogue out of the C++ hardcode and into JSON. This round deals with the main follower dialogue, mission dialogue, and NPC rules.
Fixes #25374 - checking an NPC status now shows approximately how long until they need to eat, drink, and sleep
Fixes #27637 - response snippets will now be logged in their final form
Fixes #27397 - most of the requests have already been completed, just waiting on conditional trials
Describe the solution
Creates a bunch of new conditions, a few new effects, and a few new dynamic lines.
Alternatives I didn't really consider
conditional functions need to stop being lambdas and start being top level functions so they can eventually be used by the base camp and mission code, but while that is going to be a huge refactor, it's also going to be trivial. I'll do it later after this functionality gets merged.
Additional context
2400 lines is too large for sensible review, so I'll break this up into multiple PRs after I add a bunch of new test cases.