Remove premature lobby start button
This commit is contained in:
@@ -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.
|
||||
- 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.
|
||||
- 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
|
||||
|
||||
@@ -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.
|
||||
|
||||
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:
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@ var lobby_members_container: GridContainer = null
|
||||
var lobby_title_label: Label = null
|
||||
var lobby_detail_label: Label = null
|
||||
var ready_button: Button = null
|
||||
var start_button: Button = null
|
||||
var fake_peer_button: Button = null
|
||||
var fake_ready_button: Button = null
|
||||
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)))
|
||||
_log("ready state from %s: %s" % [ready_sender, _ready_text(ready_sender)])
|
||||
_update_lobby_room()
|
||||
"lobby_start":
|
||||
_log("lobby start requested by %s: %s" % [sender, data])
|
||||
"run_started":
|
||||
_log("remote run started from %s: %s" % [sender, data.get("state", {})])
|
||||
"players_spawned":
|
||||
@@ -768,7 +765,6 @@ func _create_debug_panel() -> void:
|
||||
lobby_view.add_child(lobby_actions)
|
||||
|
||||
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_ready_button = _add_panel_button(lobby_actions, "Fake Ready", "toggle_fake_peer_ready")
|
||||
_add_panel_button(lobby_actions, "Ping", "send_ping")
|
||||
@@ -848,27 +844,6 @@ func toggle_local_ready() -> void:
|
||||
_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:
|
||||
if lobby_id == 0:
|
||||
_log("create a lobby before adding a fake peer")
|
||||
@@ -1119,8 +1094,6 @@ func _lobby_ready_summary() -> String:
|
||||
func _update_lobby_controls() -> void:
|
||||
if ready_button != null:
|
||||
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:
|
||||
fake_peer_button.text = "Remove Fake" if fake_peer_enabled else "Add Fake"
|
||||
if fake_ready_button != null:
|
||||
@@ -1189,7 +1162,6 @@ func _free_ui() -> void:
|
||||
lobby_title_label = null
|
||||
lobby_detail_label = null
|
||||
ready_button = null
|
||||
start_button = null
|
||||
fake_peer_button = null
|
||||
fake_ready_button = null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user