Skip to content

Commit 5070654

Browse files
matteopolakCopilot
andcommitted
Redesign game UI to match website black-minimalist theme
Rework the shared theme and panel styleboxes, bundle Archivo + IBM Plex Mono, and rebuild the menus around a centered translucent shell over the 3D background. - New editorial main menu: sidebar nav (Maps/Aim/Leaderboard/Servers/ Settings), image-led equal-width cards (whole-card clickable), segmented mode switch, and a dedicated leaderboard tab with thousands-formatted values and per-scenario tabs. - Redesigned settings: tabbed Controls/Display/Audio, aligned keybind grid, save-on-change button, restyled sliders/checkboxes. - Restyled in-game HUDs (aim trainer, deathmatch, elimination, map/replay, weapon select, info) and a centered translucent pause menu. - Reusable UI: palette, eyebrow, leaderboard_row, card_grid, scrim. - Project-wide pointer cursor on interactive controls; canvas_items stretch for crisp text. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6f143bfd-eb10-40b8-831e-bbb9b7ea20da
1 parent e404165 commit 5070654

94 files changed

Lines changed: 2838 additions & 2092 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

project.godot

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ gdscript/warnings/inference_on_variant=0
4343

4444
[display]
4545

46-
window/stretch/mode="viewport"
47-
window/stretch/aspect="ignore"
46+
window/stretch/mode="canvas_items"
47+
window/stretch/aspect="expand"
4848
window/vsync/vsync_mode=0
4949

5050
[editor]

