261 Commits over 122 Days - 0.09cph!
Merge from floating_cities
Adjust floating city mission provider transform on Casino Barge
Run S2P for floating city scenes
Merge from naval_missions
Run S2P on a bunch of scenes due to updated NPC prefabs
Merge from naval_missions
Deep sea prefab variants missing from manifest entity list
- Setup metal detector source spawn points for rest of the deep sea islands
- Remove NPC name from ConversationData and added to NPCTalking, prevents some NPC's from having names defined in different places
- Made placeholder floating city mission provider look not placeholder
- Improved how we retrieve conversation data node names
Merge from horse_medsyringe_healing
Fix horse buff icons not disappearing on the client when the modifier gets removed
Rebalance speed boost following feedback
- Fix issue where loaded mission data could retrieve an invalid active mission index
- Improvements for how map and compass mission markers handle deep sea locations
- Various bits of cleanup to places retrieving the active mission instance from a player
Merge from horse_medsyringe_healing
- Fix horse health not updating correctly in main vitals HUD
- Horse health now gets a special horse icon in the vitals HUD. Cog icon is still used for other vehicles
- Fix medical syringe showing horse speed boost as an incorrect percentage, now shows extra km/h
Merge from horse_medsyringe_healing
Revert transform and collider changes that somehow snuck back in
Fix compile errors and reduce speed gained
- Horses can now be healed with medical syringes, in the same way we can heal other players
- Medical syringes act as performance enhancing drugs for horses, giving a temporary boost to max gallop speed and a small replenishment of stamina (horse drugs are in Rust now)
- Bandages do not work on horses - only syringes
- All of above subject to change
- Modified MedicalTool so that it can work for other entity types other than players. Added IMedicalToolTarget which we can attach to entities which we want to targetable, and handling per entity is now done on the entity rather than on the MedicalTool
- Add TryGetOwnerPlayer to HeldEntity and TryGetEntity to BaseNetworkable as slightly neater ways of calling their respective methods
Make floating city delivery mission non repeatable
Change phrase drawer colour to be transparent so it's more readable in certain circumstances
- Add deep sea island treasure hunt mission, given from Vagabond in outpost
- Setup metal detector sources for deep sea islands, only setup for tropical1 for now. Metal detector sources in the deep sea have their own loot list
- Add IsValidSource to IMetalDetectable. Useful for defining spawned sources which can only be detected by players under certain circumstsances
- Add 'soft completed' flag to objective statuses as an additional way of handling objective progress
- Add ability to hide objective progress in mission objectives todo HUD
Merge from naval_missions
Codegen, rebuild phrases, update manifest
Run FishingVillageB S2P
- Add support for incremental bonus rewards, to dispense a reward depending on how close we got to the objective target. Setup for underwater labs bonus objective
- Add option for distance threshold for kills from team members on KillEntity objective types. Enabled this and set to 50m for the scientist boat hunt mission objective
- Decreased scientist boat hunt target amount to 8 and updated mission phrases to be specific to RHIB
- Increased wood item amount for floating city wood delivery mission
- Add ability to hide mission markers on map and compass per objective. Set this up for underwater labs mission, so compass marker disappears whilst within the vicinity of the lab. Marker stays visible on map to indicate the general mission area
- Modify mission location to belong to each objective rather than a single mission location belonging to the mission instance to enable having more than one marker for a mission active at once (not fully setup yet)
- Add some client equivalent methods on missions for Think and OnObjectiveStart. Did not end up using these but leaving them as could be useful
- Separate out the methods for flagging missions protobuf data as dirty and saving that data. Saved a few instances where we were uneccessarily generating and sending data more than once in a server update cycle
- Made ObjectiveStatus poolable and removed associated allocations
- Fix kill entity mission objectives being incremented twice if kills from team members are enabled
- Fix mission fail timer not using Unix time
- Bump network protocol due to updated protobuf
Chainsword engine now always starts, matches base chainsaw
Commit progress
- Setup bonus objective for underwater labs mission
- Add persistent mission entities to MissionInstance, for tracking entities which exist outside of the mission and are not spawned as part of the mission. Entity info added alongside spawned mission entities in mission protobuf data
- Small improvements for Divemaster and Hunter conversation dialogue
- Fix NRE when opening dialogue graphs which contain speech nodes with several fail conditions
- Small improvement for displaying mission list node
- Add attribute and property drawer for ConversationData to display button to open graph view where a ConversationData asset is displayed in the inspector
- Improved BaseMission editor inspector for objectives
- String optimisation for MissionsHUDToDo
- Conversation panel size no longer appears to quickly change after pressing a response and then waiting for server response
- Changes to how conversation data is saved from the dialogue editor graph
- Fix oil rig mission item shortname
- Dialogue options populated through a mission list node now display a mission icon next to the dialogue choice, indicating the option is a mission name. Added flex elements to dialogue option UI to support this
- Fixed issue where displayed dialogue option number could be wrong when displaying a mission list node
- Can now talk to NPC's whilst using noclip
Post merge fixes:
- Fix phrase conflict
- Rebuild manifest
Fixes for Lumberjack and Outpost scientist NPC's
- Add mission relating to underwater labs, given by fishing village Divemaster
- Some small improvements to existing Divemaster dialogue
- Fix dialogue graph node connections not being deleted with the node
- Add string identifier field to mission event payload
- Dialogue graph now saves before closing due to an assembly reload
- Fix NPCMissionProvider releasing the wrong list to pool
Some fixes for the boombox as it relates to the new mission:
- Boombox play phrase no longer refers to a cassette tape if there is no valid tape inserted
- Microoptimizations to boombox distance checks
Set boat scientist mission hunt objective to only progress if the objective has started
Fix potential index out of range exception when displaying mission rewards during conversation
Fix mission item pickup being setup wrong on small oil rig
Merge from naval_missions
Better patch solution that should prevent potential "Attempted to read past the end of the BufferStream" exceptions
Add ServerVar 'global.legacymonumentnotifications' for forcing old monument notification behaviour (UI message, no sounds)
Reapply oilrig monument changes for mission