CombatStateManager.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { _decorator } from 'cc';
  2. import { BaseSingleton } from '../Core/BaseSingleton';
  3. import EventBus, { GameEvents } from '../Core/EventBus';
  4. import { PhysicsManager } from '../Core/PhysicsManager';
  5. import { EnemyController } from '../CombatSystem/EnemyController';
  6. const { ccclass } = _decorator;
  7. @ccclass('CombatStateManager')
  8. export class CombatStateManager extends BaseSingleton {
  9. public static _instance: CombatStateManager;
  10. protected init() {
  11. const bus = EventBus.getInstance();
  12. bus.on(GameEvents.GAME_START, this.onStart, this);
  13. bus.on(GameEvents.GAME_PAUSE, this.onPause, this);
  14. bus.on(GameEvents.GAME_RESUME, this.onResume, this);
  15. bus.on(GameEvents.GAME_SUCCESS, this.onEnd, this);
  16. bus.on(GameEvents.GAME_DEFEAT, this.onEnd, this);
  17. }
  18. private onStart() {
  19. const system = PhysicsManager.getInstance()?.getSystem();
  20. if (system) system.enable = true;
  21. EnemyController.getInstance()?.resumeSpawning();
  22. }
  23. private onPause() {
  24. const sys = PhysicsManager.getInstance()?.getSystem();
  25. if (sys) sys.enable = false;
  26. EnemyController.getInstance()?.pauseSpawning();
  27. }
  28. private onResume() {
  29. const s = PhysicsManager.getInstance()?.getSystem();
  30. if (s) s.enable = true;
  31. EnemyController.getInstance()?.resumeSpawning();
  32. }
  33. private onEnd() {
  34. EnemyController.getInstance()?.pauseSpawning();
  35. }
  36. }