branchrust_reboot/main/naval_update/naval_missionscancel
146 Commits over 153 Days - 0.04cph!
Fix pool leak from generating missions protobuf data
- Mission to kill the deep sea patrol boat scientists now also counts PT boat scientists
- Add an option for kills must be in a certain biome to kill objectives
- Disabled positions are exlusive flag from last tutorial mission, was causing it to fail to find a valid position
- Enable "drops loot" on deep sea mission treasure chest so that it actually drops its loot
- Treasure chest spawned in deep sea as part of mission no longer destroys loot as it now no longer has troll loot
- Update mission provider dialogue so it makes better sense now that you pick up something decent
- Make the treasure chest it's own prefab rather than a variant
Fix some weirdness with how missions were first getting loaded from player state on player entered game
Expand log if loaded objective count data is wrong
Fix issues with clearing missions when resetting player state
Fix error when speaking to a NPC to complete a mission if that mission has no rewards
General cleanup of associated code
Reduce default mission valid states work queue budget from 0.3ms to 0.1ms
Add some logs to help figure out why it's possible for an index to be out of bounds when accessing mission objectives
▄ ▊▅▄█▆ ██▋▅▋ █▋▊▅▌▋ ▊█▋▊█▍ ▆▅▅█▉▄▇ ▆▆▋▋ ▇▊▇▌▌▅▇▋ ▋▊▆▄ ▇▇▉█▋ ▌▆█▅ ▊▋▍ ▍▇▌ ▍▇▇ ▌█▋ ▍▆▉█▌▋▆ █▍▊▇▄ ▄▌▄ ▍▉▊ █▄▆▊▋▍█▌▉▇▇▇█▋▋▆▇▄ ▍▄ ▍▄▍▍ ▅▄▇ ▌▌▉▋▍▌▋██▉▇▉ ▊▍▄ ▅▍▅▉ ▅▉ ▇▌█▍
Merge from naval_missions
Fix potential key has already been added exception in Server_RequestValidMissionsUpdate
Also check the length of the static work queue before adding players to the collection of players requesting an update, instead of checking IsInvoking which checks an action only on that player
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