Complete phase 47 romance pack on generic orientation and affinity hooks.
Vanilla catalogs stay without crushes; a content pack ships the overlay so later mods can reuse it.
This commit is contained in:
@@ -237,6 +237,13 @@ mods/
|
||||
localizations/
|
||||
ru.jsonc
|
||||
en.jsonc
|
||||
romance/ # контентный пак: ориентация, симпатия, пары 18+, темы
|
||||
defs/orientations/
|
||||
defs/affinity/
|
||||
defs/traits/
|
||||
defs/topics/
|
||||
patches/
|
||||
localizations/
|
||||
```
|
||||
|
||||
Порядок загрузки: сначала `core`, потом выбранные моды в том порядке, в каком они стоят в
|
||||
|
||||
@@ -13,27 +13,27 @@
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] `mods/romance/`: `pack.jsonc` `requires: ["core"]`, локали, ориентация как данные,
|
||||
- [x] `mods/romance/`: `pack.jsonc` `requires: ["core"]`, локали, ориентация как данные,
|
||||
черты влюбчивый/ревнивый полями, патч тем и при необходимости `Chat`
|
||||
- [ ] Без пака в create ориентации и романтических состояний нет; ванильный каталог без
|
||||
- [x] Без пака в create ориентации и романтических состояний нет; ванильный каталог без
|
||||
романтических тем
|
||||
- [ ] Симпатия учеников: ±2 года или соседняя параллель
|
||||
- [ ] Симпатия ученик → учитель можно, видна на обеих карточках; учитель → ученик никогда;
|
||||
- [x] Симпатия учеников: ±2 года или соседняя параллель
|
||||
- [x] Симпатия ученик → учитель можно, видна на обеих карточках; учитель → ученик никогда;
|
||||
осадить — разговор; пары сотрудник↔ученик нет
|
||||
- [ ] Пара: оба 18+, взаимно, одна; разрыв — событие, новая не раньше следующего дня
|
||||
- [ ] Сотрудники между собой — симпатия и пара можно
|
||||
- [ ] Никаких сексуальных действий и текстов. Детская линия — дразнилки и ярлык
|
||||
- [ ] Тесты хоста: школа с паком и без; запрет учительской взаимности
|
||||
- [ ] `example` не трогать
|
||||
- [x] Пара: оба 18+, взаимно, одна; разрыв — событие, новая не раньше следующего дня
|
||||
- [x] Сотрудники между собой — симпатия и пара можно
|
||||
- [x] Никаких сексуальных действий и текстов. Детская линия — дразнилки и ярлык
|
||||
- [x] Тесты хоста: школа с паком и без; запрет учительской взаимности
|
||||
- [x] `example` не трогать
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] `GET /api/catalog` без `romance` не отдаёт романтические темы
|
||||
- [ ] Create с паком пишет ориентацию; без пака поля нет
|
||||
- [ ] Двое 16-летних не получают статус пары при любом мнении
|
||||
- [ ] Учитель не получает романтическое состояние на ученика
|
||||
- [ ] Первоклассник не получает симпатию к одиннадцатому (возраст)
|
||||
- [ ] Школа с `example` и без `romance` ведёт себя как ваниль в части тем
|
||||
- [x] `GET /api/catalog` без `romance` не отдаёт романтические темы
|
||||
- [x] Create с паком пишет ориентацию; без пака поля нет
|
||||
- [x] Двое 16-летних не получают статус пары при любом мнении
|
||||
- [x] Учитель не получает романтическое состояние на ученика
|
||||
- [x] Первоклассник не получает симпатию к одиннадцатому (возраст)
|
||||
- [x] Школа с `example` и без `romance` ведёт себя как ваниль в части тем
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
|
||||
+12
-2
@@ -119,7 +119,9 @@ still a pack: the id stands in for the name, `version` is empty, `requires` is e
|
||||
```
|
||||
|
||||
The repo also ships `example` next to `core` — a sample pack, not required. It appears in this
|
||||
list with `required: false` and `requires: ["core"]`. Vanilla create omits it.
|
||||
list with `required: false` and `requires: ["core"]`. Vanilla create omits it. `romance` is a
|
||||
content pack on the same list; a school created without it has no orientations and no romantic
|
||||
topics.
|
||||
|
||||
### `GET /api/catalog?lang=ru|en&mods=addon1,addon2`
|
||||
|
||||
@@ -159,6 +161,11 @@ academic year; a range whose start is after its end wraps across 1 January.
|
||||
The assignment form in a later phase reads subjects; the timetable grid reads the day frame.
|
||||
The create editor does not.
|
||||
|
||||
`topics` is the list of placeable conversation subjects (`defName`, label, `tags`). Vanilla
|
||||
ships study/games/food/family/sport/gossip/rude/appearance. A content pack may add more — the
|
||||
`romance` pack adds crush/couple/tease topics and a `romance` tag; they are absent from a
|
||||
catalog requested without that pack. HTTP JSON is additive — no protocol version bump.
|
||||
|
||||
`lang` is the same value Hello carries — not `Accept-Language`. Anything other than `en` is
|
||||
Russian.
|
||||
|
||||
@@ -328,7 +335,10 @@ not happen on this request.
|
||||
|
||||
`connections` is the **Связи** tab: family links with `opinion` / `opinionLabel` from catalog bands,
|
||||
plus `friends`, `enemies` and `others` (every non-family non-zero pair for this person only).
|
||||
The client does not compute thresholds. There is no school-wide opinions endpoint.
|
||||
When a school was created with a pack that ships orientations, the card also carries
|
||||
`orientation` (`defName` + label) and `connections.crushes` / `admirers` / `pair`. Without that
|
||||
pack those fields are null or empty — the client hides the sympathy column. The client does not
|
||||
compute thresholds. There is no school-wide opinions endpoint.
|
||||
|
||||
```json
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user