Не получалось разложить поле и потестировать отрядами, лишь время от времени удавалось заняться таблицей, "теоретическими" расчётами, да бросанием кубика. )) Потому все выкладки требуют тестирования на карте в "действии".
Главная проблема на данный момент - это реализация максимально динамичного и простого в расчётах эпизода атаки. Для понимания логики выложу заключительные моменты рассуждений и расчётов.
1. Ранее уже решено, что собственно атака состоит из трёх логических этапов: а) способность атакующего отряда на последний бросок, б) определение, какая из сторон устоит, а какая побежит, в) посчитать количество потерь с обоих сторон.
2. Тогда же я предлагал и сейчас склоняюсь к тому, что стандартная атака кратковременна и в результате одна из сторон убегает (откатывается) на расстояние, большее чем эффективный выстрел. Но есть исключение, которое в идеале не должно выпадать из общей механики правил: в населённых пунктах и фортификациях ближний бой мог затянуться, перейти в кровавую рукопашную схватку (а мог и не перейти).
3. В итоге многочисленных расчётов было решено кучу факторов, характеристик и особенностей отдельных отрядов и видов войск собрать в один интегрированный показатель - боевая сила. Он одинаков для каждого вида частей.
4. Рода войск и виды войск.
ПЕХОТА. Куча характеристик (мораль, вооружение, опыт и пр.) сводятся в кучу, условно "рекруты", "регулярные" и "элита". Но такой расклад не совсем корректно отражает реальные качества. Как в некоторых правилах, присвоим три градации для качества пехоты: "слабые" или "С" - это не только рекруты, но и морально нестойкие сателлиты, плохо вооружённые и т.д. - если есть желание, можно оставить "рекруты", понимая, что это не только опыт; далее "В", "опытные" или "регулярные" - тут вроде всё понятно; категория "А" или "ветераны" - это не только гвардия, но и гренадерские части или отборные по боевым характеристикам (подобно кирасирам в кавалерии), то есть не только элита, но и все Очень Хорошие Части. Их боевая сила:
"А" ветераны =5
"В" регулярные =4
"С" слабые = 3
КАВАЛЕРИЯ. Введение понятия боевой силы позволяет уйти от разделения на тяжёлую-лёгкую конницу. Принадлежность к категории не значит сходство характеристик - это результат сходства суммы игровых качеств.
"А" Кирасиры, карабинеры, конные гренадеры, сила = 6
"В" Драгуны, гусары, польские и русские уланы = 5
"С" Конные егеря, легкоконные (ленсеры) = 4
"D" Казаки (иррегулярная конница), сила = 3
5. Ещё пара моментов. Нужно учитывать, что в своём стремлении атаковать врага, отряд между фазой движения и фазой атаки должен выдержать фазу стрельбы, когда он несёт потери. Возможен вариант (он пока не разбирался), что по результатам вражеского огня, в следствие потерь, отряд смешивает строй. Пока этот элемент откладываем в сторону.
Кроме того, механика боя должна учитывать, что отряд может занимать два гекса (батальон в линии) или атаковать сразу двумя отрядами. Определимся, что единичная атака возможна только одного гекса (один отряд противника) с одного или двух соседних гексов, одним или двумя отрядами. Совместная атака может осуществляться отрядами разных видов войск.
6. Итак, в фазу атаки определяем, способен ли отряд ускориться в победном рывке. Для этого складываем силу отряда, количество фигур в первой шеренге и модификаторы + бросок кубика Д6. Причём, если атака с двух гексов, то тест проходится для каждого гекса. (в результате возможна ситуация, когда у батальона в линии часть рот, проваливших тест, остаётся на месте, не участвую в атаке - это отражает нестойкость линейного строя в движении)
Модификаторы для пехоты:
- отряд в колонне +1 (возможно +2, нужно тестить на поле)
- генерал в отряде +1
- атака во фланг/тыл +2
- если отряд расстроен -2
Для кавалерии:
- генерал в отряде +1
- атака во фланг/тыл +2
- атака на "линию штыков" -2 (это относится к атаке во фронт любого линейного построения пехоты - линия, каре, колонна. У каре фронт везде)
- расстроенные -2
Если после броска кубика полученная сумма получается 10 и больше, тест пройден. Если нет, отряд становится расстроенным и останавливается.
7. В результате атаки одна из сторон должна отступить. Для этого считаем:
а) Складываем боевую силу атакующего отряда + все возможные модификаторы. При этом, если это совместная атака, то силы отрядов складываются и все модификаторы складываются "в кучу". Если модификатор применим к обоим отрядам, он учитывается только один раз).
б) Та же операция проделывается с атакованной частью.
в) Результат определяется простым сравнением: часть с меньшей полученной суммой отступает или бежит, а выигравший отряд занимает/остаётся на данном гексе. Если побеждает атакующий кавалерийский отряд, то он может атаковать следующий по траектории движения гекс, если на нём находится вражеский отряд. При этом атакующий отряд получает статус расстроенного. В случае если продолжение атаки было успешным, отряд продвигается на следующий гекс. Если победу одержали атакующие при совместной атаке, то выигранный гекс занимает один из отрядов на выбор игрока.
Модификаторы для атакующей пехоты:
- атака в колонне +2
- атака во фланг +2
- командир в отряде +1
Для атакующей кавалерии:
- атака против фронта штыков -2
- атака во фланг +3
- расстроенный отряд -1
- генерал в отряде +1 (кроме иррегулярной конницы)
Модификаторы обороняющейся пехоты:
- разомкнутый строй -1
- расстроенный отряд -2
- отряд в колонне +1
- укрытие или фортификация +3 (возможно, нужно будет снизить до +2)
- генерал в отряде +1
для атакованной кавалерии:
- расстроенные -3 (как вариант, для отрядов категории "А" = -2)
8. По результатам атаки происходят следующие действия:
- если атаковавшая кавалерия проиграла - она откатывается на 2 гекса назад фронтом в любую сторону;
- если атакованная кавалерия проиграла, она убегает на 2 гекса и останавливается фронтом в любую сторону;
- если атаковавшая пехота проиграла, она отходит на 1 гекс назад не меняя направление фронта (фронт направлен к точке атаки);
- если атакованная пехота проиграла, она бежит на 2 гекса в сторону, противоположную противнику, останавливается с фронтом по направлению бега;
- если атакованная батарея проиграла, она считается уничтоженной.
Если сумма сторон равна, то атакующие должны отойти. Исключение - это населённые пункты и лес, где атакующие отряды могут оставаться на соседних гексах.
9. В результате стычки отряды несут потери. Тут есть некоторая неувязка, вызванная потребностью "уместить" возможные потери в рамки логики, но сделать это достаточно играбельно. К сожалению, для простоты механики все случайности отыгрываются кубиком Д6, что в данном случае ведёт к очень большому разбросу вероятностей. Потому в данном варианте решено обойтись вообще без рендома.
Итак, сразу после выяснения победителя схватки, необходимо определить потери обеих сторон. Для удобства, это делается прежде чем развести отряды по итогам атаки (бегство и т.д.).
Чтобы определить, какие потери нанёс каждый отряд:
- суммируем количество фигур первой шеренги отряда + количество рот в первых двух рядах отряда + модификаторы.
- полученное число делим на 2, с округлением в меньшую сторону. Это и будет число потерь противника.
Модификаторы:
- пехота, выигравшая схватку +1
- кавалерия, выигравшая схватку +1
- кавалерия, проигравшая - 2
- пехота против кавалерии - 1
- кавалерия против кавалерии -1
- кавалерия против пехоты +1
При учёте потерь нужно принимать во внимание следующее.
- потери всех сторон вычисляются одновременно, и лишь после убирается соответствующее количество фигур.
- при совместной атаке, атакованный отряд учитывает все применимые для данных отрядов модификаторы по 1 разу.
- при совместной атаке потери распределяются равномерно на оба отряда, причём, если число нечётное, то выбор отряда с "лишней" фигурой потери за обороняющимся игроком.
- все потери, понесённые отрядом, распределяются равномерно между ротами 1 и 2 ряда, начиная с рот первого ряда.
10. В результате атаки все отряды обоих сторон получают статус расстроенных. Это касается и тех отрядов, которые не прошли тест на возможность атаки в самом начале и фактически не участвовали в схватке.
Кстати, интересное примечание. Так как смена статуса происходит непосредственно сразу после данной атаки, то в случае когда отряд одной из сторон не прошёл тест и тут же получил расстройство, его противник может воспользоваться ситуацией и предпринять встречную атаку.