81 lines
2.5 KiB
TypeScript
81 lines
2.5 KiB
TypeScript
import { director, game } from "cc";
|
|
import { tgxUIAlert, tgxUIController, tgx_class } from "../../core_tgx/tgx";
|
|
import { GameUILayers } from "../../scripts/GameUILayers";
|
|
import { ModuleDef } from "../../scripts/ModuleDef";
|
|
import { SubGameMgr } from "../../module_basic/scripts/SubGameMgr";
|
|
import { UserMgr } from "../../module_basic/scripts/UserMgr";
|
|
import { Layout_SearchingRival } from "./Layout_SearchingRival";
|
|
|
|
@tgx_class(ModuleDef.Arean)
|
|
export class UI_SearchingRival extends tgxUIController {
|
|
|
|
public params: any
|
|
constructor() {
|
|
super('ui_searching_rival/ui_searching_rival', GameUILayers.POPUP, Layout_SearchingRival);
|
|
}
|
|
|
|
|
|
private _startTime = Date.now();
|
|
private _state = '';
|
|
protected onCreated(): void {
|
|
let layout = this.layout as Layout_SearchingRival;
|
|
this.onButtonEvent(layout.btnCancel, async () => {
|
|
if (this._state == 'matching') {
|
|
let ret = await UserMgr.inst.rpc_QuickPlayCancel();
|
|
|
|
if (ret.isSucc) {
|
|
this._state = 'cancelled';
|
|
this.close();
|
|
}
|
|
}
|
|
else {
|
|
this._state = 'cancelled';
|
|
this.close();
|
|
}
|
|
|
|
});
|
|
}
|
|
|
|
protected onUpdate(dt: number): void {
|
|
let layout = this.layout as Layout_SearchingRival;
|
|
let elapsedTime = Math.floor((Date.now() - this._startTime) / 1000);
|
|
|
|
//3秒后关闭ui
|
|
if (elapsedTime >= 4) {
|
|
this.close();
|
|
}
|
|
|
|
if (elapsedTime < 60) {
|
|
layout.lblTime.string = elapsedTime + 's';
|
|
}
|
|
else {
|
|
let s = elapsedTime % 60;
|
|
let m = Math.floor(elapsedTime / 60);
|
|
layout.lblTime.string = m + 'm' + s + 's';
|
|
}
|
|
}
|
|
|
|
async startMatch(type: string, fun: Function) {
|
|
if (this._state) {
|
|
return;
|
|
}
|
|
this._state = 'matching';
|
|
let ret = await UserMgr.inst.rpc_QuickPlay(type);
|
|
console.log('startMatch', ret);
|
|
if (!ret.isSucc) {
|
|
tgxUIAlert.show('No contestants matched');
|
|
}
|
|
else {
|
|
let params = ret.res;
|
|
this.params = params;
|
|
if (!ret.res.isWaiting) {
|
|
this.close();
|
|
return await SubGameMgr.inst.enterSubGame(params, UserMgr.inst.uid);
|
|
} else {
|
|
if (fun) {
|
|
fun(params);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |