refactor(statistics): ♻️ Replace hardcoded rank badge colors with semantic design tokens for consistency
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
78dc200233
commit
164fed22ae
1 changed files with 33 additions and 30 deletions
|
|
@ -30,13 +30,10 @@ const TAB_RANKINGS: int = 2
|
|||
const TAB_REPLAY: int = 3
|
||||
const TAB_HISTORIES: int = 4
|
||||
|
||||
## Rank-badge colours, highest → lowest.
|
||||
const RANK_COLORS: Array[Color] = [
|
||||
Color(0.3, 0.9, 0.4),
|
||||
Color(0.9, 0.85, 0.3),
|
||||
Color(0.9, 0.6, 0.2),
|
||||
Color(0.9, 0.3, 0.3),
|
||||
]
|
||||
## Rank-badge colours, highest → lowest. Routed through semantic design tokens
|
||||
## (good → warning → diplomacy → bad); populated in _ready() because token lookups
|
||||
## are autoload calls and cannot appear in a const initializer.
|
||||
var _rank_colors: Array[Color] = []
|
||||
|
||||
## Active tab index.
|
||||
var _current_tab: int = 0
|
||||
|
|
@ -69,6 +66,12 @@ var _close_button: Button = null
|
|||
|
||||
|
||||
func _ready() -> void:
|
||||
_rank_colors = [
|
||||
ThemeAssets.color("semantic.positive"),
|
||||
ThemeAssets.color("semantic.warning"),
|
||||
ThemeAssets.color("semantic.diplomacy"),
|
||||
ThemeAssets.color("semantic.negative"),
|
||||
]
|
||||
_build_modal()
|
||||
_restore_last_tab()
|
||||
_refresh_current_tab()
|
||||
|
|
@ -83,7 +86,7 @@ func _build_modal() -> void:
|
|||
var backdrop: ColorRect = ColorRect.new()
|
||||
backdrop.name = "Backdrop"
|
||||
backdrop.set_anchors_preset(Control.PRESET_FULL_RECT)
|
||||
backdrop.color = Color(0.0, 0.0, 0.0, 0.72)
|
||||
backdrop.color = ThemeAssets.color("background.overlay")
|
||||
backdrop.mouse_filter = Control.MOUSE_FILTER_STOP
|
||||
add_child(backdrop)
|
||||
|
||||
|
|
@ -95,8 +98,8 @@ func _build_modal() -> void:
|
|||
panel.anchor_top = 0.04
|
||||
panel.anchor_bottom = 0.96
|
||||
var style: StyleBoxFlat = StyleBoxFlat.new()
|
||||
style.bg_color = Color(0.09, 0.08, 0.07, 0.97)
|
||||
style.border_color = Color(0.55, 0.48, 0.32, 0.9)
|
||||
style.bg_color = ThemeAssets.color("background.panel")
|
||||
style.border_color = ThemeAssets.color("border.panel")
|
||||
style.set_border_width_all(2)
|
||||
style.set_corner_radius_all(6)
|
||||
style.content_margin_left = 12.0
|
||||
|
|
@ -120,7 +123,7 @@ func _build_modal() -> void:
|
|||
title_lbl.text = ThemeVocabulary.lookup("statistics_title")
|
||||
title_lbl.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
title_lbl.add_theme_font_size_override("font_size", 20)
|
||||
title_lbl.add_theme_color_override("font_color", Color(0.9, 0.84, 0.65))
|
||||
title_lbl.add_theme_color_override("font_color", ThemeAssets.color("text.title"))
|
||||
title_row.add_child(title_lbl)
|
||||
|
||||
_close_button = Button.new()
|
||||
|
|
@ -218,7 +221,7 @@ func _build_graphs_tab(parent: Control) -> void:
|
|||
_graph_metric_label.custom_minimum_size.x = 200
|
||||
_graph_metric_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
_graph_metric_label.add_theme_font_size_override("font_size", 15)
|
||||
_graph_metric_label.add_theme_color_override("font_color", Color(0.85, 0.78, 0.58))
|
||||
_graph_metric_label.add_theme_color_override("font_color", ThemeAssets.color("text.secondary"))
|
||||
ctrl_row.add_child(_graph_metric_label)
|
||||
|
||||
var next_btn: Button = Button.new()
|
||||
|
|
@ -256,7 +259,7 @@ func _build_rankings_tab(parent: Control) -> void:
|
|||
_rank_metric_label.custom_minimum_size.x = 200
|
||||
_rank_metric_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
_rank_metric_label.add_theme_font_size_override("font_size", 15)
|
||||
_rank_metric_label.add_theme_color_override("font_color", Color(0.85, 0.78, 0.58))
|
||||
_rank_metric_label.add_theme_color_override("font_color", ThemeAssets.color("text.secondary"))
|
||||
ctrl_row.add_child(_rank_metric_label)
|
||||
|
||||
var next_btn: Button = Button.new()
|
||||
|
|
@ -297,7 +300,7 @@ func _build_histories_tab(parent: Control) -> void:
|
|||
_hist_notice.autowrap_mode = TextServer.AUTOWRAP_WORD_SMART
|
||||
_hist_notice.text = ThemeVocabulary.lookup("statistics_histories_pending")
|
||||
_hist_notice.add_theme_font_size_override("font_size", 15)
|
||||
_hist_notice.add_theme_color_override("font_color", Color(0.5, 0.5, 0.5))
|
||||
_hist_notice.add_theme_color_override("font_color", ThemeAssets.color("text.muted"))
|
||||
panel.add_child(_hist_notice)
|
||||
|
||||
|
||||
|
|
@ -399,7 +402,7 @@ func _add_demo_row(
|
|||
cat_lbl.custom_minimum_size.x = 160
|
||||
cat_lbl.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
cat_lbl.add_theme_font_size_override("font_size", 13)
|
||||
cat_lbl.add_theme_color_override("font_color", Color(0.7, 0.65, 0.5))
|
||||
cat_lbl.add_theme_color_override("font_color", ThemeAssets.color("text.secondary"))
|
||||
row.add_child(cat_lbl)
|
||||
|
||||
var val_lbl: Label = Label.new()
|
||||
|
|
@ -417,11 +420,11 @@ func _add_demo_row(
|
|||
rank_lbl.add_theme_font_size_override("font_size", 14)
|
||||
if rank > 0:
|
||||
rank_lbl.text = "#%d" % rank
|
||||
var ci: int = mini(rank - 1, RANK_COLORS.size() - 1)
|
||||
rank_lbl.add_theme_color_override("font_color", RANK_COLORS[ci])
|
||||
var ci: int = mini(rank - 1, _rank_colors.size() - 1)
|
||||
rank_lbl.add_theme_color_override("font_color", _rank_colors[ci])
|
||||
else:
|
||||
rank_lbl.text = "--"
|
||||
rank_lbl.add_theme_color_override("font_color", Color(0.4, 0.4, 0.4))
|
||||
rank_lbl.add_theme_color_override("font_color", ThemeAssets.color("text.disabled"))
|
||||
row.add_child(rank_lbl)
|
||||
|
||||
var best_lbl: Label = Label.new()
|
||||
|
|
@ -430,7 +433,7 @@ func _add_demo_row(
|
|||
best_lbl.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
best_lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT
|
||||
best_lbl.add_theme_font_size_override("font_size", 13)
|
||||
best_lbl.add_theme_color_override("font_color", Color(0.5, 0.5, 0.5))
|
||||
best_lbl.add_theme_color_override("font_color", ThemeAssets.color("text.muted"))
|
||||
row.add_child(best_lbl)
|
||||
|
||||
var avg_lbl: Label = Label.new()
|
||||
|
|
@ -439,7 +442,7 @@ func _add_demo_row(
|
|||
avg_lbl.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
avg_lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT
|
||||
avg_lbl.add_theme_font_size_override("font_size", 13)
|
||||
avg_lbl.add_theme_color_override("font_color", Color(0.4, 0.4, 0.4))
|
||||
avg_lbl.add_theme_color_override("font_color", ThemeAssets.color("text.disabled"))
|
||||
row.add_child(avg_lbl)
|
||||
|
||||
_demo_list.add_child(row)
|
||||
|
|
@ -518,7 +521,7 @@ func _add_axis_label(pos: Vector2, text: String) -> void:
|
|||
lbl.text = text
|
||||
lbl.position = pos
|
||||
lbl.add_theme_font_size_override("font_size", 10)
|
||||
lbl.add_theme_color_override("font_color", Color(0.4, 0.4, 0.4))
|
||||
lbl.add_theme_color_override("font_color", ThemeAssets.color("text.disabled"))
|
||||
_graph_area.add_child(lbl)
|
||||
|
||||
|
||||
|
|
@ -529,7 +532,7 @@ func _add_graph_placeholder(text: String) -> void:
|
|||
lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
lbl.vertical_alignment = VERTICAL_ALIGNMENT_CENTER
|
||||
lbl.add_theme_font_size_override("font_size", 16)
|
||||
lbl.add_theme_color_override("font_color", Color(0.4, 0.4, 0.4))
|
||||
lbl.add_theme_color_override("font_color", ThemeAssets.color("text.disabled"))
|
||||
_graph_area.add_child(lbl)
|
||||
|
||||
|
||||
|
|
@ -593,8 +596,8 @@ func _add_rank_row(
|
|||
rank_lbl.custom_minimum_size.x = 44
|
||||
rank_lbl.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
rank_lbl.add_theme_font_size_override("font_size", 16)
|
||||
var ci: int = mini(rank - 1, RANK_COLORS.size() - 1)
|
||||
rank_lbl.add_theme_color_override("font_color", RANK_COLORS[ci])
|
||||
var ci: int = mini(rank - 1, _rank_colors.size() - 1)
|
||||
rank_lbl.add_theme_color_override("font_color", _rank_colors[ci])
|
||||
row.add_child(rank_lbl)
|
||||
|
||||
var dot: ColorRect = ColorRect.new()
|
||||
|
|
@ -616,7 +619,7 @@ func _add_rank_row(
|
|||
val_lbl.size_flags_vertical = Control.SIZE_SHRINK_CENTER
|
||||
val_lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT
|
||||
val_lbl.add_theme_font_size_override("font_size", 15)
|
||||
val_lbl.add_theme_color_override("font_color", Color(0.95, 0.82, 0.3))
|
||||
val_lbl.add_theme_color_override("font_color", ThemeAssets.color("accent.goldResource"))
|
||||
row.add_child(val_lbl)
|
||||
|
||||
var trend_lbl: Label = Label.new()
|
||||
|
|
@ -627,13 +630,13 @@ func _add_rank_row(
|
|||
match trend:
|
||||
1:
|
||||
trend_lbl.text = ThemeVocabulary.lookup("trend_up")
|
||||
trend_lbl.add_theme_color_override("font_color", Color(0.3, 0.9, 0.4))
|
||||
trend_lbl.add_theme_color_override("font_color", ThemeAssets.color("semantic.positive"))
|
||||
-1:
|
||||
trend_lbl.text = ThemeVocabulary.lookup("trend_down")
|
||||
trend_lbl.add_theme_color_override("font_color", Color(0.9, 0.3, 0.3))
|
||||
trend_lbl.add_theme_color_override("font_color", ThemeAssets.color("semantic.negative"))
|
||||
_:
|
||||
trend_lbl.text = ThemeVocabulary.lookup("trend_flat")
|
||||
trend_lbl.add_theme_color_override("font_color", Color(0.5, 0.5, 0.5))
|
||||
trend_lbl.add_theme_color_override("font_color", ThemeAssets.color("text.muted"))
|
||||
row.add_child(trend_lbl)
|
||||
|
||||
_rank_list.add_child(row)
|
||||
|
|
@ -644,7 +647,7 @@ func _add_rank_placeholder(text: String) -> void:
|
|||
lbl.text = text
|
||||
lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
lbl.add_theme_font_size_override("font_size", 15)
|
||||
lbl.add_theme_color_override("font_color", Color(0.4, 0.4, 0.4))
|
||||
lbl.add_theme_color_override("font_color", ThemeAssets.color("text.disabled"))
|
||||
_rank_list.add_child(lbl)
|
||||
|
||||
|
||||
|
|
@ -678,7 +681,7 @@ func _add_header_label(
|
|||
lbl.text = text
|
||||
lbl.custom_minimum_size.x = min_w
|
||||
lbl.add_theme_font_size_override("font_size", 12)
|
||||
lbl.add_theme_color_override("font_color", Color(0.55, 0.5, 0.38))
|
||||
lbl.add_theme_color_override("font_color", ThemeAssets.color("text.muted"))
|
||||
if right_align:
|
||||
lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT
|
||||
parent.add_child(lbl)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue