game/server/colorgame/room/process.go

169 lines
5.4 KiB
Go
Raw Normal View History

2025-06-08 00:52:17 +08:00
package room
2025-06-09 19:10:18 +08:00
import (
"game/common/proto/pb"
"time"
)
func (rm *ColorRoom) gameStart() {
rm.setStatus(pb.ColorGameStatus_CGS_Start)
2025-06-09 23:52:18 +08:00
rm.resetGameData()
2025-06-09 19:10:18 +08:00
rm.notifyGameStart()
rm.NewTimer(TtStartBetting, time.Duration(rm.timingCfg.Start)*time.Millisecond)
}
2025-06-09 23:52:18 +08:00
func (rm *ColorRoom) gameStartBetting() {
2025-06-09 19:10:18 +08:00
rm.setStatus(pb.ColorGameStatus_CGS_Betting)
rm.notifyBetting()
rm.NewTimer(TtEndBet, time.Duration(rm.timingCfg.Betting)*time.Millisecond)
rm.NewTimer(TtSecond, time.Second)
2025-06-09 19:10:18 +08:00
}
2025-06-09 23:52:18 +08:00
func (rm *ColorRoom) gameEndBetting() {
2025-06-09 19:10:18 +08:00
rm.setStatus(pb.ColorGameStatus_CGS_BetEnd)
rm.updateEndBetAreaMul()
rm.notifyEndBetting()
rm.NewTimer(TtOpenThreeDices, time.Duration(rm.timingCfg.EndBetting)*time.Millisecond)
}
2025-06-09 23:52:18 +08:00
func (rm *ColorRoom) gameOpenThreeDices() {
2025-06-09 19:10:18 +08:00
rm.setStatus(pb.ColorGameStatus_CGS_OpenThreeDice)
2025-06-09 23:52:18 +08:00
rm.openDices()
2025-06-09 19:10:18 +08:00
rm.notifyOpenThreeDice()
rm.NewTimer(TtSettle, time.Duration(rm.timingCfg.OpenThreeDice)*time.Millisecond)
}
2025-06-09 23:52:18 +08:00
func (rm *ColorRoom) gameSettle() {
2025-06-09 19:10:18 +08:00
rm.setStatus(pb.ColorGameStatus_CGS_Settle)
2025-06-09 23:52:18 +08:00
rm.settle()
2025-06-09 19:10:18 +08:00
rm.notifySettle()
2025-06-10 22:29:29 +08:00
rm.updateGameTrend()
rm.notifyTrend()
2025-06-09 19:10:18 +08:00
rm.NewTimer(TtGameStart, time.Duration(rm.timingCfg.Settle)*time.Millisecond)
}
// 每秒定时器干的活
func (rm *ColorRoom) onSecond() {
rm.notifyColorBetAreaInfo()
if rm.status < pb.ColorGameStatus_CGS_BetEnd {
rm.NewTimer(TtGameStart, time.Second)
}
}
2025-06-08 22:29:01 +08:00
//
2025-06-09 19:10:18 +08:00
// import (
2025-06-08 22:29:01 +08:00
// "encoding/json"
// "game/common/proto/pb"
// "github.com/fox/fox/ipb"
// "time"
2025-06-09 19:10:18 +08:00
// )
2025-06-08 22:29:01 +08:00
//
2025-06-09 19:10:18 +08:00
// func (rm *ColorRoom) Ready() {
2025-06-08 22:29:01 +08:00
// rm.Table.ResetGameRoundId()
// rm.ResetData(true)
// rm.Table.EndGame()
//
// if isFunding := rm.jackpotMgr.Load(rm.RoomCfg.ColorPinoyLiveConfig.InitJackpot); isFunding {
// rm.kafkaJackpotFunding(rm.RoomCfg.ColorPinoyLiveConfig.InitJackpot)
// rm.jackpotFunding = rm.RoomCfg.ColorPinoyLiveConfig.InitJackpot
// log.Debugf(rm.Log("发生垫资:%v", rm.jackpotFunding))
// } else {
// rm.jackpotFunding = 0
// log.Debugf(rm.Log("没有垫资"))
// }
// rm.jackpotUser = nil
// rm.costJackpot = 0
// log.Debugf(rm.Log("游戏开始costJackpot重置为0"))
// rm.SetGameStatus(pb.ColorPinoyLiveGameStatus_ColorPinoyLiveStartReady)
// rm.TimerJob, _ = rm.Table.AddTimer(time.Duration(rm.RoomCfg.TimeConf.Readymove), func() {
// rm.Start()
// })
//
// // 初始化默认骰子
// // rm.initDefaultDiceGameRoundReady()
// // 开始动画消息
// msg := new(pb.ColorPinoyLiveStatusMessage)
// msg.Status = int32(rm.GetGameStatus())
// msg.StatusTime = int32(rm.RoomCfg.TimeConf.Startmove)
// msg.Jackpot = rm.jackpotMgr.GetJackpot()
// rm.Table.Broadcast(int32(pb.ColorPinoyLiveSendToClientMessageType_ColorPinoyLiveNoticeGameReady), msg)
2025-06-09 19:10:18 +08:00
// }
2025-06-08 22:29:01 +08:00
//
2025-06-09 19:10:18 +08:00
// func (rm *ColorRoom) Start() {
2025-06-08 22:29:01 +08:00
// rm.GameRoundStart()
// rm.InitBigOddsBetAreas()
// // 推送房间筹码选择规则
// rm.SendRuleInfo()
// rm.checkUserBet()
// // 选择列表中前6个用户上座
// rm.SelectUserListBalanceTopSitDownChair()
// rm.startAt = time.Now().Unix()
// rm.Table.StartGame()
// // 开始动画消息
// msg := new(pb.ColorPinoyLiveStatusMessage)
// msg.Status = int32(rm.GetGameStatus())
// msg.StatusTime = int32(rm.RoomCfg.TimeConf.Startmove)
// // rm.jackpotMgr.Load(rm.Cfg.InitJackpot)
// msg.Jackpot = rm.jackpotMgr.GetJackpot()
// rm.Table.Broadcast(int32(pb.ColorPinoyLiveSendToClientMessageType_ColorPinoyLiveNoticeGameStart), msg)
2025-06-09 19:10:18 +08:00
// }
2025-06-08 22:29:01 +08:00
//
2025-06-09 19:10:18 +08:00
// func (rm *ColorRoom) StartBet() {
2025-06-08 22:29:01 +08:00
// rm.SetGameStatus(pb.ColorPinoyLiveGameStatus_ColorPinoyLiveBetStatus)
// rm.TimerJob, _ = rm.Table.AddTimer(time.Duration(rm.RoomCfg.TimeConf.Startbet), func() {
// rm.EndBet()
// })
//
// // 发送开始下注消息
// msg := new(pb.ColorPinoyLiveStatusMessage)
// msg.Status = int32(rm.GetGameStatus())
// msg.StatusTime = int32(rm.RoomCfg.TimeConf.Startbet)
// msg.Jackpot = rm.jackpotMgr.GetJackpot()
// rm.Table.Broadcast(int32(pb.ColorPinoyLiveSendToClientMessageType_ColorPinoyLiveNoticeGameStartBet), msg)
// // log.Debug("pb. 开始下注.....StartBet()")
2025-06-09 19:10:18 +08:00
// }
2025-06-08 22:29:01 +08:00
//
2025-06-09 19:10:18 +08:00
// func (rm *ColorRoom) EndBet() {
2025-06-08 22:29:01 +08:00
// rm.SetGameStatus(pb.ColorPinoyLiveGameStatus_ColorPinoyLiveEndBetMovie)
// // 停止下注就扣钱
// rm.StartTransInoutBet()
//
// // 发送停止下注消息
// msg := new(pb.ColorPinoyLiveStatusMessage)
// msg.Status = int32(rm.GetGameStatus())
// msg.StatusTime = int32(rm.RoomCfg.TimeConf.Endmove)
// msg.Jackpot = rm.jackpotMgr.GetJackpot()
// rm.Table.Broadcast(int32(pb.ColorPinoyLiveSendToClientMessageType_ColorPinoyLiveNoticeGameEndBet), msg)
//
// // log.Debug("pb. 停止下注.....EndBet()")
2025-06-09 19:10:18 +08:00
// }
2025-06-08 22:29:01 +08:00
//
2025-06-09 19:10:18 +08:00
// // 开3个 dice
// func (rm *ColorRoom) openThreeDice() {
2025-06-08 22:29:01 +08:00
// // log.Debug("aabb openThreeDice")
// rm.SetGameStatus(pb.ColorPinoyLiveGameStatus_ColorPinoyLiveOpenThreeDice)
// rm.Table.AddTimer(time.Duration(rm.RoomCfg.TimeConf.OpenThreeDice), func() {
2025-06-09 23:52:18 +08:00
// // log.Debug("aabb gameSettle")
2025-06-08 22:29:01 +08:00
// rm.CompareDiceResult()
// rm.Settle()
// })
// // 发送开三个骰子消息
// rm._aniThreeDiceRouteIndex = int32(rand.RandIntM(0, 48))
// msg := new(pb.ColorPinoyLiveGameOpenThreeDice)
// msg.Status = int32(rm.GetGameStatus())
// msg.AniRouteIndex = rm._aniThreeDiceRouteIndex // 掉落路径
//
// for _, dice := range rm.NormalDices {
// msg.Color = append(msg.Color, pb.ColorPinoyLiveDiceColorType(model.GetColor(dice)))
// }
// rm.Table.Broadcast(int32(pb.ColorPinoyLiveSendToClientMessageType_ColorPinoyLiveNoticeGameOpenThreeDice), msg)
2025-06-09 19:10:18 +08:00
// }
2025-06-08 22:29:01 +08:00
//
2025-06-09 19:10:18 +08:00
// // 结算
// func (rm *ColorRoom) Settle() {
2025-06-08 22:29:01 +08:00
// // log.Debug("aabb 结算")
// rm.SetGameStatus(pb.ColorPinoyLiveGameStatus_ColorPinoyLiveSettleStatus)
// rm.endAt = time.Now().Unix()
// rm.SetUserSettleMsg()
2025-06-09 19:10:18 +08:00
// }