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 { *base.Scene //场景 players map[int32]*SugarRushPlayerData //玩家信息 BetLevel []int64 `json:"bet_level"` //下注线数 } func NewSugarRushSceneData(s *base.Scene) *SugarRushSceneData { sceneEx := &SugarRushSceneData{ Scene: s, players: make(map[int32]*SugarRushPlayerData), } sceneEx.Init() return sceneEx } func (s *SugarRushSceneData) Init() { } func (s *SugarRushSceneData) Clear() { //应该是水池变一次就判断修改一次 //s.slotRateWeight = s.slotRateWeightTotal[0] } func (s *SugarRushSceneData) SceneDestroy(force bool) { //销毁房间 s.Scene.Destroy(force) } func (s *SugarRushSceneData) delPlayer(SnId int32) { if _, exist := s.players[SnId]; exist { delete(s.players, SnId) } } func (s *SugarRushSceneData) OnPlayerLeave(p *base.Player, reason int) { if /*playerEx*/ _, ok := p.ExtraData.(*SugarRushPlayerData); ok { } 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 } type CustomPay struct { Pay int64 } func (s *SugarRushSceneData) EnterResponseFixCoin(Response *cli.SlotsEnterResponse, reload bool) { //if reload { // return //} Response.Coin /= sugarrush.NowByte Response.NodeTree.BetCoin.Coin /= sugarrush.NowByte for k := range Response.NodeTree.Nodes { Response.NodeTree.Nodes[k].Win /= sugarrush.NowByte Response.NodeTree.Nodes[k].TotalWin /= sugarrush.NowByte Response.NodeTree.Nodes[k].ChildrenTotalWin /= sugarrush.NowByte Response.NodeTree.Nodes[k].Bet /= sugarrush.NowByte } for k, feature := range Response.NodeTree.Features { Response.NodeTree.Features[k].Win /= sugarrush.NowByte if feature.Type == "sugarrush.CustomEliminate" { var customEliminate CustomEliminate json.Unmarshal([]byte(feature.Custom), &customEliminate) for k1 := range customEliminate.WinCoins { customEliminate.WinCoins[k1] /= sugarrush.NowByte } ce, _ := json.Marshal(customEliminate) Response.NodeTree.Features[k].Custom = string(ce) } else if feature.Type == "sugarrush.CustomPay" { var customPay CustomPay json.Unmarshal([]byte(feature.Custom), &customPay) customPay.Pay /= sugarrush.NowByte cp, _ := json.Marshal(customPay) Response.NodeTree.Features[k].Custom = string(cp) } } } 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 k := range Response.NodeTree.Nodes { Response.NodeTree.Nodes[k].Win /= sugarrush.NowByte Response.NodeTree.Nodes[k].TotalWin /= sugarrush.NowByte Response.NodeTree.Nodes[k].ChildrenTotalWin /= sugarrush.NowByte Response.NodeTree.Nodes[k].Bet /= sugarrush.NowByte } for k, feature := range Response.NodeTree.Features { Response.NodeTree.Features[k].Win /= sugarrush.NowByte if feature.Type == "sugarrush.CustomEliminate" { var customEliminate CustomEliminate json.Unmarshal([]byte(feature.Custom), &customEliminate) for k1 := range customEliminate.WinCoins { customEliminate.WinCoins[k1] /= sugarrush.NowByte } ce, _ := json.Marshal(customEliminate) Response.NodeTree.Features[k].Custom = string(ce) } else if feature.Type == "sugarrush.CustomPay" { var customPay CustomPay json.Unmarshal([]byte(feature.Custom), &customPay) customPay.Pay /= sugarrush.NowByte cp, _ := json.Marshal(customPay) Response.NodeTree.Features[k].Custom = string(cp) } } }