add cm
This commit is contained in:
parent
a9d67662b3
commit
b7b38d53ae
|
@ -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.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.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] })
|
sort.Slice(BetSizes, func(i, j int) bool { return BetSizes[i] < BetSizes[j] })
|
||||||
tableInfo.BetConfig = BetConfig{
|
tableInfo.BetConfig = BetConfig{
|
||||||
BetChangeList: Response.BetChangeList,
|
BetChangeList: Response.BetChangeList,
|
||||||
BetSize: BetSizes,
|
BetSize: BetSizes,
|
||||||
|
BaseBet: Response.BaseBets,
|
||||||
BetLevel: Response.BetLevels,
|
BetLevel: Response.BetLevels,
|
||||||
BetLines: Response.BetLines,
|
BetLines: Response.BetLines,
|
||||||
BetType: 1,
|
BetType: 1,
|
||||||
BetSizeIndex: Response.BetSizeIndex,
|
BetSizeIndex: Response.BetSizeIndex,
|
||||||
BetLevelIndex: Response.BetLevelIndex,
|
BetLevelIndex: Response.BetLevelIndex,
|
||||||
BetLineIndex: Response.BetLineIndex,
|
BetLineIndex: Response.BetLineIndex,
|
||||||
|
BaseBetIndex: Response.BaseBetIndex,
|
||||||
}
|
}
|
||||||
tableInfo.Coin = float64(Response.Coin) / CoinRate
|
tableInfo.Coin = float64(Response.Coin) / CoinRate
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -47,10 +47,12 @@ type BetConfig struct {
|
||||||
BetSize []float64 `json:"bet_size"` //单注
|
BetSize []float64 `json:"bet_size"` //单注
|
||||||
BetLevel []int64 `json:"bet_level"` //下注线数
|
BetLevel []int64 `json:"bet_level"` //下注线数
|
||||||
BetLines []int64 `json:"bet_lines"` //可选线数
|
BetLines []int64 `json:"bet_lines"` //可选线数
|
||||||
|
BaseBet []int64 `json:"base_bet"` //下注基数
|
||||||
BetType int `json:"bet_type"` //total计算方式 1.显示成Lines betSize*betLevel*lines (lines)
|
BetType int `json:"bet_type"` //total计算方式 1.显示成Lines betSize*betLevel*lines (lines)
|
||||||
BetSizeIndex int64 `json:"bet_size_index"` //选中的单注下标
|
BetSizeIndex int64 `json:"bet_size_index"` //选中的单注下标
|
||||||
BetLevelIndex int64 `json:"bet_level_index"` //选中的等级下标
|
BetLevelIndex int64 `json:"bet_level_index"` //选中的等级下标
|
||||||
BetLineIndex int64 `json:"bet_line_index"` //选中的线数下标
|
BetLineIndex int64 `json:"bet_line_index"` //选中的线数下标
|
||||||
|
BaseBetIndex int64 `json:"base_bet_index"` //选中的下注基数下标
|
||||||
}
|
}
|
||||||
type TableInfo struct {
|
type TableInfo struct {
|
||||||
SpinResult GameEnd `json:"spin_result"`
|
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.
|
@ -134,7 +134,8 @@ func init() {
|
||||||
CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{
|
CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{
|
||||||
0: {
|
0: {
|
||||||
Index: 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{
|
CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{
|
||||||
1: {
|
1: {
|
||||||
ID: 1,
|
ID: 1,
|
||||||
|
@ -468,7 +592,7 @@ func init() {
|
||||||
CashManiaSymbol = map[int64]*structs.CashManiaSymbol{
|
CashManiaSymbol = map[int64]*structs.CashManiaSymbol{
|
||||||
1: {
|
1: {
|
||||||
ID: 1,
|
ID: 1,
|
||||||
Name: "100倍",
|
Name: "10倍",
|
||||||
IsWild: false,
|
IsWild: false,
|
||||||
Group: []int64{1},
|
Group: []int64{1},
|
||||||
PayRate: []int64{0, 0, 100},
|
PayRate: []int64{0, 0, 100},
|
||||||
|
|
|
@ -174,6 +174,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 5,
|
BetLine: 5,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 5,
|
BetLine: 5,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,79 +10,79 @@ func init() {
|
||||||
FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{
|
FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetChangeList: 0.3,
|
BetChangeList: 300000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 0,
|
BetLevelIndex: 0,
|
||||||
},
|
},
|
||||||
1: {
|
1: {
|
||||||
Index: 1,
|
Index: 1,
|
||||||
BetChangeList: 0.6,
|
BetChangeList: 600000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 1,
|
BetLevelIndex: 1,
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
Index: 2,
|
Index: 2,
|
||||||
BetChangeList: 0.9,
|
BetChangeList: 900000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 2,
|
BetLevelIndex: 2,
|
||||||
},
|
},
|
||||||
3: {
|
3: {
|
||||||
Index: 3,
|
Index: 3,
|
||||||
BetChangeList: 1,
|
BetChangeList: 1000000,
|
||||||
BetSizeIndex: 1,
|
BetSizeIndex: 1,
|
||||||
BetLevelIndex: 0,
|
BetLevelIndex: 0,
|
||||||
},
|
},
|
||||||
4: {
|
4: {
|
||||||
Index: 4,
|
Index: 4,
|
||||||
BetChangeList: 1.5,
|
BetChangeList: 1500000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
5: {
|
5: {
|
||||||
Index: 5,
|
Index: 5,
|
||||||
BetChangeList: 3,
|
BetChangeList: 3000000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
6: {
|
6: {
|
||||||
Index: 6,
|
Index: 6,
|
||||||
BetChangeList: 5,
|
BetChangeList: 5000000,
|
||||||
BetSizeIndex: 1,
|
BetSizeIndex: 1,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
7: {
|
7: {
|
||||||
Index: 7,
|
Index: 7,
|
||||||
BetChangeList: 9,
|
BetChangeList: 9000000,
|
||||||
BetSizeIndex: 3,
|
BetSizeIndex: 3,
|
||||||
BetLevelIndex: 0,
|
BetLevelIndex: 0,
|
||||||
},
|
},
|
||||||
8: {
|
8: {
|
||||||
Index: 8,
|
Index: 8,
|
||||||
BetChangeList: 10,
|
BetChangeList: 10000000,
|
||||||
BetSizeIndex: 1,
|
BetSizeIndex: 1,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
9: {
|
9: {
|
||||||
Index: 9,
|
Index: 9,
|
||||||
BetChangeList: 15,
|
BetChangeList: 15000000,
|
||||||
BetSizeIndex: 2,
|
BetSizeIndex: 2,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
10: {
|
10: {
|
||||||
Index: 10,
|
Index: 10,
|
||||||
BetChangeList: 30,
|
BetChangeList: 30000000,
|
||||||
BetSizeIndex: 2,
|
BetSizeIndex: 2,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
11: {
|
11: {
|
||||||
Index: 11,
|
Index: 11,
|
||||||
BetChangeList: 45,
|
BetChangeList: 45000000,
|
||||||
BetSizeIndex: 3,
|
BetSizeIndex: 3,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
12: {
|
12: {
|
||||||
Index: 12,
|
Index: 12,
|
||||||
BetChangeList: 90,
|
BetChangeList: 90000000,
|
||||||
BetSizeIndex: 3,
|
BetSizeIndex: 3,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
|
@ -135,25 +135,26 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 10,
|
BetLine: 10,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{
|
FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetSize: 300,
|
BetSize: 300000000,
|
||||||
},
|
},
|
||||||
1: {
|
1: {
|
||||||
Index: 1,
|
Index: 1,
|
||||||
BetSize: 1000,
|
BetSize: 1000000000,
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
Index: 2,
|
Index: 2,
|
||||||
BetSize: 3000,
|
BetSize: 3000000000,
|
||||||
},
|
},
|
||||||
3: {
|
3: {
|
||||||
Index: 3,
|
Index: 3,
|
||||||
BetSize: 9000,
|
BetSize: 9000000000,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 10,
|
BetLine: 10,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 5,
|
BetLine: 5,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -10,6 +10,7 @@ var (
|
||||||
CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{}
|
CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{}
|
||||||
CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{}
|
CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{}
|
||||||
CashManiaFormation = []*structs.CashManiaFormation{}
|
CashManiaFormation = []*structs.CashManiaFormation{}
|
||||||
|
CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{}
|
||||||
CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{}
|
CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{}
|
||||||
CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{}
|
CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{}
|
||||||
CashManiaOthers = []*structs.CashManiaOthers{}
|
CashManiaOthers = []*structs.CashManiaOthers{}
|
||||||
|
@ -119,46 +120,6 @@ var (
|
||||||
FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{}
|
FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{}
|
||||||
FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{}
|
FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{}
|
||||||
FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{}
|
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{}
|
MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{}
|
||||||
MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{}
|
MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{}
|
||||||
MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{}
|
MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{}
|
||||||
|
|
|
@ -3,7 +3,7 @@ package storage
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"mongo.games.com/game/gamesrv/slotspkg/internal/exported/excel2go/base"
|
"slotspkg/internal/exported/excel2go/base"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -69,6 +69,7 @@ func StoragesLoading(data map[string]string) {
|
||||||
Load(data, "Base.CashMania/Bet.BetSize", &base.CashManiaBetBetSize)
|
Load(data, "Base.CashMania/Bet.BetSize", &base.CashManiaBetBetSize)
|
||||||
Load(data, "Base.CashMania/Bet.FirstBet", &base.CashManiaBetFirstBet)
|
Load(data, "Base.CashMania/Bet.FirstBet", &base.CashManiaBetFirstBet)
|
||||||
Load(data, "Base.CashMania/Formation.Default", &base.CashManiaFormation)
|
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/Map.RTPMode", &base.CashManiaMapRTPMode)
|
||||||
Load(data, "Base.CashMania/MidItemInfo.Default", &base.CashManiaMidItemInfo)
|
Load(data, "Base.CashMania/MidItemInfo.Default", &base.CashManiaMidItemInfo)
|
||||||
Load(data, "Base.CashMania/Others.Default", &base.CashManiaOthers)
|
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/SuperStack.Weight", &base.FortuneTigerSuperStackWeight)
|
||||||
Load(data, "Base.FortuneTiger/Symbol.BetRatio", &base.FortuneTigerSymbolBetRatio)
|
Load(data, "Base.FortuneTiger/Symbol.BetRatio", &base.FortuneTigerSymbolBetRatio)
|
||||||
Load(data, "Base.FortuneTiger/Symbol.Default", &base.FortuneTigerSymbol)
|
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/FeaturesForm15X1TypeA.Default", &base.MatrixFeaturesForm15X1TypeA)
|
||||||
Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA)
|
Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA)
|
||||||
Load(data, "Base.Matrix/FeaturesForm20X1TypeA.Default", &base.MatrixFeaturesForm20X1TypeA)
|
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", "BetSize", base.CashManiaBetBetSize)
|
||||||
Set("Base", "CashMania/Bet", "FirstBet", base.CashManiaBetFirstBet)
|
Set("Base", "CashMania/Bet", "FirstBet", base.CashManiaBetFirstBet)
|
||||||
Set("Base", "CashMania/Formation", "Default", base.CashManiaFormation)
|
Set("Base", "CashMania/Formation", "Default", base.CashManiaFormation)
|
||||||
|
Set("Base", "CashMania/ItemInfo", "Default", base.CashManiaItemInfo)
|
||||||
Set("Base", "CashMania/Map", "RTPMode", base.CashManiaMapRTPMode)
|
Set("Base", "CashMania/Map", "RTPMode", base.CashManiaMapRTPMode)
|
||||||
Set("Base", "CashMania/MidItemInfo", "Default", base.CashManiaMidItemInfo)
|
Set("Base", "CashMania/MidItemInfo", "Default", base.CashManiaMidItemInfo)
|
||||||
Set("Base", "CashMania/Others", "Default", base.CashManiaOthers)
|
Set("Base", "CashMania/Others", "Default", base.CashManiaOthers)
|
||||||
|
@ -439,46 +401,6 @@ func StoragesMapping() {
|
||||||
Set("Base", "FortuneTiger/SuperStack", "Weight", base.FortuneTigerSuperStackWeight)
|
Set("Base", "FortuneTiger/SuperStack", "Weight", base.FortuneTigerSuperStackWeight)
|
||||||
Set("Base", "FortuneTiger/Symbol", "BetRatio", base.FortuneTigerSymbolBetRatio)
|
Set("Base", "FortuneTiger/Symbol", "BetRatio", base.FortuneTigerSymbolBetRatio)
|
||||||
Set("Base", "FortuneTiger/Symbol", "Default", base.FortuneTigerSymbol)
|
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/FeaturesForm15X1TypeA", "Default", base.MatrixFeaturesForm15X1TypeA)
|
||||||
Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA)
|
Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA)
|
||||||
Set("Base", "Matrix/FeaturesForm20X1TypeA", "Default", base.MatrixFeaturesForm20X1TypeA)
|
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/1", "FortuneTiger/ReelBaseSpin", "Weight")
|
||||||
Link("FortuneTiger/ReelBaseSpin", "Weight/2", "FortuneTiger/ReelBaseSpin", "Weight")
|
Link("FortuneTiger/ReelBaseSpin", "Weight/2", "FortuneTiger/ReelBaseSpin", "Weight")
|
||||||
Link("FortuneTiger/ReelBaseSpin", "Weight/3", "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/MatrixLine1Form3X3TypeA", "Default", "Matrix/Line1Form3X3TypeA", "Default")
|
||||||
Link("Test/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default")
|
Link("Test/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default")
|
||||||
Link("Test/ReelBaseSpin", "Weight/1", "Test/ReelBaseSpin", "Weight")
|
Link("Test/ReelBaseSpin", "Weight/1", "Test/ReelBaseSpin", "Weight")
|
||||||
|
@ -720,3 +636,4 @@ func Load(dataMap map[string]string, name string, v interface{}) {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,75 +44,88 @@ func NewBigRat(s string) *big.Rat {
|
||||||
type (
|
type (
|
||||||
// BetChangeList comment
|
// BetChangeList comment
|
||||||
BetChangeList struct {
|
BetChangeList struct {
|
||||||
Index int64
|
Index int64
|
||||||
BetChangeList float64
|
BetChangeList float64
|
||||||
BetSizeIndex int64
|
BetSizeIndex int64
|
||||||
BetLevelIndex int64
|
BetLevelIndex int64
|
||||||
}
|
}
|
||||||
// BetLevel comment
|
// BetLevel comment
|
||||||
BetLevel struct {
|
BetLevel struct {
|
||||||
Index int64
|
Index int64
|
||||||
BetLevel int64
|
BetLevel int64
|
||||||
}
|
}
|
||||||
// BetLine comment
|
// BetLine comment
|
||||||
BetLine struct {
|
BetLine struct {
|
||||||
Index int64
|
Index int64
|
||||||
BetLine int64
|
BetLine int64
|
||||||
}
|
}
|
||||||
// BetSize comment
|
// BetSize comment
|
||||||
BetSize struct {
|
BetSize struct {
|
||||||
Index int64
|
Index int64
|
||||||
BetSize int64
|
BetSize int64
|
||||||
}
|
}
|
||||||
|
// CashManiaBetBetLine comment
|
||||||
|
CashManiaBetBetLine struct {
|
||||||
|
Index int64
|
||||||
|
BetLine int64
|
||||||
|
BaseBet int64
|
||||||
|
}
|
||||||
|
// CashManiaItemInfo comment
|
||||||
|
CashManiaItemInfo struct {
|
||||||
|
Index int64
|
||||||
|
ItemID int64
|
||||||
|
Value float64
|
||||||
|
IsMid bool
|
||||||
|
}
|
||||||
// CashManiaMidItemInfo comment
|
// CashManiaMidItemInfo comment
|
||||||
CashManiaMidItemInfo struct {
|
CashManiaMidItemInfo struct {
|
||||||
Index int64
|
Index int64
|
||||||
ItemID int64
|
ItemID int64
|
||||||
Multi int64
|
Multi int64
|
||||||
FreeSpinCount int64
|
FreeSpinCount int64
|
||||||
}
|
}
|
||||||
// CashManiaOthers comment
|
// CashManiaOthers comment
|
||||||
CashManiaOthers struct {
|
CashManiaOthers struct {
|
||||||
BaseWinPro float64
|
BaseWinPro float64
|
||||||
FreeWinPro float64
|
FreeWinPro float64
|
||||||
MaxWin int64
|
MaxWin int64
|
||||||
WinNudgePro float64
|
WinNudgePro float64
|
||||||
WinRespinPro float64
|
WinRespinPro float64
|
||||||
NoWinNudgePro float64
|
NoWinNudgePro float64
|
||||||
NoWinRespinPro float64
|
NoWinRespinPro float64
|
||||||
}
|
}
|
||||||
// CashManiaRandomItemWeight comment
|
// CashManiaRandomItemWeight comment
|
||||||
CashManiaRandomItemWeight struct {
|
CashManiaRandomItemWeight struct {
|
||||||
ID int64
|
ID int64
|
||||||
ItemID int64
|
ItemID int64
|
||||||
BaseWeight float64
|
BaseWeight float64
|
||||||
FreeWeight float64
|
FreeWeight float64
|
||||||
}
|
}
|
||||||
// FirstBet comment
|
// FirstBet comment
|
||||||
FirstBet struct {
|
FirstBet struct {
|
||||||
Index int64
|
Index int64
|
||||||
BetSizeIndex int64
|
BetSizeIndex int64
|
||||||
BetLevelIndex int64
|
BetLevelIndex int64
|
||||||
}
|
}
|
||||||
// Formation comment
|
// Formation comment
|
||||||
Formation struct {
|
Formation struct {
|
||||||
SpinType int64
|
SpinType int64
|
||||||
NodeType string
|
NodeType string
|
||||||
ID int64
|
ID int64
|
||||||
SeqID int64
|
SeqID int64
|
||||||
Reel string
|
Reel string
|
||||||
Matrix string
|
Matrix string
|
||||||
Symbol string
|
Symbol string
|
||||||
FirstInitMethod int64
|
FirstInitMethod int64
|
||||||
OtherInitMethod int64
|
OtherInitMethod int64
|
||||||
FirstInitSymbols []int64
|
FirstInitSymbols []int64
|
||||||
OtherInitSymbols []int64
|
OtherInitSymbols []int64
|
||||||
}
|
}
|
||||||
// FortuneDragonBaseMultiplier comment
|
// FortuneDragonBaseMultiplier comment
|
||||||
FortuneDragonBaseMultiplier struct {
|
FortuneDragonBaseMultiplier struct {
|
||||||
WinRateMin float64
|
WinRateMin float64
|
||||||
WinRateMax float64
|
WinRateMax float64
|
||||||
ItemIds []int64
|
ItemIds []int64
|
||||||
MultiplierWeights []int64
|
MultiplierWeights []int64
|
||||||
}
|
}
|
||||||
// FortuneDragonFreeMultiplier comment
|
// FortuneDragonFreeMultiplier comment
|
||||||
|
@ -123,126 +136,113 @@ type (
|
||||||
// FortuneDragonFreeMultiplierCount comment
|
// FortuneDragonFreeMultiplierCount comment
|
||||||
FortuneDragonFreeMultiplierCount struct {
|
FortuneDragonFreeMultiplierCount struct {
|
||||||
MultiplierCount int64
|
MultiplierCount int64
|
||||||
Weight int64
|
Weight int64
|
||||||
}
|
}
|
||||||
// FortuneDragonOthers comment
|
// FortuneDragonOthers comment
|
||||||
FortuneDragonOthers struct {
|
FortuneDragonOthers struct {
|
||||||
FreespinTriggerPro float64
|
FreespinTriggerPro float64
|
||||||
FreeSpinCount int64
|
FreeSpinCount int64
|
||||||
MaxWin int64
|
MaxWin int64
|
||||||
SureWinFreespinTriggerPro float64
|
SureWinFreespinTriggerPro float64
|
||||||
SureWinBetMultiplier int64
|
SureWinBetMultiplier int64
|
||||||
}
|
}
|
||||||
// FortuneMouseOthers comment
|
// FortuneMouseOthers comment
|
||||||
FortuneMouseOthers struct {
|
FortuneMouseOthers struct {
|
||||||
RespinTriggerPro float64
|
RespinTriggerPro float64
|
||||||
MaxWin int64
|
MaxWin int64
|
||||||
ExtraWin int64
|
ExtraWin int64
|
||||||
}
|
}
|
||||||
// FortuneOxOthers comment
|
// FortuneOxOthers comment
|
||||||
FortuneOxOthers struct {
|
FortuneOxOthers struct {
|
||||||
RespinTriggerPro float64
|
RespinTriggerPro float64
|
||||||
Multiplier int64
|
Multiplier int64
|
||||||
MaxWin int64
|
MaxWin int64
|
||||||
}
|
}
|
||||||
// FortuneRabbitCashPrizeWeight comment
|
// FortuneRabbitCashPrizeWeight comment
|
||||||
FortuneRabbitCashPrizeWeight struct {
|
FortuneRabbitCashPrizeWeight struct {
|
||||||
ID int64
|
ID int64
|
||||||
PrizeValue float64
|
PrizeValue float64
|
||||||
Weight float64
|
Weight float64
|
||||||
NoWinWeight float64
|
NoWinWeight float64
|
||||||
}
|
}
|
||||||
// FortuneRabbitForceCashCountWeight comment
|
// FortuneRabbitForceCashCountWeight comment
|
||||||
FortuneRabbitForceCashCountWeight struct {
|
FortuneRabbitForceCashCountWeight struct {
|
||||||
ID int64
|
ID int64
|
||||||
Count int64
|
Count int64
|
||||||
Weight float64
|
Weight float64
|
||||||
}
|
}
|
||||||
// FortuneRabbitOthers comment
|
// FortuneRabbitOthers comment
|
||||||
FortuneRabbitOthers struct {
|
FortuneRabbitOthers struct {
|
||||||
FreespinTriggerPro float64
|
FreespinTriggerPro float64
|
||||||
FreeSpinCount int64
|
FreeSpinCount int64
|
||||||
MaxWin 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
|
|
||||||
}
|
}
|
||||||
// JackpotPrize comment
|
// JackpotPrize comment
|
||||||
JackpotPrize struct {
|
JackpotPrize struct {
|
||||||
PrizeType int64
|
PrizeType int64
|
||||||
PipeIn int64
|
PipeIn int64
|
||||||
StartPoint int64
|
StartPoint int64
|
||||||
IsRolling bool
|
IsRolling bool
|
||||||
RollingTime int64
|
RollingTime int64
|
||||||
ReducePercent int64
|
ReducePercent int64
|
||||||
JackpotLimitByTotalBet int64
|
JackpotLimitByTotalBet int64
|
||||||
}
|
}
|
||||||
// MapRTPMode comment
|
// MapRTPMode comment
|
||||||
MapRTPMode struct {
|
MapRTPMode struct {
|
||||||
ID int64
|
ID int64
|
||||||
TypeWeight map[int64]*MapRTPModeTypeWeight
|
TypeWeight map[int64]*MapRTPModeTypeWeight
|
||||||
Desc string
|
Desc string
|
||||||
Rtp float64
|
Rtp float64
|
||||||
}
|
}
|
||||||
// MapRTPModeTypeWeight comment
|
// MapRTPModeTypeWeight comment
|
||||||
MapRTPModeTypeWeight struct {
|
MapRTPModeTypeWeight struct {
|
||||||
ID int64
|
ID int64
|
||||||
Weight int64
|
Weight int64
|
||||||
}
|
}
|
||||||
// Matrix comment
|
// Matrix comment
|
||||||
Matrix struct {
|
Matrix struct {
|
||||||
Type string
|
Type string
|
||||||
LinkType int64
|
LinkType int64
|
||||||
Direction int64
|
Direction int64
|
||||||
LineCount int64
|
LineCount int64
|
||||||
Lines [][]int64
|
Lines [][]int64
|
||||||
Form []int64
|
Form []int64
|
||||||
}
|
}
|
||||||
// OptAuthenticate comment
|
// OptAuthenticate comment
|
||||||
OptAuthenticate struct {
|
OptAuthenticate struct {
|
||||||
Flag string
|
Flag string
|
||||||
Order int64
|
Order int64
|
||||||
ValidValues []string
|
ValidValues []string
|
||||||
InvalidValues []string
|
InvalidValues []string
|
||||||
}
|
}
|
||||||
// OptGroup comment
|
// OptGroup comment
|
||||||
OptGroup struct {
|
OptGroup struct {
|
||||||
ID int64
|
ID int64
|
||||||
Batch int64
|
Batch int64
|
||||||
IsNewPlayer bool
|
IsNewPlayer bool
|
||||||
StartTime string
|
StartTime string
|
||||||
EndTime string
|
EndTime string
|
||||||
Affect []int64
|
Affect []int64
|
||||||
Weight []int64
|
Weight []int64
|
||||||
}
|
}
|
||||||
// PrizeModel comment
|
// PrizeModel comment
|
||||||
PrizeModel struct {
|
PrizeModel struct {
|
||||||
ID int64
|
ID int64
|
||||||
AniType string
|
AniType string
|
||||||
MinMultiple int64
|
MinMultiple int64
|
||||||
MaxMultiple int64
|
MaxMultiple int64
|
||||||
}
|
}
|
||||||
// Scatter comment
|
// Scatter comment
|
||||||
Scatter struct {
|
Scatter struct {
|
||||||
ScatterCount int64
|
ScatterCount int64
|
||||||
FreeSpinBouts int64
|
FreeSpinBouts int64
|
||||||
FreeSpinExtraBouts int64
|
FreeSpinExtraBouts int64
|
||||||
BasePayrate int64
|
BasePayrate int64
|
||||||
FreePayrate int64
|
FreePayrate int64
|
||||||
}
|
}
|
||||||
// ScatterFreeChoose comment
|
// ScatterFreeChoose comment
|
||||||
ScatterFreeChoose struct {
|
ScatterFreeChoose struct {
|
||||||
ID int64
|
ID int64
|
||||||
FreeSpinTimes int64
|
FreeSpinTimes int64
|
||||||
TouchTimesMin int64
|
TouchTimesMin int64
|
||||||
TouchTimesMax int64
|
TouchTimesMax int64
|
||||||
|
@ -250,24 +250,24 @@ type (
|
||||||
// SimulatorFSMultiLevel comment
|
// SimulatorFSMultiLevel comment
|
||||||
SimulatorFSMultiLevel struct {
|
SimulatorFSMultiLevel struct {
|
||||||
Level int64
|
Level int64
|
||||||
Min int64
|
Min int64
|
||||||
Max int64
|
Max int64
|
||||||
}
|
}
|
||||||
// SuperStackWeight comment
|
// SuperStackWeight comment
|
||||||
SuperStackWeight struct {
|
SuperStackWeight struct {
|
||||||
ID int64
|
ID int64
|
||||||
ItemID int64
|
ItemID int64
|
||||||
Weight float64
|
Weight float64
|
||||||
}
|
}
|
||||||
// Symbol comment
|
// Symbol comment
|
||||||
Symbol struct {
|
Symbol struct {
|
||||||
ID int64
|
ID int64
|
||||||
Name string
|
Name string
|
||||||
IsWild bool
|
IsWild bool
|
||||||
Group []int64
|
Group []int64
|
||||||
PayRate []int64
|
PayRate []int64
|
||||||
ClientOrder int64
|
ClientOrder int64
|
||||||
ClientDsc string
|
ClientDsc string
|
||||||
}
|
}
|
||||||
// SymbolBetRatio comment
|
// SymbolBetRatio comment
|
||||||
SymbolBetRatio struct {
|
SymbolBetRatio struct {
|
||||||
|
@ -275,13 +275,13 @@ type (
|
||||||
}
|
}
|
||||||
// TestRandomWeight comment
|
// TestRandomWeight comment
|
||||||
TestRandomWeight struct {
|
TestRandomWeight struct {
|
||||||
ID int64
|
ID int64
|
||||||
Time float64
|
Time float64
|
||||||
Weight float64
|
Weight float64
|
||||||
}
|
}
|
||||||
// Text comment
|
// Text comment
|
||||||
Text struct {
|
Text struct {
|
||||||
Type string
|
Type string
|
||||||
Texts []*TextTexts
|
Texts []*TextTexts
|
||||||
}
|
}
|
||||||
// TextTexts comment
|
// TextTexts comment
|
||||||
|
@ -291,25 +291,25 @@ type (
|
||||||
}
|
}
|
||||||
// Vector comment
|
// Vector comment
|
||||||
Vector struct {
|
Vector struct {
|
||||||
Choice int64
|
Choice int64
|
||||||
Ratio float64
|
Ratio float64
|
||||||
Vector []int64
|
Vector []int64
|
||||||
Procedure string
|
Procedure string
|
||||||
}
|
}
|
||||||
// VectorDemand comment
|
// VectorDemand comment
|
||||||
VectorDemand struct {
|
VectorDemand struct {
|
||||||
Choice int64
|
Choice int64
|
||||||
MinRatio float64
|
MinRatio float64
|
||||||
MaxRatio float64
|
MaxRatio float64
|
||||||
Procedure string
|
Procedure string
|
||||||
Count int64
|
Count int64
|
||||||
}
|
}
|
||||||
// VectorForceWin comment
|
// VectorForceWin comment
|
||||||
VectorForceWin struct {
|
VectorForceWin struct {
|
||||||
Choice int64
|
Choice int64
|
||||||
MinRatio float64
|
MinRatio float64
|
||||||
MaxRatio float64
|
MaxRatio float64
|
||||||
Weight float64
|
Weight float64
|
||||||
}
|
}
|
||||||
// CashManiaBetBetChangeList comment
|
// CashManiaBetBetChangeList comment
|
||||||
CashManiaBetBetChangeList = BetChangeList
|
CashManiaBetBetChangeList = BetChangeList
|
||||||
|
@ -317,9 +317,6 @@ type (
|
||||||
// CashManiaBetBetLevel comment
|
// CashManiaBetBetLevel comment
|
||||||
CashManiaBetBetLevel = BetLevel
|
CashManiaBetBetLevel = BetLevel
|
||||||
|
|
||||||
// CashManiaBetBetLine comment
|
|
||||||
CashManiaBetBetLine = BetLine
|
|
||||||
|
|
||||||
// CashManiaBetBetSize comment
|
// CashManiaBetBetSize comment
|
||||||
CashManiaBetBetSize = BetSize
|
CashManiaBetBetSize = BetSize
|
||||||
|
|
||||||
|
@ -357,7 +354,7 @@ type (
|
||||||
FortuneDragonBetBetLevel = BetLevel
|
FortuneDragonBetBetLevel = BetLevel
|
||||||
|
|
||||||
// FortuneDragonBetBetLine comment
|
// FortuneDragonBetBetLine comment
|
||||||
FortuneDragonBetBetLine = BetLine
|
FortuneDragonBetBetLine = CashManiaBetBetLine
|
||||||
|
|
||||||
// FortuneDragonBetBetSize comment
|
// FortuneDragonBetBetSize comment
|
||||||
FortuneDragonBetBetSize = BetSize
|
FortuneDragonBetBetSize = BetSize
|
||||||
|
@ -387,7 +384,7 @@ type (
|
||||||
FortuneMouseBetBetLevel = BetLevel
|
FortuneMouseBetBetLevel = BetLevel
|
||||||
|
|
||||||
// FortuneMouseBetBetLine comment
|
// FortuneMouseBetBetLine comment
|
||||||
FortuneMouseBetBetLine = BetLine
|
FortuneMouseBetBetLine = CashManiaBetBetLine
|
||||||
|
|
||||||
// FortuneMouseBetBetSize comment
|
// FortuneMouseBetBetSize comment
|
||||||
FortuneMouseBetBetSize = BetSize
|
FortuneMouseBetBetSize = BetSize
|
||||||
|
@ -420,7 +417,7 @@ type (
|
||||||
FortuneOxBetBetLevel = BetLevel
|
FortuneOxBetBetLevel = BetLevel
|
||||||
|
|
||||||
// FortuneOxBetBetLine comment
|
// FortuneOxBetBetLine comment
|
||||||
FortuneOxBetBetLine = BetLine
|
FortuneOxBetBetLine = CashManiaBetBetLine
|
||||||
|
|
||||||
// FortuneOxBetBetSize comment
|
// FortuneOxBetBetSize comment
|
||||||
FortuneOxBetBetSize = BetSize
|
FortuneOxBetBetSize = BetSize
|
||||||
|
@ -456,7 +453,7 @@ type (
|
||||||
FortuneRabbitBetBetLevel = BetLevel
|
FortuneRabbitBetBetLevel = BetLevel
|
||||||
|
|
||||||
// FortuneRabbitBetBetLine comment
|
// FortuneRabbitBetBetLine comment
|
||||||
FortuneRabbitBetBetLine = BetLine
|
FortuneRabbitBetBetLine = CashManiaBetBetLine
|
||||||
|
|
||||||
// FortuneRabbitBetBetSize comment
|
// FortuneRabbitBetBetSize comment
|
||||||
FortuneRabbitBetBetSize = BetSize
|
FortuneRabbitBetBetSize = BetSize
|
||||||
|
@ -492,7 +489,7 @@ type (
|
||||||
FortuneTigerBetBetLevel = BetLevel
|
FortuneTigerBetBetLevel = BetLevel
|
||||||
|
|
||||||
// FortuneTigerBetBetLine comment
|
// FortuneTigerBetBetLine comment
|
||||||
FortuneTigerBetBetLine = BetLine
|
FortuneTigerBetBetLine = CashManiaBetBetLine
|
||||||
|
|
||||||
// FortuneTigerBetBetSize comment
|
// FortuneTigerBetBetSize comment
|
||||||
FortuneTigerBetBetSize = BetSize
|
FortuneTigerBetBetSize = BetSize
|
||||||
|
@ -521,42 +518,6 @@ type (
|
||||||
// FortuneTigerSymbolBetRatio comment
|
// FortuneTigerSymbolBetRatio comment
|
||||||
FortuneTigerSymbolBetRatio = SymbolBetRatio
|
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 comment
|
||||||
MatrixFeaturesForm15X1TypeA = Matrix
|
MatrixFeaturesForm15X1TypeA = Matrix
|
||||||
|
|
||||||
|
@ -850,4 +811,5 @@ type (
|
||||||
|
|
||||||
// TestSymbolBetRatio comment
|
// TestSymbolBetRatio comment
|
||||||
TestSymbolBetRatio = SymbolBetRatio
|
TestSymbolBetRatio = SymbolBetRatio
|
||||||
|
|
||||||
)
|
)
|
|
@ -73,4 +73,12 @@ type SpinLock struct {
|
||||||
Prize [][]float64 `json:"pe,omitempty"`
|
Prize [][]float64 `json:"pe,omitempty"`
|
||||||
//OXSpecial
|
//OXSpecial
|
||||||
NewSuperStack []int64 `json:"nss,omitempty"`
|
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)
|
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)
|
betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize)
|
||||||
if !ok {
|
if !ok {
|
||||||
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetSize"))
|
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))
|
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 {
|
func (n *MachineDesc) BetSizes() []int64 {
|
||||||
betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize)
|
betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize)
|
||||||
|
@ -90,6 +100,17 @@ func (n *MachineDesc) BetLines() []int64 {
|
||||||
}
|
}
|
||||||
return lists
|
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 {
|
func (n *MachineDesc) BetChangeList() []float64 {
|
||||||
betChangeListRows, ok := n.Sheet("Bet", "BetChangeList").(map[int64]*structs.BetChangeList)
|
betChangeListRows, ok := n.Sheet("Bet", "BetChangeList").(map[int64]*structs.BetChangeList)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
|
|
@ -281,11 +281,11 @@ func (e *Entity) CalcWinType(multi float64) int64 {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Entity) GetLineBetByType(nodeType string) 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 {
|
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) {
|
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(),
|
BetSizes: m.BetSizes(),
|
||||||
BetLevels: m.BetLevels(),
|
BetLevels: m.BetLevels(),
|
||||||
BetLines: m.BetLines(),
|
BetLines: m.BetLines(),
|
||||||
|
BaseBets: m.BaseBets(),
|
||||||
BetChangeList: m.BetChangeList(),
|
BetChangeList: m.BetChangeList(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@ type Spinner interface {
|
||||||
BetSizes() []int64
|
BetSizes() []int64
|
||||||
BetLevels() []int64
|
BetLevels() []int64
|
||||||
BetLines() []int64
|
BetLines() []int64
|
||||||
|
BaseBets() []int64
|
||||||
BetChangeList() []float64
|
BetChangeList() []float64
|
||||||
|
|
||||||
Choice() int64
|
Choice() int64
|
||||||
|
|
|
@ -39,6 +39,9 @@ func (m *Machine) BetLevels() []int64 {
|
||||||
func (m *Machine) BetLines() []int64 {
|
func (m *Machine) BetLines() []int64 {
|
||||||
return m.MachineDesc.BetLines()
|
return m.MachineDesc.BetLines()
|
||||||
}
|
}
|
||||||
|
func (m *Machine) BaseBets() []int64 {
|
||||||
|
return m.MachineDesc.BaseBets()
|
||||||
|
}
|
||||||
func (m *Machine) BetChangeList() []float64 {
|
func (m *Machine) BetChangeList() []float64 {
|
||||||
return m.MachineDesc.BetChangeList()
|
return m.MachineDesc.BetChangeList()
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,8 +29,21 @@ type CustomRespin struct {
|
||||||
// 本次的symbol
|
// 本次的symbol
|
||||||
ItemId int64
|
ItemId int64
|
||||||
}
|
}
|
||||||
|
|
||||||
type CustomFortune struct {
|
type CustomFortune struct {
|
||||||
ForceRound int64 `json:"fr"` //第n次
|
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
|
// Theme is called to get feature theme
|
||||||
|
@ -44,8 +57,8 @@ func (p *PluginBase) Customs() []interface{} {
|
||||||
&CustomMidInfo{},
|
&CustomMidInfo{},
|
||||||
&CustomNudge{},
|
&CustomNudge{},
|
||||||
&CustomRespin{},
|
&CustomRespin{},
|
||||||
&Special{},
|
&CustomFortune{},
|
||||||
&CustomFortune{})
|
&Special{})
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnStepBegin is called on initializing a step
|
// OnStepBegin is called on initializing a step
|
||||||
|
@ -58,6 +71,9 @@ func (p *PluginBase) BeforeDisplay(m intf.Master) {
|
||||||
case key.BaseSpin:
|
case key.BaseSpin:
|
||||||
p.changeItem(m, false)
|
p.changeItem(m, false)
|
||||||
case key.FreeSpin:
|
case key.FreeSpin:
|
||||||
|
Fortune := getCustomFortune(m)
|
||||||
|
Fortune.FreeStatus = 0
|
||||||
|
Fortune.FreeNumTrigger = 0
|
||||||
p.changeItem(m, true)
|
p.changeItem(m, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,9 +83,15 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
|
||||||
isFreeSpin := m.Cursor().GetType() == key.FreeSpin
|
isFreeSpin := m.Cursor().GetType() == key.FreeSpin
|
||||||
cursorFormation := m.CursorFormation()
|
cursorFormation := m.CursorFormation()
|
||||||
symbols := cursorFormation.GetSymbols()
|
symbols := cursorFormation.GetSymbols()
|
||||||
|
|
||||||
|
Fortune := getCustomFortune(m)
|
||||||
|
|
||||||
|
Fortune.FeatureType = WU
|
||||||
if m.Bool("Nudge") {
|
if m.Bool("Nudge") {
|
||||||
|
Fortune.FeatureType = Nudge
|
||||||
//todo 如果当前是nudge
|
//todo 如果当前是nudge
|
||||||
if m.Bool("NudgeDown") {
|
if m.Bool("NudgeDown") {
|
||||||
|
Fortune.NudgeDirection = Nudge_Down
|
||||||
symbols[9] = symbols[8]
|
symbols[9] = symbols[8]
|
||||||
symbols[8] = symbols[7]
|
symbols[8] = symbols[7]
|
||||||
symbols[7] = symbols[6]
|
symbols[7] = symbols[6]
|
||||||
|
@ -77,6 +99,7 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
|
||||||
symbols[5] = Descx(m).RandomMidItems(isFreeSpin, 1)[0]
|
symbols[5] = Descx(m).RandomMidItems(isFreeSpin, 1)[0]
|
||||||
m.Remove("NudgeDown")
|
m.Remove("NudgeDown")
|
||||||
} else if m.Bool("NudgeUp") {
|
} else if m.Bool("NudgeUp") {
|
||||||
|
Fortune.NudgeDirection = Nudge_Up
|
||||||
symbols[5] = symbols[6]
|
symbols[5] = symbols[6]
|
||||||
symbols[6] = symbols[7]
|
symbols[6] = symbols[7]
|
||||||
symbols[7] = symbols[8]
|
symbols[7] = symbols[8]
|
||||||
|
@ -86,6 +109,7 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
|
||||||
}
|
}
|
||||||
m.Remove("Nudge")
|
m.Remove("Nudge")
|
||||||
} else if m.Bool("Respin") {
|
} else if m.Bool("Respin") {
|
||||||
|
Fortune.FeatureType = Respin
|
||||||
//todo 如果当前是respin
|
//todo 如果当前是respin
|
||||||
if m.Int64("respinsymbols") > 0 {
|
if m.Int64("respinsymbols") > 0 {
|
||||||
symbols[2] = m.Int64("respinsymbols")
|
symbols[2] = m.Int64("respinsymbols")
|
||||||
|
@ -109,6 +133,14 @@ func (p *PluginBase) AfterSpin(m intf.Master) {
|
||||||
p.checkMid(m, false)
|
p.checkMid(m, false)
|
||||||
case key.FreeSpin:
|
case key.FreeSpin:
|
||||||
p.checkMid(m, true)
|
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) {
|
func (p *PluginBase) changeItem(m intf.Master, isFreeSpin bool) {
|
||||||
curFormation := m.CursorFormation()
|
curFormation := m.CursorFormation()
|
||||||
symbols := curFormation.GetSymbols()
|
symbols := curFormation.GetSymbols()
|
||||||
isWin := Descx(m).CheckWin(isFreeSpin)
|
isWin := Descx(m).CheckWin(isFreeSpin)
|
||||||
|
//todo ceshi
|
||||||
|
//isWin = true
|
||||||
|
|
||||||
if isFreeSpin {
|
if isFreeSpin {
|
||||||
Fortune := p.getCustomFortune(m)
|
Fortune := getCustomFortune(m)
|
||||||
if Fortune.ForceRound == m.GetProgressValue() {
|
if Fortune.ForceRound == m.GetProgressValue() {
|
||||||
isWin = true
|
isWin = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
isNudge, isReSpin := Descx(m).GetNudgeAndReSpin(isWin)
|
isNudge, isReSpin := Descx(m).GetNudgeAndReSpin(isWin)
|
||||||
|
|
||||||
|
//todo ceshi
|
||||||
|
//isNudge = true
|
||||||
|
//isReSpin = true
|
||||||
if isWin {
|
if isWin {
|
||||||
itemId := Descx(m).GetWinItem(isFreeSpin)
|
itemId := Descx(m).GetWinItem(isFreeSpin)
|
||||||
symbols[2] = itemId
|
symbols[2] = itemId
|
||||||
|
@ -267,13 +297,35 @@ func (p *PluginBase) checkMid(m intf.Master, isFreeSpin bool) {
|
||||||
FreeSpinCount: freeSpinCount,
|
FreeSpinCount: freeSpinCount,
|
||||||
}).SetWin(win * (multi - 1))
|
}).SetWin(win * (multi - 1))
|
||||||
|
|
||||||
|
Fortune := getCustomFortune(m)
|
||||||
|
|
||||||
|
Fortune.Multiple = multi
|
||||||
|
//Fortune.MultipleWin = win * (multi - 1)
|
||||||
|
Fortune.FreeSpinItemId = symbols[7]
|
||||||
if freeSpinCount > 0 {
|
if freeSpinCount > 0 {
|
||||||
|
customFortune := getCustomFortune(m)
|
||||||
if isFreeSpin {
|
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.AddProgress(freeSpinCount)
|
||||||
m.AddCursorFeature(&generic.CustomExtraFreeSpin{ExtraTimes: freeSpinCount}).SetLifetime(1)
|
//m.AddCursorFeature(customFortune).SetLifetime(customFortune.FreeSpinNum)
|
||||||
|
m.CursorFeature(customFortune).SetLifetime(customFortune.FreeSpinNum)
|
||||||
} else {
|
} 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)
|
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"
|
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) {
|
func (p *PluginBase) RandomItemsByMid(m intf.Master, isFreeSpin bool, symbols []int64, poss ...int) {
|
||||||
items := Descx(m).RandomMidItems(isFreeSpin, len(poss))
|
items := Descx(m).RandomMidItems(isFreeSpin, len(poss))
|
||||||
for i, pos := range poss {
|
for i, pos := range poss {
|
||||||
|
|
|
@ -19,6 +19,14 @@ func Descx(m intf.Master) *descx {
|
||||||
NodeDesc: m.Desc(),
|
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
|
// 判断是否触发respin
|
||||||
func (n descx) CheckWin(isFreeSpin bool) bool {
|
func (n descx) CheckWin(isFreeSpin bool) bool {
|
||||||
|
|
|
@ -2,6 +2,7 @@ package cashmania
|
||||||
|
|
||||||
var Plugins = []interface{}{
|
var Plugins = []interface{}{
|
||||||
&PluginBase{},
|
&PluginBase{},
|
||||||
|
&PluginSpecial{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var SimulatorPlugins = []interface{}{
|
var SimulatorPlugins = []interface{}{
|
||||||
|
|
|
@ -17,6 +17,17 @@ func (p *PluginSpecial) Theme() string {
|
||||||
|
|
||||||
// Special
|
// Special
|
||||||
type Special struct {
|
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)
|
return m.CursorCustom(customSpecial).(*Special)
|
||||||
}
|
}
|
||||||
func (p *PluginSpecial) AfterSpin(m intf.Master) {
|
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
|
BetSizeIndex int64
|
||||||
BetLevelIndex int64
|
BetLevelIndex int64
|
||||||
BetLineIndex int64
|
BetLineIndex int64
|
||||||
|
BaseBetIndex int64
|
||||||
BetChangeList []float64
|
BetChangeList []float64
|
||||||
BetSizes []int64
|
BetSizes []int64
|
||||||
BetLevels []int64
|
BetLevels []int64
|
||||||
BetLines []int64
|
BetLines []int64
|
||||||
|
BaseBets []int64
|
||||||
}
|
}
|
||||||
type SlotsPlayRequest struct {
|
type SlotsPlayRequest struct {
|
||||||
Theme string
|
Theme string
|
||||||
|
|
Loading…
Reference in New Issue