protected override BTreeRunningStatus _DoExecute(BTreeTemplateData input, ref BTreeTemplateData output) { base._DoExecute(input, ref output); BTreeInputData _input = input as BTreeInputData; BTreeOutputData _output = output as BTreeOutputData; if (_input == null || _output == null) { Debugger.LogError("数据类型错误"); } var troop = _input.troop; var outTroop = _output.troop; var target = _input.battleData.mAllTroopDic[troop.targetKey]; var tar_x = target.x; var tar_y = target.y; outTroop.dir_x = tar_x; outTroop.dir_y = tar_y; outTroop.state = (int)TroopAnimState.Attack; outTroop.inPrepose = true; outTroop.preTime = TroopHelper.GetTroopAtkPrepareTime(outTroop.type); outTroop.isAtk = true; outTroop.norAtkCD = TroopHelper.GetTroopAtkCDTime(outTroop.type); return(BTreeRunningStatus.Finish); }
public override Enum Excute(ref FSMInputData _input) { var troop = _input.m_Troop; TroopData tarTroop = dataMgr.m_BattleData.mAllTroopDic[troop.targetKey]; if (tarTroop == null) { Debugger.LogError("AttackState 未找到目标"); } if (troop.norAtkCD == 0) { troop.state = (int)TroopAnimState.Attack; troop.dir_x = tarTroop.x; troop.dir_y = tarTroop.y; troop.inPrepose = true; troop.preTime = TroopHelper.GetTroopAtkPrepareTime(troop.type); troop.isAtk = true; troop.norAtkCD = TroopHelper.GetTroopAtkCDTime(troop.type); } return(TroopFSMState.End); }