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:
parent
1db1a5b754
commit
3b84bfe3a0
97 changed files with 7869 additions and 982 deletions
|
|
@ -1,4 +1,4 @@
|
|||
[gd_scene load_steps=24 format=3]
|
||||
[gd_scene load_steps=25 format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://ui/title_screen.gd" id="1_script"]
|
||||
[ext_resource type="Theme" path="res://ui/game_theme.tres" id="2_theme"]
|
||||
|
|
@ -20,6 +20,7 @@
|
|||
[ext_resource type="Texture2D" path="res://ui/icons/main_menu/credits.png" id="18_credits"]
|
||||
[ext_resource type="Texture2D" path="res://ui/icons/main_menu/delete_save.png" id="19_delete_save"]
|
||||
[ext_resource type="PackedScene" path="res://ui/new_game_setup_page.tscn" id="20_new_game_setup"]
|
||||
[ext_resource type="PackedScene" path="res://ui/save_slots_page.tscn" id="21_save_slots"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_title_water"]
|
||||
shader = ExtResource("4_water_shader")
|
||||
|
|
@ -260,21 +261,21 @@ offset_bottom = 318.0
|
|||
script = ExtResource("8_bubble_cluster")
|
||||
profile = ExtResource("9_bubble_profile")
|
||||
|
||||
[node name="ContinueButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
[node name="PlayButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 123.0
|
||||
offset_top = 86.0
|
||||
offset_right = 307.0
|
||||
offset_bottom = 264.0
|
||||
offset_left = 106.0
|
||||
offset_top = 71.0
|
||||
offset_right = 290.0
|
||||
offset_bottom = 249.0
|
||||
texture_filter = 1
|
||||
icon = ExtResource("16_continue")
|
||||
tooltip_text = "continue"
|
||||
accessibility_name = "continue"
|
||||
tooltip_text = "play"
|
||||
accessibility_name = "play"
|
||||
script = ExtResource("7_bubble_button")
|
||||
profile = ExtResource("9_bubble_profile")
|
||||
neutral_size = Vector2(184, 178)
|
||||
desktop_anchor = Vector2(215, 175)
|
||||
compact_anchor = Vector2(215, 175)
|
||||
desktop_anchor = Vector2(198, 160)
|
||||
compact_anchor = Vector2(198, 164)
|
||||
minimum_font_size = 19
|
||||
maximum_font_size = 30
|
||||
horizontal_amplitude = 1.8
|
||||
|
|
@ -285,6 +286,8 @@ deformation_period = 6.7
|
|||
|
||||
[node name="NewGameButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
focus_mode = 0
|
||||
offset_left = 42.0
|
||||
offset_top = 4.0
|
||||
offset_right = 170.0
|
||||
|
|
@ -310,18 +313,18 @@ deformation_period = 5.9
|
|||
|
||||
[node name="SettingsButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 264.0
|
||||
offset_top = 17.0
|
||||
offset_right = 384.0
|
||||
offset_bottom = 133.0
|
||||
offset_left = 254.0
|
||||
offset_top = 12.0
|
||||
offset_right = 374.0
|
||||
offset_bottom = 128.0
|
||||
texture_filter = 1
|
||||
icon = ExtResource("13_settings_dark")
|
||||
tooltip_text = "settings"
|
||||
accessibility_name = "settings"
|
||||
script = ExtResource("7_bubble_button")
|
||||
profile = ExtResource("9_bubble_profile")
|
||||
desktop_anchor = Vector2(324, 75)
|
||||
compact_anchor = Vector2(324, 68)
|
||||
desktop_anchor = Vector2(314, 70)
|
||||
compact_anchor = Vector2(333, 75)
|
||||
compact_minimum_size = Vector2(94, 90)
|
||||
minimum_font_size = 15
|
||||
maximum_font_size = 22
|
||||
|
|
@ -332,10 +335,10 @@ deformation_period = 6.3
|
|||
|
||||
[node name="CreditsButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 330.0
|
||||
offset_top = 125.0
|
||||
offset_right = 414.0
|
||||
offset_bottom = 207.0
|
||||
offset_left = 54.0
|
||||
offset_top = 209.0
|
||||
offset_right = 138.0
|
||||
offset_bottom = 291.0
|
||||
texture_filter = 1
|
||||
icon = ExtResource("18_credits")
|
||||
tooltip_text = "credits"
|
||||
|
|
@ -343,8 +346,8 @@ accessibility_name = "credits"
|
|||
script = ExtResource("7_bubble_button")
|
||||
profile = ExtResource("9_bubble_profile")
|
||||
neutral_size = Vector2(84, 82)
|
||||
desktop_anchor = Vector2(372, 166)
|
||||
compact_anchor = Vector2(372, 166)
|
||||
desktop_anchor = Vector2(96, 250)
|
||||
compact_anchor = Vector2(82, 258)
|
||||
compact_minimum_size = Vector2(62, 62)
|
||||
minimum_font_size = 12
|
||||
maximum_font_size = 17
|
||||
|
|
@ -357,10 +360,10 @@ deformation_period = 5.6
|
|||
|
||||
[node name="JoinGameButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 126.0
|
||||
offset_top = 224.0
|
||||
offset_right = 248.0
|
||||
offset_bottom = 342.0
|
||||
offset_left = 21.0
|
||||
offset_top = 11.0
|
||||
offset_right = 143.0
|
||||
offset_bottom = 129.0
|
||||
texture_filter = 1
|
||||
icon = ExtResource("12_online_dark")
|
||||
tooltip_text = "join game"
|
||||
|
|
@ -368,8 +371,8 @@ accessibility_name = "join game"
|
|||
script = ExtResource("7_bubble_button")
|
||||
profile = ExtResource("9_bubble_profile")
|
||||
neutral_size = Vector2(122, 118)
|
||||
desktop_anchor = Vector2(187, 268)
|
||||
compact_anchor = Vector2(187, 268)
|
||||
desktop_anchor = Vector2(82, 70)
|
||||
compact_anchor = Vector2(63, 75)
|
||||
compact_minimum_size = Vector2(82, 80)
|
||||
minimum_font_size = 15
|
||||
maximum_font_size = 22
|
||||
|
|
@ -382,6 +385,8 @@ deformation_period = 5.7
|
|||
|
||||
[node name="DeleteSaveButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
focus_mode = 0
|
||||
offset_left = -11.0
|
||||
offset_top = 122.0
|
||||
offset_right = 123.0
|
||||
|
|
@ -406,10 +411,10 @@ deformation_period = 5.4
|
|||
|
||||
[node name="QuitButton" type="Button" parent="ResponsiveTitleStage/TitlePresentationScaleRoot/Center/MainContent/ButtonCenter/BubbleLayoutSlot/BubbleMotionRoot/BubbleField"]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 275.0
|
||||
offset_top = 217.0
|
||||
offset_right = 369.0
|
||||
offset_bottom = 309.0
|
||||
offset_left = 255.0
|
||||
offset_top = 204.0
|
||||
offset_right = 349.0
|
||||
offset_bottom = 296.0
|
||||
texture_filter = 1
|
||||
icon = ExtResource("14_x_dark")
|
||||
tooltip_text = "quit"
|
||||
|
|
@ -417,8 +422,8 @@ accessibility_name = "quit"
|
|||
script = ExtResource("7_bubble_button")
|
||||
profile = ExtResource("9_bubble_profile")
|
||||
neutral_size = Vector2(94, 92)
|
||||
desktop_anchor = Vector2(322, 263)
|
||||
compact_anchor = Vector2(322, 263)
|
||||
desktop_anchor = Vector2(302, 250)
|
||||
compact_anchor = Vector2(317, 254)
|
||||
compact_minimum_size = Vector2(68, 68)
|
||||
minimum_font_size = 14
|
||||
maximum_font_size = 18
|
||||
|
|
@ -497,3 +502,13 @@ anchor_right = 1.0
|
|||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="SaveSlotsPage" parent="ResponsiveTitleStage/TitlePresentationScaleRoot" instance=ExtResource("21_save_slots")]
|
||||
unique_name_in_owner = true
|
||||
z_index = 220
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue