public override AIAgent.STATE GetNextStateByRun(bool findedTarget, bool inFinding) { AIAgent.STATE state = AIAgent.STATE.MAX; if (_owner.ACOwner.IsAlived) { if (findedTarget && _owner.TargetAC != null && _owner.TargetAC.IsAlived) { state = AIAgent.STATE.ATTACK; } else if (!inFinding) { state = AIAgent.STATE.IDLE; } else if (inFinding) { if (_owner.CanSeekTarget()) { _owner.HandleInnerCmd(FCCommand.CMD.MOVE_TO_POINT, null, _owner.TargetAC.ThisTransform.localPosition, null, null); } else { _owner.HandleInnerCmd(FCCommand.CMD.STOP_IS_ARRIVE_POINT, null); state = AIAgent.STATE.IDLE; } } else { state = AIAgent.STATE.IDLE; } } else { state = AIAgent.STATE.DEAD; } return(state); }