feat: implement core lobby management system with Nakama integration, player state, and game settings.
This commit is contained in:
@@ -186,6 +186,7 @@ func _ready():
|
||||
LobbyManager.room_list_updated.connect(_on_room_list_updated)
|
||||
LobbyManager.room_joined.connect(_on_room_joined)
|
||||
LobbyManager.room_left.connect(_on_room_left)
|
||||
LobbyManager.host_disconnected.connect(_on_host_disconnected)
|
||||
LobbyManager.player_joined.connect(_on_player_joined)
|
||||
LobbyManager.player_left.connect(_on_player_left)
|
||||
LobbyManager.ready_state_changed.connect(_on_ready_state_changed)
|
||||
@@ -216,6 +217,11 @@ func _ready():
|
||||
|
||||
# Show main menu initially
|
||||
_show_panel("main_menu")
|
||||
|
||||
# Check for disconnection reason from manager
|
||||
if not LobbyManager.disconnect_reason.is_empty():
|
||||
connection_status.text = LobbyManager.disconnect_reason
|
||||
LobbyManager.disconnect_reason = ""
|
||||
|
||||
# =============================================================================
|
||||
# Setup
|
||||
@@ -672,6 +678,10 @@ func _on_room_left() -> void:
|
||||
_show_panel("main_menu")
|
||||
connection_status.text = "Left room"
|
||||
|
||||
func _on_host_disconnected() -> void:
|
||||
_show_panel("main_menu")
|
||||
connection_status.text = "Host disconnected. Match terminated."
|
||||
|
||||
func _on_player_joined(player_data: Dictionary) -> void:
|
||||
_update_player_slots()
|
||||
status_label.text = "%s joined!" % player_data.get("name", "Player")
|
||||
|
||||
Reference in New Issue
Block a user