extends Control class_name LobbyScreen signal vanilla_selected signal shop_selected(options) signal deeper_selected signal back_pressed # Node references @onready var vanilla_button = $BottomContainer/VanillaButton @onready var shop_button = $CenterContainer/ShopButton @onready var deeper_button = $BottomContainer/DeeperButton @onready var back_button = $BackButton @onready var run_count_label = $TopBar/RunCountLabel @onready var token_label = $TopBar/TokenContainer/TokenLabel var game: ChessGame var player: Player func _ready(): # Connect button signals if vanilla_button: vanilla_button.connect("pressed", Callable(self, "_on_vanilla_button_pressed")) if shop_button: shop_button.connect("pressed", Callable(self, "_on_shop_button_pressed")) if deeper_button: deeper_button.connect("pressed", Callable(self, "_on_deeper_button_pressed")) if back_button: back_button.connect("pressed", Callable(self, "_on_back_button_pressed")) func initialize(options = null): game = get_node_or_null("/root/Board") as ChessGame if game and "player" in game: player = game.player update_display() func update_display(): if player: if run_count_label: run_count_label.text = "RUN #" + str(player.get_run_count() + 1) if token_label: token_label.text = str(player.tokens) + " TOKENS" func _on_vanilla_button_pressed(): emit_signal("vanilla_selected") self.visible = false func _on_shop_button_pressed(): emit_signal("shop_selected", {}) self.visible = false func _on_deeper_button_pressed(): emit_signal("deeper_selected") self.visible = false func _on_back_button_pressed(): emit_signal("back_pressed") # self.visible = false func show_screen(): initialize() self.visible = true # Notification func _notification(what): if what == NOTIFICATION_VISIBILITY_CHANGED: _on_visibility_changed(visible) func _on_visibility_changed(is_visible): print("Lobby Screen visibility changed to: ", is_visible) if is_visible: update_display() else: print("Lobby Screen is now invisible") emit_signal("lobby_screen_visibility_changed", is_visible)