public override bool TryExecute() { if (Action.Ready()) { //TODO: check all action preconditions here -- in range, resource costs, condition preconditions, etc // If not satisfied, add the precondition to the action stack. if (!Action.InRange(Target)) { //Action.Agent.GetMobilityActions(); //TEMP: //Action.Agent.GetMoveAction().TriggerAction(Target); if (Action.Agent.Mobility.MoveTarget != Target) { Action.Agent.Mobility.SetMoveTarget(Target, 0.1f); } return(false); } else { Action.Agent.Mobility.UnsetMoveTarget(); } Action.TriggerAction(Target); return(true); } return(false); }