Compare commits

...

78 Commits

Author SHA1 Message Date
TJH
f113618abe 帮助赔率界面使用节点池,减少消耗
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-07-06 17:14:18 +08:00
TJH
a3872e1a18 退出游戏后打开from代表的网页
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m2s
2026-07-06 14:50:18 +08:00
TJH
d2d2540de0 UI修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-07-01 15:32:40 +08:00
TJH
97b836b9df bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-06-29 17:16:49 +08:00
TJH
1f7dfcfffa 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m12s
2026-06-29 15:09:46 +08:00
TJH
d099caf374 缅甸泰语在某些系统下错位问题的修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m2s
2026-06-29 15:08:53 +08:00
TJH
deaaf21e3c 开始滚动前获取余额时,如果网络错误,添加错误后的处理
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m3s
2026-06-25 16:40:41 +08:00
TJH
10562f980c 购买按钮隐藏的逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-06-11 11:15:35 +08:00
TJH
ef4560fe8c 余额不足提示逻辑调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-06-11 10:18:49 +08:00
TJH
c62d2a1522 点击余额不足提示确认按钮时刷新玩家余额的显示
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-06-10 14:40:27 +08:00
TJH
09f7990e6d 余额刷新添加点击限制
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-06-10 09:55:32 +08:00
TJH
897f305ae3 余额不足时在客户端拦截,不经过spin接口
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-06-08 15:23:28 +08:00
TJH
d6d9db5f65 历史记录详情调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-05-28 15:17:38 +08:00
TJH
51d05d5209 帮助赔率历史记录的屏幕适配
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m3s
2026-05-28 15:08:14 +08:00
TJH
d5719f29f5 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m11s
2026-05-12 10:13:59 +08:00
TJH
05c98897e8 bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-05-12 10:09:47 +08:00
TJH
548307cc79 进度条初始显示为0%
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-02-26 10:17:36 +08:00
TJH
58dc911529 bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-02-25 16:03:15 +08:00
TJH
d9d6a9bbe4 点击停止逻辑
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-25 15:48:52 +08:00
TJH
90d873c4cd test
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m25s
2026-02-25 14:13:09 +08:00
TJH
c035ac8c54 点击停止逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m27s
2026-02-25 13:32:32 +08:00
TJH
08bcd8faf1 点击停止的节奏修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-02-24 17:40:55 +08:00
TJH
7915edd14c Type为1的背景框没有正确显示的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-24 16:15:40 +08:00
TJH
2a3afc71a4 ui
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m23s
2026-02-24 14:45:02 +08:00
TJH
e963a68bb2 ui调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m9s
2026-02-24 10:49:49 +08:00
TJH
d25e165b55 1 2026-02-08 09:47:51 +08:00
TJH
d7d34fba67 历史记录bug修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-02-03 16:42:32 +08:00
TJH
bdc590f3a3 龙虎榜UI修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m4s
2026-01-31 15:37:51 +08:00
TJH
c3ee424988 1 2026-01-22 16:07:11 +08:00
TJH
82dbef86ef 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-01-22 16:04:47 +08:00
TJH
089e040af3 ui
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-01-22 16:03:01 +08:00
TJH
8935ded46a ui调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m9s
2026-01-22 11:06:19 +08:00
TJH
f0b70996a5 ui调整 2026-01-21 17:49:47 +08:00
TJH
f3539d2e65 loading界面修改 2026-01-20 11:27:35 +08:00
TJH
a96ea74205 bigwin点击停止时没播放结算音效的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m5s
2026-01-08 10:18:09 +08:00
TJH
f46b37ec39 消除时掉线可以重试或退出
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-07 17:10:18 +08:00
TJH
33d60c77be 龙虎榜跑马灯修改,rb7logo不消失的bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-01-07 16:17:02 +08:00
TJH
38ea96f3c2 龙虎榜修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-05 15:16:43 +08:00
TJH
3bd903bf66 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2026-01-04 16:46:15 +08:00
TJH
f95d0be231 历史记录修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2026-01-04 16:41:18 +08:00
TJH
666120de80 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-04 16:25:52 +08:00
TJH
2be3daa548 1
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
2026-01-04 16:23:22 +08:00
TJH
9034584856 插屏相关修改
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 1s
2026-01-04 16:17:53 +08:00
TJH
bb97bf57dd 多语言修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2026-01-04 16:13:26 +08:00
TJH
9109cb225e 11
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 2m5s
2026-01-04 13:55:03 +08:00
TJH
fb72706ade 龙虎榜
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-31 15:20:31 +08:00
TJH
79990a2ae8 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-31 14:02:48 +08:00
TJH
034832d913 点击区域调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 4m50s
2025-12-31 12:26:04 +08:00
TJH
1b33734c39 自动旋转和小游戏中也可以点击屏幕停止滚动
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-31 12:22:48 +08:00
TJH
80057d6957 龙虎榜相关
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-31 11:32:07 +08:00
TJH
21e7324b54 龙虎榜
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2025-12-31 11:12:07 +08:00
TJH
861865bc78 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-31 11:03:41 +08:00
TJH
6e2c230b52 自动滚动时不显示购买按钮
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2025-12-31 10:51:42 +08:00
TJH
47e506ce41 免费赠送bug
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2025-12-31 09:46:01 +08:00
TJH
d0e95f15a3 历史记录修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2025-12-30 17:30:59 +08:00
TJH
b437ac5cae ui
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m11s
2025-12-30 16:32:56 +08:00
TJH
7954f5ea43 scatter和wild层级
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m19s
2025-12-30 16:31:31 +08:00
TJH
4c32b9f6bd 历史记录显示逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2025-12-30 14:54:44 +08:00
TJH
dd333d4c59 no message 2025-12-30 14:09:25 +08:00
TJH
b05312de5f 1 2025-12-30 14:09:05 +08:00
TJH
3ab56dca39 loading界面修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-30 14:06:27 +08:00
TJH
35fa919d8a 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-30 13:31:24 +08:00
TJH
04084da893 loading失败可以重试
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
2025-12-30 13:30:52 +08:00
TJH
87e7307d0d 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2025-12-30 12:45:09 +08:00
TJH
6ea378001e 龙虎榜修改 2025-12-30 12:34:06 +08:00
TJH
9ad38a43b5 资源加载逻辑修改
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
2025-12-30 12:26:22 +08:00
TJH
13bde0b065 多语言加载
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2025-12-30 11:22:43 +08:00
TJH
c0b0b26b6a 1
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-30 11:06:02 +08:00
TJH
9ce053f24e 1 2025-12-30 10:57:50 +08:00
TJH
245629db0f 龙虎榜 2025-12-30 09:55:15 +08:00
TJH
816b16ee90 龙虎榜 2025-12-29 17:54:19 +08:00
TJH
1e724360fd 取消礼花
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2025-12-29 17:50:04 +08:00
TJH
99ede74d03 修改音效,添加新动效
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m14s
2025-12-29 17:45:25 +08:00
TJH
037c0e8bdb 1 2025-12-29 16:50:32 +08:00
TJH
fa4c6036b7 节奏调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2025-12-29 16:28:18 +08:00
TJH
5f2a879c46 no message
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2025-12-29 16:11:23 +08:00
TJH
45f7a03d48 ui调整
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m13s
2025-12-29 15:57:54 +08:00
TJH
d8f70ea441 音效资源添加,小游戏中小游戏界面可以点击快速跳过
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m12s
2025-12-29 15:40:00 +08:00
137 changed files with 19648 additions and 16269 deletions

View File

@ -19,7 +19,9 @@ jobs:
echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- name: npm i
run: |
echo 'npm i'
npm i
echo "✅ npm i done"
- name: build
run: |
echo 'build'

View File

@ -598,7 +598,7 @@
"__id__": 30
}
],
"_active": true,
"_active": false,
"_components": [
{
"__id__": 36
@ -1037,7 +1037,7 @@
"__id__": 378
}
],
"_active": true,
"_active": false,
"_components": [
{
"__id__": 387
@ -1253,7 +1253,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 873.017578125,
"width": 893.55908203125,
"height": 50.4
},
"_anchorPoint": {
@ -1289,7 +1289,7 @@
"b": 187,
"a": 255
},
"_string": "活动介绍活动期间参与指定游戏并将赢分排在前XX名即可获得丰厚大",
"_string": "누적 베팅 횟수 XX회 및 누적 베팅 금액 XX를 달성하면 이벤트에 참여할 수 있습니다",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 27,
@ -1302,7 +1302,7 @@
"_isSystemFontUsed": true,
"_spacingX": 0,
"_isItalic": false,
"_isBold": true,
"_isBold": false,
"_isUnderline": false,
"_underlineHeight": 2,
"_cacheMode": 0,
@ -4293,7 +4293,7 @@
"__prefab": {
"__id__": 174
},
"_key": "",
"_key": "Player ID",
"_id": ""
},
{
@ -4597,7 +4597,7 @@
"b": 7,
"a": 255
},
"_string": "Winnings",
"_string": "bet",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 30,
@ -4655,7 +4655,7 @@
"__prefab": {
"__id__": 190
},
"_key": "Winnings",
"_key": "AID_MAIN_SHOW_BET",
"_id": ""
},
{
@ -10748,7 +10748,7 @@
"__prefab": {
"__id__": 451
},
"_key": "",
"_key": "Player ID",
"_id": ""
},
{
@ -11052,7 +11052,7 @@
"b": 7,
"a": 255
},
"_string": "Winnings",
"_string": "bet",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 30,
@ -11110,7 +11110,7 @@
"__prefab": {
"__id__": 467
},
"_key": "Winnings",
"_key": "AID_MAIN_SHOW_BET",
"_id": ""
},
{
@ -15686,7 +15686,7 @@
"__id__": 940
}
],
"_active": false,
"_active": true,
"_components": [
{
"__id__": 1004
@ -17605,7 +17605,7 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 108,
"width": 274.232421875,
"height": 36.76
},
"_anchorPoint": {
@ -17641,7 +17641,7 @@
"b": 255,
"a": 255
},
"_string": "领奖记录",
"_string": "Reward claim records",
"_horizontalAlign": 1,
"_verticalAlign": 1,
"_actualFontSize": 26,
@ -22172,7 +22172,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -369,
"x": -320,
"y": 0,
"z": 0
},
@ -22353,7 +22353,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -190,
"x": -140,
"y": 0,
"z": 0
},
@ -22534,7 +22534,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 15,
"x": 50,
"y": 0,
"z": 0
},
@ -22715,7 +22715,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 205,
"x": 220,
"y": 0,
"z": 0
},
@ -24034,7 +24034,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -369,
"x": -320,
"y": 0,
"z": 0
},
@ -24215,7 +24215,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -190,
"x": -140,
"y": 0,
"z": 0
},
@ -24396,7 +24396,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 15,
"x": 50,
"y": 0,
"z": 0
},
@ -24577,7 +24577,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 205,
"x": 220,
"y": 0,
"z": 0
},
@ -26074,7 +26074,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 1080,
"height": 1920
"height": 1920.0000000000002
},
"_anchorPoint": {
"__type__": "cc.Vec2",
@ -26151,7 +26151,7 @@
"_contentSize": {
"__type__": "cc.Size",
"width": 1080,
"height": 1920
"height": 1920.0000000000002
},
"_anchorPoint": {
"__type__": "cc.Vec2",

View File

@ -373,7 +373,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -369,
"x": -320,
"y": 3,
"z": 0
},
@ -532,7 +532,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -190,
"x": -140,
"y": 3,
"z": 0
},
@ -701,7 +701,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 15,
"x": 50,
"y": 3,
"z": 0
},
@ -1359,7 +1359,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 205,
"x": 220,
"y": 3,
"z": 0
},
@ -1522,7 +1522,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 366,
"x": 378,
"y": 0,
"z": 0
},

View File

@ -234,7 +234,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -369,
"x": -320,
"y": 0,
"z": 0
},
@ -393,7 +393,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": -190,
"x": -140,
"y": 0,
"z": 0
},
@ -562,7 +562,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 15,
"x": 50,
"y": 0,
"z": 0
},
@ -1092,9 +1092,9 @@
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 90,
"g": 6,
"b": 7,
"r": 221,
"g": 162,
"b": 154,
"a": 255
},
"_string": "4",
@ -1220,7 +1220,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 205,
"x": 220,
"y": 0,
"z": 0
},

View File

