code: def step(self, action):
      
      # Special codes
      if action in self._player_actions():
        envs_step_tuples = self._player_actions()[action]()
      elif self._wait and action == self.name_to_action_num["NOOP"]:
        # Ignore no-op, do not pass to environment.
        envs_step_tuples = self._last_step_tuples
      else:
        # Run action on environment(s).
        if action == self.WAIT_MODE_NOOP_ACTION:
          action = self.name_to_action_num["NOOP"]
        # Perform action on underlying environment(s).
        envs_step_tuples = self._step_envs(action)
        self._update_statistics(envs_step_tuples)
  
      self._last_step_tuples = envs_step_tuples
      ob, reward, done, info = self._player_step_tuple(envs_step_tuples)
      return ob, reward, done, info
docs: Pass action to underlying environment(s) or perform special action.