Files
h-school/docs/phases/12-office/70-director-summons.md
T

47 lines
3.1 KiB
Markdown

# Фаза 70. Вызов к директору и очередь
## Зависимости
- [Фаза 69](69-offense-memory.md)
- [Фаза 21](../05-ai/21-decisions.md)
- [Фаза 18](../05-ai/18-presence-walking.md)
## Зачем
Проступок гонит ученика к директору сам: ходьба, ожидание в коридоре, один в кабинете.
## Задачи
- [x] Авто-триггер вызова из фактов (обрыв драки / выговор и пороги в `BehaviorDef`); кнопки
игрока нет
- [x] Временное состояние «вызван» — сильная обязанность дойти до `PrincipalsOffice`, пройти
приём, сняться
- [x] Нет директора в штате или нет узла кабинета — вызов не стартует / гаснет по правилу в данных
- [x] Кабинет занят приёмом → ждут в коридорном узле у ребра к кабинету, не внутри
- [x] В кабинете один на приём; очередь FIFO с детерминированным порядком
- [x] Приём — короткое действие; мнение о директоре падает; при необходимости допись в список
проступков (69)
- [x] Обычная ходьба и `travelMinutes`; телепорта нет
- [x] Skip / утро не оставляют вечный «вызван» без разрешения (явное правило в коде фазы)
- [x] Очередь и вызовы только на потоке школы (инвариант 3)
## Тесты, без которых фаза не закрыта
- [x] После qualifying-проступка ученик получает обязанность к кабинету (при живом директоре)
- [x] Двое вызванных: один в кабинете, второй в коридоре у входа, не оба внутри
- [x] Освобождение кабинета впускает следующего из очереди
- [x] Тот же сид и те же события → тот же порядок очереди
- [x] Без директора вызов не зависает навечно
- [x] Игрок не может послать вызов по HTTP/сокету (нет такого намерения)
## Критерий готовности
- Драка с обрывом → ученик идёт к директору; второй вызванный ждёт в коридоре; после приёма
оба снова живут обычным днём
- Отфильтрованные тесты по Testing policy проходят
## Стоп
Не собрания. Не тосты (если нужны — фаза 71). Не присутствие-протокол без нужды — только если
без нового статуса UI врёт; бамп версии тогда в этом коммите.