code: def follow(self, distance):
      fatigue_factor = 1 - (0.01 * self.fatigue_level)
  
      acceleration = (
          2
          * (distance - (self.current_velocity * teampursuit.time_step))
          / math.pow(teampursuit.time_step, 2)
      )
      new_velocity = self.current_velocity + (
          acceleration * teampursuit.time_step
      )
      delta_ke = (
          0.5
          * (self.weight + self.bike_mass)
          * (new_velocity - self.current_velocity)
      )
      power = (
          (
              self.coefficient_drag_area
              * teampursuit.drafting_coefficients[self.position - 2]
              * 0.5
              * self.event.air_density
              * math.pow(self.current_velocity, 3)
          )
          + (
              teampursuit.friction_coefficient
              * (self.weight + self.bike_mass)
              * teampursuit.gravitational_acceleration
              * self.current_velocity
          )
          + (delta_ke / teampursuit.time_step)
      ) / (self.mechanical_efficiency * fatigue_factor)
  
      self.current_velocity = new_velocity
  
      if self.remaining_energy > power * teampursuit.time_step:
          self.remaining_energy -= power * teampursuit.time_step
      else:
          self.remaining_energy = 0.0
  
imports: from .teampursuit import teampursuit
  import math
label_desc: Use image node_id 3 for calling the Cyclist obj's underlying member method code with example usage: obj.follow(distance) without return types