game_sync/gamerule/blackjack/constants.go

105 lines
2.6 KiB
Go

package blackjack
import (
"time"
)
const MaxCardNum = 5 // 最大手牌数量
const MaxPlayer = 5 // 玩家数量
const PokerNum = 8 // 8副牌
const OneCard = 100 // 牌背
const AudienceNum = 1 // 总人数
// 房间模式
const (
RoomModeClassic = 0 // 经典模式
)
// 游戏状态
const (
StatusWait = 0 // 等待状态
StatusReady = 1 // 准备状态
StatusBet = 2 // 下注状态
StatusDeal = 3 // 发牌状态
StatusBuy = 4 // 买保险状态
StatusBuyEnd = 5 // 保险结算状态
StatusPlayer = 6 // 闲家操作
StatusBanker = 7 // 庄家操作
StatusEnd = 8 // 结算状态
StatusMax = 9 // 游戏状态数量
)
// 玩家操作
const (
SubBet = 0 // 下注
SubBuy = 1 // 买保险 0不买 1买
SubFenPai = 2 // 分牌
SubDouble = 3 // 双倍
SubSkip = 4 // 停牌
SubOuts = 5 // 要牌
SubLeave = 6 // 离开
SubSit = 7 // 坐下
SubSkipLeft = 40
SubSkipBomb = 41
)
// 正在操作左右牌
const (
OpDefault = 0 // 默认操作
OpRight = 1 // 操作右牌
)
// 超时时间
const (
TimeoutReady = time.Second * 3 // 准备时间
TimeoutBet = time.Second * 15 // 下注时间
TimeoutDeal = time.Second * 3 // 发牌时间
TimeoutBuy = time.Second * 10 // 买保险时间
TimeoutBuyEnd = time.Second * 3 // 保险结算时间(每人)
TimeoutPlayer = time.Second * 10 // 闲家操作时间
TimeoutBanker = time.Second * 5 // 庄家操作时间
TimeoutEnd = time.Second * 5 // 结算时间()
TimeoutEndWin = time.Second * 5 // 结算时间(全赢)5s
TimeoutEndLost = time.Second * 6 // 结算时间(全输)6s
TimeoutEndWinAndLost = time.Second * 8 // 结算时间(有输有赢)8s
TimeoutDelayOp = time.Millisecond * 800 //玩家等待操作时间 0.8s
)
//结算结果
const (
ResultDefault = iota //默认结果
ResultWin //赢
ResultLost //输
ResultWinAndLost //有输有赢
)
// 赔率
const (
//BaoRate = 2 // 保险金赔率1:2
A10Rate = 1.5 // 黑杰克赔率2:3
FiveRate = 1.5 // 五小龙赔率2:3
//C21Rate = 1 // 普通21赔率1:1
OtherRate = 1 // 其他点赔率1:1
)
func CardsToInt32(cards []*Card) []int32 {
var ret = make([]int32, 0, len(cards))
for _, v := range cards {
ret = append(ret, int32(v.Value()))
}
return ret
}
var Action = map[string]int{
"split": SubFenPai,
"double": SubDouble,
"supply": SubOuts,
"pass": SubSkip,
}
const (
CharacterA = 1 // 激进性格
CharacterB = 2 // 正常性格
CharacterC = 3 // 保守性格
)