Abschlusskorrekturen M1c: Schläge der Gäste, Figuren und Fragebogen
- Der Host hält einen Schlag eines Gastes, der während der Abklingzeit ankommt, bis zum ersten Takt danach. Übers Internet ging sonst etwa jeder fünfte Schlag eines Gastes verloren. - ENet drosselt die Figuren nie mehr; sonst konnten die Figuren eines von zwei Gästen dauerhaft stehen bleiben. Figuren gehen geordnet, und eine stille Verbindung gilt nach höchstens acht Sekunden als verloren. - Positionen, die keine Zahlen sind, und Figuren von Spielern, die nicht online sind, werden verworfen. - Ein Host mit angehaltener Simulation sagt das in der Statuszeile. - Neue Tests: Schlag während der Abklingzeit, Zielauswahl von NetLink, verworfene Figuren, Neuabgleich über die Brücke. - Der Fragebogen sagt, was jeder Rechner braucht, und die Freigabe in der Firewall gehört zum Host. CLAUDE.md beschreibt das Halten der Schläge, die Drosselung und die Zeitüberschreitung und ergänzt die Vertrauensregel um die Schlüssel. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -219,6 +219,27 @@ func test_the_hit_of_a_guest_becomes_a_message_to_the_host() -> void:
|
||||
check_eq(host.damage_codes()[rock.y * host.map_width() + rock.x], 1, "and so does the host")
|
||||
|
||||
|
||||
func test_a_guest_that_missed_a_tick_gets_the_world_again() -> void:
|
||||
var pair := _host_and_guest()
|
||||
var host := pair[0]
|
||||
var guest := pair[1]
|
||||
host.step()
|
||||
# The message with this tick gets lost on the way.
|
||||
host.take_messages()
|
||||
host.step()
|
||||
_carry(host, guest)
|
||||
for i in guest.pending_ticks():
|
||||
guest.step()
|
||||
check_eq(_carry(host, guest), [{"type": "world_received", "resync": true}], "the guest gets the host's world again")
|
||||
check_eq(host.take_divergences().size(), 1, "the host hears of it")
|
||||
check(guest.take_diverged_recording().size() > 0, "the guest keeps the recording of the world that went astray")
|
||||
host.step()
|
||||
_carry(host, guest)
|
||||
for i in guest.pending_ticks():
|
||||
guest.step()
|
||||
check_eq(guest.state_hash_hex(), host.state_hash_hex(), "both worlds are the same again")
|
||||
|
||||
|
||||
func test_a_guest_learns_why_it_is_turned_away() -> void:
|
||||
var host := _joined_session()
|
||||
host.connect_peer(5)
|
||||
|
||||
Reference in New Issue
Block a user