Nicht abgenommen: Nach dem ersten Spieltest wurde entschieden, Champions of Luneraria nach Unity 6 zu portieren. Dieser Stand ist die Referenz für das HUD im Unity-Projekt (../luneraria-unity). - HUD neu aus Komponenten mit eigenem Theme, Porträts aus den echten Modellen (einmal gerendert, zwischengespeichert), Lane-Übersicht mit deterministischer Bedrohung aus öffentlichem Zustand, Bossgrotte, nächste Welle, Ereignisse, Minimap mit zusammengefassten Armeen, Held/Items/Talente, Einheitendetails, Angriffschampions, Bereit-Sperre, UI-Größe, Team-Formen statt nur Farben - Privatsphäre über LuneHudModel: fremdes Gold und fremde Entwürfe erscheinen nie - Keine Regeländerung: Regeln 91/91, M2 73/73, Netz 43/43; verify_g3 715/715; verify_m1 38/38 und verify_m2 14/14 mit angepassten UI-Treibern - Spieltest bis Welle 8 über die echte Oberfläche, Befunde in G3-HUD.md - HELDEN-KONZEPT.md: vom Projektinhaber vorgegebene Helden (nicht umgesetzt) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 KiB
G3 · HUD-Bestand vor dem Umbau
Stand: 29. September 2026 · Grundlage luneraria/g2 (9f62e30), Arbeitszweig luneraria/g3.
Diese Aufnahme beschreibt das HUD, wie es G2 ausliefert. Sie ist die Referenz für die Entscheidungen in G3-HUD.md.
Aufnahmen
Alle Bilder stammen aus dem echten Spiel (LuneGame mit dem echten HUD). tools/luneraria/g3_views.gd setzt nur öffentlichen Partiezustand (Runde, Gold, Gebäude-HP, Boss-Claim) und bedient das HUD über dessen eigene Methoden; dasselbe Skript fotografiert später das G3-HUD.
| Auflösung | Ordner | logische Fläche |
|---|---|---|
| 1920×1080 | screenshots/g3/vorher-1920x1080/ |
1706×960 (Skalierung 1,125) |
| 2560×1440 | screenshots/g3/vorher-2560x1440/ |
1706×960 (1,5) |
| 1280×720 | screenshots/g3/vorher-1280x720/ |
1706×960 (0,75) |
Motive je Ordner: 01-planung, 02-held-ausgewaehlt, 03-itemauswahl, 04-einheit-ausgewaehlt, 05-angriffschampion, 06-boss-verfuegbar, 07-boss-angekuendigt, 08/09/10-kampf-top/mid/bottom, 11-eigener-ancient-kritisch, 12-gegnerischer-ancient-kritisch, 13-turm-zerstoert, 14-grosse-kampfansicht.
Wichtig für das Layout: Das Projekt skaliert mit canvas_items/expand von 1600×960 aus. Jede 16:9-Auflösung ergibt dieselbe logische Fläche von 1706×960; 1280×720 zeigt also exakt dasselbe Layout wie 2560×1440, nur mit halb so vielen Pixeln. Ein 16-px-Text ist bei 720p physisch 12 px hoch. Ultrawide (21:9) verbreitert die Fläche auf etwa 2275×960, 16:10 und das Mindestfenster 1152×720 schmälern sie auf 1600×960.
Aufbau
| Datei | Zeilen | Inhalt |
|---|---|---|
scripts/luneraria/ui/lune_hud.gd |
484 | das gesamte HUD in einem Skript: Kopfleiste, Lane-Panel, Planungsseite, Kampfpanel, Bericht, Minimap-Rahmen, Ergebnis |
scripts/luneraria/ui/lune_hero_panel.gd |
186 | Reiter „Held“: Anwerben, Stufe/EP, Einsatz-Lane, Items, Talente, Live-Porträt |
scripts/luneraria/ui/lune_reinforce_panel.gd |
113 | Reiter „Verstärkung“: Champion-Buchung, Ankündigungen, Boss-Lane |
scripts/luneraria/ui/lune_minimap.gd |
80 | Minimap aus dem Partiezustand |
scripts/luneraria/ui/lune_settings.gd |
68 | Optionen und Steuerungstext |
scripts/ui/theme/saumwacht_theme.gd, forged_style.gd |
247 + 69 | gemeinsames Menü-Theme (Basaltplatten, Bronzekanten) |
scripts/ui/components/choice_group.gd |
– | Segmentauswahl, im HUD für die drei Reiter |
Bildschirmaufteilung (logische Pixel bei 1706×960):
- Kopfleiste über die ganze Breite (Höhe ≈ 96): Titel, Phase, „Welle n“, zwei Ancient-Balken mit Zahl, Gold, Einkommen, Armeegröße, Identität (Team · Lane · Bund), Pause/Tempo (nur Kampf), Optionen, Menü.
- Links (300 breit, ≈ 400 hoch): „LANES · TÜRME“ mit drei Knöpfen
TOP Blau ●● Rot ●●plus Besitzernamen, darunter Teamlisten mit Basistürmen und der Grottenstatus als Fließtext. - Rechts (484 breit ≈ 28–30 % der Breite, 112 bis 270 über dem Boden): Reiter Truppen / Held / Verstärkung, Kaufkacheln, Armeeliste mit T/M/B/G-Umschaltern, ↑-Aufwertung, ×-Verkauf, Startaufstellung, Rückgängig, Bereit. Im Kampf ersetzt ein Textpanel mit Einheitenzahlen pro Lane die Seite.
- Unten links (bis 760 breit): Rundenbericht und Hinweis-/Fehlerzeile.
- Unten rechts: Minimap 236×236.
- Ergebnis: Vollbild-Abdunklung mit Sieg/Niederlage.
Theme und Komponenten
- Das HUD nutzt das Menü-Theme
SaumwachtThemeunverändert: VariantenCaptionPanel,MenuPanel,SectionLabel,MutedLabel,CardTitleLabel,PrimaryButton,QuietButton,ChoiceButton. - Es gibt keine HUD-Komponenten. Knöpfe, Balken und Zeilen entstehen lokal;
_bar()legt für jeden Balken eigeneStyleBoxFlat-Kopien an. - Die Menüplatten (
MenuPanel: 30/26 px Innenabstand, Nieten, 18 px Schatten) sind für ein Spielfeld-HUD zu schwer; der rechte Block wirkt wie ein Menü über dem Feld.
Porträts
- Kauf- und Armeekacheln zeigen
AssetLibrary.icon(), also die 2D-Konzeptbilder aus Phase 3, nicht die Spielmodelle. Heldenmodelle, Champions, Monster und die Schlundkrone haben dort gar kein Bild. - Nur der Heldenreiter rendert das echte Modell: eine eigene
SubViewportmit eigener Welt,UPDATE_WHEN_VISIBLE, jede Frame animiert, solange der Reiter offen ist. - Keine einheitliche Kamera, kein Cache.
Eingabe
| Taste | Wirkung (G2) | Ort |
|---|---|---|
| 1–5 | Truppe kaufen | lune_game._input |
| Leertaste | Planung: Bereit · Kampf: Pause | lune_game._input |
| P | Pause | lune_game._input |
| Tab | nächste Lane | lune_game._input |
| F2 / F3 / F4 | Kamera Top / Mid / Bottom | lune_game._input |
| B · G · H · O · R | eigene Basis · Grotte · Held · Übersicht · Kamera zurück | lune_game._input |
| Q / E | Kamera drehen | lune_game._input |
| WASD, Pfeile, mittlere Maustaste, Mausrad | Kamera | lune_camera |
| F1 · M · F11 · Esc | Optionen · Ton · Vollbild · Optionen schließen | lune_main._unhandled_input |
Frei sind unter anderem C, V, X, Z, N, U, I, J, K, L, T, Y und F5–F10. Die Welt kennt keine Auswahl per Linksklick; Einheiten wählt man nur über die Armeeliste.
Tooltips
Alle Hinweise sind Godot-Standard-Tooltips (tooltip_text): reiner Text, feste Verzögerung, Stil aus dem Menü-Theme. Einheitenwerte stehen nur im Tooltip der Kaufkachel (HP, „Schaden/s“ – tatsächlich Schaden pro Treffer bei 1 Angriff/s –, Reichweite, Fähigkeit). Item- und Talenttexte erscheinen nur als Tooltip.
Optionen
Lautstärke, Ton stumm, Vollbild, Bewegung reduzieren, dazu ein Steuerungstext. Es gibt keine UI-Größe. „Bewegung reduzieren“ wirkt auf Kamera, Menü und Effekte; das HUD hat keine Animationen.
Minimap
- Zeichnet Lanes, Fluss, Grotte (Farbe: frei/gesperrt/Team), alle Gebäude (voll/zerstört) und im Kampf jede bewegliche Einheit als Punkt. Bei 90–120 Einheiten entsteht eine Punktwolke; Helden (gold) und Boss (größer) gehen darin unter.
- Türme beider Teams unterscheiden sich nur durch die Farbe.
- Klick und Ziehen bewegen die Kamera; das Trapez des Kamerabilds ist sichtbar.
queue_redraw()in jeder Frame, unabhängig von Änderungen.
Lanes, Türme, Ancients
- Lane-Zustand nur als
●●/●○für eigene und gegnerische Außen-/Innentürme; kein Schadensstand, keine Bedrohung, keine Angabe, welche Seite drückt, keine angekündigten Champions. - Basistürme stehen als „Basistürme 2/2“ im Teamtext.
- Ancients: zwei gleich gewichtete Balken mit Zahl in der Kopfleiste; kein kritischer Zustand.
- Klick auf eine Lane springt mit der Kamera dorthin (gut, bleibt).
Held, Items, Talente
- Heldenreiter mit Live-Porträt, Stufe, EP-Balken (Werte nur im Tooltip), Einsatz-Lane, drei Itemknöpfen (Name + ×), sechs Item-Kaufknöpfen, Talentwahl.
- Keine Grundwerte (HP, Schaden, Tempo, Reichweite, Rüstung) und keine Fähigkeitswerte.
- Item-Zustände nur über „deaktiviert“; warum ein Item nicht geht (Gold, Stufe, schon getragen, Plätze voll), steht nirgends.
- Bei 1280×720 ist der Reiter abgeschnitten: Itemkauf und Talente liegen unter „Startaufstellung/Rückgängig“ und brauchen Scrollen (
vorher-1280x720/03-itemauswahl.png).
Normale Einheiten
- Eine „Auswahl“ gibt es nicht; jede Armeezeile hat Porträt (2D), abgeschnittenen Namen („Korkı“, „Dorn“, „Same“), T/M/B/G, ↑ Kosten, ×.
- Werte der gekauften Einheit, Aufwertungsziel und Rückgabebetrag nur im Tooltip.
- G (Grotte) ohne Warnung, dass die Einheit ihrer Lane die ganze Kampfphase fehlt (nur im Tooltip und im Grottentext links).
Angriffschampions, Boss, Wellen
- Champions: Textliste im Reiter „Verstärkung“ mit Ziel-Lane-Schaltern; Buchungen als „Gebucht: … Runde n“. Optisch wie normale Knöpfe, kein Unterschied zu dauerhaften Truppen.
- Ankündigungen (öffentlich) nur in diesem Reiter.
- Bossgrotte: Fließtext links („verfügbar“, „gesperrt bis Runde n“, „von Blau erobert … greift in Runde 12 über Mid an“). Kein Hinweis auf dem Spielfeld, kein Kopfgeld im Blick, keine Unterscheidung „umkämpft“.
- Wellen: „Welle n“ ohne Obergrenze (richtig). Was die nächste Welle bringt, zeigt das HUD nicht, obwohl
LuneWaves.build()öffentlich und deterministisch ist. - Ereignisse: nur der Rundenbericht nach dem Kampf und eine Hinweiszeile; Turmfall, Bossangriff oder kritischer Ancient erscheinen nicht im Moment des Geschehens.
Netzwerk und Privatsphäre
- Der Gast erhält
rpc_statemit dem Gold aller Spieler, deren bestätigten Armeen, Helden und Buchungen; den Entwurf (draft) nur für den eigenen Sitz. - Das G2-HUD zeigt Gold nur für den eigenen Sitz (
gold_of(human_slot)) – das bleibt Pflicht. - Bereit-Status, Mensch/Bot und Verbindungsabbrüche zeigt das HUD nicht; Sitzungsmeldungen erscheinen nur als Hinweiszeile.
- Nach „Bereit“ lehnt der Host weitere Befehle ab („Bereits bereit gemeldet …“); das HUD zeigt dann „WARTE AUF ANDERE …“, lässt aber Kaufkacheln, Lane-Knöpfe und Tasten 1–5 aktiv.
Leistung
refresh()läuft jede Frame: alle Beschriftungen werden neu formatiert, im Kampf wird zusätzlich über alle Einheiten gezählt (O(n) je Frame), in der PlanungJSON.stringify(draft)gebildet.- Held- und Verstärkungsreiter bilden jede Frame eine JSON-Signatur.
- Die Minimap zeichnet jede Frame alle Einheiten.
- Die Heldenporträt-
SubViewportrendert jede Frame, solange der Reiter offen ist.
Konsequenzen für G3
- HUD in Komponenten zerlegen, Theme um HUD-Varianten erweitern statt lokaler StyleBox-Kopien.
- Ancients und Welle in eine schmale Kopfzeile; die Ancients bekommen mehr Gewicht als Einzeltürme.
- Lane-Übersicht mit echten Turmsymbolen (Form + Schadensstand), deterministischer Bedrohungsstufe aus öffentlichem Zustand und angekündigten Gefahren.
- Kauf, Armee und Held nach unten; rechts nur Kontext (Auswahl, nächste Welle, Boss) statt einer dauerhaften 30-%-Leiste.
- Porträts aus den echten Modellen, einmal gerendert und zwischengespeichert, statt 2D-Skizzen und Live-Viewport.
- Minimap mit zusammengefassten Armeen, deutlichen Helden, Champions und Boss, Teamformen statt nur Farben.
- Ereignisleiste für Turmfall, Champions, Boss, kritische Ancients.
- Bereit-Sperre sichtbar machen, fremdes Gold und fremde Entwürfe weiter nie anzeigen, Mensch/Bot/Verbindung pro Mitspieler zeigen.
- Aktualisierung nach Änderungen statt jeder Frame; Minimap gedrosselt.
- Layout für 1600–2300 logische Breite und eine UI-Größe in den Optionen; Mindestschriftgröße so, dass 720p lesbar bleibt.