branchrust_reboot/main/ai_wolf_iterationcancel
404 Commits over 123 Days - 0.14cph!
▆▋▌ ▆▉▆▄▉▅▅ ▇█▄▇█ ▉▍ ▋▄▉▌▅▇
Properly replicate meat stack size shrinking as wolf is eating
Drop BaseEntity AddComponent extension method and just declare straight up `AddComponent`
▌▄▊ ▌▇▇▌▉▆▆ ▉▍▄▍▆ ▊▆ ▌▊▇▊▆▊
Fix containers not opening
Caused by cache and order of operations changing with BaseEntity Components
Have wolves spend a longer time eating larger meat stacks
Fix hitinfo being recycled while the wolf was holding a reference to it
When some food is unreachable, remove it from the grid and put the state on cooldown for performance
Don't try to eat food that's moving (eg still falling to the ground)
▋▉▄ ▇▋▄▇▉▅▍▍▆▌█ █▊ ▍▅▅▊▄▊▍▄█
Add more perf markers to nav agent
Allow wolves to perceive other NPCs through occluders, but not players
Have wolves prioritize players that attack them over animals they are hunting
Fix bug where wolves were faster than light
Reduce the speed at which wolves eat a corpse
Add more ai debug toggles to rust editor
Optimize wolf path following, 60% speed boost
Set a IsNavMeshReady bool to avoid calling agent.isOnNavMesh / agent.updateRotation / agent.isStopped once the navmesh is ready
Cache transform to avoid doing .transform multiple times, micro-optimization but significant for hundreds of wolves
Cache actions to prevent allocs with Invoke and CancelInvoke
Add more detailed profiler markers to fsm
Fix wolves looking at random players (wolves are pooled on client, so we need to reset their lookat target)
Fix wolves fleeing permanently when player swings the torch, they should only retreat temporarily
Fix torches not being considered off after switching weapon
Make wolves circle fires instead of circling players near fire, helps prevent wolves walking into fire
Make wolves smell food and corpses around them, not requiring direct LoS to find it
Simplify hearing and give it its own convar separate from the sense convar for easier filtering when debugging
Add vislogs for food and fire
Optimize wolf fire detection, fix campfires making the wolf toggle between states very fast
Draw vislog spheres as circles to reduce clutter
Add parameter to drive vislog time between saves to disk, have NPCs log their position and state
Restore wolf health if it stays out of combat for a very long time
Prevent wolves from being scared by noises too easily, make wolves favour circling more
Add anim to wolf jump
Tweak fsm api to prevent bugs we could catch in a static way
Make it possible to stack the disabled state on a navmesh agent
Instead of passing a small default value to SamplePosition, create another methode called IsOnNavmesh to make it harder to misuse
Polish wolf attack on foundation behaviour: raise jump apex, prevent target switch, U turn instead of barking when landing away, cancel if player gets down
Fix canReach being inaccurate
Fix potential bug when noise transition evaluates to true, but it's inverted or composed with other transitions
Improve navigation vislogs
Wolves can now jump onto player foundations to attack
▊▅▇ ▅▇▋▋▊ ▊▇▄█▌ ▍▅▋█▍▄ ▉▌ "▄▇█▊▊▆" ▊▆▉▋▋ ▄▇ ▅▍▉▋▅▌
exported edited wolf idle1, wakeup and idle to sleep anims
Remove remnants of fsm tags, add strafe mode to path follower, add CanSeeTarget fsm transition
Make sure wolf can transition from hurt to death
▇▅▌ ▋▅▄▋▉█▍ ▇▅▍▋▉▉ ▄▍█▅▅▌▉ ▅▄ ▇▇▋▆▌▆█ #▋▌ ▌█▉▆▆
Fix wolf sight tracing to prey feet, often causing it to be blocked
Fix wolf hovering slightly above ground
Make new wolf DPS equivalent to the current one
▉▉▆ ▅▉▋█ ▍▍▋▍▇▉▆ ▌█ ▊▇▋▄▋▄ █▌▅▇▉ ▅▇█▄ ▌▅▇▊▄
Wolves will not bother howling if their prey is unreachable
Wolves will favour targeting players over other NPCs unless the other NPC is way closer
Remove FSM tags, exhaustive transitions turn out to be easier to debug and manage
Add budgeted queue for pathfinding requests
▅▉▋ ▄▅█▇▆█ ▇▆▍▄ ▍▇▇▍▊█▅ █▆▄▅▋
Have wolves clear their target after eating, as else they can hunt you down after finishing their food if you passed them while they were eating