137 lines
3.0 KiB
TypeScript
137 lines
3.0 KiB
TypeScript
|
import { _decorator, BaseRenderData, Component, director, instantiate, Prefab, Node, assetManager } from 'cc';
|
||
|
import { tgxUIMgr, tgxUIWaiting } from '../../core_tgx/tgx';
|
||
|
import { areanMgr } from './AreanManager';
|
||
|
import { AreanEvent, AreanNetMgr } from './AreanNetMgr';
|
||
|
import { resLoader } from '../../core_tgx/base/utils/ResLoader';
|
||
|
import { ModuleDef } from '../../scripts/ModuleDef';
|
||
|
import { AreanPlayer } from './GameScene/GameItem/AreanPlayer';
|
||
|
import { EFightModel, IAreanPlayer } from '../../module_basic/shared/protocols/public/arean/AreanTypeDef';
|
||
|
import { UserMgr } from '../../module_basic/scripts/UserMgr';
|
||
|
import { UserLocalCache } from '../../module_basic/scripts/UserLocalCache';
|
||
|
const { ccclass, property } = _decorator;
|
||
|
|
||
|
@ccclass('AreanGameScene')
|
||
|
export class AreanGameScene extends Component {
|
||
|
@property({ type: Node })
|
||
|
battleLoading: Node = null;
|
||
|
|
||
|
protected onLoad(): void {
|
||
|
this.listenEvent();
|
||
|
UserMgr.inst.isInGame=true;
|
||
|
}
|
||
|
|
||
|
async start() {
|
||
|
|
||
|
areanMgr.initData();
|
||
|
tgxUIMgr.inst.closeAll();
|
||
|
tgxUIWaiting.show();
|
||
|
let gameMode = UserLocalCache.inst.fightModel;
|
||
|
switch(gameMode){
|
||
|
case EFightModel.Match:
|
||
|
this.GameBeginPush();
|
||
|
break;
|
||
|
case EFightModel.Ranking:
|
||
|
this.GameBeginPush();
|
||
|
break;
|
||
|
case EFightModel.Room:
|
||
|
|
||
|
if(AreanNetMgr.inst.isInGame()){
|
||
|
this.GameBeginPush();
|
||
|
}else{
|
||
|
this.initData();
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
listenEvent() {
|
||
|
|
||
|
director.on(AreanEvent.GameBegin, this.GameBeginPush, this);
|
||
|
}
|
||
|
|
||
|
GameBeginPush() {
|
||
|
tgxUIWaiting.show();
|
||
|
this.battleLoading.active = true;
|
||
|
let gameHUD = this.node.getChildByName("GameHUD");
|
||
|
if (gameHUD) {
|
||
|
this.node.removeChild(gameHUD)
|
||
|
}
|
||
|
|
||
|
var bundle = assetManager.getBundle('level2');
|
||
|
if(bundle){
|
||
|
director.loadScene("scene/level2Scene");
|
||
|
}else{
|
||
|
assetManager.loadBundle("level2",()=>{
|
||
|
director.loadScene("scene/level2Scene");
|
||
|
tgxUIWaiting.hide();
|
||
|
})
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
async onCompleteCallback() {
|
||
|
this.battleLoading.active = false;
|
||
|
let gameMode = UserLocalCache.inst.fightModel;
|
||
|
|
||
|
switch(gameMode){
|
||
|
case EFightModel.Match:
|
||
|
case EFightModel.Ranking:
|
||
|
await AreanNetMgr.inst.rpc_Ready();
|
||
|
console.log("准备2")
|
||
|
break;
|
||
|
case EFightModel.Room:
|
||
|
break;
|
||
|
}
|
||
|
AreanNetMgr.inst.sendMsg_InBattleView();
|
||
|
}
|
||
|
|
||
|
|
||
|
update(deltaTime: number) {
|
||
|
}
|
||
|
|
||
|
protected onDestroy(): void {
|
||
|
UserMgr.inst.isInGame=false;
|
||
|
}
|
||
|
|
||
|
async initData() {
|
||
|
resLoader.load<Prefab>(ModuleDef.Arean, "GameHUD", (err, prefab) => {
|
||
|
if (err) {
|
||
|
console.log("GameManager start err:", err);
|
||
|
return;
|
||
|
}
|
||
|
if (prefab) {
|
||
|
let node = instantiate(prefab);
|
||
|
node.name = "GameHUD";
|
||
|
this.node.addChild(node);
|
||
|
tgxUIWaiting.hide();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
onPlayerComes(_player: IAreanPlayer) {
|
||
|
if (areanMgr.player == null) {
|
||
|
this.createPlayer(_player);
|
||
|
} else {
|
||
|
areanMgr.player.onPlayerDataChange(_player);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
createPlayer(player: IAreanPlayer) {
|
||
|
let _player = new AreanPlayer(player);
|
||
|
areanMgr.player = _player;
|
||
|
areanMgr.playerGroup.push(_player);
|
||
|
|
||
|
_player.setReady(true);
|
||
|
}
|
||
|
|
||
|
createAIPlayer(levelID: number) {
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|