branchrust_reboot/main/ai_wolf_iterationcancel
406 Commits over 153 Days - 0.11cph!
Remove hardcoded speed values
Fix hobo barrel and witch cauldron not scaring wolves when they are lit
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
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
Temporarily prevent wolves from hunting scientists until we update their AI
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
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
Cache arrows item definitions so that they can be used for comparisons in code, instead of relying on comparing hardcoded names
Fix wolves switching target even though the current is was closer, just because they couldn't see it briefly
Fix wolves sometimes getting stuck eating dropped meat when another wolves eats the meat first
Fix wolves running in circles sometimes as they overshoot their destination, when the player is unreachable
Use a different syntax for HFSM declaration which results in a more compact and readable tree
Fix wolf chasing its own tail
Fix a lot of the wolves state incorrectly returning base.OnStateEnter() from OnStateUpdate, causing a lot of weird behaviour
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
Make wolf foundation jump more consistent
The wolf can now lie down or scratch its ears instead of just standing still
Refactor wolf fsm to be easier to maintain and extend
- 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
Fix wooden barricades not carving navmesh as opposed to other barricades
Fix wolf looking behind them too much when fleeing
Smooth out wolf neck movement
exported wolf swim animation