GameBehaviorTree.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import BasicTreeBehaviorNode from "../../Engine/Basic/BasicTreeBehaviorNode";
  2. import BasicTreeControlNode from "../../Engine/Basic/BasicTreeControlNode";
  3. import EventManager from "../../Engine/Event/EventManager";
  4. import { _EGameBehavior, ConstObject } from "../Data/GameDataType";
  5. import GameEventName from "../Event/GameEventName";
  6. import Game_Gameing_Behavior from "./Game_Gameing_Behavior";
  7. import Game_Hall_Behavior from "./Game_Hall_Behavior";
  8. import { Game_Hall_Precondition } from "./Game_Hall_Precondition";
  9. import Game_InitLoad_Behavior from "./Game_InitLoad_Behavior";
  10. import Game_Login_Behavior from "./Game_Login_Behavior";
  11. import Game_Over_Behavior from "./Game_Over_Behavior";
  12. import { Game_Precondition } from "./Game_Precondition";
  13. import Game_WaitStart_Behavior from "./Game_WaitStart_Behavior";
  14. /**
  15. * 游戏行为树
  16. */
  17. export default class GameBehaviorTree extends BasicTreeControlNode {
  18. constructor (node: cc.Node, behaviorTreeConfig: any) {
  19. let controls = new Map<_EGameBehavior, BasicTreeBehaviorNode>();
  20. controls.set(_EGameBehavior.Login, new Game_Login_Behavior(node, _EGameBehavior.Login, ConstObject.GameBehaviorTreeID, new Game_Precondition()));
  21. controls.set(_EGameBehavior.InitLoad, new Game_InitLoad_Behavior(node, _EGameBehavior.InitLoad, ConstObject.GameBehaviorTreeID, new Game_Precondition()));
  22. controls.set(_EGameBehavior.Hall, new Game_Hall_Behavior(node, _EGameBehavior.Hall, ConstObject.GameBehaviorTreeID, new Game_Hall_Precondition()));
  23. controls.set(_EGameBehavior.WaitStart, new Game_WaitStart_Behavior(node, _EGameBehavior.WaitStart, ConstObject.GameBehaviorTreeID, new Game_Precondition()));
  24. controls.set(_EGameBehavior.Gameing, new Game_Gameing_Behavior(node, _EGameBehavior.Gameing, ConstObject.GameBehaviorTreeID, new Game_Precondition()));
  25. controls.set(_EGameBehavior.Over, new Game_Over_Behavior(node, _EGameBehavior.Over, ConstObject.GameBehaviorTreeID, new Game_Precondition()));
  26. super(node, "", ConstObject.GameBehaviorTreeID, behaviorTreeConfig, controls);
  27. EventManager.onEvent(GameEventName.Game_GetGameBehavior, this, this.onGetGameBehavior);
  28. }
  29. protected _enterFail (): void {
  30. }
  31. protected _enterAgain (): void {
  32. }
  33. /**获得当前游戏状态 */
  34. private onGetGameBehavior (callback: Function): void {
  35. callback && callback(this.currentChilds.pop());
  36. }
  37. }