возьмите механику от HMM. Выбираем первого атакующего (в зависимости от какого-то параметра юнита, с учетом модификантов типа морали), выбираем атакуемого (стратегия боя зависит от стиля (атака - первыми атакуем дистанционные юниты, потом наиболее сильные и т.д.)). Теперь атакуем: урон * количество бойцов + модификанты (удача-крит, опыт, бонус от шмоток, от других отрядов, от бафов) минус защита атакуемого= урон. Уменьшаем количество атакуемых.
Повторяем цикл до исчерпания юнитов у одной из сторон или до достижения порога (скажем - 10% при низкой морали - бегут с поля боя).