Enhance SwarmUI settings by adding a scheduler property and updating the client to send clip stop at layer instead of clip skip. Added tests to verify the new behavior.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# Фаза 40. Темп часов
|
||||
|
||||
## Зависимости
|
||||
|
||||
- [Фаза 2](02-school-worker.md)
|
||||
- [Фаза 20](20-needs-actions.md)
|
||||
|
||||
## Зачем
|
||||
|
||||
×1 можно смотреть. Высокие скорости — ×5 и ×10, без лишней работы ходьбы и нужд на каждом
|
||||
импульсе календаря.
|
||||
|
||||
## Задачи
|
||||
|
||||
- [ ] `GameMinutesPerRealSecond` по умолчанию 1 (опции, `appsettings.json`, `GET /api/schools`)
|
||||
- [ ] `ClockSpeed.Multipliers`: `0.5, 1, 2, 5, 10`. Зеркало в `protocol.ts`. Подписи кнопок:
|
||||
×½ ×1 ×2 ×5 ×10. Стартовый индекс по-прежнему 1
|
||||
- [ ] Воркер будит мир 20 раз в секунду на любой скорости. `GameClock.Advance`, граница лога
|
||||
6:00, годовой набор, пул соискателей, погода — каждый импульс
|
||||
- [ ] На индексах ×5 и ×10 ходьба, действия, решения, нужды, тепло, обучение, износ — раз в
|
||||
4 и раз в 2 импульса соответственно, с накопленными минутами (квант — 1 игровая минута).
|
||||
На ×½ ×1 ×2 — каждый импульс, как сейчас
|
||||
- [ ] Не прыгать календарём одним жирным `Tick` вместо страйда
|
||||
- [ ] Комментарий меню про «минута за 12 секунд» привести к новой базе
|
||||
- [ ] `docs/protocol.md` — таблица множителей. Раскладку и версию сокета не трогать
|
||||
|
||||
## Тесты, без которых фаза не закрыта
|
||||
|
||||
- [ ] 20 шагов по 1/20 с на ×1 сдвигают календарь на 1 игровую минуту, не на 5
|
||||
- [ ] Индексы 3 и 4 за одну реальную секунду дают 5 и 10 игровых минут
|
||||
- [ ] На ×10 за 20 импульсов ходьба/нужды вызваны 10 раз, календарь — 20; накопленный аргумент
|
||||
минут на тяжёлый вызов — 1
|
||||
- [ ] Невалидный индекс 5 по-прежнему игнорируется
|
||||
- [ ] Клиентский тест: пять кнопок ×½ ×1 ×2 ×5 ×10
|
||||
|
||||
## Критерий готовности
|
||||
|
||||
- На ×1 секунда реального времени = минута в школе; ×10 не кладёт воркер, люди не телепортируются
|
||||
на десять минут за кадр
|
||||
- `dotnet test` и `npm test` / `build` проходят
|
||||
|
||||
## Стоп
|
||||
|
||||
Не менять `TickRate` и потолок догона воркера. Не урезать рассылку кадров часов. Не трогать
|
||||
сессию и хозяина.
|
||||
Reference in New Issue
Block a user