Add SwarmUI settings management and portrait generation enhancements

- Introduced new API endpoints for managing SwarmUI settings, including fetching and saving presets and age rules.
- Updated the portrait generation logic to utilize the new settings structure, allowing for dynamic preset selection based on age.
- Enhanced UI components to support SwarmUI settings, including localization for new strings and improved styling for settings sections.
- Added tests to verify the functionality of new settings endpoints and portrait generation behavior.

This commit lays the groundwork for more flexible and user-friendly portrait generation options.
This commit is contained in:
Leonid Pershin
2026-08-20 06:06:45 +03:00
parent e0b7122f3b
commit 5a400be792
32 changed files with 2178 additions and 184 deletions
+35
View File
@@ -0,0 +1,35 @@
# Фаза 44. Ссора и драка
## Зависимости
- [Фаза 42](42-talk-circles.md)
## Зачем
Вражда — не только минус в JSON. На перемене ссорятся, на дворе или физкультуре редко дерутся.
Травм нет.
## Задачи
- [ ] Действие ссоры: 2 (иногда 3), перемена, мнение падает сильнее грубого разговора
- [ ] Действие драки: редко, двор или зал; коротко; без травм и медпункта
- [ ] Триггер: низкое взаимное мнение, задира/вспыльчивый — поля, не if по defName
- [ ] Сотрудник в узле обрывает драку и делает выговор; нет сотрудника — действие просто кончается
- [ ] Лог обоих; кабинет директора не заводим
- [ ] Игрок не приказывает разнять
## Тесты, без которых фаза не закрыта
- [ ] Двое врагов на дворе чаще ссорятся, чем двое друзей
- [ ] Драка не меняет нужду «здоровье» — такой нужды нет и не появляется
- [ ] Выговор после обрыва есть, если в узле был сотрудник
- [ ] Skip пустого времени не оставляет «вечную драку» в состоянии
## Критерий готовности
- Задира с врагом на дворе: в логе ссора или драка, мнения ниже, оба живы и на ногах
- `dotnet test` проходит
## Стоп
Не вызов родителей. Не травмы. Не романтика.