scripts/test-godot.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ TEST_SCRIPTS=(
1212
"res://tests/replay_input_display_test.gd"
1313
"res://tests/world_record_announcement_test.gd"
1414
"res://tests/offline_playtest_smoke.gd"
15-
"res://tests/aim_menu_smoke.gd"
1615
"res://tests/aim_trainer_smoke.gd"
1716
"res://tests/death_camera_test.gd"
1817
"res://tests/elimination_round_state_test.gd"

src/fonts/Archivo-Variable.ttf

643 KB
Binary file not shown.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://b1pheek1rg8pw"
6+
path="res://.godot/imported/Archivo-Variable.ttf-31a6ec9407822113cd73084e8c2f3954.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://src/fonts/Archivo-Variable.ttf"
11+
dest_files=["res://.godot/imported/Archivo-Variable.ttf-31a6ec9407822113cd73084e8c2f3954.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
disable_embedded_bitmaps=true
19+
multichannel_signed_distance_field=false
20+
msdf_pixel_range=8
21+
msdf_size=48
22+
allow_system_fallback=true
23+
force_autohinter=false
24+
modulate_color_glyphs=false
25+
hinting=3
26+
subpixel_positioning=4
27+
keep_rounding_remainders=true
28+
oversampling=0.0
29+
Fallbacks=null
30+
fallbacks=[]
31+
Compress=null
32+
compress=true
33+
preload=[]
34+
language_support={}
35+
script_support={}
36+
opentype_features={}

src/fonts/IBMPlexMono-Medium.ttf

134 KB
Binary file not shown.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://budo5l7eggqxd"
6+
path="res://.godot/imported/IBMPlexMono-Medium.ttf-121ae365973ba96b1148c96711f31f46.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://src/fonts/IBMPlexMono-Medium.ttf"
11+
dest_files=["res://.godot/imported/IBMPlexMono-Medium.ttf-121ae365973ba96b1148c96711f31f46.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
disable_embedded_bitmaps=true
19+
multichannel_signed_distance_field=false
20+
msdf_pixel_range=8
21+
msdf_size=48
22+
allow_system_fallback=true
23+
force_autohinter=false
24+
modulate_color_glyphs=false
25+
hinting=3
26+
subpixel_positioning=4
27+
keep_rounding_remainders=true
28+
oversampling=0.0
29+
Fallbacks=null
30+
fallbacks=[]
31+
Compress=null
32+
compress=true
33+
preload=[]
34+
language_support={}
35+
script_support={}
36+
opentype_features={}

src/fonts/IBMPlexMono-Regular.ttf

132 KB
Binary file not shown.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
[remap]
2+
3+
importer="font_data_dynamic"
4+
type="FontFile"
5+
uid="uid://bvxx1ggybj300"
6+
path="res://.godot/imported/IBMPlexMono-Regular.ttf-d1841532cb956438314ca1d5639fb532.fontdata"
7+
8+
[deps]
9+
10+
source_file="res://src/fonts/IBMPlexMono-Regular.ttf"
11+
dest_files=["res://.godot/imported/IBMPlexMono-Regular.ttf-d1841532cb956438314ca1d5639fb532.fontdata"]
12+
13+
[params]
14+
15+
Rendering=null
16+
antialiasing=1
17+
generate_mipmaps=false
18+
disable_embedded_bitmaps=true
19+
multichannel_signed_distance_field=false
20+
msdf_pixel_range=8
21+
msdf_size=48
22+
allow_system_fallback=true
23+
force_autohinter=false
24+
modulate_color_glyphs=false
25+
hinting=3
26+
subpixel_positioning=4
27+
keep_rounding_remainders=true
28+
oversampling=0.0
29+
Fallbacks=null
30+
fallbacks=[]
31+
Compress=null
32+
compress=true
33+
preload=[]
34+
language_support={}
35+
script_support={}
36+
opentype_features={}

src/global.gd

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ func _ready() -> void:
2828
if offline_playtest and not is_server:
2929
print("Offline playtest mode active: skipping Steam Web API auth ticket request.")
3030

31+
if not is_server:
32+
get_tree().node_added.connect(_apply_pointer_cursor)
33+
3134
map_manager = MapManager.new()
3235
server_bridge = ServerBridge.new()
3336

@@ -156,3 +159,7 @@ func is_sv() -> bool:
156159

157160
func is_offline_playtest_mode(user_args: PackedStringArray) -> bool:
158161
return user_args.has("--offline-playtest")
162+
163+
func _apply_pointer_cursor(node: Node) -> void:
164+
if node is BaseButton:
165+
(node as Control).mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND

src/info/info_ui.tscn

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,26 @@
1-
[gd_scene load_steps=4 format=3 uid="uid://bl135tiyyob7c"]
1+
[gd_scene load_steps=3 format=3 uid="uid://bl135tiyyob7c"]
22

33
[ext_resource type="Script" uid="uid://xcnyv7n0iyty" path="res://src/info/info_ui.gd" id="1_nty2f"]
44
[ext_resource type="Theme" uid="uid://3as6f5nxctip" path="res://src/main_theme.tres" id="1_o25e0"]
55

6-
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nty2f"]
7-
bg_color = Color(0, 0, 0, 0.74902)
8-
96
[node name="InfoUi" type="PanelContainer"]
107
z_index = 100
118
offset_right = 67.0
129
offset_bottom = 23.0
1310
theme = ExtResource("1_o25e0")
14-
theme_override_styles/panel = SubResource("StyleBoxFlat_nty2f")
1511
script = ExtResource("1_nty2f")
1612

1713
[node name="MarginContainer" type="MarginContainer" parent="."]
1814
layout_mode = 2
19-
theme_override_constants/margin_left = 20
20-
theme_override_constants/margin_top = 20
21-
theme_override_constants/margin_right = 20
22-
theme_override_constants/margin_bottom = 20
15+
theme_override_constants/margin_left = 18
16+
theme_override_constants/margin_top = 14
17+
theme_override_constants/margin_right = 18
18+
theme_override_constants/margin_bottom = 14
2319

2420
[node name="CenterContainer" type="CenterContainer" parent="MarginContainer"]
2521
layout_mode = 2
2622

2723
[node name="Label" type="Label" parent="MarginContainer/CenterContainer"]
2824
layout_mode = 2
29-
theme_override_font_sizes/font_size = 20
25+
theme_type_variation = &"BodyStrong"
3026
text = "Message"

0 commit comments

Comments
 (0)