squidGame/tgx-games-client/assets/module_arean/ui_searching_rival/UI_SearchingRival.ts

74 lines
2.4 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);
if (elapsedTime < 60) {
layout.lblTime.string = elapsedTime + '秒';
}
else {
let s = elapsedTime % 60;
let m = Math.floor(elapsedTime / 60);
layout.lblTime.string = m + '分' + 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('未找到适合的对手');
}
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);
}
}
}
}
}