/arena/fight/complete

Завершить бой с заявленным результатом: применить AP, выдать награду, закрыть строку боя.

Адрес метода

/arena/fight/complete

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

Параметры

Параметр Обязательный Тип Описание
result НЕТ int(0..1) 1 — победа, 0 — поражение. Без параметра — поражение

Результат

{
    "response": {
        "success": 1,
        "result": 1,
        "ap_before": 1000, "ap_after": 1030, "ap_delta": 30,
        "opponent_ap_delta": -10,
        "rank_before": 228, "rank_after": 94,
        "rewards": {"hard": 100},
        "arena": {"...arena"}
    }
}

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

Параметр result без required намеренно: фильтр required в этом фреймворке считает 0 пустым значением и отклонял бы каждое заявленное поражение.

Бой захватывается атомарно. Повторный вызов и проигравший в гонке запрос возвращаются, ничего не применив: AP, счётчики и награда начисляются ровно один раз.

Победа, заявленная после лимита времени, не считается. Бой, финализированный позже battle_time_limit_sec плюс буфер, становится поражением по таймауту независимо от заявленного результата.

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

opponent_ap_delta равен нулю для ботов: у них нет защитной строки боя.

AP защитника считается по тем же таблицам с коэффициентом def_ap_coeff, а изменения обеих сторон применяются инкрементом — иначе параллельные атаки на одного защитника затирали бы дельты друг друга.