Commit Graph

17 Commits

Author SHA1 Message Date
ed6f243b93 Refactor game mode scoring and win conditions
* Add overridable hooks for sunk/reaped ball handling and turn behavior.
* Implement default scoring and game-over messaging across game modes.
* Add pretty game mode names for win-condition messages.
* Update Free Ball, Last Ball, and Snooker modes to return win-condition messages.
* Move the reset button lookup to the scene root for multiplayer setup.
* Move camera controller scene to shared base UI. Move parts of it to new game_data UI node.
* Add commented test state generation for end-state testing.
2026-08-14 03:38:04 -05:00
034ba45859 Added icon and splash image 2026-08-13 00:33:16 -05:00
409680b94a major refactor(game-modes): centralize scoring and turn handling
* Move common ball recording, scoring, and turn-switching logic into `BaseMode`
* Add hooks for mode-specific ball handling and turn behavior
* Simplify 8-ball and 9-ball modes to use `LastBallMode`
* Update Snooker to use the new ball-processing hooks
* Remove duplicated scoring and turn-management code
2026-08-13 00:16:09 -05:00
7be84d8591 Added some point processing, cleanup 2026-08-12 22:36:45 -05:00
c95cc511e6 feat(game): refactor ball state and turn handling
* Replace `valid_end` with `is_foul` for invalid ball sinks
* Rename and centralize ball state tracking
* Add ball finalization and win-condition hooks
* Update turn switching to retain the player after valid sinks
* Apply negative points to reaped balls
* Add active-player indicator to the camera UI
* Emit active-player updates when the turn changes
2026-08-12 22:14:03 -05:00
09369d3dd4 refactor: reorganize networking and data bridge scenes
* Move networking scenes under `controllers/networking`
* Move data bridge scene under `scenes/data`
* Rename the bridge node to `data_bridge`
* Update lobby UI scene path
* Remove unused lobby RPC node/script
2026-08-12 16:52:16 -05:00
84b3600044 fix: refine game mode state tracking and turn handling
* Centralize ball state generation in `BaseMode`
* Track turn count, player, and ball state consistently
* Prevent 8-ball, 9-ball, and colored snooker balls from being marked valid when reaped/sunk
* Update mode initialization and ball-state assignment
* Normalize Free Ball mode node name to `freeball`
2026-08-11 23:59:30 -05:00
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
26dcfe0d1b refactor: improve multiplayer connection lifecycle
* Move client/server connection handling into game-specific networking classes
* Add multiplayer data reset for disconnected clients
* Clean up invalid MessageBus listeners after disconnects
* Persist lobby host address and port in game data
* Standardize the default server port to 8080
* Increase server address input length to support valid addresses
* Remove obsolete connection and match initialization logic from base networking
2026-08-10 00:40:45 -05:00
93a2be399c refactor: decouple game networking from lobby client
* Replace direct client/server networking references with GameClient/GameServer scenes
* Refactor message bus to support local emission and argument expansion
* Move lobby connection lifecycle handling to message bus events
* Remove multiplayer connection wait helpers and direct lobby client coupling
* Rename Server to ServerNetworking and update lobby client references
* Update scene resources and export configuration
2026-08-09 18:41:18 -05:00
50439bc8e0 Moving some of game to use MessageBus 2026-08-08 01:22:54 -05:00
6ebee75920 update readme and .gitignore file 2026-08-07 03:08:08 -05:00
3093428a21 update readme and .gitignore file 2026-08-07 03:06:52 -05:00
af012d06e8 update readme 2026-08-07 02:53:49 -05:00
f5d6c640ae push project up sabs assets 2026-08-07 02:50:54 -05:00
71b666c683 Initial push 2 2026-08-07 02:41:57 -05:00
a1df97ebac Initial push 2026-08-07 02:35:09 -05:00