branchrust_reboot/main/ai_wolf_iterationcancel
413 Commits over 123 Days - 0.14cph!
Remove old dead AI code, hook up some events in preparation for NPCs being able to react to bullets impact near them or flying past them
▄▅▊ █▍▍▊▉▄▅▆▆▅ ▍▋▉▉▌ ▆▊ ▍▇▇▊▌▉ ▆▌ ▅▆▆█ ▌▍▉▍▇ ▅▊▍▊ █▊▍▍▋█ ▆▍▇
▌▄▍▋▍ ▌▋▍▅▋ ▇▄▋▋▄▅▉▊ █▊ ▌▋▅▌ ▌▊▊▊▉▆▋▇ ▇▅▊▉▊▄ ▇▇▌▌▍█▊█▌▋ (▌▆▋▌▉▋▌ ▅▌ ▅▍▆▆▄█ ▍▍ ▄▊▊▅█▉█ ▇▅▌▍▌ ▊▆▇▋▍ ▌▇▉▍▋▉▇▉ ▊▉▅ ▄▄ ▋█▄)
▇▋▆▉ █▄▇█▄▇ ▊▆▅▆▇ ▉▅▄█▆ ▊█▍█▋▍▋ ▄▆ ██▄▍ ▅▇▉▌▇, ▅▋▄ ▉▇▇▅▉▉▋ ▋▅ ▊▇▌▉ ▊▍ ▋▋▌█ ▆▆ ▅▉▍▊▆▍▍▌ ▋▋▌▊▅, ▅▅▉ ▇▅█▄▆▅ ▌▄▅▇▉█▋ ▄▉ ▋█▌▇▋ █▉▆▉▋▍▇ ▍▉▅▇▉▋▅▇
▋▆▋ ▉▆▊▄▍█▉▍ ▇▊▊▌█▄▍▆▇ ▄▆ ▅▋▆▋█ ▍▌█▉▋, ▍▄▉ ▇▋▍▇▍▆▅ █▌█▅▌▊▆ █▄ ▅▆▉▊▉▅▄▆█▅
▆▍-▄▆▋ ▋▊█▇▅▆ ▉▍▅▅▌ ▊▇▆▍▌▍ ▍▇▅ ▅▊▇▊▊▆
▋▊▇▄▇▌ ▅▍▅▌█ ▋▆ ▊█▅▅ ▋▆▉▋▋▋ ▄▄█▋▋▇
Allow wolves to target other wildlife again, fix errors when target dies while circling
Optimize wolves LoS checks (ignore other wolves, spread computations over multiple frames, pool sight events), also ignore players in safe zones
Fix inverted transition in wolf fsm
Use GetCornersNonAlloc to avoid unity copying the npc paths everytime they are accessed
Cover performance critical code with time warnings
Skip entity query distance checks in wolf sight to avoid doing them twice
Have the wolve's meshes rotate to follow their movement on slopes, but only the pitch, and only up to 30 degrees
Fix wolf anim not always being cancelled on state transitions, add "or" transitions, wolves will now all flee together instead of separating if one is shot while the player is protected by fire or is very far away
Fix compile errors caused by serialized fiels in server only parts of the code
Fix editor only code causing compile issues
Fix editor only code being used outside of editor directives
Add more weapons to editor combat loadout
Make targetting component more robust, make wolves react more believably when shot with long range weapons
Conservatively fix compile error caused by #if SERVER
Make target component API usage more consistent
Bring wolf to 0 runtime allocs by removing a lambda in the senseComponent
Remove lambdas from wolf fsm transitions in preparation for it to be data driven
Add distance check option enum to entity query
Add profile markers to FSM
Add missing profile markers
Add profile markers for parts of the codes that can do traces, path queries and entity queries
Remove uses of lambdas in entity queries to avoid subtle allocations
Have wolves use brains queries instead of entity queries
Fix missing using statement on server
Fix compiler complaining about unused serialized variables when they are server only
Fix pooledlist test not being setup and torn down properly
Hook new wolf growl anim, make animator state generator case instensitive
Rewrite PooledList to be IPooled and IDisposable, allowing it to be part of using statements and free itself when leaving scope
Have fsm UI states sync their name with the actual runtime state instance
Add labels to transitions in fsm UI
Derive graphview edges to store fsm transition information directly in them
Fix undo not working when renaming fsm nodes in the UI or changing state properties
FSM UI now properly add new states at mouse location
Add option to export code only FSMs to graphviz to help porting existing FSMs to the new UI
Reduce occurences when one wolf is injured and other wolves keep circling slowly instead of coming to help or fleeing
Tweaks after playtest feedback:
* have wolves interrupt lenghty animations when they are suddenly in danger
* injured wolves don't answer to calls for help as it'll just get them killed
* less predictable charge patterns to disrupt aiming
* higher chase and flee speed