Remove premature lobby start button

This commit is contained in:
Kroonk
2026-05-23 09:47:02 +02:00
parent 01cb2e8fdf
commit 4becfc0baa
3 changed files with 3 additions and 31 deletions

View File

@@ -15,7 +15,7 @@ Der aktuelle Stand ist bewusst ein technischer Prototyp. Es ist noch keine ferti
- Run-Start, Spieler-Spawn und einfache Player-Snapshots werden geloggt bzw. fuer P2P-Versand vorbereitet. - Run-Start, Spieler-Spawn und einfache Player-Snapshots werden geloggt bzw. fuer P2P-Versand vorbereitet.
- Das Brogether-Modal ist standardmaessig versteckt und kann ueber das Hauptmenue oder `F5` geoeffnet werden. - Das Brogether-Modal ist standardmaessig versteckt und kann ueber das Hauptmenue oder `F5` geoeffnet werden.
- Die UI enthaelt einen ersten Lobby-Browser, Lobby-Erstellung mit optionalem Passwort und einen Wartebereich mit Spielerkacheln. - Die UI enthaelt einen ersten Lobby-Browser, Lobby-Erstellung mit optionalem Passwort und einen Wartebereich mit Spielerkacheln.
- Der Wartebereich hat Ready-/Start-Status und einen Fake-Peer-Modus fuer lokale Tests ohne zweiten Client. - Der Wartebereich hat Ready-Status und einen Fake-Peer-Modus fuer lokale Tests ohne zweiten Client.
## Was noch nicht fertig ist ## Was noch nicht fertig ist
@@ -74,7 +74,7 @@ F11 Lokalen Loopback-Test starten
Das Brogether-Modal enthaelt Buttons fuer Host, Join, Leave und Ping. Es ist fuer die naechsten Zwei-Client-Tests gedacht und ersetzt die meisten Hotkey-Aktionen. Passwort-Lobbys sind aktuell eine Mod-seitige Zugangskontrolle: die Lobby bleibt sichtbar, der Join-Button prueft aber das Passwort, bevor Brogether beitritt. Das Brogether-Modal enthaelt Buttons fuer Host, Join, Leave und Ping. Es ist fuer die naechsten Zwei-Client-Tests gedacht und ersetzt die meisten Hotkey-Aktionen. Passwort-Lobbys sind aktuell eine Mod-seitige Zugangskontrolle: die Lobby bleibt sichtbar, der Join-Button prueft aber das Passwort, bevor Brogether beitritt.
Fuer Tests ohne zweiten Steam-Client kann im Wartebereich `Add Fake` genutzt werden. Das fuegt einen lokalen Test-Peer hinzu, dessen Ready-Status mit `Fake Ready` umgeschaltet werden kann. `Start` wird nur fuer den Host aktiv, wenn alle sichtbaren Lobby-Mitglieder ready sind; aktuell schreibt Start nur ein Lobby-Protokollereignis ins Log und startet noch keinen echten Run. Fuer Tests ohne zweiten Steam-Client kann im Wartebereich `Add Fake` genutzt werden. Das fuegt einen lokalen Test-Peer hinzu, dessen Ready-Status mit `Fake Ready` umgeschaltet werden kann. Einen eigenen Brogether-Startbutton gibt es bewusst noch nicht; bis die echte Run-Synchronisation steht, startet man Brotato weiterhin ueber den normalen Spielablauf.
Brogether schreibt ein eigenes Log nach: Brogether schreibt ein eigenes Log nach:

View File

@@ -31,7 +31,7 @@ Brogether selbst bleibt danach unsichtbar, bis es geoeffnet wird. Im Hauptmenue
Die UI hat jetzt einen ersten Lobby-Browser. Dort kann man Lobbys suchen, eine Lobby mit optionalem Passwort erstellen und einer ausgewaehlten Lobby beitreten. Nach Host/Join wechselt Brogether in einen Wartebereich mit Steam-Namen und statischen Initialen-Avataren fuer die Lobby-Spieler. Die UI hat jetzt einen ersten Lobby-Browser. Dort kann man Lobbys suchen, eine Lobby mit optionalem Passwort erstellen und einer ausgewaehlten Lobby beitreten. Nach Host/Join wechselt Brogether in einen Wartebereich mit Steam-Namen und statischen Initialen-Avataren fuer die Lobby-Spieler.
Ohne zweiten Client kann im Wartebereich `Add Fake` gedrueckt werden. Dadurch erscheint ein lokaler Test-Peer. Mit `Ready` und `Fake Ready` lassen sich beide Ready-Zustaende pruefen; `Start` wird beim Host erst aktiv, wenn alle sichtbaren Mitglieder ready sind. Ohne zweiten Client kann im Wartebereich `Add Fake` gedrueckt werden. Dadurch erscheint ein lokaler Test-Peer. Mit `Ready` und `Fake Ready` lassen sich beide Ready-Zustaende pruefen. Einen eigenen Brogether-Startbutton gibt es erst, wenn die echte Run-Synchronisation dran ist; bis dahin nutzt man Brotatos normalen Startablauf.
## Debug-Hotkeys im Spiel ## Debug-Hotkeys im Spiel

