feat: Implement core multiplayer features including user authentication, profile management, lobby, game mode managers, and leaderboard.

This commit is contained in:
2026-03-12 03:55:20 +08:00
parent 650d241a72
commit 4f6783b468
13 changed files with 1151 additions and 31 deletions
+84
View File
@@ -0,0 +1,84 @@
[gd_scene format=3 uid="uid://c3q4w3j6e7y8u"]
[ext_resource type="Script" uid="uid://d1e2f3g4h5i6j" path="res://scripts/ui/leaderboard_panel.gd" id="1"]
[ext_resource type="Theme" uid="uid://da337sh5qxi0s" path="res://assets/themes/ui_theme.tres" id="2"]
[node name="LeaderboardPanel" type="PanelContainer"]
custom_minimum_size = Vector2(500, 400)
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -250.0
offset_top = -200.0
offset_right = 250.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2")
script = ExtResource("1")
[node name="VBox" type="VBoxContainer" parent="."]
layout_mode = 2
theme_override_constants/separation = 12
[node name="Header" type="HBoxContainer" parent="VBox"]
layout_mode = 2
[node name="Title" type="Label" parent="VBox/Header"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_colors/font_color = Color(0.647, 0.996, 0.224, 1)
theme_override_font_sizes/font_size = 24
text = "LEADERBOARD"
horizontal_alignment = 1
[node name="CloseBtn" type="Button" parent="VBox/Header"]
unique_name_in_owner = true
custom_minimum_size = Vector2(32, 32)
layout_mode = 2
text = "X"
[node name="SortTabs" type="HBoxContainer" parent="VBox"]
layout_mode = 2
theme_override_constants/separation = 8
alignment = 1
[node name="SortScoreBtn" type="Button" parent="VBox/SortTabs"]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
text = "High Score"
[node name="SortWinRateBtn" type="Button" parent="VBox/SortTabs"]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
text = "Win Rate"
[node name="SortGamesBtn" type="Button" parent="VBox/SortTabs"]
unique_name_in_owner = true
custom_minimum_size = Vector2(120, 36)
layout_mode = 2
text = "Games Played"
[node name="HSeparator" type="HSeparator" parent="VBox"]
layout_mode = 2
[node name="ScrollContainer" type="ScrollContainer" parent="VBox"]
layout_mode = 2
size_flags_vertical = 3
[node name="LeaderboardList" type="VBoxContainer" parent="VBox/ScrollContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="StatusLabel" type="Label" parent="VBox"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.69, 0.529, 0.357, 1)
text = "Loading data..."
horizontal_alignment = 1
+18
View File
@@ -208,6 +208,24 @@ theme_override_font_sizes/font_size = 11
text = "Min 8 characters, include number and symbol"
horizontal_alignment = 1
[node name="RegCaptchaContainer" type="VBoxContainer" parent="CenterContainer/RegistrationPanel/VBox"]
layout_mode = 2
theme_override_constants/separation = 4
[node name="RegCaptchaQuestion" type="Label" parent="CenterContainer/RegistrationPanel/VBox/RegCaptchaContainer"]
unique_name_in_owner = true
layout_mode = 2
theme_override_colors/font_color = Color(0.647, 0.996, 0.224, 1)
text = "Security Check: 5 + 7 = ?"
horizontal_alignment = 1
[node name="RegCaptchaInput" type="LineEdit" parent="CenterContainer/RegistrationPanel/VBox/RegCaptchaContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 44)
layout_mode = 2
placeholder_text = "Answer"
alignment = 1
[node name="RegisterButton" type="Button" parent="CenterContainer/RegistrationPanel/VBox"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 48)