feat(game): race exit warnings in the turn report (#12)
Surface the inactivity-removal countdown the rules promise but the engine never reported. A race within five turns of being auto-removed for inactivity gets a personal warning in its own report; every race within three turns is listed publicly to all participants. - model: Report.PersonalExitWarning + RacesLeavingSoon ([]RaceExitNotice) - fbs: RaceExitNotice table + Report.personal_exit_warning / races_leaving_soon (regenerated Go + TS bindings) - transcoder: encode/decode both fields - engine: ReportExitWarnings fills the recipient's TTL (1..5) and lists other non-extinct races with TTL 1..3, excluding the recipient itself - ui: danger-styled personal banner + "races leaving soon" section (hidden when empty), wired into the report view, EN/RU i18n - docs: rules.txt report-section list, FUNCTIONAL.md 6.4 + RU mirror Voluntary quit and idle timeout share the TTL countdown and are not distinguished, per the agreed scope.
This commit is contained in:
+12
-5
@@ -704,11 +704,18 @@ demand. Backend authorises the caller and forwards the request;
|
||||
there is no caching or denormalisation in this path.
|
||||
|
||||
The web client renders the report as one section per FBS array
|
||||
(galaxy summary, votes, player status, my / foreign sciences, my /
|
||||
foreign ship classes, battles, bombings, approaching groups, my /
|
||||
foreign / uninhabited / unknown planets, ships in production,
|
||||
cargo routes, my fleets, my / foreign / unidentified ship groups).
|
||||
Empty sections render explicit empty-state copy. Section
|
||||
(galaxy summary, races leaving soon, votes, player status, my /
|
||||
foreign sciences, my / foreign ship classes, battles, bombings,
|
||||
approaching groups, my / foreign / uninhabited / unknown planets,
|
||||
ships in production, cargo routes, my fleets, my / foreign /
|
||||
unidentified ship groups). Empty sections render explicit
|
||||
empty-state copy; "races leaving soon" is the exception and hides
|
||||
entirely when no race is near removal. When the local race is
|
||||
itself within five turns of being auto-removed for inactivity, a
|
||||
danger-styled personal warning banner above the section list
|
||||
carries its own turns-remaining countdown; the public "races
|
||||
leaving soon" section lists every other race within three turns
|
||||
of removal. Section
|
||||
navigation is exposed through a sticky icon-popup menu pinned to
|
||||
the top-right of the report column (an anchored popover on desktop
|
||||
and a fixed bottom-sheet on mobile); the trigger label tracks the
|
||||
|
||||
+14
-6
@@ -722,12 +722,20 @@ Backend авторизует вызывающего и форвардит зап
|
||||
нет ни кэширования, ни денормализации.
|
||||
|
||||
Web-клиент рендерит отчёт как одну секцию на каждый FBS-массив
|
||||
(общие сведения, голоса, статус игроков, мои / чужие науки, мои /
|
||||
чужие классы кораблей, сражения, бомбардировки, приближающиеся
|
||||
группы, мои / чужие / необитаемые / неопознанные планеты, корабли в
|
||||
производстве, грузовые маршруты, мои флоты, мои / чужие /
|
||||
неопознанные группы кораблей). Пустые секции получают явную копию
|
||||
empty-state. Навигация по секциям — sticky icon-popup в правом
|
||||
(общие сведения, скоро покидающие игру расы, голоса, статус
|
||||
игроков, мои / чужие науки, мои / чужие классы кораблей, сражения,
|
||||
бомбардировки, приближающиеся группы, мои / чужие / необитаемые /
|
||||
неопознанные планеты, корабли в производстве, грузовые маршруты,
|
||||
мои флоты, мои / чужие / неопознанные группы кораблей). Пустые
|
||||
секции получают явную копию empty-state; исключение — секция
|
||||
«скоро покидающие игру расы»: она полностью скрывается, когда ни
|
||||
одна раса не близка к исключению. Если же близка к исключению за
|
||||
неактивность сама локальная раса (осталось не более пяти ходов),
|
||||
над списком секций показывается персональный
|
||||
баннер-предупреждение (стиль danger) с числом оставшихся ходов;
|
||||
публичная секция «скоро покидающие игру расы» перечисляет все
|
||||
прочие расы, до исключения которых осталось не более трёх ходов.
|
||||
Навигация по секциям — sticky icon-popup в правом
|
||||
верхнем углу колонки отчёта (анкорный popover на десктопе и фикс.
|
||||
bottom-sheet на мобильном); подпись на кнопке отслеживает раздел,
|
||||
который сейчас в зоне видимости, выбор пункта меню — скролл к
|
||||
|
||||
Reference in New Issue
Block a user