package game import ( "strings" "thehouseoficarus/internal/casino" "thehouseoficarus/internal/net" ) // Tables are room fixtures in their own right, not authored scenery objects. func (g *Game) lookBlackjackTable(sess *net.Session, target string) bool { return g.lookCardTable(sess, target, casino.GameBlackjack) } func (g *Game) lookBaccaratTable(sess *net.Session, target string) bool { return g.lookCardTable(sess, target, casino.GameBaccarat) } func (g *Game) lookCrapsTable(sess *net.Session, target string) bool { return g.lookCardTable(sess, target, casino.GameCraps) } func (g *Game) lookRouletteTable(sess *net.Session, target string) bool { return g.lookCardTable(sess, target, casino.GameRoulette) } func (g *Game) lookCardTable(sess *net.Session, target string, game casino.GameName) bool { room, err := g.World.LoadRoom(sess.Player.RoomID) if err != nil { return false } target = strings.TrimSpace(strings.ToLower(target)) for _, cfg := range room.CasinoTables { if cfg.Game != game { continue } id := strings.ToLower(cfg.ID) if target != string(game) && target != string(game)+" table" && target != id && target != id+" table" && !(target == "table" && len(room.CasinoTables) == 1) { continue } // Use the active configuration: live edits may be pending until a round ends. table, ok := g.casinoTable(room.ID, string(cfg.Game)) if !ok { return false } sess.WriteLine(g.renderCasinoRules(sess, table.Config)) return true } return false }