V = Σ(Nᵢ·Vᵢ·Mᵢ)/ΣNᵢ, общий модификатор -- один раз, без промежуточного округления.
MarchConfig: mixedUsesSlowest убран, добавлены typeSpeedBonusPercent и armySpeedBonusPercent.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Новый модуль Bogatyri.Intelligence (без Unity): туман в трёх состояниях,
обзор поселения 5 / армии 1 клетка, «Обзор» +10/20/30% (заменяет),
примерная численность ±20%, опознание 50% на событие наблюдения,
последний контакт 10 реальных минут, офлайн-досчёт шагами 10 с,
сохранение в секции intelligence.
- Мир: IWorldMap (армии в момент времени), WorldAdvancingEvent,
патрули-заглушки соседей (временно, выключаются в MarchConfig).
- Карта: IntelligenceOverlay — туман и метки чужих армий.
- Таблица IntelligenceConfig, 11 новых тестов, документы.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Мир (Bogatyri.World.Simulation):
- MarchSpeedRules: скорость по типам — пехота 8, лучники 9, кавалерия 12, осадные 4 клетки
за реальный час (ТЕСТ); марш идёт в реальном времени
- смешанное войско — по самому медленному типу (настройка mixedUsesSlowest: средняя по числу воинов);
правило для одной армии в регламенте не задано — вопрос команде
- WorldSimulation.TravelTimeMs, AssignUnits: время прихода пересчитывается по составу похода;
обратный путь — по составу выживших
- MarchRules.GetTravelTimeMs — для похода без состава (как пехота)
Армия (Bogatyri.Army):
- слоты похода: IArmy.MarchSlots (база 2, ТЕСТ), ActiveMarches; TakeForMarch отказывает при занятых слотах;
походы из старых сохранений сверх лимита дойдут, новых не будет
Таблица MarchConfig (Assets/Resources/MarchConfig.asset): скорости, режим смешанного войска, база слотов.
Карта мира: путь в окне атаки — по составу при выбранном числе воинов, «Все слоты похода заняты»,
верхняя строка «отрядов: 1 из 2».
Тесты: скорости по типам, смешанное войско, обратный путь, слоты; старые тесты мира переведены
на часовые марши. Все 49 тестов ModuleTests проходят вне Unity. Код Валдемара не менялся.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>