extends Control @export var player_1_deck: Array[Card] @export var player_2_deck: Array[Card] @onready var match_manager = $MatchManager @onready var own_side = $Own @onready var opponent_side = $Opponent @onready var start_game_btn = $StartGameButton var player_action_queue: Dictionary var player_1_action: Action: get: return player_action_queue.get(MatchManager.PLAYER_1_ID) set(value): player_action_queue[MatchManager.PLAYER_1_ID] = value var player_2_action: Action: get: return player_action_queue.get(MatchManager.PLAYER_2_ID) set(value): player_action_queue[MatchManager.PLAYER_2_ID] = value func _ready() -> void: match_manager.init({ MatchManager.PLAYER_1_ID: player_1_deck, MatchManager.PLAYER_2_ID: player_2_deck }) own_side.attach(match_manager) opponent_side.attach(match_manager) match_manager.state_transitioned.connect(_on_match_manager_state_transitioned) var transition_history: Array[PhaseTransition] = [] func _on_match_manager_state_transitioned(transition: PhaseTransition): start_game_btn.visible = match_manager.phase == Match.Phase.PREGAME transition_history.append(transition) print("Phase: ", Match.phase_to_str(transition.from), " -> ", Match.phase_to_str(transition.to)) func _on_start_game_button_button_up() -> void: match_manager.resolve({}) func _on_own_play_card(card: Card) -> void: player_1_action = ActionPlayCard.new(card) if player_2_action: match_manager.resolve(player_action_queue) player_action_queue.clear() func _on_opponent_play_card(card: Card) -> void: player_2_action = ActionPlayCard.new(card) if player_1_action: match_manager.resolve(player_action_queue) player_action_queue.clear() func _on_own_rps_move(move: String) -> void: player_1_action = ActionRPSMove.new(move) if player_2_action: match_manager.resolve(player_action_queue) player_action_queue.clear() func _on_opponent_rps_move(move: String) -> void: player_2_action = ActionRPSMove.new(move) if player_1_action: match_manager.resolve(player_action_queue) player_action_queue.clear()