Обновлено:

На этой странице

Отступление быстрых юнитов и сохранение случайного состояния

Дата проверки: 26.10.2026. Область источника: Windows Conquests 1.22, исследование Antal1987, май 2014.

Что автор действительно исследовал

В Useful Patches, страница 4, сообщение №62 автор воспроизвёл бой кавалерии с гоплитом и поставил breakpoint в Combat Controller. После потери HP до одного проверяется, что у противника больше одного HP, затем сравниваются random(бонус_отступления_защитника + 50) и бонус_отступления_атакующего. В его примере оба Regular имеют бонус 50: значение 17 приводит к отходу, вручную подставленное 51 — к гибели. Автор также обнаружил сохранение состояния генератора случайных чисел в save: повторная загрузка давала то же число. В обсуждении прямо указано, что этот фрагмент ещё не раскрывает все проверки скорости/доступности отступления.

Вывод для восстановления правил

Нельзя задавать всем быстрым юнитам один неизменный процент спасения: в найденном сравнении участвуют уровни опыта обоих бойцов. Нельзя также считать пример полным алгоритмом отступления защищающегося юнита или армии.

Независимые проверки, которые нужны нам

Сначала собрать матрицу: атакующий/защитник, базовая скорость 1/2/3, остаток движения 0/дробный/полный, опыт, HP второго участника 1/2+. Затем повторить на ровной клетке, в городе, при окружении и через реку. Проверять возможность отхода и вероятность броска отдельно.

Для воспроизводимости нашей веб-версии полезно сохранять seed и состояние PRNG вместе с партией. Это проектное решение по мотивам наблюдения автора; идентичность генератору Firaxis здесь не установлена.