class_name BaseMode extends Node # NOTE: The ball's queue_free is called higher up and after game mode handles # the ball. Never call it in a given game mode. A game mode should handle # these signals to handle game related rules regarding ball sinks. var ball_state := generate_ball_state() var balls_sunk := [] var balls_reaped := [] var STATE: Dictionary = { "sunk": false } func generate_ball_state() -> Dictionary: var state := {} for i in range(1, 16): state["%02d_ball" % i] = STATE return state func reap_ball(_ball: Node3D) -> void: assert(false, "This method needs to be overridden...") func process_ball(_ball: Node3D) -> void: assert(false, "This method needs to be overridden...") func handle_switch_user() -> void: assert(false, "This method needs to be overridden...")