2024-02-22 06:22:22 +11:00
|
|
|
class_name SinglePlayerLobby extends Control
|
2023-11-08 14:28:55 +11:00
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
@export var scoreboard: Scoreboard
|
|
|
|
@export var loadout_editor: HeroSelector
|
|
|
|
@export var chatbox: Chatbox
|
2024-03-31 19:32:00 +11:00
|
|
|
@export var seed_entry: LineEdit
|
|
|
|
@export var ready_button: Button
|
|
|
|
@export var daily_button: Button
|
2024-02-22 06:22:22 +11:00
|
|
|
|
|
|
|
var connected_players_profiles: Dictionary = {}
|
|
|
|
var enet_peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
|
2023-11-08 14:28:55 +11:00
|
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
2023-11-09 20:37:12 +11:00
|
|
|
enet_peer.create_server(58008, 1)
|
|
|
|
multiplayer.multiplayer_peer = enet_peer
|
|
|
|
enet_peer.refuse_new_connections = true
|
2023-11-08 14:28:55 +11:00
|
|
|
setup_game()
|
|
|
|
|
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
func setup_game() -> void:
|
2023-11-08 14:28:55 +11:00
|
|
|
scoreboard.add_player(1, Data.player_profile)
|
|
|
|
scoreboard.all_players_ready.connect(start_game)
|
2024-03-31 19:32:00 +11:00
|
|
|
Game.game_setup.connect(setup_the_ui)
|
2023-11-17 20:49:38 +11:00
|
|
|
Game.chatbox = chatbox
|
2023-11-08 14:28:55 +11:00
|
|
|
chatbox.username = Data.player_profile.display_name
|
|
|
|
Data.player_profile.display_name_changed.connect(chatbox.change_username)
|
2023-12-09 01:09:12 +11:00
|
|
|
loadout_editor.hero_selected.connect(Data.player_profile.set_preferred_class)
|
2023-11-08 14:28:55 +11:00
|
|
|
connected_players_profiles[1] = Data.player_profile
|
2024-03-31 19:32:00 +11:00
|
|
|
Game.setup()
|
2023-11-08 14:28:55 +11:00
|
|
|
|
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
func start_game() -> void:
|
2023-11-08 14:28:55 +11:00
|
|
|
scoreboard.set_visible(false)
|
|
|
|
loadout_editor.set_visible(false)
|
2024-03-31 19:32:00 +11:00
|
|
|
seed_entry.set_visible(false)
|
|
|
|
daily_button.set_visible(false)
|
|
|
|
ready_button.set_visible(false)
|
|
|
|
Game.connected_player_profiles = connected_players_profiles
|
|
|
|
var chosen_seed: int
|
|
|
|
if seed_entry.text != "":
|
|
|
|
if seed_entry.text.is_valid_int():
|
|
|
|
chosen_seed = int(seed_entry.text)
|
|
|
|
else:
|
|
|
|
chosen_seed = hash(seed_entry.text)
|
|
|
|
Game.start(chosen_seed)
|
|
|
|
else:
|
|
|
|
Game.start()
|
2023-11-08 14:28:55 +11:00
|
|
|
|
|
|
|
|
2024-02-22 06:22:22 +11:00
|
|
|
func setup_the_ui() -> void:
|
2023-11-08 14:28:55 +11:00
|
|
|
scoreboard.unready_all_players()
|
|
|
|
scoreboard.set_visible(true)
|
|
|
|
loadout_editor.set_visible(true)
|
|
|
|
$ReadyButton.set_visible(true)
|
|
|
|
chatbox.set_visible(true)
|
2024-03-31 19:32:00 +11:00
|
|
|
seed_entry.set_visible(true)
|
|
|
|
daily_button.set_visible(true)
|
|
|
|
ready_button.set_visible(true)
|
2023-12-17 02:02:16 +11:00
|
|
|
|
|
|
|
|
|
|
|
func _on_button_mouse_entered() -> void:
|
|
|
|
$AudioStreamPlayer.play()
|
2024-03-31 19:32:00 +11:00
|
|
|
|
|
|
|
|
|
|
|
func _on_daily_button_pressed() -> void:
|
|
|
|
scoreboard.set_visible(false)
|
|
|
|
loadout_editor.set_visible(false)
|
|
|
|
seed_entry.set_visible(false)
|
|
|
|
daily_button.set_visible(false)
|
|
|
|
ready_button.set_visible(false)
|
|
|
|
Game.connected_player_profiles = connected_players_profiles
|
|
|
|
Game.start(hash(Time.get_date_string_from_system(true)))
|