Files
Billiards/scenes/game.gd
itdominator e3bdb21cd2 feat(game): add free ball mode and improve ball state handling
* add Free Ball game mode and lobby selection
* refactor base mode ball state tracking for reaped/sunk balls
* add player ownership tracking and colored-ball support
* add initial 9-ball mode implementation
* update 8-ball and snooker modes to use base ball handling
* replicate ball linear velocity for multiplayer synchronization
* improve ball collision sound propagation and physics settings
* reenable game music and initialize game signals
* improve lobby input focus and mode selection behavior
* adjust cue impulse origin and default game mode
2026-08-10 21:22:52 -05:00

29 lines
872 B
GDScript

class_name Game extends Node3D
@onready var base_environment: Node3D = $base_environment
@onready var game_manager: GameManager = $game_manager
func _ready() -> void:
base_environment.game_music.stream = load("res://sounds/music/Lobo Loco - 04 (Mountain Bells22).mp3")
base_environment.game_music.stream.loop = true
base_environment.game_music.play()
game_manager.set_mode(Globals.game_data.SelectedGameMode)
setup_signals()
setup_multiplayer()
func setup_signals() -> void:
Globals.game_state.reload_scene.connect(_reload_scene)
func setup_multiplayer() -> void:
if not Globals.multiplayer_data.is_multiplayer_active: return
Globals.game_state.reload_scene.disconnect(_reload_scene)
$camera_controller.find_child("reset_bttn", true, false).queue_free()
func _reload_scene() -> void:
Globals.game_state.set_game_scene("res://scenes/game.tscn")