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>
30 lines
1.1 KiB
GDScript
30 lines
1.1 KiB
GDScript
class_name LuneStatusBadge
|
|
extends PanelContainer
|
|
## Small labelled state (RUHIG, KRITISCH, BEREIT, BOT, COOLDOWN …). Always colour plus text
|
|
## and, where it helps, a symbol; never colour alone. Styles come from the theme cache.
|
|
|
|
var _row: HBoxContainer
|
|
var _glyph: LuneGlyph
|
|
var _label: Label
|
|
var text: String = ""
|
|
|
|
func _init() -> void:
|
|
mouse_filter = Control.MOUSE_FILTER_IGNORE
|
|
size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
|
_row = HBoxContainer.new()
|
|
_row.add_theme_constant_override("separation", 4)
|
|
_row.mouse_filter = Control.MOUSE_FILTER_IGNORE
|
|
add_child(_row)
|
|
_glyph = LuneGlyph.make("", Color.WHITE, 12.0, _row)
|
|
_glyph.visible = false
|
|
_label = LuneUiTheme.label("", "HudBadge", _row)
|
|
|
|
func set_state(text_value: String, color: Color, glyph: String = "", filled: bool = false) -> void:
|
|
text = text_value
|
|
_label.text = text_value
|
|
var ink: Color = Color("15110b") if filled else color.lightened(.15)
|
|
_label.add_theme_color_override("font_color", ink)
|
|
_glyph.visible = not glyph.is_empty()
|
|
_glyph.glyph = glyph
|
|
_glyph.color = ink
|
|
add_theme_stylebox_override("panel", LuneUiTheme.badge_style(color, filled))
|