champions-of-luneraria/Assets/Luneraria/Tests/View/PlayMode/PlayModeSupport.cs
Martin Stickelbroeck d590fdebeb U4-Nachtrag: Startbildschirm in der Szene, Rückkehr aus der Partie
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>
2026-10-08 05:37:51 +02:00

41 lines
1.4 KiB
C#

using System;
using System.Collections;
using System.Globalization;
using System.IO;
using UnityEngine;
using UnityEngine.SceneManagement;
namespace Luneraria.View.Tests
{
static class PlayModeSupport
{
public const string Scene = "G1_Map";
public static string Root { get { return Path.GetDirectoryName(Application.dataPath); } }
/// <summary>
/// Evidence folder of a run: docs/port/&lt;kind&gt;/&lt;milestone&gt;. LUNE_EVIDENCE replaces the milestone
/// name, so a later run (u2a-batch) keeps the milestone's records.
/// </summary>
public static string Evidence(string kind, string milestone)
{
string name = Environment.GetEnvironmentVariable("LUNE_EVIDENCE");
return Path.Combine(Root, "docs/port", kind, string.IsNullOrEmpty(name) ? milestone : name);
}
/// <summary>The G1 scene with its match running at once, without the start screen (U4).</summary>
public static IEnumerator Load()
{
LuneMatchDriver.DirectStart = true;
AsyncOperation loading = SceneManager.LoadSceneAsync(Scene, LoadSceneMode.Single);
while (!loading.isDone)
yield return null;
yield return null;
}
public static string Number(double value)
{
return value.ToString("0.###", CultureInfo.InvariantCulture);
}
}
}