50 lines
3.4 KiB
Markdown
50 lines
3.4 KiB
Markdown
# Фаза 42. Темы и кружки
|
|
|
|
## Зависимости
|
|
|
|
- [Фаза 41](41-opinions.md)
|
|
- [Фаза 21](21-decisions.md)
|
|
- [Фаза 31](31-dress-generator.md)
|
|
|
|
## Зачем
|
|
|
|
`Chat` перестаёт быть соло. В узле говорят 2–4 человека об одной теме. Язык и
|
|
`Communication` влияют на исход.
|
|
|
|
## Задачи
|
|
|
|
- [x] `TopicDef`: теги, возраст, роли, шёпот-на-уроке, опциональный язык
|
|
- [x] Ванильный набор тем (учёба, игры, еда, семья, спорт, сплетни, грубое, внешность) в `core`.
|
|
Тема внешности учитывает уместность одежды, если сервер её уже прислал; иначе модификатор 0
|
|
- [x] Кружок 2–4 в одном узле; пятый не влезает
|
|
- [x] Кого зовут: друзья и одноклассники в узле, врагов не зовут; тихоня/лидер — поля черты
|
|
- [x] На перемене и в обед друзья тянутся в узел своих; враги не выбирают тот же обеденный узел,
|
|
если есть другой
|
|
- [x] `StaffChat` в `TeachersRoom`, только сотрудники
|
|
- [x] Парный телефонный чат на перемене: оба несут `Phone`, слабее живого кружка; на уроке нет
|
|
- [x] Нет общего языка — кружок можно, сдвиг мнения слабый и чаще вниз
|
|
- [x] `Communication` растёт от разговора меньше, чем предмет за урок; язык разговора — капля,
|
|
если не у потолка
|
|
- [x] Черты **сплетник** и **общительный** в `core` с полями, не списками в коде
|
|
- [x] Исход пишет мнения всех пар кружка и строку лога
|
|
- [x] На уроке обычный `Chat` не стартует (шёпот — фаза 43)
|
|
|
|
## Тесты, без которых фаза не закрыта
|
|
|
|
- [x] Двое свободных друзей в коридоре на перемене собирают кружок; враги — нет
|
|
- [x] Пятый в узле не входит в тот же кружок
|
|
- [x] Сотрудники в учительской могут `StaffChat`; ученик это действие не берёт
|
|
- [x] Двое с телефоном на перемене могут парный чат; без телефона — нет
|
|
- [x] Без общего языка мнение почти не растёт при том же `Communication`
|
|
- [x] Высокий `Communication` сильнее двигает число, чем низкий, на одной теме
|
|
- [x] Каталог без `TopicDef` не стартует школу с кружками — или падает загрузка, не молча соло-Chat
|
|
|
|
## Критерий готовности
|
|
|
|
- На перемене в коридоре двое «разговаривают», на карточке мнение сдвинулось, в логе тема
|
|
- `dotnet test` проходит
|
|
|
|
## Стоп
|
|
|
|
Не шёпот на уроке. Не драка. Не менять кадр присутствия (локация может ещё писать «Разговор»).
|