Chelimbalo/gui/host_menu/host_menu.gd

60 lines
1.9 KiB
GDScript

extends VBoxContainer
var levels_by_index: Array[StringName] = []
func _ready() -> void:
%RoundTimeBox.set_value_no_signal(LobbySettings.round_time)
%BombTimeBox.set_value_no_signal(LobbySettings.bomb_time)
%BuyTimeBox.set_value_no_signal(LobbySettings.buy_time)
%TeamSwitchBox.set_value_no_signal(LobbySettings.half_rounds)
%RoundBox.set_value_no_signal(LobbySettings.win_score)
%AllowMultipleAbilityButton.set_pressed_no_signal(LobbySettings.allow_multiple_abilities)
%AllowTeamSwitch.set_pressed_no_signal(LobbySettings.allow_team_switch)
%InfiniteMoney.set_pressed_no_signal(LobbySettings.infinite_money)
var popup: PopupMenu = %MapsButton.get_popup()
%MapsButton.text = LobbySettings.selected_map
popup.index_pressed.connect(on_maps_index_pressed)
for level in Registry.maps.keys():
levels_by_index.append(level)
popup.add_item(level)
func _on_round_time_box_value_changed(value: float) -> void:
LobbySettings.round_time = value
func _on_bomb_time_box_value_changed(value: float) -> void:
LobbySettings.bomb_time = value
func _on_buy_time_box_value_changed(value: float) -> void:
LobbySettings.buy_time = value
func _on_round_box_value_changed(value: float) -> void:
LobbySettings.win_score = int(value)
%TeamSwitchBox.value = value-1
func _on_team_switch_box_value_changed(value: float) -> void:
LobbySettings.half_rounds = int(value)
func _on_allow_multiple_ability_button_toggled(toggled_on: bool) -> void:
LobbySettings.allow_multiple_abilities = toggled_on
func _on_shuffle_pressed() -> void:
Lobby.shuffle_teams()
func _on_allow_team_switch_toggled(toggled_on: bool) -> void:
LobbySettings.allow_team_switch = toggled_on
func on_maps_index_pressed(index: int):
%MapsButton.text = levels_by_index[index]
LobbySettings.selected_map = levels_by_index[index]
func _on_infinite_money_toggled(toggled_on: bool) -> void:
LobbySettings.infinite_money = toggled_on