123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import { RoomMgr } from "./RoomMgr";
- import { GameServerAuthParams } from "../shared/types/GameServerAuthParams";
- import { GameMgr } from "./GameMgr";
- import { NetLobbyServer, gameNet, lobbyNet } from "./NetGameServer";
- import { ModuleDef } from "../../scripts/ModuleDef";
- import { SceneDef } from "../../scripts/SceneDef";
- import { SceneUtil } from "../../core_tgx/base/SceneUtils";
- import { UIGameResult } from "../../module_ball/ui_lobby/UIGameResult";
- export class GameSceneUtil {
- private static _inst: GameSceneUtil;
- public static get inst(): GameSceneUtil {
- if (!this._inst) {
- this._inst = new GameSceneUtil();
- }
- return this._inst;
- }
- private _stage: string = "lobby";
- public get stage(): string {
- return this._stage;
- }
- public async enterGame(
- params: GameServerAuthParams,
- silence: boolean = false
- ) {
- this._stage = "normal";
- if (!silence) {
- tgx.UIWaiting.show("正在加载");
- }
- await tgx.SceneUtil.loadBundleSync(ModuleDef.GAME);
- RoomMgr.inst.reset();
- GameMgr.inst.reset();
- await gameNet.connectToRoomServer(params);
- let ret = await RoomMgr.inst.enterRoom(params);
- if (ret.isSucc) {
- let loadRet = await tgx.SceneUtil.loadScene(SceneDef.GAME);
- if (loadRet && lobbyNet.type != "http") {
- (lobbyNet as NetLobbyServer).disconnect(3000, "normal");
- }
- } else {
- if (ret.err.message == "INVALID_CALL" || ret.err.message == "not_login") {
- RoomMgr.inst.backToLobby();
- }
- }
- return ret;
- }
- public exitGame() {
- this._stage = "lobby";
- RoomMgr.inst.reset();
- GameMgr.inst.reset();
- tgx.SceneUtil.unloadBundle(ModuleDef.GAME);
-
- }
- }
|