/level/quick-complete

Метод мгновенно завершает count прохождений уже пройденного (на 3 звезды) уровня, без реального боя. Звёзды уровня не пересчитываются.

Адрес метода

/level/quick-complete

Требует сессию пользователя

Параметры

Параметр Обязательный Тип Описание
level_id ДА string CID уровня
count ДА int Количество быстрых прохождений (1-50)

Результат

{
    "response": {
        "success":            1,
        "timestamp":          1758253785.916074,
        "count":              2,
        "energy_spent":       6,
        "free_attempts_used": 2,
        "tickets_used":       0
    },
    "update": {
        "member": {
            ...,
            "options": {
                ...
            },
            "wallet": [
                {...currency},
                {...currency},
                {...currency},
            ],
            "levels": [
                {...level}
            ],
            "gacha": {
                ...
            }
        }
    },
    "events": [
        {
            "type": "reward",
            "payload": {
                "reasonType": "quick_battle",
                "reasonId": "level_1",
                "rewards": [
                    { "type": "soft", "amount": 200 },
                    { "type": "playerExp", "amount": 20 }
                ]
            }
        }
    ]
}

response

Поле Тип Описание
count int Сколько прохождений было засчитано
energy_spent int Сколько энергии было потрачено (level.energy * count)
free_attempts_used int Сколько бесплатных билетов быстрого боя было списано
tickets_used int Сколько обычных билетов быстрого боя (quick_battle_ticket) было списано

events

Награды за все count прохождений суммируются и приходят одним reward event, как и при обычном /level/complete. Награды нужно читать из events, в response они не дублируются.

Поле Тип Описание
reasonType string quick_battle
reasonId string CID уровня
rewards array Суммарные награды за все прохождения, в формате { type, amount, condition? }

Награда за первое прохождение (condition: firstComplete) быстрым боем не выдаётся - уровень уже пройден к моменту вызова метода.

Ошибки

Метод вернёт MethodNotAllowed, если:

  • уровень не поддерживает быстрое прохождение (gameMode.canQuickBattle / gameLevels.canQuickBattle в конфиге)
  • уровень не пройден ранее на 3 звезды
  • не хватает попыток прохождения уровня (level.attempts, если он ограничен)
  • не хватает энергии
  • пока есть бесплатные прохождения (free_quick_battle_ticket > 0), а count превышает их остаток — билеты быстрого боя (quick_battle_ticket) в этом случае не подключаются, запрос отклоняется целиком
  • бесплатные прохождения закончились (free_quick_battle_ticket == 0), а quick_battle_ticket не хватает на весь count

Одно и то же прохождение не может частично оплачиваться бесплатными попытками, а частично билетами: пока есть бесплатные, count должен полностью покрываться ими; билеты расходуются только когда бесплатные полностью исчерпаны. Бесплатные прохождения восстанавливаются раз в сутки по серверному времени до дневного лимита (commonConstants.freeDailyQuickBattleTickets) и не накапливаются сверх него.