update
This commit is contained in:
@@ -13,6 +13,9 @@ extends Node
|
||||
signal lobby_changed
|
||||
signal game_started(code: String, cfg: Dictionary)
|
||||
signal room_closed(code: String)
|
||||
## Nur Server: jemand will in eine laufende Partie zurück. Der Raum prüft,
|
||||
## ob es einen verwaisten Platz mit dem Namen gibt.
|
||||
signal rejoin_requested(code: String, peer: int, pname: String)
|
||||
signal connection_failed(reason: String)
|
||||
signal server_closed
|
||||
|
||||
@@ -172,7 +175,9 @@ func _req_join(code: String, pname: String) -> void:
|
||||
_abgewiesen.rpc_id(id, "Den Code %s gibt es nicht." % code)
|
||||
return
|
||||
if raum.in_game:
|
||||
_abgewiesen.rpc_id(id, "In dem Raum läuft schon eine Partie.")
|
||||
# Kein Neuling, aber vielleicht ein Rückkehrer: dessen Platz spielt
|
||||
# gerade ein Bot weiter. Der Raum entscheidet.
|
||||
rejoin_requested.emit(code, id, pname.substr(0, 16))
|
||||
return
|
||||
if raum.lobby.size() >= MAX_HUMANS:
|
||||
_abgewiesen.rpc_id(id, "Der Raum ist voll.")
|
||||
@@ -182,6 +187,23 @@ func _req_join(code: String, pname: String) -> void:
|
||||
_lobby_senden(code)
|
||||
|
||||
|
||||
## Rückkehrer aufnehmen: in die Lobby eintragen und mit der laufenden
|
||||
## Aufstellung starten lassen. `cfg` beschreibt alle Plätze, nicht nur Peers.
|
||||
func rejoin_annehmen(code: String, peer: int, pname: String, cfg: Dictionary) -> void:
|
||||
var raum: Dictionary = raeume.get(code, {})
|
||||
if raum.is_empty():
|
||||
return
|
||||
raum.lobby[peer] = pname
|
||||
peer_raum[peer] = code
|
||||
raum.bestaetigt.erase(peer)
|
||||
_begin.rpc_id(peer, code, cfg)
|
||||
print("%s kehrt in Raum %s zurück." % [pname, code])
|
||||
|
||||
|
||||
func abweisen(peer: int, grund: String) -> void:
|
||||
_abgewiesen.rpc_id(peer, grund)
|
||||
|
||||
|
||||
## Ein Broadcast würde alle Räume treffen, also gezielt an die eigenen Peers.
|
||||
func _lobby_senden(code: String) -> void:
|
||||
var raum: Dictionary = raeume.get(code, {})
|
||||
|
||||
Reference in New Issue
Block a user