Auto-summon pupils to the principal after fight breaks, with a corridor FIFO queue.

This commit is contained in:
Leonid Pershin
2026-08-21 11:49:06 +03:00
parent 8f1a82f42d
commit e40f130248
17 changed files with 839 additions and 18 deletions
+15 -15
View File
@@ -12,27 +12,27 @@
## Задачи
- [ ] Авто-триггер вызова из фактов (обрыв драки / выговор и пороги в `BehaviorDef`); кнопки
- [x] Авто-триггер вызова из фактов (обрыв драки / выговор и пороги в `BehaviorDef`); кнопки
игрока нет
- [ ] Временное состояние «вызван» — сильная обязанность дойти до `PrincipalsOffice`, пройти
- [x] Временное состояние «вызван» — сильная обязанность дойти до `PrincipalsOffice`, пройти
приём, сняться
- [ ] Нет директора в штате или нет узла кабинета — вызов не стартует / гаснет по правилу в данных
- [ ] Кабинет занят приёмом → ждут в коридорном узле у ребра к кабинету, не внутри
- [ ] В кабинете один на приём; очередь FIFO с детерминированным порядком
- [ ] Приём — короткое действие; мнение о директоре падает; при необходимости допись в список
- [x] Нет директора в штате или нет узла кабинета — вызов не стартует / гаснет по правилу в данных
- [x] Кабинет занят приёмом → ждут в коридорном узле у ребра к кабинету, не внутри
- [x] В кабинете один на приём; очередь FIFO с детерминированным порядком
- [x] Приём — короткое действие; мнение о директоре падает; при необходимости допись в список
проступков (69)
- [ ] Обычная ходьба и `travelMinutes`; телепорта нет
- [ ] Skip / утро не оставляют вечный «вызван» без разрешения (явное правило в коде фазы)
- [ ] Очередь и вызовы только на потоке школы (инвариант 3)
- [x] Обычная ходьба и `travelMinutes`; телепорта нет
- [x] Skip / утро не оставляют вечный «вызван» без разрешения (явное правило в коде фазы)
- [x] Очередь и вызовы только на потоке школы (инвариант 3)
## Тесты, без которых фаза не закрыта
- [ ] После qualifying-проступка ученик получает обязанность к кабинету (при живом директоре)
- [ ] Двое вызванных: один в кабинете, второй в коридоре у входа, не оба внутри
- [ ] Освобождение кабинета впускает следующего из очереди
- [ ] Тот же сид и те же события → тот же порядок очереди
- [ ] Без директора вызов не зависает навечно
- [ ] Игрок не может послать вызов по HTTP/сокету (нет такого намерения)
- [x] После qualifying-проступка ученик получает обязанность к кабинету (при живом директоре)
- [x] Двое вызванных: один в кабинете, второй в коридоре у входа, не оба внутри
- [x] Освобождение кабинета впускает следующего из очереди
- [x] Тот же сид и те же события → тот же порядок очереди
- [x] Без директора вызов не зависает навечно
- [x] Игрок не может послать вызов по HTTP/сокету (нет такого намерения)
## Критерий готовности