Завершення гри на сайті¶
Гравець гри завершує на сайті гру, що триває: обирає переможця, тип перемоги й кількість ходів, а результат і рейтинги виходять такі самі, як після /гра завершити (/game finish).
На цій сторінці: Хто бачить кнопку, Діалог завершення гри, Підказка із сейва, Гравці без нації, Результат, Що може піти не так
Учасники¶
Це діє на сервері, з яким працює сайт CivBot.
- Гравець гри — власник місця в грі: відкриває діалог на сторінці гри, перевіряє поля й підтверджує завершення.
- Модератор без місця в грі — на сайті гру лише переглядає; завершує її в Discord командою
/гра завершити. Подробиці — Завершення гри. - Гість — гру на сайті не бачить: і список ігор, і сторінка гри просять увійти через Discord.
- Сайт — показує діалог, підставляє пропозицію із сейва й записує результат.
- Бот — перемальовує картку гри в треді й список останніх ігор.
Кроки¶
sequenceDiagram
participant G as Гравець
participant S as Сайт
participant B as Бот
G->>S: натискає «Завершити гру»
S-->>G: показує діалог «Завершити гру?» з пропозицією із сейва
G->>S: обирає переможця, перемогу й ходи
G->>S: натискає «Завершити гру» в діалозі
S-->>G: закриває діалог і показує завершену гру
S->>B: повідомляє про результат
B-->>G: оновлює картку гри в треді та список останніх ігор
- Відкрийте сторінку гри. Увійдіть на сайт через Discord, відкрийте свою гру зі станом «В процесі» й натисніть «Завершити гру». Кнопка стоїть у шапці гри; коли до гри прикріплено сейв, така сама кнопка є й у банері закриття гри. Обидві відкривають той самий діалог.
- Перевірте поля. У діалозі «Завершити гру?» три поля: «Переможець», «Перемога» й «Ходи». Прикріплений сейв може підставити значення, але вирішуєте ви.
- Оберіть націю тим, хто ще без неї. Поки в когось із гравців немає нації, кнопка підтвердження вимкнена. Націю можна обрати тут же, у діалозі.
- Підтвердіть. Натисніть «Завершити гру» внизу діалогу. Окремого другого підтвердження немає: після натискання гру завершено, і результат уже не змінити.
- Дочекайтеся оновлення в Discord. Сторінка гри оновлюється одразу, а бот перемальовує картку гри в треді й список останніх ігор протягом кількох секунд (до 15 с).
Хто бачить кнопку¶
Кнопку «Завершити гру» бачить лише гравець цієї гри, і лише поки гра має стан «В процесі». Для всіх інших сторінка гри кнопки не має.
Модератор без місця в грі
Сайт не знає ролей Discord, тому модератор, який не грає в цій грі, кнопки не бачить. Він завершує гру в Discord командою /гра завершити: там модератор може завершити будь-яку гру сервера. Подробиці — Завершення гри.
Кнопки немає й тоді, коли гру вже завершено, перервано або закрито: змінити такі ігри з сайту не можна.
Діалог завершення гри¶
Діалог «Завершити гру?» відкривається поверх сторінки гри. Вступ пояснює: «Те саме, що /finish у Discord: хто б не завершив, тут чи там, результат і рейтинги вийдуть однакові.» Внизу дві кнопки: «Скасувати» й «Завершити гру». Поки сайт записує результат, на кнопці написано «Завершуємо…», а поля й «Скасувати» вимкнені.
| Поле | Що в ньому | Підказка |
|---|---|---|
| «Переможець» | Меню з усіх гравців цієї гри, у рядку ім'я й нація | «Оберіть гравця цієї гри» |
| «Перемога» | Один із п'яти типів | — |
| «Ходи» | Ціле число від 1 до 330 | «Хід», примітка «від 1 до 330» |
Переможець¶
Переможцем можна обрати лише гравця цієї гри. Рядок меню має вигляд «Orion · Арабія»; якщо нації в гравця ще немає, у рядку лише ім'я.
Перемога¶
Типів п'ять, і вони ті самі, що в /гра завершити:
- «Наукова перемога»;
- «Туристична перемога»;
- «Дипломатична перемога»;
- «Військова перемога»;
- «Визнання переможця».
Власний тип вписати не можна.
Ходи¶
У поле вписують ціле число від 1 до 330. Якщо значення порожнє, не ціле або поза цими межами, помилки на екрані немає: кнопка «Завершити гру» в діалозі просто лишається вимкненою.
Кнопка вмикається, коли обрано переможця й тип перемоги, у «Ходи» стоїть коректне число і в кожного гравця є нація.
Під полями діалог перелічує наслідки: «Рейтинги всіх гравців рахуються так само, як /finish у грі FFA», «Повідомлення гри в Discord оновлюється» і з позначкою-попередженням «Результат потім не змінити ні тут, ні в Discord».
Підказка із сейва¶
Якщо до гри прикріплено сейв, він лише пропонує значення: сам нічого не записує. Над полями стоїть смужка з поясненням, а поля, які ще збігаються з пропозицією сейва, мають мітку «із сейва». Зміните поле, і мітка зникне. Щоразу, коли ви відкриваєте діалог, поля заповнюються з сейва заново. Без сейва смужки й підстановки немає. Подробиці про сейви — Сейви гри на сайті.
Сейв підставляє переможця, лише коли знає рівно одного переможця й цього гравця зіставлено з місцем у грі. Тип перемоги він підставляє у трьох випадках: перемога в космічній гонці дає «Наукову перемогу», перемога завоюванням — «Військову перемогу», культурна — «Туристичну перемогу». Хід — це хід перемоги, а якщо його немає, то хід сейва.
Смужка має п'ять варіантів:
| Ситуація | Що пише смужка |
|---|---|
| Сейв записав перемогу, поля заповнено | «Заповнено із сейва ходу 212 — перевірте перед завершенням» |
| Сейв записав дипломатичну перемогу | «Сейв ходу 212 записав дипломатичну перемогу гравця Vega: голосування в ООН чи визнання поразки, файл не розрізняє — оберіть перемогу самі» |
| Сейв записав перемогу за очками | «Сейв ходу 212 записав перемогу за очками гравця Vega: переможця й ходи заповнено, перемогу оберіть самі» |
| Переможця сейва не зіставлено з гравцем гри | «Сейв записав перемогу на ході 212, але її переможця не зіставлено з гравцем цієї гри — оберіть переможця самі» |
| Сейв ще без результату | «Сейв ще не містить результату — заповніть поля самі» |
У тексті смужки стоїть справжній номер ходу й ім'я гравця. Коли переможця не зіставлено або результату немає, поля порожні.
Гравці без нації¶
Перед завершенням кожен гравець має мати націю: обрану в грі або ту, якою він грав за сейвом. Якщо в когось із гравців нації ще немає, у діалозі з'являється жовтий блок із заголовком на кшталт «Orion — ще без нації» і текстом «Перед завершенням гри нація потрібна кожному гравцеві. Оберіть її тут — той самий вибір, що на картках, — або прикріпіть сейв.»
Для кожного такого гравця є рядок із кнопкою «Обрати націю». Вона відкриває той самий список націй, що й картка гравця на сторінці гри:
- є поле «Пошук нації»;
- заголовок списку «Нація для Orion · 3 з 43, без банів» показує, скільки націй у списку цього гравця (перше число) і скільки їх усього (друге);
- нація, яку вже обрав інший гравець, позначена «зайнято · Vega» і недоступна;
- якщо нічого не підходить, список пише «Жодна нація не підходить».
Вибір зберігається одразу, так само як на картці гравця, а бот перемальовує картку в Discord. Коли нації є в усіх, блок зникає. Подробиці вибору в Discord — Вибір націй і обмін слотами.
Результат¶
Після підтвердження:
- гра отримує стан «Завершена», а сайт записує переможця, тип перемоги й кількість ходів;
- у грі FFA змінюється рейтинг усіх гравців так само, як після
/гра завершити, а в грі Duel рейтинг не змінюється; подробиці — Як рахується рейтинг; - діалог закривається, а сторінка гри показує результат;
- у шапці гри з'являється мітка «Завершено на сайті» з іменем гравця й датою;
- бот оновлює картку гри в треді та список останніх ігор на панелі гри.
Якщо до гри вже прикріплено сейв, усіх гравців зіставлено й замін, що чекають, немає, сайт одразу закриває гру. Інакше гра лишається завершеною: коли сейв прикріплено, банер під шапкою пише, чого бракує до закриття; без сейва його спершу треба прикріпити. Подробиці — Сторінка гри і Сейви гри на сайті.
Правила й винятки¶
Результат однаковий, де б гру не завершили¶
Сайт і /гра завершити дають той самий результат, ті самі перевірки й той самий рейтинг. Рейтинг нараховується один раз: якщо гру одночасно завершують на сайті й у Discord, друге завершення вже не проходить.
Завершену гру не змінити¶
Після завершення результат не можна змінити ні на сайті, ні в Discord. Закриту гру змінити з сайту не можна взагалі.
Якщо гру вже завершено¶
Коли гру завершив хтось інший, поки ваш діалог був відкритий, діалог показує блок «Цю гру вже завершено» з єдиною кнопкою «Закрити». У ньому сказано, де гру завершено: «на сайті» чи «у Discord».
Що може піти не так¶
Відмови сервера діалог показує в червоному блоці. Нічого не записується.
- «Переможець має бути гравцем цієї гри.» Обрано того, хто не займає місця в грі. Оберіть переможця з меню.
- «У гравця ще немає нації. Оберіть її вище, а тоді завершіть гру.» Хтось втратив націю, поки діалог був відкритий. Оберіть її в блоці «ще без нації» й повторіть.
- «Це можуть зробити лише учасники цієї гри.» Ви не займаєте місця в цій грі. Модератор завершує гру в Discord командою
/гра завершити. - Помилки вибору нації в діалозі. Якщо націю щойно зайняло інше місце, її вже не можна обрати для цього місця або вибір не збережено, діалог пише про це; оберіть іншу націю чи повторіть. Подробиці — Сторінка гри.
- Кнопка «Завершити гру» в діалозі вимкнена. Не обрано переможця чи тип перемоги, у «Ходи» немає числа від 1 до 330 або комусь бракує нації.
- Діалог показує «Цю гру вже завершено». Гру завершили в Discord чи на сайті раніше за вас (і, можливо, вже закрили): результат уже записано, нічого робити не треба.
- Кнопки «Завершити гру» немає на сторінці. Ви не гравець цієї гри або гра не в стані «В процесі». Подробиці — Гравці, модератори й адміністратори.