Перейти до змісту

Завершення гри на сайті

Гравець гри завершує на сайті гру, що триває: обирає переможця, тип перемоги й кількість ходів, а результат і рейтинги виходять такі самі, як після /гра завершити (/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: оновлює картку гри в треді та список останніх ігор
  1. Відкрийте сторінку гри. Увійдіть на сайт через Discord, відкрийте свою гру зі станом «В процесі» й натисніть «Завершити гру». Кнопка стоїть у шапці гри; коли до гри прикріплено сейв, така сама кнопка є й у банері закриття гри. Обидві відкривають той самий діалог.
  2. Перевірте поля. У діалозі «Завершити гру?» три поля: «Переможець», «Перемога» й «Ходи». Прикріплений сейв може підставити значення, але вирішуєте ви.
  3. Оберіть націю тим, хто ще без неї. Поки в когось із гравців немає нації, кнопка підтвердження вимкнена. Націю можна обрати тут же, у діалозі.
  4. Підтвердіть. Натисніть «Завершити гру» внизу діалогу. Окремого другого підтвердження немає: після натискання гру завершено, і результат уже не змінити.
  5. Дочекайтеся оновлення в 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 чи на сайті раніше за вас (і, можливо, вже закрили): результат уже записано, нічого робити не треба.
  • Кнопки «Завершити гру» немає на сторінці. Ви не гравець цієї гри або гра не в стані «В процесі». Подробиці — Гравці, модератори й адміністратори.

Пов'язане