branchrust_reboot/main/ai_wolf_iterationcancel
413 Commits over 123 Days - 0.14cph!
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
▊▅▇ ▅▇▋▋▊ ▊▇▄█▌ ▍▅▋█▍▄ ▉▌ "▄▇█▊▊▆" ▊▆▉▋▋ ▄▇ ▅▍▉▋▅▌
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
▄▌▉ ▋█▆▊▆▋ ▅▌▆▍▌▅▉▇ ▍▆▋▊▋ ▄▄▅▌▆▋▅▆ █▍▉▄▌▄█
█▍█ ▅▅▊▇▋ ▇▄▊▍ ▌▇▄▋▅▄▅▊ ▆▄▉▄ ▌▍ ▋▍▇▋▇▅, ▇▍▋▍▄▇▌▅ ▊█▌▊█▇ ▋▄▋▇ ▇▊▅▉▍█▇█▆▅ ▍█ ▇▉▋▉▊▍▉▄▋ ▋▆▄▍▌▅▌ ▊▉ ▅▊▅ ▄█▊▍
▇▇▅ ▊▆▌█▋▄ ▇▅▇ ▉▆▊█▆▌▅▌▍ ▉▆▇▊▊▍▊, ▌▅▉ ▉▉▍ ▅▌▇▄█▄▅▌ ▊█▇▊▄▄ ▉▄▅▋ ▋▄▉▌▅▋▍ ▉▌▋▍ ▍▋▉ ▌▉▅▋▅ ▆▇▄▋ ▅▌▋▍▄▉ ▍▄▋▄
Allow wolves to eat corpses and meat
Refactor targeting component to be budgeted and part of sense component, this fixes a bunch of issues where wolves would overcommit and ignore other threats closer to them
Have wolves eat corpses and meat
Fix wolves thinking they already finished moving instead of waiting for the async path request result
Prevent being able to bully wolves by repeatedly shooting at their feet to scare them away, fix wolves trying to cancel their reaction to fire
Streamline wolf interruption behaviour, assign target upon hearing noise
Polish and budget NPC hearing, reduce charge range
▌▆▉▄▉▊▇ #▍▊ ▉▌▄▄▅_▍█▅▊▆▋ && ▍▅▊▅▍▆ ▇▉▌█ #▋▍ ▋▇▌▄█_▊█▆▅▉▅ && ▍▍▆▉▆▍ && ▅▅▅▅▆▇ ▋▊ █▄▆▇ ▌▅▆▌ ▍▇▋ ▆▍▄▉ ▅▍▊▇▄▊▅ ▋▋▅▉▊▆ ▉▋▉▄
Improve fidelity of wolf consecutive attacks when the player keeps walking backwards, or is standing still
Make wolves react to lit torch swings and projectiles landing near them
Wolves can wait longer in a spot while roaming, reducing the number of path queries made by roaming wolves
▄▉▋ ▌▋▌▌▇ ▊▉▌ ▉▍█▄▌▆▆▊ ▋▇▅▍ ▅▇▉▇▅▄ ▉▋▍▌▍▍ ▉▆ ▌▋▍█ ▋▉ ▉▌▄▅▇▇▊█ █▋▊▌▍ ▉▉▉▅▉▊▆▅▌▍
Fix sense refresh time not accounting for budgeting delaying refresh
█▄▆▌ ▉▉▉▌▄▋ ▅▊ █▌▉▋▅▅ ▉▋▊▍ ▅█ ▌▇▄▄▊█▌ ▉▌▌▆▇▄, █▌▄ ▉▇▊▍▆▊ █▆ ▌▍▍▆ ▅▉ ▌▉▌▌▍▅██▅ ▉▌ ▉▌▊ ▉▆ ▊▋▆█▅▇▆▆
Make senses tick instead of being evaluated on demand
On demand senses are harder to debug and visualize, as well as only causing a minor performance gain
Ticking is more predictable performance wise and easier to keep track of in the frame budget
Senses tick faster if a player is near the NPC
▄█▇ ▄█▄▊▋▊ ▉▍▌▆▊▉▆▍▍▍▉ ▋▅▄█▍ ▋█▍▅▅▋▋▊▇
█▇█ ▉▆▍▉ ▆▋ ▄▋▇█ ▍▊▌▍▊▋▌▋ █▌▄ ▇▆ █▉▅▉▅▍
▍▄▋ ▇▌▄▅▋▊ ▊▄▉▋█▍ ▆▉ ▄▋█▊▆ ▊▊▆▊▊▍▍ ▋▋▊█▅
▌▉▉ █▄▌█▊▍▊▅▊▄<▉> ▋▉ ▆██▊▉ ▍▌ ▊▋▄▄█▆, ▊▋ ▉▍▍ █▇▊▋▇ ▇▄▊█▄▅▆▊█ ▋▍ ▊▌▆▇▄▍ ▋▍▋▄▌▄█
▆▅▄ █▋▉▆▅▇ ▌█▋▊ ▍▆▇▅ ▇▇▊▌▋ ▄▌▆▌▋▇▌▊ ▍▆ ▍▌▊▅█▇
▉█▋ █▋▊▆▊▅ ▉▌▋ █▆▍▋▇ ▌▄▆▊▉▉▋▇▄