import { ecs } from "../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS"; import { BattleEntity } from "./BattleEntity"; import { BattleStateComp } from "./BattleStateComp"; import { UIID } from "../common/config/GameUIConfig"; import { oops } from "db://oops-framework/core/Oops"; export class BattleManager { /** 获取战斗实体实例 */ static get instance(): ecs.Entity { return ecs.query(ecs.allOf(BattleStateComp))[0]; } /** 启动战斗 */ static startBattle(missionId: number) { const entity = ecs.getEntity(BattleEntity); entity.get(BattleStateComp).missionId = missionId; } /** 结束战斗 */ static endBattle() { const entity = ecs.query(ecs.allOf(BattleStateComp))[0]; if (entity) { entity.get(BattleStateComp).isEnded = true; } } /** 扩展:带UI管理的战斗启动 */ static startBattleWithUI(missionId: number) { // 关闭主界面 // oops.gui.remove(UIID.MainMenu); // // 显示战斗HUD // oops.gui.open(UIID.BattleHUD); // 启动战斗 this.startBattle(missionId); } /** 扩展:带UI管理的战斗结束 */ static endBattleWithUI(isVictory: boolean) { // 关闭战斗HUD // oops.gui.remove(UIID.BattleHUD); // 显示结算界面 // oops.gui.open(isVictory ? UIID.Victory : UIID.Defeat); // 结束战斗 this.endBattle(); } }