/dev/arena/seed-bots

Довести популяцию ботов арены до заданного числа.

Адрес метода

/dev/arena/seed-bots

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

Только не-прод или админ

Весь раздел /dev/arena доступен, если сервер не продовый либо у игрока стоит флаг админа.

Параметры

Параметр Обязательный Тип Описание
count НЕТ int(0+) Целевое число ботов на стенде, а не сколько добавить

Результат

{
    "response": {
        "success": 1,
        "league": "derevo",
        "existing": 25,
        "target": 40,
        "created": 15,
        "bands": [
            { "min": 700, "max": 1199, "pct": 60 },
            { "min": 400, "max": 699,  "pct": 30 },
            { "min": 0,   "max": 399,  "pct": 10 }
        ],
        "ap": { "min": 12, "median": 766, "max": 1185 }
    }
}

Что важно знать

За методом тот же код, что за командой cli://arena/seed-bots — base\model\arena\ArenaBotSeeder. Эндпоинт существует ради тестируемости: CLI из чёрного ящика по HTTP недостижим.

count — цель, а не дельта. Повторный вызов с тем же числом не создаёт ни строки. Это не удобство, а обязательное свойство: удаление в проекте только мягкое, поэтому лишнего бота уже не убрать. Прошлая уборка 2807 игроков не удалила ни строки, а оставила 5670 мёртвых записей в arena_group_member, которые покрывающий индекс group_ap листает до сих пор.

Боты садятся только в низшую лигу. Она по ТЗ одна и без ограничения размера, и именно там начинают все живые игроки. Лиги выше нарезаются группами по 100 — это GAP-01, он ещё не сделан.

Полосы AP считаются от конфига, а не зашиты числами. Ширина полосы — окно поиска (search_range_base), потолок верхней — порог продвижения из низшей лиги (arena_league.promote_ap_threshold), дно нижней — ap_min. Полоса шириной в окно — это ровно то расстояние, на котором два бота перестают видеть друг друга, поэтому разброс в три полосы гарантирует, что окно подбора и его расширение реально выполняются. Разброс уже окна сделал бы любую проверку подбора зелёной даром: каждый бот видел бы всю популяцию.

Защиту метод не раздаёт. За ней отдельная команда cli://arena/randomize-defense: набор перекатывается независимо от того, кто когда создан. Часть ботов она намеренно оставляет без защиты — такие игроки есть и в живой популяции, и именно на них проверяется деление на пулы «сильнее / слабее».

Токены и сессии ботам не нужны: защиту играет ИИ, бот никогда не делает запросов.