blob: 2a0712d617c1452134b0ade7aec9b1122f5c19ad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package game
import (
"strings"
"thehouseoficarus/internal/casino"
"thehouseoficarus/internal/net"
)
// A cabinet's published pay table is public; another player's cards are not.
func (g *Game) lookVideoPokerCabinet(sess *net.Session, target string) bool {
if g.Casino == nil || sess.Player == nil {
return false
}
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 != casino.GameVideoPoker {
continue
}
id := strings.ToLower(cfg.ID)
if target != id && target != id+" machine" && target != id+" cabinet" {
continue
}
table, ok := g.casinoTable(room.ID, cfg.ID)
if !ok {
return false
}
if seated, playing := g.Casino.Participation(sess.Player.Name); playing && seated == table {
g.emitCasinoEvents(table.Status(sess.Player.Name))
return true
}
c := table.Config.VideoPoker.Normalize()
sess.WriteLine(table.Config.Label() + g.renderCasinoSnapshot(sess, &casino.VideoPokerSnapshot{Config: c, ShowPayTable: true, Denomination: 1, Hands: casino.CabinetHandCounts(c.Cabinet, c.Variant)[0], FeatureOn: c.Feature != "", Multiplier: 1}))
return true
}
return false
}
|