Добавлено: Пн Мар 05, 2018 4:59
Заголовок сообщения:
В полевых сражениях алгоритм стояния на месте никакого смысла не имеет.
Но при обороне крепости - да. Но это должен быть совсем не тот алгоритм, что внедрен в новой версии. Обороняющиеся должны затыкать дыры в стенах рукопашниками и вообще не выходить из крепости. Но чтобы это имело смысл нужно:
1) Дать клеткам крепости очень приличную защиту от стрельбы (в HOM3 урон режется в два раза, а здесь можно дать +5 - +10 к защите от стрельбы в зависимости от уровня крепости - сколько именно - протестировать) и от магии ТОЖЕ (сколько именно и при каких условиях - тестируется, например, можно придумать доп. здание в провинции или в столице, которое сильно бы повышало сопротивление для обороняющих крепость). А также дать обороняющимся юнитам на клетках крепости первую помощь, что логично.
2) Дать возможность охране провинции при нападении противника отступать в крепость, пополняя ее гарнизон (о чем я писал ранее).
3) для усиления крепостей высокого уровня можно еще давать им ров - просто-напросто сплошной ряд клеток с болотом перед стеной.
При этом завышенный срок осады крепостей можно и уменьшить.
Вот это действительно бы обогатило игру и закрыло одну из очень немногих доработок из оригинальной игры - битвы в фортах вроде бы есть, но их фактически нет.
Причем дальше все это можно было бы совершенствовать, не затрагивая базовый код - делать несколько линий обороны в зависимости от уровня крепости (несколько сражений подряд в крепости для ее взятия), давать возможность делать вылазку (обороняющийся по желанию может устраивать сражение в поле - имеет смысл, если истребили армию врага в обороне и нужно его добить или если наглый враг пришел осаждать забитую войсками крепость слабым героем).
--
По поводу пресловутой крайней клетки, на которую встает воин и его могут атаковать всего 2 врага - тоже есть решение без ломки всех алгоритмов боя. Считаем - всего возможно 6 клеток с атакующими, не хватает 4. Вот пусть после стояния на клетке определенное время (5 ходов или настраиваемо) у юнита начинает отниматься 4 выносливости каждый ход, как если бы его были со всех сторон. Если живых противников, которые не могут атаковать издали, меньше 6 - значит не 4, а сколько их есть больше 2. Уход с клетки сбрасывает счетчик.
Еще раз - считаем, сколько противников могли бы атаковать юнита, разместившись на отсутствующих 4 клетках (считаем среди тех, у кого нет снарядов, кто может атаковать вблизи в принципе и у кого выносливость больше 0) - столько выносливости мы должны автоматически списывать за ход за стояние на этой крайней клетке. Но только после стояния на ней дольше определенного срока - 5 ходов или сколько там определим экспериментально. Уход с клетки сбрасывает счетчик. В случае, когда одинокого воина атакует толпа врагов, если он уходит с клетки, обычно ее тут же занимают и не дают ему туда вернуться. Уходом должно считаться, если при переходе хода к врагу юнит не находится на этой клетке.
Вот и все - не нужно ломать алгоритм боя, а потом пытаться его полгода чинить.
--
Я сознаю, что скорее всего пишу в пустоту - я уже выдавал здесь кучу идей в никуда.