diff --git a/docs/phases/09-social/reviewed.md b/docs/phases/09-social/reviewed.md index a302f9a..f74ad12 100644 --- a/docs/phases/09-social/reviewed.md +++ b/docs/phases/09-social/reviewed.md @@ -66,6 +66,33 @@ - Черта «общительный» задаёт `talkCircleBonus: 1`, но `MaxSize` клампит к 4 при уже `talkCircleMax` 4 — поле мёртвое, пока верхний потолок не ниже 4. Менять ванильный размер кружка ревью не стало. +## Срез 9. Этапы C–D — перепроверка конфликта, присутствия, речи и romance + +- **Фазы:** 44–47 +- **Проверен на:** `9972b30`, 2026-08-20 +- **Пути:** `src/HSchool.Ai/Conflict.cs`, `src/HSchool.Simulation/TalkCircleSystem.cs`, `src/HSchool.Simulation/PresenceSystem.cs`, `src/HSchool.Simulation/AffinitySystem.cs`, `src/HSchool.Simulation/MorningOpinions.cs`, `src/HSchool.People/Affinity.cs`, `src/HSchool.People/OrientationGenerator.cs`, `src/HSchool.Content/SpeechRules.cs`, `src/HSchool.Protocol/ProtocolCodec.cs`, `src/HSchool.Client/src/net/protocol.ts`, `src/HSchool.Client/src/format/talkCircle.ts`, `src/HSchool.Client/src/ui/dressRulesPanel.ts`, `src/HSchool.Client/src/ui/personCardNow.ts`, `src/HSchool.Client/src/ui/personCardConnections.ts`, `src/HSchool.Server/mods/romance/`, `src/HSchool.Server/Game/PresenceFrame.cs`, `src/HSchool.Server/Api/SpeechRulesModels.cs`, `docs/protocol.md`, `tests/HSchool.Ai.Tests/ConflictTests.cs`, `tests/HSchool.Simulation.Tests/QuarrelFightTests.cs`, `tests/HSchool.Simulation.Tests/TalkCircleTests.cs`, `tests/HSchool.Simulation.Tests/MorningOpinionsTests.cs`, `tests/HSchool.Protocol.Tests/ProtocolCodecTests.cs`, `tests/HSchool.People.Tests/AffinityTests.cs`, `tests/HSchool.People.Tests/OrientationGeneratorTests.cs`, `tests/HSchool.Content.Tests/RomancePackTests.cs`, `tests/HSchool.AppHost.Tests/RomancePackTests.cs`, `tests/HSchool.AppHost.Tests/SpeechRulesApiTests.cs` +- **Итог:** перепроверка после `19554d4` (дальше сели A–B recheck в `TalkCircleSystem` и правки `protocol.md` у портретов). Обещания 44–47 на месте; прошлые правки (сейв ссоры, id жертвы задиры) живы. Дописано 3 теста; исправлено мнение жертвы о заступнике. `Seed.Mix` в политиковых тестах не трогали. A–B не переписывали. Хостовые `RomancePackTests` / `SpeechRulesApiTests` не гонялись. +- **Открыто:** строка локации для тем пака `romance` по-прежнему `defName`; ванильный `quarrelChance` 1 съедает `conflictChance` черт на ссоре. + +### Что проверено + +Каждый пункт «Тесты, без которых фаза не закрыта» у 44–47 имеет отдельный тест. Ссора/драка — поля черт, не `defName`; skip пустого двора бросает кружок; нужды «здоровье» нет. Кадр присутствия v9 несёт id кружка и темы, имён нет; «Сейчас» собирает ту же строку из directory. Политика речи — с завтра; POST сегодня не переписывает живой кружок. Ваниль и `example` без романтических тем; пара только 18+; учитель → ученик не получает симпатию. Отказ врагу в чужой кружок (A–B) не ломает заступника: ссора идёт через `FindOpenConflict`, не `JoinCircle`. `dotnet test` с `--filter` по `QuarrelFightTests`, `ConflictTests` и `AffinityTests` зелёный. + +### Что дописано + +- `QuarrelFightTests.Defender_AndVictim_OpinionsMoveAsAllies` +- `ConflictTests.QuarrelOpinion_IsStrongerThanRudeTalk` +- `AffinityTests.RosterJson_RoundTripsCrushesAndPartner` + +### Что исправлено + +- Конец ссоры с заступником писал жертве к заступнику тот же штраф, что к задире. Теперь жертва и защитник — союзники: мнение друг к другу растёт, к задире падает. + +### Открытое + +- Клиентский `talkTopicLabel` знает только ванильные ключи. Тема пака в локации — сырой id; в логе карточки подпись берётся из каталога. Вшивать строки пака в ванильный словарь ревью не стало. +- Ванильный `quarrelChance` уже 1, поэтому `conflictChance` задиры и вспыльчивого не двигает частоту ссоры (кламп 0…1). На драке поле живое (`fightChance` 0.1). Менять ванильный шанс ссоры ревью не стало. + ## Срез 9. Этапы C–D — конфликт, присутствие, речь и romance - **Фазы:** 44–47 diff --git a/docs/phases/reviewed.md b/docs/phases/reviewed.md index 4fac29d..29d781c 100644 --- a/docs/phases/reviewed.md +++ b/docs/phases/reviewed.md @@ -30,7 +30,7 @@ | Срез 7. Этап B–C — климат, жизнь одежды и правила | `549634b` | [07-inventory](07-inventory/reviewed.md) | | Срез 8. Сессия и темп | `7100065` | [08-session](08-session/reviewed.md) | | Срез 9. Этапы A–B — мнения и разговоры | `a80c6f0` | [09-social](09-social/reviewed.md) | -| Срез 9. Этапы C–D — конфликт, присутствие, речь и romance | `19554d4` | [09-social](09-social/reviewed.md) | +| Срез 9. Этапы C–D — конфликт, присутствие, речь и romance | `9972b30` | [09-social](09-social/reviewed.md) | | Срез 10. Этап A — страховка | `cecd79c` | [10-craft](10-craft/reviewed.md) | | Срез 10. Этапы B–C — работник, карточка и дамп | `34f28f9` | [10-craft](10-craft/reviewed.md) | | Связность урока (вне очереди) 48, 50–53 | `efa27ab` | [off-queue](off-queue/reviewed.md) |