branchrust_reboot/main/ai_wolf_iterationcancel
413 Commits over 123 Days - 0.14cph!
Make flame thrower and fire arrow more reliably scare wolves
▋▋▄ ▍▅▊▇▅▍█▋▉▍ ▍▄ ▊▌▅▆▌▄, ▌▆▆▅ █▄▉▋ ▄▆█▄▄█ ▅▍██ ▌▉█▋▆▊▄▍
If a wolf is stuck while roaming, kill it to save perf
▅▆▉▌ ▍▆▅▊ ▇▊ ▅▊█▇▉▉ ▋▄▅▍▇ ▊█▉▊▆▋ █▇▍▇, ▅▍▍▋▍▌ ▄▉▄▋▄▍ ▊▍▊▆▄▉▄▍▋▊▅ ▇█▌▄ ▅▋█ ▊▇▇▆▍▋
Compute anim hashes to not reimport them when they didn't change
▆▊▇▅▊▋▄ ▊▌▇▉ ▉▋▊▇▄▊▊ ▅▄▉▌▇▍▅▄▌ ▅▇▄▄▊▉▄▅ █▄▉ █▉▅▄▇▉, ▍▍▄ █▍▆▋ ██▌▅█▇ █▄▊▍ ▌▆▌ ▆▍▄ ▋█▍▄▄▆▉▍,
▄▋▇▄▅▄ ▉▉▊▊▆ ▋▌ █▇▌██▌ ▅▆▇▊█▅▊ ▆▍▊▍▇▄█▋▊ ▍▋ ▋▋ ▍█▆▉ █▋▅ ▊▇▄▍▉▍▅ ▌▅ ▊▄▍
▉▌▆█ ▌█▅▄▆▉ ▄█▋▌▆▍▅▊ ▌▍ ▌▊▅█▌▋ ▊▅▋▉▆
▍▉▉▅▇▉ ▋▉▅▆▆▊ ▄▇▉▇▋▄▋ ▉▋▇▍▄▋▄
Fix wolves that are stuck spamming pathfinding and traces
Fix wolves not properly following players carrying fire
Allow removing keys from bb component
Fix wolves stopping right in front of players without attacking sometimes
When getting too close from fire, have wolves perform a feint and attack anyway (it was weird standing super close to them without them attacking or fleeing)
You can still swing the torch to drive them away, but they'll get progressively closer if you're not swinging
Fix wolves charging despite fire in some circumstances
Fix wolves not playing growl anim anymore when startled by fire (regression)
Have wolves veeeery slowly approach when fire is present, to make it clearer that just standing still for a long time is not a good idea
Fix wolves making crazy leaps onto player rooves or at players on top of ladders
Fix wolves not stopping eating when friend nearby gets hit (bros before steaks)
Fix wolves often charging instead of circling
Fix wolves barking mid fight when very close
Give wolves some mix-ups between charge and circle to be slightly less predictable when reacting to hits
Fix fireball NRE when show fire convar is true, instead of only being considered on fire when stationary, fireballs are always considered on fire
Update the fire flag on the bow when using fire arrows and aiming, so they can work to scare wolves away
█▉▊ ▌▇▇▅▌ ▊▅▆▌ ▊▅█▆▌▉▅▄▄ ▋█ ▊▋▉█▄▋ ▊▌▍█ ▇▌ ▄▆▇▆▅▆
▇▍▊ ▅▇▋▋▉▊▉▆▊▌▇▆▄ ▊▆▅▄▇ ▅▄ ▊▉▌▉▌█
▆▋▌ ▆▉▆▄▉▅▅ ▇█▄▇█ ▉▍ ▋▄▉▌▅▇
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