summaryrefslogtreecommitdiff
path: root/scripts/MainMenu.gd
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2025-08-22 12:46:04 -0700
committerAnson Bridges <bridges.anson@gmail.com>2025-08-22 12:46:04 -0700
commit64f37f4209d80bfad976dd4a139c98002caef15f (patch)
tree94c91953986e960573ae0092f8ad7120c1c266f0 /scripts/MainMenu.gd
parent255fbf19cc9499ef384d41f68515da5e49e8a3ce (diff)
the harmonious transition from menu to gameHEADmaster
Diffstat (limited to 'scripts/MainMenu.gd')
-rw-r--r--scripts/MainMenu.gd27
1 files changed, 25 insertions, 2 deletions
diff --git a/scripts/MainMenu.gd b/scripts/MainMenu.gd
index fca6658..3411054 100644
--- a/scripts/MainMenu.gd
+++ b/scripts/MainMenu.gd
@@ -1,7 +1,7 @@
extends Control
-signal game_host_request(args)
-signal game_join_request(args)
+signal game_host_request(game_name, username, max_players, private, password)
+signal game_join_request(lobby_id, password, username, args)
var lobby_name_changed : bool = false # automatically update lobby name to be based on player's name
@@ -14,8 +14,19 @@ func _ready():
$SettingsMenu/GameCoordinatorURL.connect("text_changed", Globals, "update_gc_url")
$PlayerInfo/Username.connect("text_changed", self, "automatically_update_lobby_name")
$HostMenu/GameName.connect("text_changed", self, "set_lobby_name_changed")
+
+ $HostMenu/HostButton.connect("pressed", self, "on_host_button_pressed")
+ $JoinMenu/JoinButton.connect("pressed", self, "on_join_button_pressed")
#main_menu() # in case things are incorrectly visible from editing
+func open_popup(title, message, close_disabled = false):
+ $NotifPopup.popup_centered()
+ $NotifPopup/PopupControl/TitleLabel.text = title
+ $NotifPopup/PopupControl/MessageLabel.text = message
+ $NotifPopup/PopupControl/ClosePopupButton.disabled = close_disabled
+
+func close_popup():
+ $NotifPopup.visible = false
func set_lobby_name_changed(_disregard_new_text):
lobby_name_changed = true
@@ -54,6 +65,8 @@ func set_back_button_visible(visible : bool):
$BackButton.visible = visible
$BackButton.disabled = false # reset in case left disabled by other function
+## MENU CALLBACKS
+
# go to join game menu
func join_menu_button_pressed(lobby_id_from_url : String = "", password_from_url : String = ""):
set_menu_buttons_visible(false)
@@ -82,3 +95,13 @@ func settings_menu_button_pressed():
# return to main menu
func back_button():
main_menu()
+
+## GAME CALLBACKS
+func on_join_button_pressed():
+ open_popup("Connecting...", "Connecting to game coordinator...", true)
+ var args = { "color_pref_1" : $PlayerInfo/PlayerColor.selected, "color_pref_2" : $PlayerInfo/AltPlayerColor.selected }
+ emit_signal("game_join_request", $JoinMenu/LobbyID.text, $JoinMenu/Password.text, $PlayerInfo/Username.text, args)
+
+func on_host_button_pressed():
+ open_popup("Connecting...", "Connecting to game coordinator...", true)
+ emit_signal("game_host_request", $HostMenu/GameName.text, $PlayerInfo/Username.text, $HostMenu/PlayerCount.get_selected_id(), $HostMenu/PrivateToggle.pressed, $HostMenu/Password.text)