branchrust_reboot/main/Livestock_animalscancel
335 Commits over 488 Days - 0.03cph!
- Prevent child state from re-entering itself from parent transition (common cause of bugs)
- Fix croc never entering onNavmesh state
- Fix pendingStates not working when logIssues is disabled
- Fix livestock fixtures being broken when using new navmesh
- Fix ai.showstate text being on a single line
- Fix kicking not working
- Hook new cow stomp, sheep turns, happy canter
- Calves now do the opposite of old cows, they always move faster (it helps them keep up with their mom despite their smol legs)
- Cows now remember if you attacked them, and don't just get chill towards you instantly after fleeing
- Cows can kick if you run after them too close while they flee
- Baby now spawns laying down, and slowly gets up while the mom looks at it
- Fix bull turning its back to you when you approach it and it's defending a cow, it should just stand its ground
- Fix all cows fleeing when you shoot near them, but the bull keeping grazing as if nothing happened, now he should attack
- Fix cows stopping flee despite the threat still being close
- Fix graze share counting the walk so fullness kept falling
- put the old drink rate back
- let starving animals roam for food
- guard ResetPath on unplaced agents
Cow stomp animation added
- Move CoatIndex after the other autosaved syncvars so older livestock saves read the right bytes
- Skip a parent which has a coat the calf prefab has no material for when inheriting, else a stale number wtill be handed down
- Resend the newborn right after its coat is inherited else it change scolour after appearing
- Forget the painted coat in OnDisable rather than OnEnable, pooling runs that after the next occupant has already painted
- Apply the corpse coat from ClientInit alone and drop the syncvar callback that fired before the ragdoll existed
- Compare coat names per index across stages and ragdolls, not just the count
- Move SaveAndRestart in RustTestFixture and SpawnOnNavmesh in AITestFixture and use them from the livestock fixtures
- Reword the InitCoat and save test comments, the isLoadingSave guard only saves a roll the load overwrites anyway
Fix cows only grazing and never resting / idling, or roaming too much
Hook up livestock coats, not yet gene driven, tested networking, saving, corpses, babies
Cherry pick 163070: Fix gen2 AI never updating its position in the brain grid, causing some brain based spatial query to be stale
- Old cows will go to sleep and die peacefully, instead of player the combat death anim when dying of old age
- Cows get slower as they age, they also stay closer to home
- Cows can lie down just to chill, old cows chill more than normal
- When night falls, cows regroup and sleep together, some cows are early risers and some like to wake up late
- Hook sheep and lamb corpses
- Hook the death anims with forward momentum that are played when animals are killed while they are running
- Fix ai.fillHungerlivestock doing the opposite of what it says
- Fix cows never getting hungry or thirsty after feeding or drinking once, or getting full from one single grazing
- Fix cows being unable to find food after grazing once, because they search radius was smaller than the "overgrazed" marking
- Make cows roam less they seemed more like a pack of wolf than chilling cows
Cow get hit animation updates
Cow and sheep animation clip fix's
A few more tweaks to the ragdoll copier to save some clicks
Bull ragdoll
Cow ragdoll joint improvements
- Add a cooldown to the livestock flee trigger so one hit cannot re-fire it through randomIdle or chargeRun
- Back off strayed-from-mother and strayed-from-herd for 15 s after a failed walk back
- Require a reachable trough or barrel before it wins over grass or shore
- Add RegroupSearchRadius so cows can find a herd further than the stray distance
- Only send a staggered bull into flee when the hold-ground rule says he would run
- Sample two rings and take the nearest spot in the grass and water searches
- Record herd distress only when there is an attacker, and spend it on the first charge
- Back off the mate search when nobody is found or the female is unreachable
- Throttle the shore search after a miss, mirroring the grass search
- Collapse graze and drink into shared consume transition and state classes
- Share one speed ramp helper across follow, consume, mating and return walks
- Add IsHerdMate, IsDependent and a centred FindNearestDependent, and use them everywhere
- Wrap the remaining client-compiled FSM members in #if SERVER
Fix cows not fleeing sometimes, add tests for bull and cows behaviour
Fix super fast acceleration on cows and sheep
Bull can kick and charge, protects the herd and moves between you and them. Can play toreador with the bull like with the croc. Herd sticks together when in danger instead of scattering. Fix cows decelerating instantly.
Generate and connect animation montages, add hurt and death behaviours + anims
New RagdollCopyTool, allows us to copy a ragdoll (joints/ragdolls/colliders) from one hierarchy to another
Setup cow corpse/ragdoll, joints are a horror show right now but at least it's setup
Should make copying the setup over to the other rigs faster
Fix NRE when a livestock animal dies
Add an overgrazing mechanic - if too many livestock eat the grass in an area in too short a time they will no longer be able to eat the grass (either take them to some fresh grass or use a trough)
If an animal is in an overgrazed area they will display a label on the popup when looked at
Adapted from the OverfishedArea mechanic, both systems now share a new DepletedArea class which shares the same grid
Updating skinning for bull/calf
New milk item placeholder
If an item id doesn't match the shortname, show an error in the inspector with a fix button
Hooked up fur shader toggle when shearing is ready
Added readytomilk and readytoshear debug commands
ai.showstate now parents it's Ddraw labels, looks a lot smoother
Animals can now eat from a trough, will prioritise that over grazing on grass
Renamed the "Horse Dung" item to just "Dung" (left the prefab/item def names referencing horse, no point changing those)
Hooked up male calf prefab/material
- updated Sheep LODs. added LODs for the Calf. assigned correct material to sheep lod in prefab.
Merge from main (will need codegen)
added more calf texture and material variants and an extra cow variant.
Added calf texture variations. set up with material variants.
AI select/move commands now work on multiple animals
Added ai.selectinrange convar
Added ai.deselectnpc convar
When ordering multiple NPC's to a location they all receive an offset so they don't all pathfind to the exact same spot
Hooked up sale info in-game UI
Create new SellAnimals and AnimalSalePreview dialogue panels
First one lists all nearby animals that are following the player (and can be sold) and the other shows what you will receive for selling that animal
No rewards hooked up yet, just panel flow
Stables_b is now playable in editor
Start of boilerplate animal selling mechanic, just set up NPC and basic conversation for now