branchrust_reboot/main/ai_wolf_iterationcancel
                         
                     
             
         
     
    
        
490 Commits over 153 Days - 0.13cph!
    
    
    
        
            
            
            
                
                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
                
                
                
                
             
         
        
            
            
            
                
                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