Турниры и сетки v2.0
Tura Arena строит расписание, продвигает победителей и синхронизирует слоты с lobby worker. Организатор задаёт правила один раз — дальше система ведёт сетку до финала.
Создание турнира
- В админке: Seasons → New tournament — название, часовой пояс, минимальный патч клиента.
- Откройте регистрацию или импортируйте команды CSV / Steam group / API.
- Выберите формат сетки и параметры серии (Bo1/Bo3/Bo5) по стадиям.
- Нажмите Generate bracket — слоты получат ID для webhook и lobby.
Перед генерацией проверьте чётность команд для single elimination или включите bye для нечётного числа участников.
Форматы сеток
| Формат | Когда использовать | Особенности |
|---|---|---|
| Single elimination | Быстрые кубки на 8–32 команды | Bye, рематч только вручную судьёй |
| Double elimination | Лан и онлайн-лиги | Upper / lower, grand final reset опционален |
| Groups + playoffs | Отборочные сезоны | Round-robin в группах, топ N в плей-офф |
| Swiss | Открытые квалификации | Фиксированное число раундов, tie-breakers |
| Round-robin | Малые лиги (≤10 команд) | Каждый с каждым, таблица очков |
Сиды и регламент
Сиды можно задать вручную, по рейтингу (Elo / OpenDota proxy) или случайно с фиксированным seed для аудита. В регламенте турнира укажите:
- Максимальную паузу и кто может её запросить
- Правила замены stand-in (если разрешены)
- Дедлайн ready-check и последствия no-show
- Язык коммуникации и канал споров (Discord / ticket)
Swiss и tie-breakers
После каждого раунда пары подбираются по счёту побед без повторов соперников. При равенстве мест применяются tie-breakers в порядке:
- Buchholz (сумма побед соперников)
- Head-to-head между командами с одинаковым счётом
- Разница карт (если Bo3 в Swiss-раундах)
# Пример фрагмента конфига (tournament.yaml)
format: swiss
rounds: 5
tie_breakers: [buchholz, head_to_head, map_diff]
Экспорт и публикация
Сетка доступна как JSON через API, HTML-виджет для сайта лиги и CSV для Liquipedia-редакторов. При изменении результата судьёй экспорт пересчитывается и шлёт webhook bracket.updated.