- Updated protocol documentation to include new `activity` and `activityLabel` fields in the person card response, reflecting real-time activity status. - Introduced `BehaviorDef` to define behavior rules, including need thresholds and lesson skill gains, enhancing AI decision-making. - Revised the `DefCatalog` to incorporate behavior definitions and updated validation logic to ensure proper behavior handling. - Enhanced the simulation to manage presence and activity states, allowing for more dynamic interactions within the school environment. - Updated tests to validate the new activity tracking and behavior functionalities, ensuring robust performance and reliability. - Improved localization strings to support new activity and behavior features, enhancing user experience.
94 lines
6.7 KiB
Markdown
94 lines
6.7 KiB
Markdown
# Фазы
|
|
|
|
Индекс. Статус: ⬜ не начата, 🔄 в работе, ✅ готова.
|
|
|
|
## Срез 1. Оболочка и карта
|
|
|
|
Дизайн закрыт: [`../design/near-term.md`](../design/near-term.md),
|
|
[`../design/defs.md`](../design/defs.md),
|
|
[`../design/runtime.md`](../design/runtime.md),
|
|
[`../design/projects.md`](../design/projects.md).
|
|
|
|
Новых игровых фич в эти фазы не добавлять. 1 и 2 можно вести параллельно (клиент / сервер).
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [0. Убрать PixiJS](00-drop-pixi.md) | ✅ | Сцена не планируется |
|
|
| [1. Оболочка менеджера](01-manager-shell.md) | ✅ | Панели с секциями среза, пока без данных |
|
|
| [2. Работник школы и диск](02-school-worker.md) | ✅ | Поток + World + сейв — основа |
|
|
| [3. Каталог def и карта](03-defs-map.md) | ✅ | JSONC, core, валидация раскладки |
|
|
| [4. Моды и редактор в create](04-create-editor.md) | ✅ | Выбор модов, карта в POST, снимок при открытии |
|
|
|
|
## Срез 2. Люди
|
|
|
|
Дизайн: [`../design/people.md`](../design/people.md).
|
|
|
|
Школа наполняется людьми. Ученики, работники и родители существуют, показываются и обновляются
|
|
раз в год — но **ничего не делают**: ни расписания, ни перемещений, ни влияния характеристик.
|
|
|
|
Фазы идут по порядку, кроме 8 и 9: обе зависят только от 7 и могут вестись параллельно
|
|
(клиент / симуляция).
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [5. Дефы человека](05-people-defs.md) | ✅ | Навыки, черты, тело, нужды, наборы имён в каталоге |
|
|
| [6. Библиотека генерации](06-people-generator.md) | ✅ | `HSchool.People`: семьи из карты и сида |
|
|
| [7. Люди в школе](07-people-in-school.md) | ✅ | Сущности в `World`, ростер на диске, 11 кабинетов в `core` |
|
|
| [8. Просмотр людей](08-people-browser.md) | ✅ | Панель со списком, фильтрами и карточкой |
|
|
| [9. Годовой набор](09-yearly-intake.md) | ✅ | Первое сентября: переход, выпуск, набор |
|
|
|
|
## Срез 3. Штат
|
|
|
|
Дизайн: [`../design/staffing.md`](../design/staffing.md).
|
|
|
|
Первый срез, где игрок принимает решения. Школа открывается пустой: надо нанять людей из пула
|
|
соискателей, раздать им предметы и уложиться в выделенную на месяц сумму. Уроков по-прежнему нет —
|
|
предмет это запись в нагрузке, а не событие в кабинете.
|
|
|
|
Фазы идут строго по порядку: каждая опирается на данные предыдущей.
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [10. Предметы и мебель](10-subjects.md) | ✅ | `SubjectDef`, одна учительская должность, кабинет как число мест |
|
|
| [11. Пустая школа и пул](11-applicants.md) | ✅ | Школа без сотрудников, соискатели с запросом по зарплате |
|
|
| [12. Наём и бюджет](12-hiring-budget.md) | ✅ | Наём, назначение предметов, предел фонда оплаты |
|
|
| [13. Раздел «Управление»](13-management-tab.md) | ✅ | Деньги, соискатели, штат и назначения на экране |
|
|
|
|
## Срез 4. Расписание
|
|
|
|
Дизайн: [`../design/schedule.md`](../design/schedule.md).
|
|
|
|
Часы учебного плана раскладываются по дням и кабинетам. Школа начинает жить по времени: видно,
|
|
что идёт в комнате прямо сейчас. Люди при этом по-прежнему **не ходят** — они находятся там, где
|
|
их застало расписание.
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [14. Каркас дня и каникулы](14-school-calendar.md) | ✅ | Звонки, длина недели, каникулы |
|
|
| [15. Планировщик](15-timetable-planner.md) | ✅ | Раскладка часов по слотам, четыре запрета |
|
|
| [16. Расписание в школе](16-timetable-in-school.md) | ✅ | Сейв, снимок, «кто где сейчас» |
|
|
| [17. Расписание на экране](17-timetable-screen.md) | ✅ | Скобки в дереве, сетка класса, расписание учителя |
|
|
|
|
## Срез 5. Жизнь школы
|
|
|
|
Дизайн: [`../design/ai.md`](../design/ai.md).
|
|
|
|
Люди начинают ходить и решать. Присутствие перестаёт вычисляться из расписания и становится
|
|
состоянием: человек приходит утром, идёт коридором, может уйти с урока в туалет и вернуться.
|
|
|
|
Срез идёт **двумя этапами**, и между ними можно остановиться — школа останется целостной.
|
|
|
|
**Этап A — присутствие.** Люди ходят по обязанности; выбора у них ещё нет.
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [18. Присутствие и ходьба](18-presence-walking.md) | ✅ | `HSchool.Ai`, место человека, маршруты, приход и уход |
|
|
| [19. Присутствие на экране](19-presence-screen.md) | ✅ | Своё сообщение ~2 Гц, числа в дереве, статический снимок карты, пропуск пустого времени |
|
|
|
|
**Этап B — поведение.** Появляются нужды, действия и выбор между ними и обязанностью.
|
|
|
|
| Фаза | Статус | Зачем |
|
|
| --- | --- | --- |
|
|
| [20. Нужды и действия](20-needs-actions.md) | ✅ | `ActionDef` с полями, декей, восполнение |
|
|
| [21. Выбор действия](21-decisions.md) | ⬜ | Цели и веса, «дойти → сделать», уход с урока, рост навыка |
|