Files
h-school/docs/phases/05-ai/reviewed.md
T

3.0 KiB
Raw Blame History

Журнал ревью

Сводка: ../reviewed.md. Индекс среза: README.md.

Срез 5. Жизнь школы

  • Фазы: 1821
  • Проверен на: 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, потом людей.