BattleMainCtrl.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /// #pkgName FGUI包名
  2. /// #prefabName ui预制名字
  3. /// #viewName uiview名字
  4. /// #UIName ui的名字,prefabName首字母转大写
  5. /// ui逻辑处理类
  6. /// created by chenwb 2024
  7. import { ResCollector } from "../../../../frameWork/compment/ResCollector";
  8. import FguiMgr from "../../../../frameWork/fgui/FguiMgr";
  9. import { FguiViewCtrl } from "../../../../frameWork/fgui/mvc/FguiViewCtrl";
  10. import EventMng from "../../../../manager/EventMng";
  11. import { FightBase } from "../../../../shared/base";
  12. import AssetMgr from "../../../../utils/AssetMgr";
  13. import UEBattleView from "../../../battle/UEBattleView";
  14. import UESubHp from "../../../battle/UESubHp";
  15. import { BattleMainVM } from "./BattleMainVM";
  16. import { BattleMainView } from "./BattleMainView";
  17. export interface I_BattleData {
  18. fightInfo: FightBase,
  19. closeCb?: Function
  20. }
  21. export class BattleMainCtrl extends FguiViewCtrl<BattleMainVM> {
  22. ueBattle: UEBattleView;
  23. uiData: I_BattleData;
  24. onCollectRes(resCollector: ResCollector, param: any): void {
  25. resCollector.AddUEClass([UEBattleView, UESubHp])
  26. }
  27. OnInited(): void {
  28. this.ueBattle = AssetMgr.instantiateUE(UEBattleView);
  29. this.VM.BattleCom.node.addChild(this.ueBattle.node);
  30. this.ueBattle.Init();
  31. }
  32. OnShow(intent?: I_BattleData): void {
  33. this.uiData = intent;
  34. this.AddListeners();
  35. this.ueBattle.onStartFight(intent?.fightInfo);
  36. }
  37. OnHide(): void {
  38. this.RemoveListeners();
  39. this.ueBattle.onDisable();
  40. }
  41. //#region UI事件
  42. private AddListeners(): void {
  43. this.RegisterClick(this.VM.MaskBgBtn, this.OnClickMaskBgBtn);
  44. }
  45. private RemoveListeners(): void {
  46. // <#UIEventsRemoveArea>
  47. }
  48. private OnClickMaskBgBtn(): void {
  49. this.Close();
  50. }
  51. private Close(): void {
  52. FguiMgr.Instance.closeUI(BattleMainView, true);
  53. this.uiData.closeCb && this.uiData.closeCb();
  54. }
  55. //#endregion
  56. }