extends "res://tests/basis.gd" ## Spielserver im Zeitraffer. Meldet Ende und Endstand, wartet dann noch, ## damit die Clients ihr Ende selbst sehen. var game: Node func _ready() -> void: var t := 0.0 var runden := 0 var letzte := "" var zuletzt := "" # letzter gesehener Stand - die Clients gehen sofort, # dann räumt der Server den Raum ab, bevor wir gucken while t < 1500.0: await get_tree().create_timer(0.2).timeout t += 0.2 if game == null: game = _find(get_tree().root, "Game") if game != null: game.tempo = 0.0 continue if not is_instance_valid(game): break if game.phase != letzte: letzte = game.phase if letzte == "roll": runden += 1 var staende: Array = game.seats.map(func(x): return "%s=%d" % [x.name, x.count]) zuletzt = "%s '%s' Runden=%d %s" % [game.phase, game.banner, runden, staende] if game.phase == "over": break print("SERVER: Ende %s" % zuletzt) var alt: Node = game var neu := await _warte(func(): game = _find(get_tree().root, "Game"); return game != null and game != alt, 15.0) if neu: game.tempo = 0.0 print("SERVER: Nochmal-Partie aufgebaut=%s" % neu) await get_tree().create_timer(15.0).timeout get_tree().quit()