diff --git a/src/game/engine/scenes/combat/combat_preview.gd b/src/game/engine/scenes/combat/combat_preview.gd index a00af1ba..b56f7c8f 100644 --- a/src/game/engine/scenes/combat/combat_preview.gd +++ b/src/game/engine/scenes/combat/combat_preview.gd @@ -590,5 +590,5 @@ func _populate_grudge_badge(atk: RefCounted, def: RefCounted) -> void: badge.add_to_group("grudge_badge") badge.text = ThemeVocabulary.lookup("combat_grudge_badge") badge.add_theme_font_size_override("font_size", 13) - badge.add_theme_color_override("font_color", ThemeAssets.color("semantic.negative")) + badge.theme_type_variation = "LabelNegative" add_child(badge) diff --git a/src/game/engine/scenes/hud/debug_menu.gd b/src/game/engine/scenes/hud/debug_menu.gd index 847ac84e..e46e66e5 100644 --- a/src/game/engine/scenes/hud/debug_menu.gd +++ b/src/game/engine/scenes/hud/debug_menu.gd @@ -142,7 +142,7 @@ func _build_find_ui() -> void: _find_label = Label.new() _find_label.text = "" _find_label.add_theme_font_size_override("font_size", 12) - _find_label.add_theme_color_override("font_color", ThemeAssets.color("text.secondary")) + _find_label.theme_type_variation = "LabelSecondary" row.add_child(_find_label) var vbox: VBoxContainer = null diff --git a/src/game/engine/scenes/hud/diplomacy_panel.gd b/src/game/engine/scenes/hud/diplomacy_panel.gd index 721ba720..4941a4d6 100644 --- a/src/game/engine/scenes/hud/diplomacy_panel.gd +++ b/src/game/engine/scenes/hud/diplomacy_panel.gd @@ -100,7 +100,7 @@ func _make_rival_row(player: RefCounted) -> Control: header.custom_minimum_size = Vector2(240, 0) header.text = _format_rival_header(player) header.add_theme_font_size_override("font_size", 15) - header.add_theme_color_override("font_color", ThemeAssets.color("text.title")) + header.theme_type_variation = "LabelTitle" hbox.add_child(header) var relation_label: Label = Label.new() relation_label.custom_minimum_size = Vector2(100, 0) @@ -231,7 +231,7 @@ func _make_agreement_section(target_idx: int) -> Control: status_text, ] lbl.add_theme_font_size_override("font_size", 13) - lbl.add_theme_color_override("font_color", ThemeAssets.color("semantic.positive")) + lbl.theme_type_variation = "LabelPositive" vbox.add_child(lbl) has_any = true if not has_any: diff --git a/src/game/engine/scenes/hud/intelligence_log_panel.gd b/src/game/engine/scenes/hud/intelligence_log_panel.gd index a5a2d436..c808ac21 100644 --- a/src/game/engine/scenes/hud/intelligence_log_panel.gd +++ b/src/game/engine/scenes/hud/intelligence_log_panel.gd @@ -78,7 +78,7 @@ func _build_ui() -> void: _empty_label = Label.new() _empty_label.text = "No intercepted envelopes yet." _empty_label.add_theme_font_size_override("font_size", 13) - _empty_label.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + _empty_label.theme_type_variation = "LabelMuted" _body.add_child(_empty_label) diff --git a/src/game/engine/scenes/hud/overlay_panel.gd b/src/game/engine/scenes/hud/overlay_panel.gd index e366d363..bac98cf3 100644 --- a/src/game/engine/scenes/hud/overlay_panel.gd +++ b/src/game/engine/scenes/hud/overlay_panel.gd @@ -110,7 +110,7 @@ func _build_view_center_section() -> void: var view_label: Label = Label.new() view_label.text = ThemeVocabulary.lookup("view_center") view_label.add_theme_font_size_override("font_size", 10) - view_label.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + view_label.theme_type_variation = "LabelMuted" add_child(view_label) _btn_view_equator = Button.new() diff --git a/src/game/engine/scenes/hud/turn_notification.gd b/src/game/engine/scenes/hud/turn_notification.gd index 1d7e2699..c69b28f0 100644 --- a/src/game/engine/scenes/hud/turn_notification.gd +++ b/src/game/engine/scenes/hud/turn_notification.gd @@ -74,7 +74,7 @@ func _build_ui() -> void: _processing_label.name = "ProcessingLabel" _processing_label.text = ThemeVocabulary.lookup("action_processing") _processing_label.add_theme_font_size_override("font_size", 28) - _processing_label.add_theme_color_override("font_color", ThemeAssets.color("text.title")) + _processing_label.theme_type_variation = "LabelTitle" _processing_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER _processing_label.vertical_alignment = VERTICAL_ALIGNMENT_CENTER _processing_label.set_anchors_preset(Control.PRESET_CENTER) @@ -115,7 +115,7 @@ func _build_ui() -> void: header.name = "LogHeader" header.text = "%s Summary" % ThemeVocabulary.lookup("turn") header.add_theme_font_size_override("font_size", 20) - header.add_theme_color_override("font_color", ThemeAssets.color("text.title")) + header.theme_type_variation = "LabelTitle" header.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER outer_vbox.add_child(header) @@ -144,7 +144,7 @@ func _build_ui() -> void: hint.name = "DismissHint" hint.text = ThemeVocabulary.lookup("dismiss_hint") hint.add_theme_font_size_override("font_size", 12) - hint.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + hint.theme_type_variation = "LabelMuted" hint.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER outer_vbox.add_child(hint) @@ -227,7 +227,7 @@ func _rebuild_log_entries() -> void: var more_label: Label = Label.new() more_label.text = ThemeVocabulary.lookup("fmt_and_n_more") % hidden_count more_label.add_theme_font_size_override("font_size", 13) - more_label.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + more_label.theme_type_variation = "LabelMuted" _log_vbox.add_child(more_label) diff --git a/src/game/engine/scenes/hud/tutorial_overlay.gd b/src/game/engine/scenes/hud/tutorial_overlay.gd index 61b4da77..69bb57e3 100644 --- a/src/game/engine/scenes/hud/tutorial_overlay.gd +++ b/src/game/engine/scenes/hud/tutorial_overlay.gd @@ -113,12 +113,12 @@ func _build_ui() -> void: _title_label = Label.new() _title_label.add_theme_font_size_override("font_size", 24) - _title_label.add_theme_color_override("font_color", ThemeAssets.color("text.title")) + _title_label.theme_type_variation = "LabelTitle" vbox.add_child(_title_label) _step_counter_label = Label.new() _step_counter_label.add_theme_font_size_override("font_size", 12) - _step_counter_label.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + _step_counter_label.theme_type_variation = "LabelMuted" vbox.add_child(_step_counter_label) _body_label = Label.new() @@ -180,9 +180,9 @@ func _render_step() -> void: func _render_action_badge(prefix: String) -> void: if _step_satisfied: _action_badge.text = ThemeVocabulary.lookup("tutorial_action_done") - _action_badge.add_theme_color_override("font_color", ThemeAssets.color("semantic.positive")) + _action_badge.theme_type_variation = "LabelPositive" return - _action_badge.add_theme_color_override("font_color", ThemeAssets.color("semantic.warning")) + _action_badge.theme_type_variation = "LabelWarning" var action_hint: String = ThemeVocabulary.lookup("%s_action" % prefix) var header: String = ThemeVocabulary.lookup("tutorial_action_required") _action_badge.text = ThemeVocabulary.lookup("fmt_tutorial_badge") % [header, action_hint] diff --git a/src/game/engine/scenes/hud/unit_panel.gd b/src/game/engine/scenes/hud/unit_panel.gd index 843510c5..1ce5be36 100644 --- a/src/game/engine/scenes/hud/unit_panel.gd +++ b/src/game/engine/scenes/hud/unit_panel.gd @@ -620,7 +620,7 @@ func _refresh_items() -> void: var slot_label: Label = Label.new() slot_label.text = "%s[%s]" % [tier_tag, category.left(3).to_upper()] slot_label.add_theme_font_size_override("font_size", 10) - slot_label.add_theme_color_override("font_color", ThemeAssets.color("accent.gold")) + slot_label.theme_type_variation = "LabelGold" row_hbox.add_child(slot_label) var name_label: Label = Label.new() @@ -633,7 +633,7 @@ func _refresh_items() -> void: var charges_label: Label = Label.new() charges_label.text = "(%d)" % charges charges_label.add_theme_font_size_override("font_size", 10) - charges_label.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + charges_label.theme_type_variation = "LabelMuted" row_hbox.add_child(charges_label) vbox.add_child(row) diff --git a/src/game/engine/scenes/hud/world_map_hud.gd b/src/game/engine/scenes/hud/world_map_hud.gd index bfb547f6..a308e68a 100644 --- a/src/game/engine/scenes/hud/world_map_hud.gd +++ b/src/game/engine/scenes/hud/world_map_hud.gd @@ -226,7 +226,7 @@ func _build_patrol_banner() -> void: _patrol_banner_label = Label.new() _patrol_banner_label.name = "PatrolBannerLabel" _patrol_banner_label.add_theme_font_size_override("font_size", 15) - _patrol_banner_label.add_theme_color_override("font_color", ThemeAssets.color("accent.science")) + _patrol_banner_label.theme_type_variation = "LabelScience" _patrol_banner_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER _patrol_banner_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART _patrol_banner.add_child(_patrol_banner_label) @@ -263,7 +263,7 @@ func _build_rally_command_picker() -> void: var title: Label = Label.new() title.text = ThemeVocabulary.lookup("rally_command_pick_title") title.add_theme_font_size_override("font_size", 13) - title.add_theme_color_override("font_color", ThemeAssets.color("accent.science")) + title.theme_type_variation = "LabelScience" title.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER vbox.add_child(title) diff --git a/src/game/engine/scenes/menus/credits.gd b/src/game/engine/scenes/menus/credits.gd index b2cc6ee8..c1c7d5f2 100644 --- a/src/game/engine/scenes/menus/credits.gd +++ b/src/game/engine/scenes/menus/credits.gd @@ -28,7 +28,7 @@ func _populate() -> void: if sections.is_empty(): var missing: Label = Label.new() missing.text = ThemeVocabulary.lookup("credits_missing") - missing.add_theme_color_override("font_color", ThemeAssets.color("semantic.warning")) + missing.theme_type_variation = "LabelWarning" _content_vbox.add_child(missing) return for section_variant: Variant in sections: @@ -169,7 +169,7 @@ func _build_section(section: Dictionary) -> Control: var heading: Label = Label.new() heading.text = str(section.get("heading", "")).to_upper() heading.add_theme_font_size_override("font_size", 16) - heading.add_theme_color_override("font_color", ThemeAssets.color("text.title")) + heading.theme_type_variation = "LabelTitle" box.add_child(heading) var rule: ColorRect = ColorRect.new() rule.custom_minimum_size = Vector2(0, 1) diff --git a/src/game/engine/scenes/menus/defeat_screen.gd b/src/game/engine/scenes/menus/defeat_screen.gd index f3f2dbe8..93d0ad80 100644 --- a/src/game/engine/scenes/menus/defeat_screen.gd +++ b/src/game/engine/scenes/menus/defeat_screen.gd @@ -133,7 +133,7 @@ func _make_header(text: String, is_name_col: bool = false) -> Label: var lbl: Label = Label.new() lbl.text = text lbl.add_theme_font_size_override("font_size", 13) - lbl.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + lbl.theme_type_variation = "LabelMuted" if not is_name_col: lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT return lbl diff --git a/src/game/engine/scenes/menus/end_game_summary.gd b/src/game/engine/scenes/menus/end_game_summary.gd index b6ddf4eb..8584ca00 100644 --- a/src/game/engine/scenes/menus/end_game_summary.gd +++ b/src/game/engine/scenes/menus/end_game_summary.gd @@ -122,10 +122,10 @@ func _populate_hero_strip() -> void: var player_is_winner: bool = _winner_index == human_idx if player_is_winner: _banner_label.text = ThemeVocabulary.lookup("endgame_banner_victory") - _banner_label.add_theme_color_override("font_color", ThemeAssets.color("accent.gold")) + _banner_label.theme_type_variation = "LabelGold" else: _banner_label.text = ThemeVocabulary.lookup("endgame_banner_defeat") - _banner_label.add_theme_color_override("font_color", ThemeAssets.color("semantic.negative")) + _banner_label.theme_type_variation = "LabelNegative" # Append per-reason flavour when the vocabulary key is mapped. var reason_key: String = "endgame_reason_" + _reason diff --git a/src/game/engine/scenes/menus/game_setup.gd b/src/game/engine/scenes/menus/game_setup.gd index 4922de58..b2660db8 100644 --- a/src/game/engine/scenes/menus/game_setup.gd +++ b/src/game/engine/scenes/menus/game_setup.gd @@ -276,7 +276,7 @@ func _make_controller_row(slot_idx: int) -> Control: var label: Label = Label.new() label.text = "AI Slot %d" % slot_idx label.add_theme_font_size_override("font_size", 11) - label.add_theme_color_override("font_color", ThemeAssets.color("text.secondary")) + label.theme_type_variation = "LabelSecondary" label.custom_minimum_size = Vector2(80, 0) row.add_child(label) var picker: OptionButton = OptionButton.new() @@ -360,7 +360,7 @@ func _make_clan_row(slot_idx: int, clan: Dictionary) -> Control: desc.text = str(clan.get("description", "")) desc.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART desc.add_theme_font_size_override("font_size", 11) - desc.add_theme_color_override("font_color", ThemeAssets.color("text.secondary")) + desc.theme_type_variation = "LabelSecondary" vbox.add_child(desc) vbox.add_child(_build_axes_row(clan.get("strategic_axes", {}))) return panel @@ -375,7 +375,7 @@ func _build_axes_row(axes: Dictionary) -> HBoxContainer: var label: Label = Label.new() label.text = ThemeVocabulary.lookup("axis_%s" % key) label.add_theme_font_size_override("font_size", 10) - label.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + label.theme_type_variation = "LabelMuted" label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER cell.add_child(label) var value: Label = Label.new() diff --git a/src/game/engine/scenes/menus/throne_room_spoils.gd b/src/game/engine/scenes/menus/throne_room_spoils.gd index e0be01f4..64879e50 100644 --- a/src/game/engine/scenes/menus/throne_room_spoils.gd +++ b/src/game/engine/scenes/menus/throne_room_spoils.gd @@ -51,7 +51,7 @@ func _populate(ids: Array[String]) -> void: var desc_label: Label = Label.new() desc_label.text = dec.get("description", "") desc_label.add_theme_font_size_override("font_size", 11) - desc_label.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + desc_label.theme_type_variation = "LabelMuted" desc_label.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART text_col.add_child(desc_label) _spoils_list.add_child(row) diff --git a/src/game/engine/scenes/menus/victory_screen.gd b/src/game/engine/scenes/menus/victory_screen.gd index 44a80040..31d64086 100644 --- a/src/game/engine/scenes/menus/victory_screen.gd +++ b/src/game/engine/scenes/menus/victory_screen.gd @@ -46,11 +46,11 @@ func _on_victory_achieved(player_index: int, victory_type: String) -> void: _player_label.text = ThemeVocabulary.lookup("turn_limit_reached") elif player != null and player.is_human: _result_label.text = ThemeVocabulary.lookup("victory").to_upper() - _result_label.add_theme_color_override("font_color", ThemeAssets.color("accent.gold")) + _result_label.theme_type_variation = "LabelGold" _player_label.text = "%s %s" % [_player_display(player), ThemeVocabulary.lookup("wins")] else: _result_label.text = ThemeVocabulary.lookup("defeat").to_upper() - _result_label.add_theme_color_override("font_color", ThemeAssets.color("semantic.negative")) + _result_label.theme_type_variation = "LabelNegative" _player_label.text = "%s %s" % [_player_display(player), ThemeVocabulary.lookup("wins")] _condition_label.text = _victory_banner(victory_type, stalemate) @@ -152,7 +152,7 @@ func _make_header(text: String, is_name_col: bool = false) -> Label: var lbl: Label = Label.new() lbl.text = text lbl.add_theme_font_size_override("font_size", 13) - lbl.add_theme_color_override("font_color", ThemeAssets.color("text.muted")) + lbl.theme_type_variation = "LabelMuted" if not is_name_col: lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT return lbl diff --git a/src/game/engine/scenes/notifications/capital_blackout_overlay.gd b/src/game/engine/scenes/notifications/capital_blackout_overlay.gd index 3fced1bd..b0e09d32 100644 --- a/src/game/engine/scenes/notifications/capital_blackout_overlay.gd +++ b/src/game/engine/scenes/notifications/capital_blackout_overlay.gd @@ -51,14 +51,14 @@ func _build_ui() -> void: _title_label = Label.new() _title_label.text = TITLE_DEFAULT _title_label.add_theme_font_size_override("font_size", 42) - _title_label.add_theme_color_override("font_color", ThemeAssets.color("semantic.negative")) + _title_label.theme_type_variation = "LabelNegative" _title_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER vbox.add_child(_title_label) _subtitle_label = Label.new() _subtitle_label.text = SUBTITLE_DEFAULT _subtitle_label.add_theme_font_size_override("font_size", 22) - _subtitle_label.add_theme_color_override("font_color", ThemeAssets.color("text.title")) + _subtitle_label.theme_type_variation = "LabelTitle" _subtitle_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER vbox.add_child(_subtitle_label) diff --git a/src/game/engine/scenes/notifications/comms_toast.gd b/src/game/engine/scenes/notifications/comms_toast.gd index f077b8cd..835ba989 100644 --- a/src/game/engine/scenes/notifications/comms_toast.gd +++ b/src/game/engine/scenes/notifications/comms_toast.gd @@ -49,7 +49,7 @@ func _ready() -> void: _title = Label.new() _title.add_theme_font_size_override("font_size", 16) - _title.add_theme_color_override("font_color", ThemeAssets.color("text.title")) + _title.theme_type_variation = "LabelTitle" col.add_child(_title) _body = Label.new() diff --git a/src/game/engine/scenes/world_map/arena_overlay.gd b/src/game/engine/scenes/world_map/arena_overlay.gd index 3f13a106..29391818 100644 --- a/src/game/engine/scenes/world_map/arena_overlay.gd +++ b/src/game/engine/scenes/world_map/arena_overlay.gd @@ -53,7 +53,7 @@ func build( var title: Label = Label.new() title.text = "%s ยท seed %d" % [match_id, seed_value] - title.add_theme_color_override("font_color", ThemeAssets.color("accent.gold")) + title.theme_type_variation = "LabelGold" title.add_theme_font_size_override("font_size", 13) _p1_label = _make_player_label(p1, _p0_color) diff --git a/src/game/engine/scenes/world_map/world_map_units.gd b/src/game/engine/scenes/world_map/world_map_units.gd index da83fdb6..96c3de16 100644 --- a/src/game/engine/scenes/world_map/world_map_units.gd +++ b/src/game/engine/scenes/world_map/world_map_units.gd @@ -96,7 +96,7 @@ func draw_waypoint_overlay(parent_node: Node2D, waypoints: Array) -> void: flag_label.add_to_group("patrol_overlay") flag_label.text = str(i + 1) flag_label.add_theme_font_size_override("font_size", 13) - flag_label.add_theme_color_override("font_color", ThemeAssets.color("accent.science")) + flag_label.theme_type_variation = "LabelScience" flag_label.position = pixel + Vector2(-6.0, -20.0) parent_node.add_child(flag_label)