Hinter MatchOptions.Extended (Standard im Spiel, Schalter im Startbildschirm):
Söldner-Einkommen (Angriffschampion +Preis/12 Einkommen dauerhaft), Kasernen
(gefallener innerer Turm: Gegnerwellen +25 % und ein Monster mehr), Erschöpfung
und Rückkauf (60 % Leben, Rückkauf 60 + 20 x Stufe), Mondsegen (Grottensieg
+4 % je Stapel, Mondseele bei 4). Bots wählen mit erweiterten Regeln auch
Sylvara und kaufen Helden zurück. Netz überträgt Regeln und neue Zustände.
HUD: Einkommen, Kasernen-Symbol, Rückkauf, Segen im Teamkopf.
Kern 531/531 (s1 31), EditMode 31/31, PlayMode 16/16, Verify 718/0,
Selbsttest 30/30, Golden 0 Abweichungen, Fingerabdruck unverändert.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Befund aus dem Spieltest des U3-Nachtrags: Nichts legte LuneNetPlay in die
Szene. Das Spiel begann direkt in einer Partie, der Startbildschirm aus U4
war unerreichbar, und der Verlassen-Dialog beendete das Spiel statt zum
Hauptmenü zu führen.
- LuneWorldBuilder legt LuneNetPlay auf das Match-Objekt; Szene neu gebaut.
- Das Menü bekommt ein eigenes UIDocument über dem HUD. Vorher hing es an
keinem Panel, und das HUD hätte es beim ersten Partiestart geleert.
- Rückkehr über „Menü“ → „Zum Menü“: HUD und Aufstellungsflächen weg,
Sitzung beendet, leere Karte. Die Kamera ruht hinter dem Menü und beginnt
jede Partie ungedreht. Die Bund-Wahl ist markiert, die Knopfreihe passt
in die Tafel.
- Tests und Benchmark ohne Startbildschirm (LuneMatchDriver.DirectStart,
-luneBenchmark); Bot-Partien und Fingerabdrücke unverändert.
- Neu: LuneSmoke (-luneSmoke <Ordner>), Selbsttest eines Players nach
lune_smoke.gd. StartScreenTests führt ihn im Editor aus.
- Tests: EditMode 29/29, PlayMode 14/14 (StartScreenTests 26/26), Verify
718/0, Fingerabdrücke DCE95C96556F3A1A und 7B8E43AEFC0D60C5 unverändert.
macOS-Player: Selbsttest 26/26, Bilder in
docs/port/screenshots/u4/startbildschirm/. Ein zusammenhängender
PlayMode-Lauf auf dem Endstand und ein Player-Benchmark stehen aus, weil
der Mac zugeklappt schlief (siehe U4-NETWORK.md).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Der M4-Umfang ist als Protokoll 4 portiert, serverautoritativ. Der Host
besitzt LuneMatch und rechnet jeden Kampf; Clients senden nur Absichten
und zeigen den Kampf aus Host-Momentaufnahmen.
- LuneSession (Core/Net): Rollen offline/Host/Gast, sechs Sitze, Lobby,
Hallo mit Protokollprüfung und Namenskürzung, Beitritt und Wieder-
einstieg über den Anzeigenamen, private Planung mit Spoof-Schutz,
Bereit ist verbindlich, Bots planen einmal je Runde, Disconnect gibt
den Platz an einen Bot (nie Kernverlust), Übernahme verwirft den
unbestätigten Bot-Entwurf, Revanche hält die Plätze, Hostverlust
meldet und führt ins Menü zurück.
- Kampfsynchronisation: Beginn mit Einheitenätzen und Gebäude-HP, alle
0,05 s neue Einheiten und ein Frame (13 Werte je Einheit), späte
Frames über die Serial verworfen, Gast interpoliert (frame_alpha).
- Transport: LuneLoopback (In-Prozess) für die Tests, LuneTcp + LuneWire
(Cursor-Codec) für Echtverbindungen statt ENet; ein Socket je Gast.
- Oberfläche: LuneMainMenu (Offline/Hosten/Beitreten, Bund, Lane, Name,
Adresse, Port) als Startbildschirm, LuneNetPlay als Schale wie
lune_main.gd. LuneGame leitet Befehle, Rückgängig und Bereit im
Netzspiel über die Sitzung; Tempo und Pause bestimmt der Host.
- Tests: NetSuite 43/43 (Port von test_lune_net.gd), NetRoundsSuite
12/12 (Port von net_rounds.py: 5 Runden, Prüfsummen gleich, Gast
rechnet 0 Schritte, Drop und Wiedereinstieg auf denselben Sitz),
LuneWireTests Round-trip. EditMode 29/29, PlayMode 13/13, Kerntests
457/457. Fingerabdrücke der Bot-Partien unverändert.
- Dokumentation: U4-NETWORK (Abnahme, Grenzen), PORT-QA (U4), PORT-STATUS
(U4 fertig, U5 nächster Schritt), KNOWN-BEHAVIOR-DIFFERENCES.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>