528 Commits over 123 Days - 0.18cph!
Fix wolf slowing down before jumping on foundation
Have wolf smoothly decelerate instead of stopping dead in its tracks
Fix wolf glitching out visually when jumping on foundation when the server frame-rate is low
Expose convar for wolf max per frame budget
Merge from ai_wolf_iteration
Merge from ai_wolf_iteration
Make wolf foundation jump more consistent
Merge from analytics_add_persistent_work_queue
Add persistent object work queue to analytics in the same way as object work queue
Also makes persistent object work queue more consistent with object work queue (TimeSpan instead of double, same member names, non generic parent)
The wolf can now lie down or scratch its ears instead of just standing still
Add persistent object work queue to analytics in the same way as object work queue
Also makes persistent object work queue more consistent with object work queue (TimeSpan instead of double, same member names, non generic parent)
Merge from relationship_manager_dangling_profiler_sample_fix
Refactor wolf fsm to be easier to maintain and extend
Add solar panels to a work queue
Fix two more dangling profiler samples in relationship manager caused by early outs
▅▇▌▉▇ ▌█▅▊ ██_▊▉▄▋_▋▋▋▉▉▌▄▅▋
▊▅▅▇▍▍▍▊▉ ▄▋▌ ▌█▄ ▅▇▅█▅▋ ▌▄▇▉▅▉, █▅▇▅▍█ ▇▄▊▇ ▋▌▆▆▊ ▄▉▌▇ ▄▉█ ▆▋█▊ ▌▊▌ ▄▋▋▋█ █▉▆ ▍▋▇███▋ ▊▇ ▆▍▅, ▋▉▉ ▅▅▄▄ ▌▉▊▇▊▊ ▆▉▊▍▅▌ ▋▄▌▉ ▄▄▉'▅ ▄▉▅▄ █▍▉▄▉▅
▇▉▋▌▉ █▉▊▄ ▊▌_█▉▆▊_▊▇▋▅▉▅▌▄▆ (▇█▆ ▄▌▊▊▋▊ ▄▌▄█▉▌█▄ ▆▅▅█ ▌▍▇▆▊▇▍▍▇, ▆▉▉ ▉█▄▆▉▌█ ▄▅▌▉▇ ▉▅▋▍▋█▌▊ ▌▋ ▉▉▌▋▅ ▆▊▌▆▋▇)
- Wolves have a chance to stand their ground and start growling at the first swing, if they do this swing again to make them flee
- Make torch swing reactions less delayed
- Remove cases where a wolf is quite close to the fire, but just stares without either growling or moving away which looked odd
Fix held items on fire like torches, bows and flame throwers not being detected by wolves if the fire moves far from where it was lit
Fix fire not being detected sometimes at a specific distance
(do not forget about a fire when it leaves out perception range, remember it until it's disappears)
Refactor FSM states to return their status, instead of having it being a member field (less error prone and helps states be AI architectures agnostic)
▆▌▉▉▌ ▆▌▊▆ ██_▌█▅█_▌▋▄▄▆▇█▍▅ (▌▊▄ ▇▅▌█▆▆▌▋ ▌██▋, ▄█▊▋█▇ ▉▍▆▋▍▊▆▉ ▅▄ ▌▌█▋)
Fix wolf staring and stepping forward states not being properly reacting to fire, increase the distance wolves flee from fire
▌▊▆▆▌▄▅ ▉▊▉▋▇▌▌▄▅ ▋▉▇▅▄▅▉█▋▋▋ ▍▄▌▉▌▇, ▇▅▅ ▅▆▅ ▌▌▇▆█▊▍ ▌▆▊▋█▇▉▉▊▊▅ ▋▉ ▄▆▆▉▋ ▄▍▄▉ ▋▍▄█ ██▇▋▍ ▄▌▋▍ █▆ ▇█▆ ▇▋▋█▄▇▊ ▄▉▊ ▌▉ █▋▌ ▇▉▋▊▍▍▄▅▍ ▋▄▍▋ ▅▌▍
Fix wolves not comming to help their allies under some cirumstances
▅▆▌█▇ ▅▋█▊ ▋▆_█▌▆▊_▅▆▋█▌▌▇▅▆ (▉▅▆ ▄▅▅▋██ ▉▍▋▊█▊▊▆ █▍▌▋)
Fix wolves absolutely wrecking cars with their attacks
▄▄▄▊▉ ▊▍█▅ ▇▆_▆▄▅▌_▊▊▆▇▆▇▇█▌
▉▋▇ ▇▅▋▉▍▄▍ ▉▉▇▊▅ ▄▅▊▇▌▅ ▅▆ ▉▅▍ ▍▍ ▌▄▍▅█▇▆▉█ ▄▌▌█▅▅▆ ▅▇▆▋▄▌.▅▊▊▄▆█▉.▌▆▅▋▉▅▍▄█▄▍▇▊▉▅
▊▇▌▅▇ ▊▌█▅ ██_▋▄▌▊_▊▌▇▍▄▅█▋▆ (▊▆▄ ▊▊▍▇▅█▄▍▌▄▌ ▆▇▍▍▉▉▆, ▅▅█ ▉▌█▍▋▍▆▆▊▉▉▄▉▅▋ ▅▄▇▇▄▌▋)
Fix ai.killanimals command not killing the new wolves
Put all new AI code in a separate namespace to avoid confusion with old AI framework
Modify codegen to support namespaces
Fix ai.killanimals command not killing the new wolves
Put all new AI code in a separate namespace to avoid confusion with old AI framework
Modify codegen to support namespaces
Consolidate the way wolves filter preys
Fix ai.addIgnorePlayer not working for the new wolves
▆▍▉██ █▍██ ▇▆_▊▍▇▆_▍▊▊▇▉▆▄▄▉ (█▅▅▄▉▆▆▇▉ █▇▍ ▌▌█ ▌▄▌▍▄▊ ▋▊▅█▍, ▌▍▋█ ▌▅▍▍ ▄▆▆▍▌▅▄▌ ▄█▄▇ ▅▌▆█▉█)
Potential fix for wolves jagged jumps
Prevent wolves from using a 180 anim to turn away from fire if they are already facing away, it looked odd
Make wolves flee a random distance to avoid visual repetition
Make wolves flee further away to avoid being easy targets
▊▉▆▄▆ ▉▄▌█ ▆▅_▇▆▌▍_▇▄▇▍▉▋▄▋█ (▊▊▄ ▋▄▌▅█▌▆ ▅▌▆█▅▄ █▆▌▉▋▊▍ ▇▊█▅▍▅, █▍▉▌▋▇▊ ▉▇▋ ▉▄▊▉▄▊▅▄▊▆)
Fix animals walking through crates and barrels
Fix wooden covers not carving navmesh