Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions src/menus/main/main_menu.gd
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,11 @@ func _ready() -> void:
func _instantiate_maps() -> void:
var mode_to_container: Dictionary[String, ModeContainer]

for child: ModeContainer in mode_switcher.get_children():
mode_to_container[child.mode] = child
for child in mode_switcher.get_children():
if child is not ModeContainer:
continue
var mode_container := child as ModeContainer
mode_to_container[mode_container.mode] = mode_container

mode_to_container[Global.game_manager.current_mode].visible = true

Expand Down
46 changes: 23 additions & 23 deletions src/menus/main/main_menu.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("1_wwn1r")
script = ExtResource("1_cput1")
target_practice_leaderboard = NodePath("MarginContainer/Content/Body/Leaderboard/Overall/H/VBoxContainer/TargetPracticeLeaderboard")
movement_only_leaderboard = NodePath("MarginContainer/Content/Body/Leaderboard/Overall/H/VBoxContainer2/MovementOnlyLeaderboard")
target_practice_leaderboard = NodePath("MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H/VBoxContainer/TargetPracticeLeaderboard")
movement_only_leaderboard = NodePath("MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H/VBoxContainer2/MovementOnlyLeaderboard")

[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1955005440]
layout_mode = 1
Expand Down Expand Up @@ -283,22 +283,12 @@ mode = "bhop"
metadata/_custom_type_script = "uid://be34vbfubnjti"
metadata/_tab_index = 1

[node name="Aim Trainer" parent="MarginContainer/Content/Body" unique_id=792485455 instance=ExtResource("17_aim")]
visible = false
layout_mode = 2
metadata/_tab_index = 1

[node name="Server Browser" parent="MarginContainer/Content/Body" unique_id=1793080607 instance=ExtResource("6_og6j4")]
[node name="Leaderboard" type="Control" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher" unique_id=1078392968]
visible = false
layout_mode = 2
metadata/_tab_index = 2

[node name="Leaderboard" type="Control" parent="MarginContainer/Content/Body" unique_id=1078392968]
visible = false
layout_mode = 2
metadata/_tab_index = 3

[node name="Overall" type="VBoxContainer" parent="MarginContainer/Content/Body/Leaderboard" unique_id=1926363149]
[node name="Overall" type="VBoxContainer" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard" unique_id=1926363149]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
Expand All @@ -313,44 +303,54 @@ grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 20

[node name="H" type="HBoxContainer" parent="MarginContainer/Content/Body/Leaderboard/Overall" unique_id=257135821]
[node name="H" type="HBoxContainer" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall" unique_id=257135821]
layout_mode = 2
theme = SubResource("Theme_og6j4")
theme_override_constants/separation = 50

[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/Content/Body/Leaderboard/Overall/H" unique_id=1128228830]
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H" unique_id=1128228830]
layout_mode = 2

[node name="Label" type="Label" parent="MarginContainer/Content/Body/Leaderboard/Overall/H/VBoxContainer" unique_id=637673176]
[node name="Label" type="Label" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H/VBoxContainer" unique_id=637673176]
layout_mode = 2
theme_override_font_sizes/font_size = 25
text = "Target Practice"

[node name="TargetPracticeLeaderboard" type="VBoxContainer" parent="MarginContainer/Content/Body/Leaderboard/Overall/H/VBoxContainer" unique_id=1291506203]
[node name="TargetPracticeLeaderboard" type="VBoxContainer" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H/VBoxContainer" unique_id=1291506203]
layout_mode = 2

[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/Content/Body/Leaderboard/Overall/H" unique_id=15554509]
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H" unique_id=15554509]
layout_mode = 2

[node name="Label" type="Label" parent="MarginContainer/Content/Body/Leaderboard/Overall/H/VBoxContainer2" unique_id=2137644706]
[node name="Label" type="Label" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H/VBoxContainer2" unique_id=2137644706]
layout_mode = 2
theme_override_font_sizes/font_size = 25
text = "Movement Only"

[node name="MovementOnlyLeaderboard" type="VBoxContainer" parent="MarginContainer/Content/Body/Leaderboard/Overall/H/VBoxContainer2" unique_id=257067248]
[node name="MovementOnlyLeaderboard" type="VBoxContainer" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall/H/VBoxContainer2" unique_id=257067248]
layout_mode = 2

[node name="Label" type="Label" parent="MarginContainer/Content/Body/Leaderboard/Overall" unique_id=1815162472]
[node name="Label" type="Label" parent="MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher/Leaderboard/Overall" unique_id=1815162472]
layout_mode = 2
theme_override_font_sizes/font_size = 13
text = "Points are given based on runs in the top 10.
1st place is 10 points, 2nd place is 9 points, etc.."
horizontal_alignment = 1

[node name="Aim Trainer" parent="MarginContainer/Content/Body" unique_id=792485455 instance=ExtResource("17_aim")]
visible = false
layout_mode = 2
metadata/_tab_index = 1

[node name="Server Browser" parent="MarginContainer/Content/Body" unique_id=1793080607 instance=ExtResource("6_og6j4")]
visible = false
layout_mode = 2
metadata/_tab_index = 2

[node name="Settings" type="Control" parent="MarginContainer/Content/Body" unique_id=1145642441]
visible = false
layout_mode = 2
metadata/_tab_index = 4
metadata/_tab_index = 3

[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/Content/Body/Settings" unique_id=199957781]
layout_mode = 1
Expand Down
25 changes: 25 additions & 0 deletions tests/aim_menu_smoke.gd
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,31 @@ func _run() -> void:
main_menu.has_node("MarginContainer/Content/Body/Aim Trainer"),
"Main menu should expose an Aim Trainer tab",
)
var speedrun_modes_path := "MarginContainer/Content/Body/Speedrun/M/V/ModeSwitcher"
var speedrun_leaderboard_path := speedrun_modes_path + "/Leaderboard"
var target_leaderboard_path := speedrun_leaderboard_path + "/Overall/H/VBoxContainer/TargetPracticeLeaderboard"
var movement_leaderboard_path := speedrun_leaderboard_path + "/Overall/H/VBoxContainer2/MovementOnlyLeaderboard"
var speedrun_modes = main_menu.get_node(speedrun_modes_path)
_check(
speedrun_modes.get_tab_count() == 3,
"Speedrun should expose Target Practice, Movement Only, and Leaderboard tabs",
)
_check(
main_menu.has_node(speedrun_leaderboard_path),
"Speedrun should expose a dedicated leaderboard mode tab",
)
_check(
main_menu.has_node(target_leaderboard_path),
"Speedrun leaderboard tab should expose Target Practice rankings",
)
_check(
main_menu.has_node(movement_leaderboard_path),
"Speedrun leaderboard tab should expose Movement Only rankings",
)
_check(
not main_menu.has_node("MarginContainer/Content/Body/Leaderboard"),
"Main menu should not expose a separate Leaderboard tab",
)

var global_node = root.get_node_or_null("Global")
_check(global_node != null, "Global autoload should exist during the smoke test")
Expand Down
Loading