/expedition/list
Метод возвращает текущее состояние экспедиций игрока: доступные слоты с предложениями из пула, счётчики рероллов и время их восстановления.
Список меняется ровно двумя способами: рероллом (/expedition/reroll) и доливом слота после того, как игрок забрал награду (/expedition/claim). Автоматического обновления списка по расписанию нет, повышение уровня предложения не перекатывает.
Предложение выкатывается в два шага: сперва по весам полосы уровней игрока (expeditionLevelBands.tierWeights) выбирается тир, затем внутри тира равновероятно — экспедиция. Экспедиции, которые уже выпадали, в роле не участвуют, пока память о них не сбросится: когда в тире не осталось невыпадавших, при переходе игрока в другую полосу и раз в сутки вместе с попытками реролла. Награда фиксируется в момент рола и дальше не пересчитывается — за игроком в следующую полосу она не идёт.
Адрес метода
/expedition/list
Требует сессию пользователя
Параметры
Метод не требует параметров.
Результат
{
"response": {
"success": 1,
"unlocked": true,
"max_slots": 2,
"slots": [
{
"slot_index": 0,
"expedition_cid": "easy_any_1star",
"status": 1,
"skill_cids": ["tossACoin"],
"started_at": 1788239500,
"ends_at": 1788241300,
"bonus_qualified": false,
"skip_price": 100,
"base_rewards": [
{ "type": "soft", "amount": 400 }
],
"bonus_rewards": [
{ "type": "particleOfPower", "amount": 1 },
{ "type": "fragmentOfPower", "amount": 1 }
]
}
],
"rerolls_used": 0,
"rerolls_reset_at": 1788296400,
"paid_reroll_limit": 1,
"reroll_price": null
}
}
| Поле | Тип | Описание |
|---|---|---|
| success | int | 1 у всех методов группы. Присутствие поля обязательно: по нему общий обработчик прицепляет update.member. |
| unlocked | bool | Открыта ли фича. Ниже expeditionCommon.unlockLevel метод отвечает ошибкой 10405. |
| max_slots | int | Количество параллельных экспедиций — slotCount полосы, в которую попадает уровень игрока (expeditionLevelBands). 0, если полосы для этого уровня в конфиге нет. |
| slots[].slot_index | int | Номер слота, 0-based. |
| slots[].expedition_cid | string | Идентификатор экспедиции из листа expeditions. |
| slots[].status | int | 0 — свободна, 1 — выполняется, 2 — завершена и ждёт получения награды. |
| slots[].skill_cids | string[] | Назначенные приёмы, в порядке слотов условий: приём на позиции N проверяется условием expeditions.mainConditions с slotIndex = N. Пусто, пока экспедиция не запущена. |
| slots[].ends_at | int | Момент завершения экспедиции, unix-время. Остаток клиент считает сам относительно серверного времени. 0, пока экспедиция не запущена. |
| slots[].bonus_qualified | bool | Выполнено ли дополнительное условие — expeditions.bonusConditions.factions. Оно относится ко всему набору приёмов, а не к слоту: достаточно, чтобы указанной фракции соответствовал хотя бы один назначенный приём. Экспедиция без списка фракций считается выполнившей условие. Вычисляется по актуальному состоянию приёмов на момент запроса, а не фиксируется на старте. |
| slots[].skip_price | int | Цена ускорения в хард-валюте по таблице upgradeCostIntervals — той же, что у ускорения апгрейда АФК-станков. |
| slots[].base_rewards | object[] | Базовая награда предложения — { type, amount }. Зафиксирована на моменте рола: берётся из клетки expeditionLevelBands.tierRewards для полосы и тира, в которых предложение выпало, поэтому из шаблона экспедиции её вывести нельзя. Значения номинальные: слот с шансом показывается независимо от того, выпадет ли он, а диапазон показывается нижней границей. |
| slots[].bonus_rewards | object[] | Дополнительная награда в том же формате — expeditions.bonusReward, то есть зависит только от тира и не скейлится по уровню. Выдаётся, если на момент получения выполнено bonus_qualified. |
| rerolls_used | int | Сколько рероллов потрачено за текущие сутки. |
| rerolls_reset_at | int | Время восстановления попыток — общий серверный ресет фич. |
| paid_reroll_limit | int | Сколько платных рероллов доступно за сутки сверх бесплатного. |
| reroll_price | object|null | Цена следующего реролла ({ "type": "hard", "amount": 50 }) либо null, если следующий бесплатный. |
Ошибки
| Код | Условие |
|---|---|
| 10405 | Уровень игрока ниже expeditionCommon.unlockLevel. В контексте ошибки приходит unlock_level. |