5,190 Commits over 823 Days - 0.26cph!
Fix issues preventing boats from reaquiring a target that they already have which was stopping them getting into 'stay close' mode
- Ensure target is cleared on ai death
- Fix Exit state being used in the wrong places, leaving AI without a state at all
boatai_better_patrol -> main
Fix the values so they can orbit smoothly
Fix some minor bugs with the new orbit state. Still needs some more work
Extra debugging
Simplify the state
Increase radius
New Orbit state. Used when protecting Oilrig and intecepting a ghost ship when the a crate is hacked:
- AI boats will move towards the target
- Reach a specific point then begin patroling around the target
- Try and maintain group cohesion
boatai_avoid_trigger_fix -> main
Avoidance cache gets stale quicker - should help prevent times where the boats will ignore avoid triggers
Turn off boat ai state sleeping
Helps make them way better behaviourly and since everything is budgetted it looks fine
50cal_fullammo_spawn -> main
Ensure 50 cal turrets start with max ammo
rhib_passenger_light_fix -> main
Ensure only drivers can toggle RHIB lights
boat_planner_new_icons -> main
Add Lewis's new icons for Boat Building Parts:
- Low Wall Barrier
- Low Cannon Wall
- Low Wall
deepsea_disable_drone -> main
Stop players from being able to attempt to buy from vending machines in the Deepsea
This was allowed before - resulting in drones getting stuck at the border
boatai_cleartarget_fix -> main
Fix second entry point for a recursive AI state in OnTargetClaimAvailable
Fully rely on PursuePlayer to do a sucessful switch over of target/state logic.
boatai_clartarget_fix -> main
Only let the claimant boat give up the target.
Behaviour isn't as good but prevents the recursive nature of forwarding claims.
boatai_targeting_bugs -> main
Fix various Boat AI Targeting bugs including:
- Boats not properly capturing targets whilst on boats/other things
- Boats not properly releasing targets whilst sleeping/no players nearby
- Boats not engaging with targets in certain circumstances
- Not releasing a target if that target went to the deepsea whilst being targetting in the main world
autoturret_improvements -> main
autoturret_improvements -> main
Fixed turrets idle tick freezing turrets vec aim dir to be (0,1,0) until the first target or player appeared nearby
Run AutoTurret tests at 10k units out of origin so the new idle tick will break in testing.
main -> autoturret_improvements
turret_ai_dotproduct_fix -> main
Fixed ai turrets (on pt boats) firing off into the distance when an actual target is nearby
boatai_singlegroup_attacks -> main
When looking for scientist boat targets: only target a player if they aren't targetted by another group
This stops players travelling through the middle of the deepsea and grabbing every boat ai group at once
ptboat_mountedturret_improvements
- Fixed dryfire sound not working
- Fixed IsReloading flag being set to false too quickly
- Fixed ammo phrase compile bug
Reimplement
138911 (turret dryfire)
boatai_leftover_logs_2 -> main
Move development build logs into a convar instead (to give us more control of when we want to print)
Codegen
ballista_mounting_fix -> main
Fixed mounted ballistas flipping the player view when mounting.
This was caused by a change on cannons (to support parented cannons on boats).
Now only apply the parenting logic to cannons and not the regular Ballista entity.
autoturret_improvements -> main (passed unit tests)
Since we are no longer forcing aim direction packets constantly we need to save/load the aim direction as you would expect.
Setup new overloads to BaseNetworkable GetConnections methods - this allows us to pass in the existing group of an object and avoid doing an expensive GetGroup() calculation.
AutoTurret's will now only run idle tick provided they have a connections nearby. This means auto turrets with no one around wont do their rotations left and right
Move auto turret idle calculations back to the server:
This was required since target acquisition uses the current angle of the turet and this will need to be synced between the client + server.
Having the client do it would result in mismatches.
travelling_vendor_spawn_prechecks -> main
Don't try to spawn a Travelling Vendor if the map isn't big enough to start with