import BasicTreeBehaviorNode from "../../Engine/Basic/BasicTreeBehaviorNode"; import BasicTreeControlNode from "../../Engine/Basic/BasicTreeControlNode"; import EventManager from "../../Engine/Event/EventManager"; import { _EGameBehavior, ConstObject } from "../Data/GameDataType"; import GameEventName from "../Event/GameEventName"; import Game_Gameing_Behavior from "./Game_Gameing_Behavior"; import Game_Hall_Behavior from "./Game_Hall_Behavior"; import { Game_Hall_Precondition } from "./Game_Hall_Precondition"; import Game_InitLoad_Behavior from "./Game_InitLoad_Behavior"; import Game_Login_Behavior from "./Game_Login_Behavior"; import Game_Over_Behavior from "./Game_Over_Behavior"; import { Game_Precondition } from "./Game_Precondition"; import Game_WaitStart_Behavior from "./Game_WaitStart_Behavior"; /** * 游戏行为树 */ export default class GameBehaviorTree extends BasicTreeControlNode { constructor (node: cc.Node, behaviorTreeConfig: any) { let controls = new Map<_EGameBehavior, BasicTreeBehaviorNode>(); controls.set(_EGameBehavior.Login, new Game_Login_Behavior(node, _EGameBehavior.Login, ConstObject.GameBehaviorTreeID, new Game_Precondition())); controls.set(_EGameBehavior.InitLoad, new Game_InitLoad_Behavior(node, _EGameBehavior.InitLoad, ConstObject.GameBehaviorTreeID, new Game_Precondition())); controls.set(_EGameBehavior.Hall, new Game_Hall_Behavior(node, _EGameBehavior.Hall, ConstObject.GameBehaviorTreeID, new Game_Hall_Precondition())); controls.set(_EGameBehavior.WaitStart, new Game_WaitStart_Behavior(node, _EGameBehavior.WaitStart, ConstObject.GameBehaviorTreeID, new Game_Precondition())); controls.set(_EGameBehavior.Gameing, new Game_Gameing_Behavior(node, _EGameBehavior.Gameing, ConstObject.GameBehaviorTreeID, new Game_Precondition())); controls.set(_EGameBehavior.Over, new Game_Over_Behavior(node, _EGameBehavior.Over, ConstObject.GameBehaviorTreeID, new Game_Precondition())); super(node, "", ConstObject.GameBehaviorTreeID, behaviorTreeConfig, controls); EventManager.onEvent(GameEventName.Game_GetGameBehavior, this, this.onGetGameBehavior); } protected _enterFail (): void { } protected _enterAgain (): void { } /**获得当前游戏状态 */ private onGetGameBehavior (callback: Function): void { callback && callback(this.currentChilds.pop()); } }