This commit is contained in:
team3
2026-09-16 12:09:47 +02:00
parent 9b3cd55ba7
commit 7979d5c336
16 changed files with 974 additions and 342 deletions

View File

@@ -30,6 +30,8 @@ var owner_id := 0
var is_owner := false
var room_code := ""
var in_game := false
## Wunsch für eine neue Solopartie; das frisch geladene Menü löst ihn ein.
var rematch: Dictionary = {}
# ── Server ───────────────────────────────────────────────────────────────────
var dedicated := false
@@ -228,7 +230,7 @@ func _push_lobby(code: String, data: Dictionary, besitzer: int) -> void:
# ── Start ────────────────────────────────────────────────────────────────────
## Einzelspieler: kein Netzwerk, nur der lokale Spieler und Bots.
func start_singleplayer(pname: String, ai_count: int) -> void:
func start_singleplayer(pname: String, ai_count: int, stufe := 1) -> void:
player_name = pname
multiplayer.multiplayer_peer = OfflineMultiplayerPeer.new()
room_code = SOLO
@@ -237,16 +239,17 @@ func start_singleplayer(pname: String, ai_count: int) -> void:
is_owner = true
in_game = true
lobby_changed.emit()
game_started.emit(SOLO, {"peers": [1], "names": lobby.duplicate(), "ai": ai_count})
game_started.emit(SOLO, {"peers": [1], "names": lobby.duplicate(), "ai": ai_count,
"stufe": stufe})
## Der Host bittet den Server um den Start.
func request_start(ai_count: int) -> void:
_req_start.rpc_id(1, ai_count)
func request_start(ai_count: int, stufe := 1) -> void:
_req_start.rpc_id(1, ai_count, stufe)
@rpc("any_peer", "reliable")
func _req_start(ai_count: int) -> void:
func _req_start(ai_count: int, stufe: int) -> void:
if not multiplayer.is_server():
return
var id := multiplayer.get_remote_sender_id()
@@ -259,7 +262,8 @@ func _req_start(ai_count: int) -> void:
if order.size() + ai_count < 2:
return
raum.in_game = true
var cfg := {"peers": order, "names": raum.lobby.duplicate(), "ai": ai_count}
var cfg := {"peers": order, "names": raum.lobby.duplicate(), "ai": ai_count,
"stufe": clampi(stufe, 0, 2)}
_start_zustellen(code, cfg)
game_started.emit(code, cfg)