@ -80,7 +80,7 @@ export class RankHistoryList extends Component {
this.historyIndex = 1;
this.updateHistoryArrows();
this.refreshSelfRankingInfo(null);
await this.loadHistoryData(this.currentHistoryType, this.historyIndex);
}
@ -114,11 +114,10 @@ export class RankHistoryList extends Component {
// ==================== 历史记录逻辑 ====================
async loadHistoryData(type: string, index: number) {
this.setRankHistoryRadioBtn(type);
this.refreshSelfRankingInfo(null);
if (!this.isTypeAvailable(type)) {
console.log(`${type} 历史榜单活动未开启`);
this.rankHistoryLoadingNode.active = false;
this.refreshSelfRankingInfo(null);
this.showActivityNotOpenTip();
return;
}
@ -163,7 +162,7 @@ export class RankHistoryList extends Component {
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Uid').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Shop').getComponent(Label).string = '-';
@ -182,7 +181,7 @@ export class RankHistoryList extends Component {
}
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Win.toString();
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
}
getHistoryDate(type: string, index: number): string {
@ -226,7 +225,7 @@ export class RankHistoryList extends Component {
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = (idx + 1).toString();
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
node.getChildByName('Win').getComponent(Label).string = itemData.Win.toString();
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
}
this.rankingHistoryListVScroll.refreshList(rankInfos.List);

View File

@ -1,4 +1,4 @@
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween, UITransform, v3 } from 'cc';
import { _decorator, Button, Color, Component, Label, Node, Sprite, Tween, tween, UITransform, v3, Vec2 } from 'cc';
import { VirtualScrollView } from './VScrollView';
import { Palette } from './Palette';
import { SlotRankingDataManager } from './SlotRankingDataManager';
@ -77,7 +77,7 @@ export class RankList extends Component {
this.rankList.active = true;
this.currentRankType = '';
this.updateRankButtonsAvailability();
this.refreshSelfRankingInfo(null);
await this.switchRankTab(defaultType);
}
@ -123,7 +123,7 @@ export class RankList extends Component {
this.currentRankType = type;
this.setRankRadioBtn(type);
this.refreshSelfRankingInfo(null);
if (!this.isTypeAvailable(type)) {
console.log(`${type} 榜单活动未开启`);
this.rankLoadingNode.active = false;
@ -132,7 +132,6 @@ export class RankList extends Component {
}
this.marqueeTexts = [];
this.currentMarqueeIndex = 0;
this.refreshSelfRankingInfo(null);
this.showActivityNotOpenTip();
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
@ -183,7 +182,19 @@ export class RankList extends Component {
console.error('获取排行榜数据失败:', error);
this.showActivityNotOpenTip();
Tween.stopAllByTarget(this.rankLoadingNode);
if (this.countdownTimer) {
clearInterval(this.countdownTimer);
this.countdownTimer = null;
}
this.rankingEndTime.getComponent(Label).string = "--:--:--";
this.rankLoadingNode.active = false;
// 停止跑马灯
if (this.msg_1 && this.msg_1.isValid) {
Tween.stopAllByTarget(this.msg_1);
this.msg_1.active = false;
}
this.marqueeTexts = [];
this.currentMarqueeIndex = 0;
}
}
@ -238,11 +249,24 @@ export class RankList extends Component {
// 再次强制更新以确保宽度准确
labelComp.updateRenderData(true);
let labelLength = labelComp.node.getComponent(UITransform).width;
let maskLength = this.msg_1.parent.getComponent(UITransform).width
// 设置初始位置
this.msg_1.setPosition(-450, this.msg_1.position.y, this.msg_1.position.z);
let endX = -labelLength;
let duration = Math.max(3, (-450 + labelLength) / 80);
let endX = 0
let duration = 0
if (labelLength <= maskLength) {
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0.5, 0.5))
this.msg_1.setPosition(0, this.msg_1.position.y, this.msg_1.position.z);
endX = - maskLength / 2 - labelLength / 2 - 30
duration = Math.max(3, labelLength / 80);
} else {
labelComp.node.getComponent(UITransform).setAnchorPoint(new Vec2(0, 0.5))
this.msg_1.setPosition(- maskLength / 2, this.msg_1.position.y, this.msg_1.position.z);
endX = - maskLength / 2 - labelLength - 30
duration = Math.max(3, (- maskLength / 2 + labelLength) / 80);
}
// 启动跑马灯动画
Tween.stopAllByTarget(this.msg_1);
@ -264,6 +288,9 @@ export class RankList extends Component {
this.rankingListVScroll.setTotalCount(rankInfos.List.length);
this.rankingListVScroll.renderItemFn = (node: Node, idx: number) => {
let itemData = rankInfos.List[idx];
if (!itemData) {
return;
}
node.getChildByName('bg').active = idx % 2 === 0;
node.getChildByName('bg2').active = idx % 2 !== 0;
node.getChildByName('Rank').getChildByName('sp_1').active = idx === 0;
@ -273,7 +300,7 @@ export class RankList extends Component {
node.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = itemData.Rank.toString();
node.getChildByName('Uid').getComponent(Label).string = truncateString(itemData.Uid);
node.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
node.getChildByName('Win').getComponent(Label).string = itemData.Win.toString();
node.getChildByName('Win').getComponent(Label).string = itemData.Bet.toString();
}
this.rankingListVScroll.refreshList(rankInfos.List);
@ -285,7 +312,7 @@ export class RankList extends Component {
this.selfInfo.getChildByName('Rank').getChildByName('sp_1').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_2').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('sp_3').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = false;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').active = true;
this.selfInfo.getChildByName('Rank').getChildByName('rankLab').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Uid').getComponent(Label).string = '-';
this.selfInfo.getChildByName('Shop').getComponent(Label).string = '-';
@ -304,7 +331,7 @@ export class RankList extends Component {
}
this.selfInfo.getChildByName('Uid').getComponent(Label).string = truncateString(selfInfo.Uid);
this.selfInfo.getChildByName('Shop').getComponent(Label).string = SlotRankingDataManager.instance.getRankListServerId() || '-';
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Win.toString();
this.selfInfo.getChildByName('Win').getComponent(Label).string = selfInfo.Bet.toString();
}
// ==================== 按钮状态管理 ====================

View File

@ -4,6 +4,7 @@ import { Palette } from './Palette';
import { SlotRankingDataManager } from './SlotRankingDataManager';
import { callGameApiForRank } from 'db://assets/Loading/scripts/comm';
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
import { I18nManager } from 'db://assets/Loading/scripts/manager/I18nManager';
const { ccclass, property } = _decorator;
@ -46,7 +47,7 @@ export class RewardList extends Component {
init(rewardListNode: Node) {
this.rewardList = rewardListNode;
this.rewardLoadingNode = this.rewardList.getChildByName('list').getChildByName('loading');
this.rewardLoadingNode = this.rewardList.getChildByName('list').getChildByName('loading');
this.rewardListVScroll = this.rewardList.getChildByName('list').getChildByName('vScroll').getComponent(VirtualScrollView);
this.rewardRadioDWM = this.rewardList.getChildByName('rewardRadioDWM');
this.rewardRadioDayBtn = this.rewardRadioDWM.getChildByName('dayBtn');
@ -106,7 +107,7 @@ export class RewardList extends Component {
showActivityNotOpenTip() {
this.activityNotOpenTip.active = true;
this.rewardListVScroll.setTotalCount(0);
this.rewardListVScroll.setTotalCount(0);
}
async switchRewardTab(type: string) {
@ -118,7 +119,7 @@ export class RewardList extends Component {
this.setRewardRadioBtn(type);
if (!this.isTypeAvailable(type)) {
if (!this.isTypeAvailable(type) || SlotRankingDataManager.instance.getRankListStatusByType(type) !== 0) {
console.log(`${type} 奖励榜单活动未开启`);
this.rewardLoadingNode.active = false;
this.showActivityNotOpenTip();
@ -208,19 +209,19 @@ export class RewardList extends Component {
if (this.rewardsData.DayRanks && this.rewardsData.DayRanks.length > 0) {
for (let item of this.rewardsData.DayRanks) {
this.selfRewardsList.push({ ...item, TypeLabel: '日榜' });
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Daily Ranking') });
}
}
if (this.rewardsData.WeekRanks && this.rewardsData.WeekRanks.length > 0) {
for (let item of this.rewardsData.WeekRanks) {
this.selfRewardsList.push({ ...item, TypeLabel: '周榜' });
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Weekly Ranking') });
}
}
if (this.rewardsData.MonthRanks && this.rewardsData.MonthRanks.length > 0) {
for (let item of this.rewardsData.MonthRanks) {
this.selfRewardsList.push({ ...item, TypeLabel: '月榜' });
this.selfRewardsList.push({ ...item, TypeLabel: I18nManager.instance.t('Monthly Ranking') });
}
}
@ -315,7 +316,7 @@ export class RewardList extends Component {
this.isReceiving = false;
this.setButtonsInteractable(true);
}
}
}
setButtonsInteractable(interactable: boolean) {
let receiveBtn = this.rewardReceivedBtn.getComponent(Button);
@ -431,7 +432,7 @@ export class RewardList extends Component {
this.countdownTimer = null;
}
let endTime = SlotRankingDataManager.instance.getRankEndTimeByType(type);
let endTime = SlotRankingDataManager.instance.getRankEndTimeByType(type);
this.updateCountdown(endTime);
@ -452,7 +453,7 @@ export class RewardList extends Component {
return;
}
let timeStr = this.formatCountdown(remainingSeconds);
let timeStr = this.formatCountdown(remainingSeconds);
}
formatCountdown(seconds: number): string {

View File

@ -6,6 +6,7 @@ import { RewardHistoryList } from './RewardHistoryList';
import { SlotRankingDataManager } from './SlotRankingDataManager';
import { callGameApiForRank, getGameId } from 'db://assets/Loading/scripts/comm';
import { AudioManager } from 'db://assets/Loading/scripts/manager/AudioManager';
import { SlotScene } from '../../scripts/SlotScene';
const { ccclass, property } = _decorator;
@ -33,7 +34,7 @@ export class SlotRanking extends Component {
DESIGN_WIDTH: number = 1080;
DESIGN_HEIGHT: number = 1920;
slotScene: any = null; // SlotScene 引用
slotScene: SlotScene = null; // SlotScene 引用
isMove: boolean = false; // 是否是拖动状态
isClick: boolean = false; // 是否是点击状态
startPos: Vec3 = v3(432, 650, 0);
@ -67,9 +68,10 @@ export class SlotRanking extends Component {
this.initComponents();
this.rankingBtn.setPosition(this.startPos);
this.rankingBtn.active = SlotRankingDataManager.instance.getRankListStatus() === 0 || SlotRankingDataManager.instance.getRankListStatus() === 1;
this.rankingBtn.getChildByName('icon').getComponent(sp.Skeleton).color = SlotRankingDataManager.instance.getRankListStatus() === 0 ? Color.WHITE : Color.GRAY;
this.rankingBtn.active = SlotRankingDataManager.instance.getRankListStatus() === 0 || SlotRankingDataManager.instance.getRankListStatus() === 1 || SlotRankingDataManager.instance.getRankMaxCloseTimeIsBiggerThanCurTime();
this.rankingBtn.getComponent(Button).interactable = SlotRankingDataManager.instance.getRankListStatus() === 0;
this.rankingBtn.getChildByName('icon').getComponent(sp.Skeleton).color = SlotRankingDataManager.instance.getRankListStatus() === 0 ? Color.WHITE : Color.GRAY;
this.rankingBtn.on(Node.EventType.TOUCH_START, this.onTouchStart, this);
this.rankingBtn.on(Node.EventType.TOUCH_MOVE, this.onTouchMove, this);
@ -117,7 +119,7 @@ export class SlotRanking extends Component {
};
}
setSlotScene(slotScene: any) {
setSlotScene(slotScene: SlotScene) {
this.slotScene = slotScene;
// 将 slotScene 引用传递给 RewardList
if (this.rewardList) {
@ -127,23 +129,31 @@ export class SlotRanking extends Component {
// 检查是否可以点击排行榜按钮
canClickRankingBtn(): boolean {
if (!this.slotScene) return true;
if (!this.slotScene) return true;
// 如果正在滚动,不可点击
if (this.slotScene.slotGame && this.slotScene.slotGame.isScroll()) {
return false;
}
// 如果正在自动旋转,不可点击
if (this.slotScene.isAutoSpin) {
if (this.slotScene.gameState.isAutoSpin) {
return false;
}
if (this.slotScene.isFreeSpin) {
if (this.slotScene.gameState.isInFreeSpin) {
return false;
}
if (this.slotScene.isFeatureBuySpin) {
if (this.slotScene.gameState.isFeatureBuySpin) {
return false;
}
if (this.slotScene.gameState.isEliminating) {
return false;
}
if (!this.rankingBtn.getComponent(Button).interactable) {
return false;
}
@ -210,7 +220,6 @@ export class SlotRanking extends Component {
this.isClick = false;
return;
}
if (this.isClick) {
// 检查是否可以点击
if (!this.canClickRankingBtn()) {

View File

@ -13,6 +13,85 @@ export class SlotRankingDataManager {
set rankList(list: any) { this._rankList = list; }
get rankList(): any { return this._rankList; }
/**
*
* {
"List": [
{
"Id": "20251225_day_faketrans-VND",
"Name": "",
"Type": "day",
"StartTime": 1766592000,
"EndTime": 1766689200,
"CloseTime": 1766775600,
"Status": 0,
"Rewards": [
10,
8,
5,
3,
3,
3,
3,
3,
3,
3
],
"SpinLimit": 10,
"BetLimit": 1000000
},
{
"Id": "20251222_week_faketrans-VND",
"Name": "",
"Type": "week",
"StartTime": 1766592000,
"EndTime": 1766678400,
"CloseTime": 1766764800,
"Status": 0,
"Rewards": [
10,
5,
5,
5,
5,
5,
5,
5,
5,
5
],
"SpinLimit": 10,
"BetLimit": 5000000
}
]
}
*/
getRankMaxCloseTimeIsBiggerThanCurTime(): boolean {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
// 代表当前没有活动开启,则说明关闭入口按钮
return false;
}
let maxCloseTime = 0;
for (let item of this._rankList.List) {
if (item.CloseTime > maxCloseTime) {
maxCloseTime = item.CloseTime;
}
}
return Date.now() <= (maxCloseTime * 1000);
}
getRankListStatusByType(type: string): number {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return 2;
}
let item = this._rankList.List.find((item: any) => item.Type === type);
return item ? item.Status : 2;
}
getRankListStatus(): number {
if (!this._rankList || !this._rankList.List || this._rankList.List.length === 0) {
return 2;

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "69fbd01d-29d4-4356-b163-4a703a7d45e4",
"uuid": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
"files": [
".json",
"FranklinGothicDemiCond.ttf"
"Avenir Next World Demi.ttf"
],
"subMetas": {},
"userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
"files": [
".json",
"Avenir Next World Medium.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -2,7 +2,7 @@
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "6433b29b-f544-440f-8be6-477a5c024f7c",
"uuid": "734202fa-7b80-48b5-9ed4-07c715826c06",
"files": [],
"subMetas": {},
"userData": {}

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "2e641180-f09b-4b02-b393-585d06441b69",
"uuid": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
"files": [
".json",
"FranklinGothicMedium.ttf"
"AvenirNextWorldDemi.ttf"
],
"subMetas": {},
"userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
"files": [
".json",
"AvenirNextWorldMedium.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "704ad71c-5bed-458d-b306-9fc5328576b1",
"files": [
".json",
"Pyidaungsu_Bold.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "dfdc09d9-7107-4534-905c-904db5297c61",
"files": [
".json",
"Pyidaungsu_Regular.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

View File

@ -2,10 +2,10 @@
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "dc119423-a444-4856-a346-92cc7e6d420a",
"uuid": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
"files": [
".json",
"Pyidaungsu.ttf"
"Roboto_Bold.ttf"
],
"subMetas": {},
"userData": {}

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.1",
"importer": "ttf-font",
"imported": true,
"uuid": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
"files": [
".json",
"Roboto_Regular.ttf"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -2,22 +2,22 @@
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "6affb4b8-f7ac-4e05-bf75-735027b2eb98",
"uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1",
"files": [
".json",
".png"
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a",
"displayName": "Icon_GameRule",
"uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a",
"displayName": "en_menu",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "6affb4b8-f7ac-4e05-bf75-735027b2eb98",
"imageUuidOrDatabaseUri": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1",
"isUuid": true,
"visible": false,
"minfilter": "linear",
@ -34,8 +34,8 @@
},
"f9941": {
"importer": "sprite-frame",
"uuid": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@f9941",
"displayName": "Icon_GameRule",
"uuid": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@f9941",
"displayName": "en_menu",
"id": "f9941",
"name": "spriteFrame",
"userData": {
@ -46,10 +46,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 87,
"height": 70,
"rawWidth": 87,
"rawHeight": 70,
"width": 1080,
"height": 1920,
"rawWidth": 1080,
"rawHeight": 1920,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0,
"vertices": {
"rawPosition": [
-43.5,
-35,
-540,
-960,
0,
43.5,
-35,
540,
-960,
0,
-43.5,
35,
-540,
960,
0,
43.5,
35,
540,
960,
0
],
"indexes": [
@ -84,12 +84,12 @@
],
"uv": [
0,
70,
87,
70,
1920,
1080,
1920,
0,
0,
87,
1080,
0
],
"nuv": [
@ -103,18 +103,18 @@
1
],
"minPos": [
-43.5,
-35,
-540,
-960,
0
],
"maxPos": [
43.5,
35,
540,
960,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a",
"imageUuidOrDatabaseUri": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
@ -127,8 +127,8 @@
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "6affb4b8-f7ac-4e05-bf75-735027b2eb98@6c48a"
"redirect": "2e3ffd2c-0630-40ef-8fb8-cd8409f4f2e1@6c48a"
}
}

View File

@ -1391,7 +1391,7 @@
"Feature Buy": "အင်္ဂါရပ် ဝယ်ယူမှု",
"Free Spins": "အခမဲ့ လည်ပတ်မှုများ",
"Free Spin": "အခမဲ့ လည်ပတ်မှု :",
"Game History": "ဂိမ်း မှတ်တမ်း",
"Game History": "ဂိမ်းမှတ်တမ်း",
"Last 7 days": "ပြီးခဲ့သော ၇ ရက်",
"Loading More...": "ဆက်လက် ဖော်ပြသည် ...",
"No Game History": "ဂိမ်း မှတ်တမ်း မရှိပါ",
@ -1475,9 +1475,9 @@
"Select Date Range": "ရက်စွဲ အပိုင်း အခြား ရွေးချယ် ပါ",
"Time": "အချိန်",
"Today": "ယနေ့",
"Transaction": "ငွေကြေး လွှဲပြောင်း မှု",
"Win Multiplier": "အနိုင်ရ မြှောက်ကိန်း",
"of a Kind": "အမျိုးအစား တူ",
"Transaction": "ငွေကြေးလွှဲပြောင်းမှု",
"Win Multiplier": "အနိုင်ရမြှောက်ကိန်း",
"of a Kind": "အမျိုးအစားတူ",
"way(s)": "Way(s)"
},
"nl": {
@ -2171,26 +2171,26 @@
"way(s)": "Way(s)"
},
"th": {
"All record(s) displayed": "ฟรีสปิน:",
"B/BxS": "Indsats / Basisindsats x Symboludbetalingsværdier",
"B/BxSxW": "Indsats / Basisindsats x Symboludbetalingsværdier x Way(s)",
"B/BxSxWxM": "Indsats / Basisindsats x Symboludbetalingsværdier x Way(s) x Multiplikator",
"Balance": "ไม่มี คอมโบ ชนะ",
"Bet": "แสดง ทั้งหมด แล้ว",
"Close": "การ จ่าย เงิน",
"Custom": "เดิมพัน",
"Feature Buy": "ชนิด เดียวกัน",
"Free Spins": "Way",
"Free Spin": "รอบ:",
"Game History": "7 วันที่ ผ่านมา",
"Last 7 days": "รายการ",
"Loading More...": "ปิด",
"No Game History": "สปิน ปกติ",
"No Winning Combination": "ตัวคูณ รางวัล",
"Normal Spin": "ยอด คงเหลือ",
"Payout": "ฟรี สปิน",
"Paytable": "ตาราง การ จ่าย เงิน",
"Paytable_1": "มูลค่า การ จ่าย เงิน ของ สัญลักษณ์",
"All record(s) displayed": "แสดงทั้งหมดแล้ว",
"B/BxS": "เดิมพัน / เดิมพันพื้นฐาน x ค่าตัวคูณสัญลักษณ์",
"B/BxSxW": "เดิมพัน / เดิมพันพื้นฐาน x ค่าตัวคูณสัญลักษณ์ x Way",
"B/BxSxWxM": "เดิมพัน / เดิมพันพื้นฐาน x ค่าตัวคูณสัญลักษณ์ x Way x ตัวคูณ",
"Balance": "ยอดคงเหลือ",
"Bet": "เดิมพัน",
"Close": "ปิด",
"Custom": "กำหนดเอง",
"Feature Buy": "ซื้อฟีเจอร์",
"Free Spins": "ฟรีสปิน",
"Free Spin": "ฟรีสปิน:",
"Game History": "ประวัติการเล่น",
"Last 7 days": "7 วันที่ผ่านมา",
"Loading More...": "กำลังโหลดเพิ่ม...",
"No Game History": "ไม่มีประวัติการเล่น",
"No Winning Combination": "ไม่มีคอมโบชนะ",
"Normal Spin": "สปินปกติ",
"Payout": "การจ่ายเงิน",
"Paytable": "ตารางการจ่ายเงิน",
"Paytable_1": "มูลค่าการจ่ายเงินของสัญลักษณ์",
"Paytable_1_1": "ป่า",
"Paytable_1_2": "เครื่องหมาย",
"Paytable_1_3": "กระจัดกระจาย",
@ -2198,24 +2198,24 @@
"Paytable_1_5": "สัญลักษณ์ บาง ตัว อาจ ครอบครอง พื้นที่ สัญลักษณ์ 2 ถึง 4 ช่อง และ สัญลักษณ์ แต่ละ ตัว จะ แสดง เป็น สัญลักษณ์ เดียว ใน ระหว่าง การ คำนวณ การ จ่าย เงิน",
"Paytable_1_6": "สัญลักษณ์ Wild แทนที่ สัญลักษณ์ ทั้งหมด ยกเว้น สัญลักษณ์ Scatter",
"Paytable_1_7": "สัญลักษณ์ Wild จะ ปรากฏ บน รีล 2, 3, 4 และ 5 เท่านั้น",
"Paytable_2": "ไวลด์ ออน เดอะ เวย์",
"Paytable_2": "ไวลด์ออนเดอะเวย์",
"Paytable_2_1": "ใน ระหว่าง การ หมุน ใด ๆ สัญลักษณ์ บาง ตัว (ไม่ รวม สัญลักษณ์ Wild และ สัญลักษณ์ Scatter) ใน รีล 2, 3, 4 และ/หรือ 5 ที่ ครอบครอง พื้นที่ สัญลักษณ์ 2 ถึง 4 ช่อง อาจ มี พื้นหลัง สีทอง",
"Paytable_2_2": "ใน ทุก ๆ รอบ ใหม่ หลังจาก ที่ สัญลักษณ์ ใหม่ ไหล ลงมา สัญลักษณ์ พื้นหลัง สีทอง ใด ๆ ที่ เกี่ยวข้อง กับ การ ชนะ ใน รอบ ก่อนหน้า จะ ถูก เปลี่ยน เป็น สัญลักษณ์ Wild",
"Paytable_3": "รีล ตัวคูณ",
"Paytable_3": "รีลตัวคูณ",
"Paytable_3_1": "ใน ช่วง เริ่มต้น ของ การ หมุน เกม หลัก ใด ๆ ค่า ตัวคูณ 4 ตัว ด้านล่าง รีล จะ ถูก ตั้ง เป็น x2",
"Paytable_3_2": "ใน ระหว่าง การ หมุน เกม หลัก ใด ๆ ก็ตาม เมื่อใด ก็ตาม ที่ มี สัญลักษณ์ Wild ปรากฏ บน วงล้อ ตั้งแต่ 1 ตัว ขึ้นไป และ เกี่ยวข้อง กับ การ ชนะ ตัวคูณ ที่ อยู่ ใต้ สัญลักษณ์ Wild เหล่านั้น จะ ถูก นำมา รวมกัน เงินรางวัล จะ ถูก คูณ ด้วย ตัวคูณ ทั้งหมด ก่อนที่ จะ จ่าย เงินรางวัล",
"Paytable_3_3": "หลังจาก จ่าย เงินรางวัล แล้ว ตัวคูณ ที่ ใช้ ไป จะ ถูก ทำลาย และ ตัวคูณ ที่ ใหญ่กว่า จะ ไหล เข้ามา จาก ทาง ขวา",
"Paytable_4": "ฟีเจอร์ ฟรี สปิน",
"Paytable_4": "ฟีเจอร์ฟรีสปิน",
"Paytable_4_1": "สัญลักษณ์ Scatter 4 ตัว ที่ ปรากฏ ใน ตำแหน่ง ใด ก็ได้ จะ เปิดใช้งาน ฟีเจอร์ ฟรี สปิน พร้อม ฟรี สปิน 10 ครั้ง สัญลักษณ์ Scatter เพิ่มเติม แต่ละ ตัว จะ เปิดใช้งาน ฟรี สปิน เพิ่ม อีก 2 ครั้ง",
"Paytable_4_2": "ใน ช่วง เริ่มต้น ของ ฟีเจอร์ หมุน ฟรี ค่า ตัวคูณ 4 ตัว ด้านล่าง รีล จะ ถูก ตั้ง เป็น x2",
"Paytable_4_3": "ใน ระหว่าง การ หมุน ฟรี ใด ๆ ก็ตาม เมื่อใด ก็ตาม ที่ มี สัญลักษณ์ Wild ปรากฏ บน วงล้อ ตั้งแต่ 1 ตัว ขึ้นไป และ เกี่ยวข้อง กับ การ ชนะ ตัวคูณ ที่ อยู่ ใต้ สัญลักษณ์ Wild เหล่านั้น จะ ถูก นำมา รวมกัน เงินรางวัล จะ ถูก คูณ ด้วย ตัวคูณ ทั้งหมด ก่อนที่ จะ จ่าย เงินรางวัล",
"Paytable_4_4": "หลังจาก จ่าย เงินรางวัล แล้ว ตัวคูณ ที่ ใช้ ไป จะ ถูก ทำลาย และ ตัวคูณ ที่ ใหญ่กว่า จะ ไหล เข้ามา จาก ทาง ขวา",
"Paytable_4_5": "ค่า ตัวคูณ ที่ อยู่ ด้านล่าง รีล จะ ไม่ รีเซ็ต หลังจาก การ หมุน ฟรี ครั้ง แรก",
"Paytable_4_6": "ฟรี สปิน สามารถ ทริกเกอร์ ซ้ำ ได้",
"Paytable_5": "คุณสมบัติ การ ซื้อ",
"Paytable_5": "คุณสมบัติการซื้อ",
"Paytable_5_1": "แตะ ที่ ปุ่ม ซื้อ คุณสมบัติ เพื่อ เปิด เมนู ซื้อ คุณสมบัติ",
"Paytable_5_2": "แตะ ที่ ปุ่ม เริ่ม เพื่อ ซื้อ ฟีเจอร์ สปิน ฟรี ใน ราคา ที่ แสดง ใน เมนู ซื้อ ฟีเจอร์",
"Paytable_6": "400-15,625 วิธี",
"Paytable_6": "400-15,625วิธี",
"Paytable_6_1": "วิธี เดิมพัน จะ ชนะ ถ้า สัญลักษณ์ ที่ ชนะ เรียง ต่อกัน จาก รีล ซ้ายสุด ไป ทาง ขวา",
"Paytable_6_2": "จำนวน รวม ของ วิธี เดิมพัน ที่ ชนะ สำหรับ แต่ละ สัญลักษณ์ จะ คำนวณ โดย การ คูณ จำนวน สัญลักษณ์ ที่ ชนะ ที่ อยู่ ติดกัน บน แต่ละ สัญลักษณ์ จาก รีล ซ้ายสุด ไป ยัง ขวา",
"Paytable_6_3": "จาก ตัวอย่าง ข้างต้น:",
@ -2223,11 +2223,11 @@
"Paytable_6_5": "ตัวอย่าง นี้ แสดง จำนวน เงินรางวัล รวม:",
"Paytable_6_6": "หลังจาก การ จ่าย เงิน ใน แต่ละ รอบ เสร็จสิ้น แล้ว สัญลักษณ์ ที่ ชนะ ทั้งหมด จะ ระเบิด ทำให้ สัญลักษณ์ ที่ อยู่ เหนือ สัญลักษณ์ เหล่านั้น จะ ตกลงมา เพื่อ เล่น รอบ ใหม่",
"Paytable_6_7": "ระบบ จะ นับ ชุด ค่าผสม ที่ ชนะ เพิ่มเติม ใน ทุก ๆ รอบ จนกว่า จะ ไม่ สามารถ นับ ชุด ค่าผสม ที่ ชนะ เพิ่มเติม ได้ อีก",
"Paytable_6_8": "แสดง ชัยชนะ ทั้งหมด เป็น เงินสด",
"Profit": "กำลัง โหลด เพิ่ม...",
"Round": "ซื้อ ฟีเจอร์",
"Rules": "กฎ ของ เกม",
"Rules_1": "หม้อ ไฟ คาร์นิวัล",
"Paytable_6_8": "แสดงชัยชนะทั้งหมดเป็นเงินสด",
"Profit": "กำไร",
"Round": "รอบ:",
"Rules": "กฎของเกม",
"Rules_1": "หม้อไฟคาร์นิวัล",
"Rules_1_1": "Hot pot Carnival เป็น วิดีโอ สล็อต 6 รีล 5 แถว (พร้อม รีล เพิ่มเติม ที่ ด้านล่าง ของ รีล 2, 3, 4 และ 5) โดย มี สัญลักษณ์ Wilds-on-the-Way และ ตัวคูณ ที่ ด้านล่าง ของ รีล",
"Rules_1_10": "การ จ่าย เงิน สัญลักษณ์ ที่ ชนะ จะ คูณ ด้วย จำนวน วิธี เดิมพัน ที่ ชนะ",
"Rules_1_11": "เพิ่ม การ ชนะ พร้อมกัน จาก วิธี เดิมพัน ที่ แตกต่างกัน",
@ -2246,30 +2246,30 @@
"Rules_1_7": "วิธี เดิมพัน ที่ ชนะ เป็น เงินสด จะ เท่ากับ ค่า ที่ แสดง ใน \"ตาราง การ จ่าย เงิน\" คูณ ด้วย ขนาด เดิมพัน และ ระดับ เดิมพัน",
"Rules_1_8": "วิธี เดิมพัน จะ ชนะ ถ้า สัญลักษณ์ ที่ ชนะ เรียง ต่อกัน จาก รีล ซ้ายสุด ไป ทาง ขวา",
"Rules_1_9": "จำนวน รวม ของ วิธี เดิมพัน ที่ ชนะ สำหรับ แต่ละ สัญลักษณ์ จะ คำนวณ โดย การ คูณ จำนวน สัญลักษณ์ ที่ ชนะ ติดกัน บน แต่ละ สัญลักษณ์ จาก รีล ซ้ายสุด ไป ยัง ขวา",
"Rules_2": "ไวลด์ ออน เดอะ เวย์",
"Rules_2": "ไวลด์ออนเดอะเวย์",
"Rules_2_1": "ใน ระหว่าง การ หมุน ใด ๆ สัญลักษณ์ บาง ตัว (ไม่ รวม สัญลักษณ์ Wild และ สัญลักษณ์ Scatter) ใน รีล 2, 3, 4 และ/หรือ 5 ที่ ครอบครอง พื้นที่ สัญลักษณ์ 2 ถึง 4 ช่อง อาจ มี พื้นหลัง สีทอง",
"Rules_2_2": "ใน ทุก ๆ รอบ ใหม่ หลังจาก ที่ สัญลักษณ์ ใหม่ ไหล ลงมา สัญลักษณ์ พื้นหลัง สีทอง ใด ๆ ที่ เกี่ยวข้อง กับ การ ชนะ ใน รอบ ก่อนหน้า จะ ถูก เปลี่ยน เป็น สัญลักษณ์ Wild",
"Rules_3": "รีล ตัวคูณ",
"Rules_3": "รีลตัวคูณ",
"Rules_3_1": "ใน ช่วง เริ่มต้น ของ การ หมุน เกม หลัก ใด ๆ ค่า ตัวคูณ 4 ตัว ด้านล่าง รีล จะ ถูก ตั้ง เป็น x2",
"Rules_3_2": "ใน ระหว่าง การ หมุน เกม หลัก ใด ๆ ก็ตาม เมื่อใด ก็ตาม ที่ มี สัญลักษณ์ Wild ปรากฏ บน วงล้อ ตั้งแต่ 1 ตัว ขึ้นไป และ เกี่ยวข้อง กับ การ ชนะ ตัวคูณ ที่ อยู่ ใต้ สัญลักษณ์ Wild เหล่านั้น จะ ถูก นำมา รวมกัน เงินรางวัล จะ ถูก คูณ ด้วย ตัวคูณ ทั้งหมด ก่อนที่ จะ จ่าย เงินรางวัล",
"Rules_3_3": "หลังจาก จ่าย เงินรางวัล แล้ว ตัวคูณ ที่ ใช้ ไป จะ ถูก ทำลาย และ ตัวคูณ ที่ ใหญ่กว่า จะ ไหล เข้ามา จาก ทาง ขวา",
"Rules_4": "ฟีเจอร์ ฟรี สปิน",
"Rules_4": "ฟีเจอร์ฟรีสปิน",
"Rules_4_1": "สัญลักษณ์ Scatter 4 ตัว ที่ ปรากฏ ใน ตำแหน่ง ใด ก็ได้ จะ เปิดใช้งาน ฟีเจอร์ ฟรี สปิน พร้อม ฟรี สปิน 10 ครั้ง สัญลักษณ์ Scatter เพิ่มเติม แต่ละ ตัว จะ เปิดใช้งาน ฟรี สปิน เพิ่ม อีก 2 ครั้ง",
"Rules_4_2": "ใน ช่วง เริ่มต้น ของ ฟีเจอร์ การ หมุน ฟรี ค่า ตัวคูณ 4 ตัว ด้านล่าง รีล จะ ถูก ตั้ง เป็น x2",
"Rules_4_3": "ใน ระหว่าง การ หมุน ฟรี ใด ๆ ก็ตาม เมื่อใด ก็ตาม ที่ มี สัญลักษณ์ Wild ปรากฏ บน วงล้อ ตั้งแต่ 1 ตัว ขึ้นไป และ เกี่ยวข้อง กับ การ ชนะ ตัวคูณ ที่ อยู่ ใต้ สัญลักษณ์ Wild เหล่านั้น จะ ถูก นำมา รวมกัน เงินรางวัล จะ ถูก คูณ ด้วย ตัวคูณ ทั้งหมด ก่อนที่ จะ จ่าย เงินรางวัล",
"Rules_4_4": "หลังจาก จ่าย เงินรางวัล แล้ว ตัวคูณ ที่ ใช้ ไป จะ ถูก ทำลาย และ ตัวคูณ ที่ ใหญ่กว่า จะ ไหล เข้ามา จาก ทาง ขวา",
"Rules_4_5": "ค่า ตัวคูณ ที่ อยู่ ด้านล่าง รีล จะ ไม่ รีเซ็ต หลังจาก การ หมุน ฟรี ครั้ง แรก",
"Rules_4_6": "ฟรี สปิน สามารถ ทริกเกอร์ ซ้ำ ได้",
"Rules_5": "คุณสมบัติ การ ซื้อ",
"Rules_5": "คุณสมบัติการซื้อ",
"Rules_5_1": "แตะ ที่ ปุ่ม ซื้อ คุณสมบัติ เพื่อ เปิด เมนู ซื้อ คุณสมบัติ",
"Rules_5_2": "แตะ ที่ ปุ่ม เริ่ม เพื่อ ซื้อ ฟีเจอร์ สปิน ฟรี ใน ราคา ที่ แสดง ใน เมนู ซื้อ ฟีเจอร์",
"Rules_6": "เกม หลัก",
"Rules_6": "เกมหลัก",
"Rules_6_1": "สปิน",
"Rules_6_10": "การ ตั้งค่า เพิ่มเติม",
"Rules_6_10": "การตั้งค่าเพิ่มเติม",
"Rules_6_10_1": "แตะ เพื่อ เข้าถึง การ ตั้งค่า อื่น ๆ",
"Rules_6_11": "เสียง",
"Rules_6_11_1": "แตะ เพื่อ เปิด หรือ ปิด เสียง",
"Rules_6_12": "ตาราง การ จ่าย เงิน",
"Rules_6_12": "ตารางการจ่ายเงิน",
"Rules_6_12_1": "แสดง ชุด ค่าผสม ที่ ชนะ และ อัตรา การ จ่าย เงิน",
"Rules_6_13": "กฎกติกา",
"Rules_6_13_1": "แสดง กฎ เกม และ หน้าที่ ของ ปุ่ม ต่าง ๆ",
@ -2286,27 +2286,27 @@
"Rules_6_3_1": "แตะ เพื่อ ลด จำนวน เงิน เดิมพัน",
"Rules_6_4": "เพิ่ม",
"Rules_6_4_1": "แตะ เพื่อ เพิ่ม จำนวน เงิน เดิมพัน",
"Rules_6_5": "ยอด เงิน ใน กระเป๋า สตางค์",
"Rules_6_5": "ยอดเงินในกระเป๋าสตางค์",
"Rules_6_5_1": "แสดง ยอด เงิน ใน กระเป๋า สตางค์ ที่ ใช้ ได้",
"Rules_6_6": "จำนวน เงิน เดิมพัน",
"Rules_6_6_1": "แสดง จำนวน เงิน ที่ เดิมพัน ปัจจุบัน",
"Rules_6_7": "จำนวน เงิน ที่ ชนะ",
"Rules_6_7": "จำนวนเงินที่ชนะ",
"Rules_6_7_1": "แสดง จำนวน เงิน ที่ ได้รับ จาก การ เล่น รอบ นี้",
"Rules_6_8": "สปิน อัตโนมัติ",
"Rules_6_8": "สปินอัตโนมัติ",
"Rules_6_8_1": "เล่น เกม โดย อัตโนมัติ ตาม จำนวน ครั้ง ที่ เลือก",
"Rules_6_8_2": "แตะ ตัวเลข เพื่อ เลือก จำนวน สปิน อัตโนมัติ",
"Rules_6_9": "เทอร์โบ สปิน",
"Rules_6_9": "เทอร์โบสปิน",
"Rules_6_9_1": "แตะ เพื่อ เปิด หรือ ปิด เทอร์โบ สปิน เพื่อ ลด ระยะเวลา การ หมุน วงล้อ",
"Rules_7": "ข้อมูล เพิ่มเติม",
"Rules_7": "ข้อมูลเพิ่มเติม",
"Rules_7_1": "การ ทำงาน ผิดพลาด จะ ทำให้ การ จ่าย เงิน และ การ เล่น ทั้งหมด เป็น โมฆะ",
"Rules_7_2": "ใน กรณี ที่ มี ข้อ พิพาท เกี่ยวกับ ผล เกม ผล เกม ทั้งหมด ที่ แสดง ใน หน้า ประวัติ ถือเป็น ที่ สิ้นสุด และ ไม่ มี เปลี่ยนแปลง",
"Select Date Range": "กำหนด เอง",
"Time": "กำไร",
"Today": "เวลา",
"Transaction": "ไม่มี ประวัติ การ เล่น",
"Win Multiplier": "เดิมพัน / เดิมพัน พื้นฐาน x ค่า ตัวคูณ สัญลักษณ์",
"of a Kind": "เดิมพัน / เดิมพัน พื้นฐาน x ค่า ตัวคูณ สัญลักษณ์ x Way",
"way(s)": "เดิมพัน / เดิมพัน พื้นฐาน x ค่า ตัวคูณ สัญลักษณ์ x Way x ตัวคูณ"
"Select Date Range": "ลืกช่ววันที่",
"Time": "เวลา",
"Today": "วันนี้",
"Transaction": "รายการ",
"Win Multiplier": "ตัวคูณรางวัล",
"of a Kind": "ชนิดเดียวกัน",
"way(s)": "Way"
},
"tr": {
"All record(s) displayed": "Tüm Kayıtlar Görüntülendi",

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -2,22 +2,22 @@
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9",
"uuid": "2144f07c-fd81-4212-8637-b66803fb325a",
"files": [
".json",
".png"
".jpg",
".json"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a",
"displayName": "Icon_Assets",
"uuid": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a",
"displayName": "menu_th",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "e5cebe29-f875-42da-9411-55fab49de5f9",
"imageUuidOrDatabaseUri": "2144f07c-fd81-4212-8637-b66803fb325a",
"isUuid": true,
"visible": false,
"minfilter": "linear",
@ -34,8 +34,8 @@
},
"f9941": {
"importer": "sprite-frame",
"uuid": "e5cebe29-f875-42da-9411-55fab49de5f9@f9941",
"displayName": "Icon_Assets",
"uuid": "2144f07c-fd81-4212-8637-b66803fb325a@f9941",
"displayName": "menu_th",
"id": "f9941",
"name": "spriteFrame",
"userData": {
@ -46,10 +46,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 24,
"height": 29,
"rawWidth": 24,
"rawHeight": 29,
"width": 1080,
"height": 1920,
"rawWidth": 1080,
"rawHeight": 1920,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0,
"vertices": {
"rawPosition": [
-12,
-14.5,
-540,
-960,
0,
12,
-14.5,
540,
-960,
0,
-12,
14.5,
-540,
960,
0,
12,
14.5,
540,
960,
0
],
"indexes": [
@ -84,12 +84,12 @@
],
"uv": [
0,
29,
24,
29,
1920,
1080,
1920,
0,
0,
24,
1080,
0
],
"nuv": [
@ -103,18 +103,18 @@
1
],
"minPos": [
-12,
-14.5,
-540,
-960,
0
],
"maxPos": [
12,
14.5,
540,
960,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a",
"imageUuidOrDatabaseUri": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
@ -127,8 +127,8 @@
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"hasAlpha": false,
"fixAlphaTransparencyArtifacts": false,
"redirect": "e5cebe29-f875-42da-9411-55fab49de5f9@6c48a"
"redirect": "2144f07c-fd81-4212-8637-b66803fb325a@6c48a"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -191,7 +191,7 @@
"node": {
"__id__": 2
},
"_enabled": true,
"_enabled": false,
"__prefab": {
"__id__": 8
},

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -500,7 +500,7 @@
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "",
"defaultAnimation": "1_1",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,

View File

@ -500,7 +500,7 @@
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "<None>",
"defaultAnimation": "1_1",
"_premultipliedAlpha": false,
"_timeScale": 1,
"_preCacheMode": 0,

File diff suppressed because it is too large Load Diff

View File

@ -1,146 +0,0 @@
[
{
"__type__": "cc.Prefab",
"_name": "readyHand",
"_objFlags": 0,
"__editorExtras__": {},
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"persistent": false
},
{
"__type__": "cc.Node",
"_name": "readyHand",
"_objFlags": 0,
"__editorExtras__": {},
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
},
{
"__id__": 4
}
],
"_prefab": {
"__id__": 6
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_lrot": {
"__type__": "cc.Quat",
"x": 0,
"y": 0,
"z": 0,
"w": 1
},
"_lscale": {
"__type__": "cc.Vec3",
"x": 1,
"y": 1,
"z": 1
},
"_mobility": 0,
"_layer": 33554432,
"_euler": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_id": ""
},
{
"__type__": "cc.UITransform",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 3
},
"_contentSize": {
"__type__": "cc.Size",
"width": 149.36000061035156,
"height": 721.510009765625
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.49377343129770096,
"y": 0.49974359668460616
},
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "b1mehXP45KqZ5ylDhnzjMj"
},
{
"__type__": "sp.Skeleton",
"_name": "",
"_objFlags": 0,
"__editorExtras__": {},
"node": {
"__id__": 1
},
"_enabled": true,
"__prefab": {
"__id__": 5
},
"_customMaterial": null,
"_srcBlendFactor": 2,
"_dstBlendFactor": 4,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_skeletonData": {
"__uuid__": "c540ca75-7466-4e9a-aa3f-f1d031999a27",
"__expectedType__": "sp.SkeletonData"
},
"defaultSkin": "default",
"defaultAnimation": "readyHand_01",
"_premultipliedAlpha": true,
"_timeScale": 1,
"_preCacheMode": 0,
"_cacheMode": 0,
"_sockets": [],
"_useTint": false,
"_debugMesh": false,
"_debugBones": false,
"_debugSlots": false,
"_enableBatch": false,
"loop": true,
"_id": ""
},
{
"__type__": "cc.CompPrefabInfo",
"fileId": "092Em93rtLuav6edDSYQF4"
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__id__": 0
},
"fileId": "e8VoLh3KlENrVZJLIIITZJ",
"targetOverrides": null
}
]

View File

@ -1,13 +0,0 @@
{
"ver": "1.1.50",
"importer": "prefab",
"imported": true,
"uuid": "f6c8dc7d-3478-495c-a358-5abb883f7aab",
"files": [
".json"
],
"subMetas": {},
"userData": {
"syncNodeName": "readyHand"
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -370,7 +370,7 @@
},
"_lpos": {
"__type__": "cc.Vec3",
"x": 70,
"x": 0,
"y": 94,
"z": 0
},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a",
"displayName": "Icon_History",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "8aaeafda-3c56-4c17-99af-f2373749c581",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "8aaeafda-3c56-4c17-99af-f2373749c581@f9941",
"displayName": "Icon_History",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 88,
"height": 88,
"rawWidth": 88,
"rawHeight": 88,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-44,
-44,
0,
44,
-44,
0,
-44,
44,
0,
44,
44,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
88,
88,
88,
0,
0,
88,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-44,
-44,
0
],
"maxPos": [
44,
44,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "8aaeafda-3c56-4c17-99af-f2373749c581@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a",
"displayName": "Icon_Paytable",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@f9941",
"displayName": "Icon_Paytable",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 85,
"height": 85,
"rawWidth": 85,
"rawHeight": 85,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42.5,
-42.5,
0,
42.5,
-42.5,
0,
-42.5,
42.5,
0,
42.5,
42.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
85,
85,
85,
0,
0,
85,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42.5,
-42.5,
0
],
"maxPos": [
42.5,
42.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "352b0e0e-a5bc-4ca6-9a99-7bb71369b9f1@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a",
"displayName": "Icon_Sound",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@f9941",
"displayName": "Icon_Sound",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 84,
"height": 80,
"rawWidth": 84,
"rawHeight": 80,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42,
-40,
0,
42,
-40,
0,
-42,
40,
0,
42,
40,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
80,
84,
80,
0,
0,
84,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42,
-40,
0
],
"maxPos": [
42,
40,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "a05921ee-d9d3-475f-a665-dc4aadcbc0aa@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a",
"displayName": "Icon_SoundOFF",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "d2d634ff-7c81-4fce-a797-1a6f3961463e",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "d2d634ff-7c81-4fce-a797-1a6f3961463e@f9941",
"displayName": "Icon_SoundOFF",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 84,
"height": 80,
"rawWidth": 84,
"rawHeight": 80,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-42,
-40,
0,
42,
-40,
0,
-42,
40,
0,
42,
40,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
80,
84,
80,
0,
0,
84,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-42,
-40,
0
],
"maxPos": [
42,
40,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "d2d634ff-7c81-4fce-a797-1a6f3961463e@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a",
"displayName": "Icon_Wallet",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "de9577d4-f908-485a-b81d-c9d87d447d40",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "de9577d4-f908-485a-b81d-c9d87d447d40@f9941",
"displayName": "Icon_Wallet",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 27,
"height": 27,
"rawWidth": 27,
"rawHeight": 27,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-13.5,
-13.5,
0,
13.5,
-13.5,
0,
-13.5,
13.5,
0,
13.5,
13.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
27,
27,
27,
0,
0,
27,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-13.5,
-13.5,
0
],
"maxPos": [
13.5,
13.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "de9577d4-f908-485a-b81d-c9d87d447d40@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a",
"displayName": "Icon_Win",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "2e5fb33e-e3d1-4853-8ab7-448e0170717c",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@f9941",
"displayName": "Icon_Win",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 30,
"height": 30,
"rawWidth": 30,
"rawHeight": 30,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-15,
-15,
0,
15,
-15,
0,
-15,
15,
0,
15,
15,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
30,
30,
30,
0,
0,
30,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-15,
-15,
0
],
"maxPos": [
15,
15,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "2e5fb33e-e3d1-4853-8ab7-448e0170717c@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a",
"displayName": "button_AutoSpin_Circle",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "a2a2f74e-ef42-435c-90fe-aaf69a54c137",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@f9941",
"displayName": "button_AutoSpin_Circle",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 117,
"height": 117,
"rawWidth": 117,
"rawHeight": 117,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-58.5,
-58.5,
0,
58.5,
-58.5,
0,
-58.5,
58.5,
0,
58.5,
58.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
117,
117,
117,
0,
0,
117,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-58.5,
-58.5,
0
],
"maxPos": [
58.5,
58.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "a2a2f74e-ef42-435c-90fe-aaf69a54c137@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a",
"displayName": "button_AutoSpin_Gear",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@f9941",
"displayName": "button_AutoSpin_Gear",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 98,
"height": 98,
"rawWidth": 98,
"rawHeight": 98,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-49,
-49,
0,
49,
-49,
0,
-49,
49,
0,
49,
49,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
98,
98,
98,
0,
0,
98,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-49,
-49,
0
],
"maxPos": [
49,
49,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "e110e1d5-07f2-4b3c-8c6c-1f9a290193fb@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a",
"displayName": "button_AutoSpin_Play",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@f9941",
"displayName": "button_AutoSpin_Play",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 33,
"height": 37,
"rawWidth": 33,
"rawHeight": 37,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-16.5,
-18.5,
0,
16.5,
-18.5,
0,
-16.5,
18.5,
0,
16.5,
18.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
37,
33,
37,
0,
0,
33,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-16.5,
-18.5,
0
],
"maxPos": [
16.5,
18.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "9b8bb23a-67ae-41b6-b9a9-066a3f0fb4f8@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a",
"displayName": "button_IconMenu",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "4129de75-e083-4516-a931-a88a64cdd5ab",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "4129de75-e083-4516-a931-a88a64cdd5ab@f9941",
"displayName": "button_IconMenu",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 56,
"height": 49,
"rawWidth": 56,
"rawHeight": 49,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-28,
-24.5,
0,
28,
-24.5,
0,
-28,
24.5,
0,
28,
24.5,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
49,
56,
49,
0,
0,
56,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-28,
-24.5,
0
],
"maxPos": [
28,
24.5,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "4129de75-e083-4516-a931-a88a64cdd5ab@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a",
"displayName": "button_fast",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "923a32e3-39cd-41f0-b43e-b1ad4186a187",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "923a32e3-39cd-41f0-b43e-b1ad4186a187@f9941",
"displayName": "button_fast",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 98,
"height": 100,
"rawWidth": 98,
"rawHeight": 100,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-49,
-50,
0,
49,
-50,
0,
-49,
50,
0,
49,
50,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
100,
98,
100,
0,
0,
98,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-49,
-50,
0
],
"maxPos": [
49,
50,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "923a32e3-39cd-41f0-b43e-b1ad4186a187@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a",
"displayName": "button_jia",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "6b078b73-c3e7-47e7-b56d-c71410c46f79",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "6b078b73-c3e7-47e7-b56d-c71410c46f79@f9941",
"displayName": "button_jia",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 92,
"height": 92,
"rawWidth": 92,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-46,
-46,
0,
46,
-46,
0,
-46,
46,
0,
46,
46,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
92,
92,
92,
0,
0,
92,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-46,
-46,
0
],
"maxPos": [
46,
46,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "6b078b73-c3e7-47e7-b56d-c71410c46f79@6c48a"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1,134 +0,0 @@
{
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2",
"files": [
".json",
".png"
],
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a",
"displayName": "button_jian",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "d190ca25-ff49-43b3-bf2c-67dfacec94c2",
"isUuid": true,
"visible": false,
"minfilter": "linear",
"magfilter": "linear",
"mipfilter": "none",
"anisotropy": 0
},
"ver": "1.0.22",
"imported": true,
"files": [
".json"
],
"subMetas": {}
},
"f9941": {
"importer": "sprite-frame",
"uuid": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@f9941",
"displayName": "button_jian",
"id": "f9941",
"name": "spriteFrame",
"userData": {
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 92,
"height": 92,
"rawWidth": 92,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"packable": true,
"pixelsToUnit": 100,
"pivotX": 0.5,
"pivotY": 0.5,
"meshType": 0,
"vertices": {
"rawPosition": [
-46,
-46,
0,
46,
-46,
0,
-46,
46,
0,
46,
46,
0
],
"indexes": [
0,
1,
2,
2,
1,
3
],
"uv": [
0,
92,
92,
92,
0,
0,
92,
0
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
],
"minPos": [
-46,
-46,
0
],
"maxPos": [
46,
46,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
"imported": true,
"files": [
".json"
],
"subMetas": {}
}
},
"userData": {
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "d190ca25-ff49-43b3-bf2c-67dfacec94c2@6c48a"
}
}

View File

@ -0,0 +1,9 @@
{
"ver": "1.2.0",
"importer": "directory",
"imported": true,
"uuid": "3da1f9de-d18f-40f5-a7f8-94737743b012",
"files": [],
"subMetas": {},
"userData": {}
}

View File

@ -0,0 +1,440 @@
Entering Scatter.png
size: 2033,1250
format: RGBA8888
filter: Linear,Linear
repeat: none
a/lizi_00
rotate: false
xy: 1441, 2
size: 86, 122
orig: 300, 300
offset: 107, 178
index: -1
a/lizi_01
rotate: false
xy: 380, 2
size: 89, 126
orig: 300, 300
offset: 106, 174
index: -1
a/lizi_02
rotate: false
xy: 1694, 5
size: 92, 130
orig: 300, 300
offset: 104, 170
index: -1
a/lizi_03
rotate: true
xy: 1260, 18
size: 96, 135
orig: 300, 300
offset: 102, 165
index: -1
a/lizi_04
rotate: true
xy: 1075, 6
size: 99, 139
orig: 300, 300
offset: 101, 161
index: -1
a/lizi_05
rotate: true
xy: 471, 2
size: 103, 143
orig: 300, 300
offset: 99, 157
index: -1
a/lizi_06
rotate: true
xy: 926, 26
size: 107, 147
orig: 300, 300
offset: 97, 153
index: -1
a/lizi_07
rotate: true
xy: 1620, 335
size: 110, 151
orig: 300, 300
offset: 96, 149
index: -1
a/lizi_08
rotate: false
xy: 810, 25
size: 114, 155
orig: 300, 300
offset: 94, 145
index: -1
a/lizi_09
rotate: true
xy: 1788, 3
size: 117, 159
orig: 300, 300
offset: 93, 141
index: -1
a/lizi_10
rotate: true
xy: 1529, 3
size: 121, 163
orig: 300, 300
offset: 91, 137
index: -1
a/lizi_11
rotate: false
xy: 810, 182
size: 124, 168
orig: 300, 300
offset: 90, 132
index: -1
a/lizi_12
rotate: true
xy: 616, 8
size: 128, 172
orig: 300, 300
offset: 88, 128
index: -1
a/lizi_13
rotate: true
xy: 1422, 740
size: 132, 176
orig: 300, 300
offset: 87, 124
index: -1
a/lizi_14
rotate: true
xy: 1241, 736
size: 136, 179
orig: 300, 300
offset: 85, 121
index: -1
a/lizi_15
rotate: false
xy: 951, 537
size: 140, 183
orig: 300, 300
offset: 84, 117
index: -1
a/lizi_16
rotate: true
xy: 1813, 122
size: 144, 187
orig: 300, 300
offset: 82, 113
index: -1
a/lizi_17
rotate: false
xy: 1093, 537
size: 147, 191
orig: 300, 300
offset: 81, 109
index: -1
a/lizi_18
rotate: false
xy: 936, 135
size: 151, 195
orig: 300, 300
offset: 79, 105
index: -1
a/lizi_19
rotate: true
xy: 566, 821
size: 154, 199
orig: 300, 300
offset: 78, 101
index: -1
a/lizi_20
rotate: false
xy: 937, 332
size: 158, 203
orig: 300, 300
offset: 76, 97
index: -1
a/lizi_21
rotate: false
xy: 1097, 326
size: 161, 209
orig: 300, 300
offset: 75, 91
index: -1
a/lizi_22
rotate: false
xy: 1260, 329
size: 165, 212
orig: 300, 300
offset: 73, 85
index: -1
a/lizi_23
rotate: false
xy: 1089, 107
size: 169, 217
orig: 300, 300
offset: 72, 79
index: -1
a/lizi_24
rotate: true
xy: 1017, 730
size: 173, 222
orig: 300, 300
offset: 70, 74
index: -1
a/lizi_25
rotate: true
xy: 1097, 905
size: 176, 227
orig: 300, 300
offset: 69, 68
index: -1
a/lizi_26
rotate: true
xy: 1326, 874
size: 179, 232
orig: 300, 300
offset: 68, 62
index: -1
a/lizi_27
rotate: true
xy: 705, 537
size: 183, 244
orig: 300, 300
offset: 66, 56
index: -1
a/lizi_28
rotate: false
xy: 510, 359
size: 187, 249
orig: 300, 300
offset: 65, 51
index: -1
a/lizi_29
rotate: true
xy: 1588, 1058
size: 190, 255
orig: 300, 300
offset: 64, 45
index: -1
a/lizi_30
rotate: true
xy: 1326, 1055
size: 193, 260
orig: 300, 300
offset: 63, 40
index: -1
a/lizi_31
rotate: false
xy: 276, 606
size: 195, 266
orig: 300, 300
offset: 63, 34
index: -1
a/lizi_32
rotate: false
xy: 566, 977
size: 199, 271
orig: 300, 300
offset: 61, 29
index: -1
a/lizi_33
rotate: false
xy: 1600, 856
size: 203, 200
orig: 300, 300
offset: 59, 100
index: -1
a/lizi_34
rotate: true
xy: 1441, 126
size: 207, 206
orig: 300, 300
offset: 57, 94
index: -1
a/lizi_35
rotate: false
xy: 597, 138
size: 211, 212
orig: 300, 300
offset: 55, 88
index: -1
a/lizi_36
rotate: false
xy: 380, 130
size: 215, 218
orig: 300, 300
offset: 53, 82
index: -1
a/lizi_37
rotate: false
xy: 174, 82
size: 204, 224
orig: 300, 300
offset: 52, 76
index: -1
a/lizi_38
rotate: true
xy: 473, 610
size: 209, 230
orig: 300, 300
offset: 50, 70
index: -1
a/lizi_39
rotate: true
xy: 699, 352
size: 183, 236
orig: 300, 300
offset: 78, 64
index: -1
a/lizi_40
rotate: false
xy: 1845, 1006
size: 186, 242
orig: 300, 300
offset: 77, 58
index: -1
a/lizi_41
rotate: true
xy: 767, 722
size: 188, 248
orig: 300, 300
offset: 77, 52
index: -1
a/lizi_42
rotate: false
xy: 341, 350
size: 167, 254
orig: 300, 300
offset: 76, 46
index: -1
a/lizi_43
rotate: false
xy: 185, 337
size: 154, 260
orig: 300, 300
offset: 91, 40
index: -1
a/lizi_44
rotate: true
xy: 767, 912
size: 159, 266
orig: 300, 300
offset: 89, 34
index: -1
a/lizi_45
rotate: true
xy: 1052, 1083
size: 165, 272
orig: 300, 300
offset: 86, 28
index: -1
a/lizi_46
rotate: false
xy: 2, 28
size: 170, 278
orig: 300, 300
offset: 84, 22
index: -1
a/lizi_47
rotate: true
xy: 767, 1073
size: 175, 283
orig: 300, 300
offset: 82, 17
index: -1
a/lizi_48
rotate: false
xy: 2, 308
size: 181, 289
orig: 300, 300
offset: 79, 11
index: -1
a/lizi_49
rotate: true
xy: 1813, 268
size: 185, 172
orig: 300, 300
offset: 77, 128
index: -1
a/lizi_50
rotate: true
xy: 1426, 547
size: 191, 175
orig: 300, 300
offset: 74, 125
index: -1
a/lizi_51
rotate: true
xy: 1649, 137
size: 196, 162
orig: 300, 300
offset: 72, 138
index: -1
a/lizi_52
rotate: true
xy: 1620, 447
size: 201, 167
orig: 300, 300
offset: 70, 133
index: -1
a/lizi_53
rotate: false
xy: 1805, 831
size: 206, 173
orig: 300, 300
offset: 67, 127
index: -1
a/lizi_54
rotate: true
xy: 1260, 116
size: 211, 179
orig: 300, 300
offset: 65, 121
index: -1
a/lizi_55
rotate: false
xy: 1789, 455
size: 177, 185
orig: 300, 300
offset: 63, 115
index: -1
a/lizi_56
rotate: false
xy: 1242, 543
size: 182, 191
orig: 300, 300
offset: 60, 109
index: -1
a/lizi_57
rotate: true
xy: 1792, 642
size: 187, 198
orig: 300, 300
offset: 58, 102
index: -1
a/lizi_58
rotate: false
xy: 1603, 650
size: 187, 204
orig: 300, 300
offset: 56, 96
index: -1
a/lizi_59
rotate: false
xy: 1427, 335
size: 191, 210
orig: 300, 300
offset: 54, 90
index: -1
g40
rotate: false
xy: 2, 599
size: 272, 273
orig: 283, 289
offset: 6, 10
index: -1
sg
rotate: false
xy: 2, 874
size: 562, 374
orig: 562, 374
offset: 0, 0
index: -1

View File

@ -0,0 +1,12 @@
{
"ver": "1.0.0",
"importer": "*",
"imported": true,
"uuid": "94e1d9e0-4e68-4331-8532-513a89d5ce87",
"files": [
".atlas",
".json"
],
"subMetas": {},
"userData": {}
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,11 @@
{
"ver": "1.2.6",
"importer": "spine-data",
"imported": true,
"uuid": "bcdec64d-b16f-460d-99ed-d115f9226426",
"files": [
".json"
],
"subMetas": {},
"userData": {}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 937 KiB

View File

@ -2,7 +2,7 @@
"ver": "1.0.27",
"importer": "image",
"imported": true,
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22",
"uuid": "f07b133b-d924-4fa6-a0c9-52c48c852b5f",
"files": [
".json",
".png"
@ -10,14 +10,14 @@
"subMetas": {
"6c48a": {
"importer": "texture",
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a",
"displayName": "Icon_Exit",
"uuid": "f07b133b-d924-4fa6-a0c9-52c48c852b5f@6c48a",
"displayName": "Entering Scatter",
"id": "6c48a",
"name": "texture",
"userData": {
"wrapModeS": "clamp-to-edge",
"wrapModeT": "clamp-to-edge",
"imageUuidOrDatabaseUri": "f168b707-d32b-4a65-9f4f-038a0cf70f22",
"imageUuidOrDatabaseUri": "f07b133b-d924-4fa6-a0c9-52c48c852b5f",
"isUuid": true,
"visible": false,
"minfilter": "linear",
@ -34,8 +34,8 @@
},
"f9941": {
"importer": "sprite-frame",
"uuid": "f168b707-d32b-4a65-9f4f-038a0cf70f22@f9941",
"displayName": "Icon_Exit",
"uuid": "f07b133b-d924-4fa6-a0c9-52c48c852b5f@f9941",
"displayName": "Entering Scatter",
"id": "f9941",
"name": "spriteFrame",
"userData": {
@ -44,12 +44,12 @@
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 79,
"height": 79,
"rawWidth": 79,
"rawHeight": 79,
"trimX": 2,
"trimY": 2,
"width": 2029,
"height": 1246,
"rawWidth": 2033,
"rawHeight": 1250,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
@ -61,17 +61,17 @@
"meshType": 0,
"vertices": {
"rawPosition": [
-39.5,
-39.5,
-1014.5,
-623,
0,
39.5,
-39.5,
1014.5,
-623,
0,
-39.5,
39.5,
-1014.5,
623,
0,
39.5,
39.5,
1014.5,
623,
0
],
"indexes": [
@ -83,38 +83,38 @@
3
],
"uv": [
0,
79,
79,
79,
0,
0,
79,
0
2,
1248,
2031,
1248,
2,
2,
2031,
2
],
"nuv": [
0,
0,
1,
0,
0,
1,
1,
1
0.000983767830791933,
0.0016,
0.9990162321692081,
0.0016,
0.000983767830791933,
0.9984,
0.9990162321692081,
0.9984
],
"minPos": [
-39.5,
-39.5,
-1014.5,
-623,
0
],
"maxPos": [
39.5,
39.5,
1014.5,
623,
0
]
},
"isUuid": true,
"imageUuidOrDatabaseUri": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a",
"imageUuidOrDatabaseUri": "f07b133b-d924-4fa6-a0c9-52c48c852b5f@6c48a",
"atlasUuid": ""
},
"ver": "1.0.12",
@ -129,6 +129,6 @@
"type": "sprite-frame",
"hasAlpha": true,
"fixAlphaTransparencyArtifacts": false,
"redirect": "f168b707-d32b-4a65-9f4f-038a0cf70f22@6c48a"
"redirect": "f07b133b-d924-4fa6-a0c9-52c48c852b5f@6c48a"
}
}

View File

@ -0,0 +1,63 @@
import { _decorator, Component, Node } from 'cc';
import NoSleep from 'nosleep.js';
const { ccclass,property } = _decorator;
@ccclass('AntiSleepManager')
export class AntiSleepManager extends Component {
private noSleep: NoSleep | null = null;
private wakeLock: any = null;
_enabled: boolean = false;
onLoad() {
this.noSleep = new NoSleep();
}
clickStart(){
if(this._enabled) return
this.enableWakeLock();
}
async enableWakeLock() {
this._enabled = true
try {
if ('wakeLock' in navigator) {
this.wakeLock = await (navigator as any).wakeLock.request('screen');
// console.log('✅ 屏幕常亮已启用 (Wake Lock API)');
// 处理页面切换时丢失锁
document.addEventListener('visibilitychange', async () => {
if (document.visibilityState === 'visible') {
this.wakeLock = await (navigator as any).wakeLock.request('screen');
}
});
} else {
this.noSleep?.enable();
// console.log('✅ 屏幕常亮已启用 (NoSleep.js)');
}
} catch (err) {
this._enabled = false
// console.error('❌ 启用屏幕常亮失败:', err);
}
}
disableWakeLock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = null;
// console.log('🔒 Wake Lock 已关闭');
}
if (this.noSleep) {
this.noSleep.disable();
// console.log('🔒 NoSleep 已关闭');
}
}
onDestroy() {
// this.disableWakeLock();
}
}

View File

@ -2,7 +2,7 @@
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "fff06ff8-efe2-4de7-a99a-f141dbd008f8",
"uuid": "c3c4a468-972c-4ee3-8841-9b917cf5c8b1",
"files": [],
"subMetas": {},
"userData": {}

View File

@ -22,13 +22,16 @@ import {
sp,
AsyncDelegate,
instantiate,
SpriteFrame,
} from "cc";
import { SLOT_BAR_EVENT } from "./game/Define";
import { AutoSpinPanel } from "./game/AutoSpinPanel";
import { NodePoolManager } from "../../Loading/scripts/manager/NodePoolManager";
import { webView } from "./game/WebView";
import {
callGameBalanceApi,
cash2gold,
getGameId,
getHistoryUrl,
getOddsUrl,
getSupportUrl,
@ -41,6 +44,7 @@ import { AudioManager } from "../../Loading/scripts/manager/AudioManager";
import { showFromBottom, hideToBottom } from "./game/Tools";
import { SpinAni } from "./game/SpinAni";
import { SlotGame } from "./SlotGame";
const { ccclass, property } = _decorator;
@ -50,8 +54,8 @@ export class SlotBar extends Component {
@property({ type: Prefab })
private autoSpinPanel: Prefab = null;
@property(Node)
private tipSmall: Node = null;
@property(SlotGame)
private slotGame: SlotGame = null;
@property(Prefab)
pfb_history: Prefab = null;
@ -62,9 +66,17 @@ export class SlotBar extends Component {
@property(Prefab)
pfb_rules: Prefab = null;
@property(Node)
private tipSmall_turbo: Node = null;
@property(Node)
private tipSmall_bet: Node = null;
@property(Node)
private manualStopNode: Node = null;
@property([SpriteFrame])
turboFrames: SpriteFrame[] = [];
private MaskNode: Node = null;
private balanceLabel: Label = null;
private betLabel: Label = null;
@ -90,7 +102,6 @@ export class SlotBar extends Component {
private turboBtnAni: Animation = null;
private freeSpinBg: Node = null;
private spin_lihua: sp.Skeleton = null
private left_1: Node = null;
private leftCount: Label = null;
private left_2: Node = null;
@ -109,7 +120,7 @@ export class SlotBar extends Component {
private btnPositions: Map<string, Vec3> = new Map();
private isAnimating: boolean = false;
private readonly DURATION = 0.1;
private readonly OFFSET_Y = -200;
private readonly OFFSET_Y = -300;
private hasClickSpin: boolean = false;
private hasClickManualStop: boolean = false;
@ -141,7 +152,6 @@ export class SlotBar extends Component {
this.menuBtn = this.btns1.getChildByName("ic_menu").getComponent(Button);
this.freeSpinBg = this.node.getChildByName("FreeSpinBg");
this.spin_lihua = this.freeSpinBg.getChildByName("spin_lihua").getComponent(sp.Skeleton);
this.left_1 = this.freeSpinBg.getChildByName("left_1");
this.left_2 = this.freeSpinBg.getChildByName("left_2");
this.leftCount = this.left_1
@ -163,10 +173,6 @@ export class SlotBar extends Component {
});
}
protected onDestroy(): void {
this.node.targetOff(this);
}
// spinBtn有两个动画idle状态循环旋转一圈spin状态速度加快
setGameInfo(gameInfo: any) {
@ -181,6 +187,7 @@ export class SlotBar extends Component {
this.betIndex = 0;
}
// this.setBtnEnable(this.subBtn, this.betIndex > 0);
this.setBalance(this.curBalance);
this.setBet(this.curBet);
this.setWin(this.curWin);
@ -264,6 +271,8 @@ export class SlotBar extends Component {
});
}
onBtnSpin() {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
@ -295,6 +304,7 @@ export class SlotBar extends Component {
this.setBtnEnable(this.addBtn, false);
this.setBtnEnable(this.autoBtn, false);
this.setBtnEnable(this.menuBtn, false);
}
// 第二次点击 手动停止
else if (this.hasClickSpin && !this.hasClickManualStop) {
@ -306,6 +316,7 @@ export class SlotBar extends Component {
// 第一次点击 旋转
if (!this.hasClickSpin && !this.hasClickManualStop) {
this.hasClickSpin = true;
this.manualStopNode.active = true
this.node.emit(SLOT_BAR_EVENT.ON_TEST_SPIN_CLICK, args);
this.setBtnEnable(this.subBtn, false);
@ -331,45 +342,46 @@ export class SlotBar extends Component {
this.setBtnEnable(this.spinBtn, false);
}
async showPopup(
name: string,
pre: Prefab,
callBack: (prefab: Node) => void
) {
let prefab = await NodePoolManager.instance.getNodeFromPoolStatic(name, pre);
if (!prefab) {
console.error(`UIManager 加载${name} prefab失败: ${path}`);
return;
}
this.MaskNode.addChild(prefab);
showFromBottom(prefab)
let main = prefab.getChildByName('main');
if (!main) {
// console.error(`UIManager ${name}prefab 没有main节点命名不规范: ${path}`);
return;
}
if (callBack) callBack(prefab);
}
// 打开规则界面
openRules() {
if (!this.tweenIsEnd) return;
// AudioManager.instance.playSFX('Common_Button_Click');
// let param = "rule";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let rules = instantiate(this.pfb_rules);
this.MaskNode.addChild(rules);
showFromBottom(rules);
this.showPopup('rules', this.pfb_rules)
}
// 打开赔率界面
openPaytable() {
if (!this.tweenIsEnd) return;
// let url = getOddsUrl();
// window.open(url, '_blank');
// return;
// AudioManager.instance.playSFX('Common_Button_Click');
// let param = "paytable";
// let view = NodePoolManager.instance.getNodeFromPoolStatic(param, this.webViewPre);
// this.MaskNode.addChild(view);
// view.getComponent(webView).open(param, this.curBet);
let paytable = instantiate(this.pfb_paytable);
this.MaskNode.addChild(paytable);
showFromBottom(paytable);
this.showPopup('paytable', this.pfb_paytable)
}
openHistory() {
if (!this.tweenIsEnd) return;
let history = instantiate(this.pfb_history);
this.MaskNode.addChild(history);
showFromBottom(history);
this.showPopup('history', this.pfb_history)
}
isON = true;
@ -388,13 +400,12 @@ export class SlotBar extends Component {
onBtnAddChips() {
AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex += 1;
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length);
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length - 1);
this.setBtnEnable(this.subBtn, this.betIndex > 0);
if (this.betIndex == this.betGrade.length) {
if (this.betIndex == this.betGrade.length - 1) {
let tip = I18nManager.instance.t("AID_TIP_MAX_BET");
this.showTipSmall(tip); // 显示提示
this.betIndex = this.betGrade.length - 1; // 确保 betIndex 不超出范围
return;
}
this.setBet(this.betGrade[this.betIndex]);
}
@ -403,58 +414,111 @@ export class SlotBar extends Component {
AudioManager.instance.playSFX("Common_Button_Click");
this.betIndex -= 1;
this.setBtnEnable(this.subBtn, this.betIndex > 0);
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length);
if (this.betIndex < 0) {
this.setBtnEnable(this.addBtn, this.betIndex != this.betGrade.length - 1);
if (this.betIndex == 0) {
let tip = I18nManager.instance.t("AID_TIP_MIN_BET");
this.showTipSmall(tip); // 显示提示
this.betIndex = 0; // 确保 betIndex 不低于0
return;
}
this.setBet(this.betGrade[this.betIndex]);
}
private isGetBalance: boolean = false;
async onClickBalance(): Promise<number | null> {
if (this.isGetBalance) return
this.isGetBalance = true;
try {
let balacneData = await this.refreshBalanceFromServer();
this.setBalance(balacneData)
return balacneData;
} catch (err) {
console.log('获取余额失败')
return null;
} finally {
this.scheduleOnce(() => {
this.isGetBalance = false;
}, 0.5)
}
}
async onConfirmErr2(): Promise<number | null> {
try {
let balacneData = await this.refreshBalanceFromServer();
this.setBalance(balacneData)
return balacneData;
} catch (err) {
console.log('获取余额失败')
return null;
} finally {
this.isGetBalance = false;
}
}
private currentTipTween: Tween<Node> = null;
private hideTimer: number = null;
showTipSmall(str: string) {
showTipSmall(str: string, openTurbo?: boolean) {
// 清理之前的计时器和动画
this.clearTipTimers();
// 设置提示内容
let tipNode = null
if (openTurbo != null) {
tipNode = this.tipSmall_turbo
this.tipSmall_bet.active = false
this.tipSmall.getChildByName("Label").getComponent(Label).string = str;
let label = this.tipSmall.getChildByName("Label").getComponent(Label);
label.updateRenderData(true);
let tipWidth = this.tipSmall
.getChildByName("Label")
.getComponent(UITransform).width;
let frame = this.tipSmall.getChildByName("Frame_Assets");
frame.getComponent(UITransform).setContentSize(tipWidth + 100, 105);
// 调整框架大小
tipNode.getChildByPath("layout/Turboon").active = openTurbo
tipNode.getChildByPath("layout/Turbooff").active = !openTurbo
// 设置提示内容
tipNode.active = true;
tipNode.getChildByPath("layout/Label").getComponent(Label).string = str;
let label = tipNode.getChildByPath("layout/Label").getComponent(Label);
label.updateRenderData(true);
tipNode.getChildByPath("layout").getComponent(Layout).updateLayout(true)
let tipWidth = tipNode.getChildByPath("layout").getComponent(UITransform).width;
let frame = tipNode.getChildByName('Frame_Assets');
// 调整框架大小
frame.getComponent(UITransform).setContentSize(tipWidth + 140, 125);
} else {
tipNode = this.tipSmall_bet
this.tipSmall_turbo.active = false
// 设置提示内容
tipNode.active = true;
tipNode.getChildByPath("Label").getComponent(Label).string = str;
let label = tipNode.getChildByPath("Label").getComponent(Label);
label.updateRenderData(true);
let tipWidth = tipNode.getChildByPath("Label").getComponent(UITransform).width;
let frame = tipNode.getChildByName('Frame_Assets');
// 调整框架大小
frame.getComponent(UITransform).setContentSize(tipWidth + 140, 105);
}
tipNode.scale = new Vec3(0, 0, 0);
setTimeout(() => {
this.tipSmall.active = true;
// 显示动画
this.tipSmall.scale = new Vec3(0, 0, 0);
this.currentTipTween = tween(this.tipSmall)
this.currentTipTween = tween(tipNode)
.to(0.1, { scale: new Vec3(1, 1, 1) })
.call(() => {
// 5. 设置隐藏计时器
this.hideTimer = setTimeout(() => {
this.hideTipSmall();
this.hideTipSmall(tipNode);
}, 1000); // 1秒后隐藏
})
.start();
}, 0.1);
}
private hideTipSmall() {
if (!this.tipSmall.active) return;
private hideTipSmall(tipNode) {
if (!tipNode.active) return;
this.clearTipTimers(); // 清理可能存在的计时器
this.currentTipTween = tween(this.tipSmall)
this.currentTipTween = tween(tipNode)
.to(0.1, { scale: new Vec3(0, 0, 0) })
.call(() => {
this.tipSmall.active = false;
tipNode.active = false;
this.currentTipTween = null;
})
.start();
@ -497,6 +561,7 @@ export class SlotBar extends Component {
} else {
this.betIndex = this.betGrade.indexOf(bet);
}
// this.setBtnEnable(this.subBtn, this.betIndex > 0);
// 停止当前的 tween 动画
Tween.stopAllByTarget(this.betLabel.node);
@ -572,6 +637,8 @@ export class SlotBar extends Component {
this.setBtnEnable(this.menuBtn, false);
this.setBtnEnable(this.spinBtn, false);
this.slotGame.showFeatureBuy(true)
this.setBtnVisible(this.spinBtn, false);
this.setBtnVisible(this.stopAutoBtn, true);
@ -592,6 +659,8 @@ export class SlotBar extends Component {
this.setBtnVisible(this.spinBtn, true);
this.setBtnVisible(this.stopAutoBtn, false);
this.setBtnEnable(this.spinBtn, false);
this.slotGame.showFeatureBuy(this.getBet() * this.gameInfo.BuyMul > this.gameInfo.MaxBuyBet)
}
reconnectState(hasDelete: boolean = false) {
@ -606,8 +675,9 @@ export class SlotBar extends Component {
resetAllState() {
this.hasClickSpin = false;
this.hasClickManualStop = false;
this.manualStopNode.active = false
this.hasClickManualStop = false;
this.isAuto = false;
this.setBtnVisible(this.spinBtn, true);
this.spinAni.stopSpin();
@ -618,6 +688,8 @@ export class SlotBar extends Component {
this.setBtnEnable(this.addBtn, true);
this.setBtnEnable(this.menuBtn, true);
this.setBtnEnable(this.autoBtn, true);
this.setBtnEnable(this.subBtn, this.betIndex > 0);
}
onTurboMouseDown() {
@ -684,10 +756,6 @@ export class SlotBar extends Component {
}
}
playSpin_lihua() {
this.spin_lihua.setAnimation(0, 'animation', false)
}
exitFreeSpin() {
this.freeSpinBg.active = false;
this.btns1.active = this.BTNS1_ACTIVE;
@ -738,6 +806,7 @@ export class SlotBar extends Component {
protected onDestroy(): void {
this.autoBtn.off(Node.EventType.TOUCH_START, this.autoAin, this);
this.autoBtn.off(Node.EventType.MOUSE_ENTER, this.autoAin, this);
this.node.targetOff(this);
this.turboBtn.off(Node.EventType.TOUCH_START, this.fastAni, this);
this.turboBtn.off(Node.EventType.MOUSE_ENTER, this.fastAni, this);
@ -766,4 +835,28 @@ export class SlotBar extends Component {
this.setBet(this.betGrade[this.betIndex], true);
}
}
// private _refreshingBalance: boolean = false;
async refreshBalanceFromServer(): Promise<number | null> {
// if (this._refreshingBalance) return this.getBalance();
// this._refreshingBalance = true;
try {
const res = await callGameBalanceApi({});
const balance = Number(res.Balance);
if (!Number.isFinite(balance)) {
console.warn("[SlotBar] invalid balance response:", res);
return this.getBalance();
}
this.setBalance(balance);
return balance;
} catch (err) {
console.error("[SlotBar] refresh balance failed:", err);
return this.getBalance();
} finally {
// this.scheduleOnce(() => {
// this._refreshingBalance = false;
// }, 1)
}
}
}

View File

@ -7,6 +7,7 @@ import { gold2cash } from '../../Loading/scripts/comm';
import { NodePoolManager } from '../../Loading/scripts/manager/NodePoolManager';
import { I18nManager } from '../../Loading/scripts/manager/I18nManager';
import { AudioManager } from '../../Loading/scripts/manager/AudioManager';
import { UpLayer } from './game/UpLayer';
let { ccclass, property } = _decorator;
//倍率瓶子的所在位置
@ -15,7 +16,7 @@ const multiPositionArr: Vec3[] = [
new Vec3(-110, 35, 0),
new Vec3(60, 35, 0),
new Vec3(230, 35, 0),
new Vec3(380, 80, 0),
new Vec3(395, 80, 0),
]
@ -32,6 +33,9 @@ export class SlotGame extends Component {
@property(Prefab)
multiPre: Prefab = null;
@property(UpLayer)
upLayer: UpLayer = null;
@property(Prefab)
multiLabelPre: Prefab = null;
@ -105,7 +109,7 @@ export class SlotGame extends Component {
this.grayNode = this.node.getChildByName('grayNode');
this.winLayer = this.node.getChildByName('winLayer');
this.readyHand = this.node.getChildByName('readyHand');
this.scatterLayer = this.node.getChildByPath('scatterLayer/layer')
this.scatterLayer = this.node.getChildByPath('scatterLayer')
this.winType = this.node.getChildByName('winType');
@ -201,7 +205,7 @@ export class SlotGame extends Component {
this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_CREATED, this.onAllRollerIconsCreated, this);
this.rollerManager.node.off(ROLLER_COMBINE_EVENT.ALL_ROLLER_ICONS_FALLEN, this.onAllRollerIconsFallen, this);
IconEventBus.on('ICON_CLICKED', this.onIconClicked, this);
IconEventBus.off('ICON_CLICKED', this.onIconClicked, this);
}
private currentBgState: boolean = true; // 记录当前背景状态,默认为普通模式(false)
@ -225,9 +229,15 @@ export class SlotGame extends Component {
// 初始化滚轮数据
initRollerWithIcon(gameInfo: any) {
this.upLayer.hideAllLayer();
this.rollerManager.setUpLayer(this.upLayer);
this.gameInfo = gameInfo;
this.spinData = this.gameInfo.Data;
this.rollerManager.initRollerWithIcon(this.spinData);
this.rollerManager.vRollers.forEach((roller) => {
this.upLayer.syncSpecialFromRoller(roller);
})
}
setRollerIconRule(rollerIconRule: any) {
@ -239,6 +249,7 @@ export class SlotGame extends Component {
}
spin(isFree: boolean) {
this.upLayer.giveBackAllSpecials(this.rollerManager);
AudioManager.instance.playSFX('Spin_Button_Click');
this.setWaysCount('...');
if (!isFree) {
@ -578,10 +589,15 @@ export class SlotGame extends Component {
if (this.rollerManager.checkNextRollerExpect(6, 3)) {
AudioManager.instance.playSFX('Appear_Scatter_Sound_elimin', 1, true)
this.rollerManager.iconFallDown(this.spinData, true);
this.scheduleOnce(() => {
this.node.getChildByName('awaitScatter').active = true
}, 0.2)
this.scheduleOnce(() => {
AudioManager.instance.stopAllSFX()
this.setWaysCount(this.spinData.Symbol.WaysNum);
this.rollerManager.iconFallDown(this.spinData, false);
this.node.getChildByName('awaitScatter').active = false
}, 2.5)
} else {
this.scheduleOnce(() => {
@ -597,6 +613,8 @@ export class SlotGame extends Component {
}
onRollerStop(rollerId: number) {
let roller = this.rollerManager.allRollers[rollerId];
this.upLayer.syncSpecialFromRoller(roller);
// if (rollerId < 1) return;
// 计算当前停止列之前的所有数字的乘积
let totalWays = 1;
@ -627,6 +645,7 @@ export class SlotGame extends Component {
// 新增:事件处理方法
onAllRollerIconsDeleted() {
this.upLayer.giveBackAllSpecials(this.rollerManager);
// 向上传递事件
this.node.emit(SLOT_GAME_EVENT.ALL_ROLLER_ICONS_DELETED);
}
@ -637,6 +656,7 @@ export class SlotGame extends Component {
}
onAllRollerIconsFallen() {
this.upLayer.resetAndSyncAllSpecials(this.rollerManager);
// 向上传递事件
this.node.emit(SLOT_GAME_EVENT.ALL_ROLLER_ICONS_FALLEN);
}
@ -855,8 +875,8 @@ export class SlotGame extends Component {
}
showFeatureBuy(isShow: boolean) {
this.featureBuyNode.active = !isShow;
showFeatureBuy(isHide: boolean) {
this.featureBuyNode.active = !isHide;
}
setFeatureBuyInteractable(isInteractable: boolean) {

View File

@ -1,4 +1,4 @@
import { _decorator, Component, Prefab } from "cc";
import { _decorator, Component, Node, Prefab } from "cc";
import {
FREE_SPIN_ROLLER_RULE,
GameInfo,
@ -12,7 +12,7 @@ import { SlotBar } from "./SlotBar";
import { SlotGame } from "./SlotGame";
import { BigWinUI } from "./game/BigWinUI";
import { GameDataManager } from "../../Loading/scripts/manager/GameDataManager";
import { callGameApi, getFromUrl } from "../../Loading/scripts/comm";
import { callGameApi, callGameBalanceApi, getFromUrl, getGameId } from "../../Loading/scripts/comm";
import { TipPanel } from "./game/TipPanel";
import { I18nManager } from "../../Loading/scripts/manager/I18nManager";
import { TotalWin } from "./game/TotalWin";
@ -23,6 +23,7 @@ import { FreeSpinEnter } from "./game/FreeSpinEnter";
import { FreeSpinAdd } from "./game/FreeSpinAdd";
import { SysGift } from "./game/SysGift";
import { ErrorManager } from "../../Loading/scripts/manager/ErrorManager";
import { SlotRanking } from "../SlotRanking/scripts/SlotRanking";
let { ccclass, property } = _decorator;
@ -36,6 +37,7 @@ interface GameState {
isInFreeSpin: boolean;
isOneRoundEnd: boolean;
isDebug: boolean;
isFeatureBuySpin: boolean;
}
// 自动旋转配置接口
@ -51,7 +53,7 @@ interface AutoSpinConfig {
export class SlotScene extends Component {
// 组件引用
@property(SlotGame)
private slotGame: SlotGame = null;
public slotGame: SlotGame = null;
@property(SlotBar)
private slotBar: SlotBar = null;
@ -77,17 +79,25 @@ export class SlotScene extends Component {
@property(SysGift)
private SysGift: SysGift = null;
@property(SlotRanking)
slotRanking: SlotRanking = null;
@property(Node)
gray: Node = null
// 游戏数据
private gameInfo: GameInfo = null;
private spinInfo: any = null;
private lastSpinInfo: any = null;
private spinData: any = null;
private isReceiveMsg: boolean = false;
private isErr2: boolean = false;
private objectId: string[] = [];
// 游戏状态管理
private gameState: GameState = {
public gameState: GameState = {
isOnReconnect: false,
isAutoSpin: false,
isEliminating: false,
@ -95,6 +105,7 @@ export class SlotScene extends Component {
isFirstFreeSpin: false,
isInFreeSpin: false,
isOneRoundEnd: false,
isFeatureBuySpin: false,
isDebug: false,
};
@ -110,13 +121,16 @@ export class SlotScene extends Component {
batchingTimer: number = 0;
isErr: boolean = false;
async start() {
this.slotRanking.node.active = true
this.slotRanking.setSlotScene(this);
await this.init();
// this.TotalWin.show(505000, 10)
// this.FreeSpinEnter.show(8)
// this.FreeSpinAdd.show(5)
// this.BigWinUI.show(800000, WIN_TYPE.SUPER_MEGA_WIN, 10000)
}
private async init() {
@ -265,6 +279,8 @@ export class SlotScene extends Component {
this.node.addChild(panel);
featureBuy.show(this.slotBar.getBet(), this.gameInfo.BuyMul, () => {
this.spinBtnClick(false, true);
this.gameState.isFeatureBuySpin = true;
this.slotBar.featureBuySpin();
});
}
@ -273,19 +289,30 @@ export class SlotScene extends Component {
isFreeSpin: boolean = false,
isFeatureBuy: boolean = false
) {
this.gameState.isOnReconnect = false;
this.isReceiveMsg = false;
this.isErr = false;
this.slotGame.spin(this.gameState.isInFreeSpin);
this.gameState.isOneRoundEnd = false;
this.slotGame.changeBg(this.gameState.isInFreeSpin);
this.slotGame.hideIconMsg();
if (!isFreeSpin) {
this.slotBar.setWin(0);
}
let curBalanceData = await this.slotBar.refreshBalanceFromServer()
if (!curBalanceData) {
curBalanceData = this.slotBar.getBalance()
}
if (curBalanceData < (isFeatureBuy ? this.slotBar.getBet() * this.gameInfo.BuyMul : this.slotBar.getBet()) && !isFreeSpin && !GameDataManager.instance.frb.Ongoing) {
//余额不足不经过服务器,在客户端拦截
this.showErrorTip(2, () => { this.slotBar.onConfirmErr2() });
this.handleErrSpin(true);
this.isErr2 = true;
return
}
try {
this.gameState.isOnReconnect = false;
this.isReceiveMsg = false;
this.isErr = false
this.slotGame.spin(this.gameState.isInFreeSpin);
this.gameState.isOneRoundEnd = false;
this.slotGame.changeBg(this.gameState.isInFreeSpin);
this.slotGame.hideIconMsg();
if (!isFreeSpin) {
this.slotBar.setWin(0);
}
// 如果有frb就不会扣除金额
let frb = GameDataManager.instance.frb;
if (frb && frb.Ongoing != null) {
@ -293,9 +320,14 @@ export class SlotScene extends Component {
} else {
if (!isFreeSpin) {
if (!isFeatureBuy) {
this.slotBar.setBalance(this.slotBar.getBalance() - this.slotBar.getBet());
this.slotBar.setBalance(
this.slotBar.getBalance() - this.slotBar.getBet()
);
} else {
this.slotBar.setBalance(this.slotBar.getBalance() - (this.slotBar.getBet() * this.gameInfo.BuyMul));
this.slotBar.setBalance(
this.slotBar.getBalance() -
this.slotBar.getBet() * this.gameInfo.BuyMul
);
}
}
}
@ -349,7 +381,7 @@ export class SlotScene extends Component {
this.isReceiveMsg = true;
await this.handleSpinResult();
} catch (error) {
this.isErr = true
this.isErr = true;
let errCode = parseInt(error.message.split("#")[0]);
if (isNaN(errCode)) {
this.showErrorTip(4);
@ -384,9 +416,10 @@ export class SlotScene extends Component {
this.slotBar.manualStop();
this.slotGame.manualStop();
}
private handleErrSpin() {
private handleErrSpin(isErr2 = false) {
this.spinInfo = this.lastSpinInfo;
this.spinData = this.spinInfo.Data;
this.slotGame.setRollerIconRule(
@ -395,8 +428,9 @@ export class SlotScene extends Component {
this.gameState.isAutoSpin = false;
this.spinData.AllScore = 0;
this.slotGame.stopScroll(this.spinData, false, null);
this.slotGame.manualStop();
this.slotBar.setBalance(this.spinInfo.Balance);
// this.slotGame.manualStop();
this.slotBar.setBalance(isErr2 ? this.slotBar.getBalance() : this.spinInfo.Balance);
this.slotBar.closeAutoSpin();
}
private async handleSpinResult() {
@ -410,7 +444,7 @@ export class SlotScene extends Component {
? I18nManager.instance.t("AID_TIP_TURBO_ENABLED")
: I18nManager.instance.t("AID_TIP_TURBO_DISABLED");
this.slotBar.showTipSmall(tip);
this.slotBar.showTipSmall(tip, this.gameState.isFastSpin);
if (!this.slotGame.isScroll()) {
this.slotGame.setFastSpin(isFastSpin);
}
@ -713,7 +747,14 @@ export class SlotScene extends Component {
}
private async normalStop(isReconnect: boolean = false) {
this.slotBar.setBalance(this.spinData.Balance);
if (this.isErr2) {
this.isErr2 = false;
this.slotBar.setBalance(this.slotBar.getBalance());
} else {
this.slotBar.setBalance(this.spinData.Balance);
}
let winType = this.slotGame.checkWinType(this.spinData.AllScore);
await this.handleWinResult(winType, isReconnect, false, () => {
@ -777,6 +818,8 @@ export class SlotScene extends Component {
isReconnect: boolean = false
) {
this.gameState.isFirstFreeSpin = false;
this.gameState.isFeatureBuySpin = false;
this.gameState.isInFreeSpin = false;
this.slotBar.exitFreeSpin();
@ -875,10 +918,6 @@ export class SlotScene extends Component {
// delay = 1.2
// }
//小游戏内单次滚动结算中奖时触发一个礼花特效
if (isFreeSpin) {
this.slotBar.playSpin_lihua()
}
this.scheduleOnce(() => {
@ -933,7 +972,7 @@ export class SlotScene extends Component {
this.TipPanel.showTip(
title,
tip,
null,
callback,
null,
I18nManager.instance.t("AID_ERROR_OK_BUTTON"),
null,
@ -975,6 +1014,14 @@ export class SlotScene extends Component {
);
}
break;
case 5:
msg1 = I18nManager.instance.t('AID_ERROR_CONTENT_4');
msg2 = I18nManager.instance.t('AID_ERROR_CODE_4');
tip = `${msg1}\n${msg2}`;
if (!this.TipPanel.getHasTip()) {
this.TipPanel.showTip(title, tip, () => { window.close() }, () => { callback?.(); }, I18nManager.instance.t('AID_ERROR_QUIT_BUTTON'), I18nManager.instance.t('AID_ERROR_RETRY_BUTTON'), true);
}
break;
}
}
@ -985,9 +1032,10 @@ export class SlotScene extends Component {
null,
() => {
let fromUrl = getFromUrl();
if (fromUrl.length == 0) {
if (!fromUrl || fromUrl == "") {
window.close();
} else {
this.gray.active = true
window.location.replace(fromUrl);
}
},

View File

@ -30,6 +30,7 @@ export class Info {
receiveStopData: boolean = false;// 是否收到停止数据
speedDataComplete: boolean = false;// 速度数据是否完成
stopSpeedData: number[][] = null;// 停止时的速度数据
hasStopScrollWork: boolean = false;
state: ROLLER_STATE = ROLLER_STATE.STOP; // 当前状态
isFastSpin: boolean = false; // 是否快速旋转
isManualStop: boolean = false; // 是否手动停止
@ -47,6 +48,7 @@ export class Info {
this.speed = 0;
this.stopSpeedData = null;
this.isManualStop = false;
this.hasStopScrollWork = false;
this.speedDataComplete = false;
}
}
@ -68,7 +70,7 @@ export abstract class BaseRoller extends Component {
iconFactory: IconFactory = null;
// 保护属性,子类可访问
protected _rollerId: number = 0;
_rollerId: number = 0;
protected _view: Node = null;
protected _content: Node = null;
protected _info: Info = new Info();
@ -389,15 +391,15 @@ export abstract class BaseRoller extends Component {
*
* @param data
*/
stopScroll(data: number[], stopSpeedData: number[][]) {
this._stopData = data;
this._info.receiveStopData = true;
// stopScroll(data: number[], stopSpeedData: number[][]) {
// this._stopData = data;
// this._info.receiveStopData = true;
// 如果速度数据已完成,执行停止逻辑
if (this._info.speedDataComplete) {
this.stopScrollWork(stopSpeedData);
}
}
// // 如果速度数据已完成,执行停止逻辑
// if (this._info.speedDataComplete) {
// this.stopScrollWork(stopSpeedData);
// }
// }
/**
@ -606,7 +608,7 @@ export abstract class BaseRoller extends Component {
return null; // 返回安全的默认值
}
return this._content.getComponent(UITransform).convertToWorldSpaceAR(icon.position);
return icon.getWorldPosition();
}
/**

View File

@ -389,6 +389,11 @@ export class BigWinUI extends Component {
this.unscheduleAllCallbacks();
this.currentScore = this.winScore;
this.updateScoreLabel();
this.bigWinAudio.stop();
this.bigWinAudio.clip = this.bigWinAudioClips[3];
if (!AudioManager.instance.getMuted()) {
this.bigWinAudio.play();
}
this.endAni();
return;
}

View File

@ -26,6 +26,7 @@ export class FreeSpinAdd extends Component {
let titleNode = this.freeSpinAddSpine.node.getChildByName('TitleNode');
this.freeSpinEnterTitleSp = titleNode.getChildByName('SpriteFREESPINWON').getComponent(Sprite);
this.freeSpinAddUI.on(Node.EventType.TOUCH_START, this.onTouch, this);
this.freeCount = freeCount;
this.freeCountLabel.string = `+ ${freeCount}`;
@ -34,6 +35,14 @@ export class FreeSpinAdd extends Component {
this.closeCallBack = closeCallBack;
}
async onTouch() {
if (!this.freeSpinAddUI) return; // 添加节点存在检查
this.onClose()
}
playAnimation() {
this.freeSpinAddSpine.clearTracks();
this.freeSpinAddSpine.setAnimation(0, 'animation', true);

View File

@ -1,4 +1,4 @@
import { _decorator, Button, Color, Component, EventHandler, EventMouse, instantiate, isValid, JsonAsset, Label, math, Node, Prefab, ScrollView, sp, tween, UITransform, Vec3 } from 'cc';
import { _decorator, Button, Color, Component, EventHandler, EventMouse, instantiate, isValid, JsonAsset, Label, math, Node, Prefab, ScrollView, sp, tween, UIOpacity, UITransform, Vec3 } from 'cc';
import { getCsymbol, getHistory, getHistoryDetails, getLanguage } from '../../../Loading/scripts/comm';
import { fixNum, getTimezoneOffsetString, getTranslate, hideAllChildren, hideToBottom, isBrahmic, showAllChildren, updateLang } from './Tools';
const { ccclass, property } = _decorator;
@ -44,6 +44,7 @@ export class History extends Component {
holdOn = false
finish = false
clickLock = false
sel_idx: HISTORY_TYPE = HISTORY_TYPE.TODAY
@ -397,10 +398,14 @@ export class History extends Component {
async clickItem(event: Event, roundId: string) {
if (this.clickLock) {
return
}
this.clickLock = true
// console.log("clickItem, roundId = ", roundId)
const history_detail = instantiate(this.history_detail)
history_detail.getComponent(UIOpacity).opacity = 0
this.node_detail.addChild(history_detail)
let data = await getHistoryDetails({
GameId: "rp_11001",
@ -411,12 +416,16 @@ export class History extends Component {
const self = this
history_detail.position = new Vec3(1080, 0)
history_detail.getComponent(UIOpacity).opacity = 255
tween(history_detail).to(0.2, { position: new Vec3(0, 0) })
.call(() => {
self.scheduleOnce(() => { comp.entryFinish() })
})
.start()
this.scheduleOnce(() => {
this.clickLock = false
}, 1)
}

View File

@ -197,7 +197,7 @@ export class HistoryDetail extends Component {
node.active = true
let startVec = new Vec3(0, 3000)
let endVec = new Vec3(0, 800)
let endVec = new Vec3(0, this.list_detail.node.getPosition().y)
node.position = startVec
tween(node).to(0.2, { position: endVec }).call(() => {
@ -236,7 +236,7 @@ export class HistoryDetail extends Component {
info.getChildByName("Label_Bet").getComponent(Label).string = getTranslate(this.dict, "Bet") + `(${currencySymbol})`;
info.getChildByName("txt_profit").getComponent(Label).string = fixNum(pan.WinInfo ? pan.WinInfo.Score : 0);
info.getChildByName("txt_profit").getComponent(Label).string = fixNum(pan.Profit);
info.getChildByName("Label_Profit").getComponent(Label).string = getTranslate(this.dict, "Profit") + `(${currencySymbol})`;
info.getChildByName("txt_balance_before").getComponent(Label).string = fixNum(pan.Balance - pan.AllScore + pan.Bet) + "➡️";
@ -432,7 +432,7 @@ export class HistoryDetail extends Component {
}
// scatter 数量统计 node_scatter
if (pan.Symbol.ScNum >= 4 && pan.Free.GamesTimes >= 10) {
if (pan.Symbol.ScNum >= 4 && (pan.Free && pan.Free.GamesTimes >= 10)) {
const node_scatter = content.getChildByName("node_scatter")
const txt_scatter_num = node_scatter.getChildByName("txt_scatter_num").getComponent(Label)
txt_scatter_num.string = "x " + pan.Symbol.ScNum
@ -559,6 +559,7 @@ export class HistoryDetail extends Component {
if (idx == this.data.panDetails.length - 1) {
// console.log("已全部生成完")
this.hideLoading()
this.item_detail.removeFromParent()
this.scrollControl.jumpToPage(0)
}
@ -591,6 +592,7 @@ export class HistoryDetail extends Component {
this.showLoading()
await this.loadDetailList()
this.scrollControl.setTouchEnable(true)
}
removeReturnBtn() {
@ -646,15 +648,16 @@ export class HistoryDetail extends Component {
showLoading() {
this.loading.active = true
let sk = this.loading.getComponent(sp.Skeleton)
sk.paused = false
sk.loop = true
// sk.paused = false
// sk.loop = true
sk.setAnimation(0, 'loadingLoop')
}
hideLoading() {
let sk = this.loading.getComponent(sp.Skeleton)
sk.paused = true
sk.loop = false
// sk.paused = true
// sk.loop = false
sk.clearAnimations()
this.loading.active = false
}

View File

@ -2,6 +2,7 @@ import { _decorator, Component, Node, Prefab, sp, Sprite, UITransform, Vec3, v3,
import { ICON_STATE, ICON_WIDTH } from './Define';
import { GameDataManager } from 'db://assets/Loading/scripts/manager/GameDataManager';
import { NodePoolManager } from 'db://assets/Loading/scripts/manager/NodePoolManager';
import { RollerManager } from './RollerManager';
const { ccclass, property } = _decorator;
@ -302,6 +303,18 @@ export class Icon extends Component {
transform.width = ICON_WIDTH;
}
// let rollerManager = this.node.parent.parent.parent.parent.parent.parent.getComponent(RollerManager)
// let scatterLayer = rollerManager.node.parent.getChildByName('scatterLayer')
// if (this._iconId == 1) {
// let worldPos = rollerManager.getIconWorldPosition(pos);
// let localPos = scatterLayer.getComponent(UITransform).convertToNodeSpaceAR(worldPos);
// this.node.parent = scatterLayer;
// this.node.setPosition(localPos);
// }
// if (this._iconId == 1) {
// this.node.parent = scatterLayer;
// this.node.setPosition(this.getWorldPosition());
// }
// 重置状态
@ -443,6 +456,11 @@ export class Icon extends Component {
if (!this.iconSpine || !this.iconSpine.node) return;
this.iconSpine.node.active = true;
if (this._isWildOrScatter) {
this.iconSpine.timeScale = 1
this.iconSpine.clearTracks()
this.iconSpine.setAnimation(0, `${this.lHeight}_1`, true);
}
this._normalSpriteNode && (this._normalSpriteNode.active = false);
// 使用计时器回调而不是匿名函数,减少闭包
@ -457,10 +475,12 @@ export class Icon extends Component {
private playSpawnAnimation() {
if (!this.iconSpine) return;
if (this._isWildOrScatter) {
this.iconSpine.timeScale = 1
this.iconSpine.setAnimation(0, `${this.lHeight}_1`, true);
} else if (this._isQKJ) {
// if (this._isWildOrScatter) {
// this.iconSpine.timeScale = 1
// this.iconSpine.clearTracks()
// this.iconSpine.setAnimation(0, `${this.lHeight}_1`, true);
// } else
if (this._isQKJ) {
this.iconSpine.setAnimation(0, "animation", false);
} else {
this.iconSpine.setAnimation(0, "tan", false);

View File

@ -1,6 +1,7 @@
import { _decorator, Component, EventMouse, JsonAsset, Layout, math, Node, ScrollView, UITransform } from 'cc';
import { _decorator, Component, EventMouse, JsonAsset, Layout, math, Node, ScrollView, UITransform, Widget } from 'cc';
import { hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools';
import { getLanguage } from 'db://assets/Loading/scripts/comm';
import { NodePoolManager } from 'db://assets/Loading/scripts/manager/NodePoolManager';
const { ccclass, property } = _decorator;
@ccclass('Paytable')
@ -18,6 +19,7 @@ export class Paytable extends Component {
this.dict = this.langJson.json[getLanguage()] ?? this.langJson.json["en"];
this.scrollView = this.node.getChildByName("ScrollView").getComponent(ScrollView)
this.scrollView.node.getChildByName('view').getComponent(Widget).updateAlignment()
this.scrollView.node.on('scrolling', this.onScrolling, this);
this.node.on(Node.EventType.MOUSE_WHEEL, this.onMouseWheel, this);
@ -43,7 +45,7 @@ export class Paytable extends Component {
}
clickClosePaytable() {
const destroyFunc = () => { this.node.destroy() }
const destroyFunc = () => { NodePoolManager.instance.putNodeToPool('paytable', this.node) }
hideToBottom(this.node, destroyFunc)
}

View File

@ -226,6 +226,42 @@ export class Roller extends BaseRoller {
});
}
stopScroll(panData: number[], stopSpeedDataExpect?: number[][]) {
this._stopData = panData;
let stopSpeedData = [];
if (stopSpeedDataExpect) {
stopSpeedData = stopSpeedDataExpect;
} else {
let rollerSpeed = this.row * this.iconHeight / 0.1 * 175;
stopSpeedData = this._info.isFastSpin ? [[0, rollerSpeed]] : [[0.4, 5500]];
}
this._info.receiveStopData = true;
if (this._info.speedDataComplete) {
this.stopScrollWork(stopSpeedData);
}
}
getNodeMsgFromPos(pos: number): { node: Node, start: number, height: number } | null {
let iconNode = this.getIconNode(pos);
if (!iconNode) return null;
let start = iconNode.getComponent(Icon).startPos;
let height = iconNode.getComponent(Icon).lHeight;
return { node: iconNode, start: start, height: height };
}
stopScrollWork(stopSpeedData: number[][]) {
this._info.hasStopScrollWork = true;
this.changeState(ROLLER_STATE.DECELERATE);
this._info.stopSpeedData = stopSpeedData;
this.tweenSpeed(this._info.stopSpeedData, () => {
this.changeState(ROLLER_STATE.LAST_PAGE_CREATE);
});
}
/**
*
* @param data

Some files were not shown because too many files have changed in this diff Show More