From ae460de529d566f9a6432404de7f68f84a29dcd5 Mon Sep 17 00:00:00 2001 From: tomas Date: Thu, 27 Feb 2025 09:05:37 +0800 Subject: [PATCH] add new test 01 --- gamerule/fortunedragon/constants.go | 2 +- gamerule/fortunemouse/constants.go | 2 +- gamerule/fortuneox/constants.go | 2 +- gamerule/fortunerabbit/constants.go | 2 +- gamerule/fortunetiger/constants.go | 2 +- gamerule/gatesofolympus/constants.go | 2 +- gamerule/sugarrush/constants.go | 22 + .../excel/Base/Slots/SugarRush/Bet.xlsx | Bin 0 -> 14341 bytes .../Slots/SugarRush/Feature/Multiplier.xlsx | Bin 0 -> 9730 bytes .../Base/Slots/SugarRush/Feature/Others.xlsx | Bin 0 -> 9582 bytes .../SugarRush/Feature/S_BaseSymbolShow.xlsx | Bin 0 -> 9581 bytes .../Feature/S_BaseSymbolShowNumber.xlsx | Bin 0 -> 9953 bytes .../Feature/S_BuyFreeScatterShow.xlsx | Bin 0 -> 9578 bytes .../SugarRush/Feature/S_FreeSymbolShow.xlsx | Bin 0 -> 9579 bytes .../Feature/S_FreeSymbolShowNumber.xlsx | Bin 0 -> 9958 bytes .../Base/Slots/SugarRush/Feature/Scatter.xlsx | Bin 0 -> 12775 bytes .../Slots/SugarRush/Generic/Formation.xlsx | Bin 0 -> 10057 bytes .../Slots/SugarRush/Generic/ReelBaseSpin.xlsx | Bin 0 -> 17442 bytes .../Slots/SugarRush/Generic/ReelFreeSpin.xlsx | Bin 0 -> 13983 bytes .../Base/Slots/SugarRush/Generic/Symbol.xlsx | Bin 0 -> 14525 bytes .../excel/Base/Slots/SugarRush/Settings.xlsx | Bin 0 -> 9899 bytes .../slotspkg/internal/module/player/player.go | 1 + .../slotspkg/slots/formation/symbol_way.go | 23 +- gamesrv/sugarrush/action_sugarrush.go | 46 ++ gamesrv/sugarrush/playerdata_sugarrush.go | 68 ++ gamesrv/sugarrush/scenedata_sugarrush.go | 45 ++ gamesrv/sugarrush/scenepolicy_sugarrush.go | 585 ++++++++++++++++++ 27 files changed, 791 insertions(+), 11 deletions(-) create mode 100644 gamerule/sugarrush/constants.go create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Bet.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Multiplier.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Others.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_BaseSymbolShow.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_BaseSymbolShowNumber.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_BuyFreeScatterShow.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_FreeSymbolShow.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_FreeSymbolShowNumber.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Scatter.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Generic/Formation.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Generic/ReelBaseSpin.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Generic/ReelFreeSpin.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Generic/Symbol.xlsx create mode 100644 gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Settings.xlsx create mode 100644 gamesrv/sugarrush/action_sugarrush.go create mode 100644 gamesrv/sugarrush/playerdata_sugarrush.go create mode 100644 gamesrv/sugarrush/scenedata_sugarrush.go create mode 100644 gamesrv/sugarrush/scenepolicy_sugarrush.go diff --git a/gamerule/fortunedragon/constants.go b/gamerule/fortunedragon/constants.go index 4b8b104..266ae53 100644 --- a/gamerule/fortunedragon/constants.go +++ b/gamerule/fortunedragon/constants.go @@ -19,4 +19,4 @@ const ( ) const NowByte int64 = 10000 -const GameDataKey = "FortuneData" +const GameDataKey = "FortuneDragonData" diff --git a/gamerule/fortunemouse/constants.go b/gamerule/fortunemouse/constants.go index e99fda7..2c8569c 100644 --- a/gamerule/fortunemouse/constants.go +++ b/gamerule/fortunemouse/constants.go @@ -19,4 +19,4 @@ const ( ) const NowByte int64 = 10000 -const GameDataKey = "FortuneData" +const GameDataKey = "FortuneMouseData" diff --git a/gamerule/fortuneox/constants.go b/gamerule/fortuneox/constants.go index 4d09722..abea427 100644 --- a/gamerule/fortuneox/constants.go +++ b/gamerule/fortuneox/constants.go @@ -19,4 +19,4 @@ const ( ) const NowByte int64 = 10000 -const GameDataKey = "FortuneData" +const GameDataKey = "FortuneOxData" diff --git a/gamerule/fortunerabbit/constants.go b/gamerule/fortunerabbit/constants.go index b91e331..eb9a87b 100644 --- a/gamerule/fortunerabbit/constants.go +++ b/gamerule/fortunerabbit/constants.go @@ -19,4 +19,4 @@ const ( ) const NowByte int64 = 10000 -const GameDataKey = "FortuneData" +const GameDataKey = "FortuneRabbit" diff --git a/gamerule/fortunetiger/constants.go b/gamerule/fortunetiger/constants.go index ae36f3c..5b8c02d 100644 --- a/gamerule/fortunetiger/constants.go +++ b/gamerule/fortunetiger/constants.go @@ -19,4 +19,4 @@ const ( ) const NowByte int64 = 10000 -const GameDataKey = "FortuneData" +const GameDataKey = "FortuneTigerData" diff --git a/gamerule/gatesofolympus/constants.go b/gamerule/gatesofolympus/constants.go index 7a61b2e..6080765 100644 --- a/gamerule/gatesofolympus/constants.go +++ b/gamerule/gatesofolympus/constants.go @@ -19,4 +19,4 @@ const ( ) const NowByte int64 = 10000 -const GameDataKey = "FortuneData" +const GameDataKey = "GatesOfOlympusData" diff --git a/gamerule/sugarrush/constants.go b/gamerule/sugarrush/constants.go new file mode 100644 index 0000000..b77df58 --- /dev/null +++ b/gamerule/sugarrush/constants.go @@ -0,0 +1,22 @@ +package sugarrush + +// 房间类型 +const ( + RoomMode_Classic int = iota //经典 + RoomMode_Max +) + +// 场景状态 +const ( + SugarRushStateStart int = iota //默认状态 + SugarRushStateMax +) + +// 玩家操作 +const ( + SugarRushPlayerOpStart int = iota + SugarRushPlayerOpSwitch +) +const NowByte int64 = 10000 + +const GameDataKey = "SugarRushData" diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Bet.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Bet.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d7734ae818213edd165f03de38192ac9b2ffcd39 GIT binary patch literal 14341 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 V1^T|t0ziHH!+&#Vm}Gi?`+t_qY&8G? literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Multiplier.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Multiplier.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..3007d51f74def0cac915aa49951f4e51a95bd4d2 GIT binary patch literal 9730 zcmeHN;(PhbE53;;Z&jtI!k+0@S2 zK-I(E)Jc!Q-PVRA2O5$(3jhhe|KIgLtbwwGLA#C@K(Wij8`Ri(HKXmE5?aVe{v>+k z9k_;zAk8bvQNfj?J)EKvS{TxqE@@t;(cvzR-2T}VBN(*zZfyAKQ0jj1`j#A(UwilS zo6TY3?4@yzvdr)W*>MdFqRmnPnt67iY}Vl&P+QbGRgiSVpYqdtB#=DR`1Nbj=FxSv5sYvR#nOz)gbNkIpexzA&}mZgLPqmlyRR9YQ(QS;}~N+y%7 ztG+;h;-2()AuNnM`spp{;K@xQMihsg(c09sPlxzkH(Z_hC=p`sIP9c~%P8tI*ro^u zlLjcxK)zv9)2E}Wo4e)zG}_&F%G_KPdw5@Sj7FT$%5m(?wxKQe4P6`vZ|@ zTBTctNAkH@O|E+`(90D)Nem$%&Fu3>^$wZ)h6Xsact`Q*eaQ}gGMkdU(sPz*+Kud) zbN-03)tn#(%11vO7YX(50KP_DOHR#1M;z@lY19%*-NX&TkR?3DVb<;uNq8P7s2u*Q z=Ids54!KIpK~GSBJ~`c+0@0B-T32tr3h$n><)~-pQ?yt44D5sr+>#kX5m9O1XKo)^ zk1H#SQwFC%rEgyEbHda$=ZQIC_|7MbdvCpHW=1X4v}5egxn!#5Gak_x z^g)TV(?NNVYU46=DQxWrOXc#5wj&(jriFc|X|eF=gOyVbmZh1k%nK|Q{jfI)(=r(8 zTm?eAX;14G8HRnQi#Jk3R2vvxtg&gOREnl#GCVx&dG~goVr-4V0wx_Tlcd@FZ3mkv zu#(K1N!iM58j7j{vS(&%(4e2zP>8AxWpKurYrLB>dkqX@!tt)n<_h;%RL@iA3nM|M z%VLz7?Sm*E=>4Ro$y*NNp=wj1e8X3tB4i6QLu;9UYDErg@MvS#w6OW2S!0dWzM za(Oxk=%YZ3!`Qj5X3ix=@k6g2yar4DHEHvRWY|t+N*J{~%@ik`Z-gGH_HrV1a+Aui zr5GUYCI zN#0Dd)u6T^gpKEEIU)!}CBxw^P)0&!VR<6Hmg?mGeBp5d*?Q@H=MA8_(1dCUIxn>6 z!G8*7$-mWm6s}S~v^x0Ni+Pt))H+4VchA$lIvf%U*HbErS5#7EE3>}Ozm8F!SCL++ zc0P@XyT>RzEQ7Jr15N6^>M{w`DOgsWhO0(lNi!iEOARZ9bg?989b_7G5fYrxb zxn86Kna zOgvHDvm%EXx^~d{h4!vS{sI3(l`p;`z9WhnpUEQ8;bSE6Z~e}nKjG~u_?sqhs=@=n zLxBD6k8Jg`_x&exL4YYGIIaC}uQFvhnXVVW7Nm#J7jCJpSZH6J8Oiq5_E6#b>uBbl zk+S%lE#cEP>1j^MFhYSsJdTEYT`$>CR-rJ?+v$oT(4jpsY>s$fK*OiQQ1C_v)dKea|y6IXADUDRDz{3&=#z8Ye{Ee_VL z``rYo?3V}B)z_1x(3ovJHj2z$z-9(`5RaeYB1rK*@c@i(Pm=%sCKmCEPOja(>C|*`QX`+*?NEPm*2CS z*V1*HbkG0*1UOFPfNkN=Q0-)4YU=F7_~V7?d(2LYAB>qJ!3+U&Pn57%QH)Zo)vHmn z;o|9XYA&8y7~TZAeh&Wg+UE;iBx|xIHaXQc6`MSd{+ZYJLUc7ydwDywDU>vnV+bmP zc6#GSOGFZG37n%JQ|LYmiM?LlzF)onc)d6iZ4JRIB)mmC>$&tcifcSzlYxoPne#JF zX=87N9?P`OvWspW*5GI70oJ#Kd}z{MNS&Cx;^j4Bt(v&$AoFK$~l{$5~ zVPQAcO_Q3wUJB~(8S0P^f$|pH0L3TBjg;MCsW+ps^L2K(es!eVi+GSS$UvLYqMlGn z30_^jmU()ry^0W878YEPLtNvSjFmvYIW8zbvA-ae>fY)J3)2Aw+fRLM8|8z|o2I9p zRXTb<+8(=W%G%&=I`nKg!`?8$U#~0ZldgMXAe`dWZ7-94kbx2+yAmwVUV{y43Q_J+ zo2IfzXZ?Tx&bi7|Yqjwd6bH1II*5@;7vKnt3#Tz5rR zrnr}I+8M4lCXG9_NB5}awh^81x#&EYP8)^{wWm3CNV~k7+RjB{p&0}? z)`UIGh17`Hlm6uJy#ohP)kthp?x92$+-0#MbGUgN%f{UayVnH zhmuTUFeYy(3FZLe=l>uyvp#D z!c?MO--||(gx-^8Ob1oWA8=6o_8}G8_J*8$UHW65ShokYptfj}MdK23C`%`Zb8=Wm zK{h@vDi4`3u|)5PALM4bh|#I~0QDhM=&U#bZ!2MF@V z-!?p@klwg`pMq?NGl#3542zcl@3ecL@N`~O>Fu%r2tukR zI`LY`L>Z=@lh5h+CG|{8p`+*HbY?Dq*`B%7oqAqAH%9H>kwr+ zyWYsbfdpY%TSAT|QQ?MT0y(mR#%(@?RMgLYy#Hb))0a?-!Pq=!6~oOVvw?+JlRd=1 z*PUQ)rBac9#q^XMU_sIuVJ1oM$lOh8;y}#8jfR;%!Kvhl*Q`)=-im{`G5aP1tzU6W z_dI~n5&1S};>IE-rcv6$V$X#_-X41nozeH4LGhfWUP`)`xE_lnEmPl!J!NIHk==G^iI=i|0DT)YW)X9;%* zC?@yE7&}nngYNzMi3e%OyMcVQ={Oqzdjj!#>ouXyCD0lGQng6q8Ia84^4pC(BpZtnfS67HWI4zk+&;tCPo| zOwE0|!`q!U*9Vb#j*+&hpK6&jGc&q@tc;oKrF*?>KEFVEgS+Zi8@=Kq8IEzd7rqPu zEVNZlB)J*ZbvN>mZTLw1)FvX_5O>)nv_d6CZ*XDG+*aVx&cE_LVkx*773Tc#Z9Lsw zGr}dY$p%D*`6awf(0R#OY=S_X<8d3+hMbqjt*UM{BhbmEhn?!sdClKT8ka`{NnAdk z%Son)YaAX{j^!nHM-9Xv##JNlB2R<6?1Ql5$F)2dLL>FJ&urM2T|C zi_x`3RG^HglehFI4~_V7>zX}h$%=5+m}_$I@N^L?X%WvOBrkJzimsY?(T=8NR`_bA zdRWt~^bPl>rAC>nh^e^w(W@@)_&zMVm&wDJ&qdz0WVOr%@RS3$T3#aFbKl82^$`}M z*1qeu-@&3)vbm}^OwyHP`@~E`U?*AlGBAOb447-lI5x;w>u(w&5@j1rND_oP)xa<| z5NbvMz3_xNSzfAWze3w}Mo0+{(5JLY<29Mp@xk$dO?+baEgTiFnWbaXM_r!YE!o(*B2$c3#V;waXjjaz67|Gc^`M^>MY&3I#`%eLCuDVw2S+S$3b<`y%$5=qdt5&(*`N zOAf6up$F@%n0r}mPq?30kLbrV71*8#zVygxX$P4`AA7Fa(h2nG4QuO>sBcNvJ{cm$ zzVJo#{)W?M45+VnDll;{xP@l0TOQMxe@v<~6h(aiNA~}2nL)=TxZ{EAe-&{3|KyLD z@8s-ZW9sysNtUVi+s%O~_tR|wU^AVzP2&erny@u^_%TSBILMX>bW@BKGQ~Q&!tL_6 zK2i!Ta4l!n5oavi3C+}!OlW`;)t8{k4Y}HiNhw{ z*z}lWh~;yHrBt$I>GQ)KPzm1C;4Dd=%NJb0<1AWGD!D|e2L*QZ+M%09&_yFF!X;Z% z#KF&6&HG+EKc4I4z9(sd?3s&fX-#DF2C>2f?(1Y*^I6_=4JivjukB4K9=U%eM>J3zN!8zd$e~!Rdjb4lb{c$-r`B;Kiwi}WA<9MWM2S#uV+*pu2FiEIv~_?E`SrO@v#asRM+d|OqTKU&(7+~J( z8DmI((5X{QSr88Upv25s_(I~PHeQko1$#%+l?#wRZ)azIKfq$4iqDGgDpQ`VG1SJ5 z`jy~z44%mxdC$_(p^x_ie6Df4KC2G1-8=69*-t}zuRPp8a7U-N$gS*`2_~-Bk;vFp zxP>w;RvL__(Ti1m_8e9pUN#c6AM*Nh{_IPnSBGd}zC z(fAl{aC|Yw#VFNhOYU!wM|UDyFq}pY9H`j#2baBAp&G)VfQ2CU_iwu!YAqK)H&5pe zZ}<^m7qzy%*(hK{BtD$b6UcIH2P zDKD-~8cGP* zHM)25Jj_zZm#&@}i>74IyK7e;9(`*C$~-D&a<;2FeJ2_;;I5?bbm5%N9$jey&N}c! zH1OEc0B064=`FAEn;HEV{LyHi*?MGgkh3T_|_u%Z!lelpISRekFxKv_tDx%PHt-Fpf4 zOMj>CD?9PC{JiRgC#DU_u`#goVcxS@(6_~UILo>j>%as-eUe*roZm!;z zJ|M?^r9z-Wrhg9O{_UKARp%W$DBt;g z7$tcpvi{2Gqf*I~wC;(bhN>_beAh@#p{?k?<_FS)rL_Xegiy`d%aLRrmJOrAxpl%c z5Vs0x3R;3+Y`WD@f$-~d=Jf0?IKu=B9w@BYKnWxt4<+eAlda`N7i?XNPgJocyzw7| z=YY>UX9nplR%*9jDCxS%M*=hL0?Xf28bP@W_hDMY3x|^&L%f@f4U?Col*oJKbO2C9 z7eT_4J$`3~>FWW-dGPogCxNBVu4Az$S>9pvt29yfc+2Uq#r`e--YKd0kiyC7?x7(L zo9&RH20Bn+zYvSRY?XHUNzoo(8|}%_sB%9kc07tGAhAn)A7@X+V*q5gN4bh29GM`i zqCDx`vz>B0CDA=J@u&-5n-tR{8c4G`RuYTefV%j#tD{=u z!X)ub%X23i9rP)@o<^BCxAr5MO;+Ke*(UM*!`XQZ_uQ-Zv{KGn^Td_Cg?45|0M-S zxrq96dMtz;3O`=`i5wm)rcu(q zTg-u|iQAj1ZW>Xj@c^nGtLdA9QoVHQ-K}1OwoIS9>+39vz56n{(9+IXpNTa)|H#hn zsjRJ+D{t%#`wef@he;*`{CY)}W3qb>911ksd&YS_9S(R;;-4~3EfuDEq7?{U#VxET z4r>6b*BdUs9>VRW7)MsHHR}2s7+u$#>RTAxe0Uu3^yVHA*t`o1OpdE0)_D9a=L_wi zZ>0sBF$&m>!RHu$3Y;!Z&LG==E%`ro3;^WCj>>et!1+Ed6zOjnu5_))JL(=9CBC4}y5loiaf-Y8sp%QMQ|Bqq?T$$=epLc7@@t3e&D zB8{uXT;vnk%rf{wOOTAnC#E=l6$Y{?_Op?|yT1Mp5RU0{%J7|5-pbxL)~bwErvc*OBJm z&`H?8y5|2GaQ+JZ=UnD*C;%Xf_yhd^Olf|V^J}yIZ%Mw$fBlI6YTf@T<=2kf-%^%= zzwOWcD&W`h?r#B;*gpjPUF`iA^cPb5Hxw7|59qHH_g4x3Bxrx*0f5)|0Kk9IwO`@? x%(g$nA&7p0|CxJ#MgKF%{fzD-`3Y_OSIAS8fdQMx_k$xyfOc?Xq$B@+^?%)IO`ZS% literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Others.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Others.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bbfe1c9757c7384f51789545e0dac4e179e231f5 GIT binary patch literal 9582 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 literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_BaseSymbolShow.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_BaseSymbolShow.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d71bb0c84ae1b3af2f5a1b93c4122819ffcf7c6e GIT binary patch literal 9581 zcmeHN1zS|>+8(64yGy#eyQKx`j-hL4BnAZOZlt?Yx;v!|q)R|rQV{q?&punXdw;*+ z>~&qUrq=yjGw-_ZCto!sXc!y-8~_0T08j!-Q1-onPyhfbEC7HFKzO7t<>UymbOaec z^>(&&Gi3F0u&2m}c|@NJcm%or-{XIH1uB!q9sAfZWUi8L(Bqr6%y#q386QQ8rm$%2 z!M9w7=v>pj5nn&vCnzmvgr)p2peXG2W^#b9VDw{#87yX#Cl9eUw02;kkquwX!tg;+ zhc#@1vm(K9t`)I3FQKt*t{FR8u?w2a@ zS7RwkG)`}ZoGg9TgdZk`Rw3Macz_0|{Y9YIMqQSVAOc;5=nokpP-9n1dp9=L@8^Go z`9G}2U;cV!g0d1c2S(^I_?wb4vHiF&V(;LuCVRyN>&1t_nOQn ztHv|iJN?3{zQC&h!`A~VMFtU^Wi{8X-KTWd(gKf}=qek1Am0~6WnaEualsYMxSjXm zLNuasBR_^Oki1PAx=N%r$vrqFk09g*oiBRb z@wJ1OPr1fs+{bCOh?*&`Sb8c>_d0Gt^79!_zII*_O>eFL*xt*rTPkyCGCIAxoZVx) z84V3t+7}tnuReV};D>GOD3o!-4p>T;_1j_Z;6yLcabz3Kzv8G9F`s(&h7W6MrT*q0 zB{My({Z0lN01$$NICRJrUiNIBPOf%lPEK~;<5{7Wx>F`QhJQ}uL*O@+UYa-!6x zdPT3x6RMYK3df-6bYLg!=L$0}S3N`Hs>jK6!mx-Jhj)&Tx*Fby9Y!vB6-#m&sbGpW z#7m5alvFOM%%rxDkWfo8Y82D#(7wvYXPhaCj3uA)G!U*52;c-|>vCh-?NXT>%k6%@GP^VlWg&sc0_ES{J zGKs<*zXBe`X9lxQ@iCWNRe?}7wD=0A)5qfDvCHrnG`U~pW1@VG=~8JK!Enc&XAaXE zCg!KMFeKUbV=@7>=4?kqB+v`)6g?^a6H{SpbQnqA7Nr12%~h&WWBgN8d6n#!hQtTo}Zd391LhuX*>>qL-xb;FB#FNMe*uJsi9zE`hp_xh_)~ct1Esn> zG;Tk!$gciayY}!s^Yfz9eo^7#qX%GHQ_e@z=hMqvZHYCKGg9UcJ!477;&SFrC`O$i zb8I2@C7ud&W-Y?BCkN{;M_iVRDD>u@m2|keY!`%ZuB3b_{26;Vou&k@QK-G1EO(d! z?_}!)%z|v^h%GhoDu%gcmk9(P&sD+wj3g5AitC$Tjpazrgxbm*#LRaGYu|{2ZpYQyXZxLDQ%zKSiR7+CP+wfD>(MtCOgBB9bvSQVev5~ zm;d=HF=Lyd&O0SGXs1x`4PPuKLcgkc56RMO|Iv!UF!Q|#`XwrLAin6LW@?< z{kWX0hLj72NmOldE4Tc3g(JkGqEw?1A?ozQs+jo$b9Rhgya+#A6$4OEg&vC9o?-HJ z?rOJ4?5Cvb9_7(w9<^y~ubW1{2S=A$#~r&s@i-GdiG7TWEDko?>7`f)XgKO*_YC-N zApK9o@Er$uHiPvv=^T?qc_NgaSM2s$3Q%@TdZ>@jG2kQMCsyCrpF%4~`Z{N{8!kqL zyhWwr)fjdDoSOuU@3xP2_baG9G8fzilaQ_uiY7`F6L+i6YVhwn;10=KJ)dgc7OR&V z8hioLe=tk~jgcH!3imKE`syq0^}k3qG)?5|v%=R|VohzXXWl*D@{2xsHT1ZZSLy)W zkX139j--MLtsLzCv7M*O1~MA$%k$-s zms?aLB9-E0;OaT}^XnQF+Dmn?A-B;LeCN*8Tn;Hi-bNJ?Q-%K+=X|LU=^HVMLy~JV z^c-=={b?Ca6p+X0_#9D(_=B0=CNmOJMO+Na4Cj3qP|W{e|2p-cpW!1W-OG3I74Yj^ zg~l<~@7Z#cKWQ#SJW!bBy*e?5+~kLcAE%^bb;n?Kl+YTmYoH{(njVyf0vniMHoL7X z*Q5Qp`4a?}m%QCiaUXVe6J4J0_@niM_KT~_$c$@t)sY$UPutsLZ&tVI^U2fQ@3uFu zc%$x|b8O>DG-jTP0A15$_d{%NN04ZX_jnX6|{9YwUw(}a?Klq+=7TN$ede0P!XWp zOtIeB@gZ2dq~1OWHnOxiHz^%*Zm{ChSjsgU`7)?cu=p@c>!ZsA0S?Pj?=xW>Zm0#f6x$1B z2EFOU^`zT?t*aVb`^OO3j8lkK&=j$#ZlSRqp9Ky;oX33$gR zpm1+8?XG7^(TzYSa8K9t$#Os*H_Gr%;;>zvp~v&+@RKpYe7PYr_OC;$n?JVSy|q;u zNov4m>sYjn5foC|#zm^nn_v|gOtQAstS-9dz^4WPDf%O<27kY${C;VEdH`-3}0C1;Ju{*J(`fso~ zp3QTe9n!c5T4yy-vv#1hRPEFY3ujx`1-NoFyIgT}olGtdr(>_J3&Vdd6ivPh;kQ~b z=hx(aOsFp3y~!mhT;VHSw)vim2#NLU(>ysGQq#}wqiHHx(&Zs4KqMF4Ym^W*p)LX6 zmofZjRX*aZ1~m4_6T(BWh;B<>Q9DQ_qRHl2oQvxvI<%tHZ}6!aU8Kq=W;skrP^qbk zR6kV*Ug$}5qaLiI-xBHHAeKN|lN%`>M%{Gb#PJyq%*EQ>< zWy%}EjlhQJb$|JA?4$kgH7JY{2aRNkn@IyNGw&xY?d16O5#gqUYwlsyni+=U%Zt_y zVh@f%HFpuKFUrtiFOE_ZnZ9)(UXfdDLuFfEA=rmpl%K~Zi6yw6bkl7s`+DC#HK=35 zaC0Bxr8@#`2Kg!y3Oz%XRVfm1Qz{jhL4Z@{G7;>nhZ@JeZWUe;YSA&F4u*MVtdX2W z#~*g))880dXHXtPJJuQ^I)joan_@8IpmKM19wjG}vjE)9uBSi`*Wxj9O5U8NE`79o z^t4m6Yz0(Mx99Q<4!FR_(U&p7WA@%$+L{MJ-76W>%2K~Bf4|O5wZiy?E$-kfu8AHY zEzv2a0yJ2@VPrWZnT2MuXsXL+?ZAzQEb2NQoDp1hCikT}n0`zRL&BfctU8cNK zwvd#%666+LJImgSscTj8e7$Z`$Fm|%@RQB6N)IVZS?lBH1A2)gxQ-_2lQ_&$shzo< zi(sKDjGaysq&vZHPuxaG%g`Ir2A%hC8P)Btn@v*;&lpfUTQ-69i1PEM5u0HAF*>FOCm*9uC zE~=WZ#BJ*4LM|22B#3(0^HQ;8-UeqSihfBdMOu4%HMy^`(D0UOdP|KXMmKxSQl@US zBaj%2Ws*a6Fkd+t8eWjqIVbgnGuHm2+bON98;vRv>v$_IE>i6otvS`=!sJXG;$$ji%D*_y1Tf z7(LNpqK4#tBai|e605%Fer_OddrPiDXrjN&4^yfh?H!$tzd{$i|(Nm)UCQ3>20v=eP8kv2fu_hjqg5!Flo=CUk<@Cbs} z7Fp>IkuTy$taq5oxOH8fn@*(?3Wmt{0X#m|g~=;*)H>B#Rf=wpTB;e9Qs&x^RF=z> zzCdG9h@p+f8nCtC`WBFfsxpJyks z_f0@2<748ji4qmTsz+(T=Akf6et~jx{5uTBO~0I*9xFl^8x$Vf(iB2_weGGZ?KpG9 z!+Fc{x3`g(iiuU^(!t1%cI?rqiuluALbEL0ujr!%SWqnt8s2{Nk1k*HEQ<=lQr!f{ zCntpHzxLp}felI2oMN+&>}GK?<)cj?jz@Geq9F)N=Z?84<6FPQ=D_X)a07WfyU?~F~Kko9bNYq7hDq+*_w?@?2c(2 zC15}U5RGSVA%)#zt@&+R^P?i&=>+?h)+O@C*R}pK$geTu3XS%8+BJ$_$e)NZ*lRbqWY5y5^Wv`^S!EK;m zt}8*!#Gk)HKv=mA{k7-)28Ggz$z1Cy8mhDJ?kzWgFB{dWTYdbF(0baFtWhr<0o^V5 zNEd#w$a>(K@A=5^sN3^y-%piiGZX9*0*OM^9w?|q;#l?%7$NQEeInmr6#^id`Frtg zwfs6222xPRK^{1Ns0nE5YH6VfaMGF)5Cq52DNOhsll-(bT6-YTQ^twv@{LJzTT&Q{Td+Be%90ylw#2H^hgz( z0niX9#H{J%4*ZK>I3jX2sNbFIQo>O zrG8_EGe%7vUI?6c+JC?8d-2*JK;%l5e9?(+G1u6?ntb(H%~j@hf6lw7b!;9B-b@jJ zeksFA8YlVTv}S4WB#NoF2qk6(pWy##)ndW6f&!2g6M(cVFd;1q3nz0mS0`sTHghLe z%Rk0m|8^=Mbn=TISLy#g_L2W4we{SrL@VEnw#=)PiIEZ$#>{$Q?j4l}^J3iPvCA@V zQkc%itEqG$uD5;_ZClWliJjHz*_cUzpE~1w3=2v;;-}O$gy+ESouNdBJ$c@4-s&z= z-cIYimvEJ-YYF1BF|L{g(O02n2iI^oZo1C96xBWzY3Qo$L!qa9ui=C#3kQ&du_w4X z;ESzj@~JgWFl|;G@S(uwyW&BYXgj(w-5q3=t^s(`+Y@DltLf}>97h8BC&Bz}%_=cN zrUdn-MCKvi1pIYZ#D>&0%dXlt0yFOX1wVb`taPQ7SUSkqM|!xggo&-AZ|)I(NyD8V zrbD;w?c@8NRgH_%J3fJvRwnZe&|e18yXqwN#tNp~d?z40(S|04g#oAzw@Y{m12j82 z9(ELkum7QRoNC{ z#w)dMox&24|IlsIim*L9`;fGbCf~KSenny^1!JLZX&G~KjR^rr@z`SBY)EmycEEd{ zc0!9J?m(WwFO8{?ccO(2sbGD6zg>WT>(<6+#58Elb>ynNiE^Jrj_1C{=E%Jt->G;! zBCzOMSL+?{1xU%;26QrmpY}};SPQ;0GW%bSzaYi9nv z2(kOM6vGP3B_-+A6C+* zZZ`Z)msY(DmG8>kELJLao?WT*2lSyv|~9a(-CRC3NZ zLuh)q>?jB@k}k`rw#Gdrhj2w0I`7M?Nt>`>g%OdTZC_~Jo1D``5r@E%<=I1_Pbn)! zv4|loeC!z>qwD0YclYP^t-SSL%b)Q}kra4>7|xMXHHW3V%6~noPqu6v|LPODhexxB zvQhIy_Zr=_5+4ZG&p~IIJBnTUy>7H5mNtE4JxqKOhTe=%;&SCGMVe>~159~x*NsEx zS!IEK%v^(eu?0=UCVkmvMistRgFIgnjjkeRcWg$;*0pQqW<$T2Lw>{L@@6O7!sL?H z8M}v&ssD(2A3aikPXIT9&A{xc{mFLxw$Ps(gL=dQNnieXU&_xV{m-j^*rlST^j8Ca zotyt^APM@_*<|1cPqd5)_z(E!uVn3_fFgI27WKpej0Gc`(fZ`+4ej1_pJ0Mv>(#x`(E+= zo}>P5;jbCmPdotdl?VX%TfX)?{I3D`SGW!7FYrIY@9*fpdbwZGoD{#H&HwayYD%yW TdVJrbfeh${xW*K!@9+K(?2ZBe literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_BaseSymbolShowNumber.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_BaseSymbolShowNumber.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1ace4532a13f54499efbd3b204892bca5bf22717 GIT binary patch literal 9953 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 XDFYFp@c6z%0~OE>4ULJ^-#`5yDU|@j literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_FreeSymbolShowNumber.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/S_FreeSymbolShowNumber.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d906d62a1ee9cc73871e3b7aa47498d49001f3fa GIT binary patch literal 9958 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 TkMEabPyk&J*N8#={nP&eEF{)l literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Scatter.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Feature/Scatter.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ffb5e7b13e73322f9b0b736fb53acf15f41d3fc2 GIT binary patch literal 12775 zcmeHtWmp{Pwr=C@?jGD-f;Sr6-QC^Y-3b~bxLa@u?h+t@1WRy&1rL5ZnZ0*rn4J5Z z^Yh*_^`p9~yVm;(+_-ea>XpoUQaN zfKR-)zf#(sLf8DN7(x~vqLEQ)1{__=3UEl9h{YNmcQ+7AgWK{ma|SY~)>J)+%{ra6 zjf!;mYO%XU3kJ?=f-CA33*wq1Vvrh}&}=GA0kE1WR@!9R*x>tTJ$()Lsd2N?=4#yC z@_Y$C$7RNsb z?U8oxlWv^d(2!3+ZAfLqfBP^@BEro2k}mKSs)v%33s_J6^xo$W#4tNarILY{vn8s$Rl$8(vJbp1H*vA1E{VncktLjVAej}QRGzpxfV zzuOEP#M(6wDG@-dHE=ewbzx@uasG#`|BEU5r@vm6EGG-WiW+_#{75#@#lJ*HK5NSi z+?6xE2V>2=H{{MtENZ{Mk`Qq%XeRc~sr7i}m3d*_@Y?e=s*gK*IuI^6$9%3sy-)VO zwG{>}#aSZmK&mf@+_qxB@`62%ZmVGNLNK~&y)cxC>M;=4O;UX@_<5VI6^~|`Gp_cz z3`zx+ZrT=6_!_?AB*);C6fD0BM4{mK&g)JtZn;{kac_swVhZ}i67i`-t?!8+MZcbL z7OEE%Q})*RkL^W{-IAL?5L0X4=j|Tbyi-<|pbE=^$lbm^;DKuDECRY<1T1Gt`0lWD zvZ0h}+B1(9Ua{6cH<{9y=0=}dZMXqx;qR1bLsni;1d+)c6!%a-Pk7ogdpJ1T7&|!F z{0MSI>P8OPEU5Q_R*zsOxxsLWkes=q=uI+qYE*h1(o$&%@^#iMjdCg0p90qKL_aZQ z546+N*ZcYVdt6Ozp3l`74q>1rpE?^CVhnRgWuC^SXGdLcJ!_UIA;V%~pYW7^w#}Zj zUD}vHBHyAbAn5pD2@s~GHm^~|`qccwMcL4+k6yWNEGq__9ydCUkzT~{nTx1uukC^p zc*ol&4xLcN^WM+cDT>0zLC%D|Vpg zIifiP)>3sp!$8{~CpsKJ`a*msgTZg%hf9x-r?aGM-L!E7pK+JH841{2gzbXsJ>r4B zPZZEeq^@xBG^7glXn;r7>_xzJejq>!YQnD$MeXz`yoRx_@p5l3iCu1<<#bfj`yy%) zoeABq%*a+D#l;%IvZ-^*_9Z*Ktg@^GQGLbmGqT+60qKqn7{thZDlNH8)ky41_@d_0 zhn@!OItyMHGy>Vvu99Hk!@$tDM3zqY>o8t%YWDNNaudJ|+nD3g@CwzJ2IQVMQmJa| z$<(F`ET-QQ(bL5>lT8O(lSeC74eP7SUJXE2YA0@{sh>C*-Gyj7RfL#{1!_}&+F1*M z>W-{a*?fZzEs!_OOiE9G2gwUgWqOM)7(toe>z5ggy7GvNoMXg6e3QO&9kg}5@itnQ zyJ30HlP6M%B^S7=;3xrUH0D%&>UYC=K5$ODASwIObD^4)y2|QObR(kiQM3KAdhdh3 zb;JeGLv~cX8y1KXw?f3o-VH?*7mVh4u^h*^+2^=awfgSGmLZ#aXaBN=C^xU7#DkQA zDA3Xx;|!_TOO`e~p*Wj6^*|#hiyy0%vrCD~jinY+1jvz4rsqvLXRp&;a51yoX;&YgKd(8qH}r|-*n;* zrbi6LV*!IKuFpI_qrCHN{$`S^doKv*f$wxbWn*m0-Jx?LtEWB5Gk@4kNveH2>Soi7 zvXre2`_ko52BjaXlNoQ%ig4|cBS%kfRrj)~OLKX7ZO|{S^yNF>Piy||y7E0M4BhUM zivfsbNW2jU1>>D7_duRosNa!Kro6=H2Q4K*1jGlxf`Q2QN67j!1^*qsz(C0+D7O9Y zK01>ptp`{TLyyC{L*8{cB|j*R@%hk(bu}-+u+*bR$l02d3whmUr5{waIv4ZQx9g2okT!F<`5L&G92_$KrrH7M;st?ldF*dEUOEUV~TB~*`X`~iQ&(Q600 zH4eSFgl>O=nG-yO(I|wJ{CLKOV5>WQY%OpouU7@SDPQ`BA+*E=od`83OJ&<2Rqog) zjM-Xj`V!xxO(G1d3i1`R>o8NfG}0j^_)Ld_1-?YM%t7LItB z#!#1(TFvhYnMYoIOwOH=fQ4mEC?sGyFJ7C6aI zv$~ayF?AC%UVu^1KZ7K8r5*Y$wUnivH2!f%urf9N%yMx_2)2f`3Fp;!YwmeBY)`C^ zrb4gu$+GPRs^#6yYr*1-wR7KFxv3wGsn^7VbVD;RZH&qc#Ur~Et;a2ZFESYH9;R`z@wU` zStfg$iAA4|)}A2=ai8qySUVK8vwxf~>?w>Uk^Fi34eL_f2~;VYczY`uY1=nvl<9m` z>GT5(?>hxmIFrTILgW4=P$(W{` zbRx?tE|Zsa1Ye1fF7`^qkRT&i5+DDDQ+WLy%}NtEZRW*?0N7FJjcpY<$l<1U4}66AVId$RczjGv*Rl^` z!34GhYYOABN0VaNUIx)9_sr7eH?8>H=cD%6EDQvo?JSP=hA1N*`w2z6+m5eao?tCA z8KFb>Tlf&om!1hCcBgb6PB{n_lC(eY>Gyr7LK-imxJX;J3iTE&E4^Z4D)iA3U&&LN zl)#6sOrq2+pOk)!T9S0iTV!RrZ25x1AWo{d_Wo;&;EDp%@tVkEiIM}p@mylI#0HzD z|8|lB)AX9ygKgbbL~-S$G_o(c5x%6R{~S;6X|}}aV#NW}CNXoMt~XfInbDj&vid%v ze5@nOo?%>WeN(O^ew!>lgH|!Sz$9Nk2TTg`hebSD74G+QrRmF5NHtM178ygh&29Pf zWQev0v4cbc>mz#W#N5lSdK!HFJVS=PVF)rr#yPq5t*<2s+hhq>n|^+s?$4^zO$N$Hu%3|ca7!cv zNc8;F|IZUgya;@sFe0#)Z4>Z;oLr`qKtm5R^p#1H!b7|?Yu!Jm4z-$^T))wAwBXvf z6-5(E;G2VPh_VZMw2!z%r4~`-zcIZgCZsoNFw{C0(UgPGx+J3MnJ;19Q5lT6-~)Zn(|O{;Fq30f%-b%Bo*Y=ko{(t1+V*mctd)!?nr294lLT z6Bb&98B{l0NFH{c(B!lX$&3CBps=M}5P?mH04$Wul*XsNaFh3c`*bv9##%37uBF4d`!Jwx6Ax9aqnumtB|}&`IAK zi&^K)-LfMN|XkzoiW{u2ORW2mb^U~$oqV9 z=Hd1*_Px8_FA(Wn@ZfzE zihsVONm^%doP8o0;j{MO+9-;lVH;#2J-za@0J^8Tns8qf=L>ieKZFMjnWj}xl zfqy%cv?cja7F6MYuy0_ZL0#cg^+bZ9q)`f$S|b$!%pvZXnIDYTV0RKHq?zY8_E}!c z$myx9tqLYDQK?z6b$cv0`STsmZmOv11^8bF8y!UKyGoyxlG}YHesAIWl6m`TSvrAqasACwS8dm4kpX|IoKQ;-g zAu=F@mdhj*dQ19NTgYVNm|{qBA)Z;jq9nHJ+&MP`6%rokxo^Sn85J$C21%1S*-Sz% z6FtU66qP0w%zp?x9t~{w6Tr(#sRWXP3>I??AY=ko8VPW<3+&9Gq2EM<70FkG{*H&B z=q27uz69yyVht_(5w+-TS=D!l2UFAi=?8-U==J|09|5+tHPa7DUzzZJv_gNT8m^XR zc4o{!&p)$_11(tx0&di9oZSG@%T=j{i@Mm6pz4T~A^BiU=_HCbvWINzOgNNgk}di^ zw2GvR-n271D8L}VVfo94Y)HEs3cgL5jw0Zo7mcvCc)MlW8e#-{zXQ+wq>h4eI8$U| zszq16(`#bVCktz`t_SjoIYC@H!eV8%)8c`#H`Z*_=*P+QcMny7NHuwcqaM8R8euWe_1I-&@O$q&8wOcP?4S^YP1WVZk>POfWqkOtr99 zsVV->ibDagB<+tjmtu5g8zeJzB4Ou4!_1xKQS!#`RH(b?#)aSdl=up5RB=Z4BAD43 z@wRaG#xg#>O~%r4-;Gk<5qk-pIpEQBjbtA|}29I9@K|;Qm*G0CB z_Z=*>9J?W3Ujx`U#`iXXRsL2@Ly8bc4Fl!09BQ73Gw=SUgnHeIc&f3sP{DVI*%Ilx z@9gC7&(32dfq5S-cV9J-qC}~2>N})u%utkpuN&&h5N3@vIE!Vdjfcg9NyZ~{5v<<0yH=po7c0&u52Wvj zu0ftsr|25ZoR|va(=}&c&yRN1SZa6j@^%AObV(EuQB=9Q#MRBR^rC5*m->CFpVaiI zOyt|P(x`G5Gn245_8ZVn8NsqQ%$&qz5PR8`-?bFXUyZucWe9)IclW|&gs2>)F=Nni z4~tI8_Iry_x~>%GTQ*ukd#O^xkW@Ny)Yn$bGvmySL1y7%v37Apq@gGuTA60XBFqUP zSCH5;<)zCG>U1c!!G{2WUl3}(b#tyepnOR7MgAhFP$F{l&OzXTA z=4vd>vRJyf`qo-nUsI9ZE&0r*B5S1#s7FVv%KDvoS0 zA;+7n*@ijnPWX^)ru5_6OYBaB4ZRAxdL7K-zIm_P(F={}O=|0rs_)1&B2AEBUk1SY zp5l&}09smHN=%&$ZXucMKhJ0^Kc+VsiK9IHwlN{}>WvmLC@)k2bp=7G;g9mt#nsE! z%;iTiSfws&zr=#Ng0o8mdxYg@+ty4*8@T}sn+Oh-48AgpZiewiGJjW9{+%B8b7_qg zn3Z!5pm!`X)kpQj^OPcj7{X+S)rk#6BBBq$ujwo3OH5<$Ay6pj*wfhCVo#Q0=J8Ba z@yK2J(u!DDXW&VmF&l`deRTBhE}SO~OjL{27)n)HsBXZ*D&kY5N~=?*VT=qa*Kb!V zryZsDk#gkz)|o^Po6-u*h(0h7hJ5#Oe|9vLCdvq5DDxwSCT^6icYCT#3KUGm8zD-( ziu)vF#p)J${Qc)b!DiZO6)Z4;`xS+TcwGt}>+-tEhe?2ID=Gh7@7~-+n|tx1g33Lt z#?vp9bg3LzWAoZsxF~^Ta=quu6<2I;Wb++c=%XrZT!B2Az6Z~gN?K<}0$mf^hRCDx z5960=^Bj8o9NeoTYlKfOKO0)w#jUQ$_mbXz*wucAtQ9g z)TsjBmO>pr9TjvZZQPMo^YOHMe6_w~Q9K9@fhcE*bQyH}_n%(vLZiw{@Cvn1J=C;@ z=;27!0O=;Ih)pc9)prh2!S})$_4(_+`!!*A!0-dc5+Z_|NH|?O_ zBNFkLCDqAfeQ}K~D|BCu9+4=2Utk@)AfnR+b?pj3J5recB9f(%vze)itFx88#ZNxv zBu~op3uA^|1s|ghy^*&O5l?niqG`pb*k_R|nG|Nn*jbfo#A!f_$!EF)!&1UwT5i3t zo6T!+{L~a#;P%CN+xN=R{HT8azRV)m5lK`!LbZi%V0~62C{Zthkcf-hBMNH7^sTpy zb3_rL)QX-#BiIaEBRU~E`H)X)Fv)3TZ+dhahm7Q2WC8D2rZ7zxY~c}JiRbNlpWlL)(f>MYLNQgyo1Ukb3U9@%r3NAGope6qViO)S2LPQqLZvttrlqZafq4(m!{Px6e+fdVZ-_(x$KA}S{# z7Bw>Ll6tF9RV1n%B=YkG_tT}?FJhMlDAsh_{vhY|_stG|J2u%~&?<<6R)pe@)%ekA z{a4rQkJjt2-r3K_YiL4mbRVdras}}q=IN92Aq-JWg`2!pZ3n{m<`eYN%fu_pd!I%^ zv$tDYj?-IQ*|!4a1m?&|4D;>aVVfp6mUZ8JJ~8%))bo5@#)M-ONHm&b>du0YmzRke zPSnIgs1H-3yvObLANW`w4_BTjxcyN&%8O<6I)-4Ts>0gt)BvW5S^mv2!=|4`2;XyM zt%rknKN11^*F95Gr_-U*yorW_g;KmDz{Ar(W08H2%U3pj$dDy=6XR!>aKF<4#sC9G z-+xB~Kg<4qYrwjn1y%ew>@H-{hmt=+F`CLihHT;4Jpib`RCp<4*+O-FySo@F8sBfS z%Ayybg>w-TWA(nGhh@cU+Seo+X7j$3dbDhRsB%GC{?l{Z=uxl5w*kdP>>2FFEc!D2;pM)CstfMerp6Z2=`GPAOm2)0syH0 zFak#q7hTPqRm@yne~^;-$vrERv6cNn>ZHtuBIfX;)m_*~nRtS8ByQf9nJY9(_ldITj55RdnP=zaJ&xNK%=jD=pYKAF?B{MG?^UC{ zg^FF6`f%HB-9+r_*z5z&gN%JqkFQYa?fH?q^r5_)Mzi_ zVG-Bf^Yr+RQZ85@lr8h#4Z*3`^=jxBOt~*r)22U1y7Bso z-UY6XaZFABVZ27GvH8j>Dhvw?Mn?MUCddg^0Ps5s{Lj~)?Vt7k|7iW4 zvyWx@LHy?hg=93)rkkmQiK4TEqYJZ%gR|L>{1!AS^3Pryh&sMW>1ryIpMA@>a%mGH$AM3UEDJ3) zFe%r1qFq$sf;_ii0LCcQk{<%=Q;?*Kzn7BCxarR4UN>xA%eT}?rUEI=qS>en{fpyB zmR}loS(J3$T)|{tC6uTL6?Pp{2FvGdYh& zJJnt%x$uSjYO)g$bxpah?5vhTJB}a`!@dspHez`#VNwWWSAS1CY8l_1z6Aa93>1%0 z|7>waj*kBr9LUoCb>t-XS`+-3%?ax6FZ8L3(-CFW4l``ooIwvc)E!slw~4W)B8$V} zpH7xV4(k+=_sWJm#eL@;)o4!}wrsxrczw-5;nZ9%_rWmo)5qXkMCbGZwVHW%t-8Ux z{S%9HAh=Gj6E;Hg;Kc|GDq@FAO1S&C>L!S0;i&Ne{x5~ zEIhS*wN2ANgqQ!AlbEF}L&CjaqFdDK@KpkBzW1ktmDeAr4QZ#kxV6EGHO7v$p>Xto zA793aQg|9*M%jm36LHvq{7DZMI~4RVt){vmIs5|`Dh}-7Y)QUYYGHv=NVM)qVYj>u zLBj#HxUCcX2jLk*TBA43H6Py(Ny4A*JzQ<{Po5p-ewIEq?`Uv1T)0UgJVGqz;b;aU zl0-*_+sQ&48n=cIdVuLP*>&X4IY|ITb}o*x-YeFtw~Yb3$cYbu-%Ac_Tfez*gY_*C zksuG+LV=CDrr#r7LO3OTAb3H*rXQqdeEs!W$1-3*?douAbdU5gqtxWeJh;ct@fzeH z|8C6KBmpG!AY(=b{R*0l{geB2b8&UB`^TRDZOs5cQPQ+*KMUqCXx2<@^!a2$wGI2H z_&0hY0yI1x%vSAKSw)n4u91%&czh8s%-+7fBzad}$HkQzypWPcwzX=|QjsF0mexWBog{s^%vh#q)xu=ZF7oB+=3w^Ah^-IE}E0z zntExT;JR?3tD2>tOcOyfgfKw8-xRvRjqH1xE_tP4T6z6(>ZrN&-Tw9-&K;)f?1dfl zYDHO91*~MEy(S#oGbmGbY_S}}7YN!PY`eT*dOht+NEPGGE7ydcd)o3lX}q|fISM`5 zeXWDM5##o(l&3H;ab}H$GIfv#xWEF$i3s>K!NldUbu|1Ps=#gHE9`<2TOP2#Bx;s0X1=PAz9@s3|e`H25{iN6hdJVklB zyZZ}e2lcloKa0MnC{Oo)exV?MDkzXbp6&)c1$f#_`~~oc{}bR>Yw@Y*)Aq?PQ7Pg- zM4vWOo+3Og`F|mNAbF~T-!=fA0zR#ve*rF%{$Bup)zeP_pVlM40GG&q0zRome_NgY z4?rpYJD@*Ho~NLH&76O|CjhWS1pxdlkA5ot*EHzQ;&L>968~3H^i=wXkO}dsl zg_Ru0(GqD~;N5%87h(EWEaOt^$NS{vl^j5Zxn7k=(DBh;k)ol6EK49kqqh*19*SN_ zvZ=jD_58p=N!wFklB){&alS2;lrV*vS*&d~K)={ILdfxDH_8__qZ(uoU1v#dzaofj zxnC4dhP#*g>d@SEpu`(BPGwJU&gTp@R-ck1@6+zdtTO8JDxW1%ud1w<_%UgrN!lOW z_wY)V2r8#D9cyNgT#|75{V|ru;2|cfMwDvPm{ApxXB?2au212?-6(H-4U0Dto#TCjr~GX-iAT3}UkT_^K8Sn`5MPx^6GfI= zAn#O-7muc8YGMraE6Yf7b3^H9#QU!F#g;O#GbJCrOv8dM@$GwTWpqaSD-7jTiyMa0 zvs`hnoo{cXa);AYnO(;FU2Oc;9>G8MuOhewhob;A|KXrSrXOsO5e~YF@INesgPOV9 zK%hL_Kd=9F%>Q6-{N=A#C8?>R@ZpCahr$^?wu>!tFv1`_@;hqQw@7@Mx8@?53B|3q zmkQDz1@CD6a;m-ad^68&>xz7e@cq3A)8sKib8M&H>vgN%HaFiRNOo6a#d8$Vu|zBA8I;U!}mDF7A$&E-sEg<5{tekxMo&anP#|RV?c}Gi0UWCuZJ1qtD;}TKC~?mcl%l{ zxUvw1iAlI;6mx94XXZ$FT4-$tb7gKee6Eh3}`2G{RoDfI;^F#mbt_P89xm z1)`wH-SQ;m8qO5%$QKo+ex=hf*7u)&B<;ouko<<(&Eh~{c}t7ksP8)5AEgIOeg~X< zjE{AuHl|uH3)=Bt!z_HFy9?G$0q}hZUHpPZEDDURP6ylbldWB#UFO7wi-h9cOrX9` z?(}fi>8j9E;DX%CZ%;dW37@;%PG&34DOZ^&+jFMlO*+TnZYHHDPCgU{Kv(zmim666ro+GM&|2Me&6d@ zBvZ=c2eM7B)x)DeoWBJL@CX>99|OHX!hZTj@Y zW10Ne*A}X|@Pe*8&FfHXbA+0FbH%qE9jGOsIzdq6He!bvZzQ4^(*dTPkdvS{9qe1MbvTSRy! zk&=Fjpmi&P;*_wf(SF^Br^SD!Ru0O#NDwwo*tuAl!pKVo;GTm^}&lxiIs+?(w>Z%*`-+$Kp56 zk+Wmlt)YRLe@`MR_Xk-lP!VLp1pvqqT=+{7p>{Sl9#Eb?-uQk>V~&o=cor{tyICDv z%8v&qx2oJLGUB-M5kfX1QSHbMn*-0zR&(AQ`x{EBeWaeW)8NX1=9P)_21}?A9ApX` z&xl6#paZK)E7#8NE3S65$E_4}>VwJT%CkQ2^kVy&wgn1Evb775SP27OENqq6y&K{c zZm>+s&=jf)2bI8*^siov%n4>Cb|)8iDif>KGPfzbktvO^E3ey1;UZa9)?3t*6OiVd zcHvmbFja#wxF_u#zNOG&p-Rw)b{!5y7fQh(jTNc)9gza*Hd7|n%Ga|yU6vNF&Z$_3 z5So}OjB2wq8?bnXJ6J~RvL zmfX)bXPL*iDeToSo#Rjxn63`giolC;;lOGvu|P(X5HWBw&^BEF7Wb+Hk^lA@fydLJ1tMfQ4Elo|T@PpuL?Cyo?@ySUT=pE$b9KkC?eP z8Q>3_yYzn=Z|Ni7lo_HtKv}jv=QJh0AgXd?u~R2_6G3so_XF#vP$7r~ho_`EIzQ*d z534403n4_`WnxqUo=N}Oo#MY3>z@rXYs_xAa*oW<+8CqTGU;(ohvyZp^WyL`do z%F8+CM=H$s*R^FbdY=(iD5ItfKHgAzxx`G%u9eYC#G;byQz~ae$dgh|(MPIfvI~Qx zcJy%owO>DSWwgbwVXXBg@M3P1WUFUtpS#cT@WA$mvrYsm#ij~z*AKlv9U>X`Hk{|~&w3afJ6qB2Da`n-br6ko`!U%gv~wisb8z*ur5PRQ@oKoC5xoOl zQ~8@UWv7h$c@7IVGL^}xhn7_*4jPScqo+)DmBIq_m2dFSqtZZ)4wa)0j#xztN8e81 zh{FA^trv`w#_X2DmapdD0_for6imfB8%N5tciK&j<=$Va{^Jt@sBfB$^$J!3prRke6SZ-_LfnMPHT)Io%VYh0aPPrCePp3QAj?G zBBz{AbPpVX2>kGOY)F5A5o%cGLc1zcimUOk?}4K+BP{P8@<3Jsr~bt^`l?cfc{_dV zs!It*!*i6MPx*UoQyiZJ2|*-jZ>fGZAO4Uf4?7zt8=gO|e<;#{frbl_B5}u)J#X?u z8VIXbBoj5Un6NzqK1+DirjPgv&7=4ASrn{S;cJmP6&!Dxbt?UK3ml?R!JyQj%y6(4 z#|g=`t*z5>uT@ft(ybyf%f*4q3jA`reLgz4{PptcCDByWn#~?R-0q*SZyliQfb6daj@;EGcb&Yl%_)IXlC!rm3dd zD(G9__wYN{p|8YRF2fD5idi0r`Yshf`?T5X{j$T8(lcy81cRM}4LhvLOAj=PF^W7G zlvB3M@o89>%q+j-5i7KP9x}Vv!kJc%G#@`B`oqDuq_uWy4QFt}5qjkSEt)ZO`-*0L z0)k$Ry|`AH>7&y8X!kHj)-l5Cq3Aigb?1B<*$2$8Gw!&r3g{_ICrb>leJV-&3`1R@ zlSmg&1J_Neu6u$3%2v5+lhR)gDftBWX1a>d4M0L(R`6@Wa#eCC&eUwOwaOQdhcC9M7eiz}rav-Lj5=pr z>Zp-(+0bg0r3Y=tmwS_3o4mliJ0io;o`JSeZ`Z_5TRcMJKsntuvQ6ykizo^vrp)9x=Hccr-$~Bw zmNe=DCj}kMH}5lr9sO`?Q)Mk1M{m4*TOPQm4`u8M@CzJ260t;8AhsWeVN z-a3#lWwA%aIcTSLMVwZ4ZA@oP%+v2gbPj`fZyo0?R=Q%&8kY|_CETKI153G+_>Pj7 z6b+Ak>2za~@7MBUFvZ889r(n=V=nDw9T>Tay-bcesKlC6Yr7OS&BFdDz_Z&Xo)pK) zb)QvrQktp!Qhfbt(ym7B@-UnmtK|8x{g2t6!TNe@7d;Ds z>K0|V)-si9oK{qn+gh~9oI=mr6N4+zY{fx9NHHA9p7w-+{7#s?Gw!Y9khzqMu7{UJ z-;zJMl&Q*hC4ySAOFYf^*j{e5%Y98?;I&S7Y(xe6HJ0(Xy<@hbv)fqmTOW2?S1+1+ z&VJvP8TN-m)>tCGk5an=>S2^8QXe7t31y!6kL zZdVc!g-?$S+&{HnL|LYpBON)CwBP}A5#M%eX9uJr|)qD0}4K)R#5oQ{lBy zB>X&@xftI0T~U5862mGm-|IW~v>xg)55)fkedYLkKguq${fHGFCF^^;=gP@-II1hl zdA?M@rX}ApvCmir*H0cUYg76!4c@nqfy?P6qv@k*U==11Hjj8osv+T7lwKX2I z`fu z-3HtozMrwdsss(X_*aqX)70KKl!=Y5r7go?Iu3ksUJTQmpcS0O?5jw$;Z104=zryC|_ zRf?WAioQ0F>L%k7ia&`+KFMC+Vm{A(CPw=}I{w8NFSSMv?*m$m`@0k8%bW4JtOr0m z{nHJZ62Go;!ml59g}Nw4cEK5^x!nCU>mTD1Y%7WKmp@CK-5hD{w5TsY#aVZzo(b$+ z%CO>y2gC6CSuH5Nnj`!rJh)HVE`}PmdJ@-xM8?h=?@NOxXZq)&f?c~?Vb-AscVo;Q z|LQJHfl^iEh%SXGqVy#G%U$d&+-2b`pZ?)BRXRqFMAGDeWIynF&gLOWq^~W! zqxFy_&_lVdNc#_%#S(Joj~*BMCL3nKitX7=RRkMTL&+Em8_0DIXdustsx&wEkD4sr>veCP{DUdfClS*{{;nRb?a;iubdDrs%GRSjxU|c3kjIL?zVT|w_nv3owN?-vasc*@+*8$ zOh8FWXG}gNUoIgMk&6?4jG2~BXxV@i+dp)o)e9O{1&UNwNo8U;SSf?GP5bOD9?SF1 z1|R{a@^qDqa#AbJ`@e@gsK16J5O8<$c47AjO}u%?xWE8BPME15rV3djcW0BL zj13$gkTgW8oCp>cOwFqs{8(Bic6e|xAKKKX-ac!U8sscHQ*d2lKIp%mu4)etfd*tw-G*$&Kn={IAW}7-9>t z4pVF^yok{U7K#tSH^YIhzNzY({PcGdEKKRx+LFb06f9e{7tjf_MQ5VEv6+ru=?VOv zlpI)c0-8m9^F8L+&7SI{fPbxGKfLvM>%indqpo-0Z;9tx0m6C z-Z_G29i=wBTxP8%2M%bndxdXvg`@&hZ)dW|!R2f>Z9+RK)KO8p+jhc}F!e7gxJE)E zYhROMJ%QW>N!2Kxu@m9KC{)RMIBJxF#Fl9X-f@R=*4_yv$FPuKvkLH<56d*u>FZz*e^G2mRnz&U^A1$m^=%5wb#N(!EJmt54hL${pi)T4%T1 zfk7`nkBs>j1fDG38SS6!vcWS>t#EBsJ_MQH{_AW3niPh|f#5POLT3@jL4MI$PpF5B z(|_swzhnjgiW8+(dw9uzPF)MO^6smp&&Ry8QWL|+!_9f0F1U>81WxjJ*b8?KA6xH= zrj=YtkNEOgHN9Gvj=H2aSC1l61{=8|%=uyCc;~4X4iUcolh>t3jY$*_l(EvjAF8$T z`K9!G!q8|7AZWN_u~=bM4+aa~6~w1%7&?V7e4jcb*F%<9T|96@v1Blswq30-C|Vzd5i`XM26ArioU zKXdf=j{f=SUrr!ts{Yf!KhH$`YM=n2!M~i4_#OEBWcY9BG@=dp+no4!@IU8ne?tL) zdPF(+e^23lxAXfj=5I^eh&KBFHJbU|%J03?zpVt~|7$1pcLTrIvVR-kMo0tVG5)S> ze~12_*Z&PQq5Kp2dzSyZg@5LAf8zmwGHL+e|I6-vhyOF={tB0+`vv}20RA2QPm%i- gjmP*4+UoyFo~9}gL64v3Z?FJe2xW9<{`u{H0CPd_EC2ui literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Generic/ReelBaseSpin.xlsx b/gamesrv/slotspkg/external/excel/Base/Slots/SugarRush/Generic/ReelBaseSpin.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..081bedef6204ade437836ea5f287db136759677b GIT binary patch literal 17442 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�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 AW&i*H literal 0 HcmV?d00001 diff --git a/gamesrv/slotspkg/internal/module/player/player.go b/gamesrv/slotspkg/internal/module/player/player.go index 1fc0c53..4232f72 100644 --- a/gamesrv/slotspkg/internal/module/player/player.go +++ b/gamesrv/slotspkg/internal/module/player/player.go @@ -70,6 +70,7 @@ type ( FortuneMouse JSON CashMania JSON GatesOfOlympus JSON + SugarRush JSON Test JSON } } diff --git a/gamesrv/slotspkg/slots/formation/symbol_way.go b/gamesrv/slotspkg/slots/formation/symbol_way.go index f9b43c0..9ab4fa7 100644 --- a/gamesrv/slotspkg/slots/formation/symbol_way.go +++ b/gamesrv/slotspkg/slots/formation/symbol_way.go @@ -3,7 +3,9 @@ package formation import ( "github.com/tomas-qstarrs/boost/mathx" "mongo.games.com/game/gamesrv/slotspkg/internal/generic/errors" + "mongo.games.com/game/gamesrv/slotspkg/internal/module/shared" "mongo.games.com/game/gamesrv/slotspkg/slots/desc" + "mongo.games.com/game/gamesrv/slotspkg/slots/types/cli" ) // SymbolWay is the symbols of same symbol id @@ -16,6 +18,7 @@ type SymbolWay struct { Pay float64 // Pay of this symbol way LinkPositions []int64 // Link result LinkDirection int64 // Link direction for this Symbol way + Times int64 //n ways } // GenerateSymbolWays genertates all symbols ways and sum pays and links @@ -36,6 +39,14 @@ func (f *Formation) GenerateSymbolWays() { f.Pay += float64(symbolway.Pay) f.LinePays = append(f.LinePays, float64(symbolway.Pay)) f.addSymbolPay(symbolway.Symbol, symbolway.LinkCount, float64(symbolway.Pay)) + + f.RewardInfo = append(f.RewardInfo, &shared.RewardInfo{ + Type: 2, + Index: int(symbolway.Times), + Item: symbolway.Symbol, + Reward: symbolway.Pay, + Pos: cli.ToPoss(f.MatrixForm, symbolway.LinkPositions), + }) } } } @@ -70,9 +81,9 @@ func (s *SymbolWay) Win() bool { return s.Pay > 0 } -func (s *SymbolWay) pay(colCounts []int64) (float64, int64) { +func (s *SymbolWay) pay(colCounts []int64) (float64, int64, int64) { if colCounts[0] == 0 { - return 0, 0 + return 0, 0, 0 } symbolDesc, ok := s.SymbolsDesc[s.Symbol] if !ok { @@ -90,7 +101,7 @@ func (s *SymbolWay) pay(colCounts []int64) (float64, int64) { if linkCount > int64(len(symbolDesc.PayRate)) { panic(errors.Errorf("link %d pay is not found", linkCount)) } - return symbolDesc.Ratio(times * symbolDesc.PayRate[linkCount-1]), linkCount + return symbolDesc.Ratio(times * symbolDesc.PayRate[linkCount-1]), linkCount, times } func (s *SymbolWay) getSymbolDesc(symbol int64) *desc.SymbolDesc { @@ -169,7 +180,7 @@ func (s *SymbolWay) calculatePayFromLeftToRight(positions []int64, allPositions } } - s.Pay, s.LinkCount = s.pay(colCounts) + s.Pay, s.LinkCount, s.Times = s.pay(colCounts) var hasSymbol bool for index := 0; index < len(positions); index++ { @@ -185,6 +196,7 @@ func (s *SymbolWay) calculatePayFromLeftToRight(positions []int64, allPositions if !hasSymbol { s.LinkPositions = nil s.Pay = 0 + s.Times = 0 s.LinkCount = 0 } } @@ -209,7 +221,7 @@ func (s *SymbolWay) calculatePayFromRightToLeft(positions []int64, allPositions } } - s.Pay, s.LinkCount = s.pay(colCounts) + s.Pay, s.LinkCount, s.Times = s.pay(colCounts) colCounts = make([]int64, len(s.MatrixDesc.Form)) end = int64(len(positions) - 1) @@ -235,6 +247,7 @@ func (s *SymbolWay) calculatePayFromRightToLeft(positions []int64, allPositions if sumColCount == 0 { s.LinkPositions = nil s.Pay = 0 + s.Times = 0 s.LinkCount = 0 } } diff --git a/gamesrv/sugarrush/action_sugarrush.go b/gamesrv/sugarrush/action_sugarrush.go new file mode 100644 index 0000000..db553cd --- /dev/null +++ b/gamesrv/sugarrush/action_sugarrush.go @@ -0,0 +1,46 @@ +package sugarrush + +import ( + "mongo.games.com/game/common" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/protocol/sugarrush" + "mongo.games.com/goserver/core/logger" + "mongo.games.com/goserver/core/netlib" +) + +type CSSugarRushOpPacketFactory struct { +} +type CSSugarRushOpHandler struct { +} + +func (this *CSSugarRushOpPacketFactory) CreatePacket() interface{} { + pack := &sugarrush.CSSugarRushOp{} + return pack +} + +func (this *CSSugarRushOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { + if op, ok := data.(*sugarrush.CSSugarRushOp); ok { + p := base.PlayerMgrSington.GetPlayer(sid) + if p == nil { + logger.Logger.Warn("CSSugarRushOpHandler p == nil") + return nil + } + scene := p.GetScene() + if scene == nil { + logger.Logger.Warn("CSSugarRushOpHandler p.scene == nil") + return nil + } + if !scene.HasPlayer(p) { + return nil + } + if scene.GetScenePolicy() != nil { + scene.GetScenePolicy().OnPlayerOp(scene, p, int(op.GetOpCode()), op.GetParams()) + } + return nil + } + return nil +} +func init() { + common.RegisterHandler(int(sugarrush.SugarRushPID_PACKET_SUGARRUSH_CSSUGARRUSHOP), &CSSugarRushOpHandler{}) + netlib.RegisterFactory(int(sugarrush.SugarRushPID_PACKET_SUGARRUSH_CSSUGARRUSHOP), &CSSugarRushOpPacketFactory{}) +} diff --git a/gamesrv/sugarrush/playerdata_sugarrush.go b/gamesrv/sugarrush/playerdata_sugarrush.go new file mode 100644 index 0000000..b21a4f5 --- /dev/null +++ b/gamesrv/sugarrush/playerdata_sugarrush.go @@ -0,0 +1,68 @@ +package sugarrush + +import ( + "mongo.games.com/game/gamerule/sugarrush" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/slots" +) + +type SugarRushPlayerData struct { + *base.Player + base.LabaLog + leaveTime int32 //离开时间 + SlotsSession *base.SlotsSession + + BetSizeIndex int64 `json:"bsi"` //选中的单注下标 + BetLevelIndex int64 `json:"bli"` //选中的等级下标 + BetLineIndex int64 `json:"bii"` //选中的线数下标 + BetMode int64 `json:"bm,optional"` //0.常规 1.%125 2.购买 + + taxCoin int64 + winCoin int64 + currentLogId string + totalBet int64 + + isFree bool //只用于判断是否可以离开 +} +type LinkPositions struct { + Positions []int64 `json:"Positions,omitempty"` +} +type CustomEliminate struct { + LinkPositions []*LinkPositions `json:"LinkPositions,omitempty"` //消除的位置 + AppendSymbols [][]int64 `json:"AppendSymbols,omitempty"` //新增 + FormattedSymbols [][]int64 `json:"FormattedSymbols,omitempty"` //最终的结果 + LinePays []float64 `json:"LinePays,omitempty"` //赔付 + WinCoins []float64 `json:"WinCoins,omitempty"` //输赢 + MultiStr string `json:"multi_str,omitempty"` + MultiStrVal string `json:"multi_str_val,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} +type SpinLock struct { + CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` + Pay float64 `json:"Pay,omitempty"` + Multi int64 `json:"Multi,omitempty"` + SymbolsAbove []int64 `json:"symbols_above,omitempty"` + SymbolsBelow []int64 `json:"symbols_below,omitempty"` +} + +func (p *SugarRushPlayerData) init() { + p.SlotsSession = base.NewSession(uint64(p.SnId), p.Coin*sugarrush.NowByte) +} +func (p *SugarRushPlayerData) Clear() { + p.taxCoin = 0 + p.winCoin = 0 + p.currentLogId = "" + p.LabaLog.Clear() +} + +// 需要带到world上进行数据处理 +func (p *SugarRushPlayerData) PushPlayer() map[string]string { + cache := slots.SlotsMgrSington.PushPlayer(p.SlotsSession) + return cache +} + +// 进房的时候需要带进来 +func (p *SugarRushPlayerData) PullPlayer(data map[string]string) { + slots.SlotsMgrSington.PullPlayer(p.SlotsSession, data) +} diff --git a/gamesrv/sugarrush/scenedata_sugarrush.go b/gamesrv/sugarrush/scenedata_sugarrush.go new file mode 100644 index 0000000..5c4eab3 --- /dev/null +++ b/gamesrv/sugarrush/scenedata_sugarrush.go @@ -0,0 +1,45 @@ +package sugarrush + +import ( + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" +) + +type SugarRushSceneData struct { + *base.Scene //场景 + players map[int32]*SugarRushPlayerData //玩家信息 + BetConfig *assemble.BetConfig +} + +func NewSugarRushSceneData(s *base.Scene) *SugarRushSceneData { + sceneEx := &SugarRushSceneData{ + Scene: s, + players: make(map[int32]*SugarRushPlayerData), + } + sceneEx.Init() + return sceneEx +} +func (s *SugarRushSceneData) Init() { + +} + +func (s *SugarRushSceneData) Clear() { + //应该是水池变一次就判断修改一次 + //s.slotRateWeight = s.slotRateWeightTotal[0] +} +func (s *SugarRushSceneData) SceneDestroy(force bool) { + //销毁房间 + s.Scene.Destroy(force) +} + +func (s *SugarRushSceneData) delPlayer(SnId int32) { + if _, exist := s.players[SnId]; exist { + delete(s.players, SnId) + } +} +func (s *SugarRushSceneData) OnPlayerLeave(p *base.Player, reason int) { + if /*playerEx*/ _, ok := p.ExtraData.(*SugarRushPlayerData); ok { + + } + s.delPlayer(p.SnId) +} diff --git a/gamesrv/sugarrush/scenepolicy_sugarrush.go b/gamesrv/sugarrush/scenepolicy_sugarrush.go new file mode 100644 index 0000000..92decd1 --- /dev/null +++ b/gamesrv/sugarrush/scenepolicy_sugarrush.go @@ -0,0 +1,585 @@ +package sugarrush + +import ( + "encoding/json" + "mongo.games.com/game/common" + "mongo.games.com/game/gamerule/sugarrush" + "mongo.games.com/game/gamesrv/base" + "mongo.games.com/game/gamesrv/slotspkg/assemble" + "mongo.games.com/game/gamesrv/slotspkg/slots" + "mongo.games.com/game/model" + "mongo.games.com/game/proto" + "mongo.games.com/game/protocol/server" + protocol "mongo.games.com/game/protocol/sugarrush" + "mongo.games.com/goserver/core" + "mongo.games.com/goserver/core/logger" + "time" +) + +// //////////////////////////////////////////////////////////// +var ScenePolicySugarRushSington = &ScenePolicySugarRush{} + +type ScenePolicySugarRush struct { + base.BaseScenePolicy + states [sugarrush.SugarRushStateMax]base.SceneState +} + +// 创建场景扩展数据 +func (this *ScenePolicySugarRush) CreateSceneExData(s *base.Scene) interface{} { + sceneEx := NewSugarRushSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + } + } + return sceneEx +} + +// 创建玩家扩展数据 +func (this *ScenePolicySugarRush) CreatePlayerExData(s *base.Scene, p *base.Player) interface{} { + playerEx := &SugarRushPlayerData{Player: p} + p.SetExtraData(playerEx) + return playerEx +} + +// 场景开启事件 +func (this *ScenePolicySugarRush) OnStart(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicySugarRush) OnStart, sceneId=", s.GetSceneId()) + sceneEx := NewSugarRushSceneData(s) + if sceneEx != nil { + if sceneEx.GetInit() { + s.SetExtraData(sceneEx) + s.ChangeSceneState(sugarrush.SugarRushStateStart) + } + } +} + +// 场景关闭事件 +func (this *ScenePolicySugarRush) OnStop(s *base.Scene) { + logger.Logger.Trace("(this *ScenePolicySugarRush) OnStop , sceneId=", s.GetSceneId()) +} + +// 场景心跳事件 +func (this *ScenePolicySugarRush) OnTick(s *base.Scene) { + if s == nil { + return + } + if s.GetSceneState() != nil { + s.GetSceneState().OnTick(s) + } +} + +// 玩家进入事件 +func (this *ScenePolicySugarRush) OnPlayerEnter(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicySugarRush) OnPlayerEnter, sceneId=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*SugarRushSceneData); ok { + playerEx := &SugarRushPlayerData{Player: p} + + playerEx.init() + + d := p.GameData[sugarrush.GameDataKey] + if d != nil { + m := make(map[string]string) + json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } else { + m := make(map[string]string) + //json.Unmarshal(d.Data.([]byte), &m) + playerEx.PullPlayer(m) + } + + playerEx.SlotsSession.SetCoin(playerEx.Coin * sugarrush.NowByte) + + playerEx.Clear() + + sceneEx.players[p.SnId] = playerEx + + p.SetExtraData(playerEx) + SugarRushSendRoomInfo(s, sceneEx, playerEx) + + s.FirePlayerEvent(p, base.PlayerEventEnter, nil) + } +} + +// 玩家离开事件 +func (this *ScenePolicySugarRush) OnPlayerLeave(s *base.Scene, p *base.Player, reason int) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicySugarRush) OnPlayerLeave, sceneId=", s.GetSceneId(), " player=", p.SnId) + if playerEx, ok := p.ExtraData.(*SugarRushPlayerData); ok { + playerEx.LabaLog.Save(2) // 没有收到结束消息,算2秒游戏时长 + m := playerEx.PushPlayer() + if m != nil && len(m) > 0 { + b, err := json.Marshal(m) + if err != nil { + logger.Logger.Error("OnPlayerLeave, json.Marshal error:", err) + } else { + p.GameData[sugarrush.GameDataKey] = &model.PlayerGameData{ + Platform: p.Platform, + SnId: p.SnId, + Id: sugarrush.GameDataKey, + Data: b, + } + } + } + } + if sceneEx, ok := s.ExtraData.(*SugarRushSceneData); ok { + s.FirePlayerEvent(p, base.PlayerEventLeave, nil) + sceneEx.OnPlayerLeave(p, reason) + } +} + +// 玩家掉线 +func (this *ScenePolicySugarRush) OnPlayerDropLine(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicySugarRush) OnPlayerDropLine, sceneId=", s.GetSceneId(), " player=", p.SnId) + s.FirePlayerEvent(p, base.PlayerEventDropLine, nil) +} + +// 玩家重连 +func (this *ScenePolicySugarRush) OnPlayerRehold(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicySugarRush) OnPlayerRehold, sceneId=", s.GetSceneId(), " player=", p.SnId) + if sceneEx, ok := s.GetExtraData().(*SugarRushSceneData); ok { + if playerEx, ok := p.GetExtraData().(*SugarRushPlayerData); ok { + SugarRushSendRoomInfo(s, sceneEx, playerEx) + } + } +} + +// 返回房间 +func (this *ScenePolicySugarRush) OnPlayerReturn(s *base.Scene, p *base.Player) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicySugarRush) OnPlayerReturn, GetSceneId()=", s.GetSceneId(), " player=", p.Name) + if sceneEx, ok := s.GetExtraData().(*SugarRushSceneData); ok { + if playerEx, ok := p.GetExtraData().(*SugarRushPlayerData); ok { + //if p.IsMarkFlag(base.PlayerState_Auto) { + // p.UnmarkFlag(base.PlayerState_Auto) + // p.SyncFlag() + //} + //发送房间信息给自己 + SugarRushSendRoomInfo(s, sceneEx, playerEx) + s.FirePlayerEvent(p, base.PlayerEventReturn, nil) + } + } +} + +func SugarRushSendRoomInfo(s *base.Scene, sceneEx *SugarRushSceneData, playerEx *SugarRushPlayerData) { + pack := SugarRushCreateRoomInfoPacket(s, sceneEx, playerEx) + logger.Logger.Trace("RoomInfo: ", pack) + playerEx.SendToClient(int(protocol.SugarRushPID_PACKET_SUGARRUSH_SCSUGARRUSHROOMINFO), pack) +} +func SugarRushCreateRoomInfoPacket(s *base.Scene, sceneEx *SugarRushSceneData, playerEx *SugarRushPlayerData) interface{} { + //房间信息 + pack := &protocol.SCSugarRushRoomInfo{ + RoomId: s.SceneId, + GameId: s.GameId, + RoomMode: s.SceneMode, + SceneType: s.GetSceneType(), + Params: common.CopySliceInt64ToInt32(s.Params), + NumOfGames: proto.Int(sceneEx.NumOfGames), + State: proto.Int(s.SceneState.GetState()), + ParamsEx: s.GetDBGameFree().OtherIntParams, + GameFreeId: proto.Int32(s.GetDBGameFree().Id), + //BetLimit: s.GetDBGameFree().BetLimit, + } + + //自己的信息 + if playerEx != nil { + pd := &protocol.SugarRushPlayerData{ + SnId: proto.Int32(playerEx.SnId), + Name: proto.String(playerEx.Name), + Head: proto.Int32(playerEx.Head), + Sex: proto.Int32(playerEx.Sex), + Coin: proto.Int64(playerEx.Coin), + Pos: proto.Int(playerEx.Pos), + Flag: proto.Int(playerEx.GetFlag()), + City: proto.String(playerEx.City), + HeadOutLine: proto.Int32(playerEx.HeadOutLine), + VIP: proto.Int32(playerEx.VIP), + } + pack.Player = pd + } + + //get data + Response, err := slots.SlotsMgrSington.Enter(playerEx.SlotsSession, int64(s.GameId)) + if err == nil { + data := assemble.DataToCli(Response).(assemble.TableInfo) + pi, _ := json.Marshal(data) + pack.PlayerInfo = string(pi) + if sceneEx.BetConfig == nil { + sceneEx.BetConfig = &data.BetConfig + } + } else { + logger.Logger.Error("slots enter err:", err) + } + proto.SetDefaults(pack) + return pack +} +func (this *ScenePolicySugarRush) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + if s == nil || p == nil { + return false + } + logger.Logger.Trace("(this *ScenePolicySugarRush) OnPlayerOp, sceneId=", s.GetSceneId(), " player=", p.SnId, " opcode=", opcode, " params=", params) + if s.GetSceneState() != nil { + if s.GetSceneState().OnPlayerOp(s, p, opcode, params) { + p.SetLastOPTimer(time.Now()) + return true + } + return false + } + return true +} + +func (this *ScenePolicySugarRush) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + if s == nil || p == nil { + return + } + logger.Logger.Trace("(this *ScenePolicySugarRush) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " eventcode=", evtcode, " params=", params) + if s.GetSceneState() != nil { + s.GetSceneState().OnPlayerEvent(s, p, evtcode, params) + } +} + +// 当前状态能否换桌 +func (this *ScenePolicySugarRush) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if s == nil || p == nil { + return false + } + if s.GetSceneState() != nil { + return s.GetSceneState().CanChangeCoinScene(s, p) + } + return false +} + +// 状态基类 +type SceneBaseStateSugarRush struct { +} + +func (this *SceneBaseStateSugarRush) GetTimeout(s *base.Scene) int { + if sceneEx, ok := s.GetExtraData().(*SugarRushSceneData); ok { + return int(time.Now().Sub(sceneEx.GetStateStartTime()) / time.Second) + } + return 0 +} + +func (this *SceneBaseStateSugarRush) CanChangeTo(s base.SceneState) bool { + return true +} + +// 当前状态能否换桌 +func (this *SceneBaseStateSugarRush) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + return true +} +func (this *SceneBaseStateSugarRush) OnEnter(s *base.Scene) { + if sceneEx, ok := s.GetExtraData().(*SugarRushSceneData); ok { + sceneEx.SetStateStartTime(time.Now()) + } +} + +func (this *SceneBaseStateSugarRush) OnLeave(s *base.Scene) {} +func (this *SceneBaseStateSugarRush) OnTick(s *base.Scene) { + if time.Now().Sub(s.GameStartTime) > time.Second*3 { + if sceneEx, ok := s.ExtraData.(*SugarRushSceneData); ok { + for _, p := range sceneEx.players { + if p.IsOnLine() { + p.leaveTime = 0 + continue + } + p.leaveTime++ + if p.leaveTime < 60*2 { + continue + } + //踢出玩家 + sceneEx.PlayerLeave(p.Player, common.PlayerLeaveReason_LongTimeNoOp, true) + } + } + s.GameStartTime = time.Now() + } +} +func (this *SceneBaseStateSugarRush) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + return false +} +func (this *SceneBaseStateSugarRush) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { +} + +// //////////////////////////////////////////////////////////// +// 开始状态 +// //////////////////////////////////////////////////////////// +type SceneStateStartSugarRush struct { + SceneBaseStateSugarRush +} + +func (this *SceneStateStartSugarRush) GetState() int { + return sugarrush.SugarRushStateStart +} + +func (this *SceneStateStartSugarRush) CanChangeTo(s base.SceneState) bool { + return false +} + +// 当前状态能否换桌 +func (this *SceneStateStartSugarRush) CanChangeCoinScene(s *base.Scene, p *base.Player) bool { + if playerEx, ok := p.GetExtraData().(*SugarRushPlayerData); ok { + if playerEx.isFree { + return false + } + } + return true +} + +func (this *SceneStateStartSugarRush) GetTimeout(s *base.Scene) int { + return 0 +} + +func (this *SceneStateStartSugarRush) OnEnter(s *base.Scene) { + this.SceneBaseStateSugarRush.OnEnter(s) + if sceneEx, ok := s.GetExtraData().(*SugarRushSceneData); ok { + sceneEx.SetGameNowTime(time.Now()) + } +} + +// 状态离开时 +func (this *SceneStateStartSugarRush) OnLeave(s *base.Scene) { + this.SceneBaseStateSugarRush.OnLeave(s) + logger.Logger.Tracef("(this *SceneStateStartSugarRush) OnLeave, sceneid=%v", s.GetSceneId()) +} + +// 玩家操作 +func (this *SceneStateStartSugarRush) OnPlayerOp(s *base.Scene, p *base.Player, opcode int, params []int64) bool { + logger.Logger.Tracef("(this *SceneStateStartSugarRush) OnPlayerOp, sceneid=%v params=%v", s.GetSceneId(), params) + if this.SceneBaseStateSugarRush.OnPlayerOp(s, p, opcode, params) { + return true + } + if sceneEx, ok := s.GetExtraData().(*SugarRushSceneData); ok { + if playerEx, ok := p.GetExtraData().(*SugarRushPlayerData); ok { + switch opcode { + case sugarrush.SugarRushPlayerOpStart: + playerEx.Clear() + if len(params) < 4 { + pack := &protocol.SCSugarRushBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCSugarRushBilled", pack.String()) + playerEx.SendToClient(int(protocol.SugarRushPID_PACKET_SUGARRUSH_SCSUGARRUSHBILLED), pack) + return true + } + playerEx.BetSizeIndex = params[0] + playerEx.BetLevelIndex = params[1] + playerEx.BetLineIndex = params[2] + playerEx.BetMode = params[3] + needCoin := sceneEx.BetConfig.BetSize[params[0]] * float64(sceneEx.BetConfig.BetLevel[params[1]]) * + float64(sceneEx.BetConfig.BetLines[params[2]]) * float64(sceneEx.BetConfig.BaseBet[params[2]]) + if needCoin > float64(playerEx.Coin) && !playerEx.isFree { + pack := &protocol.SCSugarRushBilled{ + OpRetCode: proto.Int32(1), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCSugarRushBilled:", pack.String()) + playerEx.SendToClient(int(protocol.SugarRushPID_PACKET_SUGARRUSH_SCSUGARRUSHBILLED), pack) + return true + } + + //playerEx.SlotsSession.SetCoin(playerEx.Coin * sugarrush.NowByte) + //logger.Logger.Trace("=============init dif coin", playerEx.Coin-playerEx.SlotsSession.Coin()/sugarrush.NowByte) + + //get data + Response, err := slots.SlotsMgrSington.Play(playerEx.SlotsSession, &base.SpinReq{ + GameId: int64(sceneEx.GameId), + BetSizeIndex: playerEx.BetSizeIndex, + BetLevelIndex: playerEx.BetLevelIndex, + BetLineIndex: playerEx.BetLineIndex, + BetMode: playerEx.BetMode, + Ts: time.Now().Unix(), + }) + var gameEndStr string + var data assemble.GameEnd + if err == nil { + s.SetGameNowTime(time.Now()) + data = assemble.DataToCli(Response).(assemble.GameEnd) + + data.BetSizeIndex = playerEx.BetSizeIndex + data.BetLevelIndex = playerEx.BetLevelIndex + data.LinesIndex = playerEx.BetLineIndex + //data.BaseBetIndex = 1 + + data.Results[0].BetMode = playerEx.BetMode + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====TotalBet===", -data.TotalBet) + //第一次触发或者正常模式 + playerEx.AddCoin(int64(-data.TotalBet), common.GainWay_HundredSceneLost, base.SyncFlag_ToClient, "system", s.GetSceneName()) + playerEx.totalBet = int64(data.TotalBet) + } + var taxCoin float64 + if data.RoundReward > 0 { + //税收比例 + taxRate := sceneEx.GetDBGameFree().GetTaxRate() + if taxRate < 0 || taxRate > 10000 { + taxRate = 500 + } + taxCoin = data.RoundReward * float64(taxRate) / 10000 + data.RoundReward = data.RoundReward - taxCoin + playerEx.AddServiceFee(int64(taxCoin)) + playerEx.taxCoin = int64(taxCoin) + playerEx.winCoin = int64(data.RoundReward) + } + pi, _ := json.Marshal(data) + gameEndStr = string(pi) + + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + //logger.Logger.Trace("=====================AddCoin=====RoundReward===", data.RoundReward) + playerEx.AddCoin(int64(data.RoundReward), common.GainWay_HundredSceneWin, 0, "system", s.GetSceneName()) + //免费游戏结束或者正常模式 + sceneEx.StaticsLaba(&base.StaticLabaParam{ + SnId: playerEx.SnId, + Gain: int64(data.RoundReward - data.TotalBet), + GainTax: int64(taxCoin), + IsAddTimes: true, + }) + } + if data.Results[0].FreeNum > 0 { + playerEx.isFree = true + } else { + playerEx.isFree = false + } + } else { + logger.Logger.Error("slots Play err:", err) + } + + playerEx.SlotsSession.SetCoin(int64(data.FinalCoin) * sugarrush.NowByte) + //logger.Logger.Trace("=====================end===== playerEx.Coin===", playerEx.Coin) + //logger.Logger.Trace("=====================end===== data.FinalCoin===", data.FinalCoin) + + pack := &protocol.SCSugarRushBilled{ + OpRetCode: proto.Int32(0), + GameEndStr: proto.String(gameEndStr), + } + proto.SetDefaults(pack) + logger.Logger.Trace("SCSugarRushBilled", pack.String()) + playerEx.SendToClient(int(protocol.SugarRushPID_PACKET_SUGARRUSH_SCSUGARRUSHBILLED), pack) + + if playerEx.Coin != int64(data.FinalCoin) { + logger.Logger.Error("==========playerEx.Coin != Response.Coin==============", playerEx.Coin, data.FinalCoin) + } + + // 记录本次操作 + SugarRushAndSaveLog(sceneEx, playerEx, data) + case 1000: + playerEx.Save(0) + } + } + } + return true +} + +// 玩家事件 +func (this *SceneStateStartSugarRush) OnPlayerEvent(s *base.Scene, p *base.Player, evtcode int, params []int64) { + logger.Logger.Trace("(this *SceneStateStartSugarRush) OnPlayerEvent, sceneId=", s.GetSceneId(), " player=", p.SnId, " evtcode=", evtcode) + this.SceneBaseStateSugarRush.OnPlayerEvent(s, p, evtcode, params) +} + +func (this *SceneStateStartSugarRush) OnTick(s *base.Scene) { + this.SceneBaseStateSugarRush.OnTick(s) +} + +// ////////////////////////////////////////////////////////////////////////////// +func (this *ScenePolicySugarRush) RegisteSceneState(state base.SceneState) { + if state == nil { + return + } + stateid := state.GetState() + if stateid < 0 || stateid >= sugarrush.SugarRushStateMax { + return + } + this.states[stateid] = state +} + +func (this *ScenePolicySugarRush) GetSceneState(s *base.Scene, stateid int) base.SceneState { + if stateid >= 0 && stateid < sugarrush.SugarRushStateMax { + return this.states[stateid] + } + return nil +} +func SugarRushAndSaveLog(sceneEx *SugarRushSceneData, playerEx *SugarRushPlayerData, data assemble.GameEnd) { + if !playerEx.IsRob { + data.SnId = playerEx.SnId + if data.Results[0].FreeStatus != 1 && data.Results[0].FreeNumMax != 0 { + data.TotalBet = 0 + } + info, err := model.MarshalGameNoteByROLL(data) + if err == nil { + logid, _ := model.AutoIncGameLogId() + playerEx.currentLogId = logid + var totalin, totalout int64 + if data.Results[0].FreeStatus == 1 || data.Results[0].FreeNumMax == 0 { + totalin = playerEx.totalBet + } + if data.Results[0].FreeStatus == 3 || data.Results[0].FreeNumMax == 0 { + totalout = int64(data.RoundReward) + playerEx.taxCoin + } + playerEx.Cache(sceneEx.Scene, &base.SaveGameDetailedParam{ + LogId: logid, + Detail: info, + }, &base.SaveGamePlayerListLogParam{ + LogId: logid, + Platform: playerEx.Platform, + Snid: playerEx.SnId, + PlayerName: playerEx.Name, + TotalIn: totalin, + TotalOut: totalout, + TaxCoin: playerEx.taxCoin, + BetAmount: totalin, + WinAmountNoAnyTax: totalout - totalin - playerEx.taxCoin, + IsFirstGame: sceneEx.IsPlayerFirst(playerEx.Player), + IsFree: playerEx.isFree, + }) + } + } + + //统计输下注金币数 + if !sceneEx.Testing && !playerEx.IsRob { + playerBet := &server.PlayerData{ + SnId: proto.Int32(playerEx.SnId), + Bet: proto.Int64(playerEx.CurrentBet), + Gain: proto.Int64(int64(data.RoundReward) + playerEx.taxCoin), + Tax: proto.Int64(playerEx.taxCoin), + Coin: proto.Int64(playerEx.GetCoin()), + GameCoinTs: proto.Int64(playerEx.GameCoinTs), + } + gwPlayerBet := &server.GWPlayerData{ + SceneId: sceneEx.SceneId, + GameFreeId: proto.Int32(sceneEx.GetDBGameFree().GetId()), + } + gwPlayerBet.Datas = append(gwPlayerBet.Datas, playerBet) + sceneEx.SyncPlayerDatas(&base.PlayerDataParam{ + HasRobotGaming: false, + Data: gwPlayerBet, + }) + } + + playerEx.taxCoin = 0 + playerEx.winCoin = 0 + + if sceneEx.CheckNeedDestroy() && data.Results[0].FreeNum <= 0 { + sceneEx.SceneDestroy(true) + } +} +func init() { + //主状态 + ScenePolicySugarRushSington.RegisteSceneState(&SceneStateStartSugarRush{}) + core.RegisteHook(core.HOOK_BEFORE_START, func() error { + base.RegisteScenePolicy(common.GameId_SugarRush, sugarrush.RoomMode_Classic, ScenePolicySugarRushSington) + return nil + }) +}