47 lines
3.1 KiB
Markdown
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 врёт; бамп версии тогда в этом коммите.
|