135,046 Commits over 4,293 Days - 1.31cph!
Bugfix: OcclusionGroupTests - fix TestVisibilityAfterMovementAway(oldLogic, Dead) tests
Updating subs when in limbo unsubs you from limbo group (funky, but legal). Old logic ends up with empty groups (okay for it), but new logic ends up with an invalid occl group
Tests: ran unit tests, 4 failures left
Bugfix: OcclusionGroupTests - fix TestVisibilityAfterMovementAway(*, OutsideCell) tests
- Handle the fact that new occlusion group logic eagerly cleans up occlusion groups when moving out of range, even before subscription tick
- Fix invalid assertion for old logic when p2 moves, before subscription tick
Tests: ran tests, now 8 failing (all related to Dead players)
Tests: OcclusionGroupTests - add TestVisibilityAfterMovementAway tests (32)
Tests: ran new unit tests, 14 fail
hooked up workshop source to sks skinnable
added night ambience sounds to the deep sea islands
fixed paintable reference on XL lightup frame referencing the whole prefab not just the lod0
Easel fix, small and medium ornate frame fix
Tests: OcclusionGroupTests - Visibility tests now update network groups and update subscriptions
This validates that subscription mechanism works on a basic level
Tests: all 42 unit tests pass
SKS skinnable , still need to set up workshop source
Boat ai will now only drive the boat to 90% of its max speed, this allows players to be able to go slightly faster than them and get away (setup with a convar as well)
Merge from artist_pack_dlc_old/paintball_overalls
Bugfix: OcclusionGroupTests - use AreEquivalent instead of AreEqual when comparing occlusion groups
Old logic and new logic end up with differently ordered occlusion groups - but in real world we don't care about order
Tests: all 42 unit tests pass
merge from fixed artist_pack_dlc_2 branch to newly constructed artist_pack_dlc
merge from fixed ornate frames branch
Fixed Cherry-picked branch
merge from artist_pack_dlc
Bugfix: Eagerly initialize occlusion groups when player spawns
When player's network group switches on spawn, it's treated as a bot, so doesn't create an occlusion group, but it might be awhile till next group switch, so player might have uninitialized occlusion group for a bit.
Tests: unit tests - 42/45 pass
boat_ai_patrol_aggression_fix -> main
Think time 10 seconds -> 5 seconds
boat_ai_patrol_aggression_fix -> main
Fix boat ai getting stuck patrolling oil rig and not actually engaging a player driving up
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
Bugfix: OcclusionGroupTests - handle dead players in limbo
All TestVisibility* tests pass for old logic
Tests: ran unit tests
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
Fix new scientists not playing static sound effect on death
Bugfix: OcclusionGroupTests - use RespawnAt to be put in the right position for RespawnFromDead players
This makes 3 unit tests pass
Tests: ran unit tests
Fix new Scientist using wrong headshots sounds
Prevent another "Look rotation viewing vector is zero" error
Fix scientist visual aiming being a bit offset, reduce snapping in aim/legs, has the side effect or currently removing the bend forward when sprinting
Bugfix: PlayerInventory - make GiveDefaultItems safe, report errors instead of NREing
- GameManager.InUnitTest is now available outside of UNITY_EDITOR as always-false const
Tests: more unit tests related to RespawnFromDead pass
added wip LNY26 items, set up skin assets with temporary descriptions and names, based off of existing items, updated manifest and engine.json
Update: OcclusionGroupTests - introduce another player spawn state, RespawnFromDead
- setup default itemList for ItemManager when running unit tests, as it's assumed to always be there
Another assumption that I had proved wrong - when players are spawned, they can stay dead (for example, game mode can prohibit spawning for a time)
Tests: ran unit tests, more borkage
improved 3p paintballgun reload anim
wood box icon updated, prefab updated, added panel title, updated localization
uv fix for bbq
proper rotation for bbq fbx and prefab
wood box game textures & material
Bugfix: OcclusionGroupTests - setup valid world bounds for unit tests
- added netgroup visibility precondition testing, if that fails, then the test setup is wrong
Empty bounds were causing group layers to sometimes become TutorialIsland, which break visibility
Tests: ran unit tests, more pass
removed hand fidgeting from vm paintball gun idle animation
Bugfix: OcclusionGroupTests - correct expectations of visibility
Tests: ran unit tests, more pass, but still mostly borked
Reworked Tropical1 island so that its seabed no longer sits deeper than the other islands.
No longer clips through the base plane, with under-world foliage looking all hacky and bad.
Tests: OcclusionGroupTests - add players that spawn as sleepers or dead
I assumed newly connected players always spawn as sleepers, but that's wrong - could explain an active NRE.
Tests: ran unit tests (most still borked)
Updating paddle anims to loop