diff options
author | tpart <tpart120@proton.me> | 2024-08-10 23:55:22 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2024-08-10 23:55:22 +0200 |
commit | fbcc21f2cb8c19e32a3e4b542535479ab7343169 (patch) | |
tree | 0bf4114e4c15d6095a08979e3efceef1feca07c2 /client/menu | |
parent | 519dc4d6b77ba59028c20c61c81f3801fcb811d2 (diff) | |
download | hurrycurry-fbcc21f2cb8c19e32a3e4b542535479ab7343169.tar hurrycurry-fbcc21f2cb8c19e32a3e4b542535479ab7343169.tar.bz2 hurrycurry-fbcc21f2cb8c19e32a3e4b542535479ab7343169.tar.zst |
Show map list in lobby for quick selection
Diffstat (limited to 'client/menu')
-rw-r--r-- | client/menu/lobby.gd | 10 | ||||
-rw-r--r-- | client/menu/lobby.tscn | 16 | ||||
-rw-r--r-- | client/menu/scroll_container_custom.gd | 3 |
3 files changed, 24 insertions, 5 deletions
diff --git a/client/menu/lobby.gd b/client/menu/lobby.gd index 67b5ff8e..f2c5e1d7 100644 --- a/client/menu/lobby.gd +++ b/client/menu/lobby.gd @@ -30,6 +30,7 @@ var difficulty_names = [tr("Easy"), tr("Moderate"), tr("Hard"), tr("Very hard"), @onready var map_name_label = $HBoxContainer/Bottom/MarginContainer/VBoxContainer/HBoxContainer/Map/Name @onready var map_player_label = $HBoxContainer/Bottom/MarginContainer/VBoxContainer/HBoxContainer/Map/Players @onready var map_difficulty_label = $HBoxContainer/Bottom/MarginContainer/VBoxContainer/HBoxContainer/Map/Difficulty +@onready var map_list = $HBoxContainer/Bottom/MarginContainer/VBoxContainer/MapList/VBoxContainer @onready var map_selector = $HBoxContainer/Bottom/MarginContainer/VBoxContainer/HBoxContainer @onready var prev_map = $HBoxContainer/Bottom/MarginContainer/VBoxContainer/HBoxContainer/VBoxContainer/Left @@ -47,6 +48,14 @@ func _ready(): func initialize(): map_count = game.maps.size() + var i := 0 + for m in game.maps.keys(): + var b = Button.new() + b.name = m + b.text = "%s (%d)" % [game.maps[m]["name"], game.maps[m]["players"]] + b.pressed.connect(select_map.bind(i)) + map_list.add_child(b) + i += 1 select_map(0) func select_map(i: int): @@ -59,6 +68,7 @@ func select_map(i: int): map_player_label.text = tr("%d players recommended") % map_data["players"] map_difficulty_label.text = difficulty_names[map_data["difficulty"] - 1] selected_map_name = k + map_list.get_child(i).grab_focus() func update_players(player_list: Dictionary): for i in player_container.get_children(): diff --git a/client/menu/lobby.tscn b/client/menu/lobby.tscn index ea415417..e9bac46b 100644 --- a/client/menu/lobby.tscn +++ b/client/menu/lobby.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://bc50la65ntifb"] +[gd_scene load_steps=15 format=3 uid="uid://bc50la65ntifb"] [ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme/theme.tres" id="1_u18ke"] [ext_resource type="Script" path="res://menu/lobby.gd" id="2_7657i"] @@ -11,6 +11,7 @@ [ext_resource type="PackedScene" uid="uid://b1f7bgn65j7b5" path="res://menu/controller_buttons/controller_button.tscn" id="7_t6mox"] [ext_resource type="FontFile" uid="uid://5ixo6b3bd3km" path="res://menu/theme/font-josefin-sans.woff2" id="8_cwbpa"] [ext_resource type="Texture2D" uid="uid://bsx6fo7mv2u6a" path="res://menu/controller_buttons/x.svg" id="9_q14bw"] +[ext_resource type="Script" path="res://menu/scroll_container_custom.gd" id="10_bgene"] [ext_resource type="Texture2D" uid="uid://cr2a6ide6vnnv" path="res://menu/controller_buttons/y.svg" id="11_5uugf"] [sub_resource type="FontVariation" id="FontVariation_5xxr2"] @@ -107,13 +108,18 @@ texture_focused = ExtResource("6_tulu3") ignore_texture_size = true stretch_mode = 4 -[node name="Players" type="HBoxContainer" parent="HBoxContainer/Bottom/MarginContainer/VBoxContainer"] +[node name="MapList" type="ScrollContainer" parent="HBoxContainer/Bottom/MarginContainer/VBoxContainer"] layout_mode = 2 -alignment = 1 +size_flags_vertical = 3 +script = ExtResource("10_bgene") -[node name="Spacer" type="Control" parent="HBoxContainer/Bottom/MarginContainer/VBoxContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/Bottom/MarginContainer/VBoxContainer/MapList"] layout_mode = 2 -size_flags_vertical = 3 +size_flags_horizontal = 3 + +[node name="Players" type="HBoxContainer" parent="HBoxContainer/Bottom/MarginContainer/VBoxContainer"] +layout_mode = 2 +alignment = 1 [node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/Bottom/MarginContainer/VBoxContainer"] layout_mode = 2 diff --git a/client/menu/scroll_container_custom.gd b/client/menu/scroll_container_custom.gd index 73780ae2..cc578bb1 100644 --- a/client/menu/scroll_container_custom.gd +++ b/client/menu/scroll_container_custom.gd @@ -21,6 +21,9 @@ class_name ScrollContainerCustom const SCROLL_SPEED := 1000. var velocity := 0. +func _init(): + follow_focus = true + func _process(delta): velocity = G.interpolate(velocity, 0., delta * 5.) velocity = 0. if abs(velocity) < .001 else velocity |