feat: Implement core multiplayer lobby system with room management, player profiles, and game settings.

This commit is contained in:
Yogi Wiguna
2026-02-09 17:46:18 +08:00
parent bffa9474e9
commit 65d18d8d96
4 changed files with 24 additions and 7 deletions
+14 -6
View File
@@ -120,17 +120,25 @@ func load_stats() -> Dictionary:
# =============================================================================
func update_display_name(new_name: String) -> bool:
if not NakamaManager.session:
emit_signal("profile_update_failed", "Not authenticated")
return false
if new_name.strip_edges().is_empty():
emit_signal("profile_update_failed", "Display name cannot be empty")
return false
if new_name.length() > 50:
emit_signal("profile_update_failed", "Display name too long (max 50 characters)")
if new_name.length() > 6:
emit_signal("profile_update_failed", "Display name too long (max 6 characters)")
return false
var regex = RegEx.new()
regex.compile("^[A-Za-z]+$")
if not regex.search(new_name):
emit_signal("profile_update_failed", "Name must contain only letters")
return false
# Allow guest name updates locally
if not NakamaManager.session or AuthManager.is_guest:
profile["display_name"] = new_name
emit_signal("profile_updated")
return true
var result: NakamaAsyncResult = await NakamaManager.client.update_account_async(
NakamaManager.session,