def METHOD_NAME():
    self._current_step += 1
    if (self._is_first_step and self.first_step_gen) or self._current_step == self.interval_steps:
        masks = self.generate_masks()
        self.update_masks(masks)
        if isinstance(self._remaining_times, int):
            self._remaining_times -= 1
        debug_msg = f'{self.__class__.__name__} generate masks, remaining times {self._remaining_times}'
        _logger.debug(debug_msg)
    if self._current_step == self.interval_steps and \
        (self._remaining_times == 'unlimited' or self._remaining_times > 0):  # type: ignore
        self._current_step = 0
    if self._is_first_step:
        self._is_first_step = False