feat: expand progression and multiplayer systems

Add named save slots, progression import/export, and a unified play flow. Add live friend requests, presence, invitations, and relationship controls without durable discovery-server social storage. Advance the network protocol with isolated channels, movement reconciliation, late-join recovery, fishing replication, and animation synchronization. Preserve per-species catch totals, refine generated-world startup and water recovery, and complete the related input and interface improvements.
This commit is contained in:
Alexander Sellite 2026-08-23 20:48:38 -04:00
parent 1db1a5b754
commit 3b84bfe3a0
97 changed files with 7869 additions and 982 deletions

View file

@ -284,10 +284,11 @@ func _validate_page() -> void:
)
fish_catch.ensure_identity()
inventory.add_catch(fish_catch)
collection.record_catch(fish_catch.fish_id, fish_catch.quality)
page.call("_select_entry", &"bluegill", &"bluegill")
await process_frame
assert(not _detail_text(page).contains("number owned"))
assert(_detail_text(page).contains("number caught\nunknown"))
assert(_detail_text(page).contains("number caught\n1"))
assert(_detail_text(page).contains("body of water\nfresh water"))
assert(
_detail_text(page).contains(
@ -412,6 +413,8 @@ func _validate_page() -> void:
assert(stats_view.visible)
var stats_text: String = _descendant_label_text(stats_view)
assert(stats_text.contains("catalog number"))
assert(stats_text.contains("number caught"))
assert(stats_text.contains("1"))
assert(stats_text.contains("seasons"))
assert(not stats_text.contains("number owned"))
_validate_overlay_fonts(stats_view)