View File

@@ -38,7 +38,6 @@ var lobby_members_container: GridContainer = null
var lobby_title_label: Label = null var lobby_title_label: Label = null
var lobby_detail_label: Label = null var lobby_detail_label: Label = null
var ready_button: Button = null var ready_button: Button = null
var start_button: Button = null
var fake_peer_button: Button = null var fake_peer_button: Button = null
var fake_ready_button: Button = null var fake_ready_button: Button = null
var status_time_left := 0.0 var status_time_left := 0.0
@@ -494,8 +493,6 @@ func _handle_packet(sender: int, data, is_loopback: bool = false) -> void:
_set_member_ready(ready_sender, bool(data.get("ready", false))) _set_member_ready(ready_sender, bool(data.get("ready", false)))
_log("ready state from %s: %s" % [ready_sender, _ready_text(ready_sender)]) _log("ready state from %s: %s" % [ready_sender, _ready_text(ready_sender)])
_update_lobby_room() _update_lobby_room()
"lobby_start":
_log("lobby start requested by %s: %s" % [sender, data])
"run_started": "run_started":
_log("remote run started from %s: %s" % [sender, data.get("state", {})]) _log("remote run started from %s: %s" % [sender, data.get("state", {})])
"players_spawned": "players_spawned":
@@ -768,7 +765,6 @@ func _create_debug_panel() -> void:
lobby_view.add_child(lobby_actions) lobby_view.add_child(lobby_actions)
ready_button = _add_panel_button(lobby_actions, "Ready", "toggle_local_ready") ready_button = _add_panel_button(lobby_actions, "Ready", "toggle_local_ready")
start_button = _add_panel_button(lobby_actions, "Start", "request_lobby_start")
fake_peer_button = _add_panel_button(lobby_actions, "Fake Peer", "toggle_fake_peer") fake_peer_button = _add_panel_button(lobby_actions, "Fake Peer", "toggle_fake_peer")
fake_ready_button = _add_panel_button(lobby_actions, "Fake Ready", "toggle_fake_peer_ready") fake_ready_button = _add_panel_button(lobby_actions, "Fake Ready", "toggle_fake_peer_ready")
_add_panel_button(lobby_actions, "Ping", "send_ping") _add_panel_button(lobby_actions, "Ping", "send_ping")
@@ -848,27 +844,6 @@ func toggle_local_ready() -> void:
_update_lobby_room() _update_lobby_room()
func request_lobby_start() -> void:
if lobby_id == 0:
_log("create or join a lobby before starting")
return
if not is_host:
_log("only the lobby host can start")
return
if not _all_members_ready():
_log("cannot start: not all lobby members are ready")
return
var start_packet := {
"type": "lobby_start",
"from": steam_id,
"lobby_id": str(lobby_id),
"member_count": lobby_members.size(),
"fake_peer_enabled": fake_peer_enabled
}
_log("lobby start ready: %s" % start_packet)
_send_p2p_packet(0, start_packet)
func toggle_fake_peer() -> void: func toggle_fake_peer() -> void:
if lobby_id == 0: if lobby_id == 0:
_log("create a lobby before adding a fake peer") _log("create a lobby before adding a fake peer")
@@ -1119,8 +1094,6 @@ func _lobby_ready_summary() -> String:
func _update_lobby_controls() -> void: func _update_lobby_controls() -> void:
if ready_button != null: if ready_button != null:
ready_button.text = "Unready" if _is_member_ready(steam_id) else "Ready" ready_button.text = "Unready" if _is_member_ready(steam_id) else "Ready"
if start_button != null:
start_button.disabled = not is_host or not _all_members_ready()
if fake_peer_button != null: if fake_peer_button != null:
fake_peer_button.text = "Remove Fake" if fake_peer_enabled else "Add Fake" fake_peer_button.text = "Remove Fake" if fake_peer_enabled else "Add Fake"
if fake_ready_button != null: if fake_ready_button != null:
@@ -1189,7 +1162,6 @@ func _free_ui() -> void:
lobby_title_label = null lobby_title_label = null
lobby_detail_label = null lobby_detail_label = null
ready_button = null ready_button = null
start_button = null
fake_peer_button = null fake_peer_button = null
fake_ready_button = null fake_ready_button = null