diff options
| author | historia <[not public]> | 2026-09-15 14:18:14 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-09-15 14:18:14 -0400 |
| commit | 396c3facb8287b9a34076cae8f3d7b300d366d99 (patch) | |
| tree | 941f280d051fac474fa68ca08318a8d16adc8d0f /internal/game/casino.go | |
| parent | b3568f03e4103dd46db2ccc680fbab0a6454d604 (diff) | |
| download | thehouseoficarus-396c3facb8287b9a34076cae8f3d7b300d366d99.tar.gz | |
fix: atomic saves, casino RNG/config isolation, tick lifecycle
Diffstat (limited to 'internal/game/casino.go')
| -rw-r--r-- | internal/game/casino.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/internal/game/casino.go b/internal/game/casino.go index 2e80bf3..eb6fa4a 100644 --- a/internal/game/casino.go +++ b/internal/game/casino.go @@ -62,6 +62,9 @@ func (g *Game) casinoTable(roomID int, gameName string) (*casino.Table, bool) { if err != nil { return nil, false } + if casino.ValidateRoomConfigs(room.CasinoTables, room.CasinoMachines) != nil { + return nil, false + } for _, cfg := range room.CasinoTables { if strings.EqualFold(string(cfg.Game), gameName) { table := g.Casino.EnsureTable(roomID, cfg) @@ -79,9 +82,13 @@ func (g *Game) casinoMachine(roomID int, gameName string) (*casino.Machine, bool if err != nil { return nil, false } + if casino.ValidateRoomConfigs(room.CasinoTables, room.CasinoMachines) != nil { + return nil, false + } for _, cfg := range room.CasinoMachines { if strings.EqualFold(string(cfg.Game), gameName) || strings.EqualFold(cfg.Variant, gameName) { - return g.Casino.EnsureMachine(roomID, cfg), true + machine := g.Casino.EnsureMachine(roomID, cfg) + return machine, machine != nil } } // Migrate older room definitions that declared slots under casino_tables; @@ -89,9 +96,10 @@ func (g *Game) casinoMachine(roomID int, gameName string) (*casino.Machine, bool if strings.EqualFold(gameName, "slots") { for _, cfg := range room.CasinoTables { if strings.EqualFold(string(cfg.Game), "slots") { - return g.Casino.EnsureMachine(roomID, casino.MachineConfig{ + machine := g.Casino.EnsureMachine(roomID, casino.MachineConfig{ ID: cfg.ID, Game: casino.GameSlots, MinBet: cfg.MinBet, MaxBet: cfg.MaxBet, - }), true + }) + return machine, machine != nil } } } |
