branchrust_reboot/main/naval_update/naval_missionscancel
131 Commits over 122 Days - 0.04cph!
Codegen
Increase max distance on tutorial mission 8 position generator
- Always check if a player can accept the mission before assigning it
- MissionInstance now saves the provider as type IMissionProvider rather than BaseEntity
- Fixes for registering tutorial pings on SpeakWith objective type
- Don't try to save the dialogue graph if in play mode
Remove garbage allocations from BaseMission.id property
Codegen
- Don't process which missions are available for a player if they have an active mission, or if they are talking to an NPC to complete a mission
- Request a missions update if the deep sea opens/closes whilst our map is open, not only when the deep sea opens
- Other minor fixes
Requests for what missions are valid on the server are now run on a work queue
- Fix some issues with position generators and exclusive mission points
- Fix issues relating to player state missions data and resetting player state
Optimisation for EnvironmentManager.Check
- No longer converts the physics overlap collider buffer to a list
- Returns true as soon as a valid environment volume collider is found rather than always iterating through all colliders
Commit progress on mission "can accept" improvements
- Split up work between client and server. Server checks if missions are valid, this result is the same for all players and does not need to be regenerated at the request of each player. Clients use this result + checking themselves if they could accept this mission for things like mission provider map marker visibility.
- Removed "relative to" position generator type "player" as this no longer works for generating positions in a player agnostic way before missions have been accepted. Replaced each case where this was used in mission position generators, all missions should still be functional as before using alternative position types.
- Modify blocked points so that they work properly with positions being generated in advance of missions being accepted.
- Misc minor mission related optimisations.
TLDR: Restoring mission provider map marker functionality whilst also fixing problems of these being misleading due to discrepancies between the client and server for if missions can be accepted.
Fixes for battery hunt mission
Remove repeated allocations from getting missions from the mission manifest
Dialogue adjustment for Floating Citizen
Dialogue fixes for Lumberjack and Floating Citizen
Remove time limit from boat scientist hunt mission
Fix
138975 2.0
Fix leaky lists on the server relating to missions
Don't error log about out of bounds if mission has no rewards, just return
- Don't process 'kill entity' mission events if the kill came from a suicide
- When processing kill entity mission events replace the checks for InATeam() (which was checking current team ID value) with a check that the current team is not null
- Add a guard and warning log to InATeam() in case current team ID is valid but Team is null. After removing my usages there is nothing else presently using this function
- Improve objective resetting for acquire item objectives for scientist safe zone spawn unlock and oil rig raid missions
- Also fixed objective map and compass markers for those missions not working as they should
- Fix being able to focus on invisible objective map markers
Tropical1 terrain colliders are now on the terrain layer
Objectives that take you into the deep sea are now no longer valid if the deep sea is closed, preventing you from starting these missions until the deep sea opens again.
Deep sea islands objective map marker is now invisible, it wasn't meant to be pointing you to a specific island anyway.
- Fix tutorial conversations and mission progression
- Fix mission discrepancy warning log which would appear during tutorial
- Fix potential out of bounds exception when accessing mission rewards
Small improvements to air wolf vendor conversation and some more english dialogue string fixes
NPC's can now have dialogue when you go to talk to them to complete missions.
Set this up for all the new naval missions.
Conversations now exit upon pressing the button to complete a mission.
Rename new missions to have helpful prefixes
Fix some dialogue options going to the wrong resulting node upon being pressed (bug introduced in
137685 with fix for dialogue options showing the wrong response number)
- Boat vendor on floating cities no longer sells submarines
- Misc improvements to boat vendor dialogue tree
- English string localization fixes for various bits of NPC dialogue
Hide 'Condition Amount' field in blackboard in conversation editor for some condition types for which this is not relevant
Remove accidentally comitted test script
Make deepSeaFogImages non serialized in BasePlayer (was only a serialized field on the client)
Fix boat scientist hunt mission completing if you talked to the mission provider before killing enough scientists
Underwater labs mission now checks that there are enough boomboxes in a lab for a lab to be valid.
Remove hacky position generators for deep sea, these were not actually generating any positions and just acting as validators that deep sea stuff exists. Better way of checking this now.
Fixes and optimisations for can accept mission checks
Removed mission position generator validation method, now just uses the position generation method (both methods were doing very similar things) and stores these generated points for if we eventually accept this mission.
Check if objectives are valid before proceeding. Objectives can now use those generated points to check if a mission is valid before the mission has started.