6.6 KiB
6.6 KiB
Журнал ревью
Сводка: ../reviewed.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_PutsSomeoneOnCampusAssigningMath_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) в этом проходе не
гонялся: чужой сервер не останавливали и свой не поднимали. Симуляционные тесты тех же обещаний
зелёные.