class_name FreeBall extends BaseMode func _init() -> void: pass func reap_ball(ball: Node3D) -> void: super(ball) func process_ball(ball: Node3D) -> void: super(ball) func handle_switch_user() -> void: push_warning("Balls reaped: ", balls_reaped.size() ) push_warning("Balls sunk: ", balls_sunk.size() ) var is_player_1: bool = "Player 1" == get_player() var switch_player: bool = true if not balls_reaped.is_empty(): for ball_name in balls_reaped: if is_player_1: player_1_points -= ball_states[ball_name]["points"] else: player_2_points -= ball_states[ball_name]["points"] balls_reaped.clear() if not balls_sunk.is_empty(): for ball_name in balls_sunk: if is_player_1: player_1_points += ball_states[ball_name]["points"] else: player_2_points += ball_states[ball_name]["points"] switch_player = false balls_sunk.clear() if ball_states_finalized(): process_win_condition() return if switch_player: Globals.game_state.switch_active_player() turn_count += 1 func process_win_condition() -> void: pass