|
@@ -1,12 +1,14 @@
|
|
|
import { _decorator, Component, Node } from "cc";
|
|
|
import PogHttp, { PogLoginResp } from "./net/PogHttp";
|
|
|
-import { WalletListener, WalletManager } from "./web3/WalletManager";
|
|
|
+import { WalletManager } from "./web3/WalletManager";
|
|
|
import { director } from "cc";
|
|
|
import BaseUI from "./base/BaseUI";
|
|
|
import { WS } from "./net/WS";
|
|
|
import { ProgressBar } from "cc";
|
|
|
-import TgM from "./mgr/TgM";
|
|
|
import LoginM from "./mgr/LoginM";
|
|
|
+import AB from "./base/AB";
|
|
|
+import ConfigM from "./mgr/ConfigM";
|
|
|
+import WsM from "./mgr/WsM";
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
|
|
@ccclass("Loading")
|
|
@@ -21,9 +23,13 @@ export class Loading extends BaseUI {
|
|
|
this.login();
|
|
|
}
|
|
|
|
|
|
+ private _enabled: boolean = true;
|
|
|
+
|
|
|
public async U(text: string, progress: number) {
|
|
|
- await this.setText("lbl_progress_info", text);
|
|
|
- let fromProgress = this.progressBar.progress;
|
|
|
+ const progressBar = Loading.ins.progressBar;
|
|
|
+
|
|
|
+ await Loading.ins.setText("lbl_progress_info", text);
|
|
|
+ let fromProgress = progressBar.progress;
|
|
|
let toProgress = progress;
|
|
|
|
|
|
if (fromProgress >= toProgress) {
|
|
@@ -33,17 +39,21 @@ export class Loading extends BaseUI {
|
|
|
let duration = Math.random() * 0.5 + 0.01;
|
|
|
let elapsed = 0;
|
|
|
let deltaTime = 0.01;
|
|
|
- while (elapsed < duration) {
|
|
|
+ while (elapsed < duration && this._enabled) {
|
|
|
elapsed += deltaTime;
|
|
|
let t = elapsed / duration;
|
|
|
let progress = fromProgress + (toProgress - fromProgress) * t;
|
|
|
- this.progressBar.progress = progress;
|
|
|
+ if (!progressBar) {
|
|
|
+ console.warn("progressBar is null", text, progress);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ progressBar.progress = progress;
|
|
|
let pp = progress * 100;
|
|
|
if (pp > 100) {
|
|
|
pp = 100;
|
|
|
}
|
|
|
pp = Math.floor(pp);
|
|
|
- await this.setText("lbl_progress_value", pp + "%");
|
|
|
+ await Loading.ins.setText("lbl_progress_value", pp + "%");
|
|
|
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
|
}
|
|
|
}
|
|
@@ -65,6 +75,7 @@ export class Loading extends BaseUI {
|
|
|
}
|
|
|
|
|
|
protected onDestroy(): void {
|
|
|
+ this._enabled = false;
|
|
|
Loading._ins = null;
|
|
|
}
|
|
|
async login() {
|
|
@@ -87,6 +98,7 @@ export class Loading extends BaseUI {
|
|
|
|
|
|
let result = await LoginM.ins.login();
|
|
|
console.warn("result", result);
|
|
|
+
|
|
|
if (result) {
|
|
|
await this.onLoginSuccess(result);
|
|
|
} else {
|
|
@@ -96,21 +108,51 @@ export class Loading extends BaseUI {
|
|
|
|
|
|
async onLoginSuccess(res: PogLoginResp) {
|
|
|
let self = this;
|
|
|
- if (res) {
|
|
|
- await self.U("Logging Success...", 1);
|
|
|
- await new Promise((resolve) => setTimeout(resolve, 100));
|
|
|
- await self.U("Entering hall...", 1);
|
|
|
- await new Promise((resolve) => setTimeout(resolve, 100));
|
|
|
+ if (!res) {
|
|
|
+ await this.loginFailed();
|
|
|
+ self.FindNode("btn_retry").active = true;
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- director.loadScene("hall");
|
|
|
+ await self.U("Logging Success...", 0.7);
|
|
|
+ await new Promise((resolve) => setTimeout(resolve, 10));
|
|
|
|
|
|
- let url =
|
|
|
- "ws2://albtestkuma-1290122235.ap-southeast-1.elb.amazonaws.com/pog";
|
|
|
- await WS.ins.connect(url, res.token);
|
|
|
- } else {
|
|
|
- await self.U("Login failed...", 1);
|
|
|
- self.FindNode("btn_retry").active = true;
|
|
|
+ let config = await ConfigM.ins.loadConfig();
|
|
|
+
|
|
|
+ if (!config) {
|
|
|
+ self.U("Loading config failed...", 1);
|
|
|
+ await this.loginFailed();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ self.U("Loading config success...", 0.7);
|
|
|
+ await new Promise((resolve) => setTimeout(resolve, 30));
|
|
|
+
|
|
|
+ self.U("Loading Assets ...", 0.8);
|
|
|
+ let ab = await AB.ins.loadInLoading();
|
|
|
+ await new Promise((resolve) => setTimeout(resolve, 10));
|
|
|
+ self.U("Loading Assets success...", 0.8);
|
|
|
+
|
|
|
+ let connectResult = await WS.ins.connect(res.wsUrl, res.token);
|
|
|
+ if (!connectResult) {
|
|
|
+ this.U("Connect websocket failed...", 1);
|
|
|
+ await this.loginFailed();
|
|
|
+ return;
|
|
|
}
|
|
|
+
|
|
|
+ await new Promise((resolve) => setTimeout(resolve, 300));
|
|
|
+
|
|
|
+ await self.U("Get user info...", 0.8);
|
|
|
+ let userInfo = await WsM.ins.userInfo();
|
|
|
+ if (!userInfo) {
|
|
|
+ this.U("Get user info failed...", 1);
|
|
|
+ await this.loginFailed();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ await self.U("Entering hall...", 1);
|
|
|
+ await new Promise((resolve) => setTimeout(resolve, 30));
|
|
|
+
|
|
|
+ director.loadScene("hall");
|
|
|
}
|
|
|
|
|
|
showLoading(arg0: boolean) {}
|