This commit is contained in:
tomas 2025-03-03 10:35:32 +08:00
parent fc0804e516
commit c420f44577
3 changed files with 76 additions and 28 deletions

View File

@ -24,27 +24,6 @@ type SugarRushPlayerData struct {
isFree bool //只用于判断是否可以离开
}
type LinkPositions struct {
Positions []int64 `json:"Positions,omitempty"`
}
type CustomEliminate struct {
LinkPositions []*LinkPositions `json:"LinkPositions,omitempty"` //消除的位置
AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增
FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果
LinePays []float64 `json:"LinePays,omitempty"` //赔付
WinCoins []float64 `json:"WinCoins,omitempty"` //输赢
MultiStr string `json:"multi_str,omitempty"`
MultiStrVal string `json:"multi_str_val,omitempty"`
SymbolsAbove []int64 `json:"symbols_above,omitempty"`
SymbolsBelow []int64 `json:"symbols_below,omitempty"`
}
type SpinLock struct {
CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"`
Pay float64 `json:"Pay,omitempty"`
Multi int64 `json:"Multi,omitempty"`
SymbolsAbove []int64 `json:"symbols_above,omitempty"`
SymbolsBelow []int64 `json:"symbols_below,omitempty"`
}
func (p *SugarRushPlayerData) init() {
p.SlotsSession = base.NewSession(uint64(p.SnId), p.Coin*sugarrush.NowByte)

View File

@ -1,7 +1,10 @@
package sugarrush
import (
"encoding/json"
"mongo.games.com/game/gamerule/sugarrush"
"mongo.games.com/game/gamesrv/base"
"mongo.games.com/game/gamesrv/slotspkg/slots/types/cli"
)
type SugarRushSceneData struct {
@ -42,3 +45,65 @@ func (s *SugarRushSceneData) OnPlayerLeave(p *base.Player, reason int) {
}
s.delPlayer(p.SnId)
}
type LinkPositions struct {
// Indexes for Items that are linked
Positions []int64 `json:"Positions,omitempty"`
}
type CustomEliminate struct {
LinkPositions []*LinkPositions
AppendSymbols [][]int64
FormattedSymbols [][]int64
LinePays []float64
LineMultis []int64
WinCoins []int64
MaxWin bool
}
func (s *SugarRushSceneData) EnterResponseFixCoin(Response *cli.SlotsEnterResponse) {
Response.Coin /= sugarrush.NowByte
Response.NodeTree.BetCoin.Coin /= sugarrush.NowByte
for _, node := range Response.NodeTree.Nodes {
node.Win /= sugarrush.NowByte
node.TotalWin /= sugarrush.NowByte
node.ChildrenTotalWin /= sugarrush.NowByte
node.Bet /= sugarrush.NowByte
}
for _, feature := range Response.NodeTree.Features {
feature.Win /= sugarrush.NowByte
var customEliminate CustomEliminate
json.Unmarshal([]byte(feature.Custom), &customEliminate)
for k, wincoin := range customEliminate.WinCoins {
customEliminate.WinCoins[k] /= wincoin
}
for k, lp := range customEliminate.LinePays {
customEliminate.LinePays[k] /= lp
}
ce, _ := json.Marshal(customEliminate)
feature.Custom = string(ce)
}
}
func (s *SugarRushSceneData) PlayResponseFixCoin(Response *cli.SlotsPlayResponse) {
Response.Coin /= sugarrush.NowByte
Response.ActualBet /= sugarrush.NowByte
Response.ActualWin /= sugarrush.NowByte
Response.NodeTree.BetCoin.Coin /= sugarrush.NowByte
for _, node := range Response.NodeTree.Nodes {
node.Win /= sugarrush.NowByte
node.TotalWin /= sugarrush.NowByte
node.ChildrenTotalWin /= sugarrush.NowByte
node.Bet /= sugarrush.NowByte
}
for _, feature := range Response.NodeTree.Features {
if feature.Type == "sugarrush.CustomEliminate" {
feature.Win /= sugarrush.NowByte
var customEliminate CustomEliminate
json.Unmarshal([]byte(feature.Custom), &customEliminate)
for k, wincoin := range customEliminate.WinCoins {
customEliminate.WinCoins[k] /= wincoin
}
ce, _ := json.Marshal(customEliminate)
feature.Custom = string(ce)
}
}
}

View File

@ -213,15 +213,18 @@ func SugarRushCreateRoomInfoPacket(s *base.Scene, sceneEx *SugarRushSceneData, p
//get data
Response, err := slots.SlotsMgrSington.Enter(playerEx.SlotsSession, int64(s.GameId))
if err == nil {
Response.BetSizes = []int64{100, 1000, 2000, 5000, 7500, 20000}
Response.BetChangeList = []float64{}
sceneEx.BetLevel = Response.BetLevels
pi, _ := json.Marshal(Response)
pack.PlayerInfo = string(pi)
} else {
if err != nil {
logger.Logger.Error("slots enter err:", err)
}
Response.BetSizes = []int64{100, 1000, 2000, 5000, 7500, 20000}
Response.BetChangeList = []float64{}
sceneEx.BetLevel = Response.BetLevels
pi, _ := json.Marshal(Response)
pack.PlayerInfo = string(pi)
sceneEx.EnterResponseFixCoin(Response)
proto.SetDefaults(pack)
return pack
}
@ -410,6 +413,7 @@ func (this *SceneStateStartSugarRush) OnPlayerOp(s *base.Scene, p *base.Player,
BetMode: playerEx.BetMode,
Ts: time.Now().Unix(),
})
sceneEx.PlayResponseFixCoin(Response)
if err != nil {
logger.Logger.Error("slots Play err:", err)
pack := &protocol.SCSugarRushBilled{