Для начала рассмотрим как сейчас рассчитывается бой, какие слабые и сильные стороны имеет текущая боевая система.
1. Ослабление оппозицией
Как мы знаем каждый отряд имеет свои характеристики нападения и защиты (далее базовая сила), а также отряды против которых эти характеристики изменяются в худшую сторону. Эти параметры можно найти на странице Войска-Описание. Модификатор изменяющий силу отряда от наличия у противника контротряда называется ослабление оппозицией и зависит от соотношения суммарных базовых сил вашего отряда и контротряда противника. Чем больше суммарная базовая сила контротряда противника, тем больше ослабление оппозицией. И наоборот, чем больше сила вашего отряда, тем меньше ослабление. Ослабление оппозицией носит негативный характер и изменяется в диапозоне от -90% до 0% с шагом 10%.
Рассмотрим на конкретном примере как рассчитывается ослабление оппозицией.
http://colonizers.ru/reports/507800
Нажмите для просмотра прикрепленного файла
Ослабление оппозицией рассчитывается для каждого отряда в отдельности. Для пикинеров в армии обороняющегося делается это так. В оппозиции к отряду из 573 пикинеров (базовая сила в защите 9) в армии атакующего имеется отряд артиллерии (атака 6) в количестве 268 единиц. Кавалерия и офицеры не являются контротрядами для пикинеров, поэтому здесь не учитываются. Суммарная базовая сила пикинеров 573*9=5157. Суммарная базовая сила артиллерии 268*6=1608. Соотношение суммарных базовых сил 1608/(5157+1608)=23%, что после округления даст -20% штраф.
Заметим, что оппозиция зависит от численности контротрядов, а не от того, в каких пропорциях контротряды находятся в армии противника.
2. Мораль
Далее в расчёт идёт мораль. Мораль в отличии от ослабления оппозицией рассчитывается для армии целиком.
Повышают мораль офицеры. Если на каждых 10 солдат приходится по 1 офицеру, то прибавка будет +50% морали, что в свою очередь повысит и силу отряда на 50%. Если офицеров больше, чем надо, то бонус морали остается максимальным +50%. Если офицеров меньше, чем надо (т.е. на 10 солдат приходится меньше 1 офицера), то прибавка к морали будет пропорционально меньше.
Понижается мораль в том случае, если численность обороняющейся армии превышает размер казармы. Если численность армии превышает размер казармы в 1.5 раза, то мораль понизится на 30%, в 2 раза - на 50%, в 3 раза - на 70%, в 5 раз - на 80%. В общем виде формула выглядит так: (размер_армии - предел_казармы)/размер_армии. Штраф за переполнение не может быть больше -90%.
В рассматриваемом примере мораль атакующего +50% поскольку на 274 солдата приходится 26 офицеров, 50%*10*26/274=47%, что после округления даст 50% бонус. Мораль обороняющегося -70%, что обусловлено сильным переполнением казармы. У обороняющегося казарма 4 уровня, что позволяет иметь без штрафов армию в 250 солдат. Размер армии 739. Отсюда штраф (739 - 250)/739 = 66%, что после округления даст 70% штраф.
Поскольку штраф за переполнение никогда не может превысить 90%, то даже для миллионной армии мораль не упадёт ниже -40%, в том случае, если к армии добавлено необходимое число офицеров.
3. Бонус частокола
Здесь всё достаточно просто. За каждый уровень частокола обороняющаяся армия получает 10% бонус частокола. Бонус распространяется на все отряды в независимости от типа.
Общая формула
Сила каждого отряда рассчитывается отдельно по формуле
Сила = Базовая_сила * (1 + Ослабление_оппозицией) * (1 + Мораль) * (1 + Бонус_частокола)
и затем складывается с силой других отрядов.
Армия с большей суммарной силой побеждает и получает добычу: пятая часть казны (только в атаке), пленных и ресурсы. Потери несут обе стороны - при равных по силе армиях погибает 10% солдат с каждой стороны, при соотношении сил 2 к 1 соответственно 5% и 20% и так далее.
Теперь можно сделать выводы.
Вывод напрашивается сам собой. Поскольку численность армии в защите ничем не ограничена, а в атаке не может превышать размер трюма, то при правильной защите выиграть бой у противника с многочисленной армией в обороне не представляется возможным. Ослабление оппозицией, грубо говоря, линейно растёт с численностью армии противника и достигает -90%, что уменьшает силу атакующего в 10 раз. В то время как мораль ограничена -40% (при нужном числе офицеров), то есть штраф будет менее чем двухкратный. Как только появится возможность выпускать самому офицеров, базы игроков станут неприступными крепостями.
Хорошо это или плохо, не берусь судить. Возможно так и задумывалось, основные битвы по замыслу разработчиков должны разворачиваться на островах, размер которых ограничен, а базы должны оставаться непреступными крепостями. Владение островами даёт определённый бонус. Например, успешно завершив экспедицию игрок получает бонус к силе армии или скорости производства до тех пор пока владеет островом. Возможно, время покажет.
Если же такой задумки не было и картину подпортили офицеры (без них мораль у крупных армий падала бы до -90%, что компенсировало бы в некоторой степени ослабление оппозицией), то выход есть. Необходимо рассчитывать ослабление оппозицией не как соотношение суммарных базовых сил, а как процент численности контротряда от общей численности армии противника. Например, вашему отряду противостоит контротряд численностью 100 солдат, в то время как общая численность армии противника 500 солдат. Тогда ослабление оппозицией будет равна 100/500=20%. В этом случае рост армии противника не будет влиять на ослабление оппозицией и у атакующего появится шанс выиграть битву, правильно подобрав соотношение отрядов в своей армии. Хотя и в этом случае, база игрока останется крепким орешком.
Кроме того штраф от переполнения и бонус от офицера надо отделить, т.е. формула должна иметь вид
Сила = Базовая_сила * (1 + Ослабление_оппозицией) * (1 + Повышение_морали_от_офицера) * (1 + Штраф_за_переполнение) * (1 + Бонус_частокола)