diff --git a/gamerule/gatesofolympus/constants.go b/gamerule/gatesofolympus/constants.go new file mode 100644 index 0000000..7a61b2e --- /dev/null +++ b/gamerule/gatesofolympus/constants.go @@ -0,0 +1,22 @@ +package gatesofolympus + +// 房间类型 +const ( + RoomMode_Classic int = iota //经典 + RoomMode_Max +) + +// 场景状态 +const ( + GatesOfOlympusStateStart int = iota //默认状态 + GatesOfOlympusStateMax +) + +// 玩家操作 +const ( + GatesOfOlympusPlayerOpStart int = iota + GatesOfOlympusPlayerOpSwitch +) +const NowByte int64 = 10000 + +const GameDataKey = "FortuneData" diff --git a/gamesrv/gatesofolympus/action_gatesofolympus.go b/gamesrv/gatesofolympus/action_gatesofolympus.go new file mode 100644 index 0000000..0422af3 --- /dev/null +++ b/gamesrv/gatesofolympus/action_gatesofolympus.go @@ -0,0 +1,46 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/common" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/protocol/gatesofolympus" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +type CSGatesOfOlympusOpPacketFactory struct { +} +type CSGatesOfOlympusOpHandler struct { +} + +func (this *CSGatesOfOlympusOpPacketFactory) CreatePacket() interface{} { + pack := &gatesofolympus.CSGatesOfOlympusOp{} + return pack +} + +func (this *CSGatesOfOlympusOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if op, ok := data.(*gatesofolympus.CSGatesOfOlympusOp); ok { + p := base.PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warn("CSGatesOfOlympusOpHandler p == nil") + return nil + } + scene := p.GetScene() + if scene == nil { + logger.Logger.Warn("CSGatesOfOlympusOpHandler p.scene == nil") + return nil + } + if !scene.HasPlayer(p) { + return nil + } + if scene.GetScenePolicy() != nil { + scene.GetScenePolicy().OnPlayerOp(scene, p, int(op.GetOpCode()), op.GetParams()) + } + return nil + } + return nil +} +func init() { + common.RegisterHandler(int(gatesofolympus.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP), &CSGatesOfOlympusOpHandler{}) + netlib.RegisterFactory(int(gatesofolympus.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP), &CSGatesOfOlympusOpPacketFactory{}) +} diff --git a/gamesrv/gatesofolympus/playerdata_gatesofolympus.go b/gamesrv/gatesofolympus/playerdata_gatesofolympus.go new file mode 100644 index 0000000..537ac3a --- /dev/null +++ b/gamesrv/gatesofolympus/playerdata_gatesofolympus.go @@ -0,0 +1,68 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamerule/gatesofolympus" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/slots" +) + +type GatesOfOlympusPlayerData struct { + *base.Player + base.LabaLog + leaveTime int32 //离开时间 + SlotsSession *base.SlotsSession + + BetSizeIndex int64 `json:"bsi"` //选中的单注下标 + BetLevelIndex int64 `json:"bli"` //选中的等级下标 + BetLineIndex int64 `json:"bii"` //选中的线数下标 + BetMode int64 `json:"bm,optional"` //0.常规 1.%125 2.购买 + + taxCoin int64 + winCoin int64 + currentLogId string + totalBet int64 + + 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 *GatesOfOlympusPlayerData) init() { + p.SlotsSession = base.NewSession(uint64(p.SnId), p.Coin*gatesofolympus.NowByte) +} +func (p *GatesOfOlympusPlayerData) Clear() { + p.taxCoin = 0 + p.winCoin = 0 + p.currentLogId = "" + p.LabaLog.Clear() +} + +// 需要带到world上进行数据处理 +func (p *GatesOfOlympusPlayerData) PushPlayer() map[string]string { + cache := slots.SlotsMgrSington.PushPlayer(p.SlotsSession) + return cache +} + +// 进房的时候需要带进来 +func (p *GatesOfOlympusPlayerData) PullPlayer(data map[string]string) { + slots.SlotsMgrSington.PullPlayer(p.SlotsSession, data) +} diff --git a/gamesrv/gatesofolympus/scenedata_gatesofolympus.go b/gamesrv/gatesofolympus/scenedata_gatesofolympus.go new file mode 100644 index 0000000..2d75fa1 --- /dev/null +++ b/gamesrv/gatesofolympus/scenedata_gatesofolympus.go @@ -0,0 +1,45 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" +) + +type GatesOfOlympusSceneData struct { + *base.Scene //场景 + players map[int32]*GatesOfOlympusPlayerData //玩家信息 + BetConfig *assemble.BetConfig +} + +func NewGatesOfOlympusSceneData(s *base.Scene) *GatesOfOlympusSceneData { + sceneEx := &GatesOfOlympusSceneData{ + Scene: s, + players: make(map[int32]*GatesOfOlympusPlayerData), + } + sceneEx.Init() + return sceneEx +} +func (s *GatesOfOlympusSceneData) Init() { + +} + +func (s *GatesOfOlympusSceneData) Clear() { + //应该是水池变一次就判断修改一次 + //s.slotRateWeight = s.slotRateWeightTotal[0] +} +func (s *GatesOfOlympusSceneData) SceneDestroy(force bool) { + //销毁房间 + s.Scene.Destroy(force) +} + +func (s *GatesOfOlympusSceneData) delPlayer(SnId int32) { + if _, exist := s.players[SnId]; exist { + delete(s.players, SnId) + } +} +func (s *GatesOfOlympusSceneData) OnPlayerLeave(p *base.Player, reason int) { + if /*playerEx*/ _, ok := p.ExtraData.(*GatesOfOlympusPlayerData); ok { + + } + s.delPlayer(p.SnId) +} diff --git a/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go b/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go new file mode 100644 index 0000000..b878255 --- /dev/null +++ b/gamesrv/gatesofolympus/scenepolicy_gatesofolympus.go @@ -0,0 +1,585 @@ +package gatesofolympus + +import ( + "encoding/json" + "mongo.games.com/game/common" + "mongo.games.com/game/gamerule/gatesofolympus" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" + "mongo.games.com/game/gamesrv/slotspkg/slots" + "mongo.games.com/game/model" + "mongo.games.com/game/proto" + protocol "mongo.games.com/game/protocol/gatesofolympus" + "mongo.games.com/game/protocol/server" + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + "time" +) + +// //////////////////////////////////////////////////////////// +var ScenePolicyGatesOfOlympusSington = &ScenePolicyGatesOfOlympus{} + +type ScenePolicyGatesOfOlympus struct { + base.BaseScenePolicy + states [gatesofolympus.GatesOfOlympusStateMax]base.SceneState +} + +// 创建场景扩展数据 +func (this *ScenePolicyGatesOfOlympus) CreateSceneExData(s *base.Scene) interface{} { + sceneEx := NewGatesOfOlympusSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + } + } + return sceneEx +} + +// 创建玩家扩展数据 +func (this *ScenePolicyGatesOfOlympus) CreatePlayerExData(s *base.Scene, p *base.Player) interface{} { + playerEx := &GatesOfOlympusPlayerData{Player: p} + p.SetExtraData(playerEx) + return playerEx +} + +// 场景开启事件 +func (this *ScenePolicyGatesOfOlympus) OnStart(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnStart, sceneId=", s.GetSceneId()) + sceneEx := NewGatesOfOlympusSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + s.ChangeSceneState(gatesofolympus.GatesOfOlympusStateStart) + } + } +} + +// 场景关闭事件 +func (this *ScenePolicyGatesOfOlympus) OnStop(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnStop , sceneId=", s.GetSceneId()) +} + +// 场景心跳事件 +func (this *ScenePolicyGatesOfOlympus) OnTick(s *base.Scene) { + if s == nil { + return + } + if s.GetSceneState() != nil { + s.GetSceneState().OnTick(s) + } +} + +// 玩家进入事件 +func (this *ScenePolicyGatesOfOlympus) OnPlayerEnter(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerEnter, sceneId=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + playerEx := &GatesOfOlympusPlayerData{Player: p} + + playerEx.init() + + d := p.GameData[gatesofolympus.GameDataKey] + if d != nil { + m := make(map[string]string) + json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } else { + m := make(map[string]string) + //json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } + + playerEx.SlotsSession.SetCoin(playerEx.Coin * gatesofolympus.NowByte) + + playerEx.Clear() + + sceneEx.players[p.SnId] = playerEx + + p.SetExtraData(playerEx) + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + + s.FirePlayerEvent(p, base.PlayerEventEnter, nil) + } +} + +// 玩家离开事件 +func (this *ScenePolicyGatesOfOlympus) OnPlayerLeave(s *base.Scene, p *base.Player, reason int) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerLeave, sceneId=", s.GetSceneId(), " player=", p.SnId) + if playerEx, ok := p.ExtraData.(*GatesOfOlympusPlayerData); ok { + playerEx.LabaLog.Save(2) // 没有收到结束消息,算2秒游戏时长 + m := playerEx.PushPlayer() + if m != nil && len(m) > 0 { + b, err := json.Marshal(m) + if err != nil { + logger.Logger.Error("OnPlayerLeave, json.Marshal error:", err) + } else { + p.GameData[gatesofolympus.GameDataKey] = &model.PlayerGameData{ + Platform: p.Platform, + SnId: p.SnId, + Id: gatesofolympus.GameDataKey, + Data: b, + } + } + } + } + if sceneEx, ok := s.ExtraData.(*GatesOfOlympusSceneData); ok { + s.FirePlayerEvent(p, base.PlayerEventLeave, nil) + sceneEx.OnPlayerLeave(p, reason) + } +} + +// 玩家掉线 +func (this *ScenePolicyGatesOfOlympus) OnPlayerDropLine(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.FirePlayerEvent(p, base.PlayerEventDropLine, nil) +} + +// 玩家重连 +func (this *ScenePolicyGatesOfOlympus) OnPlayerRehold(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + } + } +} + +// 返回房间 +func (this *ScenePolicyGatesOfOlympus) OnPlayerReturn(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerReturn, GetSceneId()=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + //if p.IsMarkFlag(base.PlayerState_Auto) { + // p.UnmarkFlag(base.PlayerState_Auto) + // p.SyncFlag() + //} + //发送房间信息给自己 + GatesOfOlympusSendRoomInfo(s, sceneEx, playerEx) + s.FirePlayerEvent(p, base.PlayerEventReturn, nil) + } + } +} + +func GatesOfOlympusSendRoomInfo(s *base.Scene, sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData) { + pack := GatesOfOlympusCreateRoomInfoPacket(s, sceneEx, playerEx) + logger.Logger.Trace("RoomInfo: ", pack) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO), pack) +} +func GatesOfOlympusCreateRoomInfoPacket(s *base.Scene, sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData) interface{} { + //房间信息 + pack := &protocol.SCGatesOfOlympusRoomInfo{ + RoomId: s.SceneId, + GameId: s.GameId, + RoomMode: s.SceneMode, + SceneType: s.GetSceneType(), + Params: common.CopySliceInt64ToInt32(s.Params), + NumOfGames: proto.Int(sceneEx.NumOfGames), + State: proto.Int(s.SceneState.GetState()), + ParamsEx: s.GetDBGameFree().OtherIntParams, + GameFreeId: proto.Int32(s.GetDBGameFree().Id), + //BetLimit: s.GetDBGameFree().BetLimit, + } + + //自己的信息 + if playerEx != nil { + pd := &protocol.GatesOfOlympusPlayerData{ + SnId: proto.Int32(playerEx.SnId), + Name: proto.String(playerEx.Name), + Head: proto.Int32(playerEx.Head), + Sex: proto.Int32(playerEx.Sex), + Coin: proto.Int64(playerEx.Coin), + Pos: proto.Int(playerEx.Pos), + Flag: proto.Int(playerEx.GetFlag()), + City: proto.String(playerEx.City), + HeadOutLine: proto.Int32(playerEx.HeadOutLine), + VIP: proto.Int32(playerEx.VIP), + } + pack.Player = pd + } + + //get data + Response, err := slots.SlotsMgrSington.Enter(playerEx.SlotsSession, int64(s.GameId)) + if err == nil { + data := assemble.DataToCli(Response).(assemble.TableInfo) + pi, _ := json.Marshal(data) + pack.PlayerInfo = string(pi) + if sceneEx.BetConfig == nil { + sceneEx.BetConfig = &data.BetConfig + } + } else { + logger.Logger.Error("slots enter err:", err) + } + proto.SetDefaults(pack) + return pack +} +func (this *ScenePolicyGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + if s == nil || p == nil { + return false + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params) + if s.GetSceneState() != nil { + if s.GetSceneState().OnPlayerOp(s, p, opcode, params) { + p.SetLastOPTimer(time.Now()) + return true + } + return false + } + return true +} + +func (this *ScenePolicyGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicyGatesOfOlympus) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " eventcode=", evtcode, " params=", params) + if s.GetSceneState() != nil { + s.GetSceneState().OnPlayerEvent(s, p, evtcode, params) + } +} + +// 当前状态能否换桌 +func (this *ScenePolicyGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if s == nil || p == nil { + return false + } + if s.GetSceneState() != nil { + return s.GetSceneState().CanChangeCoinScene(s, p) + } + return false +} + +// 状态基类 +type SceneBaseStateGatesOfOlympus struct { +} + +func (this *SceneBaseStateGatesOfOlympus) GetTimeout(s *base.Scene) int { + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + return int(time.Now().Sub(sceneEx.GetStateStartTime()) / time.Second) + } + return 0 +} + +func (this *SceneBaseStateGatesOfOlympus) CanChangeTo(s base.SceneState) bool { + return true +} + +// 当前状态能否换桌 +func (this *SceneBaseStateGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + return true +} +func (this *SceneBaseStateGatesOfOlympus) OnEnter(s *base.Scene) { + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + sceneEx.SetStateStartTime(time.Now()) + } +} + +func (this *SceneBaseStateGatesOfOlympus) OnLeave(s *base.Scene) {} +func (this *SceneBaseStateGatesOfOlympus) OnTick(s *base.Scene) { + if time.Now().Sub(s.GameStartTime) > time.Second*3 { + if sceneEx, ok := s.ExtraData.(*GatesOfOlympusSceneData); ok { + for _, p := range sceneEx.players { + if p.IsOnLine() { + p.leaveTime = 0 + continue + } + p.leaveTime++ + if p.leaveTime < 60*2 { + continue + } + //踢出玩家 + sceneEx.PlayerLeave(p.Player, common.PlayerLeaveReason_LongTimeNoOp, true) + } + } + s.GameStartTime = time.Now() + } +} +func (this *SceneBaseStateGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + return false +} +func (this *SceneBaseStateGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { +} + +// //////////////////////////////////////////////////////////// +// 开始状态 +// //////////////////////////////////////////////////////////// +type SceneStateStartGatesOfOlympus struct { + SceneBaseStateGatesOfOlympus +} + +func (this *SceneStateStartGatesOfOlympus) GetState() int { + return gatesofolympus.GatesOfOlympusStateStart +} + +func (this *SceneStateStartGatesOfOlympus) CanChangeTo(s base.SceneState) bool { + return false +} + +// 当前状态能否换桌 +func (this *SceneStateStartGatesOfOlympus) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + if playerEx.isFree { + return false + } + } + return true +} + +func (this *SceneStateStartGatesOfOlympus) GetTimeout(s *base.Scene) int { + return 0 +} + +func (this *SceneStateStartGatesOfOlympus) OnEnter(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnEnter(s) + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + sceneEx.SetGameNowTime(time.Now()) + } +} + +// 状态离开时 +func (this *SceneStateStartGatesOfOlympus) OnLeave(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnLeave(s) + logger.Logger.Tracef("(this *SceneStateStartGatesOfOlympus) OnLeave, sceneid=%v", s.GetSceneId()) +} + +// 玩家操作 +func (this *SceneStateStartGatesOfOlympus) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + logger.Logger.Tracef("(this *SceneStateStartGatesOfOlympus) OnPlayerOp, sceneid=%v params=%v", s.GetSceneId(), params) + if this.SceneBaseStateGatesOfOlympus.OnPlayerOp(s, p, opcode, params) { + return true + } + if sceneEx, ok := s.GetExtraData().(*GatesOfOlympusSceneData); ok { + if playerEx, ok := p.GetExtraData().(*GatesOfOlympusPlayerData); ok { + switch opcode { + case gatesofolympus.GatesOfOlympusPlayerOpStart: + playerEx.Clear() + if len(params) < 4 { + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + return true + } + playerEx.BetSizeIndex = params[0] + playerEx.BetLevelIndex = params[1] + playerEx.BetLineIndex = params[2] + playerEx.BetMode = params[3] + needCoin := sceneEx.BetConfig.BetSize[params[0]] * float64(sceneEx.BetConfig.BetLevel[params[1]]) * + float64(sceneEx.BetConfig.BetLines[params[2]]) * float64(sceneEx.BetConfig.BaseBet[params[2]]) + if needCoin > float64(playerEx.Coin) && !playerEx.isFree { + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled:", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + return true + } + + //playerEx.SlotsSession.SetCoin(playerEx.Coin * gatesofolympus.NowByte) + //logger.Logger.Trace("=============init dif coin", playerEx.Coin-playerEx.SlotsSession.Coin()/gatesofolympus.NowByte) + + //get data + Response, err := slots.SlotsMgrSington.Play(playerEx.SlotsSession, &base.SpinReq{ + GameId: int64(sceneEx.GameId), + BetSizeIndex: playerEx.BetSizeIndex, + BetLevelIndex: playerEx.BetLevelIndex, + BetLineIndex: playerEx.BetLineIndex, + BetMode: playerEx.BetMode, + Ts: time.Now().Unix(), + }) + var gameEndStr string + var data assemble.GameEnd + if err == nil { + s.SetGameNowTime(time.Now()) + data = assemble.DataToCli(Response).(assemble.GameEnd) + + data.BetSizeIndex = playerEx.BetSizeIndex + data.BetLevelIndex = playerEx.BetLevelIndex + data.LinesIndex = playerEx.BetLineIndex + //data.BaseBetIndex = 1 + + data.Results[0].BetMode = playerEx.BetMode + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====TotalBet===", -data.TotalBet) + //第一次触发或者正常模式 + playerEx.AddCoin(int64(-data.TotalBet), common.GainWay_HundredSceneLost, base.SyncFlag_ToClient, "system", s.GetSceneName()) + playerEx.totalBet = int64(data.TotalBet) + } + var taxCoin float64 + if data.RoundReward > 0 { + //税收比例 + taxRate := sceneEx.GetDBGameFree().GetTaxRate() + if taxRate < 0 || taxRate > 10000 { + taxRate = 500 + } + taxCoin = data.RoundReward * float64(taxRate) / 10000 + data.RoundReward = data.RoundReward - taxCoin + playerEx.AddServiceFee(int64(taxCoin)) + playerEx.taxCoin = int64(taxCoin) + playerEx.winCoin = int64(data.RoundReward) + } + pi, _ := json.Marshal(data) + gameEndStr = string(pi) + + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====RoundReward===", data.RoundReward) + playerEx.AddCoin(int64(data.RoundReward), common.GainWay_HundredSceneWin, 0, "system", s.GetSceneName()) + //免费游戏结束或者正常模式 + sceneEx.StaticsLaba(&base.StaticLabaParam{ + SnId: playerEx.SnId, + Gain: int64(data.RoundReward - data.TotalBet), + GainTax: int64(taxCoin), + IsAddTimes: true, + }) + } + if data.Results[0].FreeNum > 0 { + playerEx.isFree = true + } else { + playerEx.isFree = false + } + } else { + logger.Logger.Error("slots Play err:", err) + } + + playerEx.SlotsSession.SetCoin(int64(data.FinalCoin) * gatesofolympus.NowByte) + //logger.Logger.Trace("=====================end===== playerEx.Coin===", playerEx.Coin) + //logger.Logger.Trace("=====================end===== data.FinalCoin===", data.FinalCoin) + + pack := &protocol.SCGatesOfOlympusBilled{ + OpRetCode: proto.Int32(0), + GameEndStr: proto.String(gameEndStr), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCGatesOfOlympusBilled", pack.String()) + playerEx.SendToClient(int(protocol.GatesOfOlympusPID_PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED), pack) + + if playerEx.Coin != int64(data.FinalCoin) { + logger.Logger.Error("==========playerEx.Coin != Response.Coin==============", playerEx.Coin, data.FinalCoin) + } + + // 记录本次操作 + GatesOfOlympusAndSaveLog(sceneEx, playerEx, data) + case 1000: + playerEx.Save(0) + } + } + } + return true +} + +// 玩家事件 +func (this *SceneStateStartGatesOfOlympus) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + logger.Logger.Trace("(this *SceneStateStartGatesOfOlympus) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " evtcode=", evtcode) + this.SceneBaseStateGatesOfOlympus.OnPlayerEvent(s, p, evtcode, params) +} + +func (this *SceneStateStartGatesOfOlympus) OnTick(s *base.Scene) { + this.SceneBaseStateGatesOfOlympus.OnTick(s) +} + +// ////////////////////////////////////////////////////////////////////////////// +func (this *ScenePolicyGatesOfOlympus) RegisteSceneState(state base.SceneState) { + if state == nil { + return + } + stateid := state.GetState() + if stateid < 0 || stateid >= gatesofolympus.GatesOfOlympusStateMax { + return + } + this.states[stateid] = state +} + +func (this *ScenePolicyGatesOfOlympus) GetSceneState(s *base.Scene, stateid int) base.SceneState { + if stateid >= 0 && stateid < gatesofolympus.GatesOfOlympusStateMax { + return this.states[stateid] + } + return nil +} +func GatesOfOlympusAndSaveLog(sceneEx *GatesOfOlympusSceneData, playerEx *GatesOfOlympusPlayerData, data assemble.GameEnd) { + if !playerEx.IsRob { + data.SnId = playerEx.SnId + if data.Results[0].FreeStatus != 1 && data.Results[0].FreeNumMax != 0 { + data.TotalBet = 0 + } + info, err := model.MarshalGameNoteByROLL(data) + if err == nil { + logid, _ := model.AutoIncGameLogId() + playerEx.currentLogId = logid + var totalin, totalout int64 + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + totalin = playerEx.totalBet + } + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + totalout = int64(data.RoundReward) + playerEx.taxCoin + } + playerEx.Cache(sceneEx.Scene, &base.SaveGameDetailedParam{ + LogId: logid, + Detail: info, + }, &base.SaveGamePlayerListLogParam{ + LogId: logid, + Platform: playerEx.Platform, + Snid: playerEx.SnId, + PlayerName: playerEx.Name, + TotalIn: totalin, + TotalOut: totalout, + TaxCoin: playerEx.taxCoin, + BetAmount: totalin, + WinAmountNoAnyTax: totalout - totalin - playerEx.taxCoin, + IsFirstGame: sceneEx.IsPlayerFirst(playerEx.Player), + IsFree: playerEx.isFree, + }) + } + } + + //统计输下注金币数 + if !sceneEx.Testing && !playerEx.IsRob { + playerBet := &server.PlayerData{ + SnId: proto.Int32(playerEx.SnId), + Bet: proto.Int64(playerEx.CurrentBet), + Gain: proto.Int64(int64(data.RoundReward) + playerEx.taxCoin), + Tax: proto.Int64(playerEx.taxCoin), + Coin: proto.Int64(playerEx.GetCoin()), + GameCoinTs: proto.Int64(playerEx.GameCoinTs), + } + gwPlayerBet := &server.GWPlayerData{ + SceneId: sceneEx.SceneId, + GameFreeId: proto.Int32(sceneEx.GetDBGameFree().GetId()), + } + gwPlayerBet.Datas = append(gwPlayerBet.Datas, playerBet) + sceneEx.SyncPlayerDatas(&base.PlayerDataParam{ + HasRobotGaming: false, + Data: gwPlayerBet, + }) + } + + playerEx.taxCoin = 0 + playerEx.winCoin = 0 + + if sceneEx.CheckNeedDestroy() && data.Results[0].FreeNum <= 0 { + sceneEx.SceneDestroy(true) + } +} +func init() { + //主状态 + ScenePolicyGatesOfOlympusSington.RegisteSceneState(&SceneStateStartGatesOfOlympus{}) + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + base.RegisteScenePolicy(common.GameId_GatesOfOlympus, gatesofolympus.RoomMode_Classic, ScenePolicyGatesOfOlympusSington) + return nil + }) +} diff --git a/gamesrv/main.go b/gamesrv/main.go index 5a06e0d..f1764d5 100644 --- a/gamesrv/main.go +++ b/gamesrv/main.go @@ -36,6 +36,7 @@ import ( _ "mongo.games.com/game/gamesrv/fortunerabbit" _ "mongo.games.com/game/gamesrv/fortunetiger" _ "mongo.games.com/game/gamesrv/fruits" + _ "mongo.games.com/game/gamesrv/gatesofolympus" _ "mongo.games.com/game/gamesrv/iceage" _ "mongo.games.com/game/gamesrv/richblessed" _ "mongo.games.com/game/gamesrv/slotspkg/slots" diff --git a/gamesrv/slotspkg/assemble/difgame.go b/gamesrv/slotspkg/assemble/difgame.go index 721eec1..9736274 100644 --- a/gamesrv/slotspkg/assemble/difgame.go +++ b/gamesrv/slotspkg/assemble/difgame.go @@ -12,6 +12,7 @@ type CustomFortune struct { FreeNumMax int64 `json:"fnm"` //总次数 FreeNumTrigger int64 `json:"fnt"` //新增freespin ForceRound int64 `json:"fr"` //第n次 + ScatterWin int64 `json:"sw,omitempty"` } func getDataByTheme(NodeTree *shared.LiteNodeTree) (map[int64]*shared.SpinLock, CustomFortune, int64) { diff --git a/gamesrv/slotspkg/external/ExportGoConfig-mac.sh b/gamesrv/slotspkg/external/ExportGoConfig-mac.sh new file mode 100644 index 0000000..9b911a2 --- /dev/null +++ b/gamesrv/slotspkg/external/ExportGoConfig-mac.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# 检查 "external" 目录是否存在,如果存在,则进入目录 +if [ -d "external" ]; then + cd external +fi + +# 检查 converter 文件是否存在 +if [ ! -f "converter" ]; then + echo "Building converter..." + go build -o converter ../tools/converter +else + echo "converter already exists." +fi + +# 执行 converter 文件 +./converter go /excel ../internal/exported/excel2go .. + +echo "Done." +read -p "Press [Enter] to exit..." +exit 0 \ No newline at end of file diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx new file mode 100644 index 0000000..d7734ae Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Bet.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx new file mode 100644 index 0000000..31bd28b Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Multiplier.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/S_ReelChoose.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/S_ReelChoose.xlsx new file mode 100644 index 0000000..59e9819 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/S_ReelChoose.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx new file mode 100644 index 0000000..b67124f Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Feature/Scatter.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx new file mode 100644 index 0000000..a4f53ef Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Formation.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx new file mode 100644 index 0000000..35ec79a Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx new file mode 100644 index 0000000..c54dbc2 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin1.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin2.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin2.xlsx new file mode 100644 index 0000000..aa0b3e2 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin2.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx new file mode 100644 index 0000000..59930bd Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin3.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx new file mode 100644 index 0000000..fb87571 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin7.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx new file mode 100644 index 0000000..db126a2 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelBaseSpin8.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx new file mode 100644 index 0000000..ccb274e Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin4.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin4.xlsx new file mode 100644 index 0000000..add7877 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin4.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx new file mode 100644 index 0000000..f20b84a Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/ReelFreeSpin5.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx new file mode 100644 index 0000000..49abd74 Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/S_Map.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx new file mode 100644 index 0000000..f12c84e Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Generic/Symbol.xlsx differ diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx new file mode 100644 index 0000000..a31818e Binary files /dev/null and b/gamesrv/slotspkg/external/excel/Base/Slots/GatesOfOlympus/Settings.xlsx differ diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go index 868f814..ff48968 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/cash_mania.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 0.3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 0.6, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 0.9, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 1, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 1.5, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 5, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 9, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 10, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 15, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 30, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 45, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 90, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 1, BaseBet: 10, }, @@ -141,55 +141,55 @@ func init() { CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 300, }, 1: { - Index: 1, + Index: 1, BetSize: 1000, }, 2: { - Index: 2, + Index: 2, BetSize: 3000, }, 3: { - Index: 3, + Index: 3, BetSize: 9000, }, } CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } CashManiaFormation = []*structs.CashManiaFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 2, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form5X5TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 2, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form5X5TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -197,124 +197,124 @@ func init() { CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{ 1: { - Index: 1, + Index: 1, ItemID: 1, - Value: 10, - IsMid: false, + Value: 10, + IsMid: false, }, 2: { - Index: 2, + Index: 2, ItemID: 2, - Value: 5, - IsMid: false, + Value: 5, + IsMid: false, }, 3: { - Index: 3, + Index: 3, ItemID: 3, - Value: 1, - IsMid: false, + Value: 1, + IsMid: false, }, 4: { - Index: 4, + Index: 4, ItemID: 4, - Value: 0.5, - IsMid: false, + Value: 0.5, + IsMid: false, }, 5: { - Index: 5, + Index: 5, ItemID: 5, - Value: 0.1, - IsMid: false, + Value: 0.1, + IsMid: false, }, 6: { - Index: 6, + Index: 6, ItemID: 6, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 7: { - Index: 7, + Index: 7, ItemID: 7, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 8: { - Index: 8, + Index: 8, ItemID: 8, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 9: { - Index: 9, + Index: 9, ItemID: 9, - Value: 1, - IsMid: true, + Value: 1, + IsMid: true, }, 10: { - Index: 10, + Index: 10, ItemID: 10, - Value: 2, - IsMid: true, + Value: 2, + IsMid: true, }, 11: { - Index: 11, + Index: 11, ItemID: 11, - Value: 3, - IsMid: true, + Value: 3, + IsMid: true, }, 12: { - Index: 12, + Index: 12, ItemID: 12, - Value: 5, - IsMid: true, + Value: 5, + IsMid: true, }, 13: { - Index: 13, + Index: 13, ItemID: 13, - Value: 10, - IsMid: true, + Value: 10, + IsMid: true, }, 14: { - Index: 14, + Index: 14, ItemID: 14, - Value: 15, - IsMid: true, + Value: 15, + IsMid: true, }, 15: { - Index: 15, + Index: 15, ItemID: 15, - Value: 20, - IsMid: true, + Value: 20, + IsMid: true, }, 16: { - Index: 16, + Index: 16, ItemID: 16, - Value: 30, - IsMid: true, + Value: 30, + IsMid: true, }, 17: { - Index: 17, + Index: 17, ItemID: 17, - Value: 40, - IsMid: true, + Value: 40, + IsMid: true, }, 18: { - Index: 18, + Index: 18, ItemID: 18, - Value: 50, - IsMid: true, + Value: 50, + IsMid: true, }, 19: { - Index: 19, + Index: 19, ItemID: 19, - Value: 100, - IsMid: true, + Value: 100, + IsMid: true, }, 200: { - Index: 200, + Index: 200, ItemID: 200, - Value: 0, - IsMid: true, + Value: 0, + IsMid: true, }, } @@ -323,164 +323,164 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.CashManiaMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{ 6: { - Index: 6, - ItemID: 6, - Multi: 1, + Index: 6, + ItemID: 6, + Multi: 1, FreeSpinCount: 5, }, 7: { - Index: 7, - ItemID: 7, - Multi: 1, + Index: 7, + ItemID: 7, + Multi: 1, FreeSpinCount: 10, }, 8: { - Index: 8, - ItemID: 8, - Multi: 1, + Index: 8, + ItemID: 8, + Multi: 1, FreeSpinCount: 20, }, 9: { - Index: 9, - ItemID: 9, - Multi: 1, + Index: 9, + ItemID: 9, + Multi: 1, FreeSpinCount: 0, }, 10: { - Index: 10, - ItemID: 10, - Multi: 2, + Index: 10, + ItemID: 10, + Multi: 2, FreeSpinCount: 0, }, 11: { - Index: 11, - ItemID: 11, - Multi: 3, + Index: 11, + ItemID: 11, + Multi: 3, FreeSpinCount: 0, }, 12: { - Index: 12, - ItemID: 12, - Multi: 5, + Index: 12, + ItemID: 12, + Multi: 5, FreeSpinCount: 0, }, 13: { - Index: 13, - ItemID: 13, - Multi: 10, + Index: 13, + ItemID: 13, + Multi: 10, FreeSpinCount: 0, }, 14: { - Index: 14, - ItemID: 14, - Multi: 15, + Index: 14, + ItemID: 14, + Multi: 15, FreeSpinCount: 0, }, 15: { - Index: 15, - ItemID: 15, - Multi: 20, + Index: 15, + ItemID: 15, + Multi: 20, FreeSpinCount: 0, }, 16: { - Index: 16, - ItemID: 16, - Multi: 30, + Index: 16, + ItemID: 16, + Multi: 30, FreeSpinCount: 0, }, 17: { - Index: 17, - ItemID: 17, - Multi: 40, + Index: 17, + ItemID: 17, + Multi: 40, FreeSpinCount: 0, }, 18: { - Index: 18, - ItemID: 18, - Multi: 50, + Index: 18, + ItemID: 18, + Multi: 50, FreeSpinCount: 0, }, 19: { - Index: 19, - ItemID: 19, - Multi: 100, + Index: 19, + ItemID: 19, + Multi: 100, FreeSpinCount: 0, }, } CashManiaOthers = []*structs.CashManiaOthers{ { - BaseWinPro: 0.15, - FreeWinPro: 0.15, - MaxWin: 2000, - WinNudgePro: 0.01, - WinRespinPro: 0.02, - NoWinNudgePro: 0.005, + BaseWinPro: 0.15, + FreeWinPro: 0.15, + MaxWin: 2000, + WinNudgePro: 0.01, + WinRespinPro: 0.02, + NoWinNudgePro: 0.005, NoWinRespinPro: 0.02, }, } CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 1, FreeWeight: 1, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 1, FreeWeight: 1, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 1, FreeWeight: 1, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 1, FreeWeight: 1, }, @@ -488,86 +488,86 @@ func init() { CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 12, FreeWeight: 12, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 4, FreeWeight: 4, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 1, FreeWeight: 1, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 33, FreeWeight: 33, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 50, FreeWeight: 50, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 50, FreeWeight: 50, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 50, FreeWeight: 50, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 50, FreeWeight: 50, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 50, FreeWeight: 50, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 50, FreeWeight: 50, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 50, FreeWeight: 50, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 50, FreeWeight: 50, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 50, FreeWeight: 50, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 50, FreeWeight: 50, }, @@ -591,184 +591,184 @@ func init() { CashManiaSymbol = map[int64]*structs.CashManiaSymbol{ 1: { - ID: 1, - Name: "10倍", - IsWild: false, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "10倍", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "5倍", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "5倍", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "1倍", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 10}, + ID: 3, + Name: "1倍", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 10}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "0.5倍", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 5}, + ID: 4, + Name: "0.5倍", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 5}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "0.1倍", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 1}, + ID: 5, + Name: "0.1倍", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 1}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "5FreeSpin", - IsWild: true, - Group: []int64{6}, - PayRate: []int64{0, 0, 0}, + ID: 6, + Name: "5FreeSpin", + IsWild: true, + Group: []int64{6}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "10FreeSpin", - IsWild: true, - Group: []int64{7}, - PayRate: []int64{0, 0, 0}, + ID: 7, + Name: "10FreeSpin", + IsWild: true, + Group: []int64{7}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "20FreeSpin", - IsWild: true, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "20FreeSpin", + IsWild: true, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "wildx1", - IsWild: true, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "wildx1", + IsWild: true, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "wildx2", - IsWild: true, - Group: []int64{10}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "wildx2", + IsWild: true, + Group: []int64{10}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 11: { - ID: 11, - Name: "wildx3", - IsWild: true, - Group: []int64{11}, - PayRate: []int64{0, 0, 0}, + ID: 11, + Name: "wildx3", + IsWild: true, + Group: []int64{11}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 12: { - ID: 12, - Name: "wildx5", - IsWild: true, - Group: []int64{12}, - PayRate: []int64{0, 0, 0}, + ID: 12, + Name: "wildx5", + IsWild: true, + Group: []int64{12}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 13: { - ID: 13, - Name: "wildx10", - IsWild: true, - Group: []int64{13}, - PayRate: []int64{0, 0, 0}, + ID: 13, + Name: "wildx10", + IsWild: true, + Group: []int64{13}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 14: { - ID: 14, - Name: "wildx15", - IsWild: true, - Group: []int64{14}, - PayRate: []int64{0, 0, 0}, + ID: 14, + Name: "wildx15", + IsWild: true, + Group: []int64{14}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 15: { - ID: 15, - Name: "wildx20", - IsWild: true, - Group: []int64{15}, - PayRate: []int64{0, 0, 0}, + ID: 15, + Name: "wildx20", + IsWild: true, + Group: []int64{15}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 16: { - ID: 16, - Name: "wildx30", - IsWild: true, - Group: []int64{16}, - PayRate: []int64{0, 0, 0}, + ID: 16, + Name: "wildx30", + IsWild: true, + Group: []int64{16}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 17: { - ID: 17, - Name: "wildx40", - IsWild: true, - Group: []int64{17}, - PayRate: []int64{0, 0, 0}, + ID: 17, + Name: "wildx40", + IsWild: true, + Group: []int64{17}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 18: { - ID: 18, - Name: "wildx50", - IsWild: true, - Group: []int64{18}, - PayRate: []int64{0, 0, 0}, + ID: 18, + Name: "wildx50", + IsWild: true, + Group: []int64{18}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 19: { - ID: 19, - Name: "wildx100", - IsWild: true, - Group: []int64{19}, - PayRate: []int64{0, 0, 0}, + ID: 19, + Name: "wildx100", + IsWild: true, + Group: []int64{19}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -780,32 +780,32 @@ func init() { CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{ { - ID: 1, - ItemID: 1, + ID: 1, + ItemID: 1, BaseWeight: 8, FreeWeight: 18, }, { - ID: 2, - ItemID: 2, + ID: 2, + ItemID: 2, BaseWeight: 18, FreeWeight: 15, }, { - ID: 3, - ItemID: 3, + ID: 3, + ItemID: 3, BaseWeight: 18, FreeWeight: 36, }, { - ID: 4, - ItemID: 4, + ID: 4, + ItemID: 4, BaseWeight: 28, FreeWeight: 29, }, { - ID: 5, - ItemID: 5, + ID: 5, + ItemID: 5, BaseWeight: 28, FreeWeight: 27, }, @@ -813,89 +813,89 @@ func init() { CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{ { - ID: 1, - ItemID: 6, + ID: 1, + ItemID: 6, BaseWeight: 48, FreeWeight: 4, }, { - ID: 2, - ItemID: 7, + ID: 2, + ItemID: 7, BaseWeight: 24, FreeWeight: 0, }, { - ID: 3, - ItemID: 8, + ID: 3, + ItemID: 8, BaseWeight: 6, FreeWeight: 0, }, { - ID: 4, - ItemID: 9, + ID: 4, + ItemID: 9, BaseWeight: 322, FreeWeight: 56, }, { - ID: 5, - ItemID: 10, + ID: 5, + ItemID: 10, BaseWeight: 800, FreeWeight: 30, }, { - ID: 6, - ItemID: 11, + ID: 6, + ItemID: 11, BaseWeight: 300, FreeWeight: 15, }, { - ID: 7, - ItemID: 12, + ID: 7, + ItemID: 12, BaseWeight: 200, FreeWeight: 10, }, { - ID: 8, - ItemID: 13, + ID: 8, + ItemID: 13, BaseWeight: 10, FreeWeight: 1, }, { - ID: 9, - ItemID: 14, + ID: 9, + ItemID: 14, BaseWeight: 10, FreeWeight: 1, }, { - ID: 10, - ItemID: 15, + ID: 10, + ItemID: 15, BaseWeight: 1, FreeWeight: 5, }, { - ID: 11, - ItemID: 16, + ID: 11, + ItemID: 16, BaseWeight: 1, FreeWeight: 2, }, { - ID: 12, - ItemID: 17, + ID: 12, + ItemID: 17, BaseWeight: 1, FreeWeight: 2, }, { - ID: 13, - ItemID: 18, + ID: 13, + ItemID: 18, BaseWeight: 0, FreeWeight: 2, }, { - ID: 14, - ItemID: 19, + ID: 14, + ItemID: 19, BaseWeight: 0, FreeWeight: 2, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go index 7d7804e..457a7eb 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_dragon.go @@ -9,170 +9,170 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{ { - WinRateMin: 0, - WinRateMax: 0.01, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0, + WinRateMax: 0.01, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{140, 10, 20, 10}, }, { - WinRateMin: 0.01, - WinRateMax: 1, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 0.01, + WinRateMax: 1, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{1689, 98, 176, 100}, }, { - WinRateMin: 1, - WinRateMax: 3, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 1, + WinRateMax: 3, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{60, 8, 10, 2}, }, { - WinRateMin: 3, - WinRateMax: 10, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 3, + WinRateMax: 10, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2883, 100, 100, 250}, }, { - WinRateMin: 10, - WinRateMax: 20, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 10, + WinRateMax: 20, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{820, 1585, 100, 10}, }, { - WinRateMin: 20, - WinRateMax: 999999, - ItemIds: []int64{200, 8, 9, 10}, + WinRateMin: 20, + WinRateMax: 999999, + ItemIds: []int64{200, 8, 9, 10}, MultiplierWeights: []int64{2884, 8, 10, 287}, }, } FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -180,81 +180,81 @@ func init() { FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneDragonFormation = []*structs.FortuneDragonFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 1, - NodeType: "SureWinBaseSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinBaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "SureWinBaseSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinBaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "SureWinFreeSpin", - ID: 1, - SeqID: 1, - Reel: "SureWinFreeSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 2, + SpinType: 3, + NodeType: "SureWinFreeSpin", + ID: 1, + SeqID: 1, + Reel: "SureWinFreeSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 2, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -278,11 +278,11 @@ func init() { FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{ { MultiplierCount: 2, - Weight: 3, + Weight: 3, }, { MultiplierCount: 3, - Weight: 1, + Weight: 1, }, } @@ -291,44 +291,44 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneDragonMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneDragonOthers = []*structs.FortuneDragonOthers{ { - FreespinTriggerPro: 0.005, - FreeSpinCount: 8, - MaxWin: 2500, + FreespinTriggerPro: 0.005, + FreeSpinCount: 8, + MaxWin: 2500, SureWinFreespinTriggerPro: 0.0273, - SureWinBetMultiplier: 5, + SureWinBetMultiplier: 5, }, } @@ -398,103 +398,103 @@ func init() { FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{ 1: { - ID: 1, - Name: "Wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 100}, + ID: 1, + Name: "Wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 100}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 50}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 50}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "灯笼", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "灯笼", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "福炮", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "福炮", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "花结", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "花结", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "铜钱", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "铜钱", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "X2", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "X2", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "X5", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "X5", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 10: { - ID: 10, - Name: "X10", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 10, + Name: "X10", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -504,4 +504,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go index 91f5598..8a06843 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_mouse.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneMouseFormation = []*structs.FortuneMouseFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneMouseMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneMouseOthers = []*structs.FortuneMouseOthers{ { RespinTriggerPro: 0.0123, - MaxWin: 1000, - ExtraWin: 700, + MaxWin: 1000, + ExtraWin: 700, }, } @@ -273,37 +273,37 @@ func init() { FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 3, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 5, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 7, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 8, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 9, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 10, }, @@ -311,76 +311,76 @@ func init() { FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 300}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 300}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "倒福", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "倒福", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "红包", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "红包", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 30}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 30}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "爆竹", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 15}, + ID: 5, + Name: "爆竹", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 15}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "花生", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "花生", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -390,4 +390,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go index 0a51f61..82d9173 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_ox.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 60000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 90000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 100000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 300000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 900000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 1000000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 3000000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 9000000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneOxFormation = []*structs.FortuneOxFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneOxMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneOxOthers = []*structs.FortuneOxOthers{ { RespinTriggerPro: 0.0107, - Multiplier: 10, - MaxWin: 2000, + Multiplier: 10, + MaxWin: 2000, }, } @@ -273,37 +273,37 @@ func init() { FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 4, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 10, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 30, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 40, }, @@ -311,37 +311,37 @@ func init() { FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 1, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 2, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 3, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 4, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 5, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 6, }, @@ -349,85 +349,85 @@ func init() { FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "金锦盒", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "金锦盒", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "钱袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 20}, + ID: 4, + Name: "钱袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 20}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 10}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 10}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "橘子", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "橘子", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "炮竹", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "炮竹", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack1", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack1", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 9: { - ID: 9, - Name: "SuperStack2", - IsWild: false, - Group: []int64{9}, - PayRate: []int64{0, 0, 0}, + ID: 9, + Name: "SuperStack2", + IsWild: false, + Group: []int64{9}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -437,4 +437,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go index 48c8d7a..809fd22 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_rabbit.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 60000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 90000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 100000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 300000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 900000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 1000000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 3000000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 9000000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, BaseBet: 1, }, @@ -141,156 +141,156 @@ func init() { FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{ { - ID: 1, - PrizeValue: 0.5, - Weight: 150, + ID: 1, + PrizeValue: 0.5, + Weight: 150, NoWinWeight: 100, }, { - ID: 2, - PrizeValue: 1, - Weight: 25, + ID: 2, + PrizeValue: 1, + Weight: 25, NoWinWeight: 25, }, { - ID: 3, - PrizeValue: 2, - Weight: 9, + ID: 3, + PrizeValue: 2, + Weight: 9, NoWinWeight: 9, }, { - ID: 4, - PrizeValue: 5, - Weight: 55, + ID: 4, + PrizeValue: 5, + Weight: 55, NoWinWeight: 55, }, { - ID: 5, - PrizeValue: 10, - Weight: 6, + ID: 5, + PrizeValue: 10, + Weight: 6, NoWinWeight: 12, }, { - ID: 6, - PrizeValue: 20, - Weight: 3, + ID: 6, + PrizeValue: 20, + Weight: 3, NoWinWeight: 9, }, { - ID: 7, - PrizeValue: 30, - Weight: 0.6, + ID: 7, + PrizeValue: 30, + Weight: 0.6, NoWinWeight: 6, }, { - ID: 8, - PrizeValue: 50, - Weight: 1, + ID: 8, + PrizeValue: 50, + Weight: 1, NoWinWeight: 3, }, { - ID: 9, - PrizeValue: 100, - Weight: 0.39, + ID: 9, + PrizeValue: 100, + Weight: 0.39, NoWinWeight: 0.9, }, { - ID: 10, - PrizeValue: 500, - Weight: 0.01, + ID: 10, + PrizeValue: 500, + Weight: 0.01, NoWinWeight: 0.1, }, } FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{ { - ID: 1, - Count: 5, + ID: 1, + Count: 5, Weight: 80, }, { - ID: 2, - Count: 6, + ID: 2, + Count: 6, Weight: 15, }, { - ID: 3, - Count: 7, + ID: 3, + Count: 7, Weight: 5, }, { - ID: 4, - Count: 8, + ID: 4, + Count: 8, Weight: 0, }, { - ID: 5, - Count: 9, + ID: 5, + Count: 9, Weight: 0, }, { - ID: 6, - Count: 10, + ID: 6, + Count: 10, Weight: 0, }, { - ID: 7, - Count: 11, + ID: 7, + Count: 11, Weight: 0, }, } FortuneRabbitFormation = []*structs.FortuneRabbitFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "FreeSpin", - ID: 1, - SeqID: 1, - Reel: "FreeSpin", - Matrix: "Line10Form343TypeA", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "Line10Form343TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -301,58 +301,58 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 2: { - ID: 2, + ID: 2, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneRabbitMapRTPModeTypeWeight{ 3: { - ID: 3, + ID: 3, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneRabbitOthers = []*structs.FortuneRabbitOthers{ { FreespinTriggerPro: 0.0106, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{ { FreespinTriggerPro: 0.01785, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{ { FreespinTriggerPro: 0.00577, - FreeSpinCount: 8, - MaxWin: 5000, + FreeSpinCount: 8, + MaxWin: 5000, }, } @@ -390,85 +390,85 @@ func init() { FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 200}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 200}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "钱袋", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 50}, + ID: 3, + Name: "钱袋", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 50}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "红包", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "红包", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "铜币", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 5}, + ID: 5, + Name: "铜币", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 5}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 3}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 3}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "胡萝卜", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 2}, + ID: 7, + Name: "胡萝卜", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 2}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "Cash", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "Cash", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -478,4 +478,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go index 464f49e..d483857 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/fortune_tiger.go @@ -9,131 +9,131 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 15000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 30000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 45000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 50000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 75000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 150000, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 250000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 450000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 500000, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 750000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 1500000, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 2250000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 4500000, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 5, BaseBet: 1, }, @@ -141,55 +141,55 @@ func init() { FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 30000000, }, 1: { - Index: 1, + Index: 1, BetSize: 100000000, }, 2: { - Index: 2, + Index: 2, BetSize: 300000000, }, 3: { - Index: 3, + Index: 3, BetSize: 900000000, }, } FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 1, }, } FortuneTigerFormation = []*structs.FortuneTigerFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 4, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 4, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, { - SpinType: 3, - NodeType: "ReSpin", - ID: 1, - SeqID: 1, - Reel: "ReSpin", - Matrix: "Line5Form3X3TypeB", - Symbol: "Default", - FirstInitMethod: 3, - OtherInitMethod: 3, + SpinType: 3, + NodeType: "ReSpin", + ID: 1, + SeqID: 1, + Reel: "ReSpin", + Matrix: "Line5Form3X3TypeB", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -200,42 +200,42 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.FortuneTigerMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } FortuneTigerOthers = []*structs.FortuneTigerOthers{ { RespinTriggerPro: 0.0104, - Multiplier: 10, - MaxWin: 2500, + Multiplier: 10, + MaxWin: 2500, }, } @@ -273,37 +273,37 @@ func init() { FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{ { - ID: 1, + ID: 1, ItemID: 1, Weight: 0, }, { - ID: 2, + ID: 2, ItemID: 2, Weight: 0.66, }, { - ID: 3, + ID: 3, ItemID: 3, Weight: 3.34, }, { - ID: 4, + ID: 4, ItemID: 4, Weight: 11, }, { - ID: 5, + ID: 5, ItemID: 5, Weight: 15, }, { - ID: 6, + ID: 6, ItemID: 6, Weight: 20, }, { - ID: 7, + ID: 7, ItemID: 7, Weight: 50, }, @@ -311,85 +311,85 @@ func init() { FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{ 1: { - ID: 1, - Name: "wild", - IsWild: true, - Group: []int64{1}, - PayRate: []int64{0, 0, 250}, + ID: 1, + Name: "wild", + IsWild: true, + Group: []int64{1}, + PayRate: []int64{0, 0, 250}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, 2: { - ID: 2, - Name: "元宝", - IsWild: false, - Group: []int64{2}, - PayRate: []int64{0, 0, 100}, + ID: 2, + Name: "元宝", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 100}, ClientOrder: 2, - ClientDsc: "", + ClientDsc: "", }, 3: { - ID: 3, - Name: "玉饰", - IsWild: false, - Group: []int64{3}, - PayRate: []int64{0, 0, 25}, + ID: 3, + Name: "玉饰", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 25}, ClientOrder: 3, - ClientDsc: "", + ClientDsc: "", }, 4: { - ID: 4, - Name: "福袋", - IsWild: false, - Group: []int64{4}, - PayRate: []int64{0, 0, 10}, + ID: 4, + Name: "福袋", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 10}, ClientOrder: 4, - ClientDsc: "", + ClientDsc: "", }, 5: { - ID: 5, - Name: "红包", - IsWild: false, - Group: []int64{5}, - PayRate: []int64{0, 0, 8}, + ID: 5, + Name: "红包", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 8}, ClientOrder: 5, - ClientDsc: "", + ClientDsc: "", }, 6: { - ID: 6, - Name: "爆竹", - IsWild: false, - Group: []int64{6}, - PayRate: []int64{0, 0, 5}, + ID: 6, + Name: "爆竹", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 5}, ClientOrder: 6, - ClientDsc: "", + ClientDsc: "", }, 7: { - ID: 7, - Name: "橘子", - IsWild: false, - Group: []int64{7}, - PayRate: []int64{0, 0, 3}, + ID: 7, + Name: "橘子", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 3}, ClientOrder: 7, - ClientDsc: "", + ClientDsc: "", }, 8: { - ID: 8, - Name: "SuperStack", - IsWild: false, - Group: []int64{8}, - PayRate: []int64{0, 0, 0}, + ID: 8, + Name: "SuperStack", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, 200: { - ID: 200, - Name: "Empty", - IsWild: false, - Group: []int64{200}, - PayRate: []int64{0, 0, 0}, + ID: 200, + Name: "Empty", + IsWild: false, + Group: []int64{200}, + PayRate: []int64{0, 0, 0}, ClientOrder: 0, - ClientDsc: "", + ClientDsc: "", }, } @@ -399,4 +399,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go b/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go new file mode 100644 index 0000000..8d88753 --- /dev/null +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/gates_of_olympus.go @@ -0,0 +1,1339 @@ +//go:build !debug +// +build !debug + +// +package base + +import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" + +func init() { + GatesOfOlympusBetBetChangeList = map[int64]*structs.GatesOfOlympusBetBetChangeList{ + 0: { + Index: 0, + BetChangeList: 0.2, + BetSizeIndex: 0, + BetLevelIndex: 0, + }, + 1: { + Index: 1, + BetChangeList: 0.4, + BetSizeIndex: 0, + BetLevelIndex: 1, + }, + 2: { + Index: 2, + BetChangeList: 0.6, + BetSizeIndex: 0, + BetLevelIndex: 2, + }, + 3: { + Index: 3, + BetChangeList: 0.8, + BetSizeIndex: 0, + BetLevelIndex: 3, + }, + 4: { + Index: 4, + BetChangeList: 1, + BetSizeIndex: 0, + BetLevelIndex: 4, + }, + 5: { + Index: 5, + BetChangeList: 1.2, + BetSizeIndex: 0, + BetLevelIndex: 5, + }, + 6: { + Index: 6, + BetChangeList: 1.4, + BetSizeIndex: 0, + BetLevelIndex: 6, + }, + 7: { + Index: 7, + BetChangeList: 1.6, + BetSizeIndex: 0, + BetLevelIndex: 7, + }, + 8: { + Index: 8, + BetChangeList: 1.8, + BetSizeIndex: 0, + BetLevelIndex: 8, + }, + 9: { + Index: 9, + BetChangeList: 2, + BetSizeIndex: 0, + BetLevelIndex: 9, + }, + 10: { + Index: 10, + BetChangeList: 4, + BetSizeIndex: 1, + BetLevelIndex: 1, + }, + 11: { + Index: 11, + BetChangeList: 6, + BetSizeIndex: 1, + BetLevelIndex: 2, + }, + 12: { + Index: 12, + BetChangeList: 8, + BetSizeIndex: 1, + BetLevelIndex: 3, + }, + 13: { + Index: 13, + BetChangeList: 10, + BetSizeIndex: 1, + BetLevelIndex: 4, + }, + 14: { + Index: 14, + BetChangeList: 12, + BetSizeIndex: 1, + BetLevelIndex: 5, + }, + 15: { + Index: 15, + BetChangeList: 14, + BetSizeIndex: 1, + BetLevelIndex: 6, + }, + 16: { + Index: 16, + BetChangeList: 15, + BetSizeIndex: 4, + BetLevelIndex: 0, + }, + 17: { + Index: 17, + BetChangeList: 16, + BetSizeIndex: 1, + BetLevelIndex: 7, + }, + 18: { + Index: 18, + BetChangeList: 18, + BetSizeIndex: 1, + BetLevelIndex: 8, + }, + 19: { + Index: 19, + BetChangeList: 20, + BetSizeIndex: 1, + BetLevelIndex: 9, + }, + 20: { + Index: 20, + BetChangeList: 24, + BetSizeIndex: 2, + BetLevelIndex: 5, + }, + 21: { + Index: 21, + BetChangeList: 28, + BetSizeIndex: 2, + BetLevelIndex: 6, + }, + 22: { + Index: 22, + BetChangeList: 30, + BetSizeIndex: 3, + BetLevelIndex: 2, + }, + 23: { + Index: 23, + BetChangeList: 32, + BetSizeIndex: 2, + BetLevelIndex: 7, + }, + 24: { + Index: 24, + BetChangeList: 36, + BetSizeIndex: 2, + BetLevelIndex: 8, + }, + 25: { + Index: 25, + BetChangeList: 40, + BetSizeIndex: 2, + BetLevelIndex: 9, + }, + 26: { + Index: 26, + BetChangeList: 45, + BetSizeIndex: 4, + BetLevelIndex: 2, + }, + 27: { + Index: 27, + BetChangeList: 50, + BetSizeIndex: 3, + BetLevelIndex: 4, + }, + 28: { + Index: 28, + BetChangeList: 60, + BetSizeIndex: 3, + BetLevelIndex: 5, + }, + 29: { + Index: 29, + BetChangeList: 70, + BetSizeIndex: 3, + BetLevelIndex: 6, + }, + 30: { + Index: 30, + BetChangeList: 75, + BetSizeIndex: 4, + BetLevelIndex: 4, + }, + 31: { + Index: 31, + BetChangeList: 80, + BetSizeIndex: 3, + BetLevelIndex: 7, + }, + 32: { + Index: 32, + BetChangeList: 90, + BetSizeIndex: 3, + BetLevelIndex: 8, + }, + 33: { + Index: 33, + BetChangeList: 100, + BetSizeIndex: 3, + BetLevelIndex: 9, + }, + 34: { + Index: 34, + BetChangeList: 105, + BetSizeIndex: 4, + BetLevelIndex: 6, + }, + 35: { + Index: 35, + BetChangeList: 120, + BetSizeIndex: 4, + BetLevelIndex: 7, + }, + 36: { + Index: 36, + BetChangeList: 135, + BetSizeIndex: 4, + BetLevelIndex: 8, + }, + 37: { + Index: 37, + BetChangeList: 150, + BetSizeIndex: 4, + BetLevelIndex: 9, + }, + 38: { + Index: 38, + BetChangeList: 160, + BetSizeIndex: 5, + BetLevelIndex: 3, + }, + 39: { + Index: 39, + BetChangeList: 200, + BetSizeIndex: 5, + BetLevelIndex: 4, + }, + 40: { + Index: 40, + BetChangeList: 240, + BetSizeIndex: 5, + BetLevelIndex: 5, + }, + 41: { + Index: 41, + BetChangeList: 280, + BetSizeIndex: 5, + BetLevelIndex: 6, + }, + 42: { + Index: 42, + BetChangeList: 320, + BetSizeIndex: 5, + BetLevelIndex: 7, + }, + 43: { + Index: 43, + BetChangeList: 360, + BetSizeIndex: 5, + BetLevelIndex: 8, + }, + 44: { + Index: 44, + BetChangeList: 400, + BetSizeIndex: 5, + BetLevelIndex: 9, + }, + 45: { + Index: 45, + BetChangeList: 3, + BetSizeIndex: 6, + BetLevelIndex: 0, + }, + 46: { + Index: 46, + BetChangeList: 5, + BetSizeIndex: 7, + BetLevelIndex: 0, + }, + 47: { + Index: 47, + BetChangeList: 25, + BetSizeIndex: 8, + BetLevelIndex: 0, + }, + 48: { + Index: 48, + BetChangeList: 300, + BetSizeIndex: 9, + BetLevelIndex: 0, + }, + } + + GatesOfOlympusBetBetLevel = map[int64]*structs.GatesOfOlympusBetBetLevel{ + 0: { + Index: 0, + BetLevel: 1, + }, + 1: { + Index: 1, + BetLevel: 2, + }, + 2: { + Index: 2, + BetLevel: 3, + }, + 3: { + Index: 3, + BetLevel: 4, + }, + 4: { + Index: 4, + BetLevel: 5, + }, + 5: { + Index: 5, + BetLevel: 6, + }, + 6: { + Index: 6, + BetLevel: 7, + }, + 7: { + Index: 7, + BetLevel: 8, + }, + 8: { + Index: 8, + BetLevel: 9, + }, + 9: { + Index: 9, + BetLevel: 10, + }, + } + + GatesOfOlympusBetBetLine = map[int64]*structs.GatesOfOlympusBetBetLine{ + 0: { + Index: 0, + BetLine: 20, + BaseBet: 1, + }, + } + + GatesOfOlympusBetBetSize = map[int64]*structs.GatesOfOlympusBetBetSize{ + 0: { + Index: 0, + BetSize: 100, + }, + 1: { + Index: 1, + BetSize: 1000, + }, + 2: { + Index: 2, + BetSize: 2000, + }, + 3: { + Index: 3, + BetSize: 5000, + }, + 4: { + Index: 4, + BetSize: 7500, + }, + 5: { + Index: 5, + BetSize: 20000, + }, + 6: { + Index: 6, + BetSize: 1500, + }, + 7: { + Index: 7, + BetSize: 2500, + }, + 8: { + Index: 8, + BetSize: 12500, + }, + 9: { + Index: 9, + BetSize: 150000, + }, + } + + GatesOfOlympusBetFirstBet = map[int64]*structs.GatesOfOlympusBetFirstBet{ + 1: { + Index: 1, + BetSizeIndex: 1, + BetLevelIndex: 1, + }, + } + + GatesOfOlympusFormation = []*structs.GatesOfOlympusFormation{ + { + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin1", + ID: 1, + SeqID: 1, + Reel: "BaseSpin1", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin2", + ID: 1, + SeqID: 1, + Reel: "BaseSpin2", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin3", + ID: 1, + SeqID: 1, + Reel: "BaseSpin3", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin7", + ID: 1, + SeqID: 1, + Reel: "BaseSpin7", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "BaseSpin8", + ID: 1, + SeqID: 1, + Reel: "BaseSpin8", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin", + ID: 1, + SeqID: 1, + Reel: "FreeSpin", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin4", + ID: 1, + SeqID: 1, + Reel: "FreeSpin4", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 2, + NodeType: "FreeSpin5", + ID: 1, + SeqID: 1, + Reel: "FreeSpin5", + Matrix: "SameForm5X6TypeA", + Symbol: "Default", + FirstInitMethod: 3, + OtherInitMethod: 3, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin1", + ID: 1, + SeqID: 1, + Reel: "BaseSpin1", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin2", + ID: 1, + SeqID: 1, + Reel: "BaseSpin2", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin3", + ID: 1, + SeqID: 1, + Reel: "BaseSpin3", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin7", + ID: 1, + SeqID: 1, + Reel: "BaseSpin7", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + { + SpinType: 1, + NodeType: "MoreScatterBaseSpin8", + ID: 1, + SeqID: 1, + Reel: "BaseSpin8", + Matrix: "SameForm5X6TypeB", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, + FirstInitSymbols: []int64{}, + OtherInitSymbols: []int64{}, + }, + } + + GatesOfOlympusMapRTPMode = map[int64]*structs.GatesOfOlympusMapRTPMode{ + 1: { + ID: 1, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "96", + Rtp: 0.96, + }, + 2: { + ID: 2, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "80", + Rtp: 0.8, + }, + 3: { + ID: 3, + TypeWeight: map[int64]*structs.GatesOfOlympusMapRTPModeTypeWeight{ + 1: { + ID: 1, + Weight: 1, + }, + }, + Desc: "120", + Rtp: 1.2, + }, + } + + GatesOfOlympusMultiplier = []*structs.GatesOfOlympusMultiplier{ + { + Multiple: 2, + ID: 13, + Weights: []int64{3150, 3150, 3150}, + }, + { + Multiple: 3, + ID: 14, + Weights: []int64{2250, 2250, 2000}, + }, + { + Multiple: 4, + ID: 15, + Weights: []int64{1500, 1500, 1500}, + }, + { + Multiple: 5, + ID: 16, + Weights: []int64{1100, 1100, 1000}, + }, + { + Multiple: 6, + ID: 17, + Weights: []int64{300, 300, 600}, + }, + { + Multiple: 8, + ID: 18, + Weights: []int64{150, 150, 400}, + }, + { + Multiple: 10, + ID: 19, + Weights: []int64{80, 80, 200}, + }, + { + Multiple: 12, + ID: 20, + Weights: []int64{30, 30, 100}, + }, + { + Multiple: 15, + ID: 21, + Weights: []int64{10, 10, 50}, + }, + { + Multiple: 20, + ID: 22, + Weights: []int64{20, 20, 50}, + }, + { + Multiple: 25, + ID: 23, + Weights: []int64{10, 10, 50}, + }, + { + Multiple: 50, + ID: 24, + Weights: []int64{1, 1, 25}, + }, + { + Multiple: 100, + ID: 25, + Weights: []int64{1, 1, 25}, + }, + { + Multiple: 250, + ID: 26, + Weights: []int64{0, 0, 10}, + }, + { + Multiple: 500, + ID: 27, + Weights: []int64{0, 0, 10}, + }, + } + + GatesOfOlympusMultiplierKeyID = map[int64]*structs.GatesOfOlympusMultiplierKeyID{ + 13: { + Multiple: 2, + ID: 13, + Weights: []int64{3150, 3150, 3150}, + }, + 14: { + Multiple: 3, + ID: 14, + Weights: []int64{2250, 2250, 2000}, + }, + 15: { + Multiple: 4, + ID: 15, + Weights: []int64{1500, 1500, 1500}, + }, + 16: { + Multiple: 5, + ID: 16, + Weights: []int64{1100, 1100, 1000}, + }, + 17: { + Multiple: 6, + ID: 17, + Weights: []int64{300, 300, 600}, + }, + 18: { + Multiple: 8, + ID: 18, + Weights: []int64{150, 150, 400}, + }, + 19: { + Multiple: 10, + ID: 19, + Weights: []int64{80, 80, 200}, + }, + 20: { + Multiple: 12, + ID: 20, + Weights: []int64{30, 30, 100}, + }, + 21: { + Multiple: 15, + ID: 21, + Weights: []int64{10, 10, 50}, + }, + 22: { + Multiple: 20, + ID: 22, + Weights: []int64{20, 20, 50}, + }, + 23: { + Multiple: 25, + ID: 23, + Weights: []int64{10, 10, 50}, + }, + 24: { + Multiple: 50, + ID: 24, + Weights: []int64{1, 1, 25}, + }, + 25: { + Multiple: 100, + ID: 25, + Weights: []int64{1, 1, 25}, + }, + 26: { + Multiple: 250, + ID: 26, + Weights: []int64{0, 0, 10}, + }, + 27: { + Multiple: 500, + ID: 27, + Weights: []int64{0, 0, 10}, + }, + } + + GatesOfOlympusReelBaseSpinRange = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpinReel = [][]int64{ + {1, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 1, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {1, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {1, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {1, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpinWeight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin1Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin1Reel = [][]int64{ + {1, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 1, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {1, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {1, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {1, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpin1Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin2Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin2Reel = [][]int64{ + {1, 6, 6, 11, 8, 10, 11, 9, 7, 6, 6, 11, 8, 8, 9, 10, 7, 11, 11, 8, 6, 10, 9, 10, 8, 8, 3, 11, 11, 4, 4, 9, 11, 8, 7, 11, 11, 9, 10, 5, 5, 8, 10, 11, 6, 11, 10, 7, 11, 9, 10, 10, 4, 4, 3, 3, 7, 6, 11, 5, 5, 7, 10, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 4, 11, 9, 9, 10, 10, 11, 4, 10, 8, 9, 9, 7, 11, 8, 8, 10, 10, 5, 5, 7, 9, 10, 3, 6, 7, 8, 6, 11, 9, 7, 4, 4, 1, 3, 11, 11, 9, 5, 5, 10, 6, 7, 7, 10, 9, 6, 6, 11, 10, 8, 8, 11, 7, 11}, + {1, 5, 11, 5, 8, 8, 11, 7, 5, 10, 9, 7, 10, 6, 7, 1, 10, 3, 5, 10, 5, 7, 7, 8, 7, 9, 11, 11, 4, 4, 7, 10, 9, 11, 11, 10, 4, 4, 9, 3, 7, 10, 7, 4, 11, 9, 9, 10, 7, 8, 8, 11, 7, 8, 9, 8, 10, 7, 11, 11, 6, 6, 8, 7}, + {1, 4, 4, 11, 10, 5, 5, 11, 11, 9, 9, 6, 11, 10, 9, 4, 4, 9, 9, 4, 11, 10, 5, 8, 8, 8, 10, 10, 11, 11, 5, 5, 3, 11, 9, 9, 6, 8, 6, 10, 4, 4, 7, 9, 7, 11, 11, 6, 7, 6, 10, 9, 8, 7, 10, 3, 11, 3, 11, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 7, 4, 6, 8, 8, 1, 5, 9, 11, 6, 6, 8, 8, 10, 10, 11, 6, 11, 6, 11, 10, 7, 4, 4, 11, 9, 7, 6, 8, 9, 4, 5, 5, 7, 9, 7, 8, 8, 9, 10, 7, 7, 11, 11, 9, 3, 3, 11, 11, 8, 10, 10, 9, 9, 5, 5, 10, 11, 7}, + {1, 6, 7, 6, 4, 11, 9, 9, 10, 8, 3, 7, 11, 6, 9, 9, 8, 7, 10, 8, 5, 6, 11, 10, 11, 9, 9, 8, 8, 7, 10, 5, 5, 7, 7, 11, 9, 10, 11, 3, 7, 6, 10, 6, 11, 11, 9, 9, 9, 10, 8, 10, 4, 11, 4, 3, 3, 9, 9, 5, 5, 9, 8}, + } + + GatesOfOlympusReelBaseSpin2Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin3Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin3Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelBaseSpin3Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin7Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin7Reel = [][]int64{ + {11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {1, 9, 3, 8, 5, 1, 10, 7, 6, 11, 1, 3, 8, 5, 4, 1, 7, 6, 11, 9, 1, 8, 5, 4, 10, 1, 6, 11, 9, 3, 1, 5, 4, 10, 7, 1, 11, 9, 3, 8, 1, 4, 10, 7, 6}, + {11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6, 11, 9, 3, 8, 5, 4, 10, 7, 6}, + } + + GatesOfOlympusReelBaseSpin7Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelBaseSpin8Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelBaseSpin8Reel = [][]int64{ + {1, 6, 6, 11, 8, 10, 11, 9, 7, 6, 6, 11, 8, 8, 9, 10, 7, 11, 11, 8, 6, 10, 9, 4, 11, 11, 4, 4, 9, 11, 8, 7, 11, 1, 9, 10, 5, 5, 8, 10, 11, 6, 11, 10, 7, 11, 9, 10, 10, 4, 4, 3, 3, 7, 6, 11, 5, 5, 7, 10, 9}, + {1, 9, 9, 6, 6, 8, 8, 10, 4, 11, 9, 9, 10, 10, 11, 4, 10, 8, 9, 9, 7, 11, 8, 7, 5, 5, 7, 9, 10, 3, 6, 7, 8, 6, 11, 9, 7, 4, 4, 1, 3, 11, 11, 9, 5, 5, 10, 6, 7, 7, 10, 9, 6, 6, 11, 10, 8, 8, 11, 7, 11}, + {1, 5, 11, 5, 8, 8, 11, 7, 5, 10, 9, 7, 10, 6, 7, 1, 10, 3, 5, 10, 5, 7, 11, 11, 11, 4, 4, 7, 10, 9, 11, 11, 10, 4, 4, 9, 3, 7, 10, 7, 4, 11, 9, 9, 10, 7, 8, 8, 11, 7, 8, 9, 8, 10, 7, 11, 11, 6, 6, 8, 7}, + {1, 4, 4, 11, 10, 5, 5, 11, 11, 9, 9, 6, 11, 10, 9, 4, 4, 9, 9, 4, 8, 8, 10, 10, 11, 11, 5, 5, 3, 11, 9, 9, 1, 8, 6, 10, 4, 4, 7, 9, 7, 11, 11, 6, 7, 6, 10, 9, 8, 7, 10, 3, 11, 3, 11, 3, 7, 7, 10, 10}, + {1, 9, 10, 10, 11, 7, 4, 6, 8, 8, 1, 5, 9, 11, 6, 6, 8, 8, 10, 10, 11, 10, 7, 4, 4, 11, 9, 7, 6, 8, 9, 4, 5, 5, 7, 9, 7, 8, 8, 9, 10, 7, 7, 11, 11, 9, 3, 3, 11, 11, 8, 10, 10, 9, 9, 5, 5, 10, 11, 7}, + {1, 6, 7, 6, 4, 11, 9, 9, 10, 8, 3, 7, 11, 6, 9, 9, 8, 7, 10, 8, 5, 6, 9, 9, 8, 8, 7, 10, 5, 5, 7, 7, 11, 9, 10, 11, 3, 7, 4, 10, 6, 11, 11, 9, 9, 9, 10, 8, 10, 4, 11, 4, 3, 3, 9, 9, 5, 5, 9, 8}, + } + + GatesOfOlympusReelBaseSpin8Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelChoose = []*structs.GatesOfOlympusReelChoose{ + { + ID: 1, + IsFreeSpin: false, + NodeType: "BaseSpin1", + Weights: []int64{40, 162, 0}, + }, + { + ID: 2, + IsFreeSpin: false, + NodeType: "BaseSpin2", + Weights: []int64{66, 0, 0}, + }, + { + ID: 3, + IsFreeSpin: false, + NodeType: "BaseSpin3", + Weights: []int64{20, 68, 0}, + }, + { + ID: 4, + IsFreeSpin: false, + NodeType: "BaseSpin7", + Weights: []int64{0, 0, 1}, + }, + { + ID: 5, + IsFreeSpin: false, + NodeType: "BaseSpin8", + Weights: []int64{1, 180, 0}, + }, + { + ID: 6, + IsFreeSpin: true, + NodeType: "FreeSpin4", + Weights: []int64{1, 1, 1}, + }, + { + ID: 7, + IsFreeSpin: true, + NodeType: "FreeSpin5", + Weights: []int64{2, 2, 2}, + }, + } + + GatesOfOlympusReelFreeSpinRange = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpinReel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 1, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 1, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 1, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 1, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 1, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 1, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpinWeight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelFreeSpin4Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpin4Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 1, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 1, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 1, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 1, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 1, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 1, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpin4Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusReelFreeSpin5Range = [][]int64{ + {5, 5, 5, 5, 5, 5}, + } + + GatesOfOlympusReelFreeSpin5Reel = [][]int64{ + {12, 6, 6, 11, 11, 10, 10, 9, 9, 6, 6, 8, 8, 8, 10, 10, 10, 11, 11, 6, 6, 10, 10, 10, 8, 8, 11, 11, 4, 4, 9, 9, 8, 8, 11, 11, 10, 10, 5, 5, 8, 8, 11, 11, 11, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 11, 11, 11, 5, 5, 7, 7, 9}, + {12, 9, 9, 6, 6, 8, 8, 10, 11, 11, 9, 9, 10, 10, 10, 4, 4, 9, 9, 9, 11, 11, 8, 8, 10, 10, 5, 5, 8, 8, 3, 3, 6, 6, 10, 10, 10, 9, 9, 4, 4, 12, 3, 3, 11, 11, 5, 5, 10, 10, 7, 7, 9, 9, 6, 6, 10, 10, 8, 8, 11, 11, 11}, + {12, 5, 5, 5, 8, 8, 11, 11, 5, 5, 9, 9, 6, 6, 7, 7, 3, 3, 5, 5, 5, 7, 7, 8, 8, 11, 11, 4, 4, 7, 7, 9, 9, 10, 10, 4, 4, 3, 3, 7, 7, 7, 4, 4, 9, 9, 10, 10, 8, 8, 11, 11, 8, 8, 8, 10, 10, 11, 11, 6, 6, 7, 7}, + {12, 4, 4, 11, 11, 5, 5, 7, 7, 9, 9, 11, 11, 10, 10, 4, 4, 9, 9, 11, 11, 5, 5, 8, 8, 10, 10, 11, 11, 5, 5, 3, 3, 9, 9, 6, 6, 10, 10, 4, 4, 7, 7, 7, 11, 11, 6, 6, 6, 9, 9, 10, 10, 10, 11, 11, 3, 3, 3, 7, 7, 10, 10}, + {12, 9, 10, 10, 11, 11, 6, 6, 8, 8, 5, 5, 11, 11, 6, 6, 8, 8, 10, 10, 11, 11, 6, 6, 10, 10, 4, 4, 9, 9, 7, 7, 4, 4, 4, 5, 5, 9, 9, 8, 8, 8, 11, 11, 7, 7, 9, 9, 9, 3, 3, 11, 11, 11, 10, 10, 9, 9, 5, 5, 7, 7, 7}, + {12, 6, 6, 6, 4, 4, 9, 9, 8, 8, 7, 7, 11, 11, 9, 9, 7, 7, 8, 8, 5, 5, 11, 11, 11, 9, 9, 8, 8, 10, 10, 5, 5, 7, 7, 11, 11, 10, 10, 3, 3, 6, 6, 6, 11, 11, 9, 9, 9, 10, 10, 10, 4, 4, 4, 3, 3, 9, 9, 5, 5, 8, 8}, + } + + GatesOfOlympusReelFreeSpin5Weight = [][]float64{ + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, + } + + GatesOfOlympusScatter = map[int64]*structs.GatesOfOlympusScatter{ + 1: { + ScatterCount: 1, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 0, + BasePayrate: 0, + FreePayrate: 0, + }, + 2: { + ScatterCount: 2, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 0, + BasePayrate: 0, + FreePayrate: 0, + }, + 3: { + ScatterCount: 3, + FreeSpinBouts: 0, + FreeSpinExtraBouts: 5, + BasePayrate: 0, + FreePayrate: 0, + }, + 4: { + ScatterCount: 4, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 3, + FreePayrate: 3, + }, + 5: { + ScatterCount: 5, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 5, + FreePayrate: 5, + }, + 6: { + ScatterCount: 6, + FreeSpinBouts: 15, + FreeSpinExtraBouts: 5, + BasePayrate: 100, + FreePayrate: 100, + }, + } + + GatesOfOlympusSymbol = map[int64]*structs.GatesOfOlympusSymbol{ + 1: { + ID: 1, + Name: "Scatter", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 2: { + ID: 2, + Name: "无", + IsWild: false, + Group: []int64{2}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 3: { + ID: 3, + Name: "皇冠", + IsWild: false, + Group: []int64{3}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 200, 200, 500, 500, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000}, + ClientOrder: 1, + ClientDsc: "", + }, + 4: { + ID: 4, + Name: "沙漏", + IsWild: false, + Group: []int64{4}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 50, 50, 200, 200, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}, + ClientOrder: 2, + ClientDsc: "", + }, + 5: { + ID: 5, + Name: "戒指", + IsWild: false, + Group: []int64{5}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 40, 40, 100, 100, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300}, + ClientOrder: 3, + ClientDsc: "", + }, + 6: { + ID: 6, + Name: "酒杯", + IsWild: false, + Group: []int64{6}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 30, 30, 40, 40, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240}, + ClientOrder: 4, + ClientDsc: "", + }, + 7: { + ID: 7, + Name: "红宝石", + IsWild: false, + Group: []int64{7}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 20, 20, 30, 30, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200}, + ClientOrder: 5, + ClientDsc: "", + }, + 8: { + ID: 8, + Name: "紫宝石", + IsWild: false, + Group: []int64{8}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 16, 16, 24, 24, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160}, + ClientOrder: 6, + ClientDsc: "", + }, + 9: { + ID: 9, + Name: "黄宝石", + IsWild: false, + Group: []int64{9}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 10, 10, 20, 20, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100}, + ClientOrder: 7, + ClientDsc: "", + }, + 10: { + ID: 10, + Name: "绿宝石", + IsWild: false, + Group: []int64{10}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 8, 8, 18, 18, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80}, + ClientOrder: 8, + ClientDsc: "", + }, + 11: { + ID: 11, + Name: "蓝宝石", + IsWild: false, + Group: []int64{11}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 5, 5, 15, 15, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, + ClientOrder: 9, + ClientDsc: "", + }, + 12: { + ID: 12, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 13: { + ID: 13, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 14: { + ID: 14, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 15: { + ID: 15, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 16: { + ID: 16, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 17: { + ID: 17, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 18: { + ID: 18, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 19: { + ID: 19, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 20: { + ID: 20, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 21: { + ID: 21, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 22: { + ID: 22, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 23: { + ID: 23, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 24: { + ID: 24, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 25: { + ID: 25, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 26: { + ID: 26, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + 27: { + ID: 27, + Name: "倍乘", + IsWild: false, + Group: []int64{12}, + PayRate: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + ClientOrder: 0, + ClientDsc: "", + }, + } + + GatesOfOlympusSymbolBetRatio = []*structs.GatesOfOlympusSymbolBetRatio{ + { + BetRatio: 1, + }, + } + +} diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go index 7c5f3de..c80afb9 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/matrix.go @@ -9,8 +9,8 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -22,8 +22,8 @@ func init() { MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{ { - Type: "FeatureForm19X1TypeA", - LinkType: 2, + Type: "FeatureForm19X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -35,8 +35,8 @@ func init() { MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{ { - Type: "FeatureForm20X1TypeA", - LinkType: 2, + Type: "FeatureForm20X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -48,8 +48,8 @@ func init() { MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{ { - Type: "FeatureForm25X1TypeA", - LinkType: 2, + Type: "FeatureForm25X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -61,8 +61,8 @@ func init() { MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{ { - Type: "FeatureForm30X1TypeA", - LinkType: 2, + Type: "FeatureForm30X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -74,8 +74,8 @@ func init() { MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{ { - Type: "FeatureForm35X1TypeA", - LinkType: 2, + Type: "FeatureForm35X1TypeA", + LinkType: 2, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -87,8 +87,8 @@ func init() { MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -100,8 +100,8 @@ func init() { MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{ { - Type: "FeatureForm40X1", - LinkType: 2, + Type: "FeatureForm40X1", + LinkType: 2, Direction: 0, LineCount: 0, Lines: [][]int64{ @@ -113,8 +113,8 @@ func init() { MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{ { - Type: "FeatureForm15X1TypeA", - LinkType: 2, + Type: "FeatureForm15X1TypeA", + LinkType: 2, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -126,8 +126,8 @@ func init() { MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{ { - Type: "Line100Form12X5TypeA", - LinkType: 0, + Type: "Line100Form12X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -238,8 +238,8 @@ func init() { MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{ { - Type: "Line100Form6X5TypeA", - LinkType: 0, + Type: "Line100Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -350,8 +350,8 @@ func init() { MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{ { - Type: "Line10Form343TypeA", - LinkType: 0, + Type: "Line10Form343TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -372,8 +372,8 @@ func init() { MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{ { - Type: "Line10Form3X5TypeA", - LinkType: 0, + Type: "Line10Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 10, Lines: [][]int64{ @@ -394,8 +394,8 @@ func init() { MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{ { - Type: "Line1Form3X3TypeA", - LinkType: 0, + Type: "Line1Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -407,8 +407,8 @@ func init() { MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{ { - Type: "Line1Form3X3TypeB", - LinkType: 0, + Type: "Line1Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -420,8 +420,8 @@ func init() { MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{ { - Type: "Line1Form5X5TypeA", - LinkType: 0, + Type: "Line1Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 1, Lines: [][]int64{ @@ -433,8 +433,8 @@ func init() { MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{ { - Type: "Line20Form3X5TypeA", - LinkType: 0, + Type: "Line20Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -465,8 +465,8 @@ func init() { MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{ { - Type: "Line25Form36666TypeA", - LinkType: 0, + Type: "Line25Form36666TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -502,8 +502,8 @@ func init() { MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{ { - Type: "Line25Form3X5TypeA", - LinkType: 0, + Type: "Line25Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -539,8 +539,8 @@ func init() { MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{ { - Type: "Line25Form3X5TypeB", - LinkType: 0, + Type: "Line25Form3X5TypeB", + LinkType: 0, Direction: 2, LineCount: 25, Lines: [][]int64{ @@ -576,8 +576,8 @@ func init() { MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{ { - Type: "Line25Form3X5TypeC", - LinkType: 0, + Type: "Line25Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -613,8 +613,8 @@ func init() { MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{ { - Type: "Line25Form3X5TypeD", - LinkType: 0, + Type: "Line25Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -650,8 +650,8 @@ func init() { MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{ { - Type: "Line25Form3X5TypeE", - LinkType: 0, + Type: "Line25Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -687,8 +687,8 @@ func init() { MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{ { - Type: "Line30Form3X5TypeA", - LinkType: 0, + Type: "Line30Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -729,8 +729,8 @@ func init() { MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{ { - Type: "Line30Form3X5TypeB", - LinkType: 0, + Type: "Line30Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -771,8 +771,8 @@ func init() { MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{ { - Type: "Line30Form3X5TypeC", - LinkType: 0, + Type: "Line30Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -813,8 +813,8 @@ func init() { MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{ { - Type: "Line30Form3X5TypeD", - LinkType: 0, + Type: "Line30Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -855,8 +855,8 @@ func init() { MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{ { - Type: "Line30Form3X5TypeE", - LinkType: 0, + Type: "Line30Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -897,8 +897,8 @@ func init() { MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{ { - Type: "Line30Form3X6TypeA", - LinkType: 0, + Type: "Line30Form3X6TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -939,8 +939,8 @@ func init() { MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{ { - Type: "Line30Form4X5TypeA", - LinkType: 0, + Type: "Line30Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -981,8 +981,8 @@ func init() { MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{ { - Type: "Line30Form4X5TypeB", - LinkType: 0, + Type: "Line30Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 30, Lines: [][]int64{ @@ -1023,8 +1023,8 @@ func init() { MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{ { - Type: "Line3Form3X3TypeA", - LinkType: 0, + Type: "Line3Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 3, Lines: [][]int64{ @@ -1038,8 +1038,8 @@ func init() { MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{ { - Type: "Line40Form34543TypeA", - LinkType: 0, + Type: "Line40Form34543TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1090,8 +1090,8 @@ func init() { MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{ { - Type: "Line40Form3X5TypeA", - LinkType: 0, + Type: "Line40Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1142,8 +1142,8 @@ func init() { MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{ { - Type: "Line40Form3X5TypeB", - LinkType: 0, + Type: "Line40Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1194,8 +1194,8 @@ func init() { MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{ { - Type: "Line40Form3X5TypeC", - LinkType: 0, + Type: "Line40Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1246,8 +1246,8 @@ func init() { MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{ { - Type: "Line40Form3X5TypeD", - LinkType: 0, + Type: "Line40Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1298,8 +1298,8 @@ func init() { MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1350,8 +1350,8 @@ func init() { MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{ { - Type: "Line40Form4X5TypeA", - LinkType: 0, + Type: "Line40Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1402,8 +1402,8 @@ func init() { MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{ { - Type: "Line40Form4X5TypeC", - LinkType: 0, + Type: "Line40Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1454,8 +1454,8 @@ func init() { MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{ { - Type: "Line40Form4X6TypeA", - LinkType: 0, + Type: "Line40Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 40, Lines: [][]int64{ @@ -1506,8 +1506,8 @@ func init() { MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{ { - Type: "Line50Form3X5TypeA", - LinkType: 0, + Type: "Line50Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1568,8 +1568,8 @@ func init() { MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{ { - Type: "Line50Form3X5TypeB", - LinkType: 0, + Type: "Line50Form3X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1630,8 +1630,8 @@ func init() { MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{ { - Type: "Line50Form3X5TypeC", - LinkType: 0, + Type: "Line50Form3X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1692,8 +1692,8 @@ func init() { MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{ { - Type: "Line50Form3X5TypeD", - LinkType: 0, + Type: "Line50Form3X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1754,8 +1754,8 @@ func init() { MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{ { - Type: "Line50Form3X5TypeE", - LinkType: 0, + Type: "Line50Form3X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1816,8 +1816,8 @@ func init() { MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{ { - Type: "Line50Form3X5TypeF", - LinkType: 0, + Type: "Line50Form3X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1878,8 +1878,8 @@ func init() { MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{ { - Type: "Line50Form3X5TypeG", - LinkType: 0, + Type: "Line50Form3X5TypeG", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -1940,8 +1940,8 @@ func init() { MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{ { - Type: "Line50Form3X5TypeH", - LinkType: 0, + Type: "Line50Form3X5TypeH", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2002,8 +2002,8 @@ func init() { MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{ { - Type: "Line50Form45454TypeA", - LinkType: 0, + Type: "Line50Form45454TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2064,8 +2064,8 @@ func init() { MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{ { - Type: "Line50Form4X5TypeA", - LinkType: 0, + Type: "Line50Form4X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2126,8 +2126,8 @@ func init() { MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{ { - Type: "Line50Form4X5TypeB", - LinkType: 0, + Type: "Line50Form4X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2188,8 +2188,8 @@ func init() { MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{ { - Type: "Line50Form4X5TypeC", - LinkType: 0, + Type: "Line50Form4X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2250,8 +2250,8 @@ func init() { MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{ { - Type: "Line50Form4X5TypeD", - LinkType: 0, + Type: "Line50Form4X5TypeD", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2312,8 +2312,8 @@ func init() { MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{ { - Type: "Line50Form4X5TypeE", - LinkType: 0, + Type: "Line50Form4X5TypeE", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2374,8 +2374,8 @@ func init() { MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{ { - Type: "Line50Form4X5TypeF", - LinkType: 0, + Type: "Line50Form4X5TypeF", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2436,8 +2436,8 @@ func init() { MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{ { - Type: "Line50Form4X6TypeA", - LinkType: 0, + Type: "Line50Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2498,8 +2498,8 @@ func init() { MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{ { - Type: "Line50Form5X5TypeA", - LinkType: 0, + Type: "Line50Form5X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2560,8 +2560,8 @@ func init() { MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{ { - Type: "Line50Form5X5TypeB", - LinkType: 0, + Type: "Line50Form5X5TypeB", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2622,8 +2622,8 @@ func init() { MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{ { - Type: "Line50Form5X5TypeC", - LinkType: 0, + Type: "Line50Form5X5TypeC", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2684,8 +2684,8 @@ func init() { MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{ { - Type: "Line50Form6X5TypeA", - LinkType: 0, + Type: "Line50Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 50, Lines: [][]int64{ @@ -2746,8 +2746,8 @@ func init() { MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{ { - Type: "Line5Form3X3TypeA", - LinkType: 0, + Type: "Line5Form3X3TypeA", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2763,8 +2763,8 @@ func init() { MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{ { - Type: "Line5Form3X3TypeB", - LinkType: 0, + Type: "Line5Form3X3TypeB", + LinkType: 0, Direction: 0, LineCount: 5, Lines: [][]int64{ @@ -2780,8 +2780,8 @@ func init() { MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{ { - Type: "Line60Form33633TypeA", - LinkType: 0, + Type: "Line60Form33633TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2852,8 +2852,8 @@ func init() { MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{ { - Type: "Line60Form8X5TypeA", - LinkType: 0, + Type: "Line60Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -2924,8 +2924,8 @@ func init() { MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{ { - Type: "Line65Form6X5TypeA", - LinkType: 0, + Type: "Line65Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 65, Lines: [][]int64{ @@ -3001,8 +3001,8 @@ func init() { MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{ { - Type: "Line70Form9X5TypeA", - LinkType: 0, + Type: "Line70Form9X5TypeA", + LinkType: 0, Direction: 0, LineCount: 70, Lines: [][]int64{ @@ -3083,8 +3083,8 @@ func init() { MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{ { - Type: "Line75Form5X6TypeA", - LinkType: 0, + Type: "Line75Form5X6TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3170,8 +3170,8 @@ func init() { MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{ { - Type: "Line75Form6X5TypeA", - LinkType: 0, + Type: "Line75Form6X5TypeA", + LinkType: 0, Direction: 0, LineCount: 75, Lines: [][]int64{ @@ -3257,8 +3257,8 @@ func init() { MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{ { - Type: "Line80Form10X5TypeA", - LinkType: 0, + Type: "Line80Form10X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3349,8 +3349,8 @@ func init() { MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{ { - Type: "Line80Form3X5TypeA", - LinkType: 0, + Type: "Line80Form3X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3441,8 +3441,8 @@ func init() { MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{ { - Type: "Line80Form4X6TypeA", - LinkType: 0, + Type: "Line80Form4X6TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3533,8 +3533,8 @@ func init() { MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{ { - Type: "Line80Form7X5TypeA", - LinkType: 0, + Type: "Line80Form7X5TypeA", + LinkType: 0, Direction: 0, LineCount: 80, Lines: [][]int64{ @@ -3625,8 +3625,8 @@ func init() { MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{ { - Type: "Line90Form11X5TypeA", - LinkType: 0, + Type: "Line90Form11X5TypeA", + LinkType: 0, Direction: 0, LineCount: 90, Lines: [][]int64{ @@ -3727,8 +3727,8 @@ func init() { MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{ { - Type: "Line95Form8X5TypeA", - LinkType: 0, + Type: "Line95Form8X5TypeA", + LinkType: 0, Direction: 0, LineCount: 95, Lines: [][]int64{ @@ -3834,8 +3834,8 @@ func init() { MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{ { - Type: "MatchForm7X7", - LinkType: 4, + Type: "MatchForm7X7", + LinkType: 4, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3847,8 +3847,8 @@ func init() { MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{ { - Type: "SameForm5X6", - LinkType: 3, + Type: "SameForm5X6", + LinkType: 3, Direction: 0, LineCount: 20, Lines: [][]int64{ @@ -3860,8 +3860,8 @@ func init() { MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{ { - Type: "SameForm5X6TypeB", - LinkType: 3, + Type: "SameForm5X6TypeB", + LinkType: 3, Direction: 0, LineCount: 25, Lines: [][]int64{ @@ -3873,8 +3873,8 @@ func init() { MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{ { - Type: "WaysForm333331", - LinkType: 1, + Type: "WaysForm333331", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3886,8 +3886,8 @@ func init() { MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{ { - Type: "WaysForm33555", - LinkType: 1, + Type: "WaysForm33555", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3899,8 +3899,8 @@ func init() { MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{ { - Type: "WaysForm344444", - LinkType: 1, + Type: "WaysForm344444", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3912,8 +3912,8 @@ func init() { MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{ { - Type: "WaysForm3X5TypeA", - LinkType: 1, + Type: "WaysForm3X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3925,8 +3925,8 @@ func init() { MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{ { - Type: "WaysForm44668", - LinkType: 1, + Type: "WaysForm44668", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3938,8 +3938,8 @@ func init() { MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{ { - Type: "WaysForm4X5TypeA", - LinkType: 1, + Type: "WaysForm4X5TypeA", + LinkType: 1, Direction: 0, LineCount: 100, Lines: [][]int64{ @@ -3951,8 +3951,8 @@ func init() { MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{ { - Type: "WaysForm4X5TypeB", - LinkType: 1, + Type: "WaysForm4X5TypeB", + LinkType: 1, Direction: 0, LineCount: 60, Lines: [][]int64{ @@ -3962,4 +3962,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go b/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go index 2fedcfe..35875e9 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/opt_group.go @@ -9,14 +9,14 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { OptGroup = []*structs.OptGroup{ { - ID: 1, - Batch: 1, + ID: 1, + Batch: 1, IsNewPlayer: true, - StartTime: "2023-4-26", - EndTime: "2050-11-27", - Affect: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - Weight: []int64{1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + StartTime: "2023-4-26", + EndTime: "2050-11-27", + Affect: []int64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + Weight: []int64{1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go b/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go index b13f286..b6152cf 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/prize_model.go @@ -9,20 +9,20 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{ 1: { - ID: 1, - AniType: "big_win", + ID: 1, + AniType: "big_win", MinMultiple: 10, MaxMultiple: 25, }, 2: { - ID: 2, - AniType: "mega_win", + ID: 2, + AniType: "mega_win", MinMultiple: 25, MaxMultiple: 50, }, 3: { - ID: 3, - AniType: "epic_win", + ID: 3, + AniType: "epic_win", MinMultiple: 50, MaxMultiple: -1, }, @@ -30,29 +30,29 @@ func init() { PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{ 1: { - ID: 1, - AniType: "big_win", + ID: 1, + AniType: "big_win", MinMultiple: 15, MaxMultiple: 30, }, 2: { - ID: 2, - AniType: "mega_win", + ID: 2, + AniType: "mega_win", MinMultiple: 30, MaxMultiple: 45, }, 3: { - ID: 3, - AniType: "epic_win", + ID: 3, + AniType: "epic_win", MinMultiple: 45, MaxMultiple: 60, }, 4: { - ID: 4, - AniType: "epic_win", + ID: 4, + AniType: "epic_win", MinMultiple: 60, MaxMultiple: -1, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go b/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go index 49d75bc..6dd159b 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/simulator.go @@ -10,162 +10,162 @@ func init() { SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{ { Level: 1, - Min: 0, - Max: 3, + Min: 0, + Max: 3, }, { Level: 2, - Min: 3, - Max: 6, + Min: 3, + Max: 6, }, { Level: 3, - Min: 6, - Max: 9, + Min: 6, + Max: 9, }, { Level: 4, - Min: 9, - Max: 12, + Min: 9, + Max: 12, }, { Level: 5, - Min: 12, - Max: 18, + Min: 12, + Max: 18, }, { Level: 6, - Min: 18, - Max: 20, + Min: 18, + Max: 20, }, { Level: 7, - Min: 20, - Max: 30, + Min: 20, + Max: 30, }, { Level: 8, - Min: 30, - Max: 50, + Min: 30, + Max: 50, }, { Level: 9, - Min: 50, - Max: 100, + Min: 50, + Max: 100, }, { Level: 10, - Min: 100, - Max: 500, + Min: 100, + Max: 500, }, { Level: 11, - Min: 500, - Max: 1000, + Min: 500, + Max: 1000, }, { Level: 12, - Min: 1000, - Max: -1, + Min: 1000, + Max: -1, }, } SimulatorMultiLevel = []*structs.SimulatorMultiLevel{ { Level: 1, - Min: 0, - Max: 1, + Min: 0, + Max: 1, }, { Level: 2, - Min: 1, - Max: 2, + Min: 1, + Max: 2, }, { Level: 3, - Min: 2, - Max: 3, + Min: 2, + Max: 3, }, { Level: 4, - Min: 3, - Max: 4, + Min: 3, + Max: 4, }, { Level: 5, - Min: 4, - Max: 5, + Min: 4, + Max: 5, }, { Level: 6, - Min: 5, - Max: 6, + Min: 5, + Max: 6, }, { Level: 7, - Min: 6, - Max: 8, + Min: 6, + Max: 8, }, { Level: 8, - Min: 8, - Max: 10, + Min: 8, + Max: 10, }, { Level: 9, - Min: 10, - Max: 12, + Min: 10, + Max: 12, }, { Level: 10, - Min: 12, - Max: 15, + Min: 12, + Max: 15, }, { Level: 11, - Min: 15, - Max: 18, + Min: 15, + Max: 18, }, { Level: 12, - Min: 18, - Max: 20, + Min: 18, + Max: 20, }, { Level: 13, - Min: 20, - Max: 25, + Min: 20, + Max: 25, }, { Level: 14, - Min: 25, - Max: 30, + Min: 25, + Max: 30, }, { Level: 15, - Min: 30, - Max: 50, + Min: 30, + Max: 50, }, { Level: 16, - Min: 50, - Max: 100, + Min: 50, + Max: 100, }, { Level: 17, - Min: 100, - Max: 500, + Min: 100, + Max: 500, }, { Level: 18, - Min: 500, - Max: 1000, + Min: 500, + Max: 1000, }, { Level: 19, - Min: 1000, - Max: -1, + Min: 1000, + Max: -1, }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/test.go b/gamesrv/slotspkg/internal/exported/excel2go/base/test.go index 620b087..1964a45 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/test.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/test.go @@ -9,173 +9,173 @@ import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs func init() { TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{ 0: { - Index: 0, + Index: 0, BetChangeList: 0.3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 0, }, 1: { - Index: 1, + Index: 1, BetChangeList: 0.6, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 1, }, 2: { - Index: 2, + Index: 2, BetChangeList: 0.9, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 2, }, 3: { - Index: 3, + Index: 3, BetChangeList: 1, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, 4: { - Index: 4, + Index: 4, BetChangeList: 1.5, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 4, }, 5: { - Index: 5, + Index: 5, BetChangeList: 3, - BetSizeIndex: 0, + BetSizeIndex: 0, BetLevelIndex: 9, }, 6: { - Index: 6, + Index: 6, BetChangeList: 5, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 4, }, 7: { - Index: 7, + Index: 7, BetChangeList: 9, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 0, }, 8: { - Index: 8, + Index: 8, BetChangeList: 10, - BetSizeIndex: 1, + BetSizeIndex: 1, BetLevelIndex: 9, }, 9: { - Index: 9, + Index: 9, BetChangeList: 15, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 4, }, 10: { - Index: 10, + Index: 10, BetChangeList: 30, - BetSizeIndex: 2, + BetSizeIndex: 2, BetLevelIndex: 9, }, 11: { - Index: 11, + Index: 11, BetChangeList: 45, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 4, }, 12: { - Index: 12, + Index: 12, BetChangeList: 90, - BetSizeIndex: 3, + BetSizeIndex: 3, BetLevelIndex: 9, }, } TestBetBetLevel = map[int64]*structs.TestBetBetLevel{ 0: { - Index: 0, + Index: 0, BetLevel: 1, }, 1: { - Index: 1, + Index: 1, BetLevel: 2, }, 2: { - Index: 2, + Index: 2, BetLevel: 3, }, 3: { - Index: 3, + Index: 3, BetLevel: 4, }, 4: { - Index: 4, + Index: 4, BetLevel: 5, }, 5: { - Index: 5, + Index: 5, BetLevel: 6, }, 6: { - Index: 6, + Index: 6, BetLevel: 7, }, 7: { - Index: 7, + Index: 7, BetLevel: 8, }, 8: { - Index: 8, + Index: 8, BetLevel: 9, }, 9: { - Index: 9, + Index: 9, BetLevel: 10, }, } TestBetBetLine = map[int64]*structs.TestBetBetLine{ 0: { - Index: 0, + Index: 0, BetLine: 10, }, } TestBetBetSize = map[int64]*structs.TestBetBetSize{ 0: { - Index: 0, + Index: 0, BetSize: 300, }, 1: { - Index: 1, + Index: 1, BetSize: 1000, }, 2: { - Index: 2, + Index: 2, BetSize: 3000, }, 3: { - Index: 3, + Index: 3, BetSize: 9000, }, } TestBetFirstBet = map[int64]*structs.TestBetFirstBet{ 1: { - Index: 1, - BetSizeIndex: 1, + Index: 1, + BetSizeIndex: 1, BetLevelIndex: 0, }, } TestFormation = []*structs.TestFormation{ { - SpinType: 1, - NodeType: "BaseSpin", - ID: 1, - SeqID: 1, - Reel: "BaseSpin", - Matrix: "Line1Form3X3TypeA", - Symbol: "Default", - FirstInitMethod: 2, - OtherInitMethod: 4, + SpinType: 1, + NodeType: "BaseSpin", + ID: 1, + SeqID: 1, + Reel: "BaseSpin", + Matrix: "Line1Form3X3TypeA", + Symbol: "Default", + FirstInitMethod: 2, + OtherInitMethod: 4, FirstInitSymbols: []int64{}, OtherInitSymbols: []int64{}, }, @@ -186,5041 +186,5041 @@ func init() { ID: 1, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "96", - Rtp: 0.96, + Rtp: 0.96, }, 2: { ID: 2, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "80", - Rtp: 0.8, + Rtp: 0.8, }, 3: { ID: 3, TypeWeight: map[int64]*structs.TestMapRTPModeTypeWeight{ 1: { - ID: 1, + ID: 1, Weight: 1, }, }, Desc: "120", - Rtp: 1.2, + Rtp: 1.2, }, } TestRandomWeight = []*structs.TestRandomWeight{ { - ID: 1, - Time: 0, + ID: 1, + Time: 0, Weight: 0.043017, }, { - ID: 2, - Time: 0.1, + ID: 2, + Time: 0.1, Weight: 0.00795, }, { - ID: 3, - Time: 0.2, + ID: 3, + Time: 0.2, Weight: 0.007884, }, { - ID: 4, - Time: 0.3, + ID: 4, + Time: 0.3, Weight: 0.007819, }, { - ID: 5, - Time: 0.4, + ID: 5, + Time: 0.4, Weight: 0.007754, }, { - ID: 6, - Time: 0.5, + ID: 6, + Time: 0.5, Weight: 0.007689, }, { - ID: 7, - Time: 0.6, + ID: 7, + Time: 0.6, Weight: 0.007625, }, { - ID: 8, - Time: 0.7, + ID: 8, + Time: 0.7, Weight: 0.007562, }, { - ID: 9, - Time: 0.8, + ID: 9, + Time: 0.8, Weight: 0.007499, }, { - ID: 10, - Time: 0.9, + ID: 10, + Time: 0.9, Weight: 0.007437, }, { - ID: 11, - Time: 1, + ID: 11, + Time: 1, Weight: 0.007375, }, { - ID: 12, - Time: 1.1, + ID: 12, + Time: 1.1, Weight: 0.007314, }, { - ID: 13, - Time: 1.2, + ID: 13, + Time: 1.2, Weight: 0.007253, }, { - ID: 14, - Time: 1.3, + ID: 14, + Time: 1.3, Weight: 0.007193, }, { - ID: 15, - Time: 1.4, + ID: 15, + Time: 1.4, Weight: 0.007133, }, { - ID: 16, - Time: 1.5, + ID: 16, + Time: 1.5, Weight: 0.007074, }, { - ID: 17, - Time: 1.6, + ID: 17, + Time: 1.6, Weight: 0.007015, }, { - ID: 18, - Time: 1.7, + ID: 18, + Time: 1.7, Weight: 0.006957, }, { - ID: 19, - Time: 1.8, + ID: 19, + Time: 1.8, Weight: 0.006899, }, { - ID: 20, - Time: 1.9, + ID: 20, + Time: 1.9, Weight: 0.006842, }, { - ID: 21, - Time: 2, + ID: 21, + Time: 2, Weight: 0.006785, }, { - ID: 22, - Time: 2.1, + ID: 22, + Time: 2.1, Weight: 0.006728, }, { - ID: 23, - Time: 2.2, + ID: 23, + Time: 2.2, Weight: 0.006673, }, { - ID: 24, - Time: 2.3, + ID: 24, + Time: 2.3, Weight: 0.006617, }, { - ID: 25, - Time: 2.4, + ID: 25, + Time: 2.4, Weight: 0.006562, }, { - ID: 26, - Time: 2.5, + ID: 26, + Time: 2.5, Weight: 0.006508, }, { - ID: 27, - Time: 2.6, + ID: 27, + Time: 2.6, Weight: 0.006454, }, { - ID: 28, - Time: 2.7, + ID: 28, + Time: 2.7, Weight: 0.0064, }, { - ID: 29, - Time: 2.8, + ID: 29, + Time: 2.8, Weight: 0.006347, }, { - ID: 30, - Time: 2.9, + ID: 30, + Time: 2.9, Weight: 0.006294, }, { - ID: 31, - Time: 3, + ID: 31, + Time: 3, Weight: 0.006242, }, { - ID: 32, - Time: 3.1, + ID: 32, + Time: 3.1, Weight: 0.00619, }, { - ID: 33, - Time: 3.2, + ID: 33, + Time: 3.2, Weight: 0.006138, }, { - ID: 34, - Time: 3.3, + ID: 34, + Time: 3.3, Weight: 0.006087, }, { - ID: 35, - Time: 3.4, + ID: 35, + Time: 3.4, Weight: 0.006037, }, { - ID: 36, - Time: 3.5, + ID: 36, + Time: 3.5, Weight: 0.005987, }, { - ID: 37, - Time: 3.6, + ID: 37, + Time: 3.6, Weight: 0.005937, }, { - ID: 38, - Time: 3.7, + ID: 38, + Time: 3.7, Weight: 0.005888, }, { - ID: 39, - Time: 3.8, + ID: 39, + Time: 3.8, Weight: 0.005839, }, { - ID: 40, - Time: 3.9, + ID: 40, + Time: 3.9, Weight: 0.00579, }, { - ID: 41, - Time: 4, + ID: 41, + Time: 4, Weight: 0.005742, }, { - ID: 42, - Time: 4.1, + ID: 42, + Time: 4.1, Weight: 0.005694, }, { - ID: 43, - Time: 4.2, + ID: 43, + Time: 4.2, Weight: 0.005647, }, { - ID: 44, - Time: 4.3, + ID: 44, + Time: 4.3, Weight: 0.0056, }, { - ID: 45, - Time: 4.4, + ID: 45, + Time: 4.4, Weight: 0.005554, }, { - ID: 46, - Time: 4.5, + ID: 46, + Time: 4.5, Weight: 0.005508, }, { - ID: 47, - Time: 4.6, + ID: 47, + Time: 4.6, Weight: 0.005462, }, { - ID: 48, - Time: 4.7, + ID: 48, + Time: 4.7, Weight: 0.005416, }, { - ID: 49, - Time: 4.8, + ID: 49, + Time: 4.8, Weight: 0.005371, }, { - ID: 50, - Time: 4.9, + ID: 50, + Time: 4.9, Weight: 0.005327, }, { - ID: 51, - Time: 5, + ID: 51, + Time: 5, Weight: 0.005283, }, { - ID: 52, - Time: 5.1, + ID: 52, + Time: 5.1, Weight: 0.005239, }, { - ID: 53, - Time: 5.2, + ID: 53, + Time: 5.2, Weight: 0.005195, }, { - ID: 54, - Time: 5.3, + ID: 54, + Time: 5.3, Weight: 0.005152, }, { - ID: 55, - Time: 5.4, + ID: 55, + Time: 5.4, Weight: 0.005109, }, { - ID: 56, - Time: 5.5, + ID: 56, + Time: 5.5, Weight: 0.005067, }, { - ID: 57, - Time: 5.6, + ID: 57, + Time: 5.6, Weight: 0.005025, }, { - ID: 58, - Time: 5.7, + ID: 58, + Time: 5.7, Weight: 0.004983, }, { - ID: 59, - Time: 5.8, + ID: 59, + Time: 5.8, Weight: 0.004942, }, { - ID: 60, - Time: 5.9, + ID: 60, + Time: 5.9, Weight: 0.004901, }, { - ID: 61, - Time: 6, + ID: 61, + Time: 6, Weight: 0.00486, }, { - ID: 62, - Time: 6.1, + ID: 62, + Time: 6.1, Weight: 0.004819, }, { - ID: 63, - Time: 6.2, + ID: 63, + Time: 6.2, Weight: 0.004779, }, { - ID: 64, - Time: 6.3, + ID: 64, + Time: 6.3, Weight: 0.00474, }, { - ID: 65, - Time: 6.4, + ID: 65, + Time: 6.4, Weight: 0.0047, }, { - ID: 66, - Time: 6.5, + ID: 66, + Time: 6.5, Weight: 0.004661, }, { - ID: 67, - Time: 6.6, + ID: 67, + Time: 6.6, Weight: 0.004623, }, { - ID: 68, - Time: 6.7, + ID: 68, + Time: 6.7, Weight: 0.004584, }, { - ID: 69, - Time: 6.8, + ID: 69, + Time: 6.8, Weight: 0.004546, }, { - ID: 70, - Time: 6.9, + ID: 70, + Time: 6.9, Weight: 0.004508, }, { - ID: 71, - Time: 7, + ID: 71, + Time: 7, Weight: 0.004471, }, { - ID: 72, - Time: 7.1, + ID: 72, + Time: 7.1, Weight: 0.004434, }, { - ID: 73, - Time: 7.2, + ID: 73, + Time: 7.2, Weight: 0.004397, }, { - ID: 74, - Time: 7.3, + ID: 74, + Time: 7.3, Weight: 0.00436, }, { - ID: 75, - Time: 7.4, + ID: 75, + Time: 7.4, Weight: 0.004324, }, { - ID: 76, - Time: 7.5, + ID: 76, + Time: 7.5, Weight: 0.004288, }, { - ID: 77, - Time: 7.6, + ID: 77, + Time: 7.6, Weight: 0.004253, }, { - ID: 78, - Time: 7.7, + ID: 78, + Time: 7.7, Weight: 0.004217, }, { - ID: 79, - Time: 7.8, + ID: 79, + Time: 7.8, Weight: 0.004182, }, { - ID: 80, - Time: 7.9, + ID: 80, + Time: 7.9, Weight: 0.004147, }, { - ID: 81, - Time: 8, + ID: 81, + Time: 8, Weight: 0.004113, }, { - ID: 82, - Time: 8.1, + ID: 82, + Time: 8.1, Weight: 0.004079, }, { - ID: 83, - Time: 8.2, + ID: 83, + Time: 8.2, Weight: 0.004045, }, { - ID: 84, - Time: 8.3, + ID: 84, + Time: 8.3, Weight: 0.004011, }, { - ID: 85, - Time: 8.4, + ID: 85, + Time: 8.4, Weight: 0.003978, }, { - ID: 86, - Time: 8.5, + ID: 86, + Time: 8.5, Weight: 0.003945, }, { - ID: 87, - Time: 8.6, + ID: 87, + Time: 8.6, Weight: 0.003912, }, { - ID: 88, - Time: 8.7, + ID: 88, + Time: 8.7, Weight: 0.00388, }, { - ID: 89, - Time: 8.8, + ID: 89, + Time: 8.8, Weight: 0.003847, }, { - ID: 90, - Time: 8.9, + ID: 90, + Time: 8.9, Weight: 0.003816, }, { - ID: 91, - Time: 9, + ID: 91, + Time: 9, Weight: 0.003784, }, { - ID: 92, - Time: 9.1, + ID: 92, + Time: 9.1, Weight: 0.003752, }, { - ID: 93, - Time: 9.2, + ID: 93, + Time: 9.2, Weight: 0.003721, }, { - ID: 94, - Time: 9.3, + ID: 94, + Time: 9.3, Weight: 0.00369, }, { - ID: 95, - Time: 9.4, + ID: 95, + Time: 9.4, Weight: 0.00366, }, { - ID: 96, - Time: 9.5, + ID: 96, + Time: 9.5, Weight: 0.003629, }, { - ID: 97, - Time: 9.6, + ID: 97, + Time: 9.6, Weight: 0.003599, }, { - ID: 98, - Time: 9.7, + ID: 98, + Time: 9.7, Weight: 0.003569, }, { - ID: 99, - Time: 9.8, + ID: 99, + Time: 9.8, Weight: 0.00354, }, { - ID: 100, - Time: 9.9, + ID: 100, + Time: 9.9, Weight: 0.00351, }, { - ID: 101, - Time: 10, + ID: 101, + Time: 10, Weight: 0.003481, }, { - ID: 102, - Time: 10.1, + ID: 102, + Time: 10.1, Weight: 0.003452, }, { - ID: 103, - Time: 10.2, + ID: 103, + Time: 10.2, Weight: 0.003423, }, { - ID: 104, - Time: 10.3, + ID: 104, + Time: 10.3, Weight: 0.003395, }, { - ID: 105, - Time: 10.4, + ID: 105, + Time: 10.4, Weight: 0.003367, }, { - ID: 106, - Time: 10.5, + ID: 106, + Time: 10.5, Weight: 0.003339, }, { - ID: 107, - Time: 10.6, + ID: 107, + Time: 10.6, Weight: 0.003311, }, { - ID: 108, - Time: 10.7, + ID: 108, + Time: 10.7, Weight: 0.003284, }, { - ID: 109, - Time: 10.8, + ID: 109, + Time: 10.8, Weight: 0.003256, }, { - ID: 110, - Time: 10.9, + ID: 110, + Time: 10.9, Weight: 0.003229, }, { - ID: 111, - Time: 11, + ID: 111, + Time: 11, Weight: 0.003202, }, { - ID: 112, - Time: 11.1, + ID: 112, + Time: 11.1, Weight: 0.003176, }, { - ID: 113, - Time: 11.2, + ID: 113, + Time: 11.2, Weight: 0.003149, }, { - ID: 114, - Time: 11.3, + ID: 114, + Time: 11.3, Weight: 0.003123, }, { - ID: 115, - Time: 11.4, + ID: 115, + Time: 11.4, Weight: 0.003097, }, { - ID: 116, - Time: 11.5, + ID: 116, + Time: 11.5, Weight: 0.003072, }, { - ID: 117, - Time: 11.6, + ID: 117, + Time: 11.6, Weight: 0.003046, }, { - ID: 118, - Time: 11.7, + ID: 118, + Time: 11.7, Weight: 0.003021, }, { - ID: 119, - Time: 11.8, + ID: 119, + Time: 11.8, Weight: 0.002996, }, { - ID: 120, - Time: 11.9, + ID: 120, + Time: 11.9, Weight: 0.002971, }, { - ID: 121, - Time: 12, + ID: 121, + Time: 12, Weight: 0.002946, }, { - ID: 122, - Time: 12.1, + ID: 122, + Time: 12.1, Weight: 0.002922, }, { - ID: 123, - Time: 12.2, + ID: 123, + Time: 12.2, Weight: 0.002897, }, { - ID: 124, - Time: 12.3, + ID: 124, + Time: 12.3, Weight: 0.002873, }, { - ID: 125, - Time: 12.4, + ID: 125, + Time: 12.4, Weight: 0.002849, }, { - ID: 126, - Time: 12.5, + ID: 126, + Time: 12.5, Weight: 0.002826, }, { - ID: 127, - Time: 12.6, + ID: 127, + Time: 12.6, Weight: 0.002802, }, { - ID: 128, - Time: 12.7, + ID: 128, + Time: 12.7, Weight: 0.002779, }, { - ID: 129, - Time: 12.8, + ID: 129, + Time: 12.8, Weight: 0.002756, }, { - ID: 130, - Time: 12.9, + ID: 130, + Time: 12.9, Weight: 0.002733, }, { - ID: 131, - Time: 13, + ID: 131, + Time: 13, Weight: 0.00271, }, { - ID: 132, - Time: 13.1, + ID: 132, + Time: 13.1, Weight: 0.002688, }, { - ID: 133, - Time: 13.2, + ID: 133, + Time: 13.2, Weight: 0.002665, }, { - ID: 134, - Time: 13.3, + ID: 134, + Time: 13.3, Weight: 0.002643, }, { - ID: 135, - Time: 13.4, + ID: 135, + Time: 13.4, Weight: 0.002621, }, { - ID: 136, - Time: 13.5, + ID: 136, + Time: 13.5, Weight: 0.0026, }, { - ID: 137, - Time: 13.6, + ID: 137, + Time: 13.6, Weight: 0.002578, }, { - ID: 138, - Time: 13.7, + ID: 138, + Time: 13.7, Weight: 0.002557, }, { - ID: 139, - Time: 13.8, + ID: 139, + Time: 13.8, Weight: 0.002535, }, { - ID: 140, - Time: 13.9, + ID: 140, + Time: 13.9, Weight: 0.002514, }, { - ID: 141, - Time: 14, + ID: 141, + Time: 14, Weight: 0.002493, }, { - ID: 142, - Time: 14.1, + ID: 142, + Time: 14.1, Weight: 0.002473, }, { - ID: 143, - Time: 14.2, + ID: 143, + Time: 14.2, Weight: 0.002452, }, { - ID: 144, - Time: 14.3, + ID: 144, + Time: 14.3, Weight: 0.002432, }, { - ID: 145, - Time: 14.4, + ID: 145, + Time: 14.4, Weight: 0.002412, }, { - ID: 146, - Time: 14.5, + ID: 146, + Time: 14.5, Weight: 0.002391, }, { - ID: 147, - Time: 14.6, + ID: 147, + Time: 14.6, Weight: 0.002372, }, { - ID: 148, - Time: 14.7, + ID: 148, + Time: 14.7, Weight: 0.002352, }, { - ID: 149, - Time: 14.8, + ID: 149, + Time: 14.8, Weight: 0.002332, }, { - ID: 150, - Time: 14.9, + ID: 150, + Time: 14.9, Weight: 0.002313, }, { - ID: 151, - Time: 15, + ID: 151, + Time: 15, Weight: 0.002294, }, { - ID: 152, - Time: 15.1, + ID: 152, + Time: 15.1, Weight: 0.002275, }, { - ID: 153, - Time: 15.2, + ID: 153, + Time: 15.2, Weight: 0.002256, }, { - ID: 154, - Time: 15.3, + ID: 154, + Time: 15.3, Weight: 0.002237, }, { - ID: 155, - Time: 15.4, + ID: 155, + Time: 15.4, Weight: 0.002219, }, { - ID: 156, - Time: 15.5, + ID: 156, + Time: 15.5, Weight: 0.0022, }, { - ID: 157, - Time: 15.6, + ID: 157, + Time: 15.6, Weight: 0.002182, }, { - ID: 158, - Time: 15.7, + ID: 158, + Time: 15.7, Weight: 0.002164, }, { - ID: 159, - Time: 15.8, + ID: 159, + Time: 15.8, Weight: 0.002146, }, { - ID: 160, - Time: 15.9, + ID: 160, + Time: 15.9, Weight: 0.002128, }, { - ID: 161, - Time: 16, + ID: 161, + Time: 16, Weight: 0.00211, }, { - ID: 162, - Time: 16.1, + ID: 162, + Time: 16.1, Weight: 0.002093, }, { - ID: 163, - Time: 16.2, + ID: 163, + Time: 16.2, Weight: 0.002075, }, { - ID: 164, - Time: 16.3, + ID: 164, + Time: 16.3, Weight: 0.002058, }, { - ID: 165, - Time: 16.4, + ID: 165, + Time: 16.4, Weight: 0.002041, }, { - ID: 166, - Time: 16.5, + ID: 166, + Time: 16.5, Weight: 0.002024, }, { - ID: 167, - Time: 16.6, + ID: 167, + Time: 16.6, Weight: 0.002007, }, { - ID: 168, - Time: 16.7, + ID: 168, + Time: 16.7, Weight: 0.001991, }, { - ID: 169, - Time: 16.8, + ID: 169, + Time: 16.8, Weight: 0.001974, }, { - ID: 170, - Time: 16.9, + ID: 170, + Time: 16.9, Weight: 0.001958, }, { - ID: 171, - Time: 17, + ID: 171, + Time: 17, Weight: 0.001941, }, { - ID: 172, - Time: 17.1, + ID: 172, + Time: 17.1, Weight: 0.001925, }, { - ID: 173, - Time: 17.2, + ID: 173, + Time: 17.2, Weight: 0.001909, }, { - ID: 174, - Time: 17.3, + ID: 174, + Time: 17.3, Weight: 0.001893, }, { - ID: 175, - Time: 17.4, + ID: 175, + Time: 17.4, Weight: 0.001878, }, { - ID: 176, - Time: 17.5, + ID: 176, + Time: 17.5, Weight: 0.001862, }, { - ID: 177, - Time: 17.6, + ID: 177, + Time: 17.6, Weight: 0.001847, }, { - ID: 178, - Time: 17.7, + ID: 178, + Time: 17.7, Weight: 0.001831, }, { - ID: 179, - Time: 17.8, + ID: 179, + Time: 17.8, Weight: 0.001816, }, { - ID: 180, - Time: 17.9, + ID: 180, + Time: 17.9, Weight: 0.001801, }, { - ID: 181, - Time: 18, + ID: 181, + Time: 18, Weight: 0.001786, }, { - ID: 182, - Time: 18.1, + ID: 182, + Time: 18.1, Weight: 0.001771, }, { - ID: 183, - Time: 18.2, + ID: 183, + Time: 18.2, Weight: 0.001756, }, { - ID: 184, - Time: 18.3, + ID: 184, + Time: 18.3, Weight: 0.001742, }, { - ID: 185, - Time: 18.4, + ID: 185, + Time: 18.4, Weight: 0.001727, }, { - ID: 186, - Time: 18.5, + ID: 186, + Time: 18.5, Weight: 0.001713, }, { - ID: 187, - Time: 18.6, + ID: 187, + Time: 18.6, Weight: 0.001699, }, { - ID: 188, - Time: 18.7, + ID: 188, + Time: 18.7, Weight: 0.001685, }, { - ID: 189, - Time: 18.8, + ID: 189, + Time: 18.8, Weight: 0.001671, }, { - ID: 190, - Time: 18.9, + ID: 190, + Time: 18.9, Weight: 0.001657, }, { - ID: 191, - Time: 19, + ID: 191, + Time: 19, Weight: 0.001643, }, { - ID: 192, - Time: 19.1, + ID: 192, + Time: 19.1, Weight: 0.001629, }, { - ID: 193, - Time: 19.2, + ID: 193, + Time: 19.2, Weight: 0.001616, }, { - ID: 194, - Time: 19.3, + ID: 194, + Time: 19.3, Weight: 0.001602, }, { - ID: 195, - Time: 19.4, + ID: 195, + Time: 19.4, Weight: 0.001589, }, { - ID: 196, - Time: 19.5, + ID: 196, + Time: 19.5, Weight: 0.001576, }, { - ID: 197, - Time: 19.6, + ID: 197, + Time: 19.6, Weight: 0.001563, }, { - ID: 198, - Time: 19.7, + ID: 198, + Time: 19.7, Weight: 0.00155, }, { - ID: 199, - Time: 19.8, + ID: 199, + Time: 19.8, Weight: 0.001537, }, { - ID: 200, - Time: 19.9, + ID: 200, + Time: 19.9, Weight: 0.001524, }, { - ID: 201, - Time: 20, + ID: 201, + Time: 20, Weight: 0.001511, }, { - ID: 202, - Time: 20.1, + ID: 202, + Time: 20.1, Weight: 0.001499, }, { - ID: 203, - Time: 20.2, + ID: 203, + Time: 20.2, Weight: 0.001486, }, { - ID: 204, - Time: 20.3, + ID: 204, + Time: 20.3, Weight: 0.001474, }, { - ID: 205, - Time: 20.4, + ID: 205, + Time: 20.4, Weight: 0.001462, }, { - ID: 206, - Time: 20.5, + ID: 206, + Time: 20.5, Weight: 0.00145, }, { - ID: 207, - Time: 20.6, + ID: 207, + Time: 20.6, Weight: 0.001438, }, { - ID: 208, - Time: 20.7, + ID: 208, + Time: 20.7, Weight: 0.001426, }, { - ID: 209, - Time: 20.8, + ID: 209, + Time: 20.8, Weight: 0.001414, }, { - ID: 210, - Time: 20.9, + ID: 210, + Time: 20.9, Weight: 0.001402, }, { - ID: 211, - Time: 21, + ID: 211, + Time: 21, Weight: 0.001391, }, { - ID: 212, - Time: 21.1, + ID: 212, + Time: 21.1, Weight: 0.001379, }, { - ID: 213, - Time: 21.2, + ID: 213, + Time: 21.2, Weight: 0.001368, }, { - ID: 214, - Time: 21.3, + ID: 214, + Time: 21.3, Weight: 0.001356, }, { - ID: 215, - Time: 21.4, + ID: 215, + Time: 21.4, Weight: 0.001345, }, { - ID: 216, - Time: 21.5, + ID: 216, + Time: 21.5, Weight: 0.001334, }, { - ID: 217, - Time: 21.6, + ID: 217, + Time: 21.6, Weight: 0.001323, }, { - ID: 218, - Time: 21.7, + ID: 218, + Time: 21.7, Weight: 0.001312, }, { - ID: 219, - Time: 21.8, + ID: 219, + Time: 21.8, Weight: 0.001301, }, { - ID: 220, - Time: 21.9, + ID: 220, + Time: 21.9, Weight: 0.00129, }, { - ID: 221, - Time: 22, + ID: 221, + Time: 22, Weight: 0.001279, }, { - ID: 222, - Time: 22.1, + ID: 222, + Time: 22.1, Weight: 0.001269, }, { - ID: 223, - Time: 22.2, + ID: 223, + Time: 22.2, Weight: 0.001258, }, { - ID: 224, - Time: 22.3, + ID: 224, + Time: 22.3, Weight: 0.001248, }, { - ID: 225, - Time: 22.4, + ID: 225, + Time: 22.4, Weight: 0.001237, }, { - ID: 226, - Time: 22.5, + ID: 226, + Time: 22.5, Weight: 0.001227, }, { - ID: 227, - Time: 22.6, + ID: 227, + Time: 22.6, Weight: 0.001217, }, { - ID: 228, - Time: 22.7, + ID: 228, + Time: 22.7, Weight: 0.001207, }, { - ID: 229, - Time: 22.8, + ID: 229, + Time: 22.8, Weight: 0.001197, }, { - ID: 230, - Time: 22.9, + ID: 230, + Time: 22.9, Weight: 0.001187, }, { - ID: 231, - Time: 23, + ID: 231, + Time: 23, Weight: 0.001177, }, { - ID: 232, - Time: 23.1, + ID: 232, + Time: 23.1, Weight: 0.001167, }, { - ID: 233, - Time: 23.2, + ID: 233, + Time: 23.2, Weight: 0.001157, }, { - ID: 234, - Time: 23.3, + ID: 234, + Time: 23.3, Weight: 0.001148, }, { - ID: 235, - Time: 23.4, + ID: 235, + Time: 23.4, Weight: 0.001138, }, { - ID: 236, - Time: 23.5, + ID: 236, + Time: 23.5, Weight: 0.001129, }, { - ID: 237, - Time: 23.6, + ID: 237, + Time: 23.6, Weight: 0.001119, }, { - ID: 238, - Time: 23.7, + ID: 238, + Time: 23.7, Weight: 0.00111, }, { - ID: 239, - Time: 23.8, + ID: 239, + Time: 23.8, Weight: 0.001101, }, { - ID: 240, - Time: 23.9, + ID: 240, + Time: 23.9, Weight: 0.001092, }, { - ID: 241, - Time: 24, + ID: 241, + Time: 24, Weight: 0.001083, }, { - ID: 242, - Time: 24.1, + ID: 242, + Time: 24.1, Weight: 0.001074, }, { - ID: 243, - Time: 24.2, + ID: 243, + Time: 24.2, Weight: 0.001065, }, { - ID: 244, - Time: 24.3, + ID: 244, + Time: 24.3, Weight: 0.001056, }, { - ID: 245, - Time: 24.4, + ID: 245, + Time: 24.4, Weight: 0.001047, }, { - ID: 246, - Time: 24.5, + ID: 246, + Time: 24.5, Weight: 0.001038, }, { - ID: 247, - Time: 24.6, + ID: 247, + Time: 24.6, Weight: 0.00103, }, { - ID: 248, - Time: 24.7, + ID: 248, + Time: 24.7, Weight: 0.001021, }, { - ID: 249, - Time: 24.8, + ID: 249, + Time: 24.8, Weight: 0.001013, }, { - ID: 250, - Time: 24.9, + ID: 250, + Time: 24.9, Weight: 0.001004, }, { - ID: 251, - Time: 25, + ID: 251, + Time: 25, Weight: 0.000996, }, { - ID: 252, - Time: 25.1, + ID: 252, + Time: 25.1, Weight: 0.000988, }, { - ID: 253, - Time: 25.2, + ID: 253, + Time: 25.2, Weight: 0.00098, }, { - ID: 254, - Time: 25.3, + ID: 254, + Time: 25.3, Weight: 0.000971, }, { - ID: 255, - Time: 25.4, + ID: 255, + Time: 25.4, Weight: 0.000963, }, { - ID: 256, - Time: 25.5, + ID: 256, + Time: 25.5, Weight: 0.000955, }, { - ID: 257, - Time: 25.6, + ID: 257, + Time: 25.6, Weight: 0.000947, }, { - ID: 258, - Time: 25.7, + ID: 258, + Time: 25.7, Weight: 0.000939, }, { - ID: 259, - Time: 25.8, + ID: 259, + Time: 25.8, Weight: 0.000932, }, { - ID: 260, - Time: 25.9, + ID: 260, + Time: 25.9, Weight: 0.000924, }, { - ID: 261, - Time: 26, + ID: 261, + Time: 26, Weight: 0.000916, }, { - ID: 262, - Time: 26.1, + ID: 262, + Time: 26.1, Weight: 0.000909, }, { - ID: 263, - Time: 26.2, + ID: 263, + Time: 26.2, Weight: 0.000901, }, { - ID: 264, - Time: 26.3, + ID: 264, + Time: 26.3, Weight: 0.000894, }, { - ID: 265, - Time: 26.4, + ID: 265, + Time: 26.4, Weight: 0.000886, }, { - ID: 266, - Time: 26.5, + ID: 266, + Time: 26.5, Weight: 0.000879, }, { - ID: 267, - Time: 26.6, + ID: 267, + Time: 26.6, Weight: 0.000872, }, { - ID: 268, - Time: 26.7, + ID: 268, + Time: 26.7, Weight: 0.000864, }, { - ID: 269, - Time: 26.8, + ID: 269, + Time: 26.8, Weight: 0.000857, }, { - ID: 270, - Time: 26.9, + ID: 270, + Time: 26.9, Weight: 0.00085, }, { - ID: 271, - Time: 27, + ID: 271, + Time: 27, Weight: 0.000843, }, { - ID: 272, - Time: 27.1, + ID: 272, + Time: 27.1, Weight: 0.000836, }, { - ID: 273, - Time: 27.2, + ID: 273, + Time: 27.2, Weight: 0.000829, }, { - ID: 274, - Time: 27.3, + ID: 274, + Time: 27.3, Weight: 0.000822, }, { - ID: 275, - Time: 27.4, + ID: 275, + Time: 27.4, Weight: 0.000815, }, { - ID: 276, - Time: 27.5, + ID: 276, + Time: 27.5, Weight: 0.000809, }, { - ID: 277, - Time: 27.6, + ID: 277, + Time: 27.6, Weight: 0.000802, }, { - ID: 278, - Time: 27.7, + ID: 278, + Time: 27.7, Weight: 0.000795, }, { - ID: 279, - Time: 27.8, + ID: 279, + Time: 27.8, Weight: 0.000789, }, { - ID: 280, - Time: 27.9, + ID: 280, + Time: 27.9, Weight: 0.000782, }, { - ID: 281, - Time: 28, + ID: 281, + Time: 28, Weight: 0.000775, }, { - ID: 282, - Time: 28.1, + ID: 282, + Time: 28.1, Weight: 0.000769, }, { - ID: 283, - Time: 28.2, + ID: 283, + Time: 28.2, Weight: 0.000763, }, { - ID: 284, - Time: 28.3, + ID: 284, + Time: 28.3, Weight: 0.000756, }, { - ID: 285, - Time: 28.4, + ID: 285, + Time: 28.4, Weight: 0.00075, }, { - ID: 286, - Time: 28.5, + ID: 286, + Time: 28.5, Weight: 0.000744, }, { - ID: 287, - Time: 28.6, + ID: 287, + Time: 28.6, Weight: 0.000738, }, { - ID: 288, - Time: 28.7, + ID: 288, + Time: 28.7, Weight: 0.000731, }, { - ID: 289, - Time: 28.8, + ID: 289, + Time: 28.8, Weight: 0.000725, }, { - ID: 290, - Time: 28.9, + ID: 290, + Time: 28.9, Weight: 0.000719, }, { - ID: 291, - Time: 29, + ID: 291, + Time: 29, Weight: 0.000713, }, { - ID: 292, - Time: 29.1, + ID: 292, + Time: 29.1, Weight: 0.000707, }, { - ID: 293, - Time: 29.2, + ID: 293, + Time: 29.2, Weight: 0.000702, }, { - ID: 294, - Time: 29.3, + ID: 294, + Time: 29.3, Weight: 0.000696, }, { - ID: 295, - Time: 29.4, + ID: 295, + Time: 29.4, Weight: 0.00069, }, { - ID: 296, - Time: 29.5, + ID: 296, + Time: 29.5, Weight: 0.000684, }, { - ID: 297, - Time: 29.6, + ID: 297, + Time: 29.6, Weight: 0.000679, }, { - ID: 298, - Time: 29.7, + ID: 298, + Time: 29.7, Weight: 0.000673, }, { - ID: 299, - Time: 29.8, + ID: 299, + Time: 29.8, Weight: 0.000667, }, { - ID: 300, - Time: 29.9, + ID: 300, + Time: 29.9, Weight: 0.000662, }, { - ID: 301, - Time: 30, + ID: 301, + Time: 30, Weight: 0.000656, }, { - ID: 302, - Time: 30.1, + ID: 302, + Time: 30.1, Weight: 0.000651, }, { - ID: 303, - Time: 30.2, + ID: 303, + Time: 30.2, Weight: 0.000645, }, { - ID: 304, - Time: 30.3, + ID: 304, + Time: 30.3, Weight: 0.00064, }, { - ID: 305, - Time: 30.4, + ID: 305, + Time: 30.4, Weight: 0.000635, }, { - ID: 306, - Time: 30.5, + ID: 306, + Time: 30.5, Weight: 0.000629, }, { - ID: 307, - Time: 30.6, + ID: 307, + Time: 30.6, Weight: 0.000624, }, { - ID: 308, - Time: 30.7, + ID: 308, + Time: 30.7, Weight: 0.000619, }, { - ID: 309, - Time: 30.8, + ID: 309, + Time: 30.8, Weight: 0.000614, }, { - ID: 310, - Time: 30.9, + ID: 310, + Time: 30.9, Weight: 0.000609, }, { - ID: 311, - Time: 31, + ID: 311, + Time: 31, Weight: 0.000604, }, { - ID: 312, - Time: 31.1, + ID: 312, + Time: 31.1, Weight: 0.000599, }, { - ID: 313, - Time: 31.2, + ID: 313, + Time: 31.2, Weight: 0.000594, }, { - ID: 314, - Time: 31.3, + ID: 314, + Time: 31.3, Weight: 0.000589, }, { - ID: 315, - Time: 31.4, + ID: 315, + Time: 31.4, Weight: 0.000584, }, { - ID: 316, - Time: 31.5, + ID: 316, + Time: 31.5, Weight: 0.000579, }, { - ID: 317, - Time: 31.6, + ID: 317, + Time: 31.6, Weight: 0.000574, }, { - ID: 318, - Time: 31.7, + ID: 318, + Time: 31.7, Weight: 0.00057, }, { - ID: 319, - Time: 31.8, + ID: 319, + Time: 31.8, Weight: 0.000565, }, { - ID: 320, - Time: 31.9, + ID: 320, + Time: 31.9, Weight: 0.00056, }, { - ID: 321, - Time: 32, + ID: 321, + Time: 32, Weight: 0.000555, }, { - ID: 322, - Time: 32.1, + ID: 322, + Time: 32.1, Weight: 0.000551, }, { - ID: 323, - Time: 32.2, + ID: 323, + Time: 32.2, Weight: 0.000546, }, { - ID: 324, - Time: 32.3, + ID: 324, + Time: 32.3, Weight: 0.000542, }, { - ID: 325, - Time: 32.4, + ID: 325, + Time: 32.4, Weight: 0.000537, }, { - ID: 326, - Time: 32.5, + ID: 326, + Time: 32.5, Weight: 0.000533, }, { - ID: 327, - Time: 32.6, + ID: 327, + Time: 32.6, Weight: 0.000528, }, { - ID: 328, - Time: 32.7, + ID: 328, + Time: 32.7, Weight: 0.000524, }, { - ID: 329, - Time: 32.8, + ID: 329, + Time: 32.8, Weight: 0.00052, }, { - ID: 330, - Time: 32.9, + ID: 330, + Time: 32.9, Weight: 0.000515, }, { - ID: 331, - Time: 33, + ID: 331, + Time: 33, Weight: 0.000511, }, { - ID: 332, - Time: 33.1, + ID: 332, + Time: 33.1, Weight: 0.000507, }, { - ID: 333, - Time: 33.2, + ID: 333, + Time: 33.2, Weight: 0.000503, }, { - ID: 334, - Time: 33.3, + ID: 334, + Time: 33.3, Weight: 0.000498, }, { - ID: 335, - Time: 33.4, + ID: 335, + Time: 33.4, Weight: 0.000494, }, { - ID: 336, - Time: 33.5, + ID: 336, + Time: 33.5, Weight: 0.00049, }, { - ID: 337, - Time: 33.6, + ID: 337, + Time: 33.6, Weight: 0.000486, }, { - ID: 338, - Time: 33.7, + ID: 338, + Time: 33.7, Weight: 0.000482, }, { - ID: 339, - Time: 33.8, + ID: 339, + Time: 33.8, Weight: 0.000478, }, { - ID: 340, - Time: 33.9, + ID: 340, + Time: 33.9, Weight: 0.000474, }, { - ID: 341, - Time: 34, + ID: 341, + Time: 34, Weight: 0.00047, }, { - ID: 342, - Time: 34.1, + ID: 342, + Time: 34.1, Weight: 0.000466, }, { - ID: 343, - Time: 34.2, + ID: 343, + Time: 34.2, Weight: 0.000462, }, { - ID: 344, - Time: 34.3, + ID: 344, + Time: 34.3, Weight: 0.000458, }, { - ID: 345, - Time: 34.4, + ID: 345, + Time: 34.4, Weight: 0.000455, }, { - ID: 346, - Time: 34.5, + ID: 346, + Time: 34.5, Weight: 0.000451, }, { - ID: 347, - Time: 34.6, + ID: 347, + Time: 34.6, Weight: 0.000447, }, { - ID: 348, - Time: 34.7, + ID: 348, + Time: 34.7, Weight: 0.000443, }, { - ID: 349, - Time: 34.8, + ID: 349, + Time: 34.8, Weight: 0.00044, }, { - ID: 350, - Time: 34.9, + ID: 350, + Time: 34.9, Weight: 0.000436, }, { - ID: 351, - Time: 35, + ID: 351, + Time: 35, Weight: 0.000432, }, { - ID: 352, - Time: 35.1, + ID: 352, + Time: 35.1, Weight: 0.000429, }, { - ID: 353, - Time: 35.2, + ID: 353, + Time: 35.2, Weight: 0.000425, }, { - ID: 354, - Time: 35.3, + ID: 354, + Time: 35.3, Weight: 0.000422, }, { - ID: 355, - Time: 35.4, + ID: 355, + Time: 35.4, Weight: 0.000418, }, { - ID: 356, - Time: 35.5, + ID: 356, + Time: 35.5, Weight: 0.000415, }, { - ID: 357, - Time: 35.6, + ID: 357, + Time: 35.6, Weight: 0.000411, }, { - ID: 358, - Time: 35.7, + ID: 358, + Time: 35.7, Weight: 0.000408, }, { - ID: 359, - Time: 35.8, + ID: 359, + Time: 35.8, Weight: 0.000405, }, { - ID: 360, - Time: 35.9, + ID: 360, + Time: 35.9, Weight: 0.000401, }, { - ID: 361, - Time: 36, + ID: 361, + Time: 36, Weight: 0.000398, }, { - ID: 362, - Time: 36.1, + ID: 362, + Time: 36.1, Weight: 0.000395, }, { - ID: 363, - Time: 36.2, + ID: 363, + Time: 36.2, Weight: 0.000391, }, { - ID: 364, - Time: 36.3, + ID: 364, + Time: 36.3, Weight: 0.000388, }, { - ID: 365, - Time: 36.4, + ID: 365, + Time: 36.4, Weight: 0.000385, }, { - ID: 366, - Time: 36.5, + ID: 366, + Time: 36.5, Weight: 0.000382, }, { - ID: 367, - Time: 36.6, + ID: 367, + Time: 36.6, Weight: 0.000378, }, { - ID: 368, - Time: 36.7, + ID: 368, + Time: 36.7, Weight: 0.000375, }, { - ID: 369, - Time: 36.8, + ID: 369, + Time: 36.8, Weight: 0.000372, }, { - ID: 370, - Time: 36.9, + ID: 370, + Time: 36.9, Weight: 0.000369, }, { - ID: 371, - Time: 37, + ID: 371, + Time: 37, Weight: 0.000366, }, { - ID: 372, - Time: 37.1, + ID: 372, + Time: 37.1, Weight: 0.000363, }, { - ID: 373, - Time: 37.2, + ID: 373, + Time: 37.2, Weight: 0.00036, }, { - ID: 374, - Time: 37.3, + ID: 374, + Time: 37.3, Weight: 0.000357, }, { - ID: 375, - Time: 37.4, + ID: 375, + Time: 37.4, Weight: 0.000354, }, { - ID: 376, - Time: 37.5, + ID: 376, + Time: 37.5, Weight: 0.000351, }, { - ID: 377, - Time: 37.6, + ID: 377, + Time: 37.6, Weight: 0.000348, }, { - ID: 378, - Time: 37.7, + ID: 378, + Time: 37.7, Weight: 0.000345, }, { - ID: 379, - Time: 37.8, + ID: 379, + Time: 37.8, Weight: 0.000342, }, { - ID: 380, - Time: 37.9, + ID: 380, + Time: 37.9, Weight: 0.00034, }, { - ID: 381, - Time: 38, + ID: 381, + Time: 38, Weight: 0.000337, }, { - ID: 382, - Time: 38.1, + ID: 382, + Time: 38.1, Weight: 0.000334, }, { - ID: 383, - Time: 38.2, + ID: 383, + Time: 38.2, Weight: 0.000331, }, { - ID: 384, - Time: 38.3, + ID: 384, + Time: 38.3, Weight: 0.000328, }, { - ID: 385, - Time: 38.4, + ID: 385, + Time: 38.4, Weight: 0.000326, }, { - ID: 386, - Time: 38.5, + ID: 386, + Time: 38.5, Weight: 0.000323, }, { - ID: 387, - Time: 38.6, + ID: 387, + Time: 38.6, Weight: 0.00032, }, { - ID: 388, - Time: 38.7, + ID: 388, + Time: 38.7, Weight: 0.000318, }, { - ID: 389, - Time: 38.8, + ID: 389, + Time: 38.8, Weight: 0.000315, }, { - ID: 390, - Time: 38.9, + ID: 390, + Time: 38.9, Weight: 0.000312, }, { - ID: 391, - Time: 39, + ID: 391, + Time: 39, Weight: 0.00031, }, { - ID: 392, - Time: 39.1, + ID: 392, + Time: 39.1, Weight: 0.000307, }, { - ID: 393, - Time: 39.2, + ID: 393, + Time: 39.2, Weight: 0.000305, }, { - ID: 394, - Time: 39.3, + ID: 394, + Time: 39.3, Weight: 0.000302, }, { - ID: 395, - Time: 39.4, + ID: 395, + Time: 39.4, Weight: 0.0003, }, { - ID: 396, - Time: 39.5, + ID: 396, + Time: 39.5, Weight: 0.000297, }, { - ID: 397, - Time: 39.6, + ID: 397, + Time: 39.6, Weight: 0.000295, }, { - ID: 398, - Time: 39.7, + ID: 398, + Time: 39.7, Weight: 0.000292, }, { - ID: 399, - Time: 39.8, + ID: 399, + Time: 39.8, Weight: 0.00029, }, { - ID: 400, - Time: 39.9, + ID: 400, + Time: 39.9, Weight: 0.000287, }, { - ID: 401, - Time: 40, + ID: 401, + Time: 40, Weight: 0.000285, }, { - ID: 402, - Time: 40.1, + ID: 402, + Time: 40.1, Weight: 0.000283, }, { - ID: 403, - Time: 40.2, + ID: 403, + Time: 40.2, Weight: 0.00028, }, { - ID: 404, - Time: 40.3, + ID: 404, + Time: 40.3, Weight: 0.000278, }, { - ID: 405, - Time: 40.4, + ID: 405, + Time: 40.4, Weight: 0.000276, }, { - ID: 406, - Time: 40.5, + ID: 406, + Time: 40.5, Weight: 0.000273, }, { - ID: 407, - Time: 40.6, + ID: 407, + Time: 40.6, Weight: 0.000271, }, { - ID: 408, - Time: 40.7, + ID: 408, + Time: 40.7, Weight: 0.000269, }, { - ID: 409, - Time: 40.8, + ID: 409, + Time: 40.8, Weight: 0.000267, }, { - ID: 410, - Time: 40.9, + ID: 410, + Time: 40.9, Weight: 0.000264, }, { - ID: 411, - Time: 41, + ID: 411, + Time: 41, Weight: 0.000262, }, { - ID: 412, - Time: 41.1, + ID: 412, + Time: 41.1, Weight: 0.00026, }, { - ID: 413, - Time: 41.2, + ID: 413, + Time: 41.2, Weight: 0.000258, }, { - ID: 414, - Time: 41.3, + ID: 414, + Time: 41.3, Weight: 0.000256, }, { - ID: 415, - Time: 41.4, + ID: 415, + Time: 41.4, Weight: 0.000254, }, { - ID: 416, - Time: 41.5, + ID: 416, + Time: 41.5, Weight: 0.000251, }, { - ID: 417, - Time: 41.6, + ID: 417, + Time: 41.6, Weight: 0.000249, }, { - ID: 418, - Time: 41.7, + ID: 418, + Time: 41.7, Weight: 0.000247, }, { - ID: 419, - Time: 41.8, + ID: 419, + Time: 41.8, Weight: 0.000245, }, { - ID: 420, - Time: 41.9, + ID: 420, + Time: 41.9, Weight: 0.000243, }, { - ID: 421, - Time: 42, + ID: 421, + Time: 42, Weight: 0.000241, }, { - ID: 422, - Time: 42.1, + ID: 422, + Time: 42.1, Weight: 0.000239, }, { - ID: 423, - Time: 42.2, + ID: 423, + Time: 42.2, Weight: 0.000237, }, { - ID: 424, - Time: 42.3, + ID: 424, + Time: 42.3, Weight: 0.000235, }, { - ID: 425, - Time: 42.4, + ID: 425, + Time: 42.4, Weight: 0.000233, }, { - ID: 426, - Time: 42.5, + ID: 426, + Time: 42.5, Weight: 0.000231, }, { - ID: 427, - Time: 42.6, + ID: 427, + Time: 42.6, Weight: 0.000229, }, { - ID: 428, - Time: 42.7, + ID: 428, + Time: 42.7, Weight: 0.000228, }, { - ID: 429, - Time: 42.8, + ID: 429, + Time: 42.8, Weight: 0.000226, }, { - ID: 430, - Time: 42.9, + ID: 430, + Time: 42.9, Weight: 0.000224, }, { - ID: 431, - Time: 43, + ID: 431, + Time: 43, Weight: 0.000222, }, { - ID: 432, - Time: 43.1, + ID: 432, + Time: 43.1, Weight: 0.00022, }, { - ID: 433, - Time: 43.2, + ID: 433, + Time: 43.2, Weight: 0.000218, }, { - ID: 434, - Time: 43.3, + ID: 434, + Time: 43.3, Weight: 0.000216, }, { - ID: 435, - Time: 43.4, + ID: 435, + Time: 43.4, Weight: 0.000215, }, { - ID: 436, - Time: 43.5, + ID: 436, + Time: 43.5, Weight: 0.000213, }, { - ID: 437, - Time: 43.6, + ID: 437, + Time: 43.6, Weight: 0.000211, }, { - ID: 438, - Time: 43.7, + ID: 438, + Time: 43.7, Weight: 0.000209, }, { - ID: 439, - Time: 43.8, + ID: 439, + Time: 43.8, Weight: 0.000208, }, { - ID: 440, - Time: 43.9, + ID: 440, + Time: 43.9, Weight: 0.000206, }, { - ID: 441, - Time: 44, + ID: 441, + Time: 44, Weight: 0.000204, }, { - ID: 442, - Time: 44.1, + ID: 442, + Time: 44.1, Weight: 0.000202, }, { - ID: 443, - Time: 44.2, + ID: 443, + Time: 44.2, Weight: 0.000201, }, { - ID: 444, - Time: 44.3, + ID: 444, + Time: 44.3, Weight: 0.000199, }, { - ID: 445, - Time: 44.4, + ID: 445, + Time: 44.4, Weight: 0.000197, }, { - ID: 446, - Time: 44.5, + ID: 446, + Time: 44.5, Weight: 0.000196, }, { - ID: 447, - Time: 44.6, + ID: 447, + Time: 44.6, Weight: 0.000194, }, { - ID: 448, - Time: 44.7, + ID: 448, + Time: 44.7, Weight: 0.000193, }, { - ID: 449, - Time: 44.8, + ID: 449, + Time: 44.8, Weight: 0.000191, }, { - ID: 450, - Time: 44.9, + ID: 450, + Time: 44.9, Weight: 0.000189, }, { - ID: 451, - Time: 45, + ID: 451, + Time: 45, Weight: 0.000188, }, { - ID: 452, - Time: 45.1, + ID: 452, + Time: 45.1, Weight: 0.000186, }, { - ID: 453, - Time: 45.2, + ID: 453, + Time: 45.2, Weight: 0.000185, }, { - ID: 454, - Time: 45.3, + ID: 454, + Time: 45.3, Weight: 0.000183, }, { - ID: 455, - Time: 45.4, + ID: 455, + Time: 45.4, Weight: 0.000182, }, { - ID: 456, - Time: 45.5, + ID: 456, + Time: 45.5, Weight: 0.00018, }, { - ID: 457, - Time: 45.6, + ID: 457, + Time: 45.6, Weight: 0.000179, }, { - ID: 458, - Time: 45.7, + ID: 458, + Time: 45.7, Weight: 0.000177, }, { - ID: 459, - Time: 45.8, + ID: 459, + Time: 45.8, Weight: 0.000176, }, { - ID: 460, - Time: 45.9, + ID: 460, + Time: 45.9, Weight: 0.000174, }, { - ID: 461, - Time: 46, + ID: 461, + Time: 46, Weight: 0.000173, }, { - ID: 462, - Time: 46.1, + ID: 462, + Time: 46.1, Weight: 0.000171, }, { - ID: 463, - Time: 46.2, + ID: 463, + Time: 46.2, Weight: 0.00017, }, { - ID: 464, - Time: 46.3, + ID: 464, + Time: 46.3, Weight: 0.000168, }, { - ID: 465, - Time: 46.4, + ID: 465, + Time: 46.4, Weight: 0.000167, }, { - ID: 466, - Time: 46.5, + ID: 466, + Time: 46.5, Weight: 0.000166, }, { - ID: 467, - Time: 46.6, + ID: 467, + Time: 46.6, Weight: 0.000164, }, { - ID: 468, - Time: 46.7, + ID: 468, + Time: 46.7, Weight: 0.000163, }, { - ID: 469, - Time: 46.8, + ID: 469, + Time: 46.8, Weight: 0.000162, }, { - ID: 470, - Time: 46.9, + ID: 470, + Time: 46.9, Weight: 0.00016, }, { - ID: 471, - Time: 47, + ID: 471, + Time: 47, Weight: 0.000159, }, { - ID: 472, - Time: 47.1, + ID: 472, + Time: 47.1, Weight: 0.000158, }, { - ID: 473, - Time: 47.2, + ID: 473, + Time: 47.2, Weight: 0.000156, }, { - ID: 474, - Time: 47.3, + ID: 474, + Time: 47.3, Weight: 0.000155, }, { - ID: 475, - Time: 47.4, + ID: 475, + Time: 47.4, Weight: 0.000154, }, { - ID: 476, - Time: 47.5, + ID: 476, + Time: 47.5, Weight: 0.000152, }, { - ID: 477, - Time: 47.6, + ID: 477, + Time: 47.6, Weight: 0.000151, }, { - ID: 478, - Time: 47.7, + ID: 478, + Time: 47.7, Weight: 0.00015, }, { - ID: 479, - Time: 47.8, + ID: 479, + Time: 47.8, Weight: 0.000149, }, { - ID: 480, - Time: 47.9, + ID: 480, + Time: 47.9, Weight: 0.000147, }, { - ID: 481, - Time: 48, + ID: 481, + Time: 48, Weight: 0.000146, }, { - ID: 482, - Time: 48.1, + ID: 482, + Time: 48.1, Weight: 0.000145, }, { - ID: 483, - Time: 48.2, + ID: 483, + Time: 48.2, Weight: 0.000144, }, { - ID: 484, - Time: 48.3, + ID: 484, + Time: 48.3, Weight: 0.000143, }, { - ID: 485, - Time: 48.4, + ID: 485, + Time: 48.4, Weight: 0.000141, }, { - ID: 486, - Time: 48.5, + ID: 486, + Time: 48.5, Weight: 0.00014, }, { - ID: 487, - Time: 48.6, + ID: 487, + Time: 48.6, Weight: 0.000139, }, { - ID: 488, - Time: 48.7, + ID: 488, + Time: 48.7, Weight: 0.000138, }, { - ID: 489, - Time: 48.8, + ID: 489, + Time: 48.8, Weight: 0.000137, }, { - ID: 490, - Time: 48.9, + ID: 490, + Time: 48.9, Weight: 0.000136, }, { - ID: 491, - Time: 49, + ID: 491, + Time: 49, Weight: 0.000135, }, { - ID: 492, - Time: 49.1, + ID: 492, + Time: 49.1, Weight: 0.000133, }, { - ID: 493, - Time: 49.2, + ID: 493, + Time: 49.2, Weight: 0.000132, }, { - ID: 494, - Time: 49.3, + ID: 494, + Time: 49.3, Weight: 0.000131, }, { - ID: 495, - Time: 49.4, + ID: 495, + Time: 49.4, Weight: 0.00013, }, { - ID: 496, - Time: 49.5, + ID: 496, + Time: 49.5, Weight: 0.000129, }, { - ID: 497, - Time: 49.6, + ID: 497, + Time: 49.6, Weight: 0.000128, }, { - ID: 498, - Time: 49.7, + ID: 498, + Time: 49.7, Weight: 0.000127, }, { - ID: 499, - Time: 49.8, + ID: 499, + Time: 49.8, Weight: 0.000126, }, { - ID: 500, - Time: 49.9, + ID: 500, + Time: 49.9, Weight: 0.000125, }, { - ID: 501, - Time: 50, + ID: 501, + Time: 50, Weight: 0.000124, }, { - ID: 502, - Time: 50.1, + ID: 502, + Time: 50.1, Weight: 0.000123, }, { - ID: 503, - Time: 50.2, + ID: 503, + Time: 50.2, Weight: 0.000122, }, { - ID: 504, - Time: 50.3, + ID: 504, + Time: 50.3, Weight: 0.000121, }, { - ID: 505, - Time: 50.4, + ID: 505, + Time: 50.4, Weight: 0.00012, }, { - ID: 506, - Time: 50.5, + ID: 506, + Time: 50.5, Weight: 0.000119, }, { - ID: 507, - Time: 50.6, + ID: 507, + Time: 50.6, Weight: 0.000118, }, { - ID: 508, - Time: 50.7, + ID: 508, + Time: 50.7, Weight: 0.000117, }, { - ID: 509, - Time: 50.8, + ID: 509, + Time: 50.8, Weight: 0.000116, }, { - ID: 510, - Time: 50.9, + ID: 510, + Time: 50.9, Weight: 0.000115, }, { - ID: 511, - Time: 51, + ID: 511, + Time: 51, Weight: 0.000114, }, { - ID: 512, - Time: 51.1, + ID: 512, + Time: 51.1, Weight: 0.000113, }, { - ID: 513, - Time: 51.2, + ID: 513, + Time: 51.2, Weight: 0.000112, }, { - ID: 514, - Time: 51.3, + ID: 514, + Time: 51.3, Weight: 0.000111, }, { - ID: 515, - Time: 51.4, + ID: 515, + Time: 51.4, Weight: 0.00011, }, { - ID: 516, - Time: 51.5, + ID: 516, + Time: 51.5, Weight: 0.000109, }, { - ID: 517, - Time: 51.6, + ID: 517, + Time: 51.6, Weight: 0.000108, }, { - ID: 518, - Time: 51.7, + ID: 518, + Time: 51.7, Weight: 0.000107, }, { - ID: 519, - Time: 51.8, + ID: 519, + Time: 51.8, Weight: 0.000106, }, { - ID: 520, - Time: 51.9, + ID: 520, + Time: 51.9, Weight: 0.000106, }, { - ID: 521, - Time: 52, + ID: 521, + Time: 52, Weight: 0.000105, }, { - ID: 522, - Time: 52.1, + ID: 522, + Time: 52.1, Weight: 0.000104, }, { - ID: 523, - Time: 52.2, + ID: 523, + Time: 52.2, Weight: 0.000103, }, { - ID: 524, - Time: 52.3, + ID: 524, + Time: 52.3, Weight: 0.000102, }, { - ID: 525, - Time: 52.4, + ID: 525, + Time: 52.4, Weight: 0.000101, }, { - ID: 526, - Time: 52.5, + ID: 526, + Time: 52.5, Weight: 0.0001, }, { - ID: 527, - Time: 52.6, + ID: 527, + Time: 52.6, Weight: 0.0001, }, { - ID: 528, - Time: 52.7, + ID: 528, + Time: 52.7, Weight: 0.000099, }, { - ID: 529, - Time: 52.8, + ID: 529, + Time: 52.8, Weight: 0.000098, }, { - ID: 530, - Time: 52.9, + ID: 530, + Time: 52.9, Weight: 0.000097, }, { - ID: 531, - Time: 53, + ID: 531, + Time: 53, Weight: 0.000096, }, { - ID: 532, - Time: 53.1, + ID: 532, + Time: 53.1, Weight: 0.000096, }, { - ID: 533, - Time: 53.2, + ID: 533, + Time: 53.2, Weight: 0.000095, }, { - ID: 534, - Time: 53.3, + ID: 534, + Time: 53.3, Weight: 0.000094, }, { - ID: 535, - Time: 53.4, + ID: 535, + Time: 53.4, Weight: 0.000093, }, { - ID: 536, - Time: 53.5, + ID: 536, + Time: 53.5, Weight: 0.000092, }, { - ID: 537, - Time: 53.6, + ID: 537, + Time: 53.6, Weight: 0.000092, }, { - ID: 538, - Time: 53.7, + ID: 538, + Time: 53.7, Weight: 0.000091, }, { - ID: 539, - Time: 53.8, + ID: 539, + Time: 53.8, Weight: 0.00009, }, { - ID: 540, - Time: 53.9, + ID: 540, + Time: 53.9, Weight: 0.000089, }, { - ID: 541, - Time: 54, + ID: 541, + Time: 54, Weight: 0.000089, }, { - ID: 542, - Time: 54.1, + ID: 542, + Time: 54.1, Weight: 0.000088, }, { - ID: 543, - Time: 54.2, + ID: 543, + Time: 54.2, Weight: 0.000087, }, { - ID: 544, - Time: 54.3, + ID: 544, + Time: 54.3, Weight: 0.000086, }, { - ID: 545, - Time: 54.4, + ID: 545, + Time: 54.4, Weight: 0.000086, }, { - ID: 546, - Time: 54.5, + ID: 546, + Time: 54.5, Weight: 0.000085, }, { - ID: 547, - Time: 54.6, + ID: 547, + Time: 54.6, Weight: 0.000084, }, { - ID: 548, - Time: 54.7, + ID: 548, + Time: 54.7, Weight: 0.000084, }, { - ID: 549, - Time: 54.8, + ID: 549, + Time: 54.8, Weight: 0.000083, }, { - ID: 550, - Time: 54.9, + ID: 550, + Time: 54.9, Weight: 0.000082, }, { - ID: 551, - Time: 55, + ID: 551, + Time: 55, Weight: 0.000082, }, { - ID: 552, - Time: 55.1, + ID: 552, + Time: 55.1, Weight: 0.000081, }, { - ID: 553, - Time: 55.2, + ID: 553, + Time: 55.2, Weight: 0.00008, }, { - ID: 554, - Time: 55.3, + ID: 554, + Time: 55.3, Weight: 0.00008, }, { - ID: 555, - Time: 55.4, + ID: 555, + Time: 55.4, Weight: 0.000079, }, { - ID: 556, - Time: 55.5, + ID: 556, + Time: 55.5, Weight: 0.000078, }, { - ID: 557, - Time: 55.6, + ID: 557, + Time: 55.6, Weight: 0.000078, }, { - ID: 558, - Time: 55.7, + ID: 558, + Time: 55.7, Weight: 0.000077, }, { - ID: 559, - Time: 55.8, + ID: 559, + Time: 55.8, Weight: 0.000076, }, { - ID: 560, - Time: 55.9, + ID: 560, + Time: 55.9, Weight: 0.000076, }, { - ID: 561, - Time: 56, + ID: 561, + Time: 56, Weight: 0.000075, }, { - ID: 562, - Time: 56.1, + ID: 562, + Time: 56.1, Weight: 0.000074, }, { - ID: 563, - Time: 56.2, + ID: 563, + Time: 56.2, Weight: 0.000074, }, { - ID: 564, - Time: 56.3, + ID: 564, + Time: 56.3, Weight: 0.000073, }, { - ID: 565, - Time: 56.4, + ID: 565, + Time: 56.4, Weight: 0.000073, }, { - ID: 566, - Time: 56.5, + ID: 566, + Time: 56.5, Weight: 0.000072, }, { - ID: 567, - Time: 56.6, + ID: 567, + Time: 56.6, Weight: 0.000071, }, { - ID: 568, - Time: 56.7, + ID: 568, + Time: 56.7, Weight: 0.000071, }, { - ID: 569, - Time: 56.8, + ID: 569, + Time: 56.8, Weight: 0.00007, }, { - ID: 570, - Time: 56.9, + ID: 570, + Time: 56.9, Weight: 0.00007, }, { - ID: 571, - Time: 57, + ID: 571, + Time: 57, Weight: 0.000069, }, { - ID: 572, - Time: 57.1, + ID: 572, + Time: 57.1, Weight: 0.000068, }, { - ID: 573, - Time: 57.2, + ID: 573, + Time: 57.2, Weight: 0.000068, }, { - ID: 574, - Time: 57.3, + ID: 574, + Time: 57.3, Weight: 0.000067, }, { - ID: 575, - Time: 57.4, + ID: 575, + Time: 57.4, Weight: 0.000067, }, { - ID: 576, - Time: 57.5, + ID: 576, + Time: 57.5, Weight: 0.000066, }, { - ID: 577, - Time: 57.6, + ID: 577, + Time: 57.6, Weight: 0.000066, }, { - ID: 578, - Time: 57.7, + ID: 578, + Time: 57.7, Weight: 0.000065, }, { - ID: 579, - Time: 57.8, + ID: 579, + Time: 57.8, Weight: 0.000065, }, { - ID: 580, - Time: 57.9, + ID: 580, + Time: 57.9, Weight: 0.000064, }, { - ID: 581, - Time: 58, + ID: 581, + Time: 58, Weight: 0.000063, }, { - ID: 582, - Time: 58.1, + ID: 582, + Time: 58.1, Weight: 0.000063, }, { - ID: 583, - Time: 58.2, + ID: 583, + Time: 58.2, Weight: 0.000062, }, { - ID: 584, - Time: 58.3, + ID: 584, + Time: 58.3, Weight: 0.000062, }, { - ID: 585, - Time: 58.4, + ID: 585, + Time: 58.4, Weight: 0.000061, }, { - ID: 586, - Time: 58.5, + ID: 586, + Time: 58.5, Weight: 0.000061, }, { - ID: 587, - Time: 58.6, + ID: 587, + Time: 58.6, Weight: 0.00006, }, { - ID: 588, - Time: 58.7, + ID: 588, + Time: 58.7, Weight: 0.00006, }, { - ID: 589, - Time: 58.8, + ID: 589, + Time: 58.8, Weight: 0.000059, }, { - ID: 590, - Time: 58.9, + ID: 590, + Time: 58.9, Weight: 0.000059, }, { - ID: 591, - Time: 59, + ID: 591, + Time: 59, Weight: 0.000058, }, { - ID: 592, - Time: 59.1, + ID: 592, + Time: 59.1, Weight: 0.000058, }, { - ID: 593, - Time: 59.2, + ID: 593, + Time: 59.2, Weight: 0.000057, }, { - ID: 594, - Time: 59.3, + ID: 594, + Time: 59.3, Weight: 0.000057, }, { - ID: 595, - Time: 59.4, + ID: 595, + Time: 59.4, Weight: 0.000056, }, { - ID: 596, - Time: 59.5, + ID: 596, + Time: 59.5, Weight: 0.000056, }, { - ID: 597, - Time: 59.6, + ID: 597, + Time: 59.6, Weight: 0.000056, }, { - ID: 598, - Time: 59.7, + ID: 598, + Time: 59.7, Weight: 0.000055, }, { - ID: 599, - Time: 59.8, + ID: 599, + Time: 59.8, Weight: 0.000055, }, { - ID: 600, - Time: 59.9, + ID: 600, + Time: 59.9, Weight: 0.000054, }, { - ID: 601, - Time: 60, + ID: 601, + Time: 60, Weight: 0.000054, }, { - ID: 602, - Time: 60.1, + ID: 602, + Time: 60.1, Weight: 0.000053, }, { - ID: 603, - Time: 60.2, + ID: 603, + Time: 60.2, Weight: 0.000053, }, { - ID: 604, - Time: 60.3, + ID: 604, + Time: 60.3, Weight: 0.000052, }, { - ID: 605, - Time: 60.4, + ID: 605, + Time: 60.4, Weight: 0.000052, }, { - ID: 606, - Time: 60.5, + ID: 606, + Time: 60.5, Weight: 0.000052, }, { - ID: 607, - Time: 60.6, + ID: 607, + Time: 60.6, Weight: 0.000051, }, { - ID: 608, - Time: 60.7, + ID: 608, + Time: 60.7, Weight: 0.000051, }, { - ID: 609, - Time: 60.8, + ID: 609, + Time: 60.8, Weight: 0.00005, }, { - ID: 610, - Time: 60.9, + ID: 610, + Time: 60.9, Weight: 0.00005, }, { - ID: 611, - Time: 61, + ID: 611, + Time: 61, Weight: 0.000049, }, { - ID: 612, - Time: 61.1, + ID: 612, + Time: 61.1, Weight: 0.000049, }, { - ID: 613, - Time: 61.2, + ID: 613, + Time: 61.2, Weight: 0.000049, }, { - ID: 614, - Time: 61.3, + ID: 614, + Time: 61.3, Weight: 0.000048, }, { - ID: 615, - Time: 61.4, + ID: 615, + Time: 61.4, Weight: 0.000048, }, { - ID: 616, - Time: 61.5, + ID: 616, + Time: 61.5, Weight: 0.000047, }, { - ID: 617, - Time: 61.6, + ID: 617, + Time: 61.6, Weight: 0.000047, }, { - ID: 618, - Time: 61.7, + ID: 618, + Time: 61.7, Weight: 0.000047, }, { - ID: 619, - Time: 61.8, + ID: 619, + Time: 61.8, Weight: 0.000046, }, { - ID: 620, - Time: 61.9, + ID: 620, + Time: 61.9, Weight: 0.000046, }, { - ID: 621, - Time: 62, + ID: 621, + Time: 62, Weight: 0.000045, }, { - ID: 622, - Time: 62.1, + ID: 622, + Time: 62.1, Weight: 0.000045, }, { - ID: 623, - Time: 62.2, + ID: 623, + Time: 62.2, Weight: 0.000045, }, { - ID: 624, - Time: 62.3, + ID: 624, + Time: 62.3, Weight: 0.000044, }, { - ID: 625, - Time: 62.4, + ID: 625, + Time: 62.4, Weight: 0.000044, }, { - ID: 626, - Time: 62.5, + ID: 626, + Time: 62.5, Weight: 0.000044, }, { - ID: 627, - Time: 62.6, + ID: 627, + Time: 62.6, Weight: 0.000043, }, { - ID: 628, - Time: 62.7, + ID: 628, + Time: 62.7, Weight: 0.000043, }, { - ID: 629, - Time: 62.8, + ID: 629, + Time: 62.8, Weight: 0.000043, }, { - ID: 630, - Time: 62.9, + ID: 630, + Time: 62.9, Weight: 0.000042, }, { - ID: 631, - Time: 63, + ID: 631, + Time: 63, Weight: 0.000042, }, { - ID: 632, - Time: 63.1, + ID: 632, + Time: 63.1, Weight: 0.000041, }, { - ID: 633, - Time: 63.2, + ID: 633, + Time: 63.2, Weight: 0.000041, }, { - ID: 634, - Time: 63.3, + ID: 634, + Time: 63.3, Weight: 0.000041, }, { - ID: 635, - Time: 63.4, + ID: 635, + Time: 63.4, Weight: 0.00004, }, { - ID: 636, - Time: 63.5, + ID: 636, + Time: 63.5, Weight: 0.00004, }, { - ID: 637, - Time: 63.6, + ID: 637, + Time: 63.6, Weight: 0.00004, }, { - ID: 638, - Time: 63.7, + ID: 638, + Time: 63.7, Weight: 0.000039, }, { - ID: 639, - Time: 63.8, + ID: 639, + Time: 63.8, Weight: 0.000039, }, { - ID: 640, - Time: 63.9, + ID: 640, + Time: 63.9, Weight: 0.000039, }, { - ID: 641, - Time: 64, + ID: 641, + Time: 64, Weight: 0.000038, }, { - ID: 642, - Time: 64.1, + ID: 642, + Time: 64.1, Weight: 0.000038, }, { - ID: 643, - Time: 64.2, + ID: 643, + Time: 64.2, Weight: 0.000038, }, { - ID: 644, - Time: 64.3, + ID: 644, + Time: 64.3, Weight: 0.000038, }, { - ID: 645, - Time: 64.4, + ID: 645, + Time: 64.4, Weight: 0.000037, }, { - ID: 646, - Time: 64.5, + ID: 646, + Time: 64.5, Weight: 0.000037, }, { - ID: 647, - Time: 64.6, + ID: 647, + Time: 64.6, Weight: 0.000037, }, { - ID: 648, - Time: 64.7, + ID: 648, + Time: 64.7, Weight: 0.000036, }, { - ID: 649, - Time: 64.8, + ID: 649, + Time: 64.8, Weight: 0.000036, }, { - ID: 650, - Time: 64.9, + ID: 650, + Time: 64.9, Weight: 0.000036, }, { - ID: 651, - Time: 65, + ID: 651, + Time: 65, Weight: 0.000035, }, { - ID: 652, - Time: 65.1, + ID: 652, + Time: 65.1, Weight: 0.000035, }, { - ID: 653, - Time: 65.2, + ID: 653, + Time: 65.2, Weight: 0.000035, }, { - ID: 654, - Time: 65.3, + ID: 654, + Time: 65.3, Weight: 0.000035, }, { - ID: 655, - Time: 65.4, + ID: 655, + Time: 65.4, Weight: 0.000034, }, { - ID: 656, - Time: 65.5, + ID: 656, + Time: 65.5, Weight: 0.000034, }, { - ID: 657, - Time: 65.6, + ID: 657, + Time: 65.6, Weight: 0.000034, }, { - ID: 658, - Time: 65.7, + ID: 658, + Time: 65.7, Weight: 0.000033, }, { - ID: 659, - Time: 65.8, + ID: 659, + Time: 65.8, Weight: 0.000033, }, { - ID: 660, - Time: 65.9, + ID: 660, + Time: 65.9, Weight: 0.000033, }, { - ID: 661, - Time: 66, + ID: 661, + Time: 66, Weight: 0.000033, }, { - ID: 662, - Time: 66.1, + ID: 662, + Time: 66.1, Weight: 0.000032, }, { - ID: 663, - Time: 66.2, + ID: 663, + Time: 66.2, Weight: 0.000032, }, { - ID: 664, - Time: 66.3, + ID: 664, + Time: 66.3, Weight: 0.000032, }, { - ID: 665, - Time: 66.4, + ID: 665, + Time: 66.4, Weight: 0.000032, }, { - ID: 666, - Time: 66.5, + ID: 666, + Time: 66.5, Weight: 0.000031, }, { - ID: 667, - Time: 66.6, + ID: 667, + Time: 66.6, Weight: 0.000031, }, { - ID: 668, - Time: 66.7, + ID: 668, + Time: 66.7, Weight: 0.000031, }, { - ID: 669, - Time: 66.8, + ID: 669, + Time: 66.8, Weight: 0.00003, }, { - ID: 670, - Time: 66.9, + ID: 670, + Time: 66.9, Weight: 0.00003, }, { - ID: 671, - Time: 67, + ID: 671, + Time: 67, Weight: 0.00003, }, { - ID: 672, - Time: 67.1, + ID: 672, + Time: 67.1, Weight: 0.00003, }, { - ID: 673, - Time: 67.2, + ID: 673, + Time: 67.2, Weight: 0.000029, }, { - ID: 674, - Time: 67.3, + ID: 674, + Time: 67.3, Weight: 0.000029, }, { - ID: 675, - Time: 67.4, + ID: 675, + Time: 67.4, Weight: 0.000029, }, { - ID: 676, - Time: 67.5, + ID: 676, + Time: 67.5, Weight: 0.000029, }, { - ID: 677, - Time: 67.6, + ID: 677, + Time: 67.6, Weight: 0.000029, }, { - ID: 678, - Time: 67.7, + ID: 678, + Time: 67.7, Weight: 0.000028, }, { - ID: 679, - Time: 67.8, + ID: 679, + Time: 67.8, Weight: 0.000028, }, { - ID: 680, - Time: 67.9, + ID: 680, + Time: 67.9, Weight: 0.000028, }, { - ID: 681, - Time: 68, + ID: 681, + Time: 68, Weight: 0.000028, }, { - ID: 682, - Time: 68.1, + ID: 682, + Time: 68.1, Weight: 0.000027, }, { - ID: 683, - Time: 68.2, + ID: 683, + Time: 68.2, Weight: 0.000027, }, { - ID: 684, - Time: 68.3, + ID: 684, + Time: 68.3, Weight: 0.000027, }, { - ID: 685, - Time: 68.4, + ID: 685, + Time: 68.4, Weight: 0.000027, }, { - ID: 686, - Time: 68.5, + ID: 686, + Time: 68.5, Weight: 0.000026, }, { - ID: 687, - Time: 68.6, + ID: 687, + Time: 68.6, Weight: 0.000026, }, { - ID: 688, - Time: 68.7, + ID: 688, + Time: 68.7, Weight: 0.000026, }, { - ID: 689, - Time: 68.8, + ID: 689, + Time: 68.8, Weight: 0.000026, }, { - ID: 690, - Time: 68.9, + ID: 690, + Time: 68.9, Weight: 0.000026, }, { - ID: 691, - Time: 69, + ID: 691, + Time: 69, Weight: 0.000025, }, { - ID: 692, - Time: 69.1, + ID: 692, + Time: 69.1, Weight: 0.000025, }, { - ID: 693, - Time: 69.2, + ID: 693, + Time: 69.2, Weight: 0.000025, }, { - ID: 694, - Time: 69.3, + ID: 694, + Time: 69.3, Weight: 0.000025, }, { - ID: 695, - Time: 69.4, + ID: 695, + Time: 69.4, Weight: 0.000025, }, { - ID: 696, - Time: 69.5, + ID: 696, + Time: 69.5, Weight: 0.000024, }, { - ID: 697, - Time: 69.6, + ID: 697, + Time: 69.6, Weight: 0.000024, }, { - ID: 698, - Time: 69.7, + ID: 698, + Time: 69.7, Weight: 0.000024, }, { - ID: 699, - Time: 69.8, + ID: 699, + Time: 69.8, Weight: 0.000024, }, { - ID: 700, - Time: 69.9, + ID: 700, + Time: 69.9, Weight: 0.000024, }, { - ID: 701, - Time: 70, + ID: 701, + Time: 70, Weight: 0.000023, }, { - ID: 702, - Time: 70.1, + ID: 702, + Time: 70.1, Weight: 0.000023, }, { - ID: 703, - Time: 70.2, + ID: 703, + Time: 70.2, Weight: 0.000023, }, { - ID: 704, - Time: 70.3, + ID: 704, + Time: 70.3, Weight: 0.000023, }, { - ID: 705, - Time: 70.4, + ID: 705, + Time: 70.4, Weight: 0.000023, }, { - ID: 706, - Time: 70.5, + ID: 706, + Time: 70.5, Weight: 0.000022, }, { - ID: 707, - Time: 70.6, + ID: 707, + Time: 70.6, Weight: 0.000022, }, { - ID: 708, - Time: 70.7, + ID: 708, + Time: 70.7, Weight: 0.000022, }, { - ID: 709, - Time: 70.8, + ID: 709, + Time: 70.8, Weight: 0.000022, }, { - ID: 710, - Time: 70.9, + ID: 710, + Time: 70.9, Weight: 0.000022, }, { - ID: 711, - Time: 71, + ID: 711, + Time: 71, Weight: 0.000021, }, { - ID: 712, - Time: 71.1, + ID: 712, + Time: 71.1, Weight: 0.000021, }, { - ID: 713, - Time: 71.2, + ID: 713, + Time: 71.2, Weight: 0.000021, }, { - ID: 714, - Time: 71.3, + ID: 714, + Time: 71.3, Weight: 0.000021, }, { - ID: 715, - Time: 71.4, + ID: 715, + Time: 71.4, Weight: 0.000021, }, { - ID: 716, - Time: 71.5, + ID: 716, + Time: 71.5, Weight: 0.000021, }, { - ID: 717, - Time: 71.6, + ID: 717, + Time: 71.6, Weight: 0.00002, }, { - ID: 718, - Time: 71.7, + ID: 718, + Time: 71.7, Weight: 0.00002, }, { - ID: 719, - Time: 71.8, + ID: 719, + Time: 71.8, Weight: 0.00002, }, { - ID: 720, - Time: 71.9, + ID: 720, + Time: 71.9, Weight: 0.00002, }, { - ID: 721, - Time: 72, + ID: 721, + Time: 72, Weight: 0.00002, }, { - ID: 722, - Time: 72.1, + ID: 722, + Time: 72.1, Weight: 0.00002, }, { - ID: 723, - Time: 72.2, + ID: 723, + Time: 72.2, Weight: 0.000019, }, { - ID: 724, - Time: 72.3, + ID: 724, + Time: 72.3, Weight: 0.000019, }, { - ID: 725, - Time: 72.4, + ID: 725, + Time: 72.4, Weight: 0.000019, }, { - ID: 726, - Time: 72.5, + ID: 726, + Time: 72.5, Weight: 0.000019, }, { - ID: 727, - Time: 72.6, + ID: 727, + Time: 72.6, Weight: 0.000019, }, { - ID: 728, - Time: 72.7, + ID: 728, + Time: 72.7, Weight: 0.000019, }, { - ID: 729, - Time: 72.8, + ID: 729, + Time: 72.8, Weight: 0.000018, }, { - ID: 730, - Time: 72.9, + ID: 730, + Time: 72.9, Weight: 0.000018, }, { - ID: 731, - Time: 73, + ID: 731, + Time: 73, Weight: 0.000018, }, { - ID: 732, - Time: 73.1, + ID: 732, + Time: 73.1, Weight: 0.000018, }, { - ID: 733, - Time: 73.2, + ID: 733, + Time: 73.2, Weight: 0.000018, }, { - ID: 734, - Time: 73.3, + ID: 734, + Time: 73.3, Weight: 0.000018, }, { - ID: 735, - Time: 73.4, + ID: 735, + Time: 73.4, Weight: 0.000018, }, { - ID: 736, - Time: 73.5, + ID: 736, + Time: 73.5, Weight: 0.000017, }, { - ID: 737, - Time: 73.6, + ID: 737, + Time: 73.6, Weight: 0.000017, }, { - ID: 738, - Time: 73.7, + ID: 738, + Time: 73.7, Weight: 0.000017, }, { - ID: 739, - Time: 73.8, + ID: 739, + Time: 73.8, Weight: 0.000017, }, { - ID: 740, - Time: 73.9, + ID: 740, + Time: 73.9, Weight: 0.000017, }, { - ID: 741, - Time: 74, + ID: 741, + Time: 74, Weight: 0.000017, }, { - ID: 742, - Time: 74.1, + ID: 742, + Time: 74.1, Weight: 0.000017, }, { - ID: 743, - Time: 74.2, + ID: 743, + Time: 74.2, Weight: 0.000016, }, { - ID: 744, - Time: 74.3, + ID: 744, + Time: 74.3, Weight: 0.000016, }, { - ID: 745, - Time: 74.4, + ID: 745, + Time: 74.4, Weight: 0.000016, }, { - ID: 746, - Time: 74.5, + ID: 746, + Time: 74.5, Weight: 0.000016, }, { - ID: 747, - Time: 74.6, + ID: 747, + Time: 74.6, Weight: 0.000016, }, { - ID: 748, - Time: 74.7, + ID: 748, + Time: 74.7, Weight: 0.000016, }, { - ID: 749, - Time: 74.8, + ID: 749, + Time: 74.8, Weight: 0.000016, }, { - ID: 750, - Time: 74.9, + ID: 750, + Time: 74.9, Weight: 0.000016, }, { - ID: 751, - Time: 75, + ID: 751, + Time: 75, Weight: 0.000015, }, { - ID: 752, - Time: 75.1, + ID: 752, + Time: 75.1, Weight: 0.000015, }, { - ID: 753, - Time: 75.2, + ID: 753, + Time: 75.2, Weight: 0.000015, }, { - ID: 754, - Time: 75.3, + ID: 754, + Time: 75.3, Weight: 0.000015, }, { - ID: 755, - Time: 75.4, + ID: 755, + Time: 75.4, Weight: 0.000015, }, { - ID: 756, - Time: 75.5, + ID: 756, + Time: 75.5, Weight: 0.000015, }, { - ID: 757, - Time: 75.6, + ID: 757, + Time: 75.6, Weight: 0.000015, }, { - ID: 758, - Time: 75.7, + ID: 758, + Time: 75.7, Weight: 0.000015, }, { - ID: 759, - Time: 75.8, + ID: 759, + Time: 75.8, Weight: 0.000014, }, { - ID: 760, - Time: 75.9, + ID: 760, + Time: 75.9, Weight: 0.000014, }, { - ID: 761, - Time: 76, + ID: 761, + Time: 76, Weight: 0.000014, }, { - ID: 762, - Time: 76.1, + ID: 762, + Time: 76.1, Weight: 0.000014, }, { - ID: 763, - Time: 76.2, + ID: 763, + Time: 76.2, Weight: 0.000014, }, { - ID: 764, - Time: 76.3, + ID: 764, + Time: 76.3, Weight: 0.000014, }, { - ID: 765, - Time: 76.4, + ID: 765, + Time: 76.4, Weight: 0.000014, }, { - ID: 766, - Time: 76.5, + ID: 766, + Time: 76.5, Weight: 0.000014, }, { - ID: 767, - Time: 76.6, + ID: 767, + Time: 76.6, Weight: 0.000013, }, { - ID: 768, - Time: 76.7, + ID: 768, + Time: 76.7, Weight: 0.000013, }, { - ID: 769, - Time: 76.8, + ID: 769, + Time: 76.8, Weight: 0.000013, }, { - ID: 770, - Time: 76.9, + ID: 770, + Time: 76.9, Weight: 0.000013, }, { - ID: 771, - Time: 77, + ID: 771, + Time: 77, Weight: 0.000013, }, { - ID: 772, - Time: 77.1, + ID: 772, + Time: 77.1, Weight: 0.000013, }, { - ID: 773, - Time: 77.2, + ID: 773, + Time: 77.2, Weight: 0.000013, }, { - ID: 774, - Time: 77.3, + ID: 774, + Time: 77.3, Weight: 0.000013, }, { - ID: 775, - Time: 77.4, + ID: 775, + Time: 77.4, Weight: 0.000013, }, { - ID: 776, - Time: 77.5, + ID: 776, + Time: 77.5, Weight: 0.000012, }, { - ID: 777, - Time: 77.6, + ID: 777, + Time: 77.6, Weight: 0.000012, }, { - ID: 778, - Time: 77.7, + ID: 778, + Time: 77.7, Weight: 0.000012, }, { - ID: 779, - Time: 77.8, + ID: 779, + Time: 77.8, Weight: 0.000012, }, { - ID: 780, - Time: 77.9, + ID: 780, + Time: 77.9, Weight: 0.000012, }, { - ID: 781, - Time: 78, + ID: 781, + Time: 78, Weight: 0.000012, }, { - ID: 782, - Time: 78.1, + ID: 782, + Time: 78.1, Weight: 0.000012, }, { - ID: 783, - Time: 78.2, + ID: 783, + Time: 78.2, Weight: 0.000012, }, { - ID: 784, - Time: 78.3, + ID: 784, + Time: 78.3, Weight: 0.000012, }, { - ID: 785, - Time: 78.4, + ID: 785, + Time: 78.4, Weight: 0.000012, }, { - ID: 786, - Time: 78.5, + ID: 786, + Time: 78.5, Weight: 0.000011, }, { - ID: 787, - Time: 78.6, + ID: 787, + Time: 78.6, Weight: 0.000011, }, { - ID: 788, - Time: 78.7, + ID: 788, + Time: 78.7, Weight: 0.000011, }, { - ID: 789, - Time: 78.8, + ID: 789, + Time: 78.8, Weight: 0.000011, }, { - ID: 790, - Time: 78.9, + ID: 790, + Time: 78.9, Weight: 0.000011, }, { - ID: 791, - Time: 79, + ID: 791, + Time: 79, Weight: 0.000011, }, { - ID: 792, - Time: 79.1, + ID: 792, + Time: 79.1, Weight: 0.000011, }, { - ID: 793, - Time: 79.2, + ID: 793, + Time: 79.2, Weight: 0.000011, }, { - ID: 794, - Time: 79.3, + ID: 794, + Time: 79.3, Weight: 0.000011, }, { - ID: 795, - Time: 79.4, + ID: 795, + Time: 79.4, Weight: 0.000011, }, { - ID: 796, - Time: 79.5, + ID: 796, + Time: 79.5, Weight: 0.000011, }, { - ID: 797, - Time: 79.6, + ID: 797, + Time: 79.6, Weight: 0.00001, }, { - ID: 798, - Time: 79.7, + ID: 798, + Time: 79.7, Weight: 0.00001, }, { - ID: 799, - Time: 79.8, + ID: 799, + Time: 79.8, Weight: 0.00001, }, { - ID: 800, - Time: 79.9, + ID: 800, + Time: 79.9, Weight: 0.00001, }, { - ID: 801, - Time: 80, + ID: 801, + Time: 80, Weight: 0.00001, }, { - ID: 802, - Time: 80.1, + ID: 802, + Time: 80.1, Weight: 0.00001, }, { - ID: 803, - Time: 80.2, + ID: 803, + Time: 80.2, Weight: 0.00001, }, { - ID: 804, - Time: 80.3, + ID: 804, + Time: 80.3, Weight: 0.00001, }, { - ID: 805, - Time: 80.4, + ID: 805, + Time: 80.4, Weight: 0.00001, }, { - ID: 806, - Time: 80.5, + ID: 806, + Time: 80.5, Weight: 0.00001, }, { - ID: 807, - Time: 80.6, + ID: 807, + Time: 80.6, Weight: 0.00001, }, { - ID: 808, - Time: 80.7, + ID: 808, + Time: 80.7, Weight: 0.00001, }, { - ID: 809, - Time: 80.8, + ID: 809, + Time: 80.8, Weight: 0.000009, }, { - ID: 810, - Time: 80.9, + ID: 810, + Time: 80.9, Weight: 0.000009, }, { - ID: 811, - Time: 81, + ID: 811, + Time: 81, Weight: 0.000009, }, { - ID: 812, - Time: 81.1, + ID: 812, + Time: 81.1, Weight: 0.000009, }, { - ID: 813, - Time: 81.2, + ID: 813, + Time: 81.2, Weight: 0.000009, }, { - ID: 814, - Time: 81.3, + ID: 814, + Time: 81.3, Weight: 0.000009, }, { - ID: 815, - Time: 81.4, + ID: 815, + Time: 81.4, Weight: 0.000009, }, { - ID: 816, - Time: 81.5, + ID: 816, + Time: 81.5, Weight: 0.000009, }, { - ID: 817, - Time: 81.6, + ID: 817, + Time: 81.6, Weight: 0.000009, }, { - ID: 818, - Time: 81.7, + ID: 818, + Time: 81.7, Weight: 0.000009, }, { - ID: 819, - Time: 81.8, + ID: 819, + Time: 81.8, Weight: 0.000009, }, { - ID: 820, - Time: 81.9, + ID: 820, + Time: 81.9, Weight: 0.000009, }, { - ID: 821, - Time: 82, + ID: 821, + Time: 82, Weight: 0.000009, }, { - ID: 822, - Time: 82.1, + ID: 822, + Time: 82.1, Weight: 0.000009, }, { - ID: 823, - Time: 82.2, + ID: 823, + Time: 82.2, Weight: 0.000008, }, { - ID: 824, - Time: 82.3, + ID: 824, + Time: 82.3, Weight: 0.000008, }, { - ID: 825, - Time: 82.4, + ID: 825, + Time: 82.4, Weight: 0.000008, }, { - ID: 826, - Time: 82.5, + ID: 826, + Time: 82.5, Weight: 0.000008, }, { - ID: 827, - Time: 82.6, + ID: 827, + Time: 82.6, Weight: 0.000008, }, { - ID: 828, - Time: 82.7, + ID: 828, + Time: 82.7, Weight: 0.000008, }, { - ID: 829, - Time: 82.8, + ID: 829, + Time: 82.8, Weight: 0.000008, }, { - ID: 830, - Time: 82.9, + ID: 830, + Time: 82.9, Weight: 0.000008, }, { - ID: 831, - Time: 83, + ID: 831, + Time: 83, Weight: 0.000008, }, { - ID: 832, - Time: 83.1, + ID: 832, + Time: 83.1, Weight: 0.000008, }, { - ID: 833, - Time: 83.2, + ID: 833, + Time: 83.2, Weight: 0.000008, }, { - ID: 834, - Time: 83.3, + ID: 834, + Time: 83.3, Weight: 0.000008, }, { - ID: 835, - Time: 83.4, + ID: 835, + Time: 83.4, Weight: 0.000008, }, { - ID: 836, - Time: 83.5, + ID: 836, + Time: 83.5, Weight: 0.000008, }, { - ID: 837, - Time: 83.6, + ID: 837, + Time: 83.6, Weight: 0.000008, }, { - ID: 838, - Time: 83.7, + ID: 838, + Time: 83.7, Weight: 0.000007, }, { - ID: 839, - Time: 83.8, + ID: 839, + Time: 83.8, Weight: 0.000007, }, { - ID: 840, - Time: 83.9, + ID: 840, + Time: 83.9, Weight: 0.000007, }, { - ID: 841, - Time: 84, + ID: 841, + Time: 84, Weight: 0.000007, }, { - ID: 842, - Time: 84.1, + ID: 842, + Time: 84.1, Weight: 0.000007, }, { - ID: 843, - Time: 84.2, + ID: 843, + Time: 84.2, Weight: 0.000007, }, { - ID: 844, - Time: 84.3, + ID: 844, + Time: 84.3, Weight: 0.000007, }, { - ID: 845, - Time: 84.4, + ID: 845, + Time: 84.4, Weight: 0.000007, }, { - ID: 846, - Time: 84.5, + ID: 846, + Time: 84.5, Weight: 0.000007, }, { - ID: 847, - Time: 84.6, + ID: 847, + Time: 84.6, Weight: 0.000007, }, { - ID: 848, - Time: 84.7, + ID: 848, + Time: 84.7, Weight: 0.000007, }, { - ID: 849, - Time: 84.8, + ID: 849, + Time: 84.8, Weight: 0.000007, }, { - ID: 850, - Time: 84.9, + ID: 850, + Time: 84.9, Weight: 0.000007, }, { - ID: 851, - Time: 85, + ID: 851, + Time: 85, Weight: 0.000007, }, { - ID: 852, - Time: 85.1, + ID: 852, + Time: 85.1, Weight: 0.000007, }, { - ID: 853, - Time: 85.2, + ID: 853, + Time: 85.2, Weight: 0.000007, }, { - ID: 854, - Time: 85.3, + ID: 854, + Time: 85.3, Weight: 0.000007, }, { - ID: 855, - Time: 85.4, + ID: 855, + Time: 85.4, Weight: 0.000006, }, { - ID: 856, - Time: 85.5, + ID: 856, + Time: 85.5, Weight: 0.000006, }, { - ID: 857, - Time: 85.6, + ID: 857, + Time: 85.6, Weight: 0.000006, }, { - ID: 858, - Time: 85.7, + ID: 858, + Time: 85.7, Weight: 0.000006, }, { - ID: 859, - Time: 85.8, + ID: 859, + Time: 85.8, Weight: 0.000006, }, { - ID: 860, - Time: 85.9, + ID: 860, + Time: 85.9, Weight: 0.000006, }, { - ID: 861, - Time: 86, + ID: 861, + Time: 86, Weight: 0.000006, }, { - ID: 862, - Time: 86.1, + ID: 862, + Time: 86.1, Weight: 0.000006, }, { - ID: 863, - Time: 86.2, + ID: 863, + Time: 86.2, Weight: 0.000006, }, { - ID: 864, - Time: 86.3, + ID: 864, + Time: 86.3, Weight: 0.000006, }, { - ID: 865, - Time: 86.4, + ID: 865, + Time: 86.4, Weight: 0.000006, }, { - ID: 866, - Time: 86.5, + ID: 866, + Time: 86.5, Weight: 0.000006, }, { - ID: 867, - Time: 86.6, + ID: 867, + Time: 86.6, Weight: 0.000006, }, { - ID: 868, - Time: 86.7, + ID: 868, + Time: 86.7, Weight: 0.000006, }, { - ID: 869, - Time: 86.8, + ID: 869, + Time: 86.8, Weight: 0.000006, }, { - ID: 870, - Time: 86.9, + ID: 870, + Time: 86.9, Weight: 0.000006, }, { - ID: 871, - Time: 87, + ID: 871, + Time: 87, Weight: 0.000006, }, { - ID: 872, - Time: 87.1, + ID: 872, + Time: 87.1, Weight: 0.000006, }, { - ID: 873, - Time: 87.2, + ID: 873, + Time: 87.2, Weight: 0.000006, }, { - ID: 874, - Time: 87.3, + ID: 874, + Time: 87.3, Weight: 0.000006, }, { - ID: 875, - Time: 87.4, + ID: 875, + Time: 87.4, Weight: 0.000005, }, { - ID: 876, - Time: 87.5, + ID: 876, + Time: 87.5, Weight: 0.000005, }, { - ID: 877, - Time: 87.6, + ID: 877, + Time: 87.6, Weight: 0.000005, }, { - ID: 878, - Time: 87.7, + ID: 878, + Time: 87.7, Weight: 0.000005, }, { - ID: 879, - Time: 87.8, + ID: 879, + Time: 87.8, Weight: 0.000005, }, { - ID: 880, - Time: 87.9, + ID: 880, + Time: 87.9, Weight: 0.000005, }, { - ID: 881, - Time: 88, + ID: 881, + Time: 88, Weight: 0.000005, }, { - ID: 882, - Time: 88.1, + ID: 882, + Time: 88.1, Weight: 0.000005, }, { - ID: 883, - Time: 88.2, + ID: 883, + Time: 88.2, Weight: 0.000005, }, { - ID: 884, - Time: 88.3, + ID: 884, + Time: 88.3, Weight: 0.000005, }, { - ID: 885, - Time: 88.4, + ID: 885, + Time: 88.4, Weight: 0.000005, }, { - ID: 886, - Time: 88.5, + ID: 886, + Time: 88.5, Weight: 0.000005, }, { - ID: 887, - Time: 88.6, + ID: 887, + Time: 88.6, Weight: 0.000005, }, { - ID: 888, - Time: 88.7, + ID: 888, + Time: 88.7, Weight: 0.000005, }, { - ID: 889, - Time: 88.8, + ID: 889, + Time: 88.8, Weight: 0.000005, }, { - ID: 890, - Time: 88.9, + ID: 890, + Time: 88.9, Weight: 0.000005, }, { - ID: 891, - Time: 89, + ID: 891, + Time: 89, Weight: 0.000005, }, { - ID: 892, - Time: 89.1, + ID: 892, + Time: 89.1, Weight: 0.000005, }, { - ID: 893, - Time: 89.2, + ID: 893, + Time: 89.2, Weight: 0.000005, }, { - ID: 894, - Time: 89.3, + ID: 894, + Time: 89.3, Weight: 0.000005, }, { - ID: 895, - Time: 89.4, + ID: 895, + Time: 89.4, Weight: 0.000005, }, { - ID: 896, - Time: 89.5, + ID: 896, + Time: 89.5, Weight: 0.000005, }, { - ID: 897, - Time: 89.6, + ID: 897, + Time: 89.6, Weight: 0.000005, }, { - ID: 898, - Time: 89.7, + ID: 898, + Time: 89.7, Weight: 0.000005, }, { - ID: 899, - Time: 89.8, + ID: 899, + Time: 89.8, Weight: 0.000004, }, { - ID: 900, - Time: 89.9, + ID: 900, + Time: 89.9, Weight: 0.000004, }, { - ID: 901, - Time: 90, + ID: 901, + Time: 90, Weight: 0.000004, }, { - ID: 902, - Time: 90.1, + ID: 902, + Time: 90.1, Weight: 0.000004, }, { - ID: 903, - Time: 90.2, + ID: 903, + Time: 90.2, Weight: 0.000004, }, { - ID: 904, - Time: 90.3, + ID: 904, + Time: 90.3, Weight: 0.000004, }, { - ID: 905, - Time: 90.4, + ID: 905, + Time: 90.4, Weight: 0.000004, }, { - ID: 906, - Time: 90.5, + ID: 906, + Time: 90.5, Weight: 0.000004, }, { - ID: 907, - Time: 90.6, + ID: 907, + Time: 90.6, Weight: 0.000004, }, { - ID: 908, - Time: 90.7, + ID: 908, + Time: 90.7, Weight: 0.000004, }, { - ID: 909, - Time: 90.8, + ID: 909, + Time: 90.8, Weight: 0.000004, }, { - ID: 910, - Time: 90.9, + ID: 910, + Time: 90.9, Weight: 0.000004, }, { - ID: 911, - Time: 91, + ID: 911, + Time: 91, Weight: 0.000004, }, { - ID: 912, - Time: 91.1, + ID: 912, + Time: 91.1, Weight: 0.000004, }, { - ID: 913, - Time: 91.2, + ID: 913, + Time: 91.2, Weight: 0.000004, }, { - ID: 914, - Time: 91.3, + ID: 914, + Time: 91.3, Weight: 0.000004, }, { - ID: 915, - Time: 91.4, + ID: 915, + Time: 91.4, Weight: 0.000004, }, { - ID: 916, - Time: 91.5, + ID: 916, + Time: 91.5, Weight: 0.000004, }, { - ID: 917, - Time: 91.6, + ID: 917, + Time: 91.6, Weight: 0.000004, }, { - ID: 918, - Time: 91.7, + ID: 918, + Time: 91.7, Weight: 0.000004, }, { - ID: 919, - Time: 91.8, + ID: 919, + Time: 91.8, Weight: 0.000004, }, { - ID: 920, - Time: 91.9, + ID: 920, + Time: 91.9, Weight: 0.000004, }, { - ID: 921, - Time: 92, + ID: 921, + Time: 92, Weight: 0.000004, }, { - ID: 922, - Time: 92.1, + ID: 922, + Time: 92.1, Weight: 0.000004, }, { - ID: 923, - Time: 92.2, + ID: 923, + Time: 92.2, Weight: 0.000004, }, { - ID: 924, - Time: 92.3, + ID: 924, + Time: 92.3, Weight: 0.000004, }, { - ID: 925, - Time: 92.4, + ID: 925, + Time: 92.4, Weight: 0.000004, }, { - ID: 926, - Time: 92.5, + ID: 926, + Time: 92.5, Weight: 0.000004, }, { - ID: 927, - Time: 92.6, + ID: 927, + Time: 92.6, Weight: 0.000004, }, { - ID: 928, - Time: 92.7, + ID: 928, + Time: 92.7, Weight: 0.000004, }, { - ID: 929, - Time: 92.8, + ID: 929, + Time: 92.8, Weight: 0.000003, }, { - ID: 930, - Time: 92.9, + ID: 930, + Time: 92.9, Weight: 0.000003, }, { - ID: 931, - Time: 93, + ID: 931, + Time: 93, Weight: 0.000003, }, { - ID: 932, - Time: 93.1, + ID: 932, + Time: 93.1, Weight: 0.000003, }, { - ID: 933, - Time: 93.2, + ID: 933, + Time: 93.2, Weight: 0.000003, }, { - ID: 934, - Time: 93.3, + ID: 934, + Time: 93.3, Weight: 0.000003, }, { - ID: 935, - Time: 93.4, + ID: 935, + Time: 93.4, Weight: 0.000003, }, { - ID: 936, - Time: 93.5, + ID: 936, + Time: 93.5, Weight: 0.000003, }, { - ID: 937, - Time: 93.6, + ID: 937, + Time: 93.6, Weight: 0.000003, }, { - ID: 938, - Time: 93.7, + ID: 938, + Time: 93.7, Weight: 0.000003, }, { - ID: 939, - Time: 93.8, + ID: 939, + Time: 93.8, Weight: 0.000003, }, { - ID: 940, - Time: 93.9, + ID: 940, + Time: 93.9, Weight: 0.000003, }, { - ID: 941, - Time: 94, + ID: 941, + Time: 94, Weight: 0.000003, }, { - ID: 942, - Time: 94.1, + ID: 942, + Time: 94.1, Weight: 0.000003, }, { - ID: 943, - Time: 94.2, + ID: 943, + Time: 94.2, Weight: 0.000003, }, { - ID: 944, - Time: 94.3, + ID: 944, + Time: 94.3, Weight: 0.000003, }, { - ID: 945, - Time: 94.4, + ID: 945, + Time: 94.4, Weight: 0.000003, }, { - ID: 946, - Time: 94.5, + ID: 946, + Time: 94.5, Weight: 0.000003, }, { - ID: 947, - Time: 94.6, + ID: 947, + Time: 94.6, Weight: 0.000003, }, { - ID: 948, - Time: 94.7, + ID: 948, + Time: 94.7, Weight: 0.000003, }, { - ID: 949, - Time: 94.8, + ID: 949, + Time: 94.8, Weight: 0.000003, }, { - ID: 950, - Time: 94.9, + ID: 950, + Time: 94.9, Weight: 0.000003, }, { - ID: 951, - Time: 95, + ID: 951, + Time: 95, Weight: 0.000003, }, { - ID: 952, - Time: 95.1, + ID: 952, + Time: 95.1, Weight: 0.000003, }, { - ID: 953, - Time: 95.2, + ID: 953, + Time: 95.2, Weight: 0.000003, }, { - ID: 954, - Time: 95.3, + ID: 954, + Time: 95.3, Weight: 0.000003, }, { - ID: 955, - Time: 95.4, + ID: 955, + Time: 95.4, Weight: 0.000003, }, { - ID: 956, - Time: 95.5, + ID: 956, + Time: 95.5, Weight: 0.000003, }, { - ID: 957, - Time: 95.6, + ID: 957, + Time: 95.6, Weight: 0.000003, }, { - ID: 958, - Time: 95.7, + ID: 958, + Time: 95.7, Weight: 0.000003, }, { - ID: 959, - Time: 95.8, + ID: 959, + Time: 95.8, Weight: 0.000003, }, { - ID: 960, - Time: 95.9, + ID: 960, + Time: 95.9, Weight: 0.000003, }, { - ID: 961, - Time: 96, + ID: 961, + Time: 96, Weight: 0.000003, }, { - ID: 962, - Time: 96.1, + ID: 962, + Time: 96.1, Weight: 0.000003, }, { - ID: 963, - Time: 96.2, + ID: 963, + Time: 96.2, Weight: 0.000003, }, { - ID: 964, - Time: 96.3, + ID: 964, + Time: 96.3, Weight: 0.000003, }, { - ID: 965, - Time: 96.4, + ID: 965, + Time: 96.4, Weight: 0.000003, }, { - ID: 966, - Time: 96.5, + ID: 966, + Time: 96.5, Weight: 0.000003, }, { - ID: 967, - Time: 96.6, + ID: 967, + Time: 96.6, Weight: 0.000003, }, { - ID: 968, - Time: 96.7, + ID: 968, + Time: 96.7, Weight: 0.000003, }, { - ID: 969, - Time: 96.8, + ID: 969, + Time: 96.8, Weight: 0.000002, }, { - ID: 970, - Time: 96.9, + ID: 970, + Time: 96.9, Weight: 0.000002, }, { - ID: 971, - Time: 97, + ID: 971, + Time: 97, Weight: 0.000002, }, { - ID: 972, - Time: 97.1, + ID: 972, + Time: 97.1, Weight: 0.000002, }, { - ID: 973, - Time: 97.2, + ID: 973, + Time: 97.2, Weight: 0.000002, }, { - ID: 974, - Time: 97.3, + ID: 974, + Time: 97.3, Weight: 0.000002, }, { - ID: 975, - Time: 97.4, + ID: 975, + Time: 97.4, Weight: 0.000002, }, { - ID: 976, - Time: 97.5, + ID: 976, + Time: 97.5, Weight: 0.000002, }, { - ID: 977, - Time: 97.6, + ID: 977, + Time: 97.6, Weight: 0.000002, }, { - ID: 978, - Time: 97.7, + ID: 978, + Time: 97.7, Weight: 0.000002, }, { - ID: 979, - Time: 97.8, + ID: 979, + Time: 97.8, Weight: 0.000002, }, { - ID: 980, - Time: 97.9, + ID: 980, + Time: 97.9, Weight: 0.000002, }, { - ID: 981, - Time: 98, + ID: 981, + Time: 98, Weight: 0.000002, }, { - ID: 982, - Time: 98.1, + ID: 982, + Time: 98.1, Weight: 0.000002, }, { - ID: 983, - Time: 98.2, + ID: 983, + Time: 98.2, Weight: 0.000002, }, { - ID: 984, - Time: 98.3, + ID: 984, + Time: 98.3, Weight: 0.000002, }, { - ID: 985, - Time: 98.4, + ID: 985, + Time: 98.4, Weight: 0.000002, }, { - ID: 986, - Time: 98.5, + ID: 986, + Time: 98.5, Weight: 0.000002, }, { - ID: 987, - Time: 98.6, + ID: 987, + Time: 98.6, Weight: 0.000002, }, { - ID: 988, - Time: 98.7, + ID: 988, + Time: 98.7, Weight: 0.000002, }, { - ID: 989, - Time: 98.8, + ID: 989, + Time: 98.8, Weight: 0.000002, }, { - ID: 990, - Time: 98.9, + ID: 990, + Time: 98.9, Weight: 0.000002, }, { - ID: 991, - Time: 99, + ID: 991, + Time: 99, Weight: 0.000002, }, { - ID: 992, - Time: 99.1, + ID: 992, + Time: 99.1, Weight: 0.000002, }, { - ID: 993, - Time: 99.2, + ID: 993, + Time: 99.2, Weight: 0.000002, }, { - ID: 994, - Time: 99.3, + ID: 994, + Time: 99.3, Weight: 0.000002, }, { - ID: 995, - Time: 99.4, + ID: 995, + Time: 99.4, Weight: 0.000002, }, { - ID: 996, - Time: 99.5, + ID: 996, + Time: 99.5, Weight: 0.000002, }, { - ID: 997, - Time: 99.6, + ID: 997, + Time: 99.6, Weight: 0.000002, }, { - ID: 998, - Time: 99.7, + ID: 998, + Time: 99.7, Weight: 0.000002, }, { - ID: 999, - Time: 99.8, + ID: 999, + Time: 99.8, Weight: 0.000002, }, { - ID: 1000, - Time: 99.9, + ID: 1000, + Time: 99.9, Weight: 0.000002, }, { - ID: 1001, - Time: 100, + ID: 1001, + Time: 100, Weight: 0.00023, }, } @@ -5243,13 +5243,13 @@ func init() { TestSymbol = map[int64]*structs.TestSymbol{ 1: { - ID: 1, - Name: "xx", - IsWild: false, - Group: []int64{1}, - PayRate: []int64{0, 0, 0}, + ID: 1, + Name: "xx", + IsWild: false, + Group: []int64{1}, + PayRate: []int64{0, 0, 0}, ClientOrder: 1, - ClientDsc: "", + ClientDsc: "", }, } @@ -5259,4 +5259,4 @@ func init() { }, } -} +} \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/base/var.go b/gamesrv/slotspkg/internal/exported/excel2go/base/var.go index a846c37..9e1fb21 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/base/var.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/base/var.go @@ -4,223 +4,263 @@ package base import "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" var ( - CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{} - CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{} - CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{} - CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{} - CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{} - CashManiaFormation = []*structs.CashManiaFormation{} - CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{} - CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{} - CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{} - CashManiaOthers = []*structs.CashManiaOthers{} - CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{} - CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{} - CashManiaReelBaseSpinRange = [][]int64{} - CashManiaReelBaseSpinReel = [][]int64{} - CashManiaReelBaseSpinWeight = [][]float64{} - CashManiaSymbolBetRatio = []*structs.CashManiaSymbolBetRatio{} - CashManiaSymbol = map[int64]*structs.CashManiaSymbol{} - CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{} - CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{} - FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{} - FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{} - FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{} - FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{} - FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{} - FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{} - FortuneDragonFormation = []*structs.FortuneDragonFormation{} - FortuneDragonFreeMultiplier = []*structs.FortuneDragonFreeMultiplier{} - FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{} - FortuneDragonMapRTPMode = map[int64]*structs.FortuneDragonMapRTPMode{} - FortuneDragonOthers = []*structs.FortuneDragonOthers{} - FortuneDragonReelBaseSpinRange = [][]int64{} - FortuneDragonReelBaseSpinReel = [][]int64{} - FortuneDragonReelBaseSpinWeight = [][]float64{} - FortuneDragonReelFreeSpinRange = [][]int64{} - FortuneDragonReelFreeSpinReel = [][]int64{} - FortuneDragonReelFreeSpinWeight = [][]float64{} - FortuneDragonReelSureWinBaseSpinRange = [][]int64{} - FortuneDragonReelSureWinBaseSpinReel = [][]int64{} + CashManiaBetBetChangeList = map[int64]*structs.CashManiaBetBetChangeList{} + CashManiaBetBetLevel = map[int64]*structs.CashManiaBetBetLevel{} + CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{} + CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{} + CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{} + CashManiaFormation = []*structs.CashManiaFormation{} + CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{} + CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{} + CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{} + CashManiaOthers = []*structs.CashManiaOthers{} + CashManiaRandomItemWeight = []*structs.CashManiaRandomItemWeight{} + CashManiaRandomMidWeight = []*structs.CashManiaRandomMidWeight{} + CashManiaReelBaseSpinRange = [][]int64{} + CashManiaReelBaseSpinReel = [][]int64{} + CashManiaReelBaseSpinWeight = [][]float64{} + CashManiaSymbolBetRatio = []*structs.CashManiaSymbolBetRatio{} + CashManiaSymbol = map[int64]*structs.CashManiaSymbol{} + CashManiaWinItemWeight = []*structs.CashManiaWinItemWeight{} + CashManiaWinMidWeight = []*structs.CashManiaWinMidWeight{} + FortuneDragonBaseMultiplier = []*structs.FortuneDragonBaseMultiplier{} + FortuneDragonBetBetChangeList = map[int64]*structs.FortuneDragonBetBetChangeList{} + FortuneDragonBetBetLevel = map[int64]*structs.FortuneDragonBetBetLevel{} + FortuneDragonBetBetLine = map[int64]*structs.FortuneDragonBetBetLine{} + FortuneDragonBetBetSize = map[int64]*structs.FortuneDragonBetBetSize{} + FortuneDragonBetFirstBet = map[int64]*structs.FortuneDragonBetFirstBet{} + FortuneDragonFormation = []*structs.FortuneDragonFormation{} + FortuneDragonFreeMultiplier = []*structs.FortuneDragonFreeMultiplier{} + FortuneDragonFreeMultiplierCount = []*structs.FortuneDragonFreeMultiplierCount{} + FortuneDragonMapRTPMode = map[int64]*structs.FortuneDragonMapRTPMode{} + FortuneDragonOthers = []*structs.FortuneDragonOthers{} + FortuneDragonReelBaseSpinRange = [][]int64{} + FortuneDragonReelBaseSpinReel = [][]int64{} + FortuneDragonReelBaseSpinWeight = [][]float64{} + FortuneDragonReelFreeSpinRange = [][]int64{} + FortuneDragonReelFreeSpinReel = [][]int64{} + FortuneDragonReelFreeSpinWeight = [][]float64{} + FortuneDragonReelSureWinBaseSpinRange = [][]int64{} + FortuneDragonReelSureWinBaseSpinReel = [][]int64{} FortuneDragonReelSureWinBaseSpinWeight = [][]float64{} - FortuneDragonReelSureWinFreeSpinRange = [][]int64{} - FortuneDragonReelSureWinFreeSpinReel = [][]int64{} + FortuneDragonReelSureWinFreeSpinRange = [][]int64{} + FortuneDragonReelSureWinFreeSpinReel = [][]int64{} FortuneDragonReelSureWinFreeSpinWeight = [][]float64{} - FortuneDragonSymbolBetRatio = []*structs.FortuneDragonSymbolBetRatio{} - FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{} - FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{} - FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{} - FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{} - FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{} - FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{} - FortuneMouseFormation = []*structs.FortuneMouseFormation{} - FortuneMouseMapRTPMode = map[int64]*structs.FortuneMouseMapRTPMode{} - FortuneMouseOthers = []*structs.FortuneMouseOthers{} - FortuneMouseReelBaseSpinRange = [][]int64{} - FortuneMouseReelBaseSpinReel = [][]int64{} - FortuneMouseReelBaseSpinWeight = [][]float64{} - FortuneMouseReelReSpinRange = [][]int64{} - FortuneMouseReelReSpinReel = [][]int64{} - FortuneMouseReelReSpinWeight = [][]float64{} - FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{} - FortuneMouseSymbolBetRatio = []*structs.FortuneMouseSymbolBetRatio{} - FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{} - FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{} - FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{} - FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{} - FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{} - FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{} - FortuneOxFormation = []*structs.FortuneOxFormation{} - FortuneOxMapRTPMode = map[int64]*structs.FortuneOxMapRTPMode{} - FortuneOxOthers = []*structs.FortuneOxOthers{} - FortuneOxReelBaseSpinRange = [][]int64{} - FortuneOxReelBaseSpinReel = [][]int64{} - FortuneOxReelBaseSpinWeight = [][]float64{} - FortuneOxReelReSpinRange = [][]int64{} - FortuneOxReelReSpinReel = [][]int64{} - FortuneOxReelReSpinWeight = [][]float64{} - FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{} - FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{} - FortuneOxSymbolBetRatio = []*structs.FortuneOxSymbolBetRatio{} - FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{} - FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{} - FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{} - FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{} - FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{} - FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{} - FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{} - FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{} - FortuneRabbitFormation = []*structs.FortuneRabbitFormation{} - FortuneRabbitMapRTPMode = map[int64]*structs.FortuneRabbitMapRTPMode{} - FortuneRabbitOthers = []*structs.FortuneRabbitOthers{} - FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{} - FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{} - FortuneRabbitReelBaseSpinRange = [][]int64{} - FortuneRabbitReelBaseSpinReel = [][]int64{} - FortuneRabbitReelBaseSpinWeight = [][]float64{} - FortuneRabbitReelFreeSpinRange = [][]int64{} - FortuneRabbitReelFreeSpinReel = [][]int64{} - FortuneRabbitReelFreeSpinWeight = [][]float64{} - FortuneRabbitSymbolBetRatio = []*structs.FortuneRabbitSymbolBetRatio{} - FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{} - FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{} - FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{} - FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{} - FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{} - FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{} - FortuneTigerFormation = []*structs.FortuneTigerFormation{} - FortuneTigerMapRTPMode = map[int64]*structs.FortuneTigerMapRTPMode{} - FortuneTigerOthers = []*structs.FortuneTigerOthers{} - FortuneTigerReelBaseSpinRange = [][]int64{} - FortuneTigerReelBaseSpinReel = [][]int64{} - FortuneTigerReelBaseSpinWeight = [][]float64{} - FortuneTigerReelReSpinRange = [][]int64{} - FortuneTigerReelReSpinReel = [][]int64{} - FortuneTigerReelReSpinWeight = [][]float64{} - FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{} - FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{} - FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{} - MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{} - MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{} - MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{} - MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{} - MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{} - MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{} - MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{} - MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{} - MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{} - MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{} - MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{} - MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{} - MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{} - MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{} - MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{} - MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{} - MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{} - MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{} - MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{} - MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{} - MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{} - MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{} - MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{} - MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{} - MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{} - MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{} - MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{} - MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{} - MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{} - MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{} - MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{} - MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{} - MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{} - MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{} - MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{} - MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{} - MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{} - MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{} - MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{} - MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{} - MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{} - MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{} - MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{} - MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{} - MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{} - MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{} - MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{} - MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{} - MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{} - MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{} - MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{} - MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{} - MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{} - MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{} - MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{} - MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{} - MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{} - MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{} - MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{} - MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{} - MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{} - MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{} - MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{} - MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{} - MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{} - MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{} - MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{} - MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{} - MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{} - MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{} - MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{} - MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{} - MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{} - MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{} - MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{} - MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{} - MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{} - MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{} - MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{} - MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{} - MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{} - MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{} - MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{} - MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{} - MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{} - OptGroup = []*structs.OptGroup{} - PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{} - PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{} - SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{} - SimulatorMultiLevel = []*structs.SimulatorMultiLevel{} - TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{} - TestBetBetLevel = map[int64]*structs.TestBetBetLevel{} - TestBetBetLine = map[int64]*structs.TestBetBetLine{} - TestBetBetSize = map[int64]*structs.TestBetBetSize{} - TestBetFirstBet = map[int64]*structs.TestBetFirstBet{} - TestFormation = []*structs.TestFormation{} - TestMapRTPMode = map[int64]*structs.TestMapRTPMode{} - TestRandomWeight = []*structs.TestRandomWeight{} - TestReelBaseSpinRange = [][]int64{} - TestReelBaseSpinReel = [][]int64{} - TestReelBaseSpinWeight = [][]float64{} - TestSymbolBetRatio = []*structs.TestSymbolBetRatio{} - TestSymbol = map[int64]*structs.TestSymbol{} -) + FortuneDragonSymbolBetRatio = []*structs.FortuneDragonSymbolBetRatio{} + FortuneDragonSymbol = map[int64]*structs.FortuneDragonSymbol{} + FortuneMouseBetBetChangeList = map[int64]*structs.FortuneMouseBetBetChangeList{} + FortuneMouseBetBetLevel = map[int64]*structs.FortuneMouseBetBetLevel{} + FortuneMouseBetBetLine = map[int64]*structs.FortuneMouseBetBetLine{} + FortuneMouseBetBetSize = map[int64]*structs.FortuneMouseBetBetSize{} + FortuneMouseBetFirstBet = map[int64]*structs.FortuneMouseBetFirstBet{} + FortuneMouseFormation = []*structs.FortuneMouseFormation{} + FortuneMouseMapRTPMode = map[int64]*structs.FortuneMouseMapRTPMode{} + FortuneMouseOthers = []*structs.FortuneMouseOthers{} + FortuneMouseReelBaseSpinRange = [][]int64{} + FortuneMouseReelBaseSpinReel = [][]int64{} + FortuneMouseReelBaseSpinWeight = [][]float64{} + FortuneMouseReelReSpinRange = [][]int64{} + FortuneMouseReelReSpinReel = [][]int64{} + FortuneMouseReelReSpinWeight = [][]float64{} + FortuneMouseSuperStackWeight = []*structs.FortuneMouseSuperStackWeight{} + FortuneMouseSymbolBetRatio = []*structs.FortuneMouseSymbolBetRatio{} + FortuneMouseSymbol = map[int64]*structs.FortuneMouseSymbol{} + FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{} + FortuneOxBetBetLevel = map[int64]*structs.FortuneOxBetBetLevel{} + FortuneOxBetBetLine = map[int64]*structs.FortuneOxBetBetLine{} + FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{} + FortuneOxBetFirstBet = map[int64]*structs.FortuneOxBetFirstBet{} + FortuneOxFormation = []*structs.FortuneOxFormation{} + FortuneOxMapRTPMode = map[int64]*structs.FortuneOxMapRTPMode{} + FortuneOxOthers = []*structs.FortuneOxOthers{} + FortuneOxReelBaseSpinRange = [][]int64{} + FortuneOxReelBaseSpinReel = [][]int64{} + FortuneOxReelBaseSpinWeight = [][]float64{} + FortuneOxReelReSpinRange = [][]int64{} + FortuneOxReelReSpinReel = [][]int64{} + FortuneOxReelReSpinWeight = [][]float64{} + FortuneOxSuperStack1Weight = []*structs.FortuneOxSuperStack1Weight{} + FortuneOxSuperStack2Weight = []*structs.FortuneOxSuperStack2Weight{} + FortuneOxSymbolBetRatio = []*structs.FortuneOxSymbolBetRatio{} + FortuneOxSymbol = map[int64]*structs.FortuneOxSymbol{} + FortuneRabbitBetBetChangeList = map[int64]*structs.FortuneRabbitBetBetChangeList{} + FortuneRabbitBetBetLevel = map[int64]*structs.FortuneRabbitBetBetLevel{} + FortuneRabbitBetBetLine = map[int64]*structs.FortuneRabbitBetBetLine{} + FortuneRabbitBetBetSize = map[int64]*structs.FortuneRabbitBetBetSize{} + FortuneRabbitBetFirstBet = map[int64]*structs.FortuneRabbitBetFirstBet{} + FortuneRabbitCashPrizeWeight = []*structs.FortuneRabbitCashPrizeWeight{} + FortuneRabbitForceCashCountWeight = []*structs.FortuneRabbitForceCashCountWeight{} + FortuneRabbitFormation = []*structs.FortuneRabbitFormation{} + FortuneRabbitMapRTPMode = map[int64]*structs.FortuneRabbitMapRTPMode{} + FortuneRabbitOthers = []*structs.FortuneRabbitOthers{} + FortuneRabbitOthersRTP120 = []*structs.FortuneRabbitOthersRTP120{} + FortuneRabbitOthersRTP80 = []*structs.FortuneRabbitOthersRTP80{} + FortuneRabbitReelBaseSpinRange = [][]int64{} + FortuneRabbitReelBaseSpinReel = [][]int64{} + FortuneRabbitReelBaseSpinWeight = [][]float64{} + FortuneRabbitReelFreeSpinRange = [][]int64{} + FortuneRabbitReelFreeSpinReel = [][]int64{} + FortuneRabbitReelFreeSpinWeight = [][]float64{} + FortuneRabbitSymbolBetRatio = []*structs.FortuneRabbitSymbolBetRatio{} + FortuneRabbitSymbol = map[int64]*structs.FortuneRabbitSymbol{} + FortuneTigerBetBetChangeList = map[int64]*structs.FortuneTigerBetBetChangeList{} + FortuneTigerBetBetLevel = map[int64]*structs.FortuneTigerBetBetLevel{} + FortuneTigerBetBetLine = map[int64]*structs.FortuneTigerBetBetLine{} + FortuneTigerBetBetSize = map[int64]*structs.FortuneTigerBetBetSize{} + FortuneTigerBetFirstBet = map[int64]*structs.FortuneTigerBetFirstBet{} + FortuneTigerFormation = []*structs.FortuneTigerFormation{} + FortuneTigerMapRTPMode = map[int64]*structs.FortuneTigerMapRTPMode{} + FortuneTigerOthers = []*structs.FortuneTigerOthers{} + FortuneTigerReelBaseSpinRange = [][]int64{} + FortuneTigerReelBaseSpinReel = [][]int64{} + FortuneTigerReelBaseSpinWeight = [][]float64{} + FortuneTigerReelReSpinRange = [][]int64{} + FortuneTigerReelReSpinReel = [][]int64{} + FortuneTigerReelReSpinWeight = [][]float64{} + FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{} + FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{} + FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{} + GatesOfOlympusBetBetChangeList = map[int64]*structs.GatesOfOlympusBetBetChangeList{} + GatesOfOlympusBetBetLevel = map[int64]*structs.GatesOfOlympusBetBetLevel{} + GatesOfOlympusBetBetLine = map[int64]*structs.GatesOfOlympusBetBetLine{} + GatesOfOlympusBetBetSize = map[int64]*structs.GatesOfOlympusBetBetSize{} + GatesOfOlympusBetFirstBet = map[int64]*structs.GatesOfOlympusBetFirstBet{} + GatesOfOlympusFormation = []*structs.GatesOfOlympusFormation{} + GatesOfOlympusMapRTPMode = map[int64]*structs.GatesOfOlympusMapRTPMode{} + GatesOfOlympusMultiplier = []*structs.GatesOfOlympusMultiplier{} + GatesOfOlympusMultiplierKeyID = map[int64]*structs.GatesOfOlympusMultiplierKeyID{} + GatesOfOlympusReelBaseSpin1Range = [][]int64{} + GatesOfOlympusReelBaseSpin1Reel = [][]int64{} + GatesOfOlympusReelBaseSpin1Weight = [][]float64{} + GatesOfOlympusReelBaseSpin2Range = [][]int64{} + GatesOfOlympusReelBaseSpin2Reel = [][]int64{} + GatesOfOlympusReelBaseSpin2Weight = [][]float64{} + GatesOfOlympusReelBaseSpin3Range = [][]int64{} + GatesOfOlympusReelBaseSpin3Reel = [][]int64{} + GatesOfOlympusReelBaseSpin3Weight = [][]float64{} + GatesOfOlympusReelBaseSpin7Range = [][]int64{} + GatesOfOlympusReelBaseSpin7Reel = [][]int64{} + GatesOfOlympusReelBaseSpin7Weight = [][]float64{} + GatesOfOlympusReelBaseSpin8Range = [][]int64{} + GatesOfOlympusReelBaseSpin8Reel = [][]int64{} + GatesOfOlympusReelBaseSpin8Weight = [][]float64{} + GatesOfOlympusReelBaseSpinRange = [][]int64{} + GatesOfOlympusReelBaseSpinReel = [][]int64{} + GatesOfOlympusReelBaseSpinWeight = [][]float64{} + GatesOfOlympusReelChoose = []*structs.GatesOfOlympusReelChoose{} + GatesOfOlympusReelFreeSpin4Range = [][]int64{} + GatesOfOlympusReelFreeSpin4Reel = [][]int64{} + GatesOfOlympusReelFreeSpin4Weight = [][]float64{} + GatesOfOlympusReelFreeSpin5Range = [][]int64{} + GatesOfOlympusReelFreeSpin5Reel = [][]int64{} + GatesOfOlympusReelFreeSpin5Weight = [][]float64{} + GatesOfOlympusReelFreeSpinRange = [][]int64{} + GatesOfOlympusReelFreeSpinReel = [][]int64{} + GatesOfOlympusReelFreeSpinWeight = [][]float64{} + GatesOfOlympusScatter = map[int64]*structs.GatesOfOlympusScatter{} + GatesOfOlympusSymbolBetRatio = []*structs.GatesOfOlympusSymbolBetRatio{} + GatesOfOlympusSymbol = map[int64]*structs.GatesOfOlympusSymbol{} + MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{} + MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{} + MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{} + MatrixFeaturesForm25X1TypeA = []*structs.MatrixFeaturesForm25X1TypeA{} + MatrixFeaturesForm30X1TypeA = []*structs.MatrixFeaturesForm30X1TypeA{} + MatrixFeaturesForm35X1TypeA = []*structs.MatrixFeaturesForm35X1TypeA{} + MatrixFeaturesForm40X1 = []*structs.MatrixFeaturesForm40X1{} + MatrixFeaturesForm40X1TypeA = []*structs.MatrixFeaturesForm40X1TypeA{} + MatrixFeaturesForm7X1TypeA = []*structs.MatrixFeaturesForm7X1TypeA{} + MatrixLine100Form12X5TypeA = []*structs.MatrixLine100Form12X5TypeA{} + MatrixLine100Form6X5TypeA = []*structs.MatrixLine100Form6X5TypeA{} + MatrixLine10Form343TypeA = []*structs.MatrixLine10Form343TypeA{} + MatrixLine10Form3X5TypeA = []*structs.MatrixLine10Form3X5TypeA{} + MatrixLine1Form3X3TypeA = []*structs.MatrixLine1Form3X3TypeA{} + MatrixLine1Form3X3TypeB = []*structs.MatrixLine1Form3X3TypeB{} + MatrixLine1Form5X5TypeA = []*structs.MatrixLine1Form5X5TypeA{} + MatrixLine20Form3X5TypeA = []*structs.MatrixLine20Form3X5TypeA{} + MatrixLine25Form36666TypeA = []*structs.MatrixLine25Form36666TypeA{} + MatrixLine25Form3X5TypeA = []*structs.MatrixLine25Form3X5TypeA{} + MatrixLine25Form3X5TypeB = []*structs.MatrixLine25Form3X5TypeB{} + MatrixLine25Form3X5TypeC = []*structs.MatrixLine25Form3X5TypeC{} + MatrixLine25Form3X5TypeD = []*structs.MatrixLine25Form3X5TypeD{} + MatrixLine25Form3X5TypeE = []*structs.MatrixLine25Form3X5TypeE{} + MatrixLine30Form3X5TypeA = []*structs.MatrixLine30Form3X5TypeA{} + MatrixLine30Form3X5TypeB = []*structs.MatrixLine30Form3X5TypeB{} + MatrixLine30Form3X5TypeC = []*structs.MatrixLine30Form3X5TypeC{} + MatrixLine30Form3X5TypeD = []*structs.MatrixLine30Form3X5TypeD{} + MatrixLine30Form3X5TypeE = []*structs.MatrixLine30Form3X5TypeE{} + MatrixLine30Form3X6TypeA = []*structs.MatrixLine30Form3X6TypeA{} + MatrixLine30Form4X5TypeA = []*structs.MatrixLine30Form4X5TypeA{} + MatrixLine30Form4X5TypeB = []*structs.MatrixLine30Form4X5TypeB{} + MatrixLine3Form3X3TypeA = []*structs.MatrixLine3Form3X3TypeA{} + MatrixLine40Form34543TypeA = []*structs.MatrixLine40Form34543TypeA{} + MatrixLine40Form3X5TypeA = []*structs.MatrixLine40Form3X5TypeA{} + MatrixLine40Form3X5TypeB = []*structs.MatrixLine40Form3X5TypeB{} + MatrixLine40Form3X5TypeC = []*structs.MatrixLine40Form3X5TypeC{} + MatrixLine40Form3X5TypeD = []*structs.MatrixLine40Form3X5TypeD{} + MatrixLine40Form4X5TypeA = []*structs.MatrixLine40Form4X5TypeA{} + MatrixLine40Form4X5TypeB = []*structs.MatrixLine40Form4X5TypeB{} + MatrixLine40Form4X5TypeC = []*structs.MatrixLine40Form4X5TypeC{} + MatrixLine40Form4X6TypeA = []*structs.MatrixLine40Form4X6TypeA{} + MatrixLine50Form3X5TypeA = []*structs.MatrixLine50Form3X5TypeA{} + MatrixLine50Form3X5TypeB = []*structs.MatrixLine50Form3X5TypeB{} + MatrixLine50Form3X5TypeC = []*structs.MatrixLine50Form3X5TypeC{} + MatrixLine50Form3X5TypeD = []*structs.MatrixLine50Form3X5TypeD{} + MatrixLine50Form3X5TypeE = []*structs.MatrixLine50Form3X5TypeE{} + MatrixLine50Form3X5TypeF = []*structs.MatrixLine50Form3X5TypeF{} + MatrixLine50Form3X5TypeG = []*structs.MatrixLine50Form3X5TypeG{} + MatrixLine50Form3X5TypeH = []*structs.MatrixLine50Form3X5TypeH{} + MatrixLine50Form45454TypeA = []*structs.MatrixLine50Form45454TypeA{} + MatrixLine50Form4X5TypeA = []*structs.MatrixLine50Form4X5TypeA{} + MatrixLine50Form4X5TypeB = []*structs.MatrixLine50Form4X5TypeB{} + MatrixLine50Form4X5TypeC = []*structs.MatrixLine50Form4X5TypeC{} + MatrixLine50Form4X5TypeD = []*structs.MatrixLine50Form4X5TypeD{} + MatrixLine50Form4X5TypeE = []*structs.MatrixLine50Form4X5TypeE{} + MatrixLine50Form4X5TypeF = []*structs.MatrixLine50Form4X5TypeF{} + MatrixLine50Form4X6TypeA = []*structs.MatrixLine50Form4X6TypeA{} + MatrixLine50Form5X5TypeA = []*structs.MatrixLine50Form5X5TypeA{} + MatrixLine50Form5X5TypeB = []*structs.MatrixLine50Form5X5TypeB{} + MatrixLine50Form5X5TypeC = []*structs.MatrixLine50Form5X5TypeC{} + MatrixLine50Form6X5TypeA = []*structs.MatrixLine50Form6X5TypeA{} + MatrixLine5Form3X3TypeA = []*structs.MatrixLine5Form3X3TypeA{} + MatrixLine5Form3X3TypeB = []*structs.MatrixLine5Form3X3TypeB{} + MatrixLine60Form33633TypeA = []*structs.MatrixLine60Form33633TypeA{} + MatrixLine60Form8X5TypeA = []*structs.MatrixLine60Form8X5TypeA{} + MatrixLine65Form6X5TypeA = []*structs.MatrixLine65Form6X5TypeA{} + MatrixLine70Form9X5TypeA = []*structs.MatrixLine70Form9X5TypeA{} + MatrixLine75Form5X6TypeA = []*structs.MatrixLine75Form5X6TypeA{} + MatrixLine75Form6X5TypeA = []*structs.MatrixLine75Form6X5TypeA{} + MatrixLine80Form10X5TypeA = []*structs.MatrixLine80Form10X5TypeA{} + MatrixLine80Form3X5TypeA = []*structs.MatrixLine80Form3X5TypeA{} + MatrixLine80Form4X6TypeA = []*structs.MatrixLine80Form4X6TypeA{} + MatrixLine80Form7X5TypeA = []*structs.MatrixLine80Form7X5TypeA{} + MatrixLine90Form11X5TypeA = []*structs.MatrixLine90Form11X5TypeA{} + MatrixLine95Form8X5TypeA = []*structs.MatrixLine95Form8X5TypeA{} + MatrixMatchForm7X7TypeA = []*structs.MatrixMatchForm7X7TypeA{} + MatrixSameForm5X6TypeA = []*structs.MatrixSameForm5X6TypeA{} + MatrixSameForm5X6TypeB = []*structs.MatrixSameForm5X6TypeB{} + MatrixWaysForm333331 = []*structs.MatrixWaysForm333331{} + MatrixWaysForm33555 = []*structs.MatrixWaysForm33555{} + MatrixWaysForm344444 = []*structs.MatrixWaysForm344444{} + MatrixWaysForm3X5TypeA = []*structs.MatrixWaysForm3X5TypeA{} + MatrixWaysForm44668 = []*structs.MatrixWaysForm44668{} + MatrixWaysForm4X5TypeA = []*structs.MatrixWaysForm4X5TypeA{} + MatrixWaysForm4X5TypeB = []*structs.MatrixWaysForm4X5TypeB{} + OptGroup = []*structs.OptGroup{} + PrizeModelPrizeModelTypeA = map[int64]*structs.PrizeModelPrizeModelTypeA{} + PrizeModelPrizeModelTypeB = map[int64]*structs.PrizeModelPrizeModelTypeB{} + SimulatorFSMultiLevel = []*structs.SimulatorFSMultiLevel{} + SimulatorMultiLevel = []*structs.SimulatorMultiLevel{} + TestBetBetChangeList = map[int64]*structs.TestBetBetChangeList{} + TestBetBetLevel = map[int64]*structs.TestBetBetLevel{} + TestBetBetLine = map[int64]*structs.TestBetBetLine{} + TestBetBetSize = map[int64]*structs.TestBetBetSize{} + TestBetFirstBet = map[int64]*structs.TestBetFirstBet{} + TestFormation = []*structs.TestFormation{} + TestMapRTPMode = map[int64]*structs.TestMapRTPMode{} + TestRandomWeight = []*structs.TestRandomWeight{} + TestReelBaseSpinRange = [][]int64{} + TestReelBaseSpinReel = [][]int64{} + TestReelBaseSpinWeight = [][]float64{} + TestSymbolBetRatio = []*structs.TestSymbolBetRatio{} + TestSymbol = map[int64]*structs.TestSymbol{} +) \ No newline at end of file diff --git a/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go b/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go index 4862c11..eaa44d3 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/storage/storage.go @@ -179,6 +179,46 @@ func StoragesLoading(data map[string]string) { Load(data, "Base.FortuneTiger/SuperStack.Weight", &base.FortuneTigerSuperStackWeight) Load(data, "Base.FortuneTiger/Symbol.BetRatio", &base.FortuneTigerSymbolBetRatio) Load(data, "Base.FortuneTiger/Symbol.Default", &base.FortuneTigerSymbol) + Load(data, "Base.GatesOfOlympus/Bet.BetChangeList", &base.GatesOfOlympusBetBetChangeList) + Load(data, "Base.GatesOfOlympus/Bet.BetLevel", &base.GatesOfOlympusBetBetLevel) + Load(data, "Base.GatesOfOlympus/Bet.BetLine", &base.GatesOfOlympusBetBetLine) + Load(data, "Base.GatesOfOlympus/Bet.BetSize", &base.GatesOfOlympusBetBetSize) + Load(data, "Base.GatesOfOlympus/Bet.FirstBet", &base.GatesOfOlympusBetFirstBet) + Load(data, "Base.GatesOfOlympus/Formation.Default", &base.GatesOfOlympusFormation) + Load(data, "Base.GatesOfOlympus/Map.RTPMode", &base.GatesOfOlympusMapRTPMode) + Load(data, "Base.GatesOfOlympus/Multiplier.Default", &base.GatesOfOlympusMultiplier) + Load(data, "Base.GatesOfOlympus/Multiplier.Default/ID", &base.GatesOfOlympusMultiplierKeyID) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Range", &base.GatesOfOlympusReelBaseSpin1Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Reel", &base.GatesOfOlympusReelBaseSpin1Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin1.Weight", &base.GatesOfOlympusReelBaseSpin1Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Range", &base.GatesOfOlympusReelBaseSpin2Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Reel", &base.GatesOfOlympusReelBaseSpin2Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin2.Weight", &base.GatesOfOlympusReelBaseSpin2Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Range", &base.GatesOfOlympusReelBaseSpin3Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Reel", &base.GatesOfOlympusReelBaseSpin3Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin3.Weight", &base.GatesOfOlympusReelBaseSpin3Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Range", &base.GatesOfOlympusReelBaseSpin7Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Reel", &base.GatesOfOlympusReelBaseSpin7Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin7.Weight", &base.GatesOfOlympusReelBaseSpin7Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Range", &base.GatesOfOlympusReelBaseSpin8Range) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Reel", &base.GatesOfOlympusReelBaseSpin8Reel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin8.Weight", &base.GatesOfOlympusReelBaseSpin8Weight) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Range", &base.GatesOfOlympusReelBaseSpinRange) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Reel", &base.GatesOfOlympusReelBaseSpinReel) + Load(data, "Base.GatesOfOlympus/ReelBaseSpin.Weight", &base.GatesOfOlympusReelBaseSpinWeight) + Load(data, "Base.GatesOfOlympus/ReelChoose.Default", &base.GatesOfOlympusReelChoose) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Range", &base.GatesOfOlympusReelFreeSpin4Range) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Reel", &base.GatesOfOlympusReelFreeSpin4Reel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin4.Weight", &base.GatesOfOlympusReelFreeSpin4Weight) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Range", &base.GatesOfOlympusReelFreeSpin5Range) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Reel", &base.GatesOfOlympusReelFreeSpin5Reel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin5.Weight", &base.GatesOfOlympusReelFreeSpin5Weight) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Range", &base.GatesOfOlympusReelFreeSpinRange) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Reel", &base.GatesOfOlympusReelFreeSpinReel) + Load(data, "Base.GatesOfOlympus/ReelFreeSpin.Weight", &base.GatesOfOlympusReelFreeSpinWeight) + Load(data, "Base.GatesOfOlympus/Scatter.Default", &base.GatesOfOlympusScatter) + Load(data, "Base.GatesOfOlympus/Symbol.BetRatio", &base.GatesOfOlympusSymbolBetRatio) + Load(data, "Base.GatesOfOlympus/Symbol.Default", &base.GatesOfOlympusSymbol) Load(data, "Base.Matrix/FeaturesForm15X1TypeA.Default", &base.MatrixFeaturesForm15X1TypeA) Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA) Load(data, "Base.Matrix/FeaturesForm20X1TypeA.Default", &base.MatrixFeaturesForm20X1TypeA) @@ -401,6 +441,46 @@ func StoragesMapping() { Set("Base", "FortuneTiger/SuperStack", "Weight", base.FortuneTigerSuperStackWeight) Set("Base", "FortuneTiger/Symbol", "BetRatio", base.FortuneTigerSymbolBetRatio) Set("Base", "FortuneTiger/Symbol", "Default", base.FortuneTigerSymbol) + Set("Base", "GatesOfOlympus/Bet", "BetChangeList", base.GatesOfOlympusBetBetChangeList) + Set("Base", "GatesOfOlympus/Bet", "BetLevel", base.GatesOfOlympusBetBetLevel) + Set("Base", "GatesOfOlympus/Bet", "BetLine", base.GatesOfOlympusBetBetLine) + Set("Base", "GatesOfOlympus/Bet", "BetSize", base.GatesOfOlympusBetBetSize) + Set("Base", "GatesOfOlympus/Bet", "FirstBet", base.GatesOfOlympusBetFirstBet) + Set("Base", "GatesOfOlympus/Formation", "Default", base.GatesOfOlympusFormation) + Set("Base", "GatesOfOlympus/Map", "RTPMode", base.GatesOfOlympusMapRTPMode) + Set("Base", "GatesOfOlympus/Multiplier", "Default", base.GatesOfOlympusMultiplier) + Set("Base", "GatesOfOlympus/Multiplier", "Default/ID", base.GatesOfOlympusMultiplierKeyID) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Range", base.GatesOfOlympusReelBaseSpin1Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Reel", base.GatesOfOlympusReelBaseSpin1Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin1", "Weight", base.GatesOfOlympusReelBaseSpin1Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Range", base.GatesOfOlympusReelBaseSpin2Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Reel", base.GatesOfOlympusReelBaseSpin2Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin2", "Weight", base.GatesOfOlympusReelBaseSpin2Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Range", base.GatesOfOlympusReelBaseSpin3Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Reel", base.GatesOfOlympusReelBaseSpin3Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin3", "Weight", base.GatesOfOlympusReelBaseSpin3Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Range", base.GatesOfOlympusReelBaseSpin7Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Reel", base.GatesOfOlympusReelBaseSpin7Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin7", "Weight", base.GatesOfOlympusReelBaseSpin7Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Range", base.GatesOfOlympusReelBaseSpin8Range) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Reel", base.GatesOfOlympusReelBaseSpin8Reel) + Set("Base", "GatesOfOlympus/ReelBaseSpin8", "Weight", base.GatesOfOlympusReelBaseSpin8Weight) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Range", base.GatesOfOlympusReelBaseSpinRange) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Reel", base.GatesOfOlympusReelBaseSpinReel) + Set("Base", "GatesOfOlympus/ReelBaseSpin", "Weight", base.GatesOfOlympusReelBaseSpinWeight) + Set("Base", "GatesOfOlympus/ReelChoose", "Default", base.GatesOfOlympusReelChoose) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Range", base.GatesOfOlympusReelFreeSpin4Range) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Reel", base.GatesOfOlympusReelFreeSpin4Reel) + Set("Base", "GatesOfOlympus/ReelFreeSpin4", "Weight", base.GatesOfOlympusReelFreeSpin4Weight) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Range", base.GatesOfOlympusReelFreeSpin5Range) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Reel", base.GatesOfOlympusReelFreeSpin5Reel) + Set("Base", "GatesOfOlympus/ReelFreeSpin5", "Weight", base.GatesOfOlympusReelFreeSpin5Weight) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Range", base.GatesOfOlympusReelFreeSpinRange) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Reel", base.GatesOfOlympusReelFreeSpinReel) + Set("Base", "GatesOfOlympus/ReelFreeSpin", "Weight", base.GatesOfOlympusReelFreeSpinWeight) + Set("Base", "GatesOfOlympus/Scatter", "Default", base.GatesOfOlympusScatter) + Set("Base", "GatesOfOlympus/Symbol", "BetRatio", base.GatesOfOlympusSymbolBetRatio) + Set("Base", "GatesOfOlympus/Symbol", "Default", base.GatesOfOlympusSymbol) Set("Base", "Matrix/FeaturesForm15X1TypeA", "Default", base.MatrixFeaturesForm15X1TypeA) Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA) Set("Base", "Matrix/FeaturesForm20X1TypeA", "Default", base.MatrixFeaturesForm20X1TypeA) @@ -540,6 +620,12 @@ func LinksMapping() { Link("FortuneTiger/ReelBaseSpin", "Weight/1", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/2", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/3", "FortuneTiger/ReelBaseSpin", "Weight") + Link("GatesOfOlympus/MatrixSameForm5X6TypeA", "Default", "Matrix/SameForm5X6TypeA", "Default") + Link("GatesOfOlympus/MatrixSameForm5X6TypeB", "Default", "Matrix/SameForm5X6TypeB", "Default") + Link("GatesOfOlympus/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/1", "GatesOfOlympus/ReelBaseSpin1", "Weight") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/2", "GatesOfOlympus/ReelBaseSpin1", "Weight") + Link("GatesOfOlympus/ReelBaseSpin1", "Weight/3", "GatesOfOlympus/ReelBaseSpin1", "Weight") Link("Test/MatrixLine1Form3X3TypeA", "Default", "Matrix/Line1Form3X3TypeA", "Default") Link("Test/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default") Link("Test/ReelBaseSpin", "Weight/1", "Test/ReelBaseSpin", "Weight") @@ -636,3 +722,4 @@ func Load(dataMap map[string]string, name string, v interface{}) { panic(err) } } + diff --git a/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go b/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go index a2d3e57..501a0e7 100644 --- a/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go +++ b/gamesrv/slotspkg/internal/exported/excel2go/structs/structs.go @@ -172,6 +172,19 @@ type ( FreeSpinCount int64 MaxWin int64 } + // GatesOfOlympusMultiplier comment + GatesOfOlympusMultiplier struct { + Multiple int64 + ID int64 + Weights []int64 + } + // GatesOfOlympusReelChoose comment + GatesOfOlympusReelChoose struct { + ID int64 + IsFreeSpin bool + NodeType string + Weights []int64 + } // JackpotPrize comment JackpotPrize struct { PrizeType int64 @@ -521,6 +534,42 @@ type ( // FortuneTigerSymbolBetRatio comment FortuneTigerSymbolBetRatio = SymbolBetRatio + // GatesOfOlympusBetBetChangeList comment + GatesOfOlympusBetBetChangeList = BetChangeList + + // GatesOfOlympusBetBetLevel comment + GatesOfOlympusBetBetLevel = BetLevel + + // GatesOfOlympusBetBetLine comment + GatesOfOlympusBetBetLine = BetLine + + // GatesOfOlympusBetBetSize comment + GatesOfOlympusBetBetSize = BetSize + + // GatesOfOlympusBetFirstBet comment + GatesOfOlympusBetFirstBet = FirstBet + + // GatesOfOlympusFormation comment + GatesOfOlympusFormation = Formation + + // GatesOfOlympusMapRTPMode comment + GatesOfOlympusMapRTPMode = MapRTPMode + + // GatesOfOlympusMapRTPModeTypeWeight comment + GatesOfOlympusMapRTPModeTypeWeight = MapRTPModeTypeWeight + + // GatesOfOlympusMultiplierKeyID comment + GatesOfOlympusMultiplierKeyID = GatesOfOlympusMultiplier + + // GatesOfOlympusScatter comment + GatesOfOlympusScatter = Scatter + + // GatesOfOlympusSymbol comment + GatesOfOlympusSymbol = Symbol + + // GatesOfOlympusSymbolBetRatio comment + GatesOfOlympusSymbolBetRatio = SymbolBetRatio + // MatrixFeaturesForm15X1TypeA comment MatrixFeaturesForm15X1TypeA = Matrix diff --git a/gamesrv/slotspkg/internal/generic/key/theme.go b/gamesrv/slotspkg/internal/generic/key/theme.go index 8eefc7a..53c9f09 100644 --- a/gamesrv/slotspkg/internal/generic/key/theme.go +++ b/gamesrv/slotspkg/internal/generic/key/theme.go @@ -1,13 +1,14 @@ package key const ( - FortuneTiger = "FortuneTiger" - FortuneDragon = "FortuneDragon" - FortuneRabbit = "FortuneRabbit" - FortuneOx = "FortuneOx" - FortuneMouse = "FortuneMouse" - CashMania = "CashMania" - Test = "Test" + FortuneTiger = "FortuneTiger" + FortuneDragon = "FortuneDragon" + FortuneRabbit = "FortuneRabbit" + FortuneOx = "FortuneOx" + FortuneMouse = "FortuneMouse" + CashMania = "CashMania" + GatesOfOlympus = "GatesOfOlympus" + Test = "Test" ) const ( GameId_Min uint = iota @@ -17,28 +18,31 @@ const ( GameId_OX GameId_Mouse GameId_Cash_Mania + GameId_GatesOfOlympus GameId_Max GameId_Test = 999 ) var GameMap = map[uint]string{ - GameId_Tiger: FortuneTiger, - GameId_Dragon: FortuneDragon, - GameId_Rabbit: FortuneRabbit, - GameId_OX: FortuneOx, - GameId_Mouse: FortuneMouse, - GameId_Cash_Mania: CashMania, - GameId_Test: Test, + GameId_Tiger: FortuneTiger, + GameId_Dragon: FortuneDragon, + GameId_Rabbit: FortuneRabbit, + GameId_OX: FortuneOx, + GameId_Mouse: FortuneMouse, + GameId_Cash_Mania: CashMania, + GameId_GatesOfOlympus: GatesOfOlympus, + GameId_Test: Test, } var GameMapTheme = map[string]uint{ - FortuneTiger: GameId_Tiger, - FortuneDragon: GameId_Dragon, - FortuneRabbit: GameId_Rabbit, - FortuneOx: GameId_OX, - FortuneMouse: GameId_Mouse, - CashMania: GameId_Cash_Mania, - Test: GameId_Test, + FortuneTiger: GameId_Tiger, + FortuneDragon: GameId_Dragon, + FortuneRabbit: GameId_Rabbit, + FortuneOx: GameId_OX, + FortuneMouse: GameId_Mouse, + CashMania: GameId_Cash_Mania, + GatesOfOlympus: GameId_GatesOfOlympus, + Test: GameId_Test, } var GameKeyMap = map[int64]uint{ 0: GameId_Min, @@ -47,5 +51,7 @@ var GameKeyMap = map[int64]uint{ 310: GameId_Rabbit, 311: GameId_OX, 312: GameId_Mouse, + 313: GameId_Cash_Mania, + 314: GameId_GatesOfOlympus, 999: GameId_Max, } diff --git a/gamesrv/slotspkg/internal/module/shared/types.go b/gamesrv/slotspkg/internal/module/shared/types.go index c275ce3..f8669c6 100644 --- a/gamesrv/slotspkg/internal/module/shared/types.go +++ b/gamesrv/slotspkg/internal/module/shared/types.go @@ -58,6 +58,18 @@ type GameEndDto struct { ActualWin int64 `json:"actualWin"` } +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"` +} + // Special type SpinLock struct { //tigerSpecial @@ -81,4 +93,13 @@ type SpinLock struct { Multiple int64 `json:"multiple,omitempty"` //倍乘倍数 Irv [][]float64 `json:"irv,omitempty"` Frv [][]float64 `json:"frv,omitempty"` + + //GatesOfOlympus + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,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"` } diff --git a/gamesrv/slotspkg/slots/formation/formation.go b/gamesrv/slotspkg/slots/formation/formation.go index 627732c..3d96c18 100644 --- a/gamesrv/slotspkg/slots/formation/formation.go +++ b/gamesrv/slotspkg/slots/formation/formation.go @@ -13,6 +13,8 @@ type Formation struct { NodeType string FormationDesc *desc.FormationDesc Symbols []int64 + SymbolsAbove []int64 + SymbolsBelow []int64 RandPositions []int64 CheatSymbols []int64 DisplaySymbols []int64 @@ -72,6 +74,8 @@ func NewFormation(n *desc.NodeDesc, seqID int64) (*Formation, error) { NodeType: n.NodeType, FormationDesc: formationDesc, Symbols: nil, + SymbolsAbove: nil, + SymbolsBelow: nil, RandPositions: nil, CheatSymbols: nil, DisplaySymbols: nil, @@ -96,12 +100,16 @@ func (f *Formation) Rand(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx+reelDesc.Range-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } func (f *Formation) ResetRandSymbols(r *randx.Randx) { f.RandPositions = nil f.Symbols = nil + f.SymbolsAbove = nil + f.SymbolsBelow = nil for _, reelDesc := range f.FormationDesc.ReelsDesc { // 经测试:缓存权重 和 二分查找 对权重随机性能的提升微乎其微,没必要优化 startIdx := int64(randx.RandWeight(r, reelDesc.Weights)) @@ -111,11 +119,15 @@ func (f *Formation) ResetRandSymbols(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } func (f *Formation) ResetRandSymbolsByIndex(r *randx.Randx) { f.RandPositions = nil f.Symbols = nil + f.SymbolsAbove = nil + f.SymbolsBelow = nil for _, reelDesc := range f.FormationDesc.ReelsDesc { // 经测试:缓存权重 和 二分查找 对权重随机性能的提升微乎其微,没必要优化 startIdx := int64(r.Intn(len(reelDesc.Weights))) @@ -125,6 +137,8 @@ func (f *Formation) ResetRandSymbolsByIndex(r *randx.Randx) { symbol := reelDesc.Reel[symbolIdx%length] f.Symbols = append(f.Symbols, symbol) } + f.SymbolsAbove = append(f.SymbolsAbove, reelDesc.Reel[(startIdx-1)%length]) + f.SymbolsBelow = append(f.SymbolsBelow, reelDesc.Reel[(startIdx+reelDesc.Range)%length]) } } diff --git a/gamesrv/slotspkg/slots/intf/formation.go b/gamesrv/slotspkg/slots/intf/formation.go index 7c0ee73..8175668 100644 --- a/gamesrv/slotspkg/slots/intf/formation.go +++ b/gamesrv/slotspkg/slots/intf/formation.go @@ -16,6 +16,8 @@ type Formation interface { SetInitFormattedSymbols(symbols [][]int64) Formation GetSymbols() []int64 + GetSymbolsAbove() []int64 + GetSymbolsBelow() []int64 SetSymbols(symbols []int64) Formation GetReelFormattedSymbols() [][]int64 GetMatrixFormattedSymbols() [][]int64 @@ -41,6 +43,8 @@ type Formation interface { GetMatrixFormattedFinalSymbols() [][]int64 SetFormattedFinalSymbols(symbols [][]int64) Formation + GetMatrixFormattedBySymbols(symbols []int64) [][]int64 + GetLinkPositions() []*shared.LinkPositions SetLinkPositions(linkPositions []*shared.LinkPositions) Formation diff --git a/gamesrv/slotspkg/slots/intf/spinner.go b/gamesrv/slotspkg/slots/intf/spinner.go index 649d598..c0b91f1 100644 --- a/gamesrv/slotspkg/slots/intf/spinner.go +++ b/gamesrv/slotspkg/slots/intf/spinner.go @@ -44,6 +44,7 @@ type Spinner interface { BetLines() []int64 BaseBets() []int64 BetChangeList() []float64 + GetBetIndexByVal(val float64) []int64 Choice() int64 Stay() bool diff --git a/gamesrv/slotspkg/slots/machine/formation.go b/gamesrv/slotspkg/slots/machine/formation.go index b5ef770..772fe91 100644 --- a/gamesrv/slotspkg/slots/machine/formation.go +++ b/gamesrv/slotspkg/slots/machine/formation.go @@ -65,6 +65,20 @@ func (f *Formation) GetSymbols() []int64 { return symbols } +// GetSymbolsAbove gets origin SymbolsAbove +func (f *Formation) GetSymbolsAbove() []int64 { + symbolsAbove := make([]int64, len(f.OriginFormation.SymbolsAbove)) + copy(symbolsAbove, f.OriginFormation.SymbolsAbove) + return symbolsAbove +} + +// GetSymbolsBelow gets origin SymbolsBelow +func (f *Formation) GetSymbolsBelow() []int64 { + symbolsBelow := make([]int64, len(f.OriginFormation.SymbolsBelow)) + copy(symbolsBelow, f.OriginFormation.SymbolsBelow) + return symbolsBelow +} + // SetSymbols sets origin symbols func (f *Formation) SetSymbols(symbols []int64) intf.Formation { f.OriginFormation.Symbols = symbols @@ -183,6 +197,12 @@ func (f *Formation) GetMatrixFormattedFinalSymbols() [][]int64 { f.OriginFormation.MatrixForm) } +// GetMatrixFormattedBySymbols gets symbols and places them into specific form +func (f *Formation) GetMatrixFormattedBySymbols(symbols []int64) [][]int64 { + return formation.FormatSymbols(symbols, + f.OriginFormation.MatrixForm) +} + // SetFormattedFinalSymbols sets formed final symbols func (f *Formation) SetFormattedFinalSymbols(symbols [][]int64) intf.Formation { f.Formation.FinalSymbols = formation.DeformatSymbols(symbols) diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go new file mode 100644 index 0000000..2f930d3 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/choose_wheel.go @@ -0,0 +1,36 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginChooseWheel struct { + generic.PluginBase +} + +func (p *PluginChooseWheel) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginChooseWheel) OnStepBegin(m intf.Master) { + isFreeSpin := m.Next().GetType() == FreeSpin + typ := m.Choice() + + nodeName := Descx(m).RandWheel(isFreeSpin, typ) + if !isFreeSpin { + if typ == RoundTypeMoreScatter { + nodeName = "MoreScatter" + nodeName + m.SetRatio(key.MachineRatioMoreCoinMoreBet, 1.25) + } else if typ == RoundTypeBuyFreeSpin { + m.SetRatio(key.MachineRatioMoreCoinSameBet, 100) + } + } + m.Set(key.MachineFormationSeqsDesc, nodeName) + + // 设置日志中的RoundType + if m.Next().GetType() == BaseSpin { + m.Set(key.MachineRoundType, typ) + } +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go new file mode 100644 index 0000000..152bf8f --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/common.go @@ -0,0 +1,30 @@ +package gatesofolympus + +const ( + BaseSpin = "BaseSpin" + FreeSpin = "FreeSpin" +) + +const ( + RoundTypeBaseSpin = iota + RoundTypeMoreScatter // 25% more cost + RoundTypeBuyFreeSpin // 10000% more cost +) + +const ( + MultiplierBaseSpin = iota + MultiplierFreeSpin + MultiplierNoWin +) + +const ( + SymbolMultiplier = int64(12) +) + +type CustomFortune struct { + FreeStatus int `json:"fs"` + FreeSpinNum int64 `json:"fsn"` //剩余freespin + FreeNumMax int64 `json:"fnm"` //总次数 + FreeNumTrigger int64 `json:"fnt"` //新增freespin + ScatterWin int64 `json:"sw,omitempty"` +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go new file mode 100644 index 0000000..4b5be57 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/descx.go @@ -0,0 +1,84 @@ +package gatesofolympus + +import ( + "encoding/json" + "github.com/tomas-qstarrs/boost/randx" + "mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/structs" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/errors" + "mongo.games.com/game/gamesrv/slotspkg/slots/desc" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" +) + +type descx struct { + *randx.Randx + *desc.NodeDesc +} + +func Descx(m intf.Master) *descx { + return &descx{ + Randx: m.Randx(), + NodeDesc: m.Desc(), + } +} + +func (n descx) RandWheel(isFreeSpin bool, typ int64) string { + sheet := n.DefaultSheet("ReelChoose") + rows, ok := sheet.([]*structs.GatesOfOlympusReelChoose) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "ReelChoose")) + } + + var weights = make(map[int]int64, 0) + for idx, row := range rows { + if row.IsFreeSpin == isFreeSpin { + weights[idx] = row.Weights[int(typ)] + } + } + + idx := randx.RandWeightMap(n.Randx, weights) + return rows[idx].NodeType +} + +func (n descx) RandMultiplier(typ int64) int64 { + sheet := n.DefaultSheet("Multiplier") + rows, ok := sheet.([]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + + var weights = make([]int64, 0, len(rows)) + for _, row := range rows { + weights = append(weights, row.Weights[typ]) + } + + idx := randx.RandWeight(n.Randx, weights) + return rows[idx].ID +} + +func (n descx) GetMultiBySymbol(symbol int64) int64 { + sheet := n.KeySheet("Multiplier", "Default", "ID") + rows, ok := sheet.(map[int64]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + + row, ok := rows[symbol] + if !ok { + return 0 + } + + return row.Multiple +} +func (n descx) GetMultiStr() string { + sheet := n.KeySheet("Multiplier", "Default", "ID") + rows, ok := sheet.(map[int64]*structs.GatesOfOlympusMultiplier) + if !ok { + panic(errors.ConfigTypeError.ErrorWith(n.Theme, "Multiplier")) + } + var multiples = make(map[int64]int64) + for _, v := range rows { + multiples[v.ID] = v.Multiple + } + multiplesByte, _ := json.Marshal(multiples) + return string(multiplesByte) +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go new file mode 100644 index 0000000..3440693 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/eliminate.go @@ -0,0 +1,239 @@ +package gatesofolympus + +import ( + "fmt" + "github.com/mohae/deepcopy" + "github.com/tomas-qstarrs/boost/mathx" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/internal/module/shared" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginEliminate struct { + generic.PluginBase +} + +type CustomEliminate struct { + LinkPositions []*shared.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"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +type CustomMulti struct { + Multi int64 + MultiStr string + MultiStrVal string +} + +type CustomPay struct { + Pay float64 +} + +func (p *PluginEliminate) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginEliminate) Customs() []interface{} { + return []interface{}{ + &CustomEliminate{}, + &CustomMulti{}, + &CustomPay{}, + &CustomFortune{}, + } +} + +func (p *PluginEliminate) OnInit(m intf.Master) { + if len(m.RootCustoms(&CustomMulti{})) == 0 { + m.AddRootFeature(&CustomMulti{}) + } +} + +func (p *PluginEliminate) OnEnterNode(m intf.Master) { + if m.Cursor().GetType() == key.BaseSpin { + m.RootCustom(&CustomMulti{}).(*CustomMulti).Multi = 0 + } +} + +func (p *PluginEliminate) BeforeSpin(m intf.Master) { + m.AddCursorFeature(&CustomPay{}).SetLifetime(1) +} + +func (p *PluginEliminate) AfterSpin(m intf.Master) { + cursorFormation := m.CursorFormation() + formattedSymbols := cursorFormation.GetReelFormattedDisplaySymbols() + + //f := getCustomFortune(m) + //if f.FreeSpinNum == 13 { + // formattedSymbols[0][0] = 1 + // formattedSymbols[0][1] = 1 + // formattedSymbols[0][2] = 1 + //} + + appendFormattedSymbols := deepcopy.Copy(formattedSymbols).([][]int64) + randPositions := cursorFormation.GetRandPositions() + + // 清空基础赢钱 + m.CursorFormation().SetWin(0) + + // 获取custom + customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti) + customPay := m.CursorCustom(&CustomPay{}).(*CustomPay) + + // 根据赔付计算multi type + linkPositions, _, linePays := m.TryLinkMatrixSymbols(1, formattedSymbols) + + var multiType int64 + if mathx.Sum(linePays) == 0 { + multiType = MultiplierNoWin + } else if m.Cursor().GetType() == key.BaseSpin { + multiType = MultiplierBaseSpin + } else { + multiType = MultiplierFreeSpin + } + + // 替换Formation元素 + for colIdx, symbols := range formattedSymbols { + for rowIdx, symbol := range symbols { + if symbol == SymbolMultiplier { + multiSymbol := Descx(m).RandMultiplier(multiType) + formattedSymbols[int64(colIdx)][5-int64(len(symbols))+int64(rowIdx)] = multiSymbol + } + } + } + + // 存储 Formation元素 + cursorFormation.SetFormattedDisplaySymbols(formattedSymbols) + defer cursorFormation.SetFormattedFinalSymbols(formattedSymbols) + + // 有消除 + for mathx.Sum(linePays) > 0 { + // 计算连线赢钱 + lineNum := len(linePays) + winCoins := make([]float64, lineNum) + for lineIdx, pay := range linePays { + winCoins[lineIdx] = float64(m.Cursor().GetSingleBet()) * float64(pay) + } + + // 标记消除的元素 + for _, link := range linkPositions { + for _, pos := range link.Positions { + row, col := cursorFormation.PositionToCoords(pos) + formattedSymbols[col][row] = -1 + } + } + // 删除消除的元素 + for colIndex := range formattedSymbols { + for rowIndex := 0; rowIndex < len(formattedSymbols[colIndex]); rowIndex++ { + if formattedSymbols[colIndex][rowIndex] == -1 { + formattedSymbols[colIndex] = append(formattedSymbols[colIndex][:rowIndex], formattedSymbols[colIndex][rowIndex+1:]...) + rowIndex-- + } + } + } + + var symbolsAbove []int64 + // 获取新得元素 + for colIdx, symbols := range formattedSymbols { + // 获取后续(向前)元素 + appendFormattedSymbols[colIdx] = cursorFormation.GetReelSymbols(int64(colIdx), + randPositions[colIdx]-int64(5-len(symbols)), int64(5-len(symbols))) + + symbolsAbove = append(symbolsAbove, cursorFormation.GetReelSymbols(int64(colIdx), + randPositions[colIdx]-int64(5-len(symbols))-1, 1)...) + + for rowIdx, symbol := range appendFormattedSymbols[colIdx] { + if symbol == SymbolMultiplier { + multiSymbol := Descx(m).RandMultiplier(multiType) + appendFormattedSymbols[colIdx][rowIdx] = multiSymbol + } + } + + // 拼接剩余元素和后续(向前)元素 + formattedSymbols[colIdx] = deepcopy.Copy(appendFormattedSymbols[colIdx]).([]int64) + formattedSymbols[colIdx] = append(formattedSymbols[colIdx], symbols...) + + // randPosition 向前移动 + randPositions[colIdx] -= int64(len(appendFormattedSymbols[colIdx])) + } + + // 添加后续feature,这里是消除 + m.AddCursorFeature(&CustomEliminate{ + LinkPositions: linkPositions, + AppendSymbols: appendFormattedSymbols, + FormattedSymbols: formattedSymbols, + LinePays: linePays, + WinCoins: winCoins, + MultiStr: Descx(m).GetMultiStr(), + SymbolsAbove: symbolsAbove, + SymbolsBelow: m.CursorFormation().GetSymbolsBelow(), + }).SetLifetime(1) + + // 累加pay + customPay.Pay += mathx.Sum(linePays) + + // 连线 + linkPositions, _, linePays = m.TryLinkMatrixSymbols(1, formattedSymbols) + } + + // 增加multi + var multiSum int64 + maxColCount := 0 + + // 找到最长的列数 + for _, row := range formattedSymbols { + if len(row) > maxColCount { + maxColCount = len(row) + } + } + + flatIndex := 0 // 当前符号在一维数组中的索引 + + customMulti.MultiStr = "" + customMulti.MultiStrVal = "" + + // 遍历列优先的索引 + for col := 0; col < maxColCount; col++ { + for row := 0; row < len(formattedSymbols); row++ { + rowSymbols := formattedSymbols[row] // 当前行的符号 + if col < len(rowSymbols) { // 确保当前列存在 + symbol := rowSymbols[col] + multi := Descx(m).GetMultiBySymbol(symbol) + multiSum += multi + + // 打印 Symbol 和其一维索引 + //fmt.Printf("Symbol: %s, Position in one-dimensional array: %d\n", symbol, flatIndex) + if multi > 0 { + if len(customMulti.MultiStr) > 0 { + customMulti.MultiStr += ";" + customMulti.MultiStrVal += "," + } + customMulti.MultiStr += fmt.Sprintf("%v~%v~%v", 12, flatIndex, multi) + customMulti.MultiStrVal += fmt.Sprintf("%v", multi) + } + flatIndex++ // 索引递增 + } + } + } + + if customPay.Pay > 0 { + if multiSum == 0 { + win := int64(customPay.Pay * float64(m.Cursor().GetSingleBet())) + m.CursorFeature(&CustomPay{}).SetWin(win) + } else { + customMulti.Multi += multiSum + var win int64 + if customMulti.Multi == 0 { + win = int64(customPay.Pay * float64(m.Cursor().GetSingleBet())) + } else { + win = int64(customPay.Pay * float64(m.Cursor().GetSingleBet()) * float64(customMulti.Multi)) + } + m.CursorFeature(&CustomPay{}).SetWin(win) + } + } +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go new file mode 100644 index 0000000..b2ae211 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/free_spin.go @@ -0,0 +1,106 @@ +package gatesofolympus + +import ( + "github.com/tomas-qstarrs/boost/mathx" + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginFreeSpin struct { + generic.PluginScatter +} + +func (p *PluginFreeSpin) Theme() string { + return key.GatesOfOlympus +} + +// 获取特性数据 +func getCustomFortune(m intf.Master) *CustomFortune { + customFortune := new(CustomFortune) + if len(m.CursorCustoms(customFortune)) == 0 { + m.AddCursorFeature(customFortune) + } + return m.CursorCustom(customFortune).(*CustomFortune) +} + +// AfterSpin implements generic.PluginBase.AfterSpin +func (p *PluginFreeSpin) AfterSpin(m intf.Master) { + switch m.Cursor().GetType() { + case key.BaseSpin: + p.AfterBaseSpin(m) + case key.FreeSpin: + p.AfterFreeSpin(m) + } +} + +// AfterBaseSpin is called after base spin +func (p *PluginFreeSpin) AfterBaseSpin(m intf.Master) { + addTimes, win := p.GetScatterInfo(m, false) + if addTimes > 0 { + //m.AddNodeOnCursor(key.FreeSpin, addTimes) + customFortune := getCustomFortune(m) + customFortune.FreeStatus = 1 + customFortune.FreeNumMax += addTimes + customFortune.FreeNumTrigger = addTimes + customFortune.FreeSpinNum = addTimes + customFortune.ScatterWin = win + m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, addTimes).GetID(), customFortune).SetLifetime(addTimes) + } + if win > 0 { + m.AddCursorFeature(&generic.CustomScatterWin{}).SetWin(win) + } +} + +// AfterFreeSpin is called after free spin +func (p *PluginFreeSpin) AfterFreeSpin(m intf.Master) { + addTimes, win := p.GetScatterInfo(m, true) + customFortune := getCustomFortune(m) + if addTimes > 0 { + customFortune.FreeStatus = 2 + customFortune.FreeNumTrigger = addTimes + customFortune.FreeNumMax += addTimes + customFortune.FreeSpinNum += addTimes + customFortune.ScatterWin = win + m.AddProgress(addTimes) + m.AddCursorFeature(&generic.CustomExtraFreeSpin{ExtraTimes: addTimes}).SetLifetime(1) + } else { + customFortune.FreeStatus = 0 + customFortune.FreeNumTrigger = 0 + if customFortune.FreeSpinNum > 0 { + if customFortune.FreeSpinNum == 1 { + customFortune.FreeStatus = 3 + } + customFortune.FreeSpinNum-- + } + } + if win > 0 { + m.AddCursorFeature(&generic.CustomScatterWin{}).SetWin(win) + } +} + +// GetScatterInfo gets add free spin times & pay rate +func (p *PluginFreeSpin) GetScatterInfo(m intf.Master, inFreeSpin bool) (int64, int64) { + var scatterCount int64 + symbols := m.CursorFormation().GetFinalSymbols() + scatterSymbols := p.Scatters(m) + for _, scatterSymbol := range scatterSymbols { + scatterCount += int64(mathx.Count(scatterSymbol, symbols)) + } + + if scatterCount == 0 { + return 0, 0 + } + + freeSpinCount := generic.Descx(m).FreeSpin(inFreeSpin, scatterCount) + + payRate := generic.Descx(m).ScatterPayRate(inFreeSpin, scatterCount) + + win := m.Bet() * payRate + + if m.Choice() == RoundTypeMoreScatter { + win = int64(mathx.SafeDiv(win, 1.25)) + } + + return freeSpinCount, win +} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go new file mode 100644 index 0000000..6f13eb6 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/init.go @@ -0,0 +1,10 @@ +package gatesofolympus + +var Plugins = []interface{}{ + &PluginChooseWheel{}, + &PluginEliminate{}, + &PluginFreeSpin{}, + &PluginSpecial{}, +} + +var SimulatorPlugins = []interface{}{} diff --git a/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go b/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go new file mode 100644 index 0000000..4e6b074 --- /dev/null +++ b/gamesrv/slotspkg/slots/plugin/gatesofolympus/tospecial.go @@ -0,0 +1,77 @@ +package gatesofolympus + +import ( + "mongo.games.com/game/gamesrv/slotspkg/internal/generic/key" + "mongo.games.com/game/gamesrv/slotspkg/slots/intf" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic" +) + +type PluginSpecial struct { + generic.PluginBase +} +type Special struct { + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` //消除的次数 一次为一个结果 + FreeStatus int `json:"fs"` + FreeSpinNum int64 `json:"fsn,omitempty"` //剩余freespin + FreeNumMax int64 `json:"fnm,omitempty"` //总次数 + FreeNumTrigger int64 `json:"fnt,omitempty"` //新增freespin + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,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"` +} + +func (p *PluginSpecial) Theme() string { + return key.GatesOfOlympus +} + +func (p *PluginSpecial) Customs() []interface{} { + return []interface{}{ + &Special{}, + } +} +func (p *PluginSpecial) getCustomSpecial(m intf.Master) *Special { + customSpecial := new(Special) + if len(m.CursorCustoms(customSpecial)) == 0 { + m.AddCursorFeature(customSpecial).SetLifetime(0) + } + return m.CursorCustom(customSpecial).(*Special) +} +func (p *PluginSpecial) AfterSpin(m intf.Master) { + //cf := m.CursorFeatures(&CustomEliminate{}) + ces := m.CursorCustoms(&CustomEliminate{}) + sp := p.getCustomSpecial(m) + if len(ces) > 0 { + for _, i2 := range ces { + ce := i2.(*CustomEliminate) + wc := make([]float64, len(ce.WinCoins)) + for j := 0; j < len(ce.WinCoins); j++ { + wc[j] = ce.WinCoins[j] / 10000 + } + sp.CustomEliminates = append(sp.CustomEliminates, CustomEliminate{ + LinkPositions: ce.LinkPositions, + AppendSymbols: ce.AppendSymbols, + FormattedSymbols: ce.FormattedSymbols, + LinePays: ce.LinePays, + WinCoins: wc, + MultiStr: ce.MultiStr, + }) + } + } + customFortune := getCustomFortune(m) + sp.FreeStatus = customFortune.FreeStatus + sp.FreeSpinNum = customFortune.FreeSpinNum + sp.FreeNumMax = customFortune.FreeNumMax + sp.FreeNumTrigger = customFortune.FreeNumTrigger + + customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti) + customPay := m.CursorCustom(&CustomPay{}).(*CustomPay) + sp.Multi = customMulti.Multi + sp.MultiStr = customMulti.MultiStr + sp.MultiStrVal = customMulti.MultiStrVal + sp.Pay = customPay.Pay + sp.SymbolsAbove = m.CursorFormation().GetSymbolsAbove() + sp.SymbolsBelow = m.CursorFormation().GetSymbolsBelow() +} diff --git a/gamesrv/slotspkg/slots/plugin/init.go b/gamesrv/slotspkg/slots/plugin/init.go index 0d18fc2..2f5dc28 100644 --- a/gamesrv/slotspkg/slots/plugin/init.go +++ b/gamesrv/slotspkg/slots/plugin/init.go @@ -8,6 +8,7 @@ import ( "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortuneox" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortunerabbit" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/fortunetiger" + "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/gatesofolympus" "mongo.games.com/game/gamesrv/slotspkg/slots/plugin/test" "mongo.games.com/game/gamesrv/slotspkg/slots/reg" ) @@ -20,6 +21,7 @@ func Init() { reg.Register(fortunedragon.Plugins...) reg.Register(fortunemouse.Plugins...) reg.Register(cashmania.Plugins...) + reg.Register(gatesofolympus.Plugins...) reg.Register(test.Plugins...) if global.Mock { @@ -28,6 +30,8 @@ func Init() { reg.Register(fortunerabbit.SimulatorPlugins...) reg.Register(fortunedragon.SimulatorPlugins...) reg.Register(cashmania.SimulatorPlugins...) + reg.Register(gatesofolympus.SimulatorPlugins...) + reg.Register(test.SimulatorPlugins...) } } @@ -39,11 +43,15 @@ func Close() { reg.Deregister(fortunedragon.Plugins...) reg.Deregister(fortunemouse.Plugins...) reg.Deregister(cashmania.Plugins...) + reg.Deregister(gatesofolympus.Plugins...) + reg.Deregister(test.Plugins...) if global.Mock { reg.Deregister(fortuneox.SimulatorPlugins...) reg.Deregister(fortunetiger.SimulatorPlugins...) reg.Deregister(fortunerabbit.SimulatorPlugins...) reg.Deregister(fortunedragon.SimulatorPlugins...) reg.Deregister(cashmania.SimulatorPlugins...) + reg.Deregister(gatesofolympus.SimulatorPlugins...) + reg.Deregister(test.SimulatorPlugins...) } } diff --git a/protocol/cashmania/cashmania.proto b/protocol/cashmania/cashmania.proto index fe0d37e..fc35847 100644 --- a/protocol/cashmania/cashmania.proto +++ b/protocol/cashmania/cashmania.proto @@ -27,7 +27,7 @@ message CashManiaPlayerData { int32 VIP = 11; } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_CASHMANIA_SCCASHMANIAROOMINFO message SCCashManiaRoomInfo { int32 RoomId = 1; //房间id int32 GameFreeId = 2; @@ -42,26 +42,26 @@ message SCCashManiaRoomInfo { string PlayerInfo = 11; } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_CASHMANIA_CSCASHMANIAOP message CSCashManiaOp { int32 OpCode = 1; //操作码 0.spin repeated int64 Params = 2; //操作参数 下注索引编号 } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_CASHMANIA_SCCASHMANIAOP message SCCashManiaOp { int32 OpCode = 1; //操作码 int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 repeated int64 Params = 3; //操作参数 } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_CASHMANIA_SCCASHMANIAROOMSTATE message SCCashManiaRoomState { int32 State = 1; //房间当前状态 int32 SubState = 2; //房间当前子状态 repeated int32 Params = 3; //状态参数 } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_CASHMANIA_SCCASHMANIABILLED message SCCashManiaBilled{ int32 OpRetCode = 1;//0.spin成功 1.spin失败 string GameEndStr = 2; diff --git a/protocol/gatesofolympus/gatesofolympus.proto b/protocol/gatesofolympus/gatesofolympus.proto index ef76923..4d4b9bb 100644 --- a/protocol/gatesofolympus/gatesofolympus.proto +++ b/protocol/gatesofolympus/gatesofolympus.proto @@ -27,7 +27,7 @@ message GatesOfOlympusPlayerData { int32 VIP = 11; } //房间信息 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMINFO +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMINFO message SCGatesOfOlympusRoomInfo { int32 RoomId = 1; //房间id int32 GameFreeId = 2; @@ -42,26 +42,26 @@ message SCGatesOfOlympusRoomInfo { string PlayerInfo = 11; } //玩家操作 -//PACKET_FORTUNEMOUSE_CSFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_CSGATESOFOLYMPUSOP message CSGatesOfOlympusOp { int32 OpCode = 1; //操作码 0.spin repeated int64 Params = 2; //操作参数 下注索引编号 } //玩家操作返回 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEOP +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSOP message SCGatesOfOlympusOp { int32 OpCode = 1; //操作码 int32 OpRetCode = 2; //操作结果 1.金币不足 2.低于该值不能押注 repeated int64 Params = 3; //操作参数 } //房间状态 -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEROOMSTATE +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSROOMSTATE message SCGatesOfOlympusRoomState { int32 State = 1; //房间当前状态 int32 SubState = 2; //房间当前子状态 repeated int32 Params = 3; //状态参数 } -//PACKET_FORTUNEMOUSE_SCFORTUNEMOUSEBILLED +//PACKET_GATESOFOLYMPUS_SCGATESOFOLYMPUSBILLED message SCGatesOfOlympusBilled{ int32 OpRetCode = 1;//0.spin成功 1.spin失败 string GameEndStr = 2;