Merge branch 'develop' of git.pogorockgames.com:mango-games/server/game into develop
This commit is contained in:
commit
4da947cd56
|
@ -18,16 +18,19 @@ func DataToCli(response any) interface{} {
|
|||
}
|
||||
sort.Slice(Response.BetChangeList, func(i, j int) bool { return Response.BetChangeList[i] < Response.BetChangeList[j] })
|
||||
sort.Slice(Response.BetLevels, func(i, j int) bool { return Response.BetLevels[i] < Response.BetLevels[j] })
|
||||
sort.Slice(Response.BaseBets, func(i, j int) bool { return Response.BaseBets[i] < Response.BaseBets[j] })
|
||||
sort.Slice(BetSizes, func(i, j int) bool { return BetSizes[i] < BetSizes[j] })
|
||||
tableInfo.BetConfig = BetConfig{
|
||||
BetChangeList: Response.BetChangeList,
|
||||
BetSize: BetSizes,
|
||||
BaseBet: Response.BaseBets,
|
||||
BetLevel: Response.BetLevels,
|
||||
BetLines: Response.BetLines,
|
||||
BetType: 1,
|
||||
BetSizeIndex: Response.BetSizeIndex,
|
||||
BetLevelIndex: Response.BetLevelIndex,
|
||||
BetLineIndex: Response.BetLineIndex,
|
||||
BaseBetIndex: Response.BaseBetIndex,
|
||||
}
|
||||
tableInfo.Coin = float64(Response.Coin) / CoinRate
|
||||
//////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -47,10 +47,12 @@ type BetConfig struct {
|
|||
BetSize []float64 `json:"bet_size"` //单注
|
||||
BetLevel []int64 `json:"bet_level"` //下注线数
|
||||
BetLines []int64 `json:"bet_lines"` //可选线数
|
||||
BaseBet []int64 `json:"base_bet"` //下注基数
|
||||
BetType int `json:"bet_type"` //total计算方式 1.显示成Lines betSize*betLevel*lines (lines)
|
||||
BetSizeIndex int64 `json:"bet_size_index"` //选中的单注下标
|
||||
BetLevelIndex int64 `json:"bet_level_index"` //选中的等级下标
|
||||
BetLineIndex int64 `json:"bet_line_index"` //选中的线数下标
|
||||
BaseBetIndex int64 `json:"base_bet_index"` //选中的下注基数下标
|
||||
}
|
||||
type TableInfo struct {
|
||||
SpinResult GameEnd `json:"spin_result"`
|
||||
|
|
Binary file not shown.
BIN
gamesrv/slotspkg/external/excel/Base/Slots/CashMania/Feature/S_ItemInfo.xlsx
vendored
Normal file
BIN
gamesrv/slotspkg/external/excel/Base/Slots/CashMania/Feature/S_ItemInfo.xlsx
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -134,7 +134,8 @@ func init() {
|
|||
CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{
|
||||
0: {
|
||||
Index: 0,
|
||||
BetLine: 10,
|
||||
BetLine: 1,
|
||||
BaseBet: 10,
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -194,6 +195,129 @@ func init() {
|
|||
},
|
||||
}
|
||||
|
||||
CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{
|
||||
1: {
|
||||
Index: 1,
|
||||
ItemID: 1,
|
||||
Value: 10,
|
||||
IsMid: false,
|
||||
},
|
||||
2: {
|
||||
Index: 2,
|
||||
ItemID: 2,
|
||||
Value: 5,
|
||||
IsMid: false,
|
||||
},
|
||||
3: {
|
||||
Index: 3,
|
||||
ItemID: 3,
|
||||
Value: 1,
|
||||
IsMid: false,
|
||||
},
|
||||
4: {
|
||||
Index: 4,
|
||||
ItemID: 4,
|
||||
Value: 0.5,
|
||||
IsMid: false,
|
||||
},
|
||||
5: {
|
||||
Index: 5,
|
||||
ItemID: 5,
|
||||
Value: 0.1,
|
||||
IsMid: false,
|
||||
},
|
||||
6: {
|
||||
Index: 6,
|
||||
ItemID: 6,
|
||||
Value: 1,
|
||||
IsMid: true,
|
||||
},
|
||||
7: {
|
||||
Index: 7,
|
||||
ItemID: 7,
|
||||
Value: 1,
|
||||
IsMid: true,
|
||||
},
|
||||
8: {
|
||||
Index: 8,
|
||||
ItemID: 8,
|
||||
Value: 1,
|
||||
IsMid: true,
|
||||
},
|
||||
9: {
|
||||
Index: 9,
|
||||
ItemID: 9,
|
||||
Value: 1,
|
||||
IsMid: true,
|
||||
},
|
||||
10: {
|
||||
Index: 10,
|
||||
ItemID: 10,
|
||||
Value: 2,
|
||||
IsMid: true,
|
||||
},
|
||||
11: {
|
||||
Index: 11,
|
||||
ItemID: 11,
|
||||
Value: 3,
|
||||
IsMid: true,
|
||||
},
|
||||
12: {
|
||||
Index: 12,
|
||||
ItemID: 12,
|
||||
Value: 5,
|
||||
IsMid: true,
|
||||
},
|
||||
13: {
|
||||
Index: 13,
|
||||
ItemID: 13,
|
||||
Value: 10,
|
||||
IsMid: true,
|
||||
},
|
||||
14: {
|
||||
Index: 14,
|
||||
ItemID: 14,
|
||||
Value: 15,
|
||||
IsMid: true,
|
||||
},
|
||||
15: {
|
||||
Index: 15,
|
||||
ItemID: 15,
|
||||
Value: 20,
|
||||
IsMid: true,
|
||||
},
|
||||
16: {
|
||||
Index: 16,
|
||||
ItemID: 16,
|
||||
Value: 30,
|
||||
IsMid: true,
|
||||
},
|
||||
17: {
|
||||
Index: 17,
|
||||
ItemID: 17,
|
||||
Value: 40,
|
||||
IsMid: true,
|
||||
},
|
||||
18: {
|
||||
Index: 18,
|
||||
ItemID: 18,
|
||||
Value: 50,
|
||||
IsMid: true,
|
||||
},
|
||||
19: {
|
||||
Index: 19,
|
||||
ItemID: 19,
|
||||
Value: 100,
|
||||
IsMid: true,
|
||||
},
|
||||
200: {
|
||||
Index: 200,
|
||||
ItemID: 200,
|
||||
Value: 0,
|
||||
IsMid: true,
|
||||
},
|
||||
}
|
||||
|
||||
CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{
|
||||
1: {
|
||||
ID: 1,
|
||||
|
@ -468,7 +592,7 @@ func init() {
|
|||
CashManiaSymbol = map[int64]*structs.CashManiaSymbol{
|
||||
1: {
|
||||
ID: 1,
|
||||
Name: "100倍",
|
||||
Name: "10倍",
|
||||
IsWild: false,
|
||||
Group: []int64{1},
|
||||
PayRate: []int64{0, 0, 100},
|
||||
|
|
|
@ -174,6 +174,7 @@ func init() {
|
|||
0: {
|
||||
Index: 0,
|
||||
BetLine: 5,
|
||||
BaseBet: 1,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -135,6 +135,7 @@ func init() {
|
|||
0: {
|
||||
Index: 0,
|
||||
BetLine: 5,
|
||||
BaseBet: 1,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -10,79 +10,79 @@ func init() {
|
|||
FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{
|
||||
0: {
|
||||
Index: 0,
|
||||
BetChangeList: 0.3,
|
||||
BetChangeList: 300000,
|
||||
BetSizeIndex: 0,
|
||||
BetLevelIndex: 0,
|
||||
},
|
||||
1: {
|
||||
Index: 1,
|
||||
BetChangeList: 0.6,
|
||||
BetChangeList: 600000,
|
||||
BetSizeIndex: 0,
|
||||
BetLevelIndex: 1,
|
||||
},
|
||||
2: {
|
||||
Index: 2,
|
||||
BetChangeList: 0.9,
|
||||
BetChangeList: 900000,
|
||||
BetSizeIndex: 0,
|
||||
BetLevelIndex: 2,
|
||||
},
|
||||
3: {
|
||||
Index: 3,
|
||||
BetChangeList: 1,
|
||||
BetChangeList: 1000000,
|
||||
BetSizeIndex: 1,
|
||||
BetLevelIndex: 0,
|
||||
},
|
||||
4: {
|
||||
Index: 4,
|
||||
BetChangeList: 1.5,
|
||||
BetChangeList: 1500000,
|
||||
BetSizeIndex: 0,
|
||||
BetLevelIndex: 4,
|
||||
},
|
||||
5: {
|
||||
Index: 5,
|
||||
BetChangeList: 3,
|
||||
BetChangeList: 3000000,
|
||||
BetSizeIndex: 0,
|
||||
BetLevelIndex: 9,
|
||||
},
|
||||
6: {
|
||||
Index: 6,
|
||||
BetChangeList: 5,
|
||||
BetChangeList: 5000000,
|
||||
BetSizeIndex: 1,
|
||||
BetLevelIndex: 4,
|
||||
},
|
||||
7: {
|
||||
Index: 7,
|
||||
BetChangeList: 9,
|
||||
BetChangeList: 9000000,
|
||||
BetSizeIndex: 3,
|
||||
BetLevelIndex: 0,
|
||||
},
|
||||
8: {
|
||||
Index: 8,
|
||||
BetChangeList: 10,
|
||||
BetChangeList: 10000000,
|
||||
BetSizeIndex: 1,
|
||||
BetLevelIndex: 9,
|
||||
},
|
||||
9: {
|
||||
Index: 9,
|
||||
BetChangeList: 15,
|
||||
BetChangeList: 15000000,
|
||||
BetSizeIndex: 2,
|
||||
BetLevelIndex: 4,
|
||||
},
|
||||
10: {
|
||||
Index: 10,
|
||||
BetChangeList: 30,
|
||||
BetChangeList: 30000000,
|
||||
BetSizeIndex: 2,
|
||||
BetLevelIndex: 9,
|
||||
},
|
||||
11: {
|
||||
Index: 11,
|
||||
BetChangeList: 45,
|
||||
BetChangeList: 45000000,
|
||||
BetSizeIndex: 3,
|
||||
BetLevelIndex: 4,
|
||||
},
|
||||
12: {
|
||||
Index: 12,
|
||||
BetChangeList: 90,
|
||||
BetChangeList: 90000000,
|
||||
BetSizeIndex: 3,
|
||||
BetLevelIndex: 9,
|
||||
},
|
||||
|
@ -135,25 +135,26 @@ func init() {
|
|||
0: {
|
||||
Index: 0,
|
||||
BetLine: 10,
|
||||
BaseBet: 1,
|
||||
},
|
||||
}
|
||||
|
||||
FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{
|
||||
0: {
|
||||
Index: 0,
|
||||
BetSize: 300,
|
||||
BetSize: 300000000,
|
||||
},
|
||||
1: {
|
||||
Index: 1,
|
||||
BetSize: 1000,
|
||||
BetSize: 1000000000,
|
||||
},
|
||||
2: {
|
||||
Index: 2,
|
||||
BetSize: 3000,
|
||||
BetSize: 3000000000,
|
||||
},
|
||||
3: {
|
||||
Index: 3,
|
||||
BetSize: 9000,
|
||||
BetSize: 9000000000,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -135,6 +135,7 @@ func init() {
|
|||
0: {
|
||||
Index: 0,
|
||||
BetLine: 10,
|
||||
BaseBet: 1,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -135,6 +135,7 @@ func init() {
|
|||
0: {
|
||||
Index: 0,
|
||||
BetLine: 5,
|
||||
BaseBet: 1,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -10,6 +10,7 @@ var (
|
|||
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{}
|
||||
|
@ -119,46 +120,6 @@ var (
|
|||
FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{}
|
||||
FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{}
|
||||
FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{}
|
||||
GateofOlympusBetBetChangeList = map[int64]*structs.GateofOlympusBetBetChangeList{}
|
||||
GateofOlympusBetBetLevel = map[int64]*structs.GateofOlympusBetBetLevel{}
|
||||
GateofOlympusBetBetLine = map[int64]*structs.GateofOlympusBetBetLine{}
|
||||
GateofOlympusBetBetSize = map[int64]*structs.GateofOlympusBetBetSize{}
|
||||
GateofOlympusBetFirstBet = map[int64]*structs.GateofOlympusBetFirstBet{}
|
||||
GateofOlympusFormation = []*structs.GateofOlympusFormation{}
|
||||
GateofOlympusMapRTPMode = map[int64]*structs.GateofOlympusMapRTPMode{}
|
||||
GateofOlympusMultiplier = []*structs.GateofOlympusMultiplier{}
|
||||
GateofOlympusMultiplierKeyID = map[int64]*structs.GateofOlympusMultiplierKeyID{}
|
||||
GateofOlympusReelBaseSpin1Range = [][]int64{}
|
||||
GateofOlympusReelBaseSpin1Reel = [][]int64{}
|
||||
GateofOlympusReelBaseSpin1Weight = [][]float64{}
|
||||
GateofOlympusReelBaseSpin2Range = [][]int64{}
|
||||
GateofOlympusReelBaseSpin2Reel = [][]int64{}
|
||||
GateofOlympusReelBaseSpin2Weight = [][]float64{}
|
||||
GateofOlympusReelBaseSpin3Range = [][]int64{}
|
||||
GateofOlympusReelBaseSpin3Reel = [][]int64{}
|
||||
GateofOlympusReelBaseSpin3Weight = [][]float64{}
|
||||
GateofOlympusReelBaseSpin7Range = [][]int64{}
|
||||
GateofOlympusReelBaseSpin7Reel = [][]int64{}
|
||||
GateofOlympusReelBaseSpin7Weight = [][]float64{}
|
||||
GateofOlympusReelBaseSpin8Range = [][]int64{}
|
||||
GateofOlympusReelBaseSpin8Reel = [][]int64{}
|
||||
GateofOlympusReelBaseSpin8Weight = [][]float64{}
|
||||
GateofOlympusReelBaseSpinRange = [][]int64{}
|
||||
GateofOlympusReelBaseSpinReel = [][]int64{}
|
||||
GateofOlympusReelBaseSpinWeight = [][]float64{}
|
||||
GateofOlympusReelChoose = []*structs.GateofOlympusReelChoose{}
|
||||
GateofOlympusReelFreeSpin4Range = [][]int64{}
|
||||
GateofOlympusReelFreeSpin4Reel = [][]int64{}
|
||||
GateofOlympusReelFreeSpin4Weight = [][]float64{}
|
||||
GateofOlympusReelFreeSpin5Range = [][]int64{}
|
||||
GateofOlympusReelFreeSpin5Reel = [][]int64{}
|
||||
GateofOlympusReelFreeSpin5Weight = [][]float64{}
|
||||
GateofOlympusReelFreeSpinRange = [][]int64{}
|
||||
GateofOlympusReelFreeSpinReel = [][]int64{}
|
||||
GateofOlympusReelFreeSpinWeight = [][]float64{}
|
||||
GateofOlympusScatter = map[int64]*structs.GateofOlympusScatter{}
|
||||
GateofOlympusSymbolBetRatio = []*structs.GateofOlympusSymbolBetRatio{}
|
||||
GateofOlympusSymbol = map[int64]*structs.GateofOlympusSymbol{}
|
||||
MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{}
|
||||
MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{}
|
||||
MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{}
|
||||
|
|
|
@ -69,6 +69,7 @@ func StoragesLoading(data map[string]string) {
|
|||
Load(data, "Base.CashMania/Bet.BetSize", &base.CashManiaBetBetSize)
|
||||
Load(data, "Base.CashMania/Bet.FirstBet", &base.CashManiaBetFirstBet)
|
||||
Load(data, "Base.CashMania/Formation.Default", &base.CashManiaFormation)
|
||||
Load(data, "Base.CashMania/ItemInfo.Default", &base.CashManiaItemInfo)
|
||||
Load(data, "Base.CashMania/Map.RTPMode", &base.CashManiaMapRTPMode)
|
||||
Load(data, "Base.CashMania/MidItemInfo.Default", &base.CashManiaMidItemInfo)
|
||||
Load(data, "Base.CashMania/Others.Default", &base.CashManiaOthers)
|
||||
|
@ -178,46 +179,6 @@ 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.GateofOlympus/Bet.BetChangeList", &base.GateofOlympusBetBetChangeList)
|
||||
Load(data, "Base.GateofOlympus/Bet.BetLevel", &base.GateofOlympusBetBetLevel)
|
||||
Load(data, "Base.GateofOlympus/Bet.BetLine", &base.GateofOlympusBetBetLine)
|
||||
Load(data, "Base.GateofOlympus/Bet.BetSize", &base.GateofOlympusBetBetSize)
|
||||
Load(data, "Base.GateofOlympus/Bet.FirstBet", &base.GateofOlympusBetFirstBet)
|
||||
Load(data, "Base.GateofOlympus/Formation.Default", &base.GateofOlympusFormation)
|
||||
Load(data, "Base.GateofOlympus/Map.RTPMode", &base.GateofOlympusMapRTPMode)
|
||||
Load(data, "Base.GateofOlympus/Multiplier.Default", &base.GateofOlympusMultiplier)
|
||||
Load(data, "Base.GateofOlympus/Multiplier.Default/ID", &base.GateofOlympusMultiplierKeyID)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin1.Range", &base.GateofOlympusReelBaseSpin1Range)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin1.Reel", &base.GateofOlympusReelBaseSpin1Reel)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin1.Weight", &base.GateofOlympusReelBaseSpin1Weight)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin2.Range", &base.GateofOlympusReelBaseSpin2Range)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin2.Reel", &base.GateofOlympusReelBaseSpin2Reel)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin2.Weight", &base.GateofOlympusReelBaseSpin2Weight)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin3.Range", &base.GateofOlympusReelBaseSpin3Range)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin3.Reel", &base.GateofOlympusReelBaseSpin3Reel)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin3.Weight", &base.GateofOlympusReelBaseSpin3Weight)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin7.Range", &base.GateofOlympusReelBaseSpin7Range)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin7.Reel", &base.GateofOlympusReelBaseSpin7Reel)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin7.Weight", &base.GateofOlympusReelBaseSpin7Weight)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin8.Range", &base.GateofOlympusReelBaseSpin8Range)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin8.Reel", &base.GateofOlympusReelBaseSpin8Reel)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin8.Weight", &base.GateofOlympusReelBaseSpin8Weight)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin.Range", &base.GateofOlympusReelBaseSpinRange)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin.Reel", &base.GateofOlympusReelBaseSpinReel)
|
||||
Load(data, "Base.GateofOlympus/ReelBaseSpin.Weight", &base.GateofOlympusReelBaseSpinWeight)
|
||||
Load(data, "Base.GateofOlympus/ReelChoose.Default", &base.GateofOlympusReelChoose)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin4.Range", &base.GateofOlympusReelFreeSpin4Range)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin4.Reel", &base.GateofOlympusReelFreeSpin4Reel)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin4.Weight", &base.GateofOlympusReelFreeSpin4Weight)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin5.Range", &base.GateofOlympusReelFreeSpin5Range)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin5.Reel", &base.GateofOlympusReelFreeSpin5Reel)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin5.Weight", &base.GateofOlympusReelFreeSpin5Weight)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin.Range", &base.GateofOlympusReelFreeSpinRange)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin.Reel", &base.GateofOlympusReelFreeSpinReel)
|
||||
Load(data, "Base.GateofOlympus/ReelFreeSpin.Weight", &base.GateofOlympusReelFreeSpinWeight)
|
||||
Load(data, "Base.GateofOlympus/Scatter.Default", &base.GateofOlympusScatter)
|
||||
Load(data, "Base.GateofOlympus/Symbol.BetRatio", &base.GateofOlympusSymbolBetRatio)
|
||||
Load(data, "Base.GateofOlympus/Symbol.Default", &base.GateofOlympusSymbol)
|
||||
Load(data, "Base.Matrix/FeaturesForm15X1TypeA.Default", &base.MatrixFeaturesForm15X1TypeA)
|
||||
Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA)
|
||||
Load(data, "Base.Matrix/FeaturesForm20X1TypeA.Default", &base.MatrixFeaturesForm20X1TypeA)
|
||||
|
@ -330,6 +291,7 @@ func StoragesMapping() {
|
|||
Set("Base", "CashMania/Bet", "BetSize", base.CashManiaBetBetSize)
|
||||
Set("Base", "CashMania/Bet", "FirstBet", base.CashManiaBetFirstBet)
|
||||
Set("Base", "CashMania/Formation", "Default", base.CashManiaFormation)
|
||||
Set("Base", "CashMania/ItemInfo", "Default", base.CashManiaItemInfo)
|
||||
Set("Base", "CashMania/Map", "RTPMode", base.CashManiaMapRTPMode)
|
||||
Set("Base", "CashMania/MidItemInfo", "Default", base.CashManiaMidItemInfo)
|
||||
Set("Base", "CashMania/Others", "Default", base.CashManiaOthers)
|
||||
|
@ -439,46 +401,6 @@ 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", "GateofOlympus/Bet", "BetChangeList", base.GateofOlympusBetBetChangeList)
|
||||
Set("Base", "GateofOlympus/Bet", "BetLevel", base.GateofOlympusBetBetLevel)
|
||||
Set("Base", "GateofOlympus/Bet", "BetLine", base.GateofOlympusBetBetLine)
|
||||
Set("Base", "GateofOlympus/Bet", "BetSize", base.GateofOlympusBetBetSize)
|
||||
Set("Base", "GateofOlympus/Bet", "FirstBet", base.GateofOlympusBetFirstBet)
|
||||
Set("Base", "GateofOlympus/Formation", "Default", base.GateofOlympusFormation)
|
||||
Set("Base", "GateofOlympus/Map", "RTPMode", base.GateofOlympusMapRTPMode)
|
||||
Set("Base", "GateofOlympus/Multiplier", "Default", base.GateofOlympusMultiplier)
|
||||
Set("Base", "GateofOlympus/Multiplier", "Default/ID", base.GateofOlympusMultiplierKeyID)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin1", "Range", base.GateofOlympusReelBaseSpin1Range)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin1", "Reel", base.GateofOlympusReelBaseSpin1Reel)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin1", "Weight", base.GateofOlympusReelBaseSpin1Weight)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin2", "Range", base.GateofOlympusReelBaseSpin2Range)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin2", "Reel", base.GateofOlympusReelBaseSpin2Reel)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin2", "Weight", base.GateofOlympusReelBaseSpin2Weight)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin3", "Range", base.GateofOlympusReelBaseSpin3Range)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin3", "Reel", base.GateofOlympusReelBaseSpin3Reel)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin3", "Weight", base.GateofOlympusReelBaseSpin3Weight)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin7", "Range", base.GateofOlympusReelBaseSpin7Range)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin7", "Reel", base.GateofOlympusReelBaseSpin7Reel)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin7", "Weight", base.GateofOlympusReelBaseSpin7Weight)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin8", "Range", base.GateofOlympusReelBaseSpin8Range)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin8", "Reel", base.GateofOlympusReelBaseSpin8Reel)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin8", "Weight", base.GateofOlympusReelBaseSpin8Weight)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin", "Range", base.GateofOlympusReelBaseSpinRange)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin", "Reel", base.GateofOlympusReelBaseSpinReel)
|
||||
Set("Base", "GateofOlympus/ReelBaseSpin", "Weight", base.GateofOlympusReelBaseSpinWeight)
|
||||
Set("Base", "GateofOlympus/ReelChoose", "Default", base.GateofOlympusReelChoose)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin4", "Range", base.GateofOlympusReelFreeSpin4Range)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin4", "Reel", base.GateofOlympusReelFreeSpin4Reel)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin4", "Weight", base.GateofOlympusReelFreeSpin4Weight)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin5", "Range", base.GateofOlympusReelFreeSpin5Range)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin5", "Reel", base.GateofOlympusReelFreeSpin5Reel)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin5", "Weight", base.GateofOlympusReelFreeSpin5Weight)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin", "Range", base.GateofOlympusReelFreeSpinRange)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin", "Reel", base.GateofOlympusReelFreeSpinReel)
|
||||
Set("Base", "GateofOlympus/ReelFreeSpin", "Weight", base.GateofOlympusReelFreeSpinWeight)
|
||||
Set("Base", "GateofOlympus/Scatter", "Default", base.GateofOlympusScatter)
|
||||
Set("Base", "GateofOlympus/Symbol", "BetRatio", base.GateofOlympusSymbolBetRatio)
|
||||
Set("Base", "GateofOlympus/Symbol", "Default", base.GateofOlympusSymbol)
|
||||
Set("Base", "Matrix/FeaturesForm15X1TypeA", "Default", base.MatrixFeaturesForm15X1TypeA)
|
||||
Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA)
|
||||
Set("Base", "Matrix/FeaturesForm20X1TypeA", "Default", base.MatrixFeaturesForm20X1TypeA)
|
||||
|
@ -618,12 +540,6 @@ 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")
|
||||
|
|
|
@ -44,75 +44,83 @@ func NewBigRat(s string) *big.Rat {
|
|||
type (
|
||||
// BetChangeList comment
|
||||
BetChangeList struct {
|
||||
Index int64
|
||||
Index int64
|
||||
BetChangeList float64
|
||||
BetSizeIndex int64
|
||||
BetSizeIndex int64
|
||||
BetLevelIndex int64
|
||||
}
|
||||
// BetLevel comment
|
||||
BetLevel struct {
|
||||
Index int64
|
||||
Index int64
|
||||
BetLevel int64
|
||||
}
|
||||
// BetLine comment
|
||||
BetLine struct {
|
||||
Index int64
|
||||
Index int64
|
||||
BetLine int64
|
||||
BaseBet int64
|
||||
}
|
||||
// BetSize comment
|
||||
BetSize struct {
|
||||
Index int64
|
||||
Index int64
|
||||
BetSize int64
|
||||
}
|
||||
// CashManiaItemInfo comment
|
||||
CashManiaItemInfo struct {
|
||||
Index int64
|
||||
ItemID int64
|
||||
Value float64
|
||||
IsMid bool
|
||||
}
|
||||
// CashManiaMidItemInfo comment
|
||||
CashManiaMidItemInfo struct {
|
||||
Index int64
|
||||
ItemID int64
|
||||
Multi int64
|
||||
Index int64
|
||||
ItemID int64
|
||||
Multi int64
|
||||
FreeSpinCount int64
|
||||
}
|
||||
// CashManiaOthers comment
|
||||
CashManiaOthers struct {
|
||||
BaseWinPro float64
|
||||
FreeWinPro float64
|
||||
MaxWin int64
|
||||
WinNudgePro float64
|
||||
WinRespinPro float64
|
||||
NoWinNudgePro float64
|
||||
BaseWinPro float64
|
||||
FreeWinPro float64
|
||||
MaxWin int64
|
||||
WinNudgePro float64
|
||||
WinRespinPro float64
|
||||
NoWinNudgePro float64
|
||||
NoWinRespinPro float64
|
||||
}
|
||||
// CashManiaRandomItemWeight comment
|
||||
CashManiaRandomItemWeight struct {
|
||||
ID int64
|
||||
ItemID int64
|
||||
ID int64
|
||||
ItemID int64
|
||||
BaseWeight float64
|
||||
FreeWeight float64
|
||||
}
|
||||
// FirstBet comment
|
||||
FirstBet struct {
|
||||
Index int64
|
||||
BetSizeIndex int64
|
||||
Index int64
|
||||
BetSizeIndex int64
|
||||
BetLevelIndex int64
|
||||
}
|
||||
// Formation comment
|
||||
Formation struct {
|
||||
SpinType int64
|
||||
NodeType string
|
||||
ID int64
|
||||
SeqID int64
|
||||
Reel string
|
||||
Matrix string
|
||||
Symbol string
|
||||
FirstInitMethod int64
|
||||
OtherInitMethod int64
|
||||
SpinType int64
|
||||
NodeType string
|
||||
ID int64
|
||||
SeqID int64
|
||||
Reel string
|
||||
Matrix string
|
||||
Symbol string
|
||||
FirstInitMethod int64
|
||||
OtherInitMethod int64
|
||||
FirstInitSymbols []int64
|
||||
OtherInitSymbols []int64
|
||||
}
|
||||
// FortuneDragonBaseMultiplier comment
|
||||
FortuneDragonBaseMultiplier struct {
|
||||
WinRateMin float64
|
||||
WinRateMax float64
|
||||
ItemIds []int64
|
||||
WinRateMin float64
|
||||
WinRateMax float64
|
||||
ItemIds []int64
|
||||
MultiplierWeights []int64
|
||||
}
|
||||
// FortuneDragonFreeMultiplier comment
|
||||
|
@ -123,126 +131,113 @@ type (
|
|||
// FortuneDragonFreeMultiplierCount comment
|
||||
FortuneDragonFreeMultiplierCount struct {
|
||||
MultiplierCount int64
|
||||
Weight int64
|
||||
Weight int64
|
||||
}
|
||||
// FortuneDragonOthers comment
|
||||
FortuneDragonOthers struct {
|
||||
FreespinTriggerPro float64
|
||||
FreeSpinCount int64
|
||||
MaxWin int64
|
||||
FreespinTriggerPro float64
|
||||
FreeSpinCount int64
|
||||
MaxWin int64
|
||||
SureWinFreespinTriggerPro float64
|
||||
SureWinBetMultiplier int64
|
||||
SureWinBetMultiplier int64
|
||||
}
|
||||
// FortuneMouseOthers comment
|
||||
FortuneMouseOthers struct {
|
||||
RespinTriggerPro float64
|
||||
MaxWin int64
|
||||
ExtraWin int64
|
||||
MaxWin int64
|
||||
ExtraWin int64
|
||||
}
|
||||
// FortuneOxOthers comment
|
||||
FortuneOxOthers struct {
|
||||
RespinTriggerPro float64
|
||||
Multiplier int64
|
||||
MaxWin int64
|
||||
Multiplier int64
|
||||
MaxWin int64
|
||||
}
|
||||
// FortuneRabbitCashPrizeWeight comment
|
||||
FortuneRabbitCashPrizeWeight struct {
|
||||
ID int64
|
||||
PrizeValue float64
|
||||
Weight float64
|
||||
ID int64
|
||||
PrizeValue float64
|
||||
Weight float64
|
||||
NoWinWeight float64
|
||||
}
|
||||
// FortuneRabbitForceCashCountWeight comment
|
||||
FortuneRabbitForceCashCountWeight struct {
|
||||
ID int64
|
||||
Count int64
|
||||
ID int64
|
||||
Count int64
|
||||
Weight float64
|
||||
}
|
||||
// FortuneRabbitOthers comment
|
||||
FortuneRabbitOthers struct {
|
||||
FreespinTriggerPro float64
|
||||
FreeSpinCount int64
|
||||
MaxWin int64
|
||||
}
|
||||
// GateofOlympusMultiplier comment
|
||||
GateofOlympusMultiplier struct {
|
||||
Multiple int64
|
||||
ID int64
|
||||
Weights []int64
|
||||
}
|
||||
// GateofOlympusReelChoose comment
|
||||
GateofOlympusReelChoose struct {
|
||||
ID int64
|
||||
IsFreeSpin bool
|
||||
NodeType string
|
||||
Weights []int64
|
||||
FreeSpinCount int64
|
||||
MaxWin int64
|
||||
}
|
||||
// JackpotPrize comment
|
||||
JackpotPrize struct {
|
||||
PrizeType int64
|
||||
PipeIn int64
|
||||
StartPoint int64
|
||||
IsRolling bool
|
||||
RollingTime int64
|
||||
ReducePercent int64
|
||||
PrizeType int64
|
||||
PipeIn int64
|
||||
StartPoint int64
|
||||
IsRolling bool
|
||||
RollingTime int64
|
||||
ReducePercent int64
|
||||
JackpotLimitByTotalBet int64
|
||||
}
|
||||
// MapRTPMode comment
|
||||
MapRTPMode struct {
|
||||
ID int64
|
||||
ID int64
|
||||
TypeWeight map[int64]*MapRTPModeTypeWeight
|
||||
Desc string
|
||||
Rtp float64
|
||||
Desc string
|
||||
Rtp float64
|
||||
}
|
||||
// MapRTPModeTypeWeight comment
|
||||
MapRTPModeTypeWeight struct {
|
||||
ID int64
|
||||
ID int64
|
||||
Weight int64
|
||||
}
|
||||
// Matrix comment
|
||||
Matrix struct {
|
||||
Type string
|
||||
LinkType int64
|
||||
Type string
|
||||
LinkType int64
|
||||
Direction int64
|
||||
LineCount int64
|
||||
Lines [][]int64
|
||||
Form []int64
|
||||
Lines [][]int64
|
||||
Form []int64
|
||||
}
|
||||
// OptAuthenticate comment
|
||||
OptAuthenticate struct {
|
||||
Flag string
|
||||
Order int64
|
||||
ValidValues []string
|
||||
Flag string
|
||||
Order int64
|
||||
ValidValues []string
|
||||
InvalidValues []string
|
||||
}
|
||||
// OptGroup comment
|
||||
OptGroup struct {
|
||||
ID int64
|
||||
Batch int64
|
||||
ID int64
|
||||
Batch int64
|
||||
IsNewPlayer bool
|
||||
StartTime string
|
||||
EndTime string
|
||||
Affect []int64
|
||||
Weight []int64
|
||||
StartTime string
|
||||
EndTime string
|
||||
Affect []int64
|
||||
Weight []int64
|
||||
}
|
||||
// PrizeModel comment
|
||||
PrizeModel struct {
|
||||
ID int64
|
||||
AniType string
|
||||
ID int64
|
||||
AniType string
|
||||
MinMultiple int64
|
||||
MaxMultiple int64
|
||||
}
|
||||
// Scatter comment
|
||||
Scatter struct {
|
||||
ScatterCount int64
|
||||
FreeSpinBouts int64
|
||||
ScatterCount int64
|
||||
FreeSpinBouts int64
|
||||
FreeSpinExtraBouts int64
|
||||
BasePayrate int64
|
||||
FreePayrate int64
|
||||
BasePayrate int64
|
||||
FreePayrate int64
|
||||
}
|
||||
// ScatterFreeChoose comment
|
||||
ScatterFreeChoose struct {
|
||||
ID int64
|
||||
ID int64
|
||||
FreeSpinTimes int64
|
||||
TouchTimesMin int64
|
||||
TouchTimesMax int64
|
||||
|
@ -250,38 +245,43 @@ type (
|
|||
// SimulatorFSMultiLevel comment
|
||||
SimulatorFSMultiLevel struct {
|
||||
Level int64
|
||||
Min int64
|
||||
Max int64
|
||||
Min int64
|
||||
Max int64
|
||||
}
|
||||
// SuperStackWeight comment
|
||||
SuperStackWeight struct {
|
||||
ID int64
|
||||
ID int64
|
||||
ItemID int64
|
||||
Weight float64
|
||||
}
|
||||
// Symbol comment
|
||||
Symbol struct {
|
||||
ID int64
|
||||
Name string
|
||||
IsWild bool
|
||||
Group []int64
|
||||
PayRate []int64
|
||||
ID int64
|
||||
Name string
|
||||
IsWild bool
|
||||
Group []int64
|
||||
PayRate []int64
|
||||
ClientOrder int64
|
||||
ClientDsc string
|
||||
ClientDsc string
|
||||
}
|
||||
// SymbolBetRatio comment
|
||||
SymbolBetRatio struct {
|
||||
BetRatio float64
|
||||
}
|
||||
// TestBetBetLine comment
|
||||
TestBetBetLine struct {
|
||||
Index int64
|
||||
BetLine int64
|
||||
}
|
||||
// TestRandomWeight comment
|
||||
TestRandomWeight struct {
|
||||
ID int64
|
||||
Time float64
|
||||
ID int64
|
||||
Time float64
|
||||
Weight float64
|
||||
}
|
||||
// Text comment
|
||||
Text struct {
|
||||
Type string
|
||||
Type string
|
||||
Texts []*TextTexts
|
||||
}
|
||||
// TextTexts comment
|
||||
|
@ -291,25 +291,25 @@ type (
|
|||
}
|
||||
// Vector comment
|
||||
Vector struct {
|
||||
Choice int64
|
||||
Ratio float64
|
||||
Vector []int64
|
||||
Choice int64
|
||||
Ratio float64
|
||||
Vector []int64
|
||||
Procedure string
|
||||
}
|
||||
// VectorDemand comment
|
||||
VectorDemand struct {
|
||||
Choice int64
|
||||
MinRatio float64
|
||||
MaxRatio float64
|
||||
Choice int64
|
||||
MinRatio float64
|
||||
MaxRatio float64
|
||||
Procedure string
|
||||
Count int64
|
||||
Count int64
|
||||
}
|
||||
// VectorForceWin comment
|
||||
VectorForceWin struct {
|
||||
Choice int64
|
||||
Choice int64
|
||||
MinRatio float64
|
||||
MaxRatio float64
|
||||
Weight float64
|
||||
Weight float64
|
||||
}
|
||||
// CashManiaBetBetChangeList comment
|
||||
CashManiaBetBetChangeList = BetChangeList
|
||||
|
@ -521,42 +521,6 @@ type (
|
|||
// FortuneTigerSymbolBetRatio comment
|
||||
FortuneTigerSymbolBetRatio = SymbolBetRatio
|
||||
|
||||
// GateofOlympusBetBetChangeList comment
|
||||
GateofOlympusBetBetChangeList = BetChangeList
|
||||
|
||||
// GateofOlympusBetBetLevel comment
|
||||
GateofOlympusBetBetLevel = BetLevel
|
||||
|
||||
// GateofOlympusBetBetLine comment
|
||||
GateofOlympusBetBetLine = BetLine
|
||||
|
||||
// GateofOlympusBetBetSize comment
|
||||
GateofOlympusBetBetSize = BetSize
|
||||
|
||||
// GateofOlympusBetFirstBet comment
|
||||
GateofOlympusBetFirstBet = FirstBet
|
||||
|
||||
// GateofOlympusFormation comment
|
||||
GateofOlympusFormation = Formation
|
||||
|
||||
// GateofOlympusMapRTPMode comment
|
||||
GateofOlympusMapRTPMode = MapRTPMode
|
||||
|
||||
// GateofOlympusMapRTPModeTypeWeight comment
|
||||
GateofOlympusMapRTPModeTypeWeight = MapRTPModeTypeWeight
|
||||
|
||||
// GateofOlympusMultiplierKeyID comment
|
||||
GateofOlympusMultiplierKeyID = GateofOlympusMultiplier
|
||||
|
||||
// GateofOlympusScatter comment
|
||||
GateofOlympusScatter = Scatter
|
||||
|
||||
// GateofOlympusSymbol comment
|
||||
GateofOlympusSymbol = Symbol
|
||||
|
||||
// GateofOlympusSymbolBetRatio comment
|
||||
GateofOlympusSymbolBetRatio = SymbolBetRatio
|
||||
|
||||
// MatrixFeaturesForm15X1TypeA comment
|
||||
MatrixFeaturesForm15X1TypeA = Matrix
|
||||
|
||||
|
@ -827,9 +791,6 @@ type (
|
|||
// TestBetBetLevel comment
|
||||
TestBetBetLevel = BetLevel
|
||||
|
||||
// TestBetBetLine comment
|
||||
TestBetBetLine = BetLine
|
||||
|
||||
// TestBetBetSize comment
|
||||
TestBetBetSize = BetSize
|
||||
|
||||
|
@ -850,4 +811,5 @@ type (
|
|||
|
||||
// TestSymbolBetRatio comment
|
||||
TestSymbolBetRatio = SymbolBetRatio
|
||||
)
|
||||
|
||||
)
|
|
@ -73,4 +73,12 @@ type SpinLock struct {
|
|||
Prize [][]float64 `json:"pe,omitempty"`
|
||||
//OXSpecial
|
||||
NewSuperStack []int64 `json:"nss,omitempty"`
|
||||
|
||||
//CashMania
|
||||
FeatureType int `json:"feature_type,omitempty"` //0.无特性 1.nudge 2.respin
|
||||
NudgeDirection int `json:"nudge_direction,omitempty"` //1.上 2.下
|
||||
FreeSpinItemId int64 `json:"free_item_id,omitempty"`
|
||||
Multiple int64 `json:"multiple,omitempty"` //倍乘倍数
|
||||
Irv [][]float64 `json:"irv,omitempty"`
|
||||
Frv [][]float64 `json:"frv,omitempty"`
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ func (n *MachineDesc) Sheet(excel string, sheet string) interface{} {
|
|||
return n.DataSet.GetMachineSheet(n.Theme, excel, sheet, 0)
|
||||
}
|
||||
|
||||
func (n *MachineDesc) GetLineBet(betSizeIndex int64, betLevelIndex int64) int64 {
|
||||
func (n *MachineDesc) GetLineBet(betSizeIndex, betLevelIndex, betLineIndex int64) int64 {
|
||||
betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize)
|
||||
if !ok {
|
||||
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetSize"))
|
||||
|
@ -55,7 +55,17 @@ func (n *MachineDesc) GetLineBet(betSizeIndex int64, betLevelIndex int64) int64
|
|||
panic(errors.ConfigRowNoMatch.ErrorWith(n.Theme, "BetLevel", betLevelIndex))
|
||||
}
|
||||
|
||||
return betSizeRow.BetSize * betLevelRow.BetLevel
|
||||
betLineRows, ok := n.Sheet("Bet", "BetLine").(map[int64]*structs.BetLine)
|
||||
if !ok {
|
||||
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetLine"))
|
||||
}
|
||||
|
||||
betLineRow, ok := betLineRows[betLineIndex]
|
||||
if !ok {
|
||||
panic(errors.ConfigRowNoMatch.ErrorWith(n.Theme, "BetLine", betLineIndex))
|
||||
}
|
||||
|
||||
return betSizeRow.BetSize * betLevelRow.BetLevel * betLineRow.BaseBet
|
||||
}
|
||||
func (n *MachineDesc) BetSizes() []int64 {
|
||||
betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize)
|
||||
|
@ -90,6 +100,17 @@ func (n *MachineDesc) BetLines() []int64 {
|
|||
}
|
||||
return lists
|
||||
}
|
||||
func (n *MachineDesc) BaseBets() []int64 {
|
||||
baseBetRows, ok := n.Sheet("Bet", "BetLine").(map[int64]*structs.BetLine)
|
||||
if !ok {
|
||||
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BaseBet"))
|
||||
}
|
||||
var lists []int64
|
||||
for _, list := range baseBetRows {
|
||||
lists = append(lists, list.BaseBet)
|
||||
}
|
||||
return lists
|
||||
}
|
||||
func (n *MachineDesc) BetChangeList() []float64 {
|
||||
betChangeListRows, ok := n.Sheet("Bet", "BetChangeList").(map[int64]*structs.BetChangeList)
|
||||
if !ok {
|
||||
|
|
|
@ -281,11 +281,11 @@ func (e *Entity) CalcWinType(multi float64) int64 {
|
|||
}
|
||||
|
||||
func (e *Entity) GetLineBetByType(nodeType string) int64 {
|
||||
return e.MachineDesc.GetLineBet(e.NodeTree.Act.BetSizeIndex, e.NodeTree.Act.BetLevelIndex)
|
||||
return e.MachineDesc.GetLineBet(e.NodeTree.Act.BetSizeIndex, e.NodeTree.Act.BetLevelIndex, e.NodeTree.Act.BetLineIndex)
|
||||
}
|
||||
|
||||
func (e *Entity) GetMinLineBet(nodeType string) int64 {
|
||||
return e.MachineDesc.GetLineBet(1, 1)
|
||||
return e.MachineDesc.GetLineBet(1, 1, 1)
|
||||
}
|
||||
|
||||
func (e *Entity) SetBetCoin(betCoin player.DecCoin) {
|
||||
|
|
|
@ -46,6 +46,7 @@ func (sm *SlotsMgr) Enter(s *base.SlotsSession, gameId int64) (*cli.SlotsEnterRe
|
|||
BetSizes: m.BetSizes(),
|
||||
BetLevels: m.BetLevels(),
|
||||
BetLines: m.BetLines(),
|
||||
BaseBets: m.BaseBets(),
|
||||
BetChangeList: m.BetChangeList(),
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ type Spinner interface {
|
|||
BetSizes() []int64
|
||||
BetLevels() []int64
|
||||
BetLines() []int64
|
||||
BaseBets() []int64
|
||||
BetChangeList() []float64
|
||||
|
||||
Choice() int64
|
||||
|
|
|
@ -39,6 +39,9 @@ func (m *Machine) BetLevels() []int64 {
|
|||
func (m *Machine) BetLines() []int64 {
|
||||
return m.MachineDesc.BetLines()
|
||||
}
|
||||
func (m *Machine) BaseBets() []int64 {
|
||||
return m.MachineDesc.BaseBets()
|
||||
}
|
||||
func (m *Machine) BetChangeList() []float64 {
|
||||
return m.MachineDesc.BetChangeList()
|
||||
}
|
||||
|
|
|
@ -29,8 +29,21 @@ type CustomRespin struct {
|
|||
// 本次的symbol
|
||||
ItemId int64
|
||||
}
|
||||
|
||||
type CustomFortune struct {
|
||||
ForceRound int64 `json:"fr"` //第n次
|
||||
|
||||
FeatureType int `json:"feature_type"` //0.无特性 1.nudge 2.respin
|
||||
NudgeDirection int `json:"nudge_direction"` //1.上 2.下
|
||||
|
||||
FreeSpinItemId int64 `json:"free_item_id"`
|
||||
|
||||
Multiple int64 `json:"multiple"` //倍乘倍数
|
||||
|
||||
FreeStatus int `json:"fs"`
|
||||
FreeSpinNum int64 `json:"fsn"` //剩余freespin
|
||||
FreeNumMax int64 `json:"fnm"` //总次数
|
||||
FreeNumTrigger int64 `json:"fnt"` //新增freespin
|
||||
}
|
||||
|
||||
// Theme is called to get feature theme
|
||||
|
@ -44,8 +57,8 @@ func (p *PluginBase) Customs() []interface{} {
|
|||
&CustomMidInfo{},
|
||||
&CustomNudge{},
|
||||
&CustomRespin{},
|
||||
&Special{},
|
||||
&CustomFortune{})
|
||||
&CustomFortune{},
|
||||
&Special{})
|
||||
}
|
||||
|
||||
// OnStepBegin is called on initializing a step
|
||||
|
@ -58,6 +71,9 @@ func (p *PluginBase) BeforeDisplay(m intf.Master) {
|
|||
case key.BaseSpin:
|
||||
p.changeItem(m, false)
|
||||
case key.FreeSpin:
|
||||
Fortune := getCustomFortune(m)
|
||||
Fortune.FreeStatus = 0
|
||||
Fortune.FreeNumTrigger = 0
|
||||
p.changeItem(m, true)
|
||||
}
|
||||
|
||||
|
@ -67,9 +83,15 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
|
|||
isFreeSpin := m.Cursor().GetType() == key.FreeSpin
|
||||
cursorFormation := m.CursorFormation()
|
||||
symbols := cursorFormation.GetSymbols()
|
||||
|
||||
Fortune := getCustomFortune(m)
|
||||
|
||||
Fortune.FeatureType = WU
|
||||
if m.Bool("Nudge") {
|
||||
Fortune.FeatureType = Nudge
|
||||
//todo 如果当前是nudge
|
||||
if m.Bool("NudgeDown") {
|
||||
Fortune.NudgeDirection = Nudge_Down
|
||||
symbols[9] = symbols[8]
|
||||
symbols[8] = symbols[7]
|
||||
symbols[7] = symbols[6]
|
||||
|
@ -77,6 +99,7 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
|
|||
symbols[5] = Descx(m).RandomMidItems(isFreeSpin, 1)[0]
|
||||
m.Remove("NudgeDown")
|
||||
} else if m.Bool("NudgeUp") {
|
||||
Fortune.NudgeDirection = Nudge_Up
|
||||
symbols[5] = symbols[6]
|
||||
symbols[6] = symbols[7]
|
||||
symbols[7] = symbols[8]
|
||||
|
@ -86,6 +109,7 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
|
|||
}
|
||||
m.Remove("Nudge")
|
||||
} else if m.Bool("Respin") {
|
||||
Fortune.FeatureType = Respin
|
||||
//todo 如果当前是respin
|
||||
if m.Int64("respinsymbols") > 0 {
|
||||
symbols[2] = m.Int64("respinsymbols")
|
||||
|
@ -109,6 +133,14 @@ func (p *PluginBase) AfterSpin(m intf.Master) {
|
|||
p.checkMid(m, false)
|
||||
case key.FreeSpin:
|
||||
p.checkMid(m, true)
|
||||
Fortune := getCustomFortune(m)
|
||||
if Fortune.FreeSpinNum > 0 {
|
||||
if Fortune.FreeSpinNum == 1 {
|
||||
Fortune.FreeStatus = 3
|
||||
}
|
||||
Fortune.FreeSpinNum--
|
||||
//logx.Errorf("这里是哇哇哇 Trigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", Fortune.FreeNumTrigger, Fortune.FreeNumMax, Fortune.FreeSpinNum)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -133,26 +165,24 @@ func (p *PluginBase) Nudge(m intf.Master, symbols []int64) {
|
|||
}
|
||||
}
|
||||
|
||||
// 获取特性数据
|
||||
func (p *PluginBase) getCustomFortune(m intf.Master) *CustomFortune {
|
||||
customFortune := new(CustomFortune)
|
||||
if len(m.CursorCustoms(customFortune)) == 0 {
|
||||
m.AddCursorFeature(customFortune)
|
||||
}
|
||||
return m.CursorCustom(customFortune).(*CustomFortune)
|
||||
}
|
||||
func (p *PluginBase) changeItem(m intf.Master, isFreeSpin bool) {
|
||||
curFormation := m.CursorFormation()
|
||||
symbols := curFormation.GetSymbols()
|
||||
isWin := Descx(m).CheckWin(isFreeSpin)
|
||||
//todo ceshi
|
||||
//isWin = true
|
||||
|
||||
if isFreeSpin {
|
||||
Fortune := p.getCustomFortune(m)
|
||||
Fortune := getCustomFortune(m)
|
||||
if Fortune.ForceRound == m.GetProgressValue() {
|
||||
isWin = true
|
||||
}
|
||||
}
|
||||
isNudge, isReSpin := Descx(m).GetNudgeAndReSpin(isWin)
|
||||
|
||||
//todo ceshi
|
||||
//isNudge = true
|
||||
//isReSpin = true
|
||||
if isWin {
|
||||
itemId := Descx(m).GetWinItem(isFreeSpin)
|
||||
symbols[2] = itemId
|
||||
|
@ -267,13 +297,35 @@ func (p *PluginBase) checkMid(m intf.Master, isFreeSpin bool) {
|
|||
FreeSpinCount: freeSpinCount,
|
||||
}).SetWin(win * (multi - 1))
|
||||
|
||||
Fortune := getCustomFortune(m)
|
||||
|
||||
Fortune.Multiple = multi
|
||||
//Fortune.MultipleWin = win * (multi - 1)
|
||||
Fortune.FreeSpinItemId = symbols[7]
|
||||
if freeSpinCount > 0 {
|
||||
customFortune := getCustomFortune(m)
|
||||
if isFreeSpin {
|
||||
//logx.Errorf("----ReTrigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
|
||||
customFortune.FreeStatus = 2
|
||||
customFortune.FreeNumTrigger = freeSpinCount
|
||||
customFortune.FreeNumMax += freeSpinCount
|
||||
customFortune.FreeSpinNum += freeSpinCount
|
||||
|
||||
//logx.Errorf("----2ReTrigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
|
||||
|
||||
m.AddProgress(freeSpinCount)
|
||||
m.AddCursorFeature(&generic.CustomExtraFreeSpin{ExtraTimes: freeSpinCount}).SetLifetime(1)
|
||||
//m.AddCursorFeature(customFortune).SetLifetime(customFortune.FreeSpinNum)
|
||||
m.CursorFeature(customFortune).SetLifetime(customFortune.FreeSpinNum)
|
||||
} else {
|
||||
//logx.Errorf("11Trigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
|
||||
customFortune.FreeStatus = 1
|
||||
customFortune.FreeNumTrigger = freeSpinCount
|
||||
customFortune.FreeNumMax += freeSpinCount
|
||||
customFortune.FreeSpinNum = freeSpinCount
|
||||
ForceRound := m.Randx().Int63n(freeSpinCount)
|
||||
m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, freeSpinCount).GetID(), &CustomFortune{ForceRound: ForceRound})
|
||||
customFortune.ForceRound = ForceRound
|
||||
//logx.Errorf("1111111Trigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
|
||||
m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, freeSpinCount).GetID(), customFortune).SetLifetime(freeSpinCount)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,25 @@ package cashmania
|
|||
|
||||
import "mongo.games.com/game/gamesrv/slotspkg/slots/intf"
|
||||
|
||||
const (
|
||||
WU int = iota
|
||||
Nudge
|
||||
Respin
|
||||
)
|
||||
const (
|
||||
Nudge_WU int = iota
|
||||
Nudge_Up
|
||||
Nudge_Down
|
||||
)
|
||||
|
||||
// 获取特性数据
|
||||
func getCustomFortune(m intf.Master) *CustomFortune {
|
||||
customFortune := new(CustomFortune)
|
||||
if len(m.CursorCustoms(customFortune)) == 0 {
|
||||
m.AddCursorFeature(customFortune)
|
||||
}
|
||||
return m.CursorCustom(customFortune).(*CustomFortune)
|
||||
}
|
||||
func (p *PluginBase) RandomItemsByMid(m intf.Master, isFreeSpin bool, symbols []int64, poss ...int) {
|
||||
items := Descx(m).RandomMidItems(isFreeSpin, len(poss))
|
||||
for i, pos := range poss {
|
||||
|
|
|
@ -19,6 +19,14 @@ func Descx(m intf.Master) *descx {
|
|||
NodeDesc: m.Desc(),
|
||||
}
|
||||
}
|
||||
func (n descx) GetItemInfo() map[int64]*structs.CashManiaItemInfo {
|
||||
sheet := n.DefaultSheet("ItemInfo")
|
||||
rows, ok := sheet.(map[int64]*structs.CashManiaItemInfo)
|
||||
if !ok {
|
||||
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "CashMania", "S_ItemInfo"))
|
||||
}
|
||||
return rows
|
||||
}
|
||||
|
||||
// 判断是否触发respin
|
||||
func (n descx) CheckWin(isFreeSpin bool) bool {
|
||||
|
|
|
@ -2,6 +2,7 @@ package cashmania
|
|||
|
||||
var Plugins = []interface{}{
|
||||
&PluginBase{},
|
||||
&PluginSpecial{},
|
||||
}
|
||||
|
||||
var SimulatorPlugins = []interface{}{
|
||||
|
|
|
@ -17,6 +17,17 @@ func (p *PluginSpecial) Theme() string {
|
|||
|
||||
// Special
|
||||
type Special struct {
|
||||
FreeStatus int `json:"fs"`
|
||||
FreeSpinNum int64 `json:"fsn"` //剩余freespin
|
||||
FreeNumMax int64 `json:"fnm"` //总次数
|
||||
FreeNumTrigger int64 `json:"fnt"` //新增freespin
|
||||
|
||||
FeatureType int `json:"feature_type"` //0.无特性 1.nudge 2.respin
|
||||
NudgeDirection int `json:"nudge_direction"` //1.上 2.下
|
||||
FreeSpinItemId int64 `json:"free_item_id"`
|
||||
Multiple int64 `json:"multiple"` //倍乘倍数
|
||||
Irv [][]float64 `json:"irv"`
|
||||
Frv [][]float64 `json:"frv"`
|
||||
}
|
||||
|
||||
// 获取特性数据
|
||||
|
@ -28,5 +39,56 @@ func (p *PluginSpecial) getCustomSpecial(m intf.Master) *Special {
|
|||
return m.CursorCustom(customSpecial).(*Special)
|
||||
}
|
||||
func (p *PluginSpecial) AfterSpin(m intf.Master) {
|
||||
Fortune := getCustomFortune(m)
|
||||
sp := p.getCustomSpecial(m)
|
||||
sp.FeatureType = Fortune.FeatureType
|
||||
sp.NudgeDirection = Fortune.NudgeDirection
|
||||
sp.FreeStatus = Fortune.FreeStatus
|
||||
sp.FreeSpinNum = Fortune.FreeSpinNum
|
||||
sp.FreeNumMax = Fortune.FreeNumMax
|
||||
sp.FreeNumTrigger = Fortune.FreeNumTrigger
|
||||
sp.FreeSpinItemId = Fortune.FreeSpinItemId
|
||||
sp.Multiple = Fortune.Multiple
|
||||
|
||||
itemInfo := Descx(m).GetItemInfo()
|
||||
displaySymbols := m.CursorFormation().GetReelFormattedDisplaySymbols()
|
||||
var irv = copyMatrix(displaySymbols)
|
||||
for i, symbol := range displaySymbols {
|
||||
for i2, i3 := range symbol {
|
||||
if itemInfo[i3].IsMid {
|
||||
irv[i][i2] = itemInfo[i3].Value
|
||||
} else {
|
||||
irv[i][i2] = itemInfo[i3].Value * float64(m.Bet()) / 10000
|
||||
}
|
||||
}
|
||||
}
|
||||
sp.Irv = irv
|
||||
|
||||
finalSymbols := m.CursorFormation().GetMatrixFormattedFinalSymbols()
|
||||
var frv = copyMatrix(finalSymbols)
|
||||
for i, symbol := range finalSymbols {
|
||||
for i2, i3 := range symbol {
|
||||
if itemInfo[i3].IsMid {
|
||||
frv[i][i2] = itemInfo[i3].Value
|
||||
} else {
|
||||
frv[i][i2] = itemInfo[i3].Value * float64(m.Bet()) / 10000
|
||||
}
|
||||
}
|
||||
}
|
||||
sp.Frv = frv
|
||||
|
||||
}
|
||||
func copyMatrix(mat [][]int64) [][]float64 {
|
||||
if mat == nil {
|
||||
return nil
|
||||
}
|
||||
var newMat [][]float64
|
||||
for _, row := range mat {
|
||||
var r []float64
|
||||
for _, val := range row {
|
||||
r = append(r, 0*float64(val))
|
||||
}
|
||||
newMat = append(newMat, r)
|
||||
}
|
||||
return newMat
|
||||
}
|
||||
|
|
|
@ -12,10 +12,12 @@ type SlotsEnterResponse struct {
|
|||
BetSizeIndex int64
|
||||
BetLevelIndex int64
|
||||
BetLineIndex int64
|
||||
BaseBetIndex int64
|
||||
BetChangeList []float64
|
||||
BetSizes []int64
|
||||
BetLevels []int64
|
||||
BetLines []int64
|
||||
BaseBets []int64
|
||||
}
|
||||
type SlotsPlayRequest struct {
|
||||
Theme string
|
||||
|
|
Loading…
Reference in New Issue