67 lines
No EOL
1.8 KiB
GDScript
67 lines
No EOL
1.8 KiB
GDScript
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 |