class_name GameManager extends GamManagerMultiplayer func _ready() -> void: setup_signals() setup_multiplayer() func setup_signals() -> void: Globals.game_state.balls_stopped_moving.connect(_balls_stopped_moving) Globals.game_state.reap_ball.connect(_reap_ball) Globals.game_state.process_ball.connect(_process_ball) func _reap_ball(ball: Node3D) -> void: if ball.name == "white_ball": Globals.game_state.white_ball_needs_hard_reset.emit() return mode.reap_ball(ball) rpc("reap_ball", str(ball.get_path())) func _process_ball(ball: Node3D) -> void: if ball.name == "white_ball": # NOTE: Signal to reset 'white_ball' to 'white_ball_marker' global_pos Globals.game_state.white_ball_sunk.emit() return mode.process_ball(ball) rpc("reap_ball", str(ball.get_path()))