82 lines
6.6 KiB
Markdown
82 lines
6.6 KiB
Markdown
# Журнал ревью
|
||
|
||
Сводка: [`../reviewed.md`](../reviewed.md). Индекс среза: [`README.md`](README.md).
|
||
|
||
## Срез 5. Жизнь школы
|
||
|
||
- **Фазы:** 18–21
|
||
- **Проверен на:** `cbe739a`, 2026-08-20
|
||
- **Пути:** `src/HSchool.Ai`, `src/HSchool.Simulation/{PresenceSystem,ActivitySystem,LessonLearningSystem,School}.cs`,
|
||
`src/HSchool.Protocol` (кадр `Presence`, пропуск в кадре часов),
|
||
`src/HSchool.Server/Game/PresenceFrame.cs`, `src/HSchool.Client/src/ui/gameScreen.ts`,
|
||
`src/HSchool.Server/mods/core/defs/{actions,behavior,needs}`, `tests/HSchool.Ai.Tests`,
|
||
`tests/HSchool.Simulation.Tests/{PresenceTests,DecisionTests,ActivityTests,NeedDecayTests,LunchTests}.cs`,
|
||
`tests/HSchool.AppHost.Tests/GameSocketTests.cs`
|
||
- **Итог:** все 32 теста из списков фаз на месте; дописаны 2 теста явки; `SetTimetable` сбрасывает
|
||
планы дня. Голод закрыт данными. AppHost после правки не гонялся — Aspire держал DLL.
|
||
|
||
Что подтверждено:
|
||
|
||
- Ходьба: 13 тестов списка фазы 18 (маршрут, `travelMinutes`, воскресенье/каникулы, звонок,
|
||
детерминизм, пропуск пустого времени, лето, промотанная неделя).
|
||
- Присутствие: раскладка с обеих сторон, круговой прогон, люди не в снимке карты, пропуск в
|
||
учебное время отбрасывается. На паузе кадры **идут** (occupancy + подписи урока); людей в них
|
||
может не быть.
|
||
- Нужды: декей, обед, стулья, ночь вне школы, неизвестная нужда, детерминизм.
|
||
`Hunger` восстанавливается вне школы, в столовой 112 стульев, обед — смена по параллелям.
|
||
`SleepAndHunger_ReturnToMaxOffCampus`, `AfterASchoolDay_NobodyIsLeftStarving`.
|
||
- Решения: восемь тестов фазы 21, в том числе туалет с урока и возврат, потолок отложенных,
|
||
детерминизм за неделю. `HSchool.Ai` без Arch/ASP.NET/`DateTime.Now`.
|
||
|
||
Дописано:
|
||
|
||
- `HireAndAssignMath_DuringLessonThree_PutsSomeoneOnCampus`
|
||
- `AssigningMath_AfterDayPlansWereBuilt_PutsSomeoneOnCampus`
|
||
|
||
Исправлено:
|
||
|
||
- `School.SetTimetable` обнуляет `PlanDay`. Иначе после назначения предмета без смены численности
|
||
`EnsurePlans` считает планы актуальными, `AppearAt` остаётся `null`, кампус пуст. Найм это
|
||
маскировал (численность растёт).
|
||
- `OpeningASchoolDuringAMathLesson_...` после снятия паузы сразу ждал людей и съедал бюджет на
|
||
паузные кадры. Теперь ждёт `clock.Running`, потом людей.
|
||
|
||
## Срез 5. Жизнь школы — перепроверка
|
||
|
||
- **Фазы:** 18–21
|
||
- **Проверен на:** `1118c59`, 2026-08-20
|
||
- **Пути:** `src/HSchool.Ai`, `src/HSchool.Simulation/{PresenceSystem,ActivitySystem,LessonLearningSystem,School}.cs`,
|
||
`src/HSchool.Protocol` (кадр `Presence`, пропуск в кадре часов),
|
||
`src/HSchool.Server/Game/PresenceFrame.cs`, `src/HSchool.Client/src/ui/gameScreen.ts`,
|
||
`src/HSchool.Server/mods/core/defs/{actions,behavior,needs}`, `tests/HSchool.Ai.Tests`,
|
||
`tests/HSchool.Simulation.Tests/{PresenceTests,DecisionTests,ActivityTests,NeedDecayTests,LunchTests}.cs`,
|
||
`tests/HSchool.AppHost.Tests/GameSocketTests.cs`
|
||
- **Итог:** перепроверка после дрейфа с `cbe739a` (одежда, погода, темп часов, общение, последствия
|
||
урока). Все 32 теста из списков фаз на месте и зелёные. Код не менялся. AppHost не гонялся.
|
||
|
||
Что подтверждено:
|
||
|
||
- Ходьба и пропуск: `WalkingTests` и `PresenceTests` (маршрут 201, `travelMinutes`, воскресенье
|
||
и каникулы, класс без уроков, первый звонок, детерминизм, сейв на перемене, суббота→понедельник,
|
||
ночь/вечер, рабочее окно в 7:00, школа без учителей, лето через 1 сентября, промотанная неделя).
|
||
`SetTimetable` по-прежнему обнуляет `PlanDay`; тесты найма и назначения посреди урока зелёные.
|
||
- Присутствие: раскладка и круговой прогон с обеих сторон (в кадре теперь ещё кружок разговора —
|
||
срезы 9, версия протокола 9). Снимок карты без людей. `skipAllowed` в кадре часов. Клиент не
|
||
считает пропуск сам. `HSchool.Ai` без Arch/ASP.NET/`DateTime.Now`; ходьба на тике границу не
|
||
пересекает. Присутствие ~2 Гц (`TickRate / 2`).
|
||
- Нужды: декей голода, обед и стулья, сон и голод вне школы, неизвестная нужда, детерминизм.
|
||
В столовой 112 стульев, обед — две смены по параллелям.
|
||
- Решения: туалет с урока и возврат, порог, доведение действия, досуг на перемене, навык и голод,
|
||
потолок очереди, неделя с одним сидом, таблица весов без мира.
|
||
|
||
Замечено рядом (не этого среза):
|
||
|
||
- На перемене перед физкультурой класс идёт в раздевалку, не сразу в зал (фаза 35). Стоимость
|
||
пути 101→зал по-прежнему 6 минут из 10.
|
||
- Рост навыка дополнительно зависит от учителя в комнате, учебника и тепла (фазы 48–51). Тест
|
||
«голодный учится хуже» всё ещё проходит.
|
||
|
||
AppHost (`OpeningASchoolDuringAMathLesson`, `SkipEmpty_DuringWorkHours`) в этом проходе не
|
||
гонялся: чужой сервер не останавливали и свой не поднимали. Симуляционные тесты тех же обещаний
|
||
зелёные.
|