/// <summary>
        /// Orders the selected agent to move to a target location. If there is an enemy at that location, attack it.
        /// </summary>
        /// <param name="hit"></param>
        protected override void OnRightMouseButtonDown(RaycastHit hit)
        {
            if (!this.agent)
            {
                return;
            }

            var otherAgent = hit.transform.GetComponent <StratusAgent>();

            if (otherAgent)
            {
                this.agent.Target(otherAgent);
            }
            else
            {
                StratusAgentNavigation.DispatchMoveToEvent(agent, hit.point);
            }
        }
 /// <summary>
 /// Attemps to approach the current target of this action
 /// </summary>
 protected bool Approach(StratusAgent agent, Vector3 targetPosition)
 {
     return(StratusAgentNavigation.DispatchMoveToEvent(agent, targetPosition));
 }