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); } } } } }