update
This commit is contained in:
@@ -16,7 +16,6 @@ var _code_datei := ""
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
Engine.time_scale = 8.0
|
||||
_rng.randomize()
|
||||
var args := OS.get_cmdline_user_args()
|
||||
rolle = args[0]
|
||||
@@ -33,7 +32,7 @@ func _lauf() -> void:
|
||||
f.store_string(Net.room_code)
|
||||
f.close()
|
||||
await _warte(func(): return Net.lobby.size() >= 2, 80.0)
|
||||
Net.request_start(1, 1)
|
||||
Net.request_start(1, 1, 2)
|
||||
else:
|
||||
await _beitreten()
|
||||
await _warte(func(): game = _find(get_tree().root, "Game"); return game != null, 120.0)
|
||||
@@ -46,9 +45,9 @@ func _lauf() -> void:
|
||||
|
||||
var t := 0.0
|
||||
var gewartet := 0.0
|
||||
while t < 4400.0 and is_instance_valid(game) and game.phase != "over":
|
||||
await get_tree().create_timer(0.2).timeout
|
||||
t += 0.2
|
||||
while t < 1400.0 and is_instance_valid(game) and game.phase != "over":
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
t += 0.1
|
||||
if not is_instance_valid(game):
|
||||
break
|
||||
if game.phase != _letzte_phase:
|
||||
@@ -63,14 +62,14 @@ func _lauf() -> void:
|
||||
if game.phase != "bid" or game.turn != me or not game.seats[me].alive:
|
||||
gewartet = 0.0
|
||||
continue
|
||||
gewartet += 0.2
|
||||
if gewartet < 0.6:
|
||||
gewartet += 0.1
|
||||
if gewartet < 0.2:
|
||||
continue
|
||||
var hand: Array = game.hand.get(me, [])
|
||||
if not hand.is_empty() and (not BoosterDB.needs_bid(hand[0]) or not game.bid.is_empty()) and _rng.randf() < 0.7:
|
||||
game._on_booster_chosen(hand[0], 0)
|
||||
wuerfe += 1
|
||||
await get_tree().create_timer(2.5).timeout
|
||||
await get_tree().create_timer(0.4).timeout
|
||||
if not is_instance_valid(game) or game.turn != me or game.phase != "bid":
|
||||
continue
|
||||
var total := 0
|
||||
@@ -88,11 +87,22 @@ func _lauf() -> void:
|
||||
game._on_exact_pressed()
|
||||
genau += 1
|
||||
zuege += 1
|
||||
gewartet = -2.0
|
||||
gewartet = -1.5
|
||||
_pruef("%s: Partie endet über RPC (Runden=%d Züge=%d Würfe=%d Genau=%d)" % [rolle, runden, zuege, wuerfe, genau],
|
||||
is_instance_valid(game) and game.phase == "over")
|
||||
if rolle == "join":
|
||||
_pruef("join: Wiedereinstieg hat geklappt", wieder_da)
|
||||
# Nochmal: der Besitzer bittet darum, beide bekommen eine frische Partie.
|
||||
var alt: Node = game
|
||||
await get_tree().create_timer(0.5).timeout
|
||||
if Net.is_owner:
|
||||
Net.request_rematch()
|
||||
var neu := await _warte(func(): game = _find(get_tree().root, "Game"); return game != null and game != alt, 20.0)
|
||||
var laeuft := false
|
||||
if neu:
|
||||
laeuft = await _warte(func(): return game.phase == "bid" or game.phase == "roll", 20.0)
|
||||
_pruef("%s: Nochmal im Netz bringt eine neue Partie (Platz %d)" % [rolle, game.local_seat if neu else -1],
|
||||
neu and laeuft and game.local_seat >= 0)
|
||||
if is_instance_valid(game):
|
||||
print("%s: '%s'" % [rolle, game.banner])
|
||||
for i in game.seats.size():
|
||||
@@ -106,15 +116,19 @@ func _beitreten() -> void:
|
||||
Net.join_room(FileAccess.get_file_as_string(_code_datei).strip_edges(), "Gast")
|
||||
|
||||
|
||||
## Verbindung kappen, frisches Menü, mit demselben Namen wieder beitreten.
|
||||
## Verbindung reisst ab (kein bewusstes Verlassen), frisches Menü, dann der
|
||||
## Weg des Knopfs "Zurück in Raum XY".
|
||||
func _wiederkommen() -> void:
|
||||
var alter_platz: int = game.local_seat
|
||||
var alte_zuege := zuege
|
||||
Net.leave()
|
||||
get_tree().change_scene_to_file("res://scenes/main.tscn")
|
||||
await get_tree().create_timer(1.5).timeout
|
||||
var code := Net.room_code
|
||||
multiplayer.multiplayer_peer.close()
|
||||
if Net.in_game:
|
||||
Net._on_server_disconnected() # der Verlust-Handler, wie bei echtem Abbruch
|
||||
await get_tree().create_timer(1.0).timeout
|
||||
_pruef("join: Raum nach Abbruch gemerkt", Net.letzter_raum.get("code", "") == code)
|
||||
game = null
|
||||
await _beitreten()
|
||||
Net.wieder_rein()
|
||||
var ok := await _warte(func(): game = _find(get_tree().root, "Game"); return game != null, 60.0)
|
||||
if not ok:
|
||||
_pruef("join: nach Rückkehr kommt ein Spiel", false)
|
||||
|
||||
Reference in New Issue
Block a user