Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f113618abe | |||
| a3872e1a18 | |||
| d2d2540de0 | |||
| 97b836b9df | |||
| 1f7dfcfffa | |||
| d099caf374 | |||
| deaaf21e3c | |||
| 10562f980c | |||
| ef4560fe8c | |||
| c62d2a1522 | |||
| 09f7990e6d | |||
| 897f305ae3 | |||
| d6d9db5f65 | |||
| 51d05d5209 | |||
| d5719f29f5 | |||
| 05c98897e8 | |||
| 548307cc79 | |||
| 58dc911529 | |||
| d9d6a9bbe4 | |||
| 90d873c4cd | |||
| c035ac8c54 | |||
| 08bcd8faf1 | |||
| 7915edd14c | |||
| 2a3afc71a4 | |||
| e963a68bb2 | |||
| d25e165b55 |
@ -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'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
9
assets/Game/fonts/font.meta
Normal file
9
assets/Game/fonts/font.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "1.2.0",
|
||||
"importer": "directory",
|
||||
"imported": true,
|
||||
"uuid": "734202fa-7b80-48b5-9ed4-07c715826c06",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
BIN
assets/Game/fonts/font/AvenirNextWorldDemi.ttf
Normal file
BIN
assets/Game/fonts/font/AvenirNextWorldDemi.ttf
Normal file
Binary file not shown.
@ -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": {}
|
||||
BIN
assets/Game/fonts/font/AvenirNextWorldMedium.ttf
Normal file
BIN
assets/Game/fonts/font/AvenirNextWorldMedium.ttf
Normal file
Binary file not shown.
@ -2,10 +2,10 @@
|
||||
"ver": "1.0.1",
|
||||
"importer": "ttf-font",
|
||||
"imported": true,
|
||||
"uuid": "69fbd01d-29d4-4356-b163-4a703a7d45e4",
|
||||
"uuid": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
|
||||
"files": [
|
||||
".json",
|
||||
"FranklinGothicDemiCond.ttf"
|
||||
"AvenirNextWorldMedium.ttf"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.1",
|
||||
"importer": "ttf-font",
|
||||
"imported": true,
|
||||
"uuid": "67d33629-4ef1-4a23-9167-8543375dadb0",
|
||||
"uuid": "704ad71c-5bed-458d-b306-9fc5328576b1",
|
||||
"files": [
|
||||
".json",
|
||||
"Pyidaungsu_Bold.ttf"
|
||||
@ -2,7 +2,7 @@
|
||||
"ver": "1.0.1",
|
||||
"importer": "ttf-font",
|
||||
"imported": true,
|
||||
"uuid": "22db0ca4-1712-4916-a282-b42719196c93",
|
||||
"uuid": "dfdc09d9-7107-4534-905c-904db5297c61",
|
||||
"files": [
|
||||
".json",
|
||||
"Pyidaungsu_Regular.ttf"
|
||||
BIN
assets/Game/fonts/font/Roboto_Bold.ttf
Normal file
BIN
assets/Game/fonts/font/Roboto_Bold.ttf
Normal file
Binary file not shown.
@ -2,10 +2,10 @@
|
||||
"ver": "1.0.1",
|
||||
"importer": "ttf-font",
|
||||
"imported": true,
|
||||
"uuid": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"uuid": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"files": [
|
||||
".json",
|
||||
"Roboto Bold.ttf"
|
||||
"Roboto_Bold.ttf"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
BIN
assets/Game/fonts/font/Roboto_Regular.ttf
Normal file
BIN
assets/Game/fonts/font/Roboto_Regular.ttf
Normal file
Binary file not shown.
@ -2,10 +2,10 @@
|
||||
"ver": "1.0.1",
|
||||
"importer": "ttf-font",
|
||||
"imported": true,
|
||||
"uuid": "1e8c3f52-ef88-4a93-a301-ed3c1982c5d4",
|
||||
"uuid": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
|
||||
"files": [
|
||||
".json",
|
||||
"Roboto Regular.ttf"
|
||||
"Roboto_Regular.ttf"
|
||||
],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
@ -317,7 +317,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": -270,
|
||||
"y": -266,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -858,8 +858,8 @@
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 349,
|
||||
"y": 0,
|
||||
"x": 334,
|
||||
"y": 3,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1218,7 +1218,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 200,
|
||||
"y": 197,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1258,8 +1258,8 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 811.1579999999999,
|
||||
"height": 58
|
||||
"width": 244.78125,
|
||||
"height": 88.2
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -1300,11 +1300,11 @@
|
||||
"_actualFontSize": 56,
|
||||
"_fontSize": 56,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 58,
|
||||
"_overflow": 2,
|
||||
"_enableWrapText": true,
|
||||
"_lineHeight": 70,
|
||||
"_overflow": 0,
|
||||
"_enableWrapText": false,
|
||||
"_font": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_isSystemFontUsed": false,
|
||||
@ -1376,27 +1376,27 @@
|
||||
},
|
||||
"isBold": true,
|
||||
"fontOther": {
|
||||
"__uuid__": "1e8c3f52-ef88-4a93-a301-ed3c1982c5d4",
|
||||
"__uuid__": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontOtherBold": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThVi": {
|
||||
"__uuid__": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
|
||||
"__uuid__": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThViBold": {
|
||||
"__uuid__": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
|
||||
"__uuid__": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMy": {
|
||||
"__uuid__": "22db0ca4-1712-4916-a282-b42719196c93",
|
||||
"__uuid__": "dfdc09d9-7107-4534-905c-904db5297c61",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMyBold": {
|
||||
"__uuid__": "67d33629-4ef1-4a23-9167-8543375dadb0",
|
||||
"__uuid__": "704ad71c-5bed-458d-b306-9fc5328576b1",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_id": ""
|
||||
@ -1448,7 +1448,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": -152,
|
||||
"y": -153,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1488,8 +1488,8 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 674.271,
|
||||
"height": 61.084999999999994
|
||||
"width": 286.9453125,
|
||||
"height": 63
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -1527,14 +1527,14 @@
|
||||
"_string": "Start Auto Spin",
|
||||
"_horizontalAlign": 1,
|
||||
"_verticalAlign": 1,
|
||||
"_actualFontSize": 43,
|
||||
"_actualFontSize": 42,
|
||||
"_fontSize": 42,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 46,
|
||||
"_overflow": 2,
|
||||
"_lineHeight": 50,
|
||||
"_overflow": 0,
|
||||
"_enableWrapText": true,
|
||||
"_font": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_isSystemFontUsed": false,
|
||||
@ -1606,27 +1606,27 @@
|
||||
},
|
||||
"isBold": true,
|
||||
"fontOther": {
|
||||
"__uuid__": "1e8c3f52-ef88-4a93-a301-ed3c1982c5d4",
|
||||
"__uuid__": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontOtherBold": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThVi": {
|
||||
"__uuid__": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
|
||||
"__uuid__": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThViBold": {
|
||||
"__uuid__": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
|
||||
"__uuid__": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMy": {
|
||||
"__uuid__": "22db0ca4-1712-4916-a282-b42719196c93",
|
||||
"__uuid__": "dfdc09d9-7107-4534-905c-904db5297c61",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMyBold": {
|
||||
"__uuid__": "67d33629-4ef1-4a23-9167-8543375dadb0",
|
||||
"__uuid__": "704ad71c-5bed-458d-b306-9fc5328576b1",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_id": ""
|
||||
@ -1677,8 +1677,8 @@
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 366,
|
||||
"y": 79,
|
||||
"x": 334,
|
||||
"y": 75,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1718,8 +1718,8 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 320,
|
||||
"height": 32.76
|
||||
"width": 256.2294921875,
|
||||
"height": 44.1
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -1754,17 +1754,17 @@
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_string": "Number of Rounds",
|
||||
"_string": "Number of Auto Spins",
|
||||
"_horizontalAlign": 1,
|
||||
"_verticalAlign": 1,
|
||||
"_actualFontSize": 29,
|
||||
"_fontSize": 28,
|
||||
"_actualFontSize": 26,
|
||||
"_fontSize": 26,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 26,
|
||||
"_overflow": 2,
|
||||
"_lineHeight": 35,
|
||||
"_overflow": 0,
|
||||
"_enableWrapText": true,
|
||||
"_font": {
|
||||
"__uuid__": "1e8c3f52-ef88-4a93-a301-ed3c1982c5d4",
|
||||
"__uuid__": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_isSystemFontUsed": false,
|
||||
@ -1836,27 +1836,27 @@
|
||||
},
|
||||
"isBold": false,
|
||||
"fontOther": {
|
||||
"__uuid__": "1e8c3f52-ef88-4a93-a301-ed3c1982c5d4",
|
||||
"__uuid__": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontOtherBold": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThVi": {
|
||||
"__uuid__": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
|
||||
"__uuid__": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThViBold": {
|
||||
"__uuid__": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
|
||||
"__uuid__": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMy": {
|
||||
"__uuid__": "22db0ca4-1712-4916-a282-b42719196c93",
|
||||
"__uuid__": "dfdc09d9-7107-4534-905c-904db5297c61",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMyBold": {
|
||||
"__uuid__": "67d33629-4ef1-4a23-9167-8543375dadb0",
|
||||
"__uuid__": "704ad71c-5bed-458d-b306-9fc5328576b1",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_id": ""
|
||||
@ -1901,8 +1901,8 @@
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 348,
|
||||
"y": 3.988,
|
||||
"x": 335,
|
||||
"y": 5,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1942,8 +1942,8 @@
|
||||
},
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 92.01,
|
||||
"height": 60
|
||||
"width": 100.107421875,
|
||||
"height": 75.6
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -1987,17 +1987,14 @@
|
||||
"_lineHeight": 60,
|
||||
"_overflow": 0,
|
||||
"_enableWrapText": true,
|
||||
"_font": {
|
||||
"__uuid__": "69fbd01d-29d4-4356-b163-4a703a7d45e4",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_isSystemFontUsed": false,
|
||||
"_font": null,
|
||||
"_isSystemFontUsed": true,
|
||||
"_spacingX": 0,
|
||||
"_isItalic": false,
|
||||
"_isBold": false,
|
||||
"_isBold": true,
|
||||
"_isUnderline": false,
|
||||
"_underlineHeight": 2,
|
||||
"_cacheMode": 2,
|
||||
"_cacheMode": 0,
|
||||
"_enableOutline": false,
|
||||
"_outlineColor": {
|
||||
"__type__": "cc.Color",
|
||||
@ -2073,8 +2070,8 @@
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -97,
|
||||
"y": 7,
|
||||
"x": -119,
|
||||
"y": 3,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
63
assets/Game/scripts/AntiSleepManager.ts
Normal file
63
assets/Game/scripts/AntiSleepManager.ts
Normal 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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
9
assets/Game/scripts/AntiSleepManager.ts.meta
Normal file
9
assets/Game/scripts/AntiSleepManager.ts.meta
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"ver": "4.0.24",
|
||||
"importer": "typescript",
|
||||
"imported": true,
|
||||
"uuid": "c3c4a468-972c-4ee3-8841-9b917cf5c8b1",
|
||||
"files": [],
|
||||
"subMetas": {},
|
||||
"userData": {}
|
||||
}
|
||||
@ -29,7 +29,9 @@ import { AutoSpinPanel } from "./game/AutoSpinPanel";
|
||||
import { NodePoolManager } from "../../Loading/scripts/manager/NodePoolManager";
|
||||
import { webView } from "./game/WebView";
|
||||
import {
|
||||
callGameBalanceApi,
|
||||
cash2gold,
|
||||
getGameId,
|
||||
getHistoryUrl,
|
||||
getOddsUrl,
|
||||
getSupportUrl,
|
||||
@ -52,8 +54,6 @@ export class SlotBar extends Component {
|
||||
@property({ type: Prefab })
|
||||
private autoSpinPanel: Prefab = null;
|
||||
|
||||
@property(Node)
|
||||
private tipSmall: Node = null;
|
||||
@property(SlotGame)
|
||||
private slotGame: SlotGame = null;
|
||||
|
||||
@ -66,6 +66,11 @@ 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;
|
||||
|
||||
@ -115,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;
|
||||
@ -168,10 +173,6 @@ export class SlotBar extends Component {
|
||||
});
|
||||
}
|
||||
|
||||
protected onDestroy(): void {
|
||||
this.node.targetOff(this);
|
||||
}
|
||||
|
||||
// spinBtn有两个动画,idle状态循环旋转一圈,spin状态速度加快
|
||||
|
||||
setGameInfo(gameInfo: any) {
|
||||
@ -270,19 +271,14 @@ export class SlotBar extends Component {
|
||||
});
|
||||
}
|
||||
|
||||
allowClickManualStop(bl: boolean) {
|
||||
this.hasClickSpin = bl;
|
||||
this.manualStopNode.active = bl
|
||||
}
|
||||
|
||||
notAllowClickManualStop(bl: boolean) {
|
||||
this.hasClickManualStop = bl;
|
||||
}
|
||||
|
||||
onBtnSpin() {
|
||||
// 第一次点击 旋转
|
||||
if (!this.hasClickSpin && !this.hasClickManualStop) {
|
||||
AudioManager.instance.playSFX("Spin_Button_Click");
|
||||
this.hasClickSpin = true;
|
||||
this.manualStopNode.active = true
|
||||
this.node.emit(SLOT_BAR_EVENT.ON_SPIN_CLICK);
|
||||
this.spinAni.startSpin();
|
||||
|
||||
@ -301,8 +297,8 @@ export class SlotBar extends Component {
|
||||
// 第一次点击 旋转
|
||||
if (!this.hasClickSpin && !this.hasClickManualStop) {
|
||||
// AudioManager.instance.playSFX('Spin_Button_Click');
|
||||
|
||||
|
||||
this.hasClickSpin = true;
|
||||
this.manualStopNode.active = true
|
||||
|
||||
this.setBtnEnable(this.subBtn, false);
|
||||
this.setBtnEnable(this.addBtn, false);
|
||||
@ -319,7 +315,8 @@ export class SlotBar extends Component {
|
||||
onBtnTestSpin(event, args) {
|
||||
// 第一次点击 旋转
|
||||
if (!this.hasClickSpin && !this.hasClickManualStop) {
|
||||
// this.hasClickSpin = true;
|
||||
this.hasClickSpin = true;
|
||||
this.manualStopNode.active = true
|
||||
this.node.emit(SLOT_BAR_EVENT.ON_TEST_SPIN_CLICK, args);
|
||||
|
||||
this.setBtnEnable(this.subBtn, false);
|
||||
@ -340,50 +337,51 @@ export class SlotBar extends Component {
|
||||
}
|
||||
|
||||
manualStop() {
|
||||
this.notAllowClickManualStop(true)
|
||||
this.hasClickManualStop = true;
|
||||
this.spinAni.stopSpin();
|
||||
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;
|
||||
@ -425,55 +423,102 @@ export class SlotBar extends Component {
|
||||
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, openTurbo?: boolean) {
|
||||
// 清理之前的计时器和动画
|
||||
this.clearTipTimers();
|
||||
|
||||
// 设置提示内容
|
||||
let tipNode = null
|
||||
if (openTurbo != null) {
|
||||
this.tipSmall.getChildByPath("layout/turbo").active = true
|
||||
this.tipSmall.getChildByPath("layout/turbo").getComponent(Sprite).spriteFrame = this.turboFrames[openTurbo ? 0 : 1]
|
||||
} else {
|
||||
this.tipSmall.getChildByPath("layout/turbo").active = false
|
||||
tipNode = this.tipSmall_turbo
|
||||
this.tipSmall_bet.active = false
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
this.tipSmall.getChildByPath("layout/Label").getComponent(Label).string = str;
|
||||
let label = this.tipSmall.getChildByPath("layout/Label").getComponent(Label);
|
||||
label.updateRenderData(true);
|
||||
let tipWidth = this.tipSmall
|
||||
.getChildByPath("layout/Label")
|
||||
.getComponent(UITransform).width;
|
||||
let frame = this.tipSmall.getChildByName("Frame_Assets");
|
||||
frame.getComponent(UITransform).setContentSize(tipWidth + 100, 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();
|
||||
@ -614,7 +659,7 @@ export class SlotBar extends Component {
|
||||
this.setBtnVisible(this.spinBtn, true);
|
||||
this.setBtnVisible(this.stopAutoBtn, false);
|
||||
this.setBtnEnable(this.spinBtn, false);
|
||||
this.slotGame.showFeatureBuy(false)
|
||||
this.slotGame.showFeatureBuy(this.getBet() * this.gameInfo.BuyMul > this.gameInfo.MaxBuyBet)
|
||||
|
||||
}
|
||||
|
||||
@ -629,9 +674,9 @@ export class SlotBar extends Component {
|
||||
}
|
||||
|
||||
resetAllState() {
|
||||
this.allowClickManualStop(false)
|
||||
this.notAllowClickManualStop(false)
|
||||
|
||||
this.hasClickSpin = false;
|
||||
this.manualStopNode.active = false
|
||||
this.hasClickManualStop = false;
|
||||
|
||||
this.isAuto = false;
|
||||
this.setBtnVisible(this.spinBtn, true);
|
||||
@ -761,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);
|
||||
@ -789,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)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -205,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)
|
||||
@ -875,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) {
|
||||
|
||||
@ -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";
|
||||
@ -82,12 +82,17 @@ export class SlotScene extends Component {
|
||||
@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[] = [];
|
||||
|
||||
@ -125,6 +130,7 @@ export class SlotScene extends Component {
|
||||
// this.FreeSpinEnter.show(8)
|
||||
// this.FreeSpinAdd.show(5)
|
||||
// this.BigWinUI.show(800000, WIN_TYPE.SUPER_MEGA_WIN, 10000)
|
||||
|
||||
}
|
||||
|
||||
private async init() {
|
||||
@ -283,11 +289,10 @@ export class SlotScene extends Component {
|
||||
isFreeSpin: boolean = false,
|
||||
isFeatureBuy: boolean = false
|
||||
) {
|
||||
try {
|
||||
|
||||
this.gameState.isOnReconnect = false;
|
||||
this.isReceiveMsg = false;
|
||||
|
||||
this.isErr = false
|
||||
this.isErr = false;
|
||||
this.slotGame.spin(this.gameState.isInFreeSpin);
|
||||
this.gameState.isOneRoundEnd = false;
|
||||
this.slotGame.changeBg(this.gameState.isInFreeSpin);
|
||||
@ -296,6 +301,18 @@ export class SlotScene extends Component {
|
||||
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 {
|
||||
// 如果有frb就不会扣除金额
|
||||
let frb = GameDataManager.instance.frb;
|
||||
if (frb && frb.Ongoing != null) {
|
||||
@ -303,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
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -323,8 +345,7 @@ export class SlotScene extends Component {
|
||||
}
|
||||
if (!this.gameState.isDebug) {
|
||||
this.spinInfo = await callGameApi("spin", msg);
|
||||
this.slotBar.allowClickManualStop(true)
|
||||
this.slotBar.notAllowClickManualStop(false)
|
||||
|
||||
if (this.spinInfo.Frb.Ongoing) {
|
||||
if (!isFreeSpin) {
|
||||
let count = this.spinInfo.Frb.Ongoing.Frn;
|
||||
@ -360,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);
|
||||
@ -386,18 +407,19 @@ export class SlotScene extends Component {
|
||||
if (!this.isReceiveMsg) return;
|
||||
|
||||
// 免费游戏不能手动停止
|
||||
// if (this.gameState.isInFreeSpin) {
|
||||
// return;
|
||||
// }
|
||||
if (this.gameState.isInFreeSpin) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 滚轮没有开始旋转的时候不能停止
|
||||
if (!this.slotGame.isScroll()) return;
|
||||
|
||||
this.slotBar.manualStop();
|
||||
this.slotGame.manualStop();
|
||||
|
||||
}
|
||||
|
||||
private handleErrSpin() {
|
||||
private handleErrSpin(isErr2 = false) {
|
||||
this.spinInfo = this.lastSpinInfo;
|
||||
this.spinData = this.spinInfo.Data;
|
||||
this.slotGame.setRollerIconRule(
|
||||
@ -406,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() {
|
||||
@ -724,7 +747,14 @@ export class SlotScene extends Component {
|
||||
}
|
||||
|
||||
private async normalStop(isReconnect: boolean = false) {
|
||||
|
||||
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, () => {
|
||||
@ -942,7 +972,7 @@ export class SlotScene extends Component {
|
||||
this.TipPanel.showTip(
|
||||
title,
|
||||
tip,
|
||||
null,
|
||||
callback,
|
||||
null,
|
||||
I18nManager.instance.t("AID_ERROR_OK_BUTTON"),
|
||||
null,
|
||||
@ -1002,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);
|
||||
}
|
||||
},
|
||||
|
||||
@ -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;
|
||||
@ -405,6 +405,7 @@ export class History extends Component {
|
||||
// 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",
|
||||
@ -415,6 +416,8 @@ 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() })
|
||||
|
||||
@ -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(() => {
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -647,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
|
||||
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
|
||||
@ -267,12 +267,18 @@ export class Roller extends BaseRoller {
|
||||
* @param data 停止时的图标数据
|
||||
*/
|
||||
async manualStopScroll(data: number[]) {
|
||||
this.resetInfo();
|
||||
if (this._info.isManualStop ||
|
||||
this._info.state === ROLLER_STATE.STOP) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
this._info.resetLxInfo();
|
||||
this._stopData = data;
|
||||
this._info.isManualStop = true;
|
||||
Tween.stopAllByTarget(this._info.speedNode);
|
||||
|
||||
// 回收所有动态图标
|
||||
// 直接回收所有动态图标
|
||||
while (this._info.icons.length > 0) {
|
||||
let icon = this._info.icons.pop();
|
||||
this.iconFactory.recycleIcon(icon);
|
||||
@ -287,8 +293,14 @@ export class Roller extends BaseRoller {
|
||||
this.iconFactory.recycleIcon(icon);
|
||||
}
|
||||
}
|
||||
this._allIcons.clear();
|
||||
this._posToIconKey.clear();
|
||||
|
||||
this.createInitIcons(data);
|
||||
// 为所有创建的图标播放动画
|
||||
for (let icon of this._allIcons.values()) {
|
||||
icon.getComponent(Icon).playSpawnAni();
|
||||
}
|
||||
this.changeState(ROLLER_STATE.STOP);
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { _decorator, Component, EventMouse, JsonAsset, Label, Layout, math, Node, ScrollView, UITransform } from 'cc';
|
||||
import { _decorator, Component, EventMouse, JsonAsset, Label, Layout, math, Node, ScrollView, UITransform, Widget } from 'cc';
|
||||
import { getAllRichTexts, hideToBottom, isBrahmic, updateLang, wrapTextBySpace } from './Tools';
|
||||
import { getCsymbol, getLanguage } from 'db://assets/Loading/scripts/comm';
|
||||
import { NodePoolManager } from 'db://assets/Loading/scripts/manager/NodePoolManager';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('Rules')
|
||||
@ -16,7 +17,7 @@ export class Rules extends Component {
|
||||
protected onLoad(): void {
|
||||
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);
|
||||
}
|
||||
@ -51,7 +52,7 @@ export class Rules extends Component {
|
||||
|
||||
|
||||
clickCloseRules() {
|
||||
const destroyFunc = () => { this.node.destroy() }
|
||||
const destroyFunc = () => { NodePoolManager.instance.putNodeToPool('rules', this.node) }
|
||||
hideToBottom(this.node, destroyFunc)
|
||||
}
|
||||
|
||||
|
||||
@ -379,7 +379,7 @@ export function showFromBottom(node: Node) {
|
||||
height = 1920;
|
||||
}
|
||||
|
||||
node.position = new Vec3(0, -height / 2)
|
||||
node.position = new Vec3(0, -height)
|
||||
tween(node).to(0.15, { position: new Vec3() }).start()
|
||||
}
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
"_active": true,
|
||||
"_components": [],
|
||||
"_prefab": {
|
||||
"__id__": 88
|
||||
"__id__": 91
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
@ -54,7 +54,7 @@
|
||||
},
|
||||
"autoReleaseAssets": false,
|
||||
"_globals": {
|
||||
"__id__": 89
|
||||
"__id__": 92
|
||||
},
|
||||
"_id": "6c29a3fe-b10e-44a5-98e3-55595b231767"
|
||||
},
|
||||
@ -77,14 +77,11 @@
|
||||
"__id__": 8
|
||||
},
|
||||
{
|
||||
"__id__": 69
|
||||
"__id__": 70
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 84
|
||||
},
|
||||
{
|
||||
"__id__": 85
|
||||
},
|
||||
@ -93,6 +90,15 @@
|
||||
},
|
||||
{
|
||||
"__id__": 87
|
||||
},
|
||||
{
|
||||
"__id__": 88
|
||||
},
|
||||
{
|
||||
"__id__": 89
|
||||
},
|
||||
{
|
||||
"__id__": 90
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -338,14 +344,11 @@
|
||||
"__id__": 9
|
||||
},
|
||||
{
|
||||
"__id__": 62
|
||||
"__id__": 63
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 65
|
||||
},
|
||||
{
|
||||
"__id__": 66
|
||||
},
|
||||
@ -354,6 +357,9 @@
|
||||
},
|
||||
{
|
||||
"__id__": 68
|
||||
},
|
||||
{
|
||||
"__id__": 69
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -426,16 +432,16 @@
|
||||
"__id__": 47
|
||||
},
|
||||
{
|
||||
"__id__": 57
|
||||
"__id__": 58
|
||||
}
|
||||
],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 60
|
||||
"__id__": 61
|
||||
},
|
||||
{
|
||||
"__id__": 61
|
||||
"__id__": 62
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -1575,7 +1581,7 @@
|
||||
"__prefab": null,
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 82.0556640625,
|
||||
"width": 60.921875,
|
||||
"height": 56.4
|
||||
},
|
||||
"_anchorPoint": {
|
||||
@ -1605,7 +1611,7 @@
|
||||
"b": 255,
|
||||
"a": 255
|
||||
},
|
||||
"_string": "50%",
|
||||
"_string": "0%",
|
||||
"_horizontalAlign": 1,
|
||||
"_verticalAlign": 1,
|
||||
"_actualFontSize": 38,
|
||||
@ -1671,8 +1677,8 @@
|
||||
"_prefab": null,
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": -4.008,
|
||||
"y": -555.67,
|
||||
"x": 0,
|
||||
"y": -485,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1710,8 +1716,8 @@
|
||||
"__prefab": null,
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1021.423828125,
|
||||
"height": 56.4
|
||||
"width": 1000,
|
||||
"height": 200
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -1746,11 +1752,11 @@
|
||||
"_actualFontSize": 36,
|
||||
"_fontSize": 36,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 40,
|
||||
"_overflow": 3,
|
||||
"_enableWrapText": true,
|
||||
"_lineHeight": 36,
|
||||
"_overflow": 2,
|
||||
"_enableWrapText": false,
|
||||
"_font": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_isSystemFontUsed": false,
|
||||
@ -1797,27 +1803,27 @@
|
||||
"__prefab": null,
|
||||
"isBold": true,
|
||||
"fontOther": {
|
||||
"__uuid__": "1e8c3f52-ef88-4a93-a301-ed3c1982c5d4",
|
||||
"__uuid__": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontOtherBold": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThVi": {
|
||||
"__uuid__": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
|
||||
"__uuid__": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThViBold": {
|
||||
"__uuid__": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
|
||||
"__uuid__": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMy": {
|
||||
"__uuid__": "22db0ca4-1712-4916-a282-b42719196c93",
|
||||
"__uuid__": "dfdc09d9-7107-4534-905c-904db5297c61",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMyBold": {
|
||||
"__uuid__": "67d33629-4ef1-4a23-9167-8543375dadb0",
|
||||
"__uuid__": "704ad71c-5bed-458d-b306-9fc5328576b1",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_id": "40ROcQDbZGnoCxA1DAS4sf"
|
||||
@ -1851,7 +1857,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": -525,
|
||||
"y": -524,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1905,7 +1911,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 6.263,
|
||||
"y": 7,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@ -1943,8 +1949,8 @@
|
||||
"__prefab": null,
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 313.4249267578125,
|
||||
"height": 56.7
|
||||
"width": 400,
|
||||
"height": 200
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -1980,10 +1986,10 @@
|
||||
"_fontSize": 45,
|
||||
"_fontFamily": "Arial",
|
||||
"_lineHeight": 45,
|
||||
"_overflow": 0,
|
||||
"_overflow": 2,
|
||||
"_enableWrapText": false,
|
||||
"_font": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_isSystemFontUsed": false,
|
||||
@ -2043,27 +2049,27 @@
|
||||
"__prefab": null,
|
||||
"isBold": true,
|
||||
"fontOther": {
|
||||
"__uuid__": "1e8c3f52-ef88-4a93-a301-ed3c1982c5d4",
|
||||
"__uuid__": "4b259f80-bc47-4cdc-a6d9-c69a67186770",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontOtherBold": {
|
||||
"__uuid__": "dee281aa-889b-4381-9619-2373b02ea7e1",
|
||||
"__uuid__": "c34c14ee-808f-4e93-80a2-ea58fb11b3d2",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThVi": {
|
||||
"__uuid__": "53564fbb-0c8f-48f6-9f1a-a9bdc54fd297",
|
||||
"__uuid__": "5e31c32e-aa54-4a32-b793-32a4dc06a811",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontThViBold": {
|
||||
"__uuid__": "922161d3-e56f-47de-b9ee-b1ffdb27939b",
|
||||
"__uuid__": "d9c1c5ff-ffc2-4cd4-a343-39bd8388746d",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMy": {
|
||||
"__uuid__": "22db0ca4-1712-4916-a282-b42719196c93",
|
||||
"__uuid__": "dfdc09d9-7107-4534-905c-904db5297c61",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"fontMyBold": {
|
||||
"__uuid__": "67d33629-4ef1-4a23-9167-8543375dadb0",
|
||||
"__uuid__": "704ad71c-5bed-458d-b306-9fc5328576b1",
|
||||
"__expectedType__": "cc.TTFFont"
|
||||
},
|
||||
"_id": "eceQ3zTtBFPIUHk4Vz0lKB"
|
||||
@ -2142,10 +2148,13 @@
|
||||
"clickEvents": [
|
||||
{
|
||||
"__id__": 56
|
||||
},
|
||||
{
|
||||
"__id__": 57
|
||||
}
|
||||
],
|
||||
"_interactable": true,
|
||||
"_transition": 2,
|
||||
"_transition": 0,
|
||||
"_normalColor": {
|
||||
"__type__": "cc.Color",
|
||||
"r": 214,
|
||||
@ -2207,6 +2216,16 @@
|
||||
"handler": "onStartBtnClick",
|
||||
"customEventData": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.ClickEvent",
|
||||
"target": {
|
||||
"__id__": 2
|
||||
},
|
||||
"component": "",
|
||||
"_componentId": "c3c4aRolyxO44hBm5F89cix",
|
||||
"handler": "clickStart",
|
||||
"customEventData": ""
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
"_name": "Logo",
|
||||
@ -2219,10 +2238,10 @@
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 58
|
||||
"__id__": 59
|
||||
},
|
||||
{
|
||||
"__id__": 59
|
||||
"__id__": 60
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -2261,7 +2280,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 57
|
||||
"__id__": 58
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2283,7 +2302,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 57
|
||||
"__id__": 58
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2329,7 +2348,7 @@
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 2560
|
||||
"height": 1920
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -2380,10 +2399,10 @@
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 63
|
||||
"__id__": 64
|
||||
},
|
||||
{
|
||||
"__id__": 64
|
||||
"__id__": 65
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -2422,14 +2441,14 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 62
|
||||
"__id__": 63
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 2560
|
||||
"height": 1920
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -2444,7 +2463,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 62
|
||||
"__id__": 63
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2481,7 +2500,7 @@
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 2560
|
||||
"height": 1920
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@ -2490,36 +2509,6 @@
|
||||
},
|
||||
"_id": "b39r/AfidO+pudz3SN7pqo"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Widget",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 8
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_alignFlags": 45,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": -320,
|
||||
"_bottom": -320,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": false,
|
||||
"_isAbsRight": true,
|
||||
"_isAbsTop": true,
|
||||
"_isAbsBottom": true,
|
||||
"_isAbsHorizontalCenter": true,
|
||||
"_isAbsVerticalCenter": true,
|
||||
"_originalWidth": 1080,
|
||||
"_originalHeight": 1920,
|
||||
"_alignMode": 2,
|
||||
"_lockFlags": 0,
|
||||
"_id": "ffH2CIHMVCZImyoyKJ54AK"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Mask",
|
||||
"_name": "",
|
||||
@ -2534,7 +2523,7 @@
|
||||
"_inverted": false,
|
||||
"_segments": 64,
|
||||
"_alphaThreshold": 0.1,
|
||||
"_id": "31IUj90uNGboMG/ZgAfkg4"
|
||||
"_id": "1bp0mDHnVBYoa14QZI/k1G"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Graphics",
|
||||
@ -2574,7 +2563,37 @@
|
||||
"a": 0
|
||||
},
|
||||
"_miterLimit": 10,
|
||||
"_id": "88ENBOYIpCGKFcHVTgSMzZ"
|
||||
"_id": "d38dT/Kz1Kub1b05cwraDN"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Widget",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 8
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_alignFlags": 5,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
"_isAbsRight": true,
|
||||
"_isAbsTop": true,
|
||||
"_isAbsBottom": true,
|
||||
"_isAbsHorizontalCenter": true,
|
||||
"_isAbsVerticalCenter": true,
|
||||
"_originalWidth": 1080,
|
||||
"_originalHeight": 2400,
|
||||
"_alignMode": 2,
|
||||
"_lockFlags": 0,
|
||||
"_id": "2dAW/VTelFD4EAkT5IAFtx"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Node",
|
||||
@ -2586,22 +2605,22 @@
|
||||
},
|
||||
"_children": [
|
||||
{
|
||||
"__id__": 70
|
||||
"__id__": 71
|
||||
},
|
||||
{
|
||||
"__id__": 74
|
||||
"__id__": 75
|
||||
},
|
||||
{
|
||||
"__id__": 79
|
||||
"__id__": 80
|
||||
}
|
||||
],
|
||||
"_active": false,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 82
|
||||
"__id__": 83
|
||||
},
|
||||
{
|
||||
"__id__": 83
|
||||
"__id__": 84
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -2640,19 +2659,19 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 69
|
||||
"__id__": 70
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 71
|
||||
},
|
||||
{
|
||||
"__id__": 72
|
||||
},
|
||||
{
|
||||
"__id__": 73
|
||||
},
|
||||
{
|
||||
"__id__": 74
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -2691,7 +2710,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 70
|
||||
"__id__": 71
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2713,7 +2732,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 70
|
||||
"__id__": 71
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2725,7 +2744,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 70
|
||||
"__id__": 71
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2764,14 +2783,11 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 69
|
||||
"__id__": 70
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 75
|
||||
},
|
||||
{
|
||||
"__id__": 76
|
||||
},
|
||||
@ -2780,6 +2796,9 @@
|
||||
},
|
||||
{
|
||||
"__id__": 78
|
||||
},
|
||||
{
|
||||
"__id__": 79
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -2818,7 +2837,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 74
|
||||
"__id__": 75
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2840,7 +2859,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 74
|
||||
"__id__": 75
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2902,7 +2921,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 74
|
||||
"__id__": 75
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2915,7 +2934,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 74
|
||||
"__id__": 75
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -2945,16 +2964,16 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"_parent": {
|
||||
"__id__": 69
|
||||
"__id__": 70
|
||||
},
|
||||
"_children": [],
|
||||
"_active": true,
|
||||
"_components": [
|
||||
{
|
||||
"__id__": 80
|
||||
"__id__": 81
|
||||
},
|
||||
{
|
||||
"__id__": 81
|
||||
"__id__": 82
|
||||
}
|
||||
],
|
||||
"_prefab": null,
|
||||
@ -2993,7 +3012,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 79
|
||||
"__id__": 80
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -3015,7 +3034,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 79
|
||||
"__id__": 80
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -3054,7 +3073,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 69
|
||||
"__id__": 70
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -3076,7 +3095,7 @@
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 69
|
||||
"__id__": 70
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
@ -3173,7 +3192,7 @@
|
||||
"__id__": 9
|
||||
},
|
||||
"rb7Logo": {
|
||||
"__id__": 57
|
||||
"__id__": 58
|
||||
},
|
||||
"languageJson": {
|
||||
"__uuid__": "65d2a408-9396-47e4-99de-73423a590b7f",
|
||||
@ -3204,13 +3223,55 @@
|
||||
"__id__": 5
|
||||
},
|
||||
"Logo": {
|
||||
"__id__": 57
|
||||
"__id__": 58
|
||||
},
|
||||
"rotateNode": {
|
||||
"__id__": 69
|
||||
"__id__": 70
|
||||
},
|
||||
"_id": "d8F/UwpTxNpZhwSJjDvnkk"
|
||||
},
|
||||
{
|
||||
"__type__": "c3c4aRolyxO44hBm5F89cix",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 2
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_id": "46W4D2JoFNZZugl/RX7IG4"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.Widget",
|
||||
"_name": "",
|
||||
"_objFlags": 0,
|
||||
"__editorExtras__": {},
|
||||
"node": {
|
||||
"__id__": 2
|
||||
},
|
||||
"_enabled": true,
|
||||
"__prefab": null,
|
||||
"_alignFlags": 45,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 0,
|
||||
"_bottom": 0,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
"_isAbsRight": true,
|
||||
"_isAbsTop": true,
|
||||
"_isAbsBottom": true,
|
||||
"_isAbsHorizontalCenter": true,
|
||||
"_isAbsVerticalCenter": true,
|
||||
"_originalWidth": 1080,
|
||||
"_originalHeight": 1920,
|
||||
"_alignMode": 2,
|
||||
"_lockFlags": 0,
|
||||
"_id": "afR8mXvHhEeIs7Aiv76HNP"
|
||||
},
|
||||
{
|
||||
"__type__": "cc.PrefabInfo",
|
||||
"root": null,
|
||||
@ -3222,29 +3283,29 @@
|
||||
{
|
||||
"__type__": "cc.SceneGlobals",
|
||||
"ambient": {
|
||||
"__id__": 90
|
||||
},
|
||||
"shadows": {
|
||||
"__id__": 91
|
||||
},
|
||||
"_skybox": {
|
||||
"__id__": 92
|
||||
},
|
||||
"fog": {
|
||||
"__id__": 93
|
||||
},
|
||||
"octree": {
|
||||
"shadows": {
|
||||
"__id__": 94
|
||||
},
|
||||
"skin": {
|
||||
"_skybox": {
|
||||
"__id__": 95
|
||||
},
|
||||
"lightProbeInfo": {
|
||||
"fog": {
|
||||
"__id__": 96
|
||||
},
|
||||
"postSettings": {
|
||||
"octree": {
|
||||
"__id__": 97
|
||||
},
|
||||
"skin": {
|
||||
"__id__": 98
|
||||
},
|
||||
"lightProbeInfo": {
|
||||
"__id__": 99
|
||||
},
|
||||
"postSettings": {
|
||||
"__id__": 100
|
||||
},
|
||||
"bakedWithStationaryMainLight": false,
|
||||
"bakedWithHighpLightmap": false
|
||||
},
|
||||
|
||||
@ -1,7 +1,9 @@
|
||||
import { _decorator, Node, Component, screen, view, ResolutionPolicy, Sprite, sys, UITransform, Label, find } from 'cc';
|
||||
import { LocalizedLabel } from './i18n/LocalizedLabel';
|
||||
import { getLanguage } from './comm';
|
||||
import { installLabelAlignmentCenterFix } from 'common_tools';
|
||||
|
||||
installLabelAlignmentCenterFix();
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
export let SWITCH_PROTRAIT_MODE = {
|
||||
|
||||
@ -7,7 +7,7 @@ import { PREVIEW } from "cc/env"
|
||||
const gameId = "rp_11001";
|
||||
// let apiaddr = "https://rpgames-api.rpfafafahkdev.com";
|
||||
let apiaddr = "";
|
||||
let token = "eyJQIjoxMDA5NDksIkUiOjE3NzAxNTA3OTgsIlMiOjk5NywiRCI6InJwXzExMDAxIn0.FERDo2kkrNmbh_bdo-pEavL81qFzMay0yTVqZRiXpuM";
|
||||
let token = "eyJQIjoxMDA5NDksIkUiOjE3ODMzNzIyNzQsIlMiOjEwMDMsIkQiOiJycF8xMTAwMSJ9.HRjXjxkWf6cNrzx-oWsubYxygyF0EofkiLBsUTz9vgk";
|
||||
|
||||
let language = "en"
|
||||
let currency = "THB"
|
||||
@ -31,7 +31,7 @@ export function getHistoryUrl() {
|
||||
}
|
||||
|
||||
export function getLanguage() {
|
||||
// return 'zh';
|
||||
// return 'th';
|
||||
return language;
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@ export function getGameId() {
|
||||
}
|
||||
|
||||
export function initReqAddr() {
|
||||
let partHost = ".rpfafafahkdev.com";
|
||||
let partHost = ".rpenenenhkdev.com";
|
||||
if (!PREVIEW) {
|
||||
const qs = new URLSearchParams(location.search)
|
||||
|
||||
@ -100,6 +100,29 @@ AbortSignal.timeout ??= function timeout(ms) {
|
||||
return ctrl.signal
|
||||
}
|
||||
|
||||
export async function callGameBalanceApi(argsObj: any) {
|
||||
const url = apiaddr + path.join("/gameapi/getPlayerBalance")
|
||||
const payload = JSON.stringify(argsObj)
|
||||
|
||||
const res = await fetch(url, {
|
||||
signal: AbortSignal.timeout(10000),
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
"X-Rp-Token": token,
|
||||
},
|
||||
method: "POST",
|
||||
body: payload,
|
||||
mode: 'cors',
|
||||
})
|
||||
|
||||
if (res.status != 200) {
|
||||
const errstr = await res.text()
|
||||
throw new Error(errstr || res.statusText)
|
||||
}
|
||||
const obj = await res.json()
|
||||
return obj
|
||||
}
|
||||
|
||||
export async function callGameApi(action: string, argsObj: any) {
|
||||
const url = apiaddr + path.join("/gameapi/", gameId, action)
|
||||
const payload = JSON.stringify(argsObj)
|
||||
|
||||
@ -94,6 +94,5 @@ export class LocalizedLabel2 extends Component {
|
||||
}
|
||||
this.label.isBold = this.isBold;
|
||||
this.label.updateRenderData();
|
||||
console.log(currentLang, 'targetFont', targetFont);
|
||||
}
|
||||
}
|
||||
@ -177,6 +177,7 @@ export class Loading extends Component {
|
||||
} else {
|
||||
// 显示重试按钮
|
||||
this.tipLabel.string = I18nManager.instance.t("AID_LOADING");
|
||||
this.tipLabel.node.active = false;
|
||||
this.startBtn.node.active = true;
|
||||
this.progressBar.node.active = false;
|
||||
this.progressLabel.node.active = false;
|
||||
@ -206,7 +207,8 @@ export class Loading extends Component {
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
await GameDataManager.instance.preloadFrameTypeCache();
|
||||
await GameDataManager.instance.preloadSymbolCache();
|
||||
// 资源加载完成,进度条到90%
|
||||
this.updateProgress(this.PROGRESS_RESOURCE);
|
||||
|
||||
|
||||
6
package-lock.json
generated
6
package-lock.json
generated
@ -9,9 +9,15 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"common_tools": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git",
|
||||
"nosleep.js": "^0.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/common_tools": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git#c49bf2990a6f348489505ac4998683c814b58dde",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/nosleep.js": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/nosleep.js/-/nosleep.js-0.12.0.tgz",
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"common_tools": "git+ssh://git@gitea.rpfafafahkdev.com:taotao/common_tools.git",
|
||||
"nosleep.js": "^0.12.0"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user