extends Control @export var max_players = 4 const game_scene = "res://main.tscn" # Path to the main game scene var ready_states = {} # Dictionary to track ready states for each player ID @onready var player_list = $PlayerList @onready var start_button = $StartButton func _ready() -> void: start_button.disabled = true start_button.connect("pressed", _on_start_game) func _process(delta: float) -> void: # Handle player joining if (Input.is_action_just_pressed("throw_bomb")): add_player(-1) # -1 for keyboard for i in range(0, 7): # 0-7 for controllers if (i >= 0 and Input.is_joy_button_pressed(i, JOY_BUTTON_A)): add_player(i) func add_player(input_id: int) -> void: # Prevent duplicate players if input_id in Global.player_ids: return if len(Global.player_ids) >= max_players: return # Max players reached # Add player to the list Global.player_ids.append(input_id) # Create a new label to display the player ID var label = Label.new() label.text = "Player ID: %d" % input_id player_list.add_child(label) # Track ready state for the player ready_states[input_id] = false # Update the start button state check_all_ready() func check_all_ready() -> void: # Enable the start button if at least one player has joined start_button.disabled = len(Global.player_ids) == 0 func _on_start_game() -> void: get_tree().change_scene_to_file(game_scene)