/expedition/claim

Метод выдаёт награду за завершённую экспедицию и тут же подменяет слот новым предложением из пула: паузы между экспедициями нет. Новое предложение роллится с нуля — тир выбирается по весам полосы, а не наследуется от забранной экспедиции.

Выдаётся та награда, что была зафиксирована при роле предложения (base_rewards / bonus_rewards в состоянии), а не та, что полагается полосе на момент клейма: перешедший в другую полосу игрок получает за старое предложение старую награду.

Если объявленная награда не выдаётся в текущей версии конфига, метод отказывает до того, как заберёт слот: проверяются и сама наградная таблица, и ресурсы, которые она называет. Начисление на битой ссылке не падает — оно молча платит ноль, — поэтому без проверки игрок терял бы и экспедицию, и награду без ошибки и без возможности повторить. Пустая выдача при этом остаётся законной по контракту: слоты с шансом имеют право не сработать, и клейм в этом случае проходит без наград.

Готовый слот забирается условным переходом состояния, поэтому два одновременных клейма выдадут награду ровно один раз: проигравший получает отказ и до выдачи не доходит. Освобождение приёмов идёт в той же транзакции, что и сам переход.

Начисление наград выполняется после этого и не может быть откачено вместе со слотом: записи по валютам коммитятся сами по себе. Поэтому сбой на начислении теряет награду, а не выплачивает её дважды — это осознанный выбор. Гарантия «ровно один раз» требует идемпотентного начисления, а это общий наградный путь, не эта фича.

Клейм — единственное, что снимает блокировку с назначенных приёмов. Пока награда не забрана, приёмы остаются занятыми, даже если экспедиция уже завершилась по таймеру или была ускорена.

Дополнительные условия проверяются в момент клейма, по актуальному состоянию приёмов, а не фиксируются на старте: приём, прокачанный за время экспедиции, засчитывается. Отобрать награду это не может — звёздность приёмов только растёт, цвет и фракция не меняются.

Адрес метода

/expedition/claim

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

Параметры

Параметр Обязательный Тип Описание
slot_index НЕТ int Номер слота, 0-based. По умолчанию 0.

Результат

Возвращает то же состояние, что и /expedition/list, уже с новым предложением в слоте.

Награды приходят одним событием в секции events: базовая и дополнительная слиты в один список, одинаковые ресурсы просуммированы. Отдельного события на бонус нет — различить их клиент может по bonus_qualified слота до клейма.

{
    "response": {
        "success": 1,
        "unlocked": true,
        "max_slots": 2,
        "slots": [
            {
                "slot_index": 0,
                "expedition_cid": "easy_cool_1star",
                "status": 0,
                "skill_cids": [],
                "started_at": 0,
                "ends_at": 0,
                "bonus_qualified": false,
                "skip_price": 0,
                "base_rewards": [
                    { "type": "soft", "amount": 400 }
                ],
                "bonus_rewards": [
                    { "type": "particleOfPower", "amount": 1 }
                ]
            }
        ],
        "rerolls_used": 0,
        "rerolls_reset_at": 1788296400,
        "paid_reroll_limit": 1,
        "reroll_price": null
    },
    "update": {
        "member": {
            "wallet": []
        }
    },
    "events": [
        {
            "type": "reward",
            "payload": {
                "reasonType": "expedition_claim",
                "reasonId": "easy_any_1star",
                "rewards": [
                    { "type": "soft", "amount": 400 },
                    { "type": "particleOfPower", "amount": 1 }
                ]
            }
        }
    ]
}

Кошелёк обновляется через update.member как обычно, поэтому награда доедет и до клиента, который событие проигнорирует.

Ошибки

Код Условие
10001 Слот не найден, экспедиция в нём не завершена, либо награду уже забрал параллельный запрос.
10405 Фича закрыта по уровню, шаблон экспедиции пропал из текущей версии конфига, либо награда в этой версии не выдаётся: не резолвится наградная таблица (в контексте reward) или названный в ней ресурс (в контексте resource). В обоих случаях слот остаётся забираемым.