extends Node class_name GameManager @export var prompt_ask_name: Dictionary @onready var action_ask_name: Action = Action.new(prompt_ask_name, func(player:Player,answer:String): player.player_name = answer.strip_edges().capitalize(); return true) @export var prompt_ask_pronouns: Dictionary @onready var action_ask_pronouns: Action = Action.new(prompt_ask_pronouns, func(player:Player,answer:String): player.player_pronouns = answer; return true) var player_actions: Dictionary = {} func _ready() -> void: $"../../Players".connect("player_joined", on_player_joined) func on_player_joined(player: Player) -> void: player.connect("prompt_answered", on_player_answered_prompt.bind(player)) check_player_setup(player) func check_player_setup(player: Player) -> void: if player.player_name.is_empty(): run_player_action(player, action_ask_name) elif player.player_pronouns.is_empty(): run_player_action(player, action_ask_pronouns) func run_player_action(player: Player, action: Action) -> void: player_actions[player] = action player.send_prompt(action.prompt) func on_player_answered_prompt(answer: String, player: Player) -> void: var action: Action = player_actions.get(player) if action == null: return var validated: bool = action.prompt_answered(player,answer) if validated: player_actions.erase(player) check_player_setup(player) else: # send it back with some kind of error? run_player_action(player, action)