1,045 Commits over 274 Days - 0.16cph!
Make wolves lie down less often but slightly longer (they need to lie down sometimes for server performance), remove the pause before the idles for a more natural transition
Change howl audio sound types from small to medium as it was not audible unless a few meters away (but then the wolf would cancel the howl and charge), fix new growl sound not playing
Add debug convar for fire melee, fix some events being dropped
Fix error caused by adding already present key to dictionary, fix distance check being inverted
Fix NRE caused by dictionary trying to add an already present key
Fix wolf circling corpse for a long time sometimes when moving to eat
Prevent wolf walking underwater, it'll give up thechase if the player starts swimming
Reduce odds of wolf attacking animal when it's likely it'll lose
Add top secret hidden feature to wolves
Merge from ai_wolf_iteration
Add placeholder wolf eating sounds
Fix pragma restore 414 being in the wrong place
Merge from ai_wolf_iteration
Remove unused fields, redundant checks, and fix issue where compoosite transitions are not cloned properly
Prevent fsm from waiting one frame to change state when a state succeeds or fails
Fixes wolves sometimes pausing for one frame and losing momentum
Added some infinite change protection in the hypothetical case a group of states keep cycling during the same frame
After 3 same-tick changes we postpone the next state change for the next tick
Have wolf fsm tick slower when no player is nearby, similar to senses
Combine wolf senses and fsm into a single budget for simpler tracking, and also because we want senses to drive the fsm tick rate in the future
Fix wolves not playing 180 anim anymore when fire is lit right in front of them (regression)
Hook remaining wolf idles
Make sure state and transitions are always deep copying internal lists
Fix state cloning making a shallow copy of lists, causing clones to share the original transitions
Fix wolves sliding when waking up
When wolf braking too abruptly
Tick steering manually from serverMgr instead of unity's update
Fix typo in time warning comment
Remove hardcoded speed values
Fix hobo barrel and witch cauldron not scaring wolves when they are lit
Merge from ai_wolf_iteration
Undo accidental change to procedural map
Make wolves more accurately align with food when eating
Make wolf decelerate faster when approaching a player holding fire, as to not end up charging them by accident, which would make them think the fire is not working
Merge from ai_wolf_iteration (huge perf boost)
Store fsm transitions in the state themselves to avoid having to do dictionary lookups, makes wolves twice as performant
- Optimize the fsm transitions that are called often: cache distance to target (per frame) and components
- Optimize roaming and flee: don't project all points in a circle around the wolf, once points are scored, early out after both nav projection and path succeed
- Remove allocation caused by List.GetRange in GetFirstReachablePointInTopPct
- Remove transitions updates (time elapsed now uses a timestamp)
- Add more TimeWarning coverage
Instead of declaring multiple overloads for a method to allow a variable number of parameters, use optional parameters
Merge from ai_wolf_iteration
Temporarily prevent wolves from hunting scientists until we update their AI
Merge from ai_wolf_iteration
Fix wolf mesh not being culled on client when occluded
Fix wolves not stopping when ai.move is set to false while the server is running
▄▌▍█▅ ▊▋▇▋ ▊▄_▅▋▆▄_▄▇▇▍▉▋▋▄▍
Merge from ai_wolf_iteration
Make wolves reposition between attacks to vary the angles, instead of spamming frontal attacks
Fire fire blocking the wolves unreachable behaviour from triggering
Reduces wolf odds of trying to resist fire
Fix wolves counting themselves as an ally when deciding if it's worth fleeing to call reinforcements and come back