Merge branch 'phase/42-talk-circles'

Co-authored-by: Cursor <cursoragent@cursor.com>

# Conflicts:
#	docs/phases/README.md
#	src/HSchool.Simulation/PersonLog.cs
This commit is contained in:
Leonid Pershin
2026-08-20 09:03:38 +03:00
27 changed files with 1949 additions and 176 deletions
+19 -19
View File
@@ -13,31 +13,31 @@
## Задачи
- [ ] `TopicDef`: теги, возраст, роли, шёпот-на-уроке, опциональный язык
- [ ] Ванильный набор тем (учёба, игры, еда, семья, спорт, сплетни, грубое, внешность) в `core`.
- [x] `TopicDef`: теги, возраст, роли, шёпот-на-уроке, опциональный язык
- [x] Ванильный набор тем (учёба, игры, еда, семья, спорт, сплетни, грубое, внешность) в `core`.
Тема внешности учитывает уместность одежды, если сервер её уже прислал; иначе модификатор 0
- [ ] Кружок 2–4 в одном узле; пятый не влезает
- [ ] Кого зовут: друзья и одноклассники в узле, врагов не зовут; тихоня/лидер — поля черты
- [ ] На перемене и в обед друзья тянутся в узел своих; враги не выбирают тот же обеденный узел,
- [x] Кружок 2–4 в одном узле; пятый не влезает
- [x] Кого зовут: друзья и одноклассники в узле, врагов не зовут; тихоня/лидер — поля черты
- [x] На перемене и в обед друзья тянутся в узел своих; враги не выбирают тот же обеденный узел,
если есть другой
- [ ] `StaffChat` в `TeachersRoom`, только сотрудники
- [ ] Парный телефонный чат на перемене: оба несут `Phone`, слабее живого кружка; на уроке нет
- [ ] Нет общего языка — кружок можно, сдвиг мнения слабый и чаще вниз
- [ ] `Communication` растёт от разговора меньше, чем предмет за урок; язык разговора — капля,
- [x] `StaffChat` в `TeachersRoom`, только сотрудники
- [x] Парный телефонный чат на перемене: оба несут `Phone`, слабее живого кружка; на уроке нет
- [x] Нет общего языка — кружок можно, сдвиг мнения слабый и чаще вниз
- [x] `Communication` растёт от разговора меньше, чем предмет за урок; язык разговора — капля,
если не у потолка
- [ ] Черты **сплетник** и **общительный** в `core` с полями, не списками в коде
- [ ] Исход пишет мнения всех пар кружка и строку лога
- [ ] На уроке обычный `Chat` не стартует (шёпот — фаза 43)
- [x] Черты **сплетник** и **общительный** в `core` с полями, не списками в коде
- [x] Исход пишет мнения всех пар кружка и строку лога
- [x] На уроке обычный `Chat` не стартует (шёпот — фаза 43)
## Тесты, без которых фаза не закрыта
- [ ] Двое свободных друзей в коридоре на перемене собирают кружок; враги — нет
- [ ] Пятый в узле не входит в тот же кружок
- [ ] Сотрудники в учительской могут `StaffChat`; ученик это действие не берёт
- [ ] Двое с телефоном на перемене могут парный чат; без телефона — нет
- [ ] Без общего языка мнение почти не растёт при том же `Communication`
- [ ] Высокий `Communication` сильнее двигает число, чем низкий, на одной теме
- [ ] Каталог без `TopicDef` не стартует школу с кружками — или падает загрузка, не молча соло-Chat
- [x] Двое свободных друзей в коридоре на перемене собирают кружок; враги — нет
- [x] Пятый в узле не входит в тот же кружок
- [x] Сотрудники в учительской могут `StaffChat`; ученик это действие не берёт
- [x] Двое с телефоном на перемене могут парный чат; без телефона — нет
- [x] Без общего языка мнение почти не растёт при том же `Communication`
- [x] Высокий `Communication` сильнее двигает число, чем низкий, на одной теме
- [x] Каталог без `TopicDef` не стартует школу с кружками — или падает загрузка, не молча соло-Chat
## Критерий готовности
+1 -1
View File
@@ -200,7 +200,7 @@
| Фаза | Статус | Зачем |
| --- | --- | --- |
| [42. Темы и кружки](42-talk-circles.md) | 🔄 | `TopicDef`, 2–4 человека, учительская, телефон, вместе |
| [42. Темы и кружки](42-talk-circles.md) | | `TopicDef`, 2–4 человека, учительская, телефон, вместе |
| [43. Шёпот и учитель](43-whisper.md) | ⬜ | Шёпот на уроке, шанс оборвать, разговор после звонка |
42 стоит на 41; 43 — на 42.