/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, а изменения обеих
сторон применяются инкрементом — иначе параллельные атаки на одного защитника затирали бы дельты
друг друга.