def run(self, stage_code: str, repeat_times: int=1000, try_current_activity=True):
    stage_code = stage_code.upper()
    if try_current_activity:
        try:
            return ActivityAddOn(self.helper).run(stage_code, repeat_times)
        except:
            pass
    (stage_code_map, zone_linear_map) = get_stage_map()
    if (stage_code not in stage_code_map):
        raise RuntimeError(f'无效的关卡: {stage_code}')
    stage = stage_code_map[stage_code]
    activity_id = stage['zoneId'].split('_')[0]
    activity_infos = get_activity_infos()
    activity = activity_infos[activity_id]
    logger.debug(f'stage: {stage}, activity: {activity}')
    self.enter_activity(activity)
    stage_linear = zone_linear_map[stage['zoneId']]
    self.helper.find_and_tap_stage_by_ocr(None, stage_code, stage_linear)
    return self.helper.module_battle_slim(None, repeat_times)
def run(self, stage_code: str, repeat_times: int=1000, try_current_activity=True):
    stage_code = stage_code.upper()
    if try_current_activity:
        try:
            return ActivityAddOn(self.helper).run(stage_code, repeat_times)
        except:
            pass
    (stage_code_map, zone_linear_map) = get_stage_map()
    if (stage_code not in stage_code_map):
        raise RuntimeError(f'无效的关卡: {stage_code}')
    stage = stage_code_map[stage_code]
    activity_id = stage['zoneId'].split('_')[0]
    activity_infos = get_activity_infos()
    activity = activity_infos[activity_id]
    logger.debug(f'stage: {stage}, activity: {activity}')
    self.enter_activity(activity)
    stage_linear = zone_linear_map[stage['zoneId']]
    self.helper.find_and_tap_stage_by_ocr(None, stage_code, stage_linear)
    return self.helper.module_battle_slim(None, repeat